openxiangda 2.75.2 → 2.75.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/backend.md +21 -1
- package/documentation/getting-started.md +7 -7
- package/documentation/manifest.json +3 -3
- package/package.json +20 -23
- package/releases/2.75.4.json +31 -0
- package/skills/manifest.json +1 -1
- package/skills/openxiangda-v2/SKILL.md +4 -4
- package/skills/openxiangda-v2/references/backend.md +21 -1
- package/skills/openxiangda-v2/references/getting-started.md +7 -7
package/documentation/backend.md
CHANGED
|
@@ -298,11 +298,31 @@ await businessData.transaction({
|
|
|
298
298
|
```
|
|
299
299
|
|
|
300
300
|
引用约束:引用对象只含 `operationIndex`(0..99 的整数)与 `field: 'id'` 两个键;
|
|
301
|
-
只能指向索引更小的 create
|
|
301
|
+
只能指向索引更小的 create 操作;普通字段引用不得嵌套在数组或对象里,关联资源字段的快照见下节。违反形状报
|
|
302
302
|
`OPENXIANGDA_NATIVE_DATA_TRANSACTION_REFERENCE_INVALID`,嵌套报
|
|
303
303
|
`..._NESTED`,目标不可解析报 `..._UNRESOLVED`。任一操作失败时整个事务回滚,
|
|
304
304
|
不会留下无成员的 club。
|
|
305
305
|
|
|
306
|
+
### 关联资源字段保留快照
|
|
307
|
+
|
|
308
|
+
`resource-ref.single` 字段仍需要资源代码、显示标签和 `value`。用 Nest 的
|
|
309
|
+
`resourceSnapshot` 将前序 create 引用放在唯一受支持的快照 `value` 位置;
|
|
310
|
+
裸 UUID 引用不能代替资源字段快照:
|
|
311
|
+
|
|
312
|
+
```ts
|
|
313
|
+
import { resourceSnapshot } from 'openxiangda/nest';
|
|
314
|
+
const operations = [
|
|
315
|
+
{ operation: 'create' as const, resourceCode: 'orders', data: { name: '订单' } },
|
|
316
|
+
{ operation: 'create' as const, resourceCode: 'order-lines', data: {
|
|
317
|
+
order: resourceSnapshot('orders', { operationIndex: 0, field: 'id' }, '订单'),
|
|
318
|
+
} },
|
|
319
|
+
];
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
快照的 `resourceCode` 必须与前序 create 的资源一致。只允许既有快照元数据,
|
|
323
|
+
`value` 之外的对象、数组和 `snapshot` 中仍不接受事务引用;平台继续验证目标字段、
|
|
324
|
+
引用和实际授权。字符串 ID 的 `resourceSnapshot` 调用保持原行为,助手不提交或重试请求。
|
|
325
|
+
|
|
306
326
|
## 业务动作与普通查询 {#business-action}
|
|
307
327
|
|
|
308
328
|
`OpenXiangdaDataApiService` 按当前用户的普通资源、行和字段权限执行。具名业务动作使用 `OpenXiangdaBusinessDataApiService`:入口先检查该动作 capability,平台在精确应用和环境内以受信任后端执行,并保留发起人与动作审计。业务动作不能接受任意模型/字段/用户 ID 后不做业务校验;应用负责该动作的输入约束和业务不变量。
|
|
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
|
|
|
68
68
|
以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
pnpm dlx openxiangda@2.75.
|
|
72
|
-
pnpm dlx openxiangda@2.75.
|
|
73
|
-
pnpm dlx openxiangda@2.75.
|
|
74
|
-
pnpm dlx openxiangda@2.75.
|
|
71
|
+
pnpm dlx openxiangda@2.75.4 skill install --force
|
|
72
|
+
pnpm dlx openxiangda@2.75.4 auth status --base-url <平台地址> --json
|
|
73
|
+
pnpm dlx openxiangda@2.75.4 login --cwd my-app --base-url https://platform.example.com
|
|
74
|
+
pnpm dlx openxiangda@2.75.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
|
|
@@ -221,9 +221,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
|
|
|
221
221
|
无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
|
|
222
222
|
|
|
223
223
|
```bash
|
|
224
|
-
pnpm dlx openxiangda@2.75.
|
|
225
|
-
pnpm dlx openxiangda@2.75.
|
|
226
|
-
pnpm dlx openxiangda@2.75.
|
|
224
|
+
pnpm dlx openxiangda@2.75.4 auth status --base-url <平台> --json
|
|
225
|
+
pnpm dlx openxiangda@2.75.4 source resolve <仓库URL> --base-url <平台> --json
|
|
226
|
+
pnpm dlx openxiangda@2.75.4 source clone <仓库URL> <新目录> --base-url <平台> --json
|
|
227
227
|
```
|
|
228
228
|
|
|
229
229
|
登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "openxiangda.documentation/v1",
|
|
3
|
-
"version": "2.75.
|
|
3
|
+
"version": "2.75.4",
|
|
4
4
|
"topics": [
|
|
5
5
|
{
|
|
6
6
|
"id": "getting-started",
|
|
7
7
|
"title": "安装与开始开发",
|
|
8
8
|
"file": "getting-started.md",
|
|
9
|
-
"sha256": "
|
|
9
|
+
"sha256": "b422cf542c35b0ddff8ab14562411a2a834fe4911fb10e329a0bd43043f52fbe"
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"id": "product-design",
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"id": "backend",
|
|
103
103
|
"title": "按需后端与业务动作",
|
|
104
104
|
"file": "backend.md",
|
|
105
|
-
"sha256": "
|
|
105
|
+
"sha256": "6662e54114190c883efa6b902afc3c62d05cd545000f75a871a4600b70c6203e"
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
108
|
"id": "agent-cards",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openxiangda",
|
|
3
|
-
"version": "2.75.
|
|
3
|
+
"version": "2.75.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.11.
|
|
99
|
-
"openxiangda-contracts": "2.95.
|
|
100
|
-
"openxiangda-devkit-core": "2.71.
|
|
98
|
+
"openxiangda-cli": "2.11.16",
|
|
99
|
+
"openxiangda-contracts": "2.95.4",
|
|
100
|
+
"openxiangda-devkit-core": "2.71.5",
|
|
101
101
|
"openxiangda-legacy": "npm:openxiangda@1.0.269",
|
|
102
|
-
"openxiangda-mcp": "2.2.
|
|
103
|
-
"openxiangda-nest": "2.22.
|
|
104
|
-
"openxiangda-skill-kit": "2.3.
|
|
102
|
+
"openxiangda-mcp": "2.2.27",
|
|
103
|
+
"openxiangda-nest": "2.22.7",
|
|
104
|
+
"openxiangda-skill-kit": "2.3.130",
|
|
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,34 @@
|
|
|
167
167
|
},
|
|
168
168
|
"openxiangdaRelease": {
|
|
169
169
|
"schemaVersion": "openxiangda.release-notes/v1",
|
|
170
|
-
"version": "2.75.
|
|
170
|
+
"version": "2.75.4",
|
|
171
171
|
"status": "reviewed",
|
|
172
|
-
"title": "
|
|
173
|
-
"summary": "
|
|
172
|
+
"title": "对齐 AppSpec 正式发布资料预算",
|
|
173
|
+
"summary": "将正式发布生命周期的 AppSpec 当前资料文件上限与公开文档中的 512 文件预算对齐,支持完整记录的大型应用通过生产晋级预检。",
|
|
174
174
|
"newFeatures": [],
|
|
175
175
|
"fixes": [
|
|
176
|
-
"
|
|
177
|
-
"
|
|
178
|
-
"保留管理员自定义分支名、未知历史原值、原始标量类型、定义摘要和可执行图;根包与CLI模板版本成对更新。",
|
|
179
|
-
"同步中文管理专题及Skill资料,说明WorkflowDiagram的可选展示选项与其不改变业务语义的边界。"
|
|
176
|
+
"生产生命周期校验使用 512 个当前 AppSpec 非资产文件上限,不再以过期的 128 文件硬编码阻断大型应用。",
|
|
177
|
+
"保留单文件、总字节、资产和上下文预算,继续拒绝超预算、非法类型和符号链接输入。"
|
|
180
178
|
],
|
|
181
179
|
"affectedUsers": [
|
|
182
|
-
"
|
|
180
|
+
"当前 AppSpec 资料超过旧 128 文件上限、但仍符合 512 文件和字节预算的 OpenXiangda V2 应用。"
|
|
183
181
|
],
|
|
184
182
|
"upgradeSteps": [
|
|
185
|
-
"
|
|
186
|
-
"
|
|
183
|
+
"使用本轮七包精确版本组合,并先执行 openxiangda check 与生产 promotion preflight。",
|
|
184
|
+
"继续完整记录应用目标、变更、设计、评审和验收,不要通过删除或隐藏活动资料规避生命周期校验。"
|
|
187
185
|
],
|
|
188
186
|
"knownLimitations": [
|
|
189
|
-
"
|
|
190
|
-
"
|
|
191
|
-
"本地纯测试和受控浏览器图不替代实际站点、角色、物理鼠标或真实模型验收。"
|
|
187
|
+
"本次修正只扩大与文档一致的当前资料文件预算,不放宽单文件、总字节、原型资产、上下文或真实验收门禁。",
|
|
188
|
+
"本地检查通过不代表目标站点的生产身份、通知、密钥和业务验收已经完成。"
|
|
192
189
|
],
|
|
193
190
|
"compatibility": {
|
|
194
191
|
"node": "Node.js 24 or newer for maintained toolchain",
|
|
195
192
|
"generation": "OpenXiangda V2; V1 unchanged",
|
|
196
|
-
"platform": "Requires
|
|
193
|
+
"platform": "Requires the matching OpenXiangda V2 configuration compiler and compatibility preflight"
|
|
197
194
|
},
|
|
198
195
|
"issues": [],
|
|
199
|
-
"sha256": "
|
|
200
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.75.
|
|
196
|
+
"sha256": "474b635fec9ee5f30910d587fc9d293b042d67adae4666c85e6770bb0b8155de",
|
|
197
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.75.4"
|
|
201
198
|
},
|
|
202
199
|
"scripts": {
|
|
203
200
|
"build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.75.4",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "对齐 AppSpec 正式发布资料预算",
|
|
6
|
+
"summary": "将正式发布生命周期的 AppSpec 当前资料文件上限与公开文档中的 512 文件预算对齐,支持完整记录的大型应用通过生产晋级预检。",
|
|
7
|
+
"newFeatures": [],
|
|
8
|
+
"fixes": [
|
|
9
|
+
"生产生命周期校验使用 512 个当前 AppSpec 非资产文件上限,不再以过期的 128 文件硬编码阻断大型应用。",
|
|
10
|
+
"保留单文件、总字节、资产和上下文预算,继续拒绝超预算、非法类型和符号链接输入。"
|
|
11
|
+
],
|
|
12
|
+
"affectedUsers": [
|
|
13
|
+
"当前 AppSpec 资料超过旧 128 文件上限、但仍符合 512 文件和字节预算的 OpenXiangda V2 应用。"
|
|
14
|
+
],
|
|
15
|
+
"upgradeSteps": [
|
|
16
|
+
"使用本轮七包精确版本组合,并先执行 openxiangda check 与生产 promotion preflight。",
|
|
17
|
+
"继续完整记录应用目标、变更、设计、评审和验收,不要通过删除或隐藏活动资料规避生命周期校验。"
|
|
18
|
+
],
|
|
19
|
+
"knownLimitations": [
|
|
20
|
+
"本次修正只扩大与文档一致的当前资料文件预算,不放宽单文件、总字节、原型资产、上下文或真实验收门禁。",
|
|
21
|
+
"本地检查通过不代表目标站点的生产身份、通知、密钥和业务验收已经完成。"
|
|
22
|
+
],
|
|
23
|
+
"compatibility": {
|
|
24
|
+
"node": "Node.js 24 or newer for maintained toolchain",
|
|
25
|
+
"generation": "OpenXiangda V2; V1 unchanged",
|
|
26
|
+
"platform": "Requires the matching OpenXiangda V2 configuration compiler and compatibility preflight"
|
|
27
|
+
},
|
|
28
|
+
"issues": [],
|
|
29
|
+
"sha256": "474b635fec9ee5f30910d587fc9d293b042d67adae4666c85e6770bb0b8155de",
|
|
30
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.75.4"
|
|
31
|
+
}
|
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": "95f0794e88e13644904770d12af1c31970ac61e9ce48ff84554594b8c133383c"
|
|
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.75.
|
|
44
|
-
pnpm dlx openxiangda@2.75.
|
|
45
|
-
pnpm dlx openxiangda@2.75.
|
|
46
|
-
pnpm dlx openxiangda@2.75.
|
|
43
|
+
pnpm dlx openxiangda@2.75.4 auth status --cwd <应用目录> --base-url <平台地址> --json
|
|
44
|
+
pnpm dlx openxiangda@2.75.4 login --cwd <应用目录> --base-url <平台地址>
|
|
45
|
+
pnpm dlx openxiangda@2.75.4 create <应用目录> --base-url <同一平台地址>
|
|
46
|
+
pnpm dlx openxiangda@2.75.4 skill install --force
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
|
|
@@ -298,11 +298,31 @@ await businessData.transaction({
|
|
|
298
298
|
```
|
|
299
299
|
|
|
300
300
|
引用约束:引用对象只含 `operationIndex`(0..99 的整数)与 `field: 'id'` 两个键;
|
|
301
|
-
只能指向索引更小的 create
|
|
301
|
+
只能指向索引更小的 create 操作;普通字段引用不得嵌套在数组或对象里,关联资源字段的快照见下节。违反形状报
|
|
302
302
|
`OPENXIANGDA_NATIVE_DATA_TRANSACTION_REFERENCE_INVALID`,嵌套报
|
|
303
303
|
`..._NESTED`,目标不可解析报 `..._UNRESOLVED`。任一操作失败时整个事务回滚,
|
|
304
304
|
不会留下无成员的 club。
|
|
305
305
|
|
|
306
|
+
### 关联资源字段保留快照
|
|
307
|
+
|
|
308
|
+
`resource-ref.single` 字段仍需要资源代码、显示标签和 `value`。用 Nest 的
|
|
309
|
+
`resourceSnapshot` 将前序 create 引用放在唯一受支持的快照 `value` 位置;
|
|
310
|
+
裸 UUID 引用不能代替资源字段快照:
|
|
311
|
+
|
|
312
|
+
```ts
|
|
313
|
+
import { resourceSnapshot } from 'openxiangda/nest';
|
|
314
|
+
const operations = [
|
|
315
|
+
{ operation: 'create' as const, resourceCode: 'orders', data: { name: '订单' } },
|
|
316
|
+
{ operation: 'create' as const, resourceCode: 'order-lines', data: {
|
|
317
|
+
order: resourceSnapshot('orders', { operationIndex: 0, field: 'id' }, '订单'),
|
|
318
|
+
} },
|
|
319
|
+
];
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
快照的 `resourceCode` 必须与前序 create 的资源一致。只允许既有快照元数据,
|
|
323
|
+
`value` 之外的对象、数组和 `snapshot` 中仍不接受事务引用;平台继续验证目标字段、
|
|
324
|
+
引用和实际授权。字符串 ID 的 `resourceSnapshot` 调用保持原行为,助手不提交或重试请求。
|
|
325
|
+
|
|
306
326
|
## 业务动作与普通查询 {#business-action}
|
|
307
327
|
|
|
308
328
|
`OpenXiangdaDataApiService` 按当前用户的普通资源、行和字段权限执行。具名业务动作使用 `OpenXiangdaBusinessDataApiService`:入口先检查该动作 capability,平台在精确应用和环境内以受信任后端执行,并保留发起人与动作审计。业务动作不能接受任意模型/字段/用户 ID 后不做业务校验;应用负责该动作的输入约束和业务不变量。
|
|
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
|
|
|
68
68
|
以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
pnpm dlx openxiangda@2.75.
|
|
72
|
-
pnpm dlx openxiangda@2.75.
|
|
73
|
-
pnpm dlx openxiangda@2.75.
|
|
74
|
-
pnpm dlx openxiangda@2.75.
|
|
71
|
+
pnpm dlx openxiangda@2.75.4 skill install --force
|
|
72
|
+
pnpm dlx openxiangda@2.75.4 auth status --base-url <平台地址> --json
|
|
73
|
+
pnpm dlx openxiangda@2.75.4 login --cwd my-app --base-url https://platform.example.com
|
|
74
|
+
pnpm dlx openxiangda@2.75.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
|
|
@@ -221,9 +221,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
|
|
|
221
221
|
无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
|
|
222
222
|
|
|
223
223
|
```bash
|
|
224
|
-
pnpm dlx openxiangda@2.75.
|
|
225
|
-
pnpm dlx openxiangda@2.75.
|
|
226
|
-
pnpm dlx openxiangda@2.75.
|
|
224
|
+
pnpm dlx openxiangda@2.75.4 auth status --base-url <平台> --json
|
|
225
|
+
pnpm dlx openxiangda@2.75.4 source resolve <仓库URL> --base-url <平台> --json
|
|
226
|
+
pnpm dlx openxiangda@2.75.4 source clone <仓库URL> <新目录> --base-url <平台> --json
|
|
227
227
|
```
|
|
228
228
|
|
|
229
229
|
登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
|