openxiangda 2.67.2 → 2.67.4
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/documentation/AGENTS.md +1 -0
- package/documentation/application-operations.md +23 -0
- package/documentation/concepts.md +2 -0
- package/documentation/data-authz.md +2 -0
- package/documentation/getting-started.md +7 -7
- package/documentation/manifest.json +14 -8
- package/documentation/multi-organization.md +152 -0
- package/documentation/product-design.md +2 -0
- package/documentation/reference/mcp.md +270 -0
- package/documentation/workflow-events.md +5 -0
- package/package.json +24 -24
- package/releases/2.67.3.json +39 -0
- package/releases/2.67.4.json +34 -0
- package/skills/manifest.json +1 -1
- package/skills/openxiangda-v2/SKILL.md +7 -4
- package/skills/openxiangda-v2/references/application-operations.md +23 -0
- package/skills/openxiangda-v2/references/concepts.md +2 -0
- package/skills/openxiangda-v2/references/data-authz.md +2 -0
- package/skills/openxiangda-v2/references/getting-started.md +7 -7
- package/skills/openxiangda-v2/references/mcp.md +270 -0
- package/skills/openxiangda-v2/references/multi-organization.md +152 -0
- package/skills/openxiangda-v2/references/product-design.md +2 -0
- package/skills/openxiangda-v2/references/workflow-events.md +5 -0
- package/releases/2.63.0.json +0 -45
- package/releases/2.63.1.json +0 -46
- package/releases/2.66.0.json +0 -29
- package/releases/2.66.1.json +0 -29
- package/releases/2.66.2.json +0 -29
- package/releases/2.67.0.json +0 -33
- package/releases/2.67.1.json +0 -35
- package/releases/2.67.2.json +0 -34
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openxiangda",
|
|
3
|
-
"version": "2.67.
|
|
3
|
+
"version": "2.67.4",
|
|
4
4
|
"description": "OpenXiangda 2.0 的统一命令、应用 SDK、MCP 与中文 AI 技能资料。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -95,13 +95,13 @@
|
|
|
95
95
|
"dayjs": "1.11.18",
|
|
96
96
|
"docx-preview": "0.3.7",
|
|
97
97
|
"elkjs": "0.12.0",
|
|
98
|
-
"openxiangda-cli": "2.10.
|
|
99
|
-
"openxiangda-contracts": "2.
|
|
100
|
-
"openxiangda-devkit-core": "2.
|
|
98
|
+
"openxiangda-cli": "2.10.7",
|
|
99
|
+
"openxiangda-contracts": "2.87.0",
|
|
100
|
+
"openxiangda-devkit-core": "2.65.1",
|
|
101
101
|
"openxiangda-legacy": "npm:openxiangda@1.0.269",
|
|
102
|
-
"openxiangda-mcp": "2.2.
|
|
103
|
-
"openxiangda-nest": "2.19.
|
|
104
|
-
"openxiangda-skill-kit": "2.3.
|
|
102
|
+
"openxiangda-mcp": "2.2.11",
|
|
103
|
+
"openxiangda-nest": "2.19.4",
|
|
104
|
+
"openxiangda-skill-kit": "2.3.113",
|
|
105
105
|
"xlsx": "https://github.com/1377385356/openxiangda/releases/download/vendor-mirror/xlsx-0.20.3.tgz"
|
|
106
106
|
},
|
|
107
107
|
"peerDependencies": {
|
|
@@ -167,37 +167,37 @@
|
|
|
167
167
|
},
|
|
168
168
|
"openxiangdaRelease": {
|
|
169
169
|
"schemaVersion": "openxiangda.release-notes/v1",
|
|
170
|
-
"version": "2.67.
|
|
170
|
+
"version": "2.67.4",
|
|
171
171
|
"status": "reviewed",
|
|
172
|
-
"title": "
|
|
173
|
-
"summary": "
|
|
172
|
+
"title": "单角色源码往返修复与流程管理基础契约",
|
|
173
|
+
"summary": "修复 Source v2 混合流程普通单角色办理配置校验问题,包含已合入主线的按操作授权流程管理基础契约。不启用管理授权或条件画布功能,不部署生产。",
|
|
174
174
|
"newFeatures": [
|
|
175
|
-
"
|
|
175
|
+
"增加环境隔离的流程管理授权、设计器 published/draft 视图和原操作结果查询基础契约;配套服务端与 SDK 未就绪前不开放。"
|
|
176
176
|
],
|
|
177
177
|
"fixes": [
|
|
178
|
-
"
|
|
179
|
-
"AppSpec记录实际读取字节和省略原因,保留现有确认及部署门禁,不将超预算资料误判为不存在。",
|
|
180
|
-
"工作区加载及封包的声明warning不再误当error阻断,真实错误继续拒绝。",
|
|
181
|
-
"发行元数据读取保留有界并发和原渠道状态;CLI模板与根SDK版本配套。"
|
|
178
|
+
"Source v2 普通单角色 handling 恢复为 roleCode,多角色仍按 roleCodes 并集校验;普通抄送节点保留原有角色/人数导出格式。"
|
|
182
179
|
],
|
|
183
180
|
"affectedUsers": [
|
|
184
|
-
"
|
|
181
|
+
"使用条件规则与普通节点混合流程导出的 V2 开发者。",
|
|
182
|
+
"维护流程管理授权协议的工具链与平台开发者。"
|
|
185
183
|
],
|
|
186
184
|
"upgradeSteps": [
|
|
187
|
-
"
|
|
188
|
-
"
|
|
185
|
+
"按工作区工具链锁升级,不自动迁移 V1。",
|
|
186
|
+
"平台消费正式 contracts 制品并完成导出回归后再更新平台组合。"
|
|
189
187
|
],
|
|
190
188
|
"knownLimitations": [
|
|
191
|
-
"
|
|
192
|
-
"
|
|
189
|
+
"条件审批 PC 编辑、公开能力门禁和真实业务验收仍须另行闭环。",
|
|
190
|
+
"流程管理 R1 仅基础契约,不是业务角色管理功能的完整交付。",
|
|
191
|
+
"不包含生产部署或业务数据修改。"
|
|
193
192
|
],
|
|
194
193
|
"compatibility": {
|
|
195
|
-
"node": "
|
|
196
|
-
"
|
|
194
|
+
"node": "Node.js 24 or newer for the maintained toolchain",
|
|
195
|
+
"generation": "OpenXiangda V2; no automatic V1 migration",
|
|
196
|
+
"sourceBundle": "Existing v1 and v2 formats retained"
|
|
197
197
|
},
|
|
198
198
|
"issues": [],
|
|
199
|
-
"sha256": "
|
|
200
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.67.
|
|
199
|
+
"sha256": "77dbc917e9bdcde967b62daf24d4bd8c863564c298df55c05c3bc88050e25785",
|
|
200
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.67.4"
|
|
201
201
|
},
|
|
202
202
|
"scripts": {
|
|
203
203
|
"build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.67.3",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "条件规则安全源码往返与 TEST 操作指引",
|
|
6
|
+
"summary": "增加 Source v2 条件人员覆盖的安全读取与显式源码采用,同时包含已合入主线的 TEST 原生数据回收操作和多组织中文指引。平台条件审批与画布能力仍遵循独立启用门禁,不包含生产部署。",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"Source v2 保留条件顺序、标签、otherwise 和非指定人员来源;环境指定人员叶子只投影数量。",
|
|
9
|
+
"显式采用 handling 时,整个人员规则受本地冻结默认、已发布来源和事实校验约束;任一指定人员叶子使整项规则保持不导入并返回提示。",
|
|
10
|
+
"共享 CLI/MCP 目录提供 TEST 原生数据批次回收的 prepare/status/stop/preview/execute,复用原 repair 所有者和 digest 恢复契约,不自动执行清理。",
|
|
11
|
+
"增加多组织、成员、会话与家校目录中文资料的同源发现和技能指引。"
|
|
12
|
+
],
|
|
13
|
+
"fixes": [
|
|
14
|
+
"条件 handling 导入使用节点独立绑定,避免改变其他共享默认绑定节点。"
|
|
15
|
+
],
|
|
16
|
+
"affectedUsers": [
|
|
17
|
+
"维护条件审批源码、读取平台流程导出文件或显式采用节点办理默认值的 V2 开发者。",
|
|
18
|
+
"使用 TEST 原生数据回收或多组织目录操作的 CLI/MCP 用户。"
|
|
19
|
+
],
|
|
20
|
+
"upgradeSteps": [
|
|
21
|
+
"按工作区锁定工具链升级并核对当前引擎;稳定 V1 不自动迁移。",
|
|
22
|
+
"平台须先接入已发布的对应 contracts 制品;旧服务器不支持的能力继续明确拒绝。",
|
|
23
|
+
"导入前检查来源摘要和权限边界;只有明确需要时才使用 --adopt-handling-defaults。"
|
|
24
|
+
],
|
|
25
|
+
"knownLimitations": [
|
|
26
|
+
"Source v2/离线导入不是条件审批端到端启用证明;平台注册、capability、PC 编辑和业务验收仍须完整闭环。",
|
|
27
|
+
"含指定人员的条件规则整体不导入,不会复制私人名单,也不会合并角色分支作为替代。",
|
|
28
|
+
"本次包发布不包括平台服务部署、数据库数据修改或实际生产/用户业务验收。",
|
|
29
|
+
"多组织应用 SDK 与组织数据权限的未接通部分在资料中明确标注,不能按设计意图推断权限已生效。"
|
|
30
|
+
],
|
|
31
|
+
"compatibility": {
|
|
32
|
+
"node": "Node.js 24 or newer for the maintained toolchain",
|
|
33
|
+
"generation": "OpenXiangda V2; no automatic V1 migration",
|
|
34
|
+
"sourceBundle": "v1 remains supported; v2 requires a matching consumer"
|
|
35
|
+
},
|
|
36
|
+
"issues": [],
|
|
37
|
+
"sha256": "348cb90778fad0d892cd38ba9a8c9d5de24437be95f892fbf5bc38ef62e46437",
|
|
38
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.67.3"
|
|
39
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.67.4",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "单角色源码往返修复与流程管理基础契约",
|
|
6
|
+
"summary": "修复 Source v2 混合流程普通单角色办理配置校验问题,包含已合入主线的按操作授权流程管理基础契约。不启用管理授权或条件画布功能,不部署生产。",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"增加环境隔离的流程管理授权、设计器 published/draft 视图和原操作结果查询基础契约;配套服务端与 SDK 未就绪前不开放。"
|
|
9
|
+
],
|
|
10
|
+
"fixes": [
|
|
11
|
+
"Source v2 普通单角色 handling 恢复为 roleCode,多角色仍按 roleCodes 并集校验;普通抄送节点保留原有角色/人数导出格式。"
|
|
12
|
+
],
|
|
13
|
+
"affectedUsers": [
|
|
14
|
+
"使用条件规则与普通节点混合流程导出的 V2 开发者。",
|
|
15
|
+
"维护流程管理授权协议的工具链与平台开发者。"
|
|
16
|
+
],
|
|
17
|
+
"upgradeSteps": [
|
|
18
|
+
"按工作区工具链锁升级,不自动迁移 V1。",
|
|
19
|
+
"平台消费正式 contracts 制品并完成导出回归后再更新平台组合。"
|
|
20
|
+
],
|
|
21
|
+
"knownLimitations": [
|
|
22
|
+
"条件审批 PC 编辑、公开能力门禁和真实业务验收仍须另行闭环。",
|
|
23
|
+
"流程管理 R1 仅基础契约,不是业务角色管理功能的完整交付。",
|
|
24
|
+
"不包含生产部署或业务数据修改。"
|
|
25
|
+
],
|
|
26
|
+
"compatibility": {
|
|
27
|
+
"node": "Node.js 24 or newer for the maintained toolchain",
|
|
28
|
+
"generation": "OpenXiangda V2; no automatic V1 migration",
|
|
29
|
+
"sourceBundle": "Existing v1 and v2 formats retained"
|
|
30
|
+
},
|
|
31
|
+
"issues": [],
|
|
32
|
+
"sha256": "77dbc917e9bdcde967b62daf24d4bd8c863564c298df55c05c3bc88050e25785",
|
|
33
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.67.4"
|
|
34
|
+
}
|
package/skills/manifest.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
{
|
|
5
5
|
"name": "openxiangda-v2",
|
|
6
6
|
"description": "使用 OpenXiangda 2.0 从模糊业务想法、已有资料或具体变更出发,通过对话发现模块、完成详细产品设计,由当前 AI Agent 按需用 Image 2.5 等图片能力形成视觉参考,直接实现真实页面并在浏览器修正,再检查和交付应用;维护 1.x 应用时使用对应的 1.x 技能。",
|
|
7
|
-
"sha256": "
|
|
7
|
+
"sha256": "6967042d1ca9ad19cef9252ccab143be114e946ce877472f56998def00f86df5"
|
|
8
8
|
}
|
|
9
9
|
]
|
|
10
10
|
}
|
|
@@ -40,10 +40,10 @@ AI 接到新应用、页面或改版任务时,在同一个 OpenXiangda 工作
|
|
|
40
40
|
未创建工作区时使用本 Skill 随根包发布的精确版本:
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
pnpm dlx openxiangda@2.67.
|
|
44
|
-
pnpm dlx openxiangda@2.67.
|
|
45
|
-
pnpm dlx openxiangda@2.67.
|
|
46
|
-
pnpm dlx openxiangda@2.67.
|
|
43
|
+
pnpm dlx openxiangda@2.67.4 auth status --cwd <应用目录> --base-url <平台地址> --json
|
|
44
|
+
pnpm dlx openxiangda@2.67.4 login --cwd <应用目录> --base-url <平台地址>
|
|
45
|
+
pnpm dlx openxiangda@2.67.4 create <应用目录> --base-url <同一平台地址>
|
|
46
|
+
pnpm dlx openxiangda@2.67.4 skill install --force
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
|
|
@@ -68,6 +68,7 @@ pnpm dlx openxiangda@2.67.2 skill install --force
|
|
|
68
68
|
| 图片压缩、缩略图、附件和缓存 | [图片与附件读取](references/field-components.md#图片缩略图和附件读取):卡片优先缩略图,原图按需,使用平台权限与缓存规则 |
|
|
69
69
|
| 页面、标准组件与扩展 | [前端](references/frontend.md) |
|
|
70
70
|
| 角色、行和字段权限 | [数据与权限](references/data-authz.md) |
|
|
71
|
+
| 教育局/独立学校、企业三方应用、多校家长、多组织教师、家校角色与班级范围 | 先读[多组织与家校目录](references/multi-organization.md),复用平台组织、成员与身份事实,核对已实现 HTTP 契约和待接通 SDK/组织数据权限 |
|
|
71
72
|
| 外部无账号表单、续填、上传、本人记录 | [匿名公开访问](references/public-access.md) |
|
|
72
73
|
| 审批、待办、消息或事件 | [工作流与通知](references/workflow-events.md) |
|
|
73
74
|
| 自定义事务、校验或外部集成 | [按需后端](references/backend.md) |
|
|
@@ -107,6 +108,8 @@ pnpm exec openxiangda --mcp-stdio --cwd <workspace>
|
|
|
107
108
|
|
|
108
109
|
平台拥有身份、授权、业务数据、环境和部署状态。应用只声明自己的模型、页面和规则;普通 CRUD 走 Data API,标准审批和通知按需声明,真实业务动作才启用 Nest。编译器生成契约,应用不改生成输出、不维护第二份权限或能力目录。菜单建议只供初次复制到应用声明,不是运行时自动发现。
|
|
109
110
|
|
|
111
|
+
多组织与家校场景先按 `multi-organization` 专题识别平台已提供的事实与应用职责。`corpId` 是入口线索,真实 unionId 和平台成员关系由平台验证;不再建立应用自己的钉钉身份库或企业组织树。源码基础、SDK 可用入口、组织数据授权及目标站点启用状态分别核实,不能把组织树存在或原始响应中的字段当成自动隔离已经完成。
|
|
112
|
+
|
|
110
113
|
匿名访问使用 frontend.publicAccess、createAnonymousPublicClient 与平台浏览器凭证,不建立 guest 角色或公开普通 Data API。提交策略的 `create` 必须配套 `draft`;只读外部数据使用 `public.list`/`public.read` 和显式 `publicRecordFields`,附件/图片/清洗后的富文本走平台代理 URL,子表用 `publicSubtableFields` 显式投影,不需要 draft,且不接受任意筛选、排序或投影。角色并集来自当前用户,Perspective 只收窄读取。
|
|
111
114
|
|
|
112
115
|
## 完成与失败
|
|
@@ -183,3 +183,26 @@ Native记录事件才能使用 `ordering:record`。订阅错误先修正应用
|
|
|
183
183
|
重启MCP。应用AI不需要本地平台、数据库、Docker或学校服务器账号。
|
|
184
184
|
先做只读诊断、无实际收件人的健康测试及CAS拒绝验证,再验收单笔回执/落库/实际投递。
|
|
185
185
|
不要用批量导入或历史群发测试恢复。首次会话授权、权限委托和外部身份owner边界沿用原合同。
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
## TEST 验收数据收尾 {#acceptance-data}
|
|
189
|
+
|
|
190
|
+
需要回收的验收先从目录选择 `acceptance-data.prepare`,显式提供原 requestKey、当前 TEST AppVersion/Head、actors;默认 100 条累计创建和 240 分钟,最高 1000 条/一天。目录的 actor schema 与原身份规则一致。普通验收身份未 opt-in,不自动归入可回收批次。平台仅接受简单 Native CRUD;workflow、文件、事件、通知、外部效果或压测批次继续使用各自 owner。
|
|
191
|
+
|
|
192
|
+
创建结果中的 runId 和一次性登录链接用于本批真实身份操作。文件中仅存下列 input,当前 workspace 提供应用、站点和身份:
|
|
193
|
+
|
|
194
|
+
```json
|
|
195
|
+
{"runId":"<原批次UUID>"}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
先执行 `admin execute acceptance-data.stop --environment test --input <文件> --json`;超时先用 `acceptance-data.status` 核对原 run,stopped 表示后续批次写入被拒绝。用户/成员仍保留;会话撤销 pending 不改变已经提交的 stop 栅栏。再执行 `acceptance-data.preview-cleanup`,核对 actionCount、remainingRecordCount、manifestSha256 和原 repairReference。
|
|
199
|
+
|
|
200
|
+
真正执行只传原 preview digest:
|
|
201
|
+
|
|
202
|
+
```json
|
|
203
|
+
{"runId":"<原批次UUID>","manifestSha256":"<预览SHA256>","mode":"canary"}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
在已经授权清理的范围运行 `acceptance-data.execute-cleanup`,核对金丝雀原回执,再把 mode 改为 remaining。丢响应先 preview/status,不换 run 或 digest;pending 清单复用原 repair。每份计划最多100条/1MiB,终结后重新 preview 下一批。外部修改、坏凭证、变化 Head、未知/预算结果及部分失败不会返回 purged。只有完整读回 `cleanupState: purged` 和剩余0表示此批 owned Native 数据验空;registry、参与者、凭证、审计和原修复回执保留。
|
|
207
|
+
|
|
208
|
+
MCP仍通过 `application_operations/application_operation` 使用同一目录,不提供任意URL或重建来源。生产、旧数据、其他run不接受此入口。目录可用不代表目标平台已升级;404核对版本,不用直接SQL旁路。
|
|
@@ -27,6 +27,8 @@ flowchart LR
|
|
|
27
27
|
|
|
28
28
|
## 数据边界
|
|
29
29
|
|
|
30
|
+
教育局与独立学校企业、多校家长、多组织教师等场景复用平台组织注册、安装、成员和工作组织上下文。应用不另建身份或企业组织树;已实现 HTTP 契约、家校角色/班级事实与尚未接通的 SDK/组织数据权限见[多组织与家校目录](multi-organization.md)。组织树存在不代表 Data API 已自动执行跨组织授权。
|
|
31
|
+
|
|
30
32
|
首期不为应用创建独立数据库。业务后端通过统一 Data API 访问平台数据;Data API 提供资源化查询、字段策略、行级授权、并发修订和受限事务批处理。这样保留统一治理,又不限制应用后端表达业务逻辑。
|
|
31
33
|
|
|
32
34
|
应用后端声明具名 Operation 时,不应重新手写用户、部门、资源引用和文件字段协议。`openxiangda/config` 提供 `resourceRecordSchema`、`schemaRef`、`composeJsonSchema` 和 `composeAppOperationSchemas`:它们从同一 Resource declaration 和公共 `FIELD_VALUE_SCHEMAS` 投影请求/响应 JSON Schema,只允许有界的本地 `$defs`/`$ref`,不会改变 Data API、权限或业务事务 owner。
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
授权由四层组成:页面/操作 capability、行谓词、字段 read,以及字段 create/update。前端只消费平台返回的最终访问结果来隐藏按钮、只读输入和剔除 payload;平台每次请求重新执行权威校验。
|
|
4
4
|
|
|
5
|
+
涉及独立企业的上下级组织、跨学校身份或家校班级范围时,先读[多组织与家校目录](multi-organization.md)。平台已有组织/成员/会话基础;V2 角色 reach、目录事实应用映射和组织行边界尚未完整接通,不能将当前普通角色并集、unrestricted 规则或前端 `corpId` 当成自动跨组织授权。
|
|
6
|
+
|
|
5
7
|
以下仅以仪器管理应用举例,不是平台默认模型或角色。该示例的行规则是:学校管理员不受行谓词限制;学院管理员按记录 `collegeId` 匹配;仪器管理员按 `instrumentAdminIds` 包含当前用户匹配。不要增加影子范围字段。
|
|
6
8
|
|
|
7
9
|
`collegeId` 是应用 `colleges` Native Resource 的记录 UUID。学院 scope dimension 通过
|
|
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
|
|
|
68
68
|
以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
pnpm dlx openxiangda@2.67.
|
|
72
|
-
pnpm dlx openxiangda@2.67.
|
|
73
|
-
pnpm dlx openxiangda@2.67.
|
|
74
|
-
pnpm dlx openxiangda@2.67.
|
|
71
|
+
pnpm dlx openxiangda@2.67.4 skill install --force
|
|
72
|
+
pnpm dlx openxiangda@2.67.4 auth status --base-url <平台地址> --json
|
|
73
|
+
pnpm dlx openxiangda@2.67.4 login --cwd my-app --base-url https://platform.example.com
|
|
74
|
+
pnpm dlx openxiangda@2.67.4 create my-app --base-url https://platform.example.com
|
|
75
75
|
cd my-app
|
|
76
76
|
pnpm openxiangda context --json
|
|
77
77
|
pnpm openxiangda dev
|
|
@@ -206,9 +206,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
|
|
|
206
206
|
无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
|
|
207
207
|
|
|
208
208
|
```bash
|
|
209
|
-
pnpm dlx openxiangda@2.67.
|
|
210
|
-
pnpm dlx openxiangda@2.67.
|
|
211
|
-
pnpm dlx openxiangda@2.67.
|
|
209
|
+
pnpm dlx openxiangda@2.67.4 auth status --base-url <平台> --json
|
|
210
|
+
pnpm dlx openxiangda@2.67.4 source resolve <仓库URL> --base-url <平台> --json
|
|
211
|
+
pnpm dlx openxiangda@2.67.4 source clone <仓库URL> <新目录> --base-url <平台> --json
|
|
212
212
|
```
|
|
213
213
|
|
|
214
214
|
登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
|
|
@@ -288,6 +288,276 @@ MCP 使用项目锁定的根包;在客户端配置下列 stdio 启动参数,
|
|
|
288
288
|
{
|
|
289
289
|
"type": "object",
|
|
290
290
|
"oneOf": [
|
|
291
|
+
{
|
|
292
|
+
"type": "object",
|
|
293
|
+
"additionalProperties": false,
|
|
294
|
+
"properties": {
|
|
295
|
+
"operation": {
|
|
296
|
+
"const": "acceptance-data.prepare",
|
|
297
|
+
"description": "准备可回收的TEST原生数据批次及原验收身份"
|
|
298
|
+
},
|
|
299
|
+
"environment": {
|
|
300
|
+
"type": "string",
|
|
301
|
+
"enum": [
|
|
302
|
+
"test"
|
|
303
|
+
]
|
|
304
|
+
},
|
|
305
|
+
"input": {
|
|
306
|
+
"type": "object",
|
|
307
|
+
"additionalProperties": false,
|
|
308
|
+
"properties": {
|
|
309
|
+
"requestKey": {
|
|
310
|
+
"type": "string",
|
|
311
|
+
"minLength": 1,
|
|
312
|
+
"maxLength": 36,
|
|
313
|
+
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
|
|
314
|
+
},
|
|
315
|
+
"expectedAppVersionId": {
|
|
316
|
+
"type": "string",
|
|
317
|
+
"minLength": 1,
|
|
318
|
+
"maxLength": 36,
|
|
319
|
+
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
|
|
320
|
+
},
|
|
321
|
+
"expectedHeadRevision": {
|
|
322
|
+
"type": "integer",
|
|
323
|
+
"minimum": 1,
|
|
324
|
+
"maximum": 9007199254740991
|
|
325
|
+
},
|
|
326
|
+
"expiresInMinutes": {
|
|
327
|
+
"type": "integer",
|
|
328
|
+
"minimum": 15,
|
|
329
|
+
"maximum": 1440
|
|
330
|
+
},
|
|
331
|
+
"recordLimit": {
|
|
332
|
+
"type": "integer",
|
|
333
|
+
"minimum": 1,
|
|
334
|
+
"maximum": 1000
|
|
335
|
+
},
|
|
336
|
+
"redirectUri": {
|
|
337
|
+
"type": "string",
|
|
338
|
+
"minLength": 1,
|
|
339
|
+
"maxLength": 2048
|
|
340
|
+
},
|
|
341
|
+
"actors": {
|
|
342
|
+
"type": "array",
|
|
343
|
+
"minItems": 1,
|
|
344
|
+
"maxItems": 12,
|
|
345
|
+
"items": {
|
|
346
|
+
"type": "object",
|
|
347
|
+
"additionalProperties": false,
|
|
348
|
+
"properties": {
|
|
349
|
+
"key": {
|
|
350
|
+
"type": "string",
|
|
351
|
+
"minLength": 1,
|
|
352
|
+
"maxLength": 80
|
|
353
|
+
},
|
|
354
|
+
"name": {
|
|
355
|
+
"type": "string",
|
|
356
|
+
"minLength": 1,
|
|
357
|
+
"maxLength": 255
|
|
358
|
+
},
|
|
359
|
+
"roleCodes": {
|
|
360
|
+
"type": "array",
|
|
361
|
+
"minItems": 1,
|
|
362
|
+
"maxItems": 32,
|
|
363
|
+
"uniqueItems": true,
|
|
364
|
+
"items": {
|
|
365
|
+
"type": "string",
|
|
366
|
+
"minLength": 1,
|
|
367
|
+
"maxLength": 128
|
|
368
|
+
}
|
|
369
|
+
},
|
|
370
|
+
"departmentIds": {
|
|
371
|
+
"type": "array",
|
|
372
|
+
"maxItems": 128,
|
|
373
|
+
"uniqueItems": true,
|
|
374
|
+
"items": {
|
|
375
|
+
"type": "string",
|
|
376
|
+
"minLength": 1,
|
|
377
|
+
"maxLength": 128
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
"required": [
|
|
382
|
+
"key",
|
|
383
|
+
"roleCodes"
|
|
384
|
+
]
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
},
|
|
388
|
+
"required": [
|
|
389
|
+
"requestKey",
|
|
390
|
+
"expectedAppVersionId",
|
|
391
|
+
"expectedHeadRevision",
|
|
392
|
+
"actors"
|
|
393
|
+
]
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
"required": [
|
|
397
|
+
"operation",
|
|
398
|
+
"environment",
|
|
399
|
+
"input"
|
|
400
|
+
]
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"type": "object",
|
|
404
|
+
"additionalProperties": false,
|
|
405
|
+
"properties": {
|
|
406
|
+
"operation": {
|
|
407
|
+
"const": "acceptance-data.status",
|
|
408
|
+
"description": "读回原TEST验收批次状态和修复引用"
|
|
409
|
+
},
|
|
410
|
+
"environment": {
|
|
411
|
+
"type": "string",
|
|
412
|
+
"enum": [
|
|
413
|
+
"test"
|
|
414
|
+
]
|
|
415
|
+
},
|
|
416
|
+
"input": {
|
|
417
|
+
"type": "object",
|
|
418
|
+
"additionalProperties": false,
|
|
419
|
+
"properties": {
|
|
420
|
+
"runId": {
|
|
421
|
+
"type": "string",
|
|
422
|
+
"minLength": 1,
|
|
423
|
+
"maxLength": 36,
|
|
424
|
+
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
|
|
425
|
+
}
|
|
426
|
+
},
|
|
427
|
+
"required": [
|
|
428
|
+
"runId"
|
|
429
|
+
]
|
|
430
|
+
}
|
|
431
|
+
},
|
|
432
|
+
"required": [
|
|
433
|
+
"operation",
|
|
434
|
+
"environment",
|
|
435
|
+
"input"
|
|
436
|
+
]
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"type": "object",
|
|
440
|
+
"additionalProperties": false,
|
|
441
|
+
"properties": {
|
|
442
|
+
"operation": {
|
|
443
|
+
"const": "acceptance-data.stop",
|
|
444
|
+
"description": "停止此TEST批次写入并撤销来源会话"
|
|
445
|
+
},
|
|
446
|
+
"environment": {
|
|
447
|
+
"type": "string",
|
|
448
|
+
"enum": [
|
|
449
|
+
"test"
|
|
450
|
+
]
|
|
451
|
+
},
|
|
452
|
+
"input": {
|
|
453
|
+
"type": "object",
|
|
454
|
+
"additionalProperties": false,
|
|
455
|
+
"properties": {
|
|
456
|
+
"runId": {
|
|
457
|
+
"type": "string",
|
|
458
|
+
"minLength": 1,
|
|
459
|
+
"maxLength": 36,
|
|
460
|
+
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
|
|
461
|
+
}
|
|
462
|
+
},
|
|
463
|
+
"required": [
|
|
464
|
+
"runId"
|
|
465
|
+
]
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
"required": [
|
|
469
|
+
"operation",
|
|
470
|
+
"environment",
|
|
471
|
+
"input"
|
|
472
|
+
]
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"type": "object",
|
|
476
|
+
"additionalProperties": false,
|
|
477
|
+
"properties": {
|
|
478
|
+
"operation": {
|
|
479
|
+
"const": "acceptance-data.preview-cleanup",
|
|
480
|
+
"description": "只读精确归属、原repair清单和剩余对象;不执行删除"
|
|
481
|
+
},
|
|
482
|
+
"environment": {
|
|
483
|
+
"type": "string",
|
|
484
|
+
"enum": [
|
|
485
|
+
"test"
|
|
486
|
+
]
|
|
487
|
+
},
|
|
488
|
+
"input": {
|
|
489
|
+
"type": "object",
|
|
490
|
+
"additionalProperties": false,
|
|
491
|
+
"properties": {
|
|
492
|
+
"runId": {
|
|
493
|
+
"type": "string",
|
|
494
|
+
"minLength": 1,
|
|
495
|
+
"maxLength": 36,
|
|
496
|
+
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
|
|
497
|
+
}
|
|
498
|
+
},
|
|
499
|
+
"required": [
|
|
500
|
+
"runId"
|
|
501
|
+
]
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
"required": [
|
|
505
|
+
"operation",
|
|
506
|
+
"environment",
|
|
507
|
+
"input"
|
|
508
|
+
]
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"type": "object",
|
|
512
|
+
"additionalProperties": false,
|
|
513
|
+
"properties": {
|
|
514
|
+
"operation": {
|
|
515
|
+
"const": "acceptance-data.execute-cleanup",
|
|
516
|
+
"description": "按预览digest通过原repair执行金丝雀或剩余删除"
|
|
517
|
+
},
|
|
518
|
+
"environment": {
|
|
519
|
+
"type": "string",
|
|
520
|
+
"enum": [
|
|
521
|
+
"test"
|
|
522
|
+
]
|
|
523
|
+
},
|
|
524
|
+
"input": {
|
|
525
|
+
"type": "object",
|
|
526
|
+
"additionalProperties": false,
|
|
527
|
+
"properties": {
|
|
528
|
+
"runId": {
|
|
529
|
+
"type": "string",
|
|
530
|
+
"minLength": 1,
|
|
531
|
+
"maxLength": 36,
|
|
532
|
+
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
|
|
533
|
+
},
|
|
534
|
+
"manifestSha256": {
|
|
535
|
+
"type": "string",
|
|
536
|
+
"minLength": 1,
|
|
537
|
+
"maxLength": 64,
|
|
538
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
539
|
+
},
|
|
540
|
+
"mode": {
|
|
541
|
+
"type": "string",
|
|
542
|
+
"enum": [
|
|
543
|
+
"canary",
|
|
544
|
+
"remaining"
|
|
545
|
+
]
|
|
546
|
+
}
|
|
547
|
+
},
|
|
548
|
+
"required": [
|
|
549
|
+
"runId",
|
|
550
|
+
"manifestSha256",
|
|
551
|
+
"mode"
|
|
552
|
+
]
|
|
553
|
+
}
|
|
554
|
+
},
|
|
555
|
+
"required": [
|
|
556
|
+
"operation",
|
|
557
|
+
"environment",
|
|
558
|
+
"input"
|
|
559
|
+
]
|
|
560
|
+
},
|
|
291
561
|
{
|
|
292
562
|
"type": "object",
|
|
293
563
|
"additionalProperties": false,
|