@metagptx/deepflow-suite-cli 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,13 +2,13 @@
2
2
  "schemaVersion": 1,
3
3
  "distribution": "deepflow-suite",
4
4
  "package": "@metagptx/deepflow-suite-cli",
5
- "version": "0.2.4",
5
+ "version": "0.2.5",
6
6
  "platform": "any",
7
7
  "arch": "any",
8
8
  "cli": {
9
9
  "name": "deepflow-suite",
10
10
  "package": "@metagptx/deepflow-suite-cli",
11
- "version": "0.2.4",
11
+ "version": "0.2.5",
12
12
  "command": "deepflow-suite"
13
13
  },
14
14
  "skills": [
@@ -19,7 +19,7 @@
19
19
  {
20
20
  "path": "manifest.yaml",
21
21
  "size": 362,
22
- "sha256": "0c0675ab463b18a05d7903956cbd307a7952d71d0f1c8dfc672b1314c285e991"
22
+ "sha256": "afd23f0ad1d0c1967274391000eb8d4ad92a14071b8ef8ac9b101c24b5c325fe"
23
23
  },
24
24
  {
25
25
  "path": "SKILL.md",
@@ -90,8 +90,8 @@
90
90
  },
91
91
  {
92
92
  "path": "SKILL.md",
93
- "size": 12929,
94
- "sha256": "7568468972badececb0a82fd47a90b044da30142ad1df12bcc45f6b8735c0cdb"
93
+ "size": 15347,
94
+ "sha256": "2a45f890bffab946701ab38c07d7ccb91056d881b77bccffcf3a7c03ce35a8b8"
95
95
  }
96
96
  ]
97
97
  },
@@ -138,8 +138,8 @@
138
138
  "files": [
139
139
  {
140
140
  "path": "SKILL.md",
141
- "size": 10329,
142
- "sha256": "a18557c3dac45c0ef90eee38c2e31099c5045c9b898c842e5e16cecce8d5452a"
141
+ "size": 12164,
142
+ "sha256": "16ce0068a76a210231cb92913d12a39c2c94a779216e84125639febfcc0ce73f"
143
143
  }
144
144
  ]
145
145
  },
@@ -1,5 +1,5 @@
1
1
  id: deepflow-suite
2
- version: 0.2.4
2
+ version: 0.2.5
3
3
  kind: composite-skill
4
4
  requires:
5
5
  skills:
@@ -23,7 +23,9 @@ multica repo checkout <URL>
23
23
  其余的 `multica` 子命令敲下去都会被明确拒绝,stderr 上会告诉你这里没有这个东西、
24
24
  以及改做什么。那些拒绝信息是给你看的,照着做就行,**不要换个写法重试**。
25
25
 
26
- 你自己的能力在 `df-agentrt` 上,已经在 PATH 里,不需要定位路径。
26
+ 你自己的能力在 `df-agentrt` 上。Runtime 镜像通过标准 PATH 提供 `df-task`、`df-agentctrl`、`df-agentrt` 和 `multica` shim,普通 shell 与登录 shell 均应可直接调用。命令缺失或 `--help` 失败属于执行环境异常:报告并结束,不要在 Run 中安装、编译 CLI 或猜绝对路径反复尝试。
27
+
28
+ Skill 内容通过 provider 的原生目录交付,以当前会话的 Skill 目录清单为准。清单中的 `r0` 等是根目录别名,打开前先展开,不能拼成 `skills/r0/...`。Codex 的 Runtime Skills 在 `$CODEX_HOME/skills/<slug>/SKILL.md`;Claude 在任务工作目录的 `.claude/skills/<slug>/SKILL.md`。支持文件相对该 Skill 目录读取。`$DEEPFLOW_WORKDIR` 表示任务工作目录,不是通用 Skill 根目录。
27
29
 
28
30
  ## 目标环境门禁与地址
29
31
 
@@ -85,8 +87,7 @@ release 只停止新轮次。归档、对象存储和本地清理属于后续生
85
87
 
86
88
  ## 取消是协作式的
87
89
 
88
- 被取消时你不会被当场杀掉:状态先变成 `cancelled`,你会收到停止的请求,
89
- 然后有时间收尾。收到取消请求就**尽快收尾并把已有的结论说出来**,
90
+ 取消请求被接受不等于执行已经停止:先出现 `cancel_requested`,终态由 Runtime 后续确认。你收到停止请求时应尽快收尾。收到取消请求就**尽快收尾并把已有的结论说出来**,
90
91
  不要假装无事发生继续跑,也不要因为被取消就什么都不留下。
91
92
 
92
93
  ---
@@ -97,7 +98,7 @@ release 只停止新轮次。归档、对象存储和本地清理属于后续生
97
98
  本会话(不需要会话 id,它自己知道是哪个)
98
99
  df-agentrt session info 你是谁:provider、model、工作目录、仓库,
99
100
  以及上一轮的对话历史有没有续上
100
- df-agentrt session turns 这个会话到目前为止的每一轮
101
+ df-agentrt session turns [--json] 这个会话到目前为止的每一轮
101
102
  df-agentrt events [--after N] 消息流,一行一条
102
103
  df-agentrt repo list 本会话可以检出哪些仓库
103
104
  df-agentrt repo search <应用名> 按应用名找仓库
@@ -106,15 +107,22 @@ release 只停止新轮次。归档、对象存储和本地清理属于后续生
106
107
 
107
108
  别的会话(必须显式给会话 id)
108
109
  df-agentrt session ls 这个 runtime 上的会话
109
- df-agentrt session get <会话id> 某个会话的完整信息
110
+ df-agentrt session get <会话id> [--json] 某个会话的完整信息
111
+ df-agentrt session turns --session <会话id> [--json] 指定会话的轮次状态
112
+ df-agentrt events --session <会话id> [--after N] [--limit N] [--raw]
113
+ 指定会话的消息流
110
114
  df-agentrt session create ... 新建会话 💰
111
115
  df-agentrt msg send <会话id> <文本> 给别的会话排一轮 💰
112
116
 
113
117
  运行时
114
- df-agentrt ops runtimes 执行引擎注册了哪些、还活着哪些
118
+ df-agentrt ops runtimes [--json] 执行引擎注册了哪些、还活着哪些
115
119
  df-agentrt ops orphans 记录和现实哪里对不上(只读)
116
120
  ```
117
121
 
122
+ 只读查询省略 `--session` 时,`session turns` 和 `events` 仍查询当前会话。查询其他会话必须显式给 Runtime Session ID;业务 Run ID 不是 Session ID。只在 `session get`、`session turns`、`ops runtimes` 使用 `--json`;`events --raw` 是带事件前缀的原始 payload 展示,不是纯 JSON。
123
+
124
+ 需要按已授权的指令取消另一轮时,先从 Task 的 `invocation_accepted` 事实取得准确的 Runtime Session/Invocation 映射,用 `session turns --session <session-id> --json` 核对,再执行 `df-agentrt msg cancel <invocation-id>`。不带参数会取消**当前轮**;不要把 Run ID 或 Session ID 传给 cancel。接受取消后,核对同一 Invocation 已到终态,再写 `run_terminated`;消息流安静或命令返回成功都不足以证明停止。
125
+
118
126
  ## 业务 metadata 与软范围查询
119
127
 
120
128
  Runtime Session 可以携带业务方自定义的 JSON metadata。基础服务只约定顶层的 source、
@@ -142,7 +150,7 @@ Runtime 也不会从登录身份或当前会话自动推断业务范围。
142
150
 
143
151
  当前 session info、session get 和 session ls 的人类可读输出不会打印 metadata 原文,
144
152
  不要把输出中没有 metadata 理解成 Session 没有 metadata。需要核对原值时读取 Runtime API 的
145
- JSON 响应;CLI 过滤仍然可以正常使用。
153
+ JSON 响应(`df-agentrt session get <session-id> --json`);CLI 过滤仍然可以正常使用。
146
154
 
147
155
  💰 这两条会**真的跑起来一个 agent**,花的是真钱。而且新建的会话**不会自己结束**——
148
156
  它会一直占着一个工作目录,直到有人显式 release 它。确认你真的需要另一个会话再用,
@@ -52,12 +52,9 @@ df-task --base-url https://deepflowtask.dev.deepwisdomai.com facts "$DF_TASK_ID"
52
52
  **在 Run 里一律加 `--json`。** 不加 `--json` 的输出是给人看的排版,字段随时会调整。
53
53
 
54
54
  ```bash
55
- # 读本 Task 的全部事实
56
- df-task facts "$DF_TASK_ID" --json
57
-
58
- # 只读某几类,或从某个序号往后读
55
+ # 按本轮需要选择事实类型(选择标准见「读日志」)
59
56
  df-task facts "$DF_TASK_ID" --types user_message,artifact_published --json
60
- df-task facts "$DF_TASK_ID" --after 128 --json
57
+ df-task facts "$DF_TASK_ID" --types user_message,artifact_published --after 128 --limit 100 --json
61
58
 
62
59
  # 追加一条事实:payload 写成 JSON 文件再传
63
60
  # 注意 heredoc 的标记不加引号,加了引号 $DF_RUN_ID 就不会展开
@@ -115,16 +112,36 @@ df-task stream \
115
112
  metadata 只影响读请求的范围。`append`、`dispatch`、`wait`、`handoff` 和 `title` 仍按明确的
116
113
  Task ID 操作,不支持 metadata 过滤参数;事实服务不会根据 metadata 做鉴权。
117
114
 
118
- 命令不存在时,本项目源码可用的话在 `deepflow-task/` 下运行 `make install-cli`,它把 `df-task` 装到 `$HOME/.local/bin`。**注意不要把 runtime 的地址填成 Task 服务的地址** —— `df-agentrt` 和 `df-task` 是两个服务、两个端口、两套授权。
115
+ 托管 Run 中 `df-task` 由 Runtime 镜像提供。命令缺失或 `--help` 无法执行时,报告执行环境异常并结束;不要在 Run 中安装、编译 CLI 或猜测绝对路径来继续。非托管的本地开发可按项目 README 安装 CLI。**注意不要把 runtime 的地址填成 Task 服务的地址** —— `df-agentrt` 和 `df-task` 是两个服务、两个端口、两套授权。
119
116
 
120
117
  ## 读日志
121
118
 
122
- 1. 先 `df-task facts "$DF_TASK_ID" --json` 通读一遍,搞清这件工作已经发生过什么
123
- 2. 关心产物就加 `--types artifact_published`;关心人说了什么就加 `--types user_message`
124
- 3. 产物事实里存的是**引用坐标,不是内容**。要看 diff、spec、MR 的正文,拿着 `ref` 自己去外部系统取
125
- 4. 要分页往后读就用上一页返回的 `next_after_seq` 当下一次的 `--after`
119
+ 先确定本轮要作出的判断,再按需选择事实;不要求每轮先通读全部日志。当前描述与版本用上文的 `get` 读取,事实用于补足决策依据。
120
+
121
+ | 要判断什么 | 优先读取的类型 |
122
+ | --- | --- |
123
+ | 用户新增的要求、补充信息或外部结果 | `user_message,external_result`;同时检查消息的 `wake_policy` |
124
+ | 是否已经派发、Run 对应哪个 Runtime Session/Invocation、是否仍在执行 | `dispatch_intent,invocation_started,invocation_accepted,invocation_ended,run_terminated,attempt_failed` |
125
+ | 执行结果、待办与阻塞 | `summary,run_outcome,help_requested`;核对交付物时再读 `artifact_published` |
126
+ | 已有等待、人工接手或裁决是否影响本轮 | `waiting_reason,handoff_to_human,adjudication`;涉及 Task 生命周期时再读 `task_lifecycle` |
127
+
128
+ 这些是选择标准,不是每轮必须执行的四组查询。调度 Run 在再次派发前要查清相关派发与执行事实,避免重复工作;任务 Run 按交给自己的目标和引用补充上下文,无需重建整个调度历史。已有摘要不能代替被引用的关键事实;证据不足、存在矛盾或无法定位关联时,扩大类型和时间范围,必要时通读日志。同一轮已读到且仍适用的事实可以复用。
129
+
130
+ ```bash
131
+ # 示例:核对是否已派发,以及对应的执行状态
132
+ df-task facts "$DF_TASK_ID" \
133
+ --types dispatch_intent,invocation_started,invocation_accepted,invocation_ended,run_terminated,attempt_failed \
134
+ --limit 100 --json
135
+ ```
136
+
137
+ 分页与完整性:
126
138
 
127
- 序号有空洞,且落库顺序不保证与序号顺序一致。一次读不完就接着读,不要假设「序号连续就是读全了」。
139
+ - 响应按 `seq` 升序,`--limit` 默认 200、最大 1000,**不是取最新 N 条**。`--after` 排除给定序号;下一页用响应的 `next_after_seq`,保持同一 Task、类型和 metadata 过滤条件。
140
+ - 首次读取某组类型时,没有已确认的读取进度就从头读。更换类型不能复用另一组的游标;Driver 的输入水位也不是 Agent 已读游标,不能直接拿它作 `--after` 跳过本轮触发事实。
141
+ - `next_after_seq` 始终返回,即使空页也会保留输入游标;它不是“还有下一页”的标志。非空页可用它继续读取,空页停止;要断言“没有派发/结果”等不存在结论,必须读完相关范围。分页未完、类型未覆盖或只读摘要时,不能把没看到当成不存在。
142
+ - 序号有空洞,落库顺序也不保证与序号顺序一致;游标表示本次查询进度,不代表之前的序号永远不会再出现。关键判断证据矛盾时回查相关范围,不按连续序号推断读全。
143
+ - API 不支持按 `run_id` 过滤、精确查单个 `seq` 或倒序取尾页。返回中按关联字段核对 Run/引用;不要尝试不存在的参数。
144
+ - `artifact_published` 只有引用坐标。需要 diff、spec、MR 正文时,用 `ref` 到对应系统读取。
128
145
 
129
146
  ## 任务 Run 可以写什么
130
147
 
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "distribution": "deepflow-suite",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "skills": [
5
5
  {
6
6
  "name": "deepflow-suite",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metagptx/deepflow-suite-cli",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "description": "Agent-friendly installer and distribution CLI for the DeepFlow suite.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -26,11 +26,11 @@
26
26
  "access": "public"
27
27
  },
28
28
  "optionalDependencies": {
29
- "@metagptx/deepflow-suite-cli-darwin-arm64": "0.2.4",
30
- "@metagptx/deepflow-suite-cli-darwin-x64": "0.2.4",
31
- "@metagptx/deepflow-suite-cli-linux-arm64": "0.2.4",
32
- "@metagptx/deepflow-suite-cli-linux-x64": "0.2.4",
33
- "@metagptx/deepflow-suite-cli-win32-x64": "0.2.4"
29
+ "@metagptx/deepflow-suite-cli-darwin-arm64": "0.2.5",
30
+ "@metagptx/deepflow-suite-cli-darwin-x64": "0.2.5",
31
+ "@metagptx/deepflow-suite-cli-linux-arm64": "0.2.5",
32
+ "@metagptx/deepflow-suite-cli-linux-x64": "0.2.5",
33
+ "@metagptx/deepflow-suite-cli-win32-x64": "0.2.5"
34
34
  },
35
35
  "engines": {
36
36
  "node": ">=22.13.0"
@@ -1,5 +1,5 @@
1
1
  id: deepflow-suite
2
- version: 0.2.4
2
+ version: 0.2.5
3
3
  kind: composite-skill
4
4
  requires:
5
5
  skills: