openxiangda 1.0.265 → 1.0.267

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 (37) hide show
  1. package/README.md +15 -6
  2. package/lib/application-environments.js +15 -1
  3. package/lib/cli.js +57 -8
  4. package/lib/skills.js +59 -56
  5. package/openxiangda-skills/SKILL.md +2 -2
  6. package/openxiangda-skills/skills/openxiangda-core/SKILL.md +1 -1
  7. package/package.json +1 -2
  8. package/packages/sdk/dist/{ProcessPreview-DSUIJi5V.d.mts → ProcessPreview-Cyk6uv-w.d.mts} +3 -2
  9. package/packages/sdk/dist/{ProcessPreview-DSUIJi5V.d.ts → ProcessPreview-Cyk6uv-w.d.ts} +3 -2
  10. package/packages/sdk/dist/components/index.d.mts +42 -41
  11. package/packages/sdk/dist/components/index.d.ts +42 -41
  12. package/packages/sdk/dist/{dataManagementApi-p_HOhQnA.d.mts → dataManagementApi-4fSaCA5t.d.mts} +2 -2
  13. package/packages/sdk/dist/{dataManagementApi-Ro9itwm8.d.ts → dataManagementApi-CE8Zyj3a.d.ts} +2 -2
  14. package/packages/sdk/dist/runtime/index.d.mts +4 -3
  15. package/packages/sdk/dist/runtime/index.d.ts +4 -3
  16. package/packages/sdk/dist/runtime/react.d.mts +5 -5
  17. package/packages/sdk/dist/runtime/react.d.ts +5 -5
  18. package/templates/openxiangda-react-spa/AGENTS.md +2 -0
  19. package/templates/sy-lowcode-app-workspace/AGENTS.md +1 -1
  20. package/v2/README.md +0 -35
  21. package/v2/skills/manifest.json +0 -45
  22. package/v2/skills/openxiangda-v1-maintenance/SKILL.md +0 -21
  23. package/v2/skills/openxiangda-v1-maintenance/agents/openai.yaml +0 -4
  24. package/v2/skills/openxiangda-v2/SKILL.md +0 -38
  25. package/v2/skills/openxiangda-v2/agents/openai.yaml +0 -4
  26. package/v2/skills/openxiangda-v2-architecture/SKILL.md +0 -29
  27. package/v2/skills/openxiangda-v2-architecture/agents/openai.yaml +0 -4
  28. package/v2/skills/openxiangda-v2-backend/SKILL.md +0 -28
  29. package/v2/skills/openxiangda-v2-backend/agents/openai.yaml +0 -4
  30. package/v2/skills/openxiangda-v2-data-authz/SKILL.md +0 -28
  31. package/v2/skills/openxiangda-v2-data-authz/agents/openai.yaml +0 -4
  32. package/v2/skills/openxiangda-v2-delivery/SKILL.md +0 -30
  33. package/v2/skills/openxiangda-v2-delivery/agents/openai.yaml +0 -4
  34. package/v2/skills/openxiangda-v2-frontend/SKILL.md +0 -21
  35. package/v2/skills/openxiangda-v2-frontend/agents/openai.yaml +0 -4
  36. package/v2/skills/openxiangda-v2-workflow-events/SKILL.md +0 -28
  37. package/v2/skills/openxiangda-v2-workflow-events/agents/openai.yaml +0 -4
package/README.md CHANGED
@@ -4,14 +4,19 @@
4
4
 
5
5
  OpenXiangda is a lightweight CLI and skill package for private low-code platforms.
6
6
 
7
- ## Two runtime generations
7
+ ## Repository boundary
8
8
 
9
- OpenXiangda now has two deliberately separate development tracks:
9
+ This repository contains only the stable OpenXiangda 1.x maintenance toolchain.
10
+ It maintains existing resource-based applications and its legacy Delivery V2
11
+ protocol. Stable applications keep this runtime and are not migrated by a
12
+ platform upgrade.
10
13
 
11
- - `openxiangda` 1.x maintains existing resource-based applications and its legacy Delivery V2 protocol. Stable applications keep this runtime and are not migrated by a platform upgrade.
12
- - `v2/` contains the new platform-2.0 application toolchain: `create-openxiangda`, `@openxiangda/cli`, `@openxiangda/mcp`, standard React/NestJS packages, typed configuration, domain skills, and application-level deployment.
13
-
14
- For a new 2.0 application, start with [`v2/docs/getting-started.md`](v2/docs/getting-started.md). A 2.0 workspace has `openxiangda.config.ts`, `apps/web`, and `apps/server`; it must not use the 1.x resource/SDD publishing commands.
14
+ OpenXiangda 2.0 is developed and released from the independent
15
+ `tools/openxiangda-v2` repository pinned by the platform orchestration
16
+ repository. A new 2.0 workspace must use that repository's current public
17
+ packages, unified AI skill, templates, and documentation. It must not use the
18
+ 1.x resource/SDD publishing commands or any historical embedded copy of the
19
+ 2.0 toolchain.
15
20
 
16
21
  Normal OpenXiangda app development uses platform-user login tokens through `/openxiangda-api/v1`; it does not use AK/SK. External backend and third-party integrations use the separate `openxiangda-open-api` skill, `/dingtalk-api/v1.0`, and a platform-managed AK/SK credential.
17
22
 
@@ -107,6 +112,10 @@ openxiangda resource plan function --only customer_get,customer_save --profile d
107
112
  openxiangda sdd bundle mainline-release --changes add-customer-page,fix-customer-api
108
113
  # verify, wait for the lease, stage exact children, atomically finalize, and release
109
114
  openxiangda release publish --change mainline-release --profile dev
115
+ # 仅限平台已核验的旧式多历史 lineage、精确非删除恢复
116
+ openxiangda release publish --change mainline-release --profile dev \
117
+ --adopt-online-baseline \
118
+ --adoption-reason "已合入主线的目标来自多次历史发布,无法对应单一 Git 基线"
110
119
  openxiangda release status --change mainline-release --watch
111
120
  openxiangda release explain --change mainline-release --profile dev
112
121
  # 环境托管应用一次性登记(已有应用通常作为 preproduction)
@@ -1025,7 +1025,7 @@ function releaseExecutionPath(changeId, deploymentId, cwd = process.cwd()) {
1025
1025
  }
1026
1026
 
1027
1027
  function withManagedReleaseForwardedFlags(stepId, args = [], flags = {}) {
1028
- const forwarded = [...args];
1028
+ let forwarded = [...args];
1029
1029
  if (stepId === 'runtime-stage' && flags['allow-runtime-rollback']) {
1030
1030
  forwarded.push('--allow-runtime-rollback');
1031
1031
  const rollbackReason = String(flags.reason || '').trim();
@@ -1058,6 +1058,19 @@ function withManagedReleaseForwardedFlags(stepId, args = [], flags = {}) {
1058
1058
  forwarded.push('--reason', replacementReason);
1059
1059
  }
1060
1060
  }
1061
+ forwarded = withOnlineBaselineAdoptionFlags(forwarded, flags);
1062
+ return forwarded;
1063
+ }
1064
+
1065
+ function withOnlineBaselineAdoptionFlags(args = [], flags = {}) {
1066
+ const forwarded = [...args];
1067
+ const isExactResourcePublish =
1068
+ forwarded[0] === 'resource' &&
1069
+ forwarded[1] === 'publish' &&
1070
+ (forwarded.includes('--only') || forwarded.includes('--code'));
1071
+ if (!isExactResourcePublish) {
1072
+ return forwarded;
1073
+ }
1061
1074
  if (flags['adopt-online-baseline']) {
1062
1075
  forwarded.push('--adopt-online-baseline');
1063
1076
  const adoptionReason = String(
@@ -1129,6 +1142,7 @@ module.exports = {
1129
1142
  saveCandidate,
1130
1143
  sha256Canonical,
1131
1144
  withManagedReleaseForwardedFlags,
1145
+ withOnlineBaselineAdoptionFlags,
1132
1146
  withReleaseClientSessionArgs,
1133
1147
  writePrivateJsonAtomic,
1134
1148
  };
package/lib/cli.js CHANGED
@@ -163,6 +163,7 @@ const {
163
163
  saveCandidate,
164
164
  sha256Canonical,
165
165
  withManagedReleaseForwardedFlags,
166
+ withOnlineBaselineAdoptionFlags,
166
167
  withReleaseClientSessionArgs,
167
168
  } = require('./application-environments');
168
169
  const { startDeveloperCenter } = require('./developer-center');
@@ -336,7 +337,7 @@ Usage:
336
337
  openxiangda status <runId> [--environment preproduction|production] [--json]
337
338
  openxiangda retry <runId> [--environment preproduction|production] [--json]
338
339
  openxiangda rollback <preproduction|production> --to <appReleaseId> [--json]
339
- openxiangda release publish|begin|status|integration-status|renew|end [--change id] [--profile name] [--watch] [--json]
340
+ openxiangda release publish|begin|status|integration-status|renew|end [--change id] [--profile name] [--adopt-online-baseline --adoption-reason text] [--watch] [--json]
340
341
  openxiangda release ship|candidate|deploy|reconcile|test|fail|promote|rollback [--candidate id] [--deployment id] [--environment target] [--replace-manifest] [--allow-runtime-rollback --reason text] [--adopt-online-baseline --adoption-reason text] [--confirm-production] [--json]
341
342
  openxiangda task status --change <id> [--profile name] [--watch] [--json]
342
343
  openxiangda release backend-head|backend-list|backend-detail|backend-diff|backend-rollback|backend-abort|backend-retry [releaseId] [--profile name] [--json]
@@ -2075,14 +2076,18 @@ async function endReleaseWithoutLocalLease(
2075
2076
  }
2076
2077
 
2077
2078
  function decorateEnvironmentReleaseSteps(steps, target, flags = {}) {
2078
- if (!target.environmentId || !target.targetName) return steps;
2079
+ const managedEnvironment = Boolean(
2080
+ target.environmentId && target.targetName
2081
+ );
2079
2082
  const deploymentId = readStringFlag(flags, 'deployment-id');
2080
2083
  for (const step of steps) {
2081
- step.args = withManagedReleaseForwardedFlags(
2082
- step.id,
2083
- step.args,
2084
- flags
2085
- );
2084
+ step.args = managedEnvironment
2085
+ ? withManagedReleaseForwardedFlags(step.id, step.args, flags)
2086
+ : withOnlineBaselineAdoptionFlags(step.args, flags);
2087
+ if (!managedEnvironment) {
2088
+ step.command = commandFromArgs(step.args);
2089
+ continue;
2090
+ }
2086
2091
  step.args.push('--environment', target.targetName);
2087
2092
  if (deploymentId) step.args.push('--deployment-id', deploymentId);
2088
2093
  if (step.id === 'runtime-stage' && flags.__verifiedCandidate) {
@@ -2132,6 +2137,43 @@ function decorateEnvironmentReleaseSteps(steps, target, flags = {}) {
2132
2137
  return steps;
2133
2138
  }
2134
2139
 
2140
+ function assertReleasePublishAdoptionFlags(flags = {}) {
2141
+ const adoptionRequested = Boolean(flags['adopt-online-baseline']);
2142
+ const adoptionReasonSupplied = Object.prototype.hasOwnProperty.call(
2143
+ flags,
2144
+ 'adoption-reason'
2145
+ );
2146
+ const adoptionReason = String(flags['adoption-reason'] || '').trim();
2147
+ if (!adoptionRequested && adoptionReasonSupplied) {
2148
+ const error = new Error(
2149
+ 'RELEASE_PUBLISH_ADOPTION_FLAG_REQUIRED: --adoption-reason 必须与 --adopt-online-baseline 一起使用;命令已在任何发布租约或资源写入前终止'
2150
+ );
2151
+ error.code = 'RELEASE_PUBLISH_ADOPTION_FLAG_REQUIRED';
2152
+ throw error;
2153
+ }
2154
+ if (adoptionRequested && adoptionReason.length < 8) {
2155
+ const error = new Error(
2156
+ 'RELEASE_PUBLISH_ADOPTION_REASON_REQUIRED: --adopt-online-baseline 必须提供至少 8 个字符的 --adoption-reason;命令已在任何发布租约或资源写入前终止'
2157
+ );
2158
+ error.code = 'RELEASE_PUBLISH_ADOPTION_REASON_REQUIRED';
2159
+ throw error;
2160
+ }
2161
+ }
2162
+
2163
+ function assertReleasePublishAdoptionScope(steps = [], flags = {}) {
2164
+ if (!flags['adopt-online-baseline']) return;
2165
+ const adoptionSteps = steps.filter(step =>
2166
+ step.args?.includes('--adopt-online-baseline')
2167
+ );
2168
+ if (adoptionSteps.length === 0) {
2169
+ const error = new Error(
2170
+ 'RELEASE_PUBLISH_ADOPTION_SCOPE_REQUIRED: 当前发布计划没有可精确采纳线上基线的 resource publish --only/--code 阶段;命令已在任何发布租约或资源写入前终止'
2171
+ );
2172
+ error.code = 'RELEASE_PUBLISH_ADOPTION_SCOPE_REQUIRED';
2173
+ throw error;
2174
+ }
2175
+ }
2176
+
2135
2177
  function changeIdFromStep(step) {
2136
2178
  const index = step.args.indexOf('--change');
2137
2179
  return index >= 0 ? step.args[index + 1] : 'change';
@@ -2145,6 +2187,7 @@ async function publishWorkspaceRelease(config, target, flags = {}) {
2145
2187
  if (!changeId) {
2146
2188
  fail('用法: openxiangda release publish --change <id> --profile <name>');
2147
2189
  }
2190
+ assertReleasePublishAdoptionFlags(flags);
2148
2191
  assertManagedRuntimeRollbackFlags(flags);
2149
2192
  const releaseCandidate = flags.__verifiedCandidate
2150
2193
  ? assertLocalCandidate(flags.__verifiedCandidate)
@@ -2171,6 +2214,7 @@ async function publishWorkspaceRelease(config, target, flags = {}) {
2171
2214
  changeId
2172
2215
  );
2173
2216
  decorateEnvironmentReleaseSteps(steps, target, flags);
2217
+ assertReleasePublishAdoptionScope(steps, flags);
2174
2218
  const releaseScope = getSddChangeScope({
2175
2219
  cwd: process.cwd(),
2176
2220
  configText: readWorkspaceConfigText(),
@@ -5308,7 +5352,7 @@ async function release(args) {
5308
5352
  const { flags, positional } = parseArgs(rest);
5309
5353
  if (wantsSubcommandHelp(subcommand, flags)) {
5310
5354
  print([
5311
- '用法: openxiangda release publish|begin|status|explain|integration-status|renew|end [--change id] [--profile name] [--json]',
5355
+ '用法: openxiangda release publish|begin|status|explain|integration-status|renew|end [--change id] [--profile name] [--adopt-online-baseline --adoption-reason text] [--json]',
5312
5356
  ' openxiangda release ship|candidate|deploy|reconcile|test|fail|promote|rollback [--candidate id] [--deployment id] [--environment target] [--replace-manifest] [--allow-runtime-rollback --reason text] [--adopt-online-baseline --adoption-reason text] [--confirm-production] [--json]',
5313
5357
  ' openxiangda release backend-head|backend-list|backend-detail|backend-diff|backend-rollback|backend-abort|backend-retry [releaseId] [--profile name] [--json]',
5314
5358
  ' openxiangda release app-capture|app-head|app-list|app-detail|app-diff|app-post-commit|app-retry|app-prepare|app-verify|app-activate|app-finalize|app-rollback|app-abort [releaseId] [--staged-resources-json <JSON|file>] [--activate-staged-children] [--break-glass-adopt-verified-root --reason text] [--force-activate-without-validation] [--profile name] [--json]',
@@ -5321,6 +5365,7 @@ async function release(args) {
5321
5365
  ' openxiangda release ship --change <id> --profile <name> --confirm-production',
5322
5366
  ' openxiangda release fail --deployment <id> --message "UAT 未通过" --code UAT_FAILED --details-json <JSON|file> --environment preproduction --profile <name>',
5323
5367
  ' openxiangda release publish --change <id> --profile <name>',
5368
+ ' openxiangda release publish --change <id> --profile <name> --adopt-online-baseline --adoption-reason "已审计目标来自多次历史发布"',
5324
5369
  ' openxiangda release begin --change <id> --profile <name>',
5325
5370
  ' openxiangda resource publish function --only <code> --change <id> --profile <name>',
5326
5371
  ' openxiangda runtime deploy --change <id> --profile <name>',
@@ -5339,6 +5384,7 @@ async function release(args) {
5339
5384
  ' - release fail 只允许显式选择 preproduction target,并会先核对 deployment 的 targetEnvironmentId;message 必填,code/details 会一并写入平台审计。',
5340
5385
  ' - ship 当前不支持 --dry-run;任何未声明参数都会在 candidate/deployment 写入前 fail-closed。需要只读检查时使用 environment status/diff 与 release status。',
5341
5386
  ' - publish 默认等待租约并按私有执行日志恢复;上次写结果不确定时必须只读核对后显式 --resume-after-review。',
5387
+ ' - 旧式非环境托管 publish 也会把线上基线采纳意图仅透传给精确的 resource publish --only/--code 阶段;无精确资源阶段、原因不足或单独提供 reason 均在获取租约前 fail-closed。',
5342
5388
  ' - app-head 默认只输出紧凑 head 摘要;需要完整 manifest 时显式追加 --full。',
5343
5389
  ' - begin 获取应用级单写者 promotion lease;不同工作区仍可并行开发和验证。',
5344
5390
  ' - 带 --change 的 resource/runtime 写命令在没有本地 lease 时会自动 begin,并在后续命令复用。',
@@ -31065,6 +31111,8 @@ function buildWorkspacePublishEnv(
31065
31111
  }
31066
31112
 
31067
31113
  module.exports = {
31114
+ assertReleasePublishAdoptionFlags,
31115
+ assertReleasePublishAdoptionScope,
31068
31116
  assertRuntimeReleaseReusable,
31069
31117
  buildOpenXiangdaUpdateInstallPlan,
31070
31118
  buildResourceManifestSddTargets,
@@ -31081,4 +31129,5 @@ module.exports = {
31081
31129
  resolveDataViewSourceFormCodes,
31082
31130
  satisfiedFormCodesFromContext,
31083
31131
  stagedDataViewFormReleaseDependencies,
31132
+ decorateEnvironmentReleaseSteps,
31084
31133
  };
package/lib/skills.js CHANGED
@@ -82,62 +82,17 @@ const SKILL_SPECS = [
82
82
  sourceRelativePath: 'openxiangda-skills/skills/openxiangda-open-api',
83
83
  type: 'subskill',
84
84
  },
85
- {
86
- name: 'openxiangda-v2',
87
- displayName: 'OpenXiangda 2.0',
88
- shortDescription: '标准 React/NestJS 应用与应用级交付入口。',
89
- sourceRelativePath: 'v2/skills/openxiangda-v2',
90
- type: 'subskill',
91
- },
92
- {
93
- name: 'openxiangda-v2-architecture',
94
- displayName: 'OpenXiangda 2.0 Architecture',
95
- shortDescription: '设计 2.0 应用边界与类型化平台契约。',
96
- sourceRelativePath: 'v2/skills/openxiangda-v2-architecture',
97
- type: 'subskill',
98
- },
99
- {
100
- name: 'openxiangda-v2-frontend',
101
- displayName: 'OpenXiangda 2.0 Frontend',
102
- shortDescription: '开发 React、Ant Design 与标准后台页面。',
103
- sourceRelativePath: 'v2/skills/openxiangda-v2-frontend',
104
- type: 'subskill',
105
- },
106
- {
107
- name: 'openxiangda-v2-backend',
108
- displayName: 'OpenXiangda 2.0 Backend',
109
- shortDescription: '开发平台托管的标准 NestJS 应用后端。',
110
- sourceRelativePath: 'v2/skills/openxiangda-v2-backend',
111
- type: 'subskill',
112
- },
113
- {
114
- name: 'openxiangda-v2-data-authz',
115
- displayName: 'OpenXiangda 2.0 Data and AuthZ',
116
- shortDescription: '设计 Data API、RBAC 与上下文数据权限。',
117
- sourceRelativePath: 'v2/skills/openxiangda-v2-data-authz',
118
- type: 'subskill',
119
- },
120
- {
121
- name: 'openxiangda-v2-workflow-events',
122
- displayName: 'OpenXiangda 2.0 Workflow and Events',
123
- shortDescription: '开发 Workflow Kernel v2 与持久事件消费者。',
124
- sourceRelativePath: 'v2/skills/openxiangda-v2-workflow-events',
125
- type: 'subskill',
126
- },
127
- {
128
- name: 'openxiangda-v2-delivery',
129
- displayName: 'OpenXiangda 2.0 Delivery',
130
- shortDescription: '构建、部署、观察、晋级和回滚完整应用。',
131
- sourceRelativePath: 'v2/skills/openxiangda-v2-delivery',
132
- type: 'subskill',
133
- },
134
- {
135
- name: 'openxiangda-v1-maintenance',
136
- displayName: 'OpenXiangda 1.x Maintenance',
137
- shortDescription: '不迁移地安全维护稳定 1.x 应用。',
138
- sourceRelativePath: 'v2/skills/openxiangda-v1-maintenance',
139
- type: 'subskill',
140
- },
85
+ ];
86
+
87
+ const RETIRED_SKILL_SPECS = [
88
+ { name: 'openxiangda-v2', sourceRelativePath: 'v2/skills/openxiangda-v2' },
89
+ { name: 'openxiangda-v2-architecture', sourceRelativePath: 'v2/skills/openxiangda-v2-architecture' },
90
+ { name: 'openxiangda-v2-frontend', sourceRelativePath: 'v2/skills/openxiangda-v2-frontend' },
91
+ { name: 'openxiangda-v2-backend', sourceRelativePath: 'v2/skills/openxiangda-v2-backend' },
92
+ { name: 'openxiangda-v2-data-authz', sourceRelativePath: 'v2/skills/openxiangda-v2-data-authz' },
93
+ { name: 'openxiangda-v2-workflow-events', sourceRelativePath: 'v2/skills/openxiangda-v2-workflow-events' },
94
+ { name: 'openxiangda-v2-delivery', sourceRelativePath: 'v2/skills/openxiangda-v2-delivery' },
95
+ { name: 'openxiangda-v1-maintenance', sourceRelativePath: 'v2/skills/openxiangda-v1-maintenance' },
141
96
  ];
142
97
 
143
98
  function getDefaultCodexSkillsDir(env = process.env) {
@@ -242,6 +197,36 @@ function getSkillStatus(spec, skillsDir) {
242
197
  };
243
198
  }
244
199
 
200
+ function getRetiredSkillStatus(spec, skillsDir) {
201
+ const targetDir = path.join(skillsDir, spec.name);
202
+ if (!fs.existsSync(targetDir)) {
203
+ return {
204
+ name: spec.name,
205
+ status: 'absent',
206
+ targetDir,
207
+ sourceRelativePath: spec.sourceRelativePath,
208
+ };
209
+ }
210
+
211
+ const manifest = readManifest(targetDir);
212
+ const isManagedRetiredSkill =
213
+ manifest?.manager === MANAGER &&
214
+ manifest.sourceRelativePath === spec.sourceRelativePath;
215
+ return {
216
+ name: spec.name,
217
+ status: isManagedRetiredSkill ? 'retired-managed' : 'preserved-external',
218
+ targetDir,
219
+ sourceRelativePath: spec.sourceRelativePath,
220
+ };
221
+ }
222
+
223
+ function removeRetiredManagedSkill(spec, skillsDir) {
224
+ const status = getRetiredSkillStatus(spec, skillsDir);
225
+ if (status.status === 'retired-managed') {
226
+ fs.rmSync(status.targetDir, { recursive: true, force: true });
227
+ }
228
+ }
229
+
245
230
  function getSkillStatusReport(options = {}) {
246
231
  const agent = validateAgent(options.agent);
247
232
  const env = options.env || process.env;
@@ -252,10 +237,12 @@ function getSkillStatusReport(options = {}) {
252
237
  const results = [];
253
238
  for (const skillsDir of skillsDirs) {
254
239
  const skills = SKILL_SPECS.map(spec => getSkillStatus(spec, skillsDir));
240
+ const retiredSkills = RETIRED_SKILL_SPECS.map(spec => getRetiredSkillStatus(spec, skillsDir));
255
241
  results.push({
256
242
  agent,
257
243
  skillsDir,
258
244
  skills,
245
+ retiredSkills,
259
246
  });
260
247
  }
261
248
 
@@ -283,6 +270,7 @@ function installSkills(options = {}) {
283
270
  const results = [];
284
271
  for (const skillsDir of skillsDirs) {
285
272
  const before = SKILL_SPECS.map(spec => getSkillStatus(spec, skillsDir));
273
+ const retiredBefore = RETIRED_SKILL_SPECS.map(spec => getRetiredSkillStatus(spec, skillsDir));
286
274
  const conflicts = before.filter(item => item.status === 'foreign');
287
275
 
288
276
  if (conflicts.length > 0 && !force && !dryRun) {
@@ -298,17 +286,29 @@ function installSkills(options = {}) {
298
286
  targetDir: item.targetDir,
299
287
  sourceRelativePath: item.sourceRelativePath,
300
288
  }));
289
+ const retiredOperations = retiredBefore.map(item => ({
290
+ name: item.name,
291
+ operation: item.status === 'retired-managed' ? 'remove-retired-managed' : 'preserve',
292
+ targetDir: item.targetDir,
293
+ sourceRelativePath: item.sourceRelativePath,
294
+ }));
301
295
 
302
296
  if (!dryRun) {
303
297
  fs.mkdirSync(skillsDir, { recursive: true });
304
298
  for (const spec of SKILL_SPECS) {
305
299
  installOneSkill(spec, skillsDir);
306
300
  }
301
+ for (const spec of RETIRED_SKILL_SPECS) {
302
+ removeRetiredManagedSkill(spec, skillsDir);
303
+ }
307
304
  }
308
305
 
309
306
  const after = dryRun
310
307
  ? before
311
308
  : SKILL_SPECS.map(spec => getSkillStatus(spec, skillsDir));
309
+ const retiredAfter = dryRun
310
+ ? retiredBefore
311
+ : RETIRED_SKILL_SPECS.map(spec => getRetiredSkillStatus(spec, skillsDir));
312
312
 
313
313
  results.push({
314
314
  agent,
@@ -317,7 +317,9 @@ function installSkills(options = {}) {
317
317
  dryRun,
318
318
  force,
319
319
  operations,
320
+ retiredOperations,
320
321
  skills: after,
322
+ retiredSkills: retiredAfter,
321
323
  });
322
324
  }
323
325
 
@@ -446,6 +448,7 @@ function buildWarnings(legacySkills) {
446
448
 
447
449
  module.exports = {
448
450
  INSTALL_MANIFEST,
451
+ RETIRED_SKILL_SPECS,
449
452
  SKILL_SPECS,
450
453
  getSkillStatusReport,
451
454
  installSkills,
@@ -13,7 +13,7 @@ This file is a router and safety card. Read only the one or two subskills select
13
13
 
14
14
  ## Select the runtime generation first
15
15
 
16
- If the workspace contains `openxiangda.config.ts`, `apps/web`, and `apps/server`, it is a platform-2.0 application. Stop this 1.x resource flow and use `$openxiangda-v2` plus its architecture, frontend, backend, data-authz, workflow-events, and delivery skills. The 2.0 CLI operates on one immutable application package and does not use SDD or per-resource publishing.
16
+ If the workspace contains `openxiangda.config.ts`, `apps/web`, and `apps/server`, it is a platform-2.0 application. Stop this 1.x resource flow and use the independently released `$openxiangda-v2` unified skill. The 2.0 CLI operates on one immutable application package and does not use SDD or per-resource publishing.
17
17
 
18
18
  If the workspace contains `app-workspace.config.ts`, forms/pages/resource manifests, or an existing 1.x state directory, continue with this router. Never migrate a stable 1.x application merely because platform 2.0 is available.
19
19
 
@@ -161,7 +161,7 @@ When the sealed Runtime source intentionally does not descend from the active Ru
161
161
 
162
162
  `resource plan` and publish dry-runs are strictly GET/HEAD-only. `READ_ONLY_AUTH_REQUIRED` means the access token expired; run `openxiangda auth refresh --profile <name>` or log in again before retrying. Never add an automatic refresh POST inside a plan.
163
163
 
164
- `release publish` is the default promotion entrypoint only for legacy unmanaged workspaces. It verifies without rewriting reviewed `change.json`/`release.json`, waits for the app lease, freezes the App capture after ownership is acquired, executes deterministic exact staged steps, resumes from `.openxiangda/releases/<change>/execution.json`, atomically finalizes, verifies mainline integration, and releases the lease. Environment-managed applications use the two-phase `release ship`; candidate/deploy/test/fail/promote, `release begin`, and child commands remain recovery/diagnostic primitives.
164
+ `release publish` is the default promotion entrypoint only for legacy unmanaged workspaces. It verifies without rewriting reviewed `change.json`/`release.json`, waits for the app lease, freezes the App capture after ownership is acquired, executes deterministic exact staged steps, resumes from `.openxiangda/releases/<change>/execution.json`, atomically finalizes, verifies mainline integration, and releases the lease. When the same audited historical-lineage condition applies, legacy `release publish` accepts `--adopt-online-baseline --adoption-reason "..."` and forwards the pair only to exact `resource publish --only/--code` stages; missing reasons or plans without an exact resource stage fail before lease acquisition. Environment-managed applications use the two-phase `release ship`; candidate/deploy/test/fail/promote, `release begin`, and child commands remain recovery/diagnostic primitives.
165
165
 
166
166
  Reviewed bundle commands may retain `<profile>` as a template. The explicit real `release publish --profile <name>` value is bound to actual child argv without rewriting tracked SDD. React SPA page codes are logical coverage targets and activate through one Runtime child; they do not require PageRelease. `release app-head` and `runtime releases` are compact by default; use `--full` only when the complete manifest is required.
167
167
 
@@ -157,7 +157,7 @@ An environment-managed release may intentionally replace complete Function/Autom
157
157
 
158
158
  For an audited Runtime source rollback, managed `release ship`, recovery `release deploy`, and `release promote` accept `--allow-runtime-rollback --reason "..."` with a reason of at least 8 characters. This pair is scoped only to `runtime-stage` and never reaches resource stages or `app-finalize`. Ship freezes it in `ship.json`; production confirmation inherits it automatically. The default remains fail closed.
159
159
 
160
- `release publish` is the normal whole-app entrypoint for legacy unmanaged workspaces: it verifies SDD without mutating reviewed files, waits for the promotion lease, freezes one App capture, stages the exact Form/Backend/Runtime children, resumes from a private execution journal, finalizes once, and releases the lease. Managed applications use two-phase `release ship` and its deployment-scoped journal. Individual candidate/deploy/test/fail/promote commands are recovery/diagnostic primitives. `release fail --deployment <id> --message <text> [--code <code>] [--details-json <JSON|file>] --environment preproduction` records an audited UAT failure only after verifying the deployment belongs to the selected preproduction environment; production targets and mismatched deployment identities fail before the write.
160
+ `release publish` is the normal whole-app entrypoint for legacy unmanaged workspaces: it verifies SDD without mutating reviewed files, waits for the promotion lease, freezes one App capture, stages the exact Form/Backend/Runtime children, resumes from a private execution journal, finalizes once, and releases the lease. For an approved historical-lineage catch-up, add `--adopt-online-baseline --adoption-reason "..."`; the pair reaches only exact `resource publish --only/--code` stages, never Form ensure, Runtime, or App finalize, and invalid or empty scopes fail before lease acquisition. Managed applications use two-phase `release ship` and its deployment-scoped journal. Individual candidate/deploy/test/fail/promote commands are recovery/diagnostic primitives. `release fail --deployment <id> --message <text> [--code <code>] [--details-json <JSON|file>] --environment preproduction` records an audited UAT failure only after verifying the deployment belongs to the selected preproduction environment; production targets and mismatched deployment identities fail before the write.
161
161
 
162
162
  Reviewed bundle commands may retain `<profile>` as a template. The explicit real `release publish --profile <name>` value is bound to actual child argv without rewriting tracked SDD. React SPA page codes remain logical coverage targets and activate through the single Runtime child; they do not require PageRelease. If local lease state disappears, `release end --change <id>` reconciles a self-owned remote lease from the private execution journal and never reports inactive while a remote lease is active.
163
163
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openxiangda",
3
- "version": "1.0.265",
3
+ "version": "1.0.267",
4
4
  "description": "OpenXiangda CLI, workspace build tools, runtime SDK, and form components.",
5
5
  "private": false,
6
6
  "bin": {
@@ -55,7 +55,6 @@
55
55
  "bin/",
56
56
  "lib/",
57
57
  "openxiangda-skills/",
58
- "v2/skills/",
59
58
  "policy/",
60
59
  "templates/",
61
60
  "packages/sdk/bin/",
@@ -1,4 +1,5 @@
1
1
  import React__default, { ReactNode } from 'react';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
3
 
3
4
  type FormSectionVariant = 'plain' | 'card';
4
5
  type FormSectionAccent = 'blue' | 'green';
@@ -17,7 +18,7 @@ interface FormSectionProps {
17
18
  contentClassName?: string;
18
19
  children: React__default.ReactNode;
19
20
  }
20
- declare function FormSection({ title, description, variant, accent, icon, iconKey, collapsible, defaultCollapsed, className, titleClassName, contentClassName, children, }: FormSectionProps): React__default.JSX.Element;
21
+ declare function FormSection({ title, description, variant, accent, icon, iconKey, collapsible, defaultCollapsed, className, titleClassName, contentClassName, children, }: FormSectionProps): react_jsx_runtime.JSX.Element;
21
22
 
22
23
  /** 字段行为状态 */
23
24
  type FieldBehavior = 'NORMAL' | 'READONLY' | 'DISABLED' | 'HIDDEN';
@@ -1289,4 +1290,4 @@ interface ProcessPreviewProps {
1289
1290
  }
1290
1291
  declare const ProcessPreview: React__default.FC<ProcessPreviewProps>;
1291
1292
 
1292
- export { type DepartmentSelectFieldProps as $, type ApprovalPermission as A, type ReturnParams as B, type ChangeRecordQueryParams as C, type SaveTaskParams as D, type TransferParams as E, type FieldDefinition as F, type TextFieldProps as G, type TextAreaFieldProps as H, type InitiatorSelectCandidate as I, type SelectFieldProps as J, type RadioFieldProps as K, type CheckboxFieldProps as L, type MultiSelectFieldProps as M, type NumberFieldProps as N, type OptionItem as O, type ProcessStatus as P, type DateFieldProps as Q, type RuntimeResponse as R, type StatusMeta as S, type TaskStatus as T, type CascadeDateFieldProps as U, type ValidationPreset as V, type WithdrawParams as W, type AttachmentFieldProps as X, type ImageFieldProps as Y, type SubFormFieldProps as Z, type UserSelectFieldProps as _, type FormRuntimeApi as a, type ImageVariant as a$, type CascadeSelectFieldProps as a0, type AddressFieldProps as a1, type AssociationFormFieldProps as a2, type EditorFieldProps as a3, type EditorChoiceOption as a4, type SerialNumberFieldProps as a5, type LocationFieldProps as a6, type DigitalSignatureFieldProps as a7, type JSONFieldProps as a8, type AttachmentItem as a9, type DefaultValueLinkageConfig as aA, type DepartmentSearchParams as aB, type DepartmentSearchResult as aC, type DepartmentSearchScope as aD, type DepartmentTreeNode as aE, type DigitalSignatureValue as aF, type EditorToolbarAction as aG, type FieldLayoutNode as aH, type FieldValueSyncConfig as aI, type FilePreviewCapabilityBatch as aJ, type FilePreviewProvider as aK, type FilePreviewRenderMode as aL, type FilePreviewSurface as aM, type FilePreviewType as aN, type FormEffectAction as aO, type FormEffectCondition as aP, type FormEffectConditionOperator as aQ, type FormEngineMode as aR, type FormLayoutNode as aS, FormSection as aT, type FormSectionProps as aU, type FormSubmitBehavior as aV, type FormTemplateConfig as aW, type GridLayoutCell as aX, type GridLayoutNode as aY, type ImageCompressionConfig as aZ, type ImageCompressionVariantConfig as a_, type PreparedFilePreview as aa, type FilePreviewCapability as ab, type FilePreviewMetadata as ac, type FilePreviewRequest as ad, type ProcessAction as ae, type InitiatorSelectedApprovers as af, type ReturnPolicy as ag, type ChangeRecord as ah, type StandardFormPageMode as ai, type LowcodePageSchema as aj, type AddressValue as ak, type ApprovalActionType as al, ApprovalTimeline as am, type ApprovalTimelineProps as an, type AssociationFormConfig as ao, type AssociationValue as ap, type AttachmentImageVariants as aq, type BaseFieldProps as ar, type BaseLayoutNode as as, type DataFilter as at, type DataLinkageCondition as au, type DataLinkageConfig as av, type DateRangeRestriction as aw, type DateRestrictionConfig as ax, type DateShortcutConfig as ay, type DateShortcutType as az, type FormSchema as b, type InitiatorSelectScope as b0, type JSONFieldEditorContext as b1, type JSONFieldRendererContext as b2, type LayoutVisibleWhen as b3, type LinkedFormOptionConfig as b4, type LocationValue as b5, type LowcodePageMeta as b6, type LowcodePageNode as b7, type LowcodePageNodeType as b8, type OptionSourceType as b9, type PeopleShortcutConfig as ba, type PeopleShortcutType as bb, type PreviewImageItem as bc, type ProcessNodeType as bd, ProcessPreview as be, type ProcessPreviewProps as bf, type RuntimeAuthHeadersProvider as bg, type RuntimeDataQueryParams as bh, type RuntimeDataQueryResult as bi, type RuntimeRequestConfig as bj, type RuntimeUploadOptions as bk, type RuntimeUploadProvider as bl, type SectionLayoutNode as bm, type SignaturePoint as bn, type StepLayoutItem as bo, type StepsLayoutNode as bp, type SubFormColumn as bq, type TabLayoutItem as br, type TabsLayoutNode as bs, type TextShortcutConfig as bt, type TextShortcutType as bu, type UserDisplayFormat as bv, type UserItem as bw, type FormRuntimeApiConfig as c, type FormEngineConfig as d, type FieldBehavior as e, type FormRuntimeConfig as f, type FormAppearanceConfig as g, type ValidationRule as h, type FormEffect as i, type OptionSourceConfig as j, type FormDataDeleteParams as k, type ChangeRecordListResponse as l, type FormDataQueryParams as m, type FormInstanceData as n, type InitiatorSelectRequirement as o, type ProcessBasicInfo as p, type ProcessDefinition as q, type ProcessTask as r, type ReturnableNodeResult as s, type ReturnableNode as t, type ViewPermissionQueryParams as u, type ViewPermissionSummary as v, type ApproveParams as w, type PreviewParams as x, type ProcessRoute as y, type ResubmitParams as z };
1293
+ export { type FormDataDeleteParams as $, type AddressFieldProps as A, type BaseFieldProps as B, type CascadeDateFieldProps as C, type DataFilter as D, type DepartmentSearchParams as E, type DepartmentSearchResult as F, type DepartmentSearchScope as G, type DepartmentSelectFieldProps as H, type DepartmentTreeNode as I, type DigitalSignatureFieldProps as J, type DigitalSignatureValue as K, type EditorChoiceOption as L, type EditorFieldProps as M, type EditorToolbarAction as N, type FieldBehavior as O, type FieldDefinition as P, type FieldLayoutNode as Q, type FieldValueSyncConfig as R, type FilePreviewCapability as S, type FilePreviewCapabilityBatch as T, type FilePreviewMetadata as U, type FilePreviewProvider as V, type FilePreviewRenderMode as W, type FilePreviewRequest as X, type FilePreviewSurface as Y, type FilePreviewType as Z, type FormAppearanceConfig as _, type AddressValue as a, type RuntimeAuthHeadersProvider as a$, type FormDataQueryParams as a0, type FormEffect as a1, type FormEffectAction as a2, type FormEffectCondition as a3, type FormEffectConditionOperator as a4, type FormEngineConfig as a5, type FormEngineMode as a6, type FormInstanceData as a7, type FormLayoutNode as a8, type FormRuntimeApi as a9, type LowcodePageNodeType as aA, type LowcodePageSchema as aB, type MultiSelectFieldProps as aC, type NumberFieldProps as aD, type OptionItem as aE, type OptionSourceConfig as aF, type OptionSourceType as aG, type PeopleShortcutConfig as aH, type PeopleShortcutType as aI, type PreparedFilePreview as aJ, type PreviewImageItem as aK, type PreviewParams as aL, type ProcessAction as aM, type ProcessBasicInfo as aN, type ProcessDefinition as aO, type ProcessNodeType as aP, ProcessPreview as aQ, type ProcessPreviewProps as aR, type ProcessRoute as aS, type ProcessStatus as aT, type ProcessTask as aU, type RadioFieldProps as aV, type ResubmitParams as aW, type ReturnParams as aX, type ReturnPolicy as aY, type ReturnableNode as aZ, type ReturnableNodeResult as a_, type FormRuntimeApiConfig as aa, type FormRuntimeConfig as ab, type FormSchema as ac, FormSection as ad, type FormSectionProps as ae, type FormSubmitBehavior as af, type FormTemplateConfig as ag, type GridLayoutCell as ah, type GridLayoutNode as ai, type ImageCompressionConfig as aj, type ImageCompressionVariantConfig as ak, type ImageFieldProps as al, type ImageVariant as am, type InitiatorSelectCandidate as an, type InitiatorSelectRequirement as ao, type InitiatorSelectScope as ap, type InitiatorSelectedApprovers as aq, type JSONFieldEditorContext as ar, type JSONFieldProps as as, type JSONFieldRendererContext as at, type LayoutVisibleWhen as au, type LinkedFormOptionConfig as av, type LocationFieldProps as aw, type LocationValue as ax, type LowcodePageMeta as ay, type LowcodePageNode as az, type ApprovalActionType as b, type RuntimeDataQueryParams as b0, type RuntimeDataQueryResult as b1, type RuntimeRequestConfig as b2, type RuntimeResponse as b3, type RuntimeUploadOptions as b4, type RuntimeUploadProvider as b5, type SaveTaskParams as b6, type SectionLayoutNode as b7, type SelectFieldProps as b8, type SerialNumberFieldProps as b9, type SignaturePoint as ba, type StandardFormPageMode as bb, type StatusMeta as bc, type StepLayoutItem as bd, type StepsLayoutNode as be, type SubFormColumn as bf, type SubFormFieldProps as bg, type TabLayoutItem as bh, type TabsLayoutNode as bi, type TaskStatus as bj, type TextAreaFieldProps as bk, type TextFieldProps as bl, type TextShortcutConfig as bm, type TextShortcutType as bn, type TransferParams as bo, type UserDisplayFormat as bp, type UserItem as bq, type UserSelectFieldProps as br, type ValidationPreset as bs, type ValidationRule as bt, type ViewPermissionQueryParams as bu, type ViewPermissionSummary as bv, type WithdrawParams as bw, type ApprovalPermission as c, ApprovalTimeline as d, type ApprovalTimelineProps as e, type ApproveParams as f, type AssociationFormConfig as g, type AssociationFormFieldProps as h, type AssociationValue as i, type AttachmentFieldProps as j, type AttachmentImageVariants as k, type AttachmentItem as l, type BaseLayoutNode as m, type CascadeSelectFieldProps as n, type ChangeRecord as o, type ChangeRecordListResponse as p, type ChangeRecordQueryParams as q, type CheckboxFieldProps as r, type DataLinkageCondition as s, type DataLinkageConfig as t, type DateFieldProps as u, type DateRangeRestriction as v, type DateRestrictionConfig as w, type DateShortcutConfig as x, type DateShortcutType as y, type DefaultValueLinkageConfig as z };
@@ -1,4 +1,5 @@
1
1
  import React__default, { ReactNode } from 'react';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
3
 
3
4
  type FormSectionVariant = 'plain' | 'card';
4
5
  type FormSectionAccent = 'blue' | 'green';
@@ -17,7 +18,7 @@ interface FormSectionProps {
17
18
  contentClassName?: string;
18
19
  children: React__default.ReactNode;
19
20
  }
20
- declare function FormSection({ title, description, variant, accent, icon, iconKey, collapsible, defaultCollapsed, className, titleClassName, contentClassName, children, }: FormSectionProps): React__default.JSX.Element;
21
+ declare function FormSection({ title, description, variant, accent, icon, iconKey, collapsible, defaultCollapsed, className, titleClassName, contentClassName, children, }: FormSectionProps): react_jsx_runtime.JSX.Element;
21
22
 
22
23
  /** 字段行为状态 */
23
24
  type FieldBehavior = 'NORMAL' | 'READONLY' | 'DISABLED' | 'HIDDEN';
@@ -1289,4 +1290,4 @@ interface ProcessPreviewProps {
1289
1290
  }
1290
1291
  declare const ProcessPreview: React__default.FC<ProcessPreviewProps>;
1291
1292
 
1292
- export { type DepartmentSelectFieldProps as $, type ApprovalPermission as A, type ReturnParams as B, type ChangeRecordQueryParams as C, type SaveTaskParams as D, type TransferParams as E, type FieldDefinition as F, type TextFieldProps as G, type TextAreaFieldProps as H, type InitiatorSelectCandidate as I, type SelectFieldProps as J, type RadioFieldProps as K, type CheckboxFieldProps as L, type MultiSelectFieldProps as M, type NumberFieldProps as N, type OptionItem as O, type ProcessStatus as P, type DateFieldProps as Q, type RuntimeResponse as R, type StatusMeta as S, type TaskStatus as T, type CascadeDateFieldProps as U, type ValidationPreset as V, type WithdrawParams as W, type AttachmentFieldProps as X, type ImageFieldProps as Y, type SubFormFieldProps as Z, type UserSelectFieldProps as _, type FormRuntimeApi as a, type ImageVariant as a$, type CascadeSelectFieldProps as a0, type AddressFieldProps as a1, type AssociationFormFieldProps as a2, type EditorFieldProps as a3, type EditorChoiceOption as a4, type SerialNumberFieldProps as a5, type LocationFieldProps as a6, type DigitalSignatureFieldProps as a7, type JSONFieldProps as a8, type AttachmentItem as a9, type DefaultValueLinkageConfig as aA, type DepartmentSearchParams as aB, type DepartmentSearchResult as aC, type DepartmentSearchScope as aD, type DepartmentTreeNode as aE, type DigitalSignatureValue as aF, type EditorToolbarAction as aG, type FieldLayoutNode as aH, type FieldValueSyncConfig as aI, type FilePreviewCapabilityBatch as aJ, type FilePreviewProvider as aK, type FilePreviewRenderMode as aL, type FilePreviewSurface as aM, type FilePreviewType as aN, type FormEffectAction as aO, type FormEffectCondition as aP, type FormEffectConditionOperator as aQ, type FormEngineMode as aR, type FormLayoutNode as aS, FormSection as aT, type FormSectionProps as aU, type FormSubmitBehavior as aV, type FormTemplateConfig as aW, type GridLayoutCell as aX, type GridLayoutNode as aY, type ImageCompressionConfig as aZ, type ImageCompressionVariantConfig as a_, type PreparedFilePreview as aa, type FilePreviewCapability as ab, type FilePreviewMetadata as ac, type FilePreviewRequest as ad, type ProcessAction as ae, type InitiatorSelectedApprovers as af, type ReturnPolicy as ag, type ChangeRecord as ah, type StandardFormPageMode as ai, type LowcodePageSchema as aj, type AddressValue as ak, type ApprovalActionType as al, ApprovalTimeline as am, type ApprovalTimelineProps as an, type AssociationFormConfig as ao, type AssociationValue as ap, type AttachmentImageVariants as aq, type BaseFieldProps as ar, type BaseLayoutNode as as, type DataFilter as at, type DataLinkageCondition as au, type DataLinkageConfig as av, type DateRangeRestriction as aw, type DateRestrictionConfig as ax, type DateShortcutConfig as ay, type DateShortcutType as az, type FormSchema as b, type InitiatorSelectScope as b0, type JSONFieldEditorContext as b1, type JSONFieldRendererContext as b2, type LayoutVisibleWhen as b3, type LinkedFormOptionConfig as b4, type LocationValue as b5, type LowcodePageMeta as b6, type LowcodePageNode as b7, type LowcodePageNodeType as b8, type OptionSourceType as b9, type PeopleShortcutConfig as ba, type PeopleShortcutType as bb, type PreviewImageItem as bc, type ProcessNodeType as bd, ProcessPreview as be, type ProcessPreviewProps as bf, type RuntimeAuthHeadersProvider as bg, type RuntimeDataQueryParams as bh, type RuntimeDataQueryResult as bi, type RuntimeRequestConfig as bj, type RuntimeUploadOptions as bk, type RuntimeUploadProvider as bl, type SectionLayoutNode as bm, type SignaturePoint as bn, type StepLayoutItem as bo, type StepsLayoutNode as bp, type SubFormColumn as bq, type TabLayoutItem as br, type TabsLayoutNode as bs, type TextShortcutConfig as bt, type TextShortcutType as bu, type UserDisplayFormat as bv, type UserItem as bw, type FormRuntimeApiConfig as c, type FormEngineConfig as d, type FieldBehavior as e, type FormRuntimeConfig as f, type FormAppearanceConfig as g, type ValidationRule as h, type FormEffect as i, type OptionSourceConfig as j, type FormDataDeleteParams as k, type ChangeRecordListResponse as l, type FormDataQueryParams as m, type FormInstanceData as n, type InitiatorSelectRequirement as o, type ProcessBasicInfo as p, type ProcessDefinition as q, type ProcessTask as r, type ReturnableNodeResult as s, type ReturnableNode as t, type ViewPermissionQueryParams as u, type ViewPermissionSummary as v, type ApproveParams as w, type PreviewParams as x, type ProcessRoute as y, type ResubmitParams as z };
1293
+ export { type FormDataDeleteParams as $, type AddressFieldProps as A, type BaseFieldProps as B, type CascadeDateFieldProps as C, type DataFilter as D, type DepartmentSearchParams as E, type DepartmentSearchResult as F, type DepartmentSearchScope as G, type DepartmentSelectFieldProps as H, type DepartmentTreeNode as I, type DigitalSignatureFieldProps as J, type DigitalSignatureValue as K, type EditorChoiceOption as L, type EditorFieldProps as M, type EditorToolbarAction as N, type FieldBehavior as O, type FieldDefinition as P, type FieldLayoutNode as Q, type FieldValueSyncConfig as R, type FilePreviewCapability as S, type FilePreviewCapabilityBatch as T, type FilePreviewMetadata as U, type FilePreviewProvider as V, type FilePreviewRenderMode as W, type FilePreviewRequest as X, type FilePreviewSurface as Y, type FilePreviewType as Z, type FormAppearanceConfig as _, type AddressValue as a, type RuntimeAuthHeadersProvider as a$, type FormDataQueryParams as a0, type FormEffect as a1, type FormEffectAction as a2, type FormEffectCondition as a3, type FormEffectConditionOperator as a4, type FormEngineConfig as a5, type FormEngineMode as a6, type FormInstanceData as a7, type FormLayoutNode as a8, type FormRuntimeApi as a9, type LowcodePageNodeType as aA, type LowcodePageSchema as aB, type MultiSelectFieldProps as aC, type NumberFieldProps as aD, type OptionItem as aE, type OptionSourceConfig as aF, type OptionSourceType as aG, type PeopleShortcutConfig as aH, type PeopleShortcutType as aI, type PreparedFilePreview as aJ, type PreviewImageItem as aK, type PreviewParams as aL, type ProcessAction as aM, type ProcessBasicInfo as aN, type ProcessDefinition as aO, type ProcessNodeType as aP, ProcessPreview as aQ, type ProcessPreviewProps as aR, type ProcessRoute as aS, type ProcessStatus as aT, type ProcessTask as aU, type RadioFieldProps as aV, type ResubmitParams as aW, type ReturnParams as aX, type ReturnPolicy as aY, type ReturnableNode as aZ, type ReturnableNodeResult as a_, type FormRuntimeApiConfig as aa, type FormRuntimeConfig as ab, type FormSchema as ac, FormSection as ad, type FormSectionProps as ae, type FormSubmitBehavior as af, type FormTemplateConfig as ag, type GridLayoutCell as ah, type GridLayoutNode as ai, type ImageCompressionConfig as aj, type ImageCompressionVariantConfig as ak, type ImageFieldProps as al, type ImageVariant as am, type InitiatorSelectCandidate as an, type InitiatorSelectRequirement as ao, type InitiatorSelectScope as ap, type InitiatorSelectedApprovers as aq, type JSONFieldEditorContext as ar, type JSONFieldProps as as, type JSONFieldRendererContext as at, type LayoutVisibleWhen as au, type LinkedFormOptionConfig as av, type LocationFieldProps as aw, type LocationValue as ax, type LowcodePageMeta as ay, type LowcodePageNode as az, type ApprovalActionType as b, type RuntimeDataQueryParams as b0, type RuntimeDataQueryResult as b1, type RuntimeRequestConfig as b2, type RuntimeResponse as b3, type RuntimeUploadOptions as b4, type RuntimeUploadProvider as b5, type SaveTaskParams as b6, type SectionLayoutNode as b7, type SelectFieldProps as b8, type SerialNumberFieldProps as b9, type SignaturePoint as ba, type StandardFormPageMode as bb, type StatusMeta as bc, type StepLayoutItem as bd, type StepsLayoutNode as be, type SubFormColumn as bf, type SubFormFieldProps as bg, type TabLayoutItem as bh, type TabsLayoutNode as bi, type TaskStatus as bj, type TextAreaFieldProps as bk, type TextFieldProps as bl, type TextShortcutConfig as bm, type TextShortcutType as bn, type TransferParams as bo, type UserDisplayFormat as bp, type UserItem as bq, type UserSelectFieldProps as br, type ValidationPreset as bs, type ValidationRule as bt, type ViewPermissionQueryParams as bu, type ViewPermissionSummary as bv, type WithdrawParams as bw, type ApprovalPermission as c, ApprovalTimeline as d, type ApprovalTimelineProps as e, type ApproveParams as f, type AssociationFormConfig as g, type AssociationFormFieldProps as h, type AssociationValue as i, type AttachmentFieldProps as j, type AttachmentImageVariants as k, type AttachmentItem as l, type BaseLayoutNode as m, type CascadeSelectFieldProps as n, type ChangeRecord as o, type ChangeRecordListResponse as p, type ChangeRecordQueryParams as q, type CheckboxFieldProps as r, type DataLinkageCondition as s, type DataLinkageConfig as t, type DateFieldProps as u, type DateRangeRestriction as v, type DateRestrictionConfig as w, type DateShortcutConfig as x, type DateShortcutType as y, type DefaultValueLinkageConfig as z };