@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.
- package/README.md +228 -2
- package/bin/cxclawctl.mjs +11 -0
- package/capabilities.lock.json +898 -0
- package/dist/cli.js +363 -0
- package/dist/cli.js.map +1 -0
- package/package.json +33 -4
- package/requirements-cli.txt +2 -0
- package/skills/__lib__/__init__.py +0 -0
- package/skills/__lib__/skill-runtime/bootstrap.py +134 -0
- package/skills/__lib__/solvea-api/__init__.py +0 -0
- package/skills/__lib__/solvea-api/client.py +1944 -0
- package/skills/__lib__/solvea-api/dashboard.py +100 -0
- package/skills/__lib__/solvea-api/solvea_api.py +1341 -0
- package/skills/agent-analytics/SKILL.md +74 -0
- package/skills/agent-analytics/references/chat-report-fields.md +36 -0
- package/skills/agent-analytics/references/report-fields.md +130 -0
- package/skills/agent-analytics/references/transcript.md +110 -0
- package/skills/agent-builder/SKILL.md +42 -0
- package/skills/agent-builder/interfaces/fallback-chatflow.md +47 -0
- package/skills/agent-builder/references/chatflow/graph-spec.md +259 -0
- package/skills/agent-builder/references/chatflow/node-selection.md +89 -0
- package/skills/agent-builder/references/chatflow/nodes/agent.md +350 -0
- package/skills/agent-builder/references/chatflow/nodes/business-track.md +43 -0
- package/skills/agent-builder/references/chatflow/nodes/code.md +157 -0
- package/skills/agent-builder/references/chatflow/nodes/collect-order.md +47 -0
- package/skills/agent-builder/references/chatflow/nodes/finish.md +34 -0
- package/skills/agent-builder/references/chatflow/nodes/human-review.md +60 -0
- package/skills/agent-builder/references/chatflow/nodes/if-else.md +100 -0
- package/skills/agent-builder/references/chatflow/nodes/intent.md +79 -0
- package/skills/agent-builder/references/chatflow/nodes/knowledge-reply.md +43 -0
- package/skills/agent-builder/references/chatflow/nodes/llm.md +117 -0
- package/skills/agent-builder/references/chatflow/nodes/note.md +38 -0
- package/skills/agent-builder/references/chatflow/nodes/question.md +97 -0
- package/skills/agent-builder/references/chatflow/nodes/rag-reply.md +68 -0
- package/skills/agent-builder/references/chatflow/nodes/reply.md +97 -0
- package/skills/agent-builder/references/chatflow/nodes/start.md +35 -0
- package/skills/agent-builder/references/chatflow/nodes/sub-graph.md +48 -0
- package/skills/agent-builder/references/chatflow/nodes/tool.md +138 -0
- package/skills/agent-builder/references/chatflow/nodes/transfer-to-human.md +63 -0
- package/skills/agent-builder/references/chatflow/nodes/variable-assignment.md +52 -0
- package/skills/agent-builder/references/chatflow/nodes/variable-extract.md +50 -0
- package/skills/agent-builder/references/chatflow/nodes/variable-process.md +70 -0
- package/skills/agent-builder/references/chatflow/overview.md +53 -0
- package/skills/agent-builder/references/chatflow/visual-translation.md +64 -0
- package/skills/agent-builder/references/chatflow/workflow.md +134 -0
- package/skills/agent-builder/references/multi-agent/create-update.md +185 -0
- package/skills/agent-builder/references/multi-agent/graph-spec.md +246 -0
- package/skills/agent-builder/references/multi-agent/graph-structure.md +12 -0
- package/skills/agent-builder/references/multi-agent/migrate-to-chatflow.md +13 -0
- package/skills/agent-builder/references/multi-agent/migration/large.md +554 -0
- package/skills/agent-builder/references/multi-agent/migration/principles.md +446 -0
- package/skills/agent-builder/references/multi-agent/migration/small.md +225 -0
- package/skills/agent-builder/references/multi-agent/orchestration.md +11 -0
- package/skills/agent-builder/references/multi-agent/overview.md +48 -0
- package/skills/agent-builder/references/multi-agent/update.md +128 -0
- package/skills/agent-builder/references/multi-agent/workflow.md +87 -0
- package/skills/agent-builder/references/single-agent/overview.md +48 -0
- package/skills/agent-builder/references/single-agent/prompt.md +16 -0
- package/skills/agent-builder/references/single-agent/tools.md +36 -0
- package/skills/agent-builder/references/single-agent/voice.md +46 -0
- package/skills/agent-builder/references/tools/http-tool.md +315 -0
- package/skills/agent-builder/references/tools/mock-tool.md +279 -0
- package/skills/agent-builder/references/tools/overview.md +46 -0
- package/skills/agent-builder/references/tools/tool-config.md +43 -0
- package/skills/agent-builder/references/tools/x-token.md +34 -0
- package/skills/agent-builder/scripts/chatflow/chatflow_builder.py +3458 -0
- package/skills/agent-builder/scripts/chatflow/validate_graph.py +1697 -0
- package/skills/agent-builder/scripts/copy_marketplace_agent.py +61 -0
- package/skills/agent-builder/scripts/multi-agent/legacy_graph_analyzer.py +5974 -0
- package/skills/agent-builder/scripts/multi-agent/replay_compare.py +679 -0
- package/skills/agent-builder/scripts/patch_agent_tools.py +135 -0
- package/skills/agent-builder/scripts/tools/validate_tool_config.py +384 -0
- package/skills/agent-tester/SKILL.md +35 -0
- package/skills/agent-tester/batch-test/overview.md +86 -0
- package/skills/agent-tester/scripts/batch_test_sheet.py +213 -0
- package/skills/agent-tester/single-test/badcase-retest.md +85 -0
- package/skills/agent-tester/single-test/direct-test.md +24 -0
- package/skills/agent-tester/single-test/overview.md +142 -0
- package/skills/delivery/SKILL.md +112 -0
- package/skills/delivery/interfaces/classify.md +38 -0
- package/skills/delivery/interfaces/create-agents.md +89 -0
- package/skills/delivery/interfaces/delivery-test.md +67 -0
- package/skills/delivery/references/flow.md +40 -0
- package/skills/delivery/references/validation.md +15 -0
- package/skills/delivery/scripts/batch_test.py +704 -0
- package/skills/delivery/scripts/classify.py +22 -0
- package/skills/delivery/scripts/create_agents.py +695 -0
- package/skills/delivery/scripts/gen_delivery_report.py +335 -0
- package/skills/delivery/scripts/gen_excel.py +234 -0
- package/skills/delivery/scripts/gen_report.py +208 -0
- package/skills/delivery/scripts/plan.py +163 -0
- package/skills/delivery/scripts/render.py +713 -0
- package/skills/delivery/scripts/render_summary.py +38 -0
- package/skills/delivery/scripts/sample_history_cases.py +109 -0
- package/skills/kb-builder/SKILL.md +80 -0
- package/skills/kb-builder/interfaces/qa-upload.md +55 -0
- package/skills/kb-builder/interfaces/web-kb.md +84 -0
- package/skills/kb-builder/references/directory.md +373 -0
- package/skills/kb-builder/references/export.md +282 -0
- package/skills/kb-builder/references/isolation-keywords.md +113 -0
- package/skills/kb-builder/references/knowledge.md +153 -0
- package/skills/kb-builder/references/product.md +52 -0
- package/skills/kb-builder/references/qa-from-help-center.md +58 -0
- package/skills/kb-builder/references/qa-from-pdf.md +94 -0
- package/skills/kb-builder/references/qa-from-tickets.md +168 -0
- package/skills/kb-builder/references/qa-from-web.md +98 -0
- package/skills/kb-builder/references/qa-quality.md +73 -0
- package/skills/kb-builder/references/reply-template.md +237 -0
- package/skills/kb-builder/references/tag-isolation-migration.md +61 -0
- package/skills/kb-builder/references/tags.md +45 -0
- package/skills/kb-builder/references/upload.md +130 -0
- package/skills/kb-builder/scripts/batch_extract_ticket_qa.py +333 -0
- package/skills/kb-builder/scripts/build_directory_plan.py +144 -0
- package/skills/kb-builder/scripts/crawl_site.py +433 -0
- package/skills/kb-builder/scripts/create_dirs.py +146 -0
- package/skills/kb-builder/scripts/export_knowledge.py +454 -0
- package/skills/kb-builder/scripts/extract_ticket_qa.py +441 -0
- package/skills/kb-builder/scripts/extract_web_qa.py +118 -0
- package/skills/kb-builder/scripts/import_qa.py +219 -0
- package/skills/kb-builder/scripts/import_source_documents.py +143 -0
- package/skills/kb-builder/scripts/import_templates.py +409 -0
- package/skills/poc/SKILL.md +125 -0
- package/skills/poc/assets/default_manual.css +279 -0
- package/skills/poc/assets/notice_escalate.png +0 -0
- package/skills/poc/assets/notice_escalate2.png +0 -0
- package/skills/poc/assets/notice_new_chat.png +0 -0
- package/skills/poc/assets/poc_test_template.html +645 -0
- package/skills/poc/assets/poc_test_template.md +104 -0
- package/skills/poc/assets/step3_preview.png +0 -0
- package/skills/poc/assets/step4_order_note.png +0 -0
- package/skills/poc/interfaces/classify.md +38 -0
- package/skills/poc/interfaces/create-agents.md +108 -0
- package/skills/poc/interfaces/poc-test.md +94 -0
- package/skills/poc/references/flow.md +47 -0
- package/skills/poc/references/kb-directory.md +22 -0
- package/skills/poc/references/validation.md +17 -0
- package/skills/poc/scripts/classify.py +22 -0
- package/skills/poc/scripts/create_agents.py +818 -0
- package/skills/poc/scripts/gen_excel.py +234 -0
- package/skills/poc/scripts/gen_poc_manual.py +249 -0
- package/skills/poc/scripts/gen_report.py +208 -0
- package/skills/poc/scripts/inspect_chatflow.py +209 -0
- package/skills/poc/scripts/plan.py +178 -0
- package/skills/poc/scripts/poc_test.py +495 -0
- package/skills/poc/scripts/render.py +713 -0
- package/skills/poc/scripts/render_summary.py +41 -0
- package/skills/runtime-inspector/SKILL.md +51 -0
- package/skills/runtime-inspector/references/frontend-rendering.md +126 -0
- package/skills/runtime-inspector/references/model.md +59 -0
- package/skills/runtime-inspector/references/sandbox.md +131 -0
- package/skills/runtime-inspector/scripts/model_inspect.py +68 -0
- package/skills/runtime-inspector/scripts/prepare.py +98 -0
- package/skills/runtime-inspector/scripts/process.py +84 -0
- package/skills/runtime-inspector/scripts/read_state.py +32 -0
- package/skills/runtime-inspector/scripts/sandbox_inspect.py +463 -0
- package/skills/runtime-inspector/scripts/test_claude_proxy.py +49 -0
- package/skills/runtime-inspector/scripts/test_openai_proxy.py +41 -0
- package/skills/runtime-inspector/scripts/verify_persistence.py +101 -0
- package/skills/runtime-inspector/scripts/write_test.py +41 -0
- package/skills/setup/SKILL.md +17 -0
- package/skills/shulex-support/SKILL.md +39 -0
- package/skills/shulex-support/references/badcase-analysis/overview.md +34 -0
- package/skills/shulex-support/references/badcase-analysis/text/conversation-record.md +105 -0
- package/skills/shulex-support/references/badcase-analysis/text/core-flow.md +89 -0
- package/skills/shulex-support/references/badcase-analysis/text/log-query-rules.md +36 -0
- package/skills/shulex-support/references/badcase-analysis/text/m1-entry.md +53 -0
- package/skills/shulex-support/references/badcase-analysis/text/m10-chatflow-service.md +259 -0
- package/skills/shulex-support/references/badcase-analysis/text/m11-algorithm-service.md +148 -0
- package/skills/shulex-support/references/badcase-analysis/text/m12-quality-inspection.md +57 -0
- package/skills/shulex-support/references/badcase-analysis/text/m2-intent.md +120 -0
- package/skills/shulex-support/references/badcase-analysis/text/m3-strategy.md +126 -0
- package/skills/shulex-support/references/badcase-analysis/text/m4-aifield.md +121 -0
- package/skills/shulex-support/references/badcase-analysis/text/m5-agent.md +208 -0
- package/skills/shulex-support/references/badcase-analysis/text/m6-tool.md +115 -0
- package/skills/shulex-support/references/badcase-analysis/text/m7-reply.md +72 -0
- package/skills/shulex-support/references/badcase-analysis/text/m8-error.md +92 -0
- package/skills/shulex-support/references/badcase-analysis/text/m9-knowledge-search.md +147 -0
- package/skills/shulex-support/references/badcase-analysis/text/sls-query.md +283 -0
- package/skills/shulex-support/references/badcase-analysis/voice/core-flow.md +77 -0
- package/skills/shulex-support/references/badcase-analysis/voice/dependencies.md +19 -0
- package/skills/shulex-support/references/badcase-analysis/voice/platform-api.md +23 -0
- package/skills/shulex-support/references/badcase-analysis/voice/sls-playbook.md +31 -0
- package/skills/shulex-support/references/product-docs.md +70 -0
- package/skills/shulex-support/references/tickets.md +184 -0
- package/skills/shulex-support/scripts/support.py +427 -0
- package/skills/solvea-desk/SKILL.md +39 -0
- package/skills/solvea-desk/references/report/fields.md +82 -0
- package/skills/solvea-desk/references/report/report-design.md +200 -0
- package/skills/solvea-desk/references/report/report-template.html +44 -0
- package/skills/solvea-desk/references/report/report.css +517 -0
- package/skills/solvea-desk/references/report/workflow.md +464 -0
- package/skills/solvea-desk/references/tickets/query.md +103 -0
- package/skills/solvea-desk/references/tickets/tags.md +83 -0
- package/skills/solvea-desk/scripts/report/fetch_sources.py +580 -0
- package/skills/solvea-desk/scripts/report/render_report.py +763 -0
- package/skills/solvea-desk/scripts/tickets/desk_api.py +73 -0
- package/skills/solvea-desk/scripts/tickets/fetch_tickets.py +403 -0
- package/skills/solvea-desk/scripts/tickets/ticket_tags.py +305 -0
- package/skills/solvea-kit/SKILL.md +84 -0
- package/skills/solvea-kit/references/agent.md +145 -0
- package/skills/solvea-kit/references/chat.md +244 -0
- package/skills/solvea-kit/references/intent.md +69 -0
- package/skills/solvea-kit/references/plugin.md +53 -0
- package/skills/solvea-kit/references/quality-inspection.md +75 -0
- package/skills/solvea-kit/references/strategy.md +62 -0
- package/skills/solvea-kit/references/tagging.md +231 -0
- package/skills/solvea-kit/references/variables.md +53 -0
- package/skills/solvea-kit/scripts/generate_label_import_file.py +151 -0
- package/skills/solvea-kit/scripts/intent_classify.py +843 -0
package/README.md
CHANGED
|
@@ -1,3 +1,229 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CXClaw
|
|
2
2
|
|
|
3
|
-
|
|
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
|
+
}
|