@shulex/cxclawctl 0.0.0-stage → 0.1.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.
Files changed (209) hide show
  1. package/README.md +228 -2
  2. package/bin/cxclawctl.mjs +11 -0
  3. package/capabilities.lock.json +898 -0
  4. package/dist/cli.js +363 -0
  5. package/dist/cli.js.map +1 -0
  6. package/package.json +33 -4
  7. package/requirements-cli.txt +2 -0
  8. package/skills/__lib__/__init__.py +0 -0
  9. package/skills/__lib__/skill-runtime/bootstrap.py +134 -0
  10. package/skills/__lib__/solvea-api/__init__.py +0 -0
  11. package/skills/__lib__/solvea-api/client.py +1944 -0
  12. package/skills/__lib__/solvea-api/dashboard.py +100 -0
  13. package/skills/__lib__/solvea-api/solvea_api.py +1341 -0
  14. package/skills/agent-analytics/SKILL.md +74 -0
  15. package/skills/agent-analytics/references/chat-report-fields.md +36 -0
  16. package/skills/agent-analytics/references/report-fields.md +130 -0
  17. package/skills/agent-analytics/references/transcript.md +110 -0
  18. package/skills/agent-builder/SKILL.md +42 -0
  19. package/skills/agent-builder/interfaces/fallback-chatflow.md +47 -0
  20. package/skills/agent-builder/references/chatflow/graph-spec.md +259 -0
  21. package/skills/agent-builder/references/chatflow/node-selection.md +89 -0
  22. package/skills/agent-builder/references/chatflow/nodes/agent.md +350 -0
  23. package/skills/agent-builder/references/chatflow/nodes/business-track.md +43 -0
  24. package/skills/agent-builder/references/chatflow/nodes/code.md +157 -0
  25. package/skills/agent-builder/references/chatflow/nodes/collect-order.md +47 -0
  26. package/skills/agent-builder/references/chatflow/nodes/finish.md +34 -0
  27. package/skills/agent-builder/references/chatflow/nodes/human-review.md +60 -0
  28. package/skills/agent-builder/references/chatflow/nodes/if-else.md +100 -0
  29. package/skills/agent-builder/references/chatflow/nodes/intent.md +79 -0
  30. package/skills/agent-builder/references/chatflow/nodes/knowledge-reply.md +43 -0
  31. package/skills/agent-builder/references/chatflow/nodes/llm.md +117 -0
  32. package/skills/agent-builder/references/chatflow/nodes/note.md +38 -0
  33. package/skills/agent-builder/references/chatflow/nodes/question.md +97 -0
  34. package/skills/agent-builder/references/chatflow/nodes/rag-reply.md +68 -0
  35. package/skills/agent-builder/references/chatflow/nodes/reply.md +97 -0
  36. package/skills/agent-builder/references/chatflow/nodes/start.md +35 -0
  37. package/skills/agent-builder/references/chatflow/nodes/sub-graph.md +48 -0
  38. package/skills/agent-builder/references/chatflow/nodes/tool.md +138 -0
  39. package/skills/agent-builder/references/chatflow/nodes/transfer-to-human.md +63 -0
  40. package/skills/agent-builder/references/chatflow/nodes/variable-assignment.md +52 -0
  41. package/skills/agent-builder/references/chatflow/nodes/variable-extract.md +50 -0
  42. package/skills/agent-builder/references/chatflow/nodes/variable-process.md +70 -0
  43. package/skills/agent-builder/references/chatflow/overview.md +53 -0
  44. package/skills/agent-builder/references/chatflow/visual-translation.md +64 -0
  45. package/skills/agent-builder/references/chatflow/workflow.md +134 -0
  46. package/skills/agent-builder/references/multi-agent/create-update.md +185 -0
  47. package/skills/agent-builder/references/multi-agent/graph-spec.md +246 -0
  48. package/skills/agent-builder/references/multi-agent/graph-structure.md +12 -0
  49. package/skills/agent-builder/references/multi-agent/migrate-to-chatflow.md +13 -0
  50. package/skills/agent-builder/references/multi-agent/migration/large.md +554 -0
  51. package/skills/agent-builder/references/multi-agent/migration/principles.md +446 -0
  52. package/skills/agent-builder/references/multi-agent/migration/small.md +225 -0
  53. package/skills/agent-builder/references/multi-agent/orchestration.md +11 -0
  54. package/skills/agent-builder/references/multi-agent/overview.md +48 -0
  55. package/skills/agent-builder/references/multi-agent/update.md +128 -0
  56. package/skills/agent-builder/references/multi-agent/workflow.md +87 -0
  57. package/skills/agent-builder/references/single-agent/overview.md +48 -0
  58. package/skills/agent-builder/references/single-agent/prompt.md +16 -0
  59. package/skills/agent-builder/references/single-agent/tools.md +36 -0
  60. package/skills/agent-builder/references/single-agent/voice.md +46 -0
  61. package/skills/agent-builder/references/tools/http-tool.md +315 -0
  62. package/skills/agent-builder/references/tools/mock-tool.md +279 -0
  63. package/skills/agent-builder/references/tools/overview.md +46 -0
  64. package/skills/agent-builder/references/tools/tool-config.md +43 -0
  65. package/skills/agent-builder/references/tools/x-token.md +34 -0
  66. package/skills/agent-builder/scripts/chatflow/chatflow_builder.py +3458 -0
  67. package/skills/agent-builder/scripts/chatflow/validate_graph.py +1697 -0
  68. package/skills/agent-builder/scripts/copy_marketplace_agent.py +61 -0
  69. package/skills/agent-builder/scripts/multi-agent/legacy_graph_analyzer.py +5974 -0
  70. package/skills/agent-builder/scripts/multi-agent/replay_compare.py +679 -0
  71. package/skills/agent-builder/scripts/patch_agent_tools.py +135 -0
  72. package/skills/agent-builder/scripts/tools/validate_tool_config.py +384 -0
  73. package/skills/agent-tester/SKILL.md +35 -0
  74. package/skills/agent-tester/batch-test/overview.md +86 -0
  75. package/skills/agent-tester/scripts/batch_test_sheet.py +213 -0
  76. package/skills/agent-tester/single-test/badcase-retest.md +85 -0
  77. package/skills/agent-tester/single-test/direct-test.md +24 -0
  78. package/skills/agent-tester/single-test/overview.md +142 -0
  79. package/skills/delivery/SKILL.md +112 -0
  80. package/skills/delivery/interfaces/classify.md +38 -0
  81. package/skills/delivery/interfaces/create-agents.md +89 -0
  82. package/skills/delivery/interfaces/delivery-test.md +67 -0
  83. package/skills/delivery/references/flow.md +40 -0
  84. package/skills/delivery/references/validation.md +15 -0
  85. package/skills/delivery/scripts/batch_test.py +704 -0
  86. package/skills/delivery/scripts/classify.py +22 -0
  87. package/skills/delivery/scripts/create_agents.py +695 -0
  88. package/skills/delivery/scripts/gen_delivery_report.py +335 -0
  89. package/skills/delivery/scripts/gen_excel.py +234 -0
  90. package/skills/delivery/scripts/gen_report.py +208 -0
  91. package/skills/delivery/scripts/plan.py +163 -0
  92. package/skills/delivery/scripts/render.py +713 -0
  93. package/skills/delivery/scripts/render_summary.py +38 -0
  94. package/skills/delivery/scripts/sample_history_cases.py +109 -0
  95. package/skills/kb-builder/SKILL.md +80 -0
  96. package/skills/kb-builder/interfaces/qa-upload.md +55 -0
  97. package/skills/kb-builder/interfaces/web-kb.md +84 -0
  98. package/skills/kb-builder/references/directory.md +373 -0
  99. package/skills/kb-builder/references/export.md +282 -0
  100. package/skills/kb-builder/references/isolation-keywords.md +113 -0
  101. package/skills/kb-builder/references/knowledge.md +153 -0
  102. package/skills/kb-builder/references/product.md +52 -0
  103. package/skills/kb-builder/references/qa-from-help-center.md +58 -0
  104. package/skills/kb-builder/references/qa-from-pdf.md +94 -0
  105. package/skills/kb-builder/references/qa-from-tickets.md +168 -0
  106. package/skills/kb-builder/references/qa-from-web.md +98 -0
  107. package/skills/kb-builder/references/qa-quality.md +73 -0
  108. package/skills/kb-builder/references/reply-template.md +237 -0
  109. package/skills/kb-builder/references/tag-isolation-migration.md +61 -0
  110. package/skills/kb-builder/references/tags.md +45 -0
  111. package/skills/kb-builder/references/upload.md +130 -0
  112. package/skills/kb-builder/scripts/batch_extract_ticket_qa.py +333 -0
  113. package/skills/kb-builder/scripts/build_directory_plan.py +144 -0
  114. package/skills/kb-builder/scripts/crawl_site.py +433 -0
  115. package/skills/kb-builder/scripts/create_dirs.py +146 -0
  116. package/skills/kb-builder/scripts/export_knowledge.py +454 -0
  117. package/skills/kb-builder/scripts/extract_ticket_qa.py +441 -0
  118. package/skills/kb-builder/scripts/extract_web_qa.py +118 -0
  119. package/skills/kb-builder/scripts/import_qa.py +219 -0
  120. package/skills/kb-builder/scripts/import_source_documents.py +143 -0
  121. package/skills/kb-builder/scripts/import_templates.py +409 -0
  122. package/skills/poc/SKILL.md +125 -0
  123. package/skills/poc/assets/default_manual.css +279 -0
  124. package/skills/poc/assets/notice_escalate.png +0 -0
  125. package/skills/poc/assets/notice_escalate2.png +0 -0
  126. package/skills/poc/assets/notice_new_chat.png +0 -0
  127. package/skills/poc/assets/poc_test_template.html +645 -0
  128. package/skills/poc/assets/poc_test_template.md +104 -0
  129. package/skills/poc/assets/step3_preview.png +0 -0
  130. package/skills/poc/assets/step4_order_note.png +0 -0
  131. package/skills/poc/interfaces/classify.md +38 -0
  132. package/skills/poc/interfaces/create-agents.md +108 -0
  133. package/skills/poc/interfaces/poc-test.md +94 -0
  134. package/skills/poc/references/flow.md +47 -0
  135. package/skills/poc/references/kb-directory.md +22 -0
  136. package/skills/poc/references/validation.md +17 -0
  137. package/skills/poc/scripts/classify.py +22 -0
  138. package/skills/poc/scripts/create_agents.py +818 -0
  139. package/skills/poc/scripts/gen_excel.py +234 -0
  140. package/skills/poc/scripts/gen_poc_manual.py +249 -0
  141. package/skills/poc/scripts/gen_report.py +208 -0
  142. package/skills/poc/scripts/inspect_chatflow.py +209 -0
  143. package/skills/poc/scripts/plan.py +178 -0
  144. package/skills/poc/scripts/poc_test.py +495 -0
  145. package/skills/poc/scripts/render.py +713 -0
  146. package/skills/poc/scripts/render_summary.py +41 -0
  147. package/skills/runtime-inspector/SKILL.md +51 -0
  148. package/skills/runtime-inspector/references/frontend-rendering.md +126 -0
  149. package/skills/runtime-inspector/references/model.md +59 -0
  150. package/skills/runtime-inspector/references/sandbox.md +131 -0
  151. package/skills/runtime-inspector/scripts/model_inspect.py +68 -0
  152. package/skills/runtime-inspector/scripts/prepare.py +98 -0
  153. package/skills/runtime-inspector/scripts/process.py +84 -0
  154. package/skills/runtime-inspector/scripts/read_state.py +32 -0
  155. package/skills/runtime-inspector/scripts/sandbox_inspect.py +463 -0
  156. package/skills/runtime-inspector/scripts/test_claude_proxy.py +49 -0
  157. package/skills/runtime-inspector/scripts/test_openai_proxy.py +41 -0
  158. package/skills/runtime-inspector/scripts/verify_persistence.py +101 -0
  159. package/skills/runtime-inspector/scripts/write_test.py +41 -0
  160. package/skills/setup/SKILL.md +17 -0
  161. package/skills/shulex-support/SKILL.md +39 -0
  162. package/skills/shulex-support/references/badcase-analysis/overview.md +34 -0
  163. package/skills/shulex-support/references/badcase-analysis/text/conversation-record.md +105 -0
  164. package/skills/shulex-support/references/badcase-analysis/text/core-flow.md +89 -0
  165. package/skills/shulex-support/references/badcase-analysis/text/log-query-rules.md +36 -0
  166. package/skills/shulex-support/references/badcase-analysis/text/m1-entry.md +53 -0
  167. package/skills/shulex-support/references/badcase-analysis/text/m10-chatflow-service.md +259 -0
  168. package/skills/shulex-support/references/badcase-analysis/text/m11-algorithm-service.md +148 -0
  169. package/skills/shulex-support/references/badcase-analysis/text/m12-quality-inspection.md +57 -0
  170. package/skills/shulex-support/references/badcase-analysis/text/m2-intent.md +120 -0
  171. package/skills/shulex-support/references/badcase-analysis/text/m3-strategy.md +126 -0
  172. package/skills/shulex-support/references/badcase-analysis/text/m4-aifield.md +121 -0
  173. package/skills/shulex-support/references/badcase-analysis/text/m5-agent.md +208 -0
  174. package/skills/shulex-support/references/badcase-analysis/text/m6-tool.md +115 -0
  175. package/skills/shulex-support/references/badcase-analysis/text/m7-reply.md +72 -0
  176. package/skills/shulex-support/references/badcase-analysis/text/m8-error.md +92 -0
  177. package/skills/shulex-support/references/badcase-analysis/text/m9-knowledge-search.md +147 -0
  178. package/skills/shulex-support/references/badcase-analysis/text/sls-query.md +283 -0
  179. package/skills/shulex-support/references/badcase-analysis/voice/core-flow.md +77 -0
  180. package/skills/shulex-support/references/badcase-analysis/voice/dependencies.md +19 -0
  181. package/skills/shulex-support/references/badcase-analysis/voice/platform-api.md +23 -0
  182. package/skills/shulex-support/references/badcase-analysis/voice/sls-playbook.md +31 -0
  183. package/skills/shulex-support/references/product-docs.md +70 -0
  184. package/skills/shulex-support/references/tickets.md +184 -0
  185. package/skills/shulex-support/scripts/support.py +427 -0
  186. package/skills/solvea-desk/SKILL.md +39 -0
  187. package/skills/solvea-desk/references/report/fields.md +82 -0
  188. package/skills/solvea-desk/references/report/report-design.md +200 -0
  189. package/skills/solvea-desk/references/report/report-template.html +44 -0
  190. package/skills/solvea-desk/references/report/report.css +517 -0
  191. package/skills/solvea-desk/references/report/workflow.md +464 -0
  192. package/skills/solvea-desk/references/tickets/query.md +103 -0
  193. package/skills/solvea-desk/references/tickets/tags.md +83 -0
  194. package/skills/solvea-desk/scripts/report/fetch_sources.py +580 -0
  195. package/skills/solvea-desk/scripts/report/render_report.py +763 -0
  196. package/skills/solvea-desk/scripts/tickets/desk_api.py +73 -0
  197. package/skills/solvea-desk/scripts/tickets/fetch_tickets.py +403 -0
  198. package/skills/solvea-desk/scripts/tickets/ticket_tags.py +305 -0
  199. package/skills/solvea-kit/SKILL.md +84 -0
  200. package/skills/solvea-kit/references/agent.md +145 -0
  201. package/skills/solvea-kit/references/chat.md +244 -0
  202. package/skills/solvea-kit/references/intent.md +69 -0
  203. package/skills/solvea-kit/references/plugin.md +53 -0
  204. package/skills/solvea-kit/references/quality-inspection.md +75 -0
  205. package/skills/solvea-kit/references/strategy.md +62 -0
  206. package/skills/solvea-kit/references/tagging.md +231 -0
  207. package/skills/solvea-kit/references/variables.md +53 -0
  208. package/skills/solvea-kit/scripts/generate_label_import_file.py +151 -0
  209. package/skills/solvea-kit/scripts/intent_classify.py +843 -0
package/README.md CHANGED
@@ -1,3 +1,229 @@
1
- # Temporary Holding Version
1
+ # CXClaw
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ CXClaw 是 Solvea 内部使用的 Codex 插件。它把原 CXClaw 的业务能力带到本地 Codex:Codex 负责理解任务和编排步骤,`cxclaw` CLI 负责登录、选择租户、调用业务接口、执行现有 Python 脚本和直查 SLS。
4
+
5
+ 插件不启动本地 MCP,也不依赖 `solvea-kit`。`shulex-cloud` 只提供钉钉授权、租户授权、服务配置和短期凭据;具体业务操作由本机 CLI 执行。
6
+
7
+ ## 能力
8
+
9
+ - Agent 分析、配置、测试和交付
10
+ - 知识库构建、迁移和导入
11
+ - POC 交付与报告生成
12
+ - Solvea Desk 工单查询和报告
13
+ - badcase 排查与 SLS 客户端直查
14
+ - 测试、生产环境和跨租户切换
15
+ - 写操作的预览、确认、提交和结果核验
16
+
17
+ 完整能力映射见 [`capabilities.lock.json`](./capabilities.lock.json)。`runtime-inspector` 只在 `dev` 和 `canary` 通道使用。
18
+
19
+ ## 运行要求
20
+
21
+ - Codex CLI
22
+ - Node.js 22 或更高版本,包含 `npm` 和 `npx`
23
+ - Python 3.12
24
+ - `requirements-cli.txt` 中锁定的 Python 依赖
25
+ - 可用的系统安全凭据库:macOS Keychain、Windows Credential Manager 或 Linux Secret Service
26
+
27
+ 安装 Python 依赖:
28
+
29
+ ```bash
30
+ python3.12 -m pip install -r requirements-cli.txt
31
+ ```
32
+
33
+ CXClaw 不会回退使用其他 Python 大版本。Linux 没有 Secret Service 时会拒绝保存登录信息,不会把凭据写入明文文件。
34
+
35
+ ## 安装
36
+
37
+ 推荐使用稳定通道:
38
+
39
+ ```bash
40
+ codex plugin marketplace add SolveaCX/cx_claw_codex --ref marketplace/stable
41
+ codex plugin add cxclaw@cxclaw
42
+ ```
43
+
44
+ 然后登录公司提供的授权服务:
45
+
46
+ ```bash
47
+ npx --yes @shulex/cxclawctl@latest auth login --server <shulex-cloud 授权地址>
48
+ ```
49
+
50
+ CLI 会打开钉钉授权页。授权完成后,检查登录状态和本地版本:
51
+
52
+ ```bash
53
+ npx --yes @shulex/cxclawctl@latest auth status
54
+ npx --yes @shulex/cxclawctl@latest doctor
55
+ ```
56
+
57
+ 也可以用一条命令完成插件安装、登录和自动更新任务注册:
58
+
59
+ ```bash
60
+ npx --yes @shulex/cxclawctl@latest setup \
61
+ --server <shulex-cloud 授权地址> \
62
+ --channel stable
63
+ ```
64
+
65
+ 可用通道为 `stable`、`canary` 和 `dev`。内部日常使用请选择 `stable`。
66
+
67
+ ## 选择环境和租户
68
+
69
+ 测试环境使用 `--env test`,生产环境使用 `--env prod`。环境由每次租户选择明确指定,不从租户名称推断。
70
+
71
+ ```bash
72
+ # 搜索测试环境租户
73
+ npx --yes @shulex/cxclawctl@latest tenant search "租户名称" --env test
74
+
75
+ # 选择测试环境租户
76
+ npx --yes @shulex/cxclawctl@latest tenant use <accountId> \
77
+ --env test \
78
+ --purpose "badcase 排查"
79
+
80
+ # 查看或清除当前租户
81
+ npx --yes @shulex/cxclawctl@latest tenant current
82
+ npx --yes @shulex/cxclawctl@latest tenant clear
83
+ ```
84
+
85
+ 切换到生产环境时,重新执行 `tenant search` 和 `tenant use`,并把 `--env` 改为 `prod`。
86
+
87
+ ## 常用命令
88
+
89
+ ```bash
90
+ # 查看版本和能力清单
91
+ npx --yes @shulex/cxclawctl@latest version
92
+ npx --yes @shulex/cxclawctl@latest capabilities
93
+
94
+ # 调用只读业务命令
95
+ npx --yes @shulex/cxclawctl@latest api get-agent --id 456 --pretty
96
+
97
+ # 执行插件内 Python 脚本
98
+ npx --yes @shulex/cxclawctl@latest script skills/poc/scripts/plan.py --init
99
+
100
+ # 直接从本机查询 SLS;from/to 使用 Unix 秒级时间戳
101
+ npx --yes @shulex/cxclawctl@latest sls query \
102
+ --from <开始时间> \
103
+ --to <结束时间> \
104
+ --query '<查询语句>' \
105
+ --line 50
106
+
107
+ # 刷新登录或退出
108
+ npx --yes @shulex/cxclawctl@latest auth refresh
109
+ npx --yes @shulex/cxclawctl@latest auth logout
110
+ ```
111
+
112
+ ### 写操作
113
+
114
+ 写操作必须先预览,再由用户明确确认。确认凭证通过 stdin 传入,不能写进命令参数、文件或日志。
115
+
116
+ ```bash
117
+ npx --yes @shulex/cxclawctl@latest api update-agent \
118
+ --data-file update.json \
119
+ --phase preview \
120
+ --pretty
121
+
122
+ printf '%s' "$CONFIRMATION_TOKEN" | npx --yes @shulex/cxclawctl@latest api update-agent \
123
+ --data-file update.json \
124
+ --phase commit \
125
+ --confirmation-token-stdin \
126
+ --idempotency-key "$IDEMPOTENCY_KEY" \
127
+ --pretty
128
+ ```
129
+
130
+ ## 更新
131
+
132
+ CLI 使用 `npx --yes @shulex/cxclawctl@latest` 运行,每次启动都会使用 npm 上的最新稳定版本。Skills 由 Codex Git Marketplace 更新:
133
+
134
+ ```bash
135
+ npx --yes @shulex/cxclawctl@latest update
136
+ ```
137
+
138
+ 注册每 6 小时执行一次的系统更新任务:
139
+
140
+ ```bash
141
+ npx --yes @shulex/cxclawctl@latest update --install-scheduler
142
+ ```
143
+
144
+ 更新完成后,新建 Codex 会话或重启 Codex,让新版 Skills 生效。
145
+
146
+ ## 安全边界
147
+
148
+ - 登录信息只保存在操作系统安全凭据库。
149
+ - SLS 长期 AK/SK 不下发到客户端;CLI 每次查询只申请短期只读 STS,并直接连接阿里云 SLS。
150
+ - 客户端提供的 `tenantId`、`accountId` 和环境值不能直接作为授权依据,服务端签发的租户上下文才是最终权限边界。
151
+ - 业务 token 不输出到终端或日志,只通过受控的子进程环境传给本地业务脚本。
152
+ - `main` 分支只用于开发;员工使用由发布流程推进的 `marketplace/stable`、`marketplace/canary` 或 `marketplace/dev`。
153
+
154
+ ## 本地开发
155
+
156
+ 开发工具使用 Bun,运行时仍是 Node.js 22:
157
+
158
+ ```bash
159
+ bun install --frozen-lockfile
160
+ bun run typecheck
161
+ bun test
162
+ bun run build
163
+ bun run check:capabilities
164
+ bun run check:release
165
+ ```
166
+
167
+ 本地执行 CLI:
168
+
169
+ ```bash
170
+ bun run dev -- version
171
+ node bin/cxclawctl.mjs version
172
+ ```
173
+
174
+ 修改 Skills 或业务 command 后,重新生成并校验能力清单:
175
+
176
+ ```bash
177
+ python3 scripts/check_capabilities.py --write
178
+ bun run check:capabilities
179
+ ```
180
+
181
+ ## 发布
182
+
183
+ 使用版本准备脚本同步修改 npm、插件清单和能力清单中的版本:
184
+
185
+ ```bash
186
+ bun run release:prepare <版本号>
187
+ ```
188
+
189
+ 版本规则:
190
+
191
+ - `vX.Y.Z` 发布到 `stable`
192
+ - `vX.Y.Z-canary.N` 发布到 `canary`
193
+ - `vX.Y.Z-dev.N` 发布到 `dev`
194
+
195
+ 稳定版必须在 `release/vX.Y.Z` 分支准备版本并创建 PR。PR 经过评审并合入 `main` 后,GitHub Actions 才会创建 tag 和发布。不要直接推送稳定版 tag。
196
+
197
+ `canary` 和 `dev` 预发布版在通过 CI 的提交上推送对应 tag 后发布:
198
+
199
+ ```bash
200
+ git push origin vX.Y.Z-canary.N
201
+ git push origin vX.Y.Z-dev.N
202
+ ```
203
+
204
+ 发布流水线会固定到触发发布的 Git commit,并依次执行测试、构建、能力校验、npm 发布、GitHub Release 和 Marketplace 通道推进。只有前一步成功才会执行下一步;npm 包未发布时不会推进 `marketplace/<channel>`。
205
+
206
+ npm 发布需要在 GitHub 的 `npm-publish` Environment 或仓库中配置 Secret `NPM_TOKEN`。缺少凭据会让发布失败,不会跳过。
207
+
208
+ 发布产物包括:
209
+
210
+ ```text
211
+ cxclaw-agent-plugin.zip
212
+ cxclaw-agent-plugin.json
213
+ cxclaw-agent-plugin.sha256
214
+ cxclaw-codex-plugin.zip
215
+ ```
216
+
217
+ 插件 ZIP 只从已提交的 Git 快照生成,不会包含本地未提交文件。
218
+
219
+ ## 仓库结构
220
+
221
+ ```text
222
+ .agents/plugins/marketplace.json Git Marketplace 清单
223
+ .codex-plugin/plugin.json Codex 插件清单
224
+ bin/cxclawctl.mjs npm CLI 入口
225
+ src/ TypeScript CLI 实现
226
+ skills/ CXClaw Skills 和 Python 业务脚本
227
+ capabilities.lock.json Skills 与业务 command 能力映射
228
+ scripts/ 能力校验和发布打包脚本
229
+ ```
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ import module from "node:module";
3
+
4
+ const major = Number(process.versions.node.split(".")[0]);
5
+ if (major < 22) {
6
+ console.error(`CXClaw requires Node.js >= 22; current version is ${process.versions.node}`);
7
+ process.exitCode = 1;
8
+ } else {
9
+ module.enableCompileCache?.();
10
+ await import("../dist/cli.js");
11
+ }