superun-ai-cli 0.1.13 → 0.1.15

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.
Files changed (61) hide show
  1. package/INSTALL.md +19 -2
  2. package/README.en.md +78 -36
  3. package/README.md +70 -41
  4. package/dist/api/agent-command-api.d.ts +2 -0
  5. package/dist/api/agent-command-api.js +6 -0
  6. package/dist/api/agent-command-api.js.map +1 -1
  7. package/dist/api/agent-query-api.d.ts +10 -2
  8. package/dist/api/agent-query-api.js +30 -2
  9. package/dist/api/agent-query-api.js.map +1 -1
  10. package/dist/cli.js +13 -3
  11. package/dist/cli.js.map +1 -1
  12. package/dist/commands/chat/index.js +2 -0
  13. package/dist/commands/chat/index.js.map +1 -1
  14. package/dist/commands/chat/retry.d.ts +4 -0
  15. package/dist/commands/chat/retry.js +24 -0
  16. package/dist/commands/chat/retry.js.map +1 -0
  17. package/dist/commands/chat/style.js +27 -9
  18. package/dist/commands/chat/style.js.map +1 -1
  19. package/dist/commands/shared.js +8 -0
  20. package/dist/commands/shared.js.map +1 -1
  21. package/dist/contracts/cli-output.d.ts +8 -0
  22. package/dist/conversation/insufficient-credits.d.ts +14 -0
  23. package/dist/conversation/insufficient-credits.js +92 -0
  24. package/dist/conversation/insufficient-credits.js.map +1 -0
  25. package/dist/conversation/next-actions.d.ts +1 -1
  26. package/dist/conversation/next-actions.js +28 -51
  27. package/dist/conversation/next-actions.js.map +1 -1
  28. package/dist/conversation/state-resolver.js +24 -14
  29. package/dist/conversation/state-resolver.js.map +1 -1
  30. package/dist/conversation/style-generation.d.ts +13 -0
  31. package/dist/conversation/style-generation.js +177 -0
  32. package/dist/conversation/style-generation.js.map +1 -0
  33. package/dist/conversation/style-guidance.d.ts +5 -0
  34. package/dist/conversation/style-guidance.js +88 -0
  35. package/dist/conversation/style-guidance.js.map +1 -0
  36. package/dist/conversation/style-planning.d.ts +4 -0
  37. package/dist/conversation/style-planning.js +44 -0
  38. package/dist/conversation/style-planning.js.map +1 -0
  39. package/dist/interactions/handlers/index.js +1 -1
  40. package/dist/interactions/handlers/index.js.map +1 -1
  41. package/dist/interactions/handlers/reply-prd.js +28 -5
  42. package/dist/interactions/handlers/reply-prd.js.map +1 -1
  43. package/dist/interactions/parsers/style-selection.js +12 -4
  44. package/dist/interactions/parsers/style-selection.js.map +1 -1
  45. package/dist/interactions/questions.d.ts +0 -5
  46. package/dist/interactions/questions.js +0 -1
  47. package/dist/interactions/questions.js.map +1 -1
  48. package/dist/output/writer.js +2 -0
  49. package/dist/output/writer.js.map +1 -1
  50. package/dist/runtime.d.ts +3 -1
  51. package/dist/runtime.js +72 -34
  52. package/dist/runtime.js.map +1 -1
  53. package/dist/update/installation.d.ts +7 -0
  54. package/dist/update/installation.js +59 -0
  55. package/dist/update/installation.js.map +1 -0
  56. package/dist/update/npm-registry.d.ts +1 -0
  57. package/dist/update/npm-registry.js +101 -17
  58. package/dist/update/npm-registry.js.map +1 -1
  59. package/dist/update/version-gate.js +33 -37
  60. package/dist/update/version-gate.js.map +1 -1
  61. package/package.json +4 -2
package/INSTALL.md CHANGED
@@ -11,6 +11,8 @@
11
11
 
12
12
  ## 1. 检查环境
13
13
 
14
+ 本指南中的 npm 命令表示要执行的参数。AI 安装助手执行任何 npm 命令(包括 `--version`、`view` 和 `install`)时,都必须按下一节隔离配置与子进程环境,不能直接继承当前 Shell 的全部配置。
15
+
14
16
  ```bash
15
17
  node --version
16
18
  npm --version
@@ -20,12 +22,24 @@ npm --version
20
22
 
21
23
  如果 `superun-ai` 已存在,先检查其路径及 `superun-ai version`,区分 npm 安装和源码目录链接。保留现有凭据及用户未提交的代码,不卸载或覆盖其他工具。
22
24
 
25
+ WorkBuddy 等工具可能使用自带 Node/npm,与普通终端的安装位置不同。安装助手应在实际执行业务的环境里完成安装与验证,不把区分环境、查 PATH 或手动升级交给用户。使用当前 Node 对应的 npm;不要根据另一套终端的安装结果判断当前工具已经可用,也不要切换出宿主允许的执行环境。
26
+
23
27
  ## 2. 通过 npm 安装
24
28
 
29
+ ### 安装助手的无凭证执行方式
30
+
31
+ 首次安装、版本查询及旧版升级统一使用以下方式;由安装助手准备并执行,不要求用户读取凭证或修改自己的 npm 配置:
32
+
33
+ - 按当前 Node 和 PATH 定位 npm 可执行文件,解析符号链接得到 `npm-cli.js`,通过当前 Node 直接启动它;不读取 `.npmrc` 来定位 npm,也不执行 `npm config list/get`。
34
+ - 为 npm 子进程新建环境,只传系统运行所需的 PATH、HOME、临时目录、Windows 系统目录、语言,以及代理、CA/证书、缓存配置。不要复制整个环境后仅删除几个已知 Token 名;不传 npm Token、Superun PAT、其他业务凭证和 `NODE_OPTIONS`。主进程中的 Superun 登录配置保持不变。
35
+ - 在子进程中固定 `npm_config_userconfig = os.devNull`、`npm_config_globalconfig = path.join(os.devNull, 'superun-empty-npmrc')`、`npm_config_global = 'true'`、`npm_config_registry = 'https://registry.npmjs.org/'`,不继承其他 npm 配置。两份空配置使用不同路径;全局模式跳过项目 `.npmrc`。跨平台路径由 Node 的 `node:os`、`node:path` 计算。
36
+ - 使用下列命令参数安装公开包,并关闭安装脚本、审计与捐助提示。捕获 npm 输出,只报告安装结果、版本或错误码,不把 npm 原始日志发给模型,也不通过打印环境变量排查认证。
37
+ - 旧版在启动更新前被拦截时,不反复执行旧版业务命令;在同一 Node 环境按上述方式安装新版,再验证 `superun-ai version`。安装来源、权限或网络问题应如实报告,不要求用户关闭宿主的敏感信息保护。
38
+
25
39
  `superun-ai-cli` 已发布到 npm,默认安装公开包,无需 Git、源码构建或 npm 发布账号:
26
40
 
27
41
  ```bash
28
- npm install -g superun-ai-cli --registry=https://registry.npmjs.org
42
+ npm install -g superun-ai-cli --registry=https://registry.npmjs.org --ignore-scripts --no-audit --no-fund
29
43
  ```
30
44
 
31
45
  需要核对当前发布版本时,可以只读查询:
@@ -37,11 +51,14 @@ npm view superun-ai-cli name version dist-tags --registry=https://registry.npmjs
37
51
  - 安装成功后继续验证命令,再引导用户登录 Superun。
38
52
  - 如果返回 `E404`、网络、证书、权限或其他错误,如实说明并检查 npm 官方 Registry 的访问情况,不自动切换包名、镜像源或源码安装方式。
39
53
  - 更新现有安装时,保留用户的 Superun 凭据;不要求重新导入 PAT。
54
+ - 公开包安装、版本查询及旧入口修复均由安装助手在当前执行环境完成。使用当前 Node 启动对应 npm,以空用户/全局配置执行,禁止读取用户 npmrc 或继承 npm 登录 Token;保留必要的代理和证书环境变量。不要把 npm 凭证授权、环境切换或升级命令转交给用户,也不要关闭宿主的权限保护。
40
55
 
41
56
  ### 可选:用户明确要求从源码安装
42
57
 
43
58
  需要 Git 和仓库访问权限。先确认安装目录;若已有本仓库,复用该目录并检查 `git status` 和 remote,不覆盖未提交改动、不强制切换分支。
44
59
 
60
+ 源码安装的 `npm ci` 使用本地模式,并将用户、全局配置指向上述空路径;若项目 `.npmrc` 需要私有源认证,说明具体依赖要求,不读取凭证明文。构建显式执行项目脚本,不使用公开包安装的 `--ignore-scripts` 替代构建。
61
+
45
62
  新目录安装示例:
46
63
 
47
64
  ```bash
@@ -67,7 +84,7 @@ superun-ai version
67
84
 
68
85
  确认命令可以启动。若提示找不到命令,检查当前终端的 `PATH`、所用 Node.js 安装及 npm 全局目录;不要把它误判为业务登录失败。不要通过全量打印环境变量来排查,避免泄露凭据。
69
86
 
70
- 业务命令会先检查 npm `latest`,本地版本不一致时自动安装并继续;也可以用 `superun-ai update` 主动同步。若版本校验失败,先处理 Registry 访问或安装错误,不清除 Superun 凭据。
87
+ 业务命令会先检查 npm `latest`,在独立目录安装并验证新版,切换默认执行入口后继续;原 npm 安装作为启动入口保留,普通终端和工具自带环境各自维护版本。业务执行不清理旧版本或失败安装目录,不通过原地全局更新触发旧包批量删除。版本查询或更新失败时停止业务,不回退旧版继续请求。公开包更新不需要 npm 登录 Token,不让模型读取 npm 凭证明文。版本校验失败时先处理 Registry 访问或安装错误,不清除 Superun 凭据。旧入口如在加载新版之前就失败,由安装助手在同一环境完成一次升级并验证,再继续用户任务,不要求用户自行查路径或敲命令;宿主要求权限时仍按实际授权流程处理。
71
88
 
72
89
  ## 4. 引导用户登录
73
90
 
package/README.en.md CHANGED
@@ -68,45 +68,54 @@ superun-ai chat style generate --help
68
68
 
69
69
  ## Command tree
70
70
 
71
+ This reference is for developers and integrating agents, not a user-facing menu. Execute `nextActions.command` / `input` internally and show users only status, results, and necessary questions. After style selection, keep demo transitions, version preservation, development entry, and initial plan approval silent. Credit errors, execution failures, and real business questions must still be shown.
72
+
71
73
  The tree below lists command groups, positional arguments, and their purpose. Replace required arguments written as `<...>` with actual values. Use each command's `--help` to see its options and requirements.
72
74
 
73
75
  ```text
74
76
  superun-ai
75
- ├── auth # Manage PAT login
76
- │ ├── login # Sign in and save a PAT
77
- │ ├── status # Check local PAT configuration
78
- │ └── logout # Remove the locally saved PAT
79
- ├── session # Query projects
80
- │ ├── list # List projects
81
- │ └── get <sessionId> # Get project details
82
- ├── chat # Conversational creation
83
- │ ├── create # Create a project and send a request
84
- │ ├── send <sessionId> # Continue the conversation
85
- │ ├── state <sessionId> # Inspect the task and interactions
86
- │ ├── wait <sessionId> # Wait for input or a task result
87
- │ ├── stop <sessionId> # Stop the remote task
88
- │ ├── style # Manage creative styles
89
- │ │ ├── generate <sessionId> # Generate style candidates
90
- │ │ ├── list <sessionId> # List style batches
91
- │ │ └── select <sessionId> <choiceId> # Choose a style and generate the development plan
92
- │ ├── demo <sessionId> # View the demo and record it as viewed
93
- │ ├── develop <sessionId> # Keep the demo and plan development
94
- │ ├── interaction # Answer or skip interactions
95
- │ │ ├── reply <sessionId> <interactionId> # Submit an answer
96
- │ │ └── skip <sessionId> <interactionId> # Skip an eligible interaction
97
- │ ├── plugin # Query, enable, and disable plugins
98
- │ │ ├── list <sessionId> # List available plugins
99
- │ │ ├── status <sessionId> <pluginId> # Inspect a plugin
100
- │ │ ├── enable <sessionId> <pluginId> # Enable a plugin
101
- │ │ └── disable <sessionId> <pluginId> # Disable a plugin
102
- │ └── publish # Publish applications and manage visibility
103
- │ ├── status <sessionId> # Query versions and deployment progress
104
- │ ├── start <sessionId> <encryptedId> # Publish a specific version
105
- │ └── visibility <sessionId> <visibility> # Make the site public or private
106
- ├── update # Check and install the required version
107
- └── version # Show local and output-schema versions
77
+ ├── auth # Manage PAT login
78
+ │ ├── login # Sign in and save a PAT
79
+ │ ├── status # Check local PAT configuration
80
+ │ └── logout # Remove the locally saved PAT
81
+ ├── session # Query projects
82
+ │ ├── list # List projects
83
+ │ └── get <sessionId> # Get project details
84
+ ├── chat # Conversational creation
85
+ │ ├── create # Create a project and send a request
86
+ │ ├── send <sessionId> # Continue the conversation
87
+ │ ├── test <sessionId> # Test existing functionality and repair identified issues
88
+ │ ├── review <sessionId> # Review existing code and repair identified issues
89
+ │ ├── state <sessionId> # Inspect the task and interactions
90
+ │ ├── wait <sessionId> # Wait for input or a task result
91
+ │ ├── stop <sessionId> # Stop the remote task
92
+ │ ├── retry <sessionId> <messageId> # Retry the original failed task after recharging
93
+ │ ├── style # Manage creative styles
94
+ │ │ ├── generate <sessionId> # Generate style candidates
95
+ │ │ ├── list <sessionId> # List style batches
96
+ │ │ ├── append <sessionId> # Generate one additional design from existing requirements
97
+ │ │ ├── retry <sessionId> <choiceId> # Retry the original failed style task
98
+ │ │ └── select <sessionId> <choiceId> # Choose a style and show the development feature list
99
+ │ ├── demo <sessionId> # View the demo and record it as viewed
100
+ │ ├── develop <sessionId> # Keep the demo and plan development
101
+ │ ├── interaction # Answer or skip interactions
102
+ │ │ ├── reply <sessionId> <interactionId> # Submit an answer
103
+ │ │ └── skip <sessionId> <interactionId> # Skip an eligible interaction
104
+ │ ├── plugin # Query, enable, and disable plugins
105
+ │ │ ├── list <sessionId> # List available plugins
106
+ │ │ ├── status <sessionId> <pluginId> # Inspect a plugin
107
+ │ │ ├── enable <sessionId> <pluginId> # Enable a plugin
108
+ │ │ └── disable <sessionId> <pluginId> # Disable a plugin
109
+ │ └── publish # Publish applications and manage visibility
110
+ │ ├── status <sessionId> # Query versions and deployment progress
111
+ │ ├── start <sessionId> <encryptedId> # Publish a specific version
112
+ │ └── visibility <sessionId> <visibility> # Make the site public or private
113
+ ├── update # Check and update to the latest CLI version
114
+ └── version # Show local and output-schema versions
108
115
  ```
109
116
 
117
+ Run `npm run docs:sync` after changing command registration to update both command trees. `npm run docs:check` validates their completeness; `prepack` also checks them before packaging.
118
+
110
119
  ## PAT login
111
120
 
112
121
  ```bash
@@ -193,14 +202,47 @@ For secret input, submit `{"values":{"requested-key":"secret-value"}}` with only
193
202
 
194
203
  `chat interaction reply --no-wait` controls waiting for subsequent creation after the reply has been processed. Some plugin configuration steps must finish in the foreground before submitting their interaction result; this option does not skip those steps. After an interruption, check the plugin and conversation states first.
195
204
 
205
+ ## Automatic testing and code review
206
+
207
+ ```bash
208
+ superun-ai chat test <sessionId>
209
+ superun-ai chat test <sessionId> --message "Verify login and logout"
210
+ superun-ai chat review <sessionId>
211
+ superun-ai chat review <sessionId> --message "Review capacity updates and cancellation handling"
212
+ superun-ai chat send <sessionId> --test-followup <sourceMessageId> --message "Fix issue 2"
213
+ superun-ai chat send <sessionId> --review-followup <sourceMessageId> --message "Fix issue 2"
214
+ ```
215
+
216
+ Use the actual report `sourceMessageId` for follow-ups. Display the returned findings and follow the current `nextActions`; do not invent test results or approve unresolved business decisions.
217
+
218
+ ## Insufficient credits and retrying
219
+
220
+ When a request or running task fails because of insufficient credits, open [superun.ai](https://superun.ai) to recharge, then reply “Retry”. The CLI does not retry automatically while waiting for the user.
221
+
222
+ - A rejected request: repeat the original operation with its original input after recharging; do not retry an earlier completed message.
223
+ - A failed running task: use the returned `RECHARGE_AND_RETRY` command. It checks the balance and calls Glow's existing retry API for the current failed message. Completed, running, or stale messages are rejected.
224
+ - Owner or team balance failures require funding the corresponding account. Member monthly/total quota failures require an administrator to adjust the quota.
225
+
226
+ ```bash
227
+ superun-ai chat retry <sessionId> <messageId>
228
+ superun-ai chat retry <sessionId> <messageId> --no-wait
229
+ superun-ai chat retry <sessionId> <messageId> --timeout 120
230
+ ```
231
+
232
+ Use the actual failed agent message ID from `nextActions.command`, not a user message ID or a style `choiceId`. Retry waits for the result by default. With `--no-wait`, follow the returned guidance to check progress after the request is accepted. Failed style candidates use `chat style retry <sessionId> <choiceId>` instead.
233
+
196
234
  ## Styles, plugins, and publishing
197
235
 
198
236
  Interactions, styles, plugins, and publishing belong under `chat`. Use `chat interaction`, `chat style`, `chat plugin`, and `chat publish`; they are not top-level commands.
199
237
 
200
238
  ```bash
201
- superun-ai chat style generate <sessionId> --content "Create a clean brand style" --count 2
239
+ superun-ai chat style generate <sessionId> --content "Create a clean brand style"
202
240
  superun-ai chat style list <sessionId>
241
+ superun-ai chat style append <sessionId> --anchor <branchAnchor>
242
+ superun-ai chat style retry <sessionId> <choiceId>
203
243
  superun-ai chat style select <sessionId> <choiceId>
244
+ superun-ai chat demo <sessionId>
245
+ superun-ai chat develop <sessionId>
204
246
 
205
247
  superun-ai chat plugin list <sessionId>
206
248
  superun-ai chat plugin status <sessionId> <pluginId>
@@ -213,13 +255,13 @@ superun-ai chat publish visibility <sessionId> public
213
255
  superun-ai chat publish visibility <sessionId> private
214
256
  ```
215
257
 
216
- Style generation defaults to two candidates and supports one to four. Use the returned `choiceId` to select a style. Publishing uses the returned `encryptedId` and tracks the selected version's deployment. Plugin IDs come from `chat plugin list`.
258
+ 首次固定生成一个方案,已移除 `--count` / `styleCount`;`chat style append <sessionId> --anchor <branchAnchor>` 每次基于已有需求追加一版,不接受额外要求或参考文件。`chat style retry <sessionId> <choiceId>` 重试原失败任务。展示 `styleGeneration.notice`,按 `nextActions` 引导用户采用已有方案或再设计一版;费用以服务端实际结果为准。 Use the returned `choiceId` to select a style. Publishing uses the returned `encryptedId` and tracks the selected version's deployment. Plugin IDs come from `chat plugin list`.
217
259
 
218
260
  Style waiting returns progress as soon as one candidate succeeds and its preview page is ready, while the batch remains `RUNNING`. Each candidate exposes `previewUrl`, the same interactive page used by Glow's branch preview. Screenshot URLs are not returned, and screenshot generation does not delay readiness. Show that candidate and its page link immediately, then follow `QUERY_STYLES` to keep checking the remaining candidates. For example: “Style B is ready; waiting for style A.” Labels A/B/C/D correspond to the original `index` 0/1/2/3, regardless of completion order. Announce each `choiceId` only once and wait for the user's selection after the batch finishes.
219
261
 
220
262
  After development completes, the preview link is returned in `development.previewUrl` as `https://id--<sessionId>.<hosting-domain>`, matching Glow's stable development-mainline address and updating with mainline builds. Development no longer looks up or waits for snapshots. Style candidates and saved demo versions retain their own snapshot pages, while launch operations return the published domain.
221
263
 
222
- After the user selects a style, `chat style select` waits for its demo, completes the demo transition and preserves the version internally, then generates the development plan. Show only that the selected style is being used to prepare the plan, without demo-stage prompts or additional questions. Keep the existing plan content and confirmation/adjustment guidance unchanged; the feature-selection step follows plan approval. After `--no-wait` or a local timeout, follow `CONTINUE_STYLE_PLANNING` with `chat wait` to check the current state and resume the transition. `chat state` remains read-only, and existing projects can still use `chat demo` and `chat develop`.
264
+ After the user selects a style, `chat style select` waits for its demo, completes the demo transition and preserves the version internally, then generates the development plan. Show only that the selected style is being used to prepare the plan, without demo-stage prompts or additional questions. The CLI silently generates and confirms the initial plan, then displays the actual feature list for the user to choose what to develop. Real business questions still require user input. After `--no-wait` or a local timeout, follow `CONTINUE_STYLE_PLANNING` with `chat wait` to check the current state and resume the transition. `chat state` remains read-only, and existing projects can still use `chat demo` and `chat develop`.
223
265
 
224
266
  After the user explicitly asks to launch the site, use `chat publish status <sessionId> --for-launch` to get the latest pending version from the publishing panel. Show its `changeLog` unchanged, then follow the returned publishing command without a second confirmation. For a deployment already in progress, only track progress. If deployment is complete but the site is not public, finish the visibility step and return the public URL. `status` is always read-only; an ordinary status query does not grant publishing authorization.
225
267
 
package/README.md CHANGED
@@ -70,47 +70,54 @@ superun-ai chat style generate --help
70
70
 
71
71
  ## 命令树
72
72
 
73
+ 本节供开发者和接入 Agent 查阅,不作为面向用户的操作菜单。`nextActions.command` / `input` 由 Agent 内部执行;用户只看到当前状态、最终结果及必要问题。选定风格后的演示衔接、版本保留、进入研发和初始规划确认静默完成,不逐步展示或确认;欠费、执行错误和真实业务问题仍须展示。
74
+
73
75
  下面列出完整命令层级、位置参数和用途。`<...>` 表示需要替换的必填位置参数;选项参数及其要求可通过各命令的 `--help` 查看。
74
76
 
75
77
  ```text
76
78
  superun-ai
77
- ├── auth # 管理 PAT 登录
78
- │ ├── login # 登录 Superun 并保存 PAT
79
- │ ├── status # 查看本地 PAT 配置状态
80
- │ └── logout # 清除本地 PAT
81
- ├── session # 查询项目
82
- │ ├── list # 查询项目列表
83
- │ └── get <sessionId> # 查询项目详情
84
- ├── chat # 对话创作
85
- │ ├── create # 新建项目并发送需求
86
- │ ├── send <sessionId> # 继续项目创作
87
- │ ├── test <sessionId> # 自动测试已有功能并修复确认的问题
88
- │ ├── review <sessionId> # 审查已有代码并修复确认的问题
89
- │ ├── state <sessionId> # 查询当前任务和交互
90
- │ ├── wait <sessionId> # 等待当前交互或任务结果
91
- │ ├── stop <sessionId> # 停止远端任务
92
- │ ├── style # 管理创作风格
93
- │ │ ├── generate <sessionId> # 生成风格候选
94
- │ │ ├── list <sessionId> # 查询全部风格批次
95
- │ │ └── select <sessionId> <choiceId> # 选择风格并自动生成研发规划
96
- │ ├── demo <sessionId> # 查看演示快照并记录已查看状态
97
- │ ├── develop <sessionId> # 保留演示,进入研发并生成规划
98
- │ ├── interaction # 回答或跳过交互
99
- │ │ ├── reply <sessionId> <interactionId> # 提交回答
100
- │ │ └── skip <sessionId> <interactionId> # 跳过当前交互
101
- │ ├── plugin # 查询、启用和禁用插件
102
- │ │ ├── list <sessionId> # 查询可用插件
103
- │ │ ├── status <sessionId> <pluginId> # 查询插件状态
104
- │ │ ├── enable <sessionId> <pluginId> # 启用插件
105
- │ │ └── disable <sessionId> <pluginId> # 禁用插件
106
- │ └── publish # 发布应用和管理站点状态
107
- │ ├── status <sessionId> # 查询发布版本与部署进度
108
- │ ├── start <sessionId> <encryptedId> # 发布指定版本
109
- │ └── visibility <sessionId> <visibility> # 设置站点上线或下线状态
110
- ├── update # 检查并安装指定版本
111
- └── version # 显示本地版本与输出协议版本
79
+ ├── auth # 管理 PAT 登录
80
+ │ ├── login # 登录 Superun 并保存 PAT
81
+ │ ├── status # 查看本地 PAT 配置状态
82
+ │ └── logout # 清除本地 PAT
83
+ ├── session # 查询项目
84
+ │ ├── list # 查询项目列表
85
+ │ └── get <sessionId> # 查询项目详情
86
+ ├── chat # 对话创作
87
+ │ ├── create # 新建项目并发送需求
88
+ │ ├── send <sessionId> # 继续项目创作
89
+ │ ├── test <sessionId> # 自动测试指定功能,告知发现的问题后自动修复;默认测试刚才完成的功能
90
+ │ ├── review <sessionId> # 代码审查,告知发现的问题后自动修复;默认审查刚才改动的代码
91
+ │ ├── state <sessionId> # 查询当前任务和交互
92
+ │ ├── wait <sessionId> # 等待当前交互或任务结果,期间持续展示任务进度
93
+ │ ├── stop <sessionId> # 停止远端任务
94
+ │ ├── retry <sessionId> <messageId> # 充值或处理异常后重试原失败任务
95
+ │ ├── style # 管理创作风格
96
+ │ │ ├── generate <sessionId> # 生成风格候选
97
+ │ │ ├── list <sessionId> # 查询全部风格批次
98
+ │ │ ├── append <sessionId> # 再设计一版,每版预计消耗 50~100 算力值,按实际用量扣费
99
+ │ │ ├── retry <sessionId> <choiceId> # 重试失败的原方案任务
100
+ │ │ └── select <sessionId> <choiceId> # 选择风格并展示开发功能清单
101
+ │ ├── demo <sessionId> # 查看演示快照并记录已查看状态
102
+ │ ├── develop <sessionId> # 保留演示,进入研发并生成规划
103
+ │ ├── interaction # 回答或跳过交互
104
+ │ │ ├── reply <sessionId> <interactionId> # 提交回答
105
+ │ │ └── skip <sessionId> <interactionId> # 跳过当前交互
106
+ │ ├── plugin # 查询、启用和禁用插件
107
+ │ │ ├── list <sessionId> # 查询可用插件
108
+ │ │ ├── status <sessionId> <pluginId> # 查询插件状态
109
+ │ │ ├── enable <sessionId> <pluginId> # 启用插件
110
+ │ │ └── disable <sessionId> <pluginId> # 禁用插件
111
+ │ └── publish # 发布应用和管理站点状态
112
+ │ ├── status <sessionId> # 查询发布版本与部署进度
113
+ │ ├── start <sessionId> <encryptedId> # 发布指定版本
114
+ │ └── visibility <sessionId> <visibility> # 设置站点上线或下线状态
115
+ ├── update # 检查并将本机 CLI 更新到最新版本
116
+ └── version # 显示本地版本与输出协议版本
112
117
  ```
113
118
 
119
+ 命令树以源码注册为准。新增或调整命令后执行 `npm run docs:sync` 同步中英文命令树;`npm run docs:check` 校验完整性。发包前的 `prepack` 同样执行校验,发现遗漏或过期参数时停止发包准备。
120
+
114
121
  ## PAT 登录
115
122
 
116
123
  ```bash
@@ -317,14 +324,34 @@ superun-ai chat send <sessionId> --review-followup <sourceMessageId> --message "
317
324
 
318
325
  不增加“暂不需要”步骤。用户明确要求“审查完再自动测试”时,在审查及修复有效完成且无遗留问题后沿用已有授权衔接,否则等待用户选择。选择自动测试后沿用自动测试的结果规则;选择上线运营后沿用现有发布流程。当前审查流程不会在修复后自动重复审查同一范围。
319
326
 
327
+ ## 余额不足与充值后重试
328
+
329
+ 创建请求或对话执行中余额不足时,CLI 返回充值引导:前往 [superun.ai](https://superun.ai) 充值,完成后回复“重试”。用户确认前不自动重试,也不展示继续创作或上线运营菜单。
330
+
331
+ - 请求直接被拒绝:宿主保留原命令与输入,充值后重新执行原操作;没有失败任务 ID 时不调用任务重试。
332
+ - 执行中失败:使用返回的 `RECHARGE_AND_RETRY` 命令 `chat retry <sessionId> <messageId>`,先调用 Glow 同源的余额校验,再通过 `AgentCommand/retry` 重试真实主链异常消息。已完成、运行中或过期消息不会被重试;风格分支继续使用 `chat style retry`。
333
+ - 项目所有者余额不足时联系所有者充值;团队余额不足时为对应团队充值;成员月度/总额度不足时联系管理员调整额度,不能用个人充值代替。
334
+
335
+ ```bash
336
+ superun-ai chat retry <sessionId> <messageId>
337
+ superun-ai chat retry <sessionId> <messageId> --no-wait
338
+ superun-ai chat retry <sessionId> <messageId> --timeout 120
339
+ ```
340
+
341
+ `messageId` 使用欠费结果中 `nextActions.command` 指定的真实失败消息 ID,不使用用户消息 ID、风格 `choiceId` 或自行猜测的 ID。默认等待重试结果;`--no-wait` 在重试请求被接受后返回,后续按返回的引导查询进度。
342
+
320
343
  ## 风格、插件和发布
321
344
 
322
345
  交互、风格、插件和发布均归属对话创作,统一使用 `chat interaction`、`chat style`、`chat plugin` 和 `chat publish`,不提供对应顶层入口。
323
346
 
324
347
  ```bash
325
- superun-ai chat style generate <sessionId> --content "生成简洁的品牌风格" --count 2
348
+ superun-ai chat style generate <sessionId> --content "生成简洁的品牌风格"
326
349
  superun-ai chat style list <sessionId>
350
+ superun-ai chat style append <sessionId> --anchor <branchAnchor>
351
+ superun-ai chat style retry <sessionId> <choiceId>
327
352
  superun-ai chat style select <sessionId> <choiceId>
353
+ superun-ai chat demo <sessionId>
354
+ superun-ai chat develop <sessionId>
328
355
 
329
356
  superun-ai chat plugin list <sessionId>
330
357
  superun-ai chat plugin status <sessionId> <pluginId>
@@ -337,9 +364,9 @@ superun-ai chat publish visibility <sessionId> public
337
364
  superun-ai chat publish visibility <sessionId> private
338
365
  ```
339
366
 
340
- 风格默认生成 2 个,支持 1~4 个;使用查询结果中的 `choiceId`。发布使用查询结果中的 `encryptedId`,按目标版本跟踪部署状态。插件 ID 以 `chat plugin list` 返回值为准。
367
+ 首次固定生成 1 个方案,不再支持 `--count` 或问卷 `styleCount`。用户选择“再设计一版”后,通过 `chat style append <sessionId> --anchor <branchAnchor>` 每次基于已有需求追加 1 个,不接受额外要求或参考文件。失败方案使用 `chat style retry <sessionId> <choiceId>` 重试原任务。选择使用查询结果中的 `choiceId`。发布使用查询结果中的 `encryptedId`,按目标版本跟踪部署状态。插件 ID 以 `chat plugin list` 返回值为准。
341
368
 
342
- 风格等待会在单个方案成功且预览页面就绪时提前返回进度,整批状态仍为 `RUNNING`。候选通过 `previewUrl` 返回与 Glow 分支预览相同的可交互页面,不返回截图链接,也不等待截图生成。调用方应立即提示该方案及页面链接,再按 `QUERY_STYLES` 继续查询剩余方案,例如“方案 B 已生成,继续等待方案 A”。方案 A/B/C/D 固定对应原始 `index` 0/1/2/3,同一 `choiceId` 只提示一次;全部结束后再等待用户选择。
369
+ 风格等待会在单个方案成功且预览页面就绪时提前返回进度,整批状态仍为 `RUNNING`。结果的 `styleGeneration.notice` 为实际状态对应的展示文案,`nextActions` 提供采用、追加和重试命令;`choices` 保留同一轮全部方案,不能只展示最新批次。候选通过 `previewUrl` 返回与 Glow 分支预览相同的可交互页面,不返回截图链接,也不等待截图生成。调用方应立即提示该方案及页面链接,再按 `QUERY_STYLES` 继续查询剩余方案,例如“方案 B 已生成,继续等待方案 A”。方案 A/B/C/D 固定对应原始 `index` 0/1/2/3,同一 `choiceId` 只提示一次;已有可用方案时用户可以提前选择;追加生成不会隐藏旧方案。
343
370
 
344
371
  研发完成后的“查看预览”使用 `development.previewUrl`,返回与 Glow 研发主线一致的稳定地址 `https://id--<sessionId>.<托管域名>`,随主线构建结果更新。研发主线不再查找或等待快照;风格候选和独立演示版本继续使用各自的快照页面。上线运营返回正式发布域名。
345
372
 
@@ -347,6 +374,8 @@ superun-ai chat publish visibility <sessionId> private
347
374
 
348
375
  自动规划确认仅适用于本次风格选择衔接,并在提交前重新核对当前交互;后续独立的规划调整保留原有确认流程。`--no-wait` 或等待超时返回时,按 `CONTINUE_STYLE_PLANNING` 继续执行 `chat wait`;`chat state` 只读并返回续等指引,不发起确认写请求。旧项目仍可使用 `chat demo` 和 `chat develop`。
349
376
 
377
+ 查看演示、保留演示版本、进入研发及规划确认都由 CLI 静默完成,调用参数与 Glow 对齐;用户只看到最终研发功能清单及必要的业务问题。`cliPlanAfterStyle` 是 CLI 写入的本次风格选择标记,不是服务端特性开关。网页先推进演示或研发时,后续消息可能不带此标记,CLI 会沿真实 `preMessageId` 追溯本次选择并接续剩余步骤,不重复查看演示、保留版本或进入研发;已确认规划及后续独立流程构成追溯边界。
378
+
350
379
  用户明确回复“上线运营”后,使用 `chat publish status <sessionId> --for-launch` 获取 Glow 发布面板的最新待发布版本,原样展示该版本的 `changeLog`,再按返回的命令直接发布,无需二次确认。发布中的版本只跟踪进度;部署后尚未公开的站点继续执行上线动作,完成后返回正式链接。`status` 始终只读,普通状态查询不会自动获得发布授权。
351
380
 
352
381
  `chat publish start --indexing allow|deny` 控制搜索引擎索引,不限制用户访问;站点上下线使用 `chat publish visibility`。若服务端要求确认云服务费用,了解费用后可显式传入 `--acknowledge-cloud-fee`。
@@ -391,11 +420,11 @@ superun-ai chat publish visibility <sessionId> private
391
420
 
392
421
  ## 更新
393
422
 
394
- CLI 每次执行业务命令前都查询 npm `latest`,检查本机全局安装的版本。版本不一致或安装不完整时,直接通过 npm 全局更新本机 CLI,校验成功后再执行本次业务命令;已经是最新版则直接执行。更新或校验失败时会停止执行,请根据错误提示处理后重试。帮助、`version` 和 `auth logout` 可离线使用。
423
+ CLI 每次执行业务命令前都查询 npm `latest`。版本不一致时,使用当前 Node 运行 npm,在独立的新目录安装目标版本;核对包版本并实际启动离线 `version` 验证模块与依赖后,原子切换默认入口,再继续原业务命令。后续调用及离线 `version` 都使用已切换的版本。普通终端、WorkBuddy 的 Node 环境以及不同 CLI 安装各自维护入口,用户无需判断目录或手动升级。版本查询、安装或验证失败时停止业务,不回退旧版本继续请求;已有安装与入口保留。帮助、`version` 和 `auth logout` 可离线使用。
395
424
 
396
- 自动更新不创建、读取或删除 `update.lock`,也不再向 CLI 自建的 `versions` 缓存安装或从中选择版本运行;新版会实际更新到 npm 全局安装位置。旧缓存中的 CLI 执行到新版更新逻辑时,同样会检查并升级全局入口,避免每次仍从旧版本启动。
425
+ 自动更新保留原 npm 安装作为稳定启动入口,新版本存放于 `~/.cache/superun-ai-cli/installations/` 下按安装来源和 Node 环境隔离的目录,通过小型入口记录切换实际执行版本,不原地覆盖全局包。每次安装使用独立目录,并发安装互不覆盖;不创建更新锁,不在业务命令中删除旧版本、失败安装目录或切换残留,避免 npm 清理旧包触发宿主的批量删除确认。历史版本会占用磁盘,本版不自动清理。CLI 不绕过宿主权限保护,其他文件写入或网络权限仍受宿主管理。
397
426
 
398
- 版本预检和安装统一通过 npm 执行,沿用 npm 的代理和证书配置,并自动重试短暂的网络故障。官方 Registry 不可用时,会尝试用户已配置的 Registry,安装沿用查询成功的源;恢复过程不输出报错或安装日志。所有源均失败时才返回错误,`error.checks` 包含各次检查的原因码,不包含原始 npm 日志或凭据。不会通过关闭证书校验或忽略版本检查来放行业务请求。
427
+ 公开包的版本预检与安装使用无登录凭证的 npm 配置,不读取用户、全局或项目的 npmrc。更新子进程仅接收运行和网络所需的环境变量,不继承 npm Token、Superun PAT、其他业务凭证或 `NODE_OPTIONS`,也不弹出 CLI 自己的 npm 登录步骤。环境变量中的代理、CA/证书与缓存配置继续生效;只写在 npmrc 中的配置不用于自动更新。官方 Registry 不可用时,可回退到 `npm_config_registry` / `NPM_CONFIG_REGISTRY` 环境变量指定的无凭证镜像地址,安装沿用查询成功的源。恢复过程不输出 npm 原始日志或凭据;失败只返回原因码,不关闭证书校验、不绕过宿主权限保护。AI 安装助手的首次安装与旧版升级也按 [安装指南](INSTALL.md) 使用无凭证环境,避免旧入口在加载新版之前读取 npm 凭证。
399
428
 
400
429
  可以执行 `superun-ai update` 主动同步 npm `latest`。从源码安装也遵循相同的版本校验;修改源码后需要重新构建,如果全局命令不是链接到该目录,再执行 `npm install -g .`。
401
430
 
@@ -23,6 +23,8 @@ export declare class AgentCommandApi {
23
23
  constructor(client: ApiClient);
24
24
  chat(input: ChatInput): Promise<JsonObject>;
25
25
  parallel(input: JsonObject): Promise<JsonObject>;
26
+ checkBalance(sessionId: string): Promise<void>;
27
+ retry(sessionId: string, messageId: string, replyMessageId?: string): Promise<JsonObject>;
26
28
  viewDemo(sessionId: string, planningChoiceId?: string): Promise<JsonObject>;
27
29
  stop(sessionId: string, scope: 'own' | 'all', messageId?: string): Promise<void>;
28
30
  reply(sessionId: string, toolId: string, toolResult?: unknown): Promise<JsonObject>;
@@ -36,6 +36,12 @@ export class AgentCommandApi {
36
36
  async parallel(input) {
37
37
  return object(await this.client.call(`${PREFIX}/glowParallelChat`, input, true));
38
38
  }
39
+ async checkBalance(sessionId) {
40
+ await this.client.call('/api/uxa-center/agent/AgentToken/checkSessionTokenBalance', { sessionId });
41
+ }
42
+ async retry(sessionId, messageId, replyMessageId) {
43
+ return object(await this.client.call(`${PREFIX}/retry`, { sessionId, messageId, replyMessageId }, true));
44
+ }
39
45
  async viewDemo(sessionId, planningChoiceId) {
40
46
  return object(await this.client.call(`${PREFIX}/fakeGlowChat`, {
41
47
  sessionId,
@@ -1 +1 @@
1
- {"version":3,"file":"agent-command-api.js","sourceRoot":"","sources":["../../src/api/agent-command-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-command-api.js","sourceRoot":"","sources":["../../src/api/agent-command-api.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,16 @@ import type { JsonObject } from '../contracts/value.js';
4
4
  export declare class AgentQueryApi {
5
5
  private readonly client;
6
6
  constructor(client: ApiClient);
7
- messageReferenceSource(sessionId: string, messageId: string): Promise<{
7
+ messageContext(sessionId: string, messageId: string): Promise<{
8
+ role: 1;
8
9
  messageId: string;
10
+ sessionId: string;
11
+ roundExtra: Record<string, unknown>;
12
+ preMessageId?: string | null | undefined;
13
+ }>;
14
+ messageReferenceSource(sessionId: string, messageId: string): Promise<{
9
15
  role: number;
16
+ messageId: string;
10
17
  roundExtra: Record<string, unknown>;
11
18
  parsedContents: string[];
12
19
  }>;
@@ -14,7 +21,8 @@ export declare class AgentQueryApi {
14
21
  extra(sessionId: string): Promise<JsonObject>;
15
22
  snapshots(sessionId: string): Promise<unknown>;
16
23
  developmentSnapshots(sessionId: string, page: number): Promise<unknown>;
17
- parallel(sessionId: string, preReplyMessageId: string): Promise<JsonObject>;
24
+ parallel(sessionId: string, preReplyMessageId: string, withStartMessage?: boolean): Promise<JsonObject>;
25
+ designerFreeRemaining(sessionId: string): Promise<number>;
18
26
  attachments(sessionId: string, names?: Array<string>): Promise<Array<JsonObject>>;
19
27
  features(sessionId: string, replyMessageId?: string): Promise<Array<JsonObject>>;
20
28
  }
@@ -8,12 +8,29 @@ const referenceSourcesSchema = z.array(z.object({
8
8
  roundExtra: z.record(z.unknown()).default({}),
9
9
  parsedContents: z.array(z.string()),
10
10
  }));
11
+ const messageContextSchema = z.object({
12
+ sessionId: z.string(),
13
+ messageId: z.string(),
14
+ role: z.literal(1),
15
+ preMessageId: z.string().nullish(),
16
+ roundExtra: z.record(z.unknown()).default({}),
17
+ });
11
18
  const PREFIX = '/api/uxa-center/agent/AgentQuery';
12
19
  export class AgentQueryApi {
13
20
  client;
14
21
  constructor(client) {
15
22
  this.client = client;
16
23
  }
24
+ async messageContext(sessionId, messageId) {
25
+ const message = parseWire(messageContextSchema, await this.client.call(`${PREFIX}/queryMessage`, {
26
+ sessionId,
27
+ messageId,
28
+ option: { withContent: false, withRoundExtra: true },
29
+ }));
30
+ if (message.sessionId !== sessionId || message.messageId !== messageId)
31
+ throw new CliError('PROTOCOL_ERROR', '风格衔接的消息来源不一致,请重新查询当前状态');
32
+ return message;
33
+ }
17
34
  async messageReferenceSource(sessionId, messageId) {
18
35
  const rows = parseWire(referenceSourcesSchema, await this.client.call(`${PREFIX}/batchQueryMessageReferenceSources`, {
19
36
  sessionId,
@@ -44,8 +61,19 @@ export class AgentQueryApi {
44
61
  pageSize: 50,
45
62
  });
46
63
  }
47
- async parallel(sessionId, preReplyMessageId) {
48
- return object(await this.client.call(`${PREFIX}/queryAllParallelInfos`, { sessionId, preReplyMessageId }));
64
+ async parallel(sessionId, preReplyMessageId, withStartMessage = false) {
65
+ return object(await this.client.call(`${PREFIX}/queryAllParallelInfos`, {
66
+ sessionId,
67
+ preReplyMessageId,
68
+ withStartMessage,
69
+ }));
70
+ }
71
+ async designerFreeRemaining(sessionId) {
72
+ const response = object(await this.client.call(`${PREFIX}/querySessionFreeQuota`, { sessionId }));
73
+ const item = list(response.items)
74
+ .map(object)
75
+ .find((item) => item.quotaKey === 'free_round:stage2_designer');
76
+ return typeof item?.remaining === 'number' ? Math.max(0, item.remaining) : 0;
49
77
  }
50
78
  async attachments(sessionId, names = []) {
51
79
  const response = await this.client.call(`${PREFIX}/querySessionAttachmentsExcludeInternalAndCompiled`, {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-query-api.js","sourceRoot":"","sources":["../../src/api/agent-query-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-query-api.js","sourceRoot":"","sources":["../../src/api/agent-query-api.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -1,10 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  /** superun-ai 发行入口。@author xiuyu.yi */
3
3
  import { PACKAGE_PRIVATE } from './config/constants.js';
4
- import { runCli } from './runner.js';
4
+ import { fileURLToPath, pathToFileURL } from 'node:url';
5
+ import { activeEntry, installationRoot } from './update/installation.js';
5
6
  // 私有开发包支持本地安装测试,正式发行包执行版本检查。
6
7
  if (PACKAGE_PRIVATE)
7
8
  await import('./development.js');
8
- else
9
- process.exitCode = await runCli(process.argv.slice(2));
9
+ else {
10
+ const { root } = await installationRoot();
11
+ const active = await activeEntry(root);
12
+ // 在加载业务模块之前切换,帮助和离线 version 也使用已验证的新版本。
13
+ if (active && active !== fileURLToPath(import.meta.url))
14
+ await import(pathToFileURL(active).href);
15
+ else {
16
+ const { runCli } = await import('./runner.js');
17
+ process.exitCode = await runCli(process.argv.slice(2));
18
+ }
19
+ }
10
20
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,6BAA6B;AAC7B,IAAI,eAAe;IAAE,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;;IACjD,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,6BAA6B;AAC7B,IAAI,eAAe;IAAE,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;KACjD,CAAC;IACJ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,wCAAwC;IACxC,IAAI,MAAM,IAAI,MAAM,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;SAC7F,CAAC;QACJ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/C,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
@@ -5,6 +5,7 @@ import { registerReview } from './review.js';
5
5
  import { registerState } from './state.js';
6
6
  import { registerWait } from './wait.js';
7
7
  import { registerStop } from './stop.js';
8
+ import { registerRetry } from './retry.js';
8
9
  import { registerStyle } from './style.js';
9
10
  import { registerDemo } from './demo.js';
10
11
  import { registerDevelop } from './develop.js';
@@ -20,6 +21,7 @@ export function registerChat(program, context) {
20
21
  registerState(chat, context);
21
22
  registerWait(chat, context);
22
23
  registerStop(chat, context);
24
+ registerRetry(chat, context);
23
25
  registerStyle(chat, context);
24
26
  registerDemo(chat, context);
25
27
  registerDevelop(chat, context);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/chat/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,OAAuB;IACpE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzD,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7B,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7B,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/B,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/chat/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,OAAuB;IACpE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzD,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7B,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7B,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7B,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/B,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC"}