openyida 2026.7.26-beta.1 → 2026.7.26-beta.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openyida",
3
- "version": "2026.7.26-beta.1",
3
+ "version": "2026.7.26-beta.3",
4
4
  "description": "OpenYida CLI - 宜搭低代码 AI 开发工具(安装即用,零配置)",
5
5
  "bin": {
6
6
  "openyida": "bin/yida.js",
@@ -81,19 +81,17 @@ OpenYida builder 默认使用 `create-app / create-form / create-page / generate
81
81
  "app": {
82
82
  "appType": "APP_xxx",
83
83
  "source": "explicit_prompt|url|agent_bound|workspace_cache",
84
- "precreated": true,
85
- "placeholderName": "新应用",
86
84
  "allowCreate": false,
87
- "allowRename": true
85
+ "precreated": true
88
86
  },
89
87
  "page": { "formUuid": "FORM_xxx", "source": "explicit_prompt|url|agent_bound|workspace_cache", "allowCreate": false },
90
88
  "form": { "formUuid": "FORM_xxx", "source": "explicit_prompt|url|workspace_cache", "allowCreate": false }
91
89
  }
92
90
  ```
93
91
 
94
- `precreated` 表示该 app 由 agent / 宿主提前创建并绑定到本轮任务;`placeholderName` 是宿主创建时的占位名;`allowRename` 控制 OpenYida 是否可在语义名稳定后修正应用名称。这些字段都是可选提示:缺失时按普通已有资源处理,不作为运行前置。
92
+ `precreated` 表示该 app 由 agent / 宿主提前创建并绑定到本轮任务。这些字段都是可选提示:缺失时按普通已有资源处理,不作为运行前置。
95
93
 
96
- **预创建占位 app 改名**:当 `app.source === "agent_bound"`,且满足 `precreated === true` 或当前名称 / `placeholderName` 命中“新应用 / 未命名 / 占位 / APP_xxx”等占位样式,并且 `allowRename !== false`、用户没有明确要求保留原应用名称、已从本轮需求确定稳定语义应用名时,`yida-app` 应复用该 `appType` 并调用 `openyida update-app APP_xxx --name "语义应用名"`。该动作只修正 agent 预创建占位应用名称;不要按标题发现/adopt 其他应用,不要 cleanup orphan,不要对非占位已有业务应用自动改名,不要让 `yida-create-app` 参与改名。
94
+ **绑定 app 只复用不改名**:OpenYida 技能侧不自动修改应用名称;即使目标 app 来自 agent / 宿主预创建资源,也只复用该 `appType` 继续创建、更新或发布资源。应用名修正如有需要由宿主或 yida-agent 侧负责;技能不得因为占位名、页面标题或业务语义推导触发应用名修改。
97
95
 
98
96
  ### create-or-update 判定
99
97
 
@@ -101,7 +99,7 @@ OpenYida builder 默认使用 `create-app / create-form / create-page / generate
101
99
  - 已解析到目标自定义页面 URL / `formUuid` / bound page 时,默认写源码并发布到该页面,不执行 `yida-create-page`;只有缺少目标 display page 且本次意图允许新增页面时才创建。
102
100
  - 已解析到目标表单 `formUuid` 时,字段结构诉求默认走 `yida-create-form-page` 的 update/patch/rule/bind-datasource 模式,不创建同名或同类表单。
103
101
  - 已解析到目标流程表单 / `processCode` 时,默认走 `yida-process-rule` 配置/更新流程,不从零执行 `yida-create-process`。
104
- - 完整应用 `fast_build` 也遵守本规则:`resolve app → resolve forms → resolve main page → create missing resources only → update/publish`。
102
+ - 完整应用 `fast_build` 也遵守本规则:先占位主页面,再建表单,最后回填发布。
105
103
 
106
104
  验收心智模型:
107
105
 
@@ -136,7 +134,7 @@ OpenYida builder 默认使用 `create-app / create-form / create-page / generate
136
134
  > 用户说“按默认方案 / 不要追问 / 直接创建 / 尽快搭建”时,`yida-app` 选择 `fast_build`:先解析并复用已有资源,只创建缺失且允许创建的应用/表单/页面,最后发布并输出链接。
137
135
  > `yida-app fast_build` 使用常规 OpenYida 命令编排。
138
136
 
139
- **默认链路**:`fast_build` 必须只做 `resolve app → resolve forms → resolve main page → create missing resources only → 编写/更新主页面源码 → 发布 → 返回访问链接`。不要因为应用名里有“看板 / 系统 / 管理”就升级到 `deep_design` 或 `full_demo`。
137
+ **默认链路**:`fast_build` 必须只做 `resolve app → reserve main page → resolve forms → 编写/更新主页面源码 → 发布 → 返回访问链接`。若需要首页/工作台/智能助手/门户门面且主页面缺失,先创建空 display page 占位,再建表单,最后回填发布;不要因此默认执行导航重排。不要因为应用名里有“看板 / 系统 / 管理”就升级到 `deep_design` 或 `full_demo`。
140
138
 
141
139
  **fast_build 默认加载边界**:只加载 `yida-app` 和当前阶段必需的子技能。`yida-create-app`、`yida-create-page`、`yida-create-form-page` 只有在目标资源缺失且本次意图允许创建时才加载;已有资源时进入对应 update / publish 分支。页面默认走 Code Canvas;当用户明确要求普通自定义页面 JSX/Jsx 组件链路,或页面强依赖普通自定义页实例桥(`this.$(fieldId)` / `this.utils.yida.*` / `this.dataSourceMap` / 表单提交或字段双向绑定深度耦合)时,选择 `yida-custom-page`。不要默认加载 `yida-page-uiux`、`yida-data-source-connectors`、`yida-data-management`、`yida-nav-group`、`yida-dashboard`,也不要默认深读 `references/`。
142
140
 
@@ -206,7 +204,6 @@ OpenYida builder 默认使用 `create-app / create-form / create-page / generate
206
204
 
207
205
  | 意图 | 直接执行 |
208
206
  |------|------|
209
- | 修改当前 app 信息 / 预创建占位 app 改名 | `openyida update-app` |
210
207
  | 聚合表 / 虚拟视图 | `openyida aggregate-table` |
211
208
  | 流程表单 AI 审批提示 | `openyida ai-form-setting` |
212
209
  | 文生文 / 识图通用 AI 能力 | `openyida ai` |
@@ -13,7 +13,7 @@ description: 宜搭完整应用开发编排技能。对普通 OpenYida 应用做
13
13
 
14
14
  用户说“按默认方案”“不要追问”“直接创建”“尽快搭建”等,必须选择 `fast_build`,用合理 MVP 假设直接执行,不展开深度 PRD 讨论。
15
15
 
16
- **默认判定**:完整应用搭建或补齐时,只要用户表达“默认方案 / 不要追问 / 直接创建 / 尽快搭建”等快速交付信号,就必须命中 `fast_build`。默认完成链路固定为 `resolve app → resolve forms → resolve main page → create missing resources only → 编写/更新主页面源码 → 发布 → 返回访问链接`。
16
+ **默认判定**:完整应用搭建或补齐时,用户表达“默认方案 / 不要追问 / 直接创建 / 尽快搭建”等快速交付信号,就命中 `fast_build`。默认链路:`resolve app → reserve main page → resolve forms → 编写/更新主页面源码 → 发布 → 返回访问链接`。
17
17
 
18
18
  > 资源边界:本技能是默认完整应用编排。目标不明时先只读确认或询问用户。
19
19
 
@@ -24,7 +24,7 @@ description: 宜搭完整应用开发编排技能。对普通 OpenYida 应用做
24
24
  - 来源优先级:本轮显式 `appType` / `formUuid` / URL → agent bound context → workspace config/cache → 会话历史 → 明确从零创建。
25
25
  - agent bound context 只是默认候选,不是锁定目标;如果用户本轮明确提到另一个 app/page/form/process,必须重新解析本轮目标,能唯一解析则切换,不能唯一解析才问用户。
26
26
  - 已有 app 时在该 app 内补齐资源,不加载 `yida-create-app`;只有无 app 且用户意图允许创建时才创建。
27
- - 若已有 app 来自 agent 预创建占位资源,先记录 `app.source`、`precreated`、`placeholderName`、`allowRename` 和用户是否要求保留原名,后续在语义应用名稳定后决定是否改名。
27
+ - 若已有 app 来自 agent 预创建资源,OpenYida 技能侧只复用该 `appType`,不自动修改应用名称;应用名修正由宿主或 yida-agent 侧负责。
28
28
  - 已有主页面 URL / `formUuid` / bound page 时,直接写源码并发布到该页面,不加载 `yida-create-page`;已有页面 update path 也必须在本轮源码 Write/Edit 后执行真实 `openyida publish <source> <appType> <displayPageFormUuid>`,只有缺少 display page 且本次意图允许新增页面时才创建。
29
29
  - 已有表单 context 时,字段诉求走 `yida-create-form-page` 的 update/patch/rule/bind-datasource;只有已有 app 但缺少业务数据表时才 create form。
30
30
  - 已有流程表单或 `processCode` 时,流程诉求走 `yida-process-rule`;只有没有表单/流程且用户要新建审批表单时才进入 `yida-create-process`。
@@ -41,17 +41,9 @@ description: 宜搭完整应用开发编排技能。对普通 OpenYida 应用做
41
41
 
42
42
  该阶段只决定常规 resource context;不要在本技能里绕过资源前置解析或自动新建同类资源。
43
43
 
44
- ## 阶段 1:resolve app name / rename placeholder app
44
+ ## 阶段 1:resolve app
45
45
 
46
- 完成最小需求分析后,先确定稳定语义应用名(如“访客管理系统”“CRM 客户管理系统”),再进入表单或页面创建/更新。若目标 app 来自 agent 预创建占位资源,且满足以下条件,必须复用当前 `appType` 并执行改名:
47
-
48
- - `app.source === "agent_bound"`;
49
- - `precreated === true`,或当前名称 / `placeholderName` 命中“新应用 / 未命名 / 占位 / APP_xxx”等占位样式;
50
- - `allowRename !== false`;
51
- - 用户没有明确要求“保持应用名称不变”或指定保留原名称;
52
- - 已从本轮需求得到稳定语义应用名,且该名称不是占位名。
53
-
54
- 命令固定使用现有 CLI:`openyida update-app <appType> --name "<语义应用名>"`。该调用应在创建表单/页面前执行;若受信息收集顺序限制,最晚在发布前执行。不要在本技能中重写平台 API,不要加载 `yida-create-app` 处理改名,不要按标题发现/adopt 其他应用,不要 cleanup orphan,不要对已命名的真实业务应用自动改名。
46
+ 完成最小需求分析后,只确认本轮目标 `appType` 是复用已有资源还是允许创建新应用。若目标 app 来自 agent / 宿主预创建资源,也只复用当前 `appType`;不得因为占位名称、页面标题或业务语义推导触发应用名修改。应用名修正如有需要由宿主或 yida-agent 侧负责。
55
47
 
56
48
  ## 模式
57
49
 
@@ -176,10 +168,10 @@ UI 不是独立替代主流程的步骤,而是按模式插入到页面生成
176
168
  | 阶段 | 子技能 | 必做动作 | doneWhen |
177
169
  |------|--------|----------|----------|
178
170
  | 0. 解析资源上下文 | 无 | 合并本轮显式资源、agent bound context、workspace config/cache、会话历史;本轮显式目标覆盖 bound context;判定 app/page/form/process 的 `source` 和 `allowCreate` | 明确复用、创建缺口或需要 ask_human |
179
- | 1. resolve app + app name | `yida-create-app` 仅在 app 缺失且允许创建时加载;`openyida update-app` 仅用于预创建占位 app 改名 | 已有 `appType`/应用 URL/bound app 时直接复用;若 bound/precreated app 仍是占位名,在语义名稳定后执行 `openyida update-app <appType> --name "<语义应用名>"`;否则创建应用并提取真实 `appType` | 拿到真实目标 `appType`,预创建占位 app 已改成语义名或明确跳过,且不会重复创建同类 app |
171
+ | 1. resolve app | `yida-create-app` 仅在 app 缺失且允许创建时加载;不自动修改应用名称 | 已有 `appType`/应用 URL/bound app 时直接复用;否则创建应用并提取真实 `appType` | 拿到真实目标 `appType`,且不会重复创建同类 app |
180
172
  | 2. 记录最小需求 | 无 | 写 `prd/<项目名>.md`:只记录 MVP 假设、核心表单/页面、完成标准;写/更新 `.cache/<项目名>-schema.json` 本地 ID 映射;不要写长 PRD | 业务语义和 ID 存储位置明确 |
181
- | 3. resolve forms | `yida-create-form-page` | 已有目标表单时 update/patch/rule/bind-datasource;简单字段属性更新直接用 compact changes 让 CLI 内部按 label 读 schema/定位字段并输出 resolved evidence;缺少支撑 MVP 的核心表单且允许创建时才 create;字段配置文件写入 `.cache/openyida/<项目名>/`;页面/数据/流程/公式确需多字段映射时,对每个目标表单最多一次性获取完整 `--field-map-json` 并合并写回 `.cache/<项目名>-schema.json` | 拿到或确认表单 `formUuid`,并在需要时拿到真实 `fieldId` |
182
- | 4. resolve main page | `yida-create-page` 仅在主页面缺失且允许创建时加载 | 已有页面 URL / `formUuid` / bound page 时直接作为主页面;否则创建一个用户主入口 display page | 拿到真实目标页面 `formUuid`,且不会重复创建页面 |
173
+ | 3. reserve main page | `yida-create-page` 仅在主页面缺失且允许创建时加载 | 已有页面 URL / `formUuid` / bound page 时直接作为主页面;若需要首页/工作台/智能助手/门户门面且缺少主页面,先创建空 display page 占位,暂不写最终源码 | 拿到真实主页面 `formUuid`,且不会重复创建页面 |
174
+ | 4. resolve forms | `yida-create-form-page` | 已有目标表单时 update/patch/rule/bind-datasource;简单字段属性更新直接用 compact changes 让 CLI 内部按 label 读 schema/定位字段并输出 resolved evidence;缺少支撑 MVP 的核心表单且允许创建时才 create;字段配置文件写入 `.cache/openyida/<项目名>/`;页面/数据/流程/公式确需多字段映射时,对每个目标表单最多一次性获取完整 `--field-map-json` 并合并写回 `.cache/<项目名>-schema.json` | 拿到或确认表单 `formUuid`,并在需要时拿到真实 `fieldId` |
183
175
  | 5. 编写/更新页面 | 默认 `yida-canvas-custom-page`;明确要求 JSX/Jsx 组件链路或实例桥强依赖时选择 `yida-custom-page` | 生成或修改主页面源码;只实现 MVP 首屏和核心操作。可用已解析表单链接、真实空态、表单入口和轻量指标口径完成主页面;若展示业务列表/看板/详情记录,必须接本轮真实表单 `dataBinding.mode=form`,或先写入 demo records 后再读取;不要加载视觉/密度/报表/数据源等额外技能 | 本地源码通过对应页面技能的基础校验;未执行 publish 时仍是“源码已修改,尚未发布” |
184
176
  | 6. 发布页面 | `yida-publish-page` | 按页面链路校验后发布到已解析主页面:Canvas `.canvas.jsx` 使用 `openyida publish` 的 Canvas 编译阶段或 `compileCanvasLocal` 快检;普通自定义页面 `.oyd.jsx` / `.jsx` 跑 `check-page` / `compile`;再执行 `openyida publish <source> <appType> <displayPageFormUuid>` 发布主页面 | 发布成功并获得可访问 URL |
185
177
  | 7. 输出结果 | 无 | 返回应用链接、主页面链接、复用/创建/更新的资源摘要、后续可选项 | 用户拿到 URL |
@@ -284,7 +276,7 @@ UI 不是独立替代主流程的步骤,而是按模式插入到页面生成
284
276
  - corpId 与目标组织不一致时先停下,让用户选择重新登录或在当前组织继续。
285
277
  - 已有目标 app/page/form/process 时默认复用;只有用户明确要求新建另一个同类资源,或目标缺失且本次意图允许创建时,才加载 create 类子技能。
286
278
  - 当前轮用户明确指定的资源优先于 agent bound context;例如会话绑定页面 A、用户要求修复页面 B 时,先解析 B,不能唯一解析才问用户,不要默认改 A。
287
- - agent 预创建占位 app 只作为默认资源;满足改名条件时只调用 `openyida update-app` 修正语义名,不创建新 app,不改非占位真实业务 app。
279
+ - agent 预创建 app 只作为默认资源;OpenYida 技能侧只复用该 `appType`,不创建新 app,也不自动修改应用名称。
288
280
  - 多个同优先级资源候选或当前轮显式资源冲突时,先问用户确认目标,不要通过重复创建规避冲突。
289
281
  - 输入 JSON/YAML/CSV/JSX 等业务文件必须用结构化文件写入工具创建,不用 shell heredoc、`cat`、`echo`、`printf`、`tee` 或重定向。
290
282
  - 用户要求删除应用时,必须展示应用名称、应用 ID、影响范围,并等待用户明确回复“确认删除”后才可执行。
@@ -17,7 +17,7 @@ description: 创建宜搭应用并返回 appType;仅当没有目标 app 且用
17
17
 
18
18
  若已解析到 `appType`、应用 URL、bound app 或 workspace 中可确认的 app,必须复用该 app 并继续后续表单/页面/发布步骤,不得调用 `openyida create-app`。若用户说“新建另一个应用”,先确认目标组织和新应用名,再执行本技能。
19
19
 
20
- 若该 app 是 yida-agent / 宿主预创建的占位 app(例如名称为“新应用”“未命名”“占位”或 `APP_xxx` 样式,且 context 标记 `source=agent_bound`、`precreated=true`、`allowRename !== false`),也仍然视为“已有目标 app”:不得调用 `openyida create-app`。占位名修正由 `yida-app` 在最小需求分析得到稳定语义应用名后调用 `openyida update-app <appType> --name "<语义应用名>"` 完成;本技能只负责在确实没有目标 app 且允许创建时新建应用。
20
+ 若该 app 是 yida-agent / 宿主预创建的 app(context 标记 `source=agent_bound` 或 `precreated=true`),也仍然视为“已有目标 app”:不得调用 `openyida create-app`,也不得在本技能中修改应用名称。本技能只负责在确实没有目标 app 且允许创建时新建应用。
21
21
 
22
22
  ## 严格禁止 (NEVER DO)
23
23
  - 不要编造 appType,必须从命令返回的 JSON 中提取
@@ -25,6 +25,7 @@ description: 创建自定义展示页面(display 类型)并返回 formUuid
25
25
 
26
26
  - **创建前必须确认**:单点创建页面时,执行创建命令前必须向用户确认页面名称和目标应用。由 `yida-app fast_build` 编排且用户已说“默认方案 / 不要追问 / 直接创建”时,合理命名并直接创建,不再二次追问。
27
27
  - 创建成功后,将 formUuid 记录到 `.cache/<项目名>-schema.json`
28
+ - 由 `yida-app fast_build` 编排的首页/工作台/智能助手/门户门面页,可以先于业务表单创建;先占位记录 `formUuid`,待表单 ID 明确后再写源码并发布。
28
29
  - 创建页面后,必须继续选择一个页面实现链路编写页面源码,再用 `yida-publish-page` 发布:Code Canvas 链路用 `yida-canvas-custom-page`;普通自定义页面 JSX/Jsx 组件链路用 `yida-custom-page`
29
30
  - 用户明确要求 JSX / Jsx 组件 / 普通自定义页,或页面强依赖 `this.$`、`this.utils.yida.*`、`this.dataSourceMap` 时,创建后进入 `yida-custom-page`;涉及成员、部门、附件上传或图片上传时必须读取 `component-jsx-guide.md`,上传还必须读取 `attachment-upload-guide.md`
30
31
  - **本技能不读写 memory**:formUuid 等信息输出到 stdout,通过 `.cache/<项目名>-schema.json` 持久化,不依赖跨会话的 memory 状态
@@ -23,7 +23,7 @@
23
23
  "name": "yida-app",
24
24
  "path": "skills/yida-app/SKILL.md",
25
25
  "display_name": "宜搭完整应用开发",
26
- "description": "完整搭建或补齐普通 OpenYida 应用的流程编排技能。默认 fast_build 先解析并复用 app/page/form/process 上下文,只创建缺失且允许创建的应用、表单或页面;预创建占位应用在语义名称稳定后通过 update-app 重命名;不默认使用未绑定 dataSourceMap,导航、示例数据和深度设计按需后置。",
26
+ "description": "完整搭建或补齐普通 OpenYida 应用的流程编排技能。默认 fast_build 先解析并复用 app/page/form/process 上下文,只创建缺失且允许创建的应用、表单或页面;绑定或预创建应用只复用不改名;不默认使用未绑定 dataSourceMap,导航、示例数据和深度设计按需后置。",
27
27
  "done_when": "若本轮 Write/Edit 页面源码,必须真实执行成功 openyida publish <source> <appType> <displayPageFormUuid> 并返回访问 URL;没有 publish 证据只能声明源码已修改,尚未发布。",
28
28
  "category": "yida-skills/app",
29
29
  "tags": [
@@ -298,7 +298,7 @@
298
298
  "name": "yida-create-app",
299
299
  "path": "skills/yida-create-app/SKILL.md",
300
300
  "display_name": "创建宜搭应用",
301
- "description": "仅在没有目标 app 且允许创建时创建宜搭应用并返回 appType。已绑定或预创建 app 不调用 create-app,应交给 yida-app 复用,并在需要时通过 update-app 重命名。",
301
+ "description": "仅在没有目标 app 且允许创建时创建宜搭应用并返回 appType。已绑定或预创建 app 不调用 create-app,也不由 OpenYida 技能侧自动改名,应交给 yida-app 复用。",
302
302
  "category": "yida-skills/app",
303
303
  "tags": [
304
304
  "创建应用",