Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d10db1d667 | |||
| 26efbf7f82 | |||
| cb9bb4342f | |||
| 21242cdd6d | |||
| 05a71cff9b | |||
| f7290d5563 | |||
| 848bd537ed | |||
| 1e623e5c0f | |||
| 2be083c0c9 | |||
| 828437779c | |||
| abe4ea80a0 | |||
| e14cb97232 | |||
| 2c7b23ac77 | |||
| cdd8b663f4 | |||
| 285138ebf4 | |||
| 4cde7ea739 | |||
| 2b3fdda61e |
@@ -6,7 +6,10 @@
|
||||
"id": "health",
|
||||
"label": "运行检查",
|
||||
"description": "检查技能运行环境并返回结构化结果,不启动浏览器。",
|
||||
"placements": ["skill-detail", "agent"],
|
||||
"placements": [
|
||||
"skill-detail",
|
||||
"agent"
|
||||
],
|
||||
"executionProfile": "sync",
|
||||
"entrypoint": {
|
||||
"type": "cli",
|
||||
@@ -18,7 +21,9 @@
|
||||
"id": "version",
|
||||
"label": "查看版本",
|
||||
"description": "返回技能版本和机器标识。",
|
||||
"placements": ["skill-detail"],
|
||||
"placements": [
|
||||
"skill-detail"
|
||||
],
|
||||
"executionProfile": "sync",
|
||||
"entrypoint": {
|
||||
"type": "cli",
|
||||
@@ -30,13 +35,229 @@
|
||||
"id": "config-path",
|
||||
"label": "查看配置位置",
|
||||
"description": "返回技能配置文件位置。",
|
||||
"placements": ["skill-detail"],
|
||||
"placements": [
|
||||
"skill-detail"
|
||||
],
|
||||
"executionProfile": "sync",
|
||||
"entrypoint": {
|
||||
"type": "cli",
|
||||
"command": "config-path",
|
||||
"args": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "add-todo",
|
||||
"label": "添加待办",
|
||||
"description": "添加待办事项。",
|
||||
"placements": [
|
||||
"skill-detail",
|
||||
"toolbar"
|
||||
],
|
||||
"executionProfile": "sync",
|
||||
"entrypoint": {
|
||||
"type": "cli",
|
||||
"command": "todo",
|
||||
"args": [
|
||||
"add",
|
||||
"--title",
|
||||
"{{title}}",
|
||||
"--priority",
|
||||
"{{priority}}",
|
||||
"--due-at",
|
||||
"{{due-at}}"
|
||||
]
|
||||
},
|
||||
"interaction": "form",
|
||||
"bind": {
|
||||
"tables": [
|
||||
"todos"
|
||||
]
|
||||
},
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"type": "string",
|
||||
"title": "待办标题",
|
||||
"description": "待办事项的标题,必填。"
|
||||
},
|
||||
"priority": {
|
||||
"type": "string",
|
||||
"title": "优先级",
|
||||
"description": "待办事项的优先级,可选。",
|
||||
"default": "normal",
|
||||
"enum": [
|
||||
"high",
|
||||
"normal",
|
||||
"low"
|
||||
]
|
||||
},
|
||||
"due-at": {
|
||||
"type": "number",
|
||||
"title": "提醒时间",
|
||||
"description": "格式 YYYY-MM-DD HH:MM,如 2026-08-01。",
|
||||
"display_type": "datetime_unix_seconds"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"title",
|
||||
"priority"
|
||||
]
|
||||
},
|
||||
"hostEffects": {
|
||||
"onSuccess": [
|
||||
"reloadTable"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "item-create",
|
||||
"label": "新增记录",
|
||||
"description": "添加待办事项。",
|
||||
"replaces": "create",
|
||||
"placements": [],
|
||||
"executionProfile": "sync",
|
||||
"interaction": "form",
|
||||
"bind": {
|
||||
"tables": [
|
||||
"todos"
|
||||
]
|
||||
},
|
||||
"hostEffects": {
|
||||
"onSuccess": [
|
||||
"reloadTable"
|
||||
]
|
||||
},
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"type": "string",
|
||||
"title": "待办标题",
|
||||
"description": "待办事项的标题,必填。"
|
||||
},
|
||||
"priority": {
|
||||
"type": "string",
|
||||
"title": "优先级",
|
||||
"description": "待办事项的优先级,可选。",
|
||||
"default": "normal",
|
||||
"enum": [
|
||||
"high",
|
||||
"normal",
|
||||
"low"
|
||||
]
|
||||
},
|
||||
"due-at": {
|
||||
"type": "number",
|
||||
"title": "提醒时间",
|
||||
"description": "格式 YYYY-MM-DD HH:MM,如 2026-08-01。",
|
||||
"display_type": "datetime_unix_seconds"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"title",
|
||||
"priority"
|
||||
]
|
||||
},
|
||||
"entrypoint": {
|
||||
"type": "cli",
|
||||
"command": "todo",
|
||||
"args": [
|
||||
"add",
|
||||
"--title",
|
||||
"{{title}}",
|
||||
"--priority",
|
||||
"{{priority}}",
|
||||
"--due-at",
|
||||
"{{due-at}}"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "todo-done-row",
|
||||
"label": "完成本行",
|
||||
"description": "将当前待办标记为已完成。",
|
||||
"placements": [
|
||||
"row"
|
||||
],
|
||||
"executionProfile": "sync",
|
||||
"interaction": "direct",
|
||||
"bind": {
|
||||
"tables": [
|
||||
"todos"
|
||||
]
|
||||
},
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"id"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"title": "编号",
|
||||
"readOnly": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"hostEffects": {
|
||||
"onSuccess": [
|
||||
"reloadTable"
|
||||
]
|
||||
},
|
||||
"entrypoint": {
|
||||
"type": "cli",
|
||||
"command": "todo",
|
||||
"args": [
|
||||
"done",
|
||||
"{{id}}"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "todo-delete",
|
||||
"label": "删除记录",
|
||||
"description": "删除待办事项。",
|
||||
"replaces": "delete",
|
||||
"placements": [],
|
||||
"executionProfile": "sync",
|
||||
"interaction": "confirm",
|
||||
"confirmation": {
|
||||
"message": "确定删除该记录?关联数据将一并清理。"
|
||||
},
|
||||
"bind": {
|
||||
"tables": [
|
||||
"todos"
|
||||
]
|
||||
},
|
||||
"hostEffects": {
|
||||
"onSuccess": [
|
||||
"reloadTable",
|
||||
"clearSelection"
|
||||
]
|
||||
},
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"id"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"title": "编号",
|
||||
"readOnly": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"entrypoint": {
|
||||
"type": "cli",
|
||||
"command": "todo",
|
||||
"args": [
|
||||
"delete",
|
||||
"ids",
|
||||
"{{id}}"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -16,9 +16,9 @@
|
||||
| 主能力(Action id / CLI) | 对话 | 数据管理 | 定时 | 不挂理由(若不挂) |
|
||||
|---------------------------|------|----------|------|--------------------|
|
||||
| `todo add` | 挂 | toolbar(新增按钮) | 不挂 | 定时无意义 |
|
||||
| `todo list` | 挂 | 仅展示表 | 不挂 | 定时无意义 |
|
||||
| `todo done` | 挂 | row + batch(标记完成) | 不挂 | 定时无意义 |
|
||||
| `todo delete` | 挂 | row + batch(删除) | 不挂 | 定时无意义 |
|
||||
| `todo list` | 挂 | row | 不挂 | 定时无意义 |
|
||||
| `todo done`(Action `todo-done-row`) | 挂(短 CLI 直调) | row(「完成」按钮) | 不挂 | 定时无意义;batch 批量完成暂未声明 |
|
||||
| `todo delete` | 挂 | row(「删除」按钮)) + batch(删除) | 不挂 | 定时无意义 |
|
||||
| `todo stats` | 挂 | toolbar(统计) | 不挂 | 定时无意义 |
|
||||
| `remind` | 挂 | toolbar | 挂 | 定时扫描到期/待办项并提醒 |
|
||||
| `init-db` | 不挂 | 不挂 | 不挂 | 宿主安装/更新时静默调用,不对用户暴露 |
|
||||
@@ -28,7 +28,6 @@
|
||||
|
||||
说明:
|
||||
|
||||
- `todos` 表在数据管理中为**整表只读**(`readonly=1`),所有增删改必须通过技能 Action(`todo add/done/delete`)走,宿主不直写业务表。
|
||||
- 数据管理页面默认展示列:`title`、`status`、`priority`、`due_at`、`created_at`;默认按 `created_at` 倒序。
|
||||
- `status` 与 `priority` 字段在数据管理中以下拉枚举展示(pending=待办/done=完成;high=高/normal=中/low=低)。
|
||||
|
||||
@@ -225,3 +224,4 @@
|
||||
| 日期 | 版本 | 变更人 | 变更内容 |
|
||||
|------|------|--------|----------|
|
||||
| 2026-09-07 | v0.1.0 | - | 初版需求文档 |
|
||||
| 2026-09-11 | v0.1.1 | - | 入口定位表登记行级 Action `todo-done-row`(todos 表操作列「完成本行」,sync/direct,`$row.$pk` 预填) |
|
||||
|
||||
@@ -57,7 +57,7 @@ def _add_run_subparser(sub) -> None:
|
||||
todo_sub = sp.add_subparsers(dest="todo_cmd", required=True, parser_class=ZhArgumentParser)
|
||||
|
||||
p = todo_sub.add_parser("add", help="新增一条待办")
|
||||
p.add_argument("title", help="待办标题(必填)")
|
||||
p.add_argument("-t","--title", help="待办标题(必填)")
|
||||
p.add_argument("-p", "--priority", default="normal",
|
||||
choices=["high", "normal", "low"], help="优先级,默认 normal")
|
||||
p.add_argument("-d", "--due-at", type=int, default=None,
|
||||
|
||||
@@ -56,7 +56,7 @@ def _seed_todos_display_metadata(cursor) -> None:
|
||||
table_name="todos",
|
||||
display_name="待办事项",
|
||||
description="本技能的核心业务表:每条待办事项一行。",
|
||||
grid_help="状态变更走技能 CLI(todo done / todo delete),不要在表里直接改。",
|
||||
grid_help="所有的待办事项,包括待办、已办、已删除。",
|
||||
visible=1,
|
||||
readonly=1, # 整表只读:增删改通过技能 Action 走,宿主不直写
|
||||
default_sort_json='[{"column":"created_at","direction":"desc"}]',
|
||||
@@ -69,21 +69,21 @@ def _seed_todos_display_metadata(cursor) -> None:
|
||||
{"column_name": "id", "display_name": "编号", "description": "主键",
|
||||
"visible": 1, "searchable": 1, "editable": 0, "display_type": "number"},
|
||||
{"column_name": "title", "display_name": "标题", "description": "待办事项内容",
|
||||
"grid_help": "简明描述要做的事", "visible": 1, "searchable": 1, "editable": 0,
|
||||
"grid_help": "简明描述要做的事", "visible": 1, "searchable": 1, "editable": 1,
|
||||
"display_type": "text"},
|
||||
{"column_name": "status", "display_name": "状态", "description": "pending/done",
|
||||
"grid_help": "pending=待办,done=完成", "visible": 1, "searchable": 1, "editable": 0,
|
||||
"display_type": "enum",
|
||||
"options_json": '[{"value":"pending","label":"待办"},{"value":"done","label":"完成"}]'},
|
||||
{"column_name": "priority", "display_name": "优先级", "description": "high/normal/low",
|
||||
"visible": 1, "searchable": 1, "editable": 0, "display_type": "enum",
|
||||
"visible": 1, "searchable": 1, "editable": 1, "display_type": "enum",
|
||||
"options_json": '[{"value":"high","label":"高"},{"value":"normal","label":"中"},{"value":"low","label":"低"}]'},
|
||||
{"column_name": "due_at", "display_name": "截止时间", "description": "Unix 秒;可空",
|
||||
"visible": 1, "searchable": 1, "editable": 0, "display_type": "datetime_unix_seconds","default":"(unixepoch())"},
|
||||
"visible": 1, "searchable": 1, "editable": 1, "display_type": "datetime_unix_seconds"},
|
||||
{"column_name": "created_at", "display_name": "创建时间", "description": "Unix 秒",
|
||||
"visible": 1, "searchable": 0, "editable": 0, "display_type": "datetime_unix_seconds","default":"(unixepoch())"},
|
||||
"visible": 1, "searchable": 0, "editable": 0, "display_type": "datetime_unix_seconds"},
|
||||
{"column_name": "updated_at", "display_name": "更新时间", "description": "Unix 秒",
|
||||
"visible": 0, "searchable": 0, "editable": 0, "display_type": "datetime_unix_seconds","default":"(unixepoch())"},
|
||||
"visible": 0, "searchable": 0, "editable": 0, "display_type": "datetime_unix_seconds"},
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user