@spzxg/cli-ui 0.6.1 → 0.6.2

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.
package/README.md CHANGED
@@ -18,7 +18,7 @@ import "@spzxg/cli-ui/styles.css";
18
18
 
19
19
  <CliChat jobId="job_xxx" /> // 打开已有对话(对话任务的第一个对话)
20
20
  <CliChat jobId="job_xxx" taskId="task_yyy" /> // 对话任务里的某个对话;taskId="new" 新开一个
21
- <CliChat jobId="job_batch" taskId="task_zzz" /> // 一次性任务 / 续派的子任务:运行中只能看,结束后可以接着它聊
21
+ <CliChat jobId="job_batch" taskId="task_zzz" /> // 一次性子任务:运行中可排队输入,支持暂停 / 继续
22
22
  <CliChat jobId={null} newConversation={{ title: "周报", businessId: "biz-1" }} /> // 新对话
23
23
  <CliMsgList jobIds={["job_xxx"]} onSelect={setJobId} /> // 列表
24
24
  ```
@@ -187,6 +187,10 @@ await store.send(jobId, text);
187
187
 
188
188
  cli-chat 的顶部栏(面包屑、标题、智能体、用量、模型、状态、结束对话)缺省全部隐藏,需要哪项写哪项。各种状态(未开始、进行中、已完成……)缺省都不显示:要显示打开 chat 的 `header.status`、`transcript.status`,list 的 `card.status`(卡片状态)、`grouped`(按状态分组)。所有配置项和缺省值都在 [`src/core/config.ts`](src/core/config.ts) 里,每一项都有注释。Web Component 上用 `config='{"header":{"title":true}}'`。
189
189
 
190
+ 已随项目上下文发送的初始提示缺省不渲染正文、头像或徽标;需要查看时设置 `transcript.initialPrompt: true`,`initialBadge` 只控制显示后的标记。后续消息不受影响,初始提示仍保留在原始记录和导出内容中。列表顶部手动刷新按钮缺省隐藏,需要时设 `header.refresh: true`,自动更新照常运行。
191
+
192
+ `header.export: true` 在标题栏操作区显示「导出」,点击直接下载 Markdown(初始上下文、消息和工具记录)。导出范围为已加载的记录;还有未加载历史时按钮显示「导出已加载」。输入区把附件、发送和执行控制分开显示。任务运行 / 暂停期间保留可编辑输入框,新消息排队执行;后端不支持发送或连接错误时仍保留输入框和草稿,并提示原因。宿主显式设置 `composer: false` 或 `readOnly` 时隐藏输入框。
193
+
190
194
  上传附件(`composer.fileUpload`,缺省开)只收文档:Word(.docx)、Excel(.xlsx / .xlsm)、Markdown、TXT、HTML、CSV / TSV。都在浏览器里转成文字、作为可折叠的附件随消息发出:Excel 每个工作表一段 CSV(日期写成 2026-08-10、百分比写成 0.6%),HTML 保留源码(内嵌的大段 data: 图片换成占位),GBK 导出的 CSV / TXT 不乱码。图片、PDF、压缩包等不收;老版 .doc / .xls 提示另存为 .docx / .xlsx。
191
195
 
192
196
  ## 事件
@@ -207,7 +211,9 @@ cli-chat 的顶部栏(面包屑、标题、智能体、用量、模型、状
207
211
 
208
212
  `<CliChat jobId taskId>` 两个参数,或者把对话键整个交给 `jobId` 都可以。cli-msglist 里开了几个对话的任务按对话展开,卡片上的「+」新开对话;`onSelect(id, { jobId, taskId })` 的 `id` 就是对话键,直接交给 CliChat 即可。指定了对话时,「结束对话」只关这一个(`POST /api/jobs/:id/conversations/:taskId/close`),没指定时结束整个对话任务。工具函数 `convKey` / `parseConvKey` 从包里导出。
209
213
 
210
- 一次性任务(含续派,`mode` 不是 `conversation`)也能交给 CliChat:只读显示一个子任务的执行过程(没有输入框和「结束对话」,状态是子任务的状态)。`taskId` 指定看哪个子任务,不给看最近派发的那个(续派开出新的子任务后自动跟过去)。转录里中枢的派发标记行(`[CENTER-ATTEMPT…]`)去掉,完成核对(`[CENTER-CONFIRM]`)合成一行说明。需要 0.3.1 + 中枢实时流支持 `?task=`;0.3.0 打开这类任务会一直「正在重连」。
214
+ 一次性任务(含续派,`mode` 不是 `conversation`)也能交给 CliChat:显示子任务执行过程,运行中允许输入,发送后通过 `continueTask` 排到同一对话后面。`taskId` 指定看哪个子任务,不给看最近派发的那个(续派开出新的子任务后自动跟过去)。转录里中枢的派发标记行(`[CENTER-ATTEMPT…]`)去掉,完成核对(`[CENTER-CONFIRM]`)合成一行说明。需要中枢实时流支持 `?task=` 和续派接口。
215
+
216
+ `composer.stop` 缺省开启执行控制:普通对话仍停止当前轮次;一次性子任务通过 `pauseTask` / `resumeTask` 显示「暂停 / 继续」,只操作当前对话执行链中的子任务。暂停会中止当前执行,继续会重新派发该子任务,排队消息随后执行;不是进程原地冻结。自定义后端没有提供这两个可选方法时不显示暂停 / 继续按钮。
211
217
 
212
218
  例外是对话式续派的子任务(续派时 `mode: "conversation"`):用 `taskId` 打开它就是一个能一直聊下去的对话——有输入框,不显示「子任务已完成」之类的状态;每发一条 = 续派一条 `continue_from` 这个子任务的子任务(接在同一个 Agent 会话里),对话键不变。需要 0.4.0 + 同版本中枢。
213
219
  - Web Component 上监听 `cli-turn-end` / `cli-conversation-end` / `cli-event` 事件。