openxiangda-cli 2.0.0-alpha.99 → 2.0.1

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 (124) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +4 -8
  3. package/bin/run.js +2 -12
  4. package/dist/base.d.ts +30 -6
  5. package/dist/base.d.ts.map +1 -1
  6. package/dist/base.js +119 -22
  7. package/dist/base.js.map +1 -1
  8. package/dist/commands/accept.d.ts +8 -3
  9. package/dist/commands/accept.d.ts.map +1 -1
  10. package/dist/commands/admin.d.ts +32 -0
  11. package/dist/commands/admin.d.ts.map +1 -0
  12. package/dist/commands/admin.js +27 -0
  13. package/dist/commands/admin.js.map +1 -0
  14. package/dist/commands/auth.d.ts +30 -0
  15. package/dist/commands/auth.d.ts.map +1 -0
  16. package/dist/commands/auth.js +13 -0
  17. package/dist/commands/auth.js.map +1 -0
  18. package/dist/commands/cancel.d.ts +30 -0
  19. package/dist/commands/cancel.d.ts.map +1 -0
  20. package/dist/commands/cancel.js +12 -0
  21. package/dist/commands/cancel.js.map +1 -0
  22. package/dist/commands/check.d.ts +12 -3
  23. package/dist/commands/check.d.ts.map +1 -1
  24. package/dist/commands/check.js +21 -4
  25. package/dist/commands/check.js.map +1 -1
  26. package/dist/commands/context.d.ts +27 -0
  27. package/dist/commands/context.d.ts.map +1 -0
  28. package/dist/commands/context.js +10 -0
  29. package/dist/commands/context.js.map +1 -0
  30. package/dist/commands/create.d.ts +20 -3
  31. package/dist/commands/create.d.ts.map +1 -1
  32. package/dist/commands/create.js +396 -22
  33. package/dist/commands/create.js.map +1 -1
  34. package/dist/commands/deploy.d.ts +13 -3
  35. package/dist/commands/deploy.d.ts.map +1 -1
  36. package/dist/commands/deploy.js +17 -16
  37. package/dist/commands/deploy.js.map +1 -1
  38. package/dist/commands/dev.d.ts +10 -3
  39. package/dist/commands/dev.d.ts.map +1 -1
  40. package/dist/commands/dev.js +7 -4
  41. package/dist/commands/dev.js.map +1 -1
  42. package/dist/commands/docs.d.ts +30 -0
  43. package/dist/commands/docs.d.ts.map +1 -0
  44. package/dist/commands/docs.js +20 -0
  45. package/dist/commands/docs.js.map +1 -0
  46. package/dist/commands/login.d.ts +8 -3
  47. package/dist/commands/login.d.ts.map +1 -1
  48. package/dist/commands/login.js +1 -1
  49. package/dist/commands/login.js.map +1 -1
  50. package/dist/commands/logs.d.ts +10 -3
  51. package/dist/commands/logs.d.ts.map +1 -1
  52. package/dist/commands/logs.js +7 -3
  53. package/dist/commands/logs.js.map +1 -1
  54. package/dist/commands/retry.d.ts +30 -0
  55. package/dist/commands/retry.d.ts.map +1 -0
  56. package/dist/commands/retry.js +12 -0
  57. package/dist/commands/retry.js.map +1 -0
  58. package/dist/commands/rollback.d.ts +11 -3
  59. package/dist/commands/rollback.d.ts.map +1 -1
  60. package/dist/commands/rollback.js +9 -3
  61. package/dist/commands/rollback.js.map +1 -1
  62. package/dist/commands/skill.d.ts +9 -3
  63. package/dist/commands/skill.d.ts.map +1 -1
  64. package/dist/commands/skill.js +9 -2
  65. package/dist/commands/skill.js.map +1 -1
  66. package/dist/commands/spec.d.ts +42 -0
  67. package/dist/commands/spec.d.ts.map +1 -0
  68. package/dist/commands/spec.js +123 -0
  69. package/dist/commands/spec.js.map +1 -0
  70. package/dist/commands/start.d.ts +28 -0
  71. package/dist/commands/start.d.ts.map +1 -0
  72. package/dist/commands/start.js +18 -0
  73. package/dist/commands/start.js.map +1 -0
  74. package/dist/commands/status.d.ts +9 -3
  75. package/dist/commands/status.d.ts.map +1 -1
  76. package/dist/commands/status.js +10 -3
  77. package/dist/commands/status.js.map +1 -1
  78. package/dist/commands/stop.d.ts +28 -0
  79. package/dist/commands/stop.d.ts.map +1 -0
  80. package/dist/commands/stop.js +18 -0
  81. package/dist/commands/stop.js.map +1 -0
  82. package/dist/create-workspace.d.ts +36 -0
  83. package/dist/create-workspace.d.ts.map +1 -1
  84. package/dist/create-workspace.js +366 -8
  85. package/dist/create-workspace.js.map +1 -1
  86. package/dist/studio-events.d.ts +9 -0
  87. package/dist/studio-events.d.ts.map +1 -0
  88. package/dist/studio-events.js +30 -0
  89. package/dist/studio-events.js.map +1 -0
  90. package/package.json +15 -6
  91. package/template/AGENTS.md +25 -21
  92. package/template/README.md +31 -12
  93. package/template/apps/web/e2e/README.md +7 -0
  94. package/template/apps/web/package.json +4 -2
  95. package/template/apps/web/playwright.config.ts +4 -3
  96. package/template/apps/web/src/document.css +5 -0
  97. package/template/apps/web/src/main.tsx +48 -3
  98. package/template/apps/web/src/user-end/tailwind.css +5 -0
  99. package/template/apps/web/test/loopback.test.ts +8 -2
  100. package/template/apps/web/test/standard-user-surfaces.typecheck.tsx +27 -0
  101. package/template/apps/web/vite.config.ts +5 -1
  102. package/template/appspec/app.md +56 -0
  103. package/template/openxiangda.config.ts +50 -25
  104. package/template/package.json +4 -4
  105. package/template/packages/contracts/package.json +1 -1
  106. package/template/packages/contracts/src/generated.ts +143 -2
  107. package/template/apps/server/Dockerfile +0 -20
  108. package/template/apps/server/package.json +0 -27
  109. package/template/apps/server/src/app.module.ts +0 -43
  110. package/template/apps/server/src/main.ts +0 -5
  111. package/template/apps/server/test/smoke.test.ts +0 -16
  112. package/template/apps/server/tsconfig.json +0 -9
  113. package/template/apps/web/data-api-live.e2e.html +0 -15
  114. package/template/apps/web/e2e/client-fixture.ts +0 -5
  115. package/template/apps/web/e2e/data-api-live-fixture.tsx +0 -146
  116. package/template/apps/web/e2e/data-api-live.spec.ts +0 -138
  117. package/template/apps/web/e2e/field-protocol-fixture.tsx +0 -347
  118. package/template/apps/web/e2e/field-protocol.spec.ts +0 -186
  119. package/template/apps/web/e2e/resources.spec.ts +0 -285
  120. package/template/apps/web/e2e/workflow.spec.ts +0 -329
  121. package/template/apps/web/field-protocol.e2e.html +0 -15
  122. package/template/apps/web/scripts/check.mjs +0 -43
  123. package/template/apps/web/test/contracts.test.ts +0 -99
  124. package/template/scripts/verify-template-budget.mjs +0 -49
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 OpenXiangda contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,13 +1,9 @@
1
1
  # openxiangda-cli
2
2
 
3
- OpenXiangda 2.0 installs one developer CLI with eight application lifecycle commands—`create`, `dev`, `check`, `deploy`, `status`, `logs`, `rollback`, and `login`—plus `skill install` for installing the exact AI guidance bundled with the same release.
3
+ 这是根包 CLI 的内部实现,应用通过 `openxiangda` 安装和运行。命令覆盖创建、上下文、中文资料、开发、统一检查、部署、状态、日志、恢复、环境启停、AppSpec Skill 安装;完整参数运行 `pnpm openxiangda docs cli`。
4
4
 
5
- The CLI disables user, development and JIT plugin loading. A clean build removes orphaned command output before TypeScript compilation. `--json` emits one stable result envelope and never mixes progress logs into machine output.
5
+ 默认开发连接远端测试平台,自定义 Nest 后端按需启用。check 会生成并检查、测试、构建;前置失败时停止。deploy 已包含检查,生产只能晋级成功测试版本。平台 recovery 是恢复操作的权威。
6
6
 
7
- AI-native development clients use the same pinned executable in pre-command
8
- stdio mode: `pnpm exec openxiangda --mcp-stdio --cwd <workspace>`. They can read
9
- `openxiangda://workspace/contracts` or call `contract_describe` to obtain the
10
- compiler-owned `aiCatalog` and `aiCatalogDigest`. This transport does not add a
11
- another executable and applications must not implement a second MCP server.
7
+ `--json` 输出一个 `openxiangda.cli-result/v2`。Studio 集成在 create、dev、check、deploy、logs、rollback 使用 `--json-events --run-id <uuid>`,每行一个 `openxiangda.cli-event/v1`;与 --json 互斥。模板引用和摘要成对验证;站点绑定初始化保留 ProjectProvisioningRun 对 Application 与 Git 的权威。
12
8
 
13
- `dev` starts local Web/Nest hot reload and a loopback connected proxy. `deploy` defaults to test; production explicitly reuses a successful test AppVersion. Application binding, initialization, generation, tests and builds are internal stages rather than separate commands.
9
+ MCP 复用同一命令的 `--mcp-stdio --cwd <工作区绝对路径>` 模式。插件动态加载已禁用,避免其他命令覆盖当前版本实现。
package/bin/run.js CHANGED
@@ -2,19 +2,9 @@
2
2
  import { execute } from '@oclif/core';
3
3
  import { readFileSync } from 'node:fs';
4
4
  import { fileURLToPath } from 'node:url';
5
+ import { DEVKIT_COMMANDS } from 'openxiangda-devkit-core';
5
6
 
6
- const publicCommands = new Set([
7
- 'create',
8
- 'dev',
9
- 'check',
10
- 'accept',
11
- 'deploy',
12
- 'status',
13
- 'logs',
14
- 'rollback',
15
- 'login',
16
- 'skill',
17
- ]);
7
+ const publicCommands = new Set(DEVKIT_COMMANDS.map(command => command.id));
18
8
  const args = process.argv.slice(2);
19
9
 
20
10
  if (args.includes('--mcp-stdio')) {
package/dist/base.d.ts CHANGED
@@ -1,36 +1,58 @@
1
1
  import { Command } from "@oclif/core";
2
- import type { DevkitResult } from "openxiangda-contracts";
3
- import { OpenXiangdaApplicationServices } from "openxiangda-devkit-core";
2
+ import { type DevkitResult } from "openxiangda-contracts";
3
+ import { OpenXiangdaApplicationServices, type OperationProgress } from "openxiangda-devkit-core";
4
4
  export declare const workspaceFlags: {
5
5
  cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
6
6
  };
7
+ export declare const studioEventFlags: {
8
+ "json-events": import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
+ "run-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ };
11
+ export declare const studioWorkspaceFlags: {
12
+ "json-events": import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ "run-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ };
7
16
  export declare abstract class OpenXiangdaCommand extends Command {
8
17
  static enableJsonFlag: boolean;
9
18
  protected readonly services: OpenXiangdaApplicationServices;
19
+ private studioEventStream?;
20
+ private studioEventStarted;
10
21
  protected catch(error: Error & {
11
22
  exitCode?: number;
12
23
  }): Promise<void>;
13
24
  protected present(result: DevkitResult<unknown>): DevkitResult<unknown> | {
14
- schemaVersion: string;
25
+ schemaVersion: "openxiangda.cli-result/v2";
15
26
  ok: boolean;
16
27
  operation: string;
17
- workspace: import("openxiangda-contracts").WorkspaceIdentity;
28
+ workspace: import("openxiangda-contracts").WorkspaceIdentity | {
29
+ appCode: string;
30
+ name: string | undefined;
31
+ };
18
32
  data: {} | null;
19
33
  error: {
34
+ details?: Record<string, unknown>;
35
+ pointer?: string;
20
36
  code: string;
21
37
  message: string;
22
38
  retryable: boolean;
23
39
  remediation: string;
24
40
  nextCommand: string | null;
25
41
  } | null;
26
- };
42
+ } | undefined;
43
+ protected machineOutputEnabled(): boolean;
44
+ protected beginStudioEvents(operation?: string): void;
45
+ protected emitStudioStatus(message: string, details?: Record<string, unknown>): void;
46
+ protected presentOperationProgress(event: OperationProgress): void;
27
47
  protected toErrorJson(error: unknown): {
28
- schemaVersion: string;
48
+ schemaVersion: "openxiangda.cli-result/v2";
29
49
  ok: boolean;
30
50
  operation: string;
31
51
  workspace: null;
32
52
  data: null;
33
53
  error: {
54
+ details?: Record<string, unknown>;
55
+ pointer?: string;
34
56
  code: string;
35
57
  message: string;
36
58
  retryable: boolean;
@@ -39,6 +61,8 @@ export declare abstract class OpenXiangdaCommand extends Command {
39
61
  };
40
62
  };
41
63
  private envelope;
64
+ private studioEventsEnabled;
65
+ private studioRunId;
42
66
  private errorNextCommand;
43
67
  }
44
68
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAGzE,eAAO,MAAM,cAAc;;CAE1B,CAAC;AAEF,8BAAsB,kBAAmB,SAAQ,OAAO;IACtD,MAAM,CAAC,cAAc,UAAQ;IAE7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,iCAExB;cAEa,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAS1D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC;;;;;;;;;;;;;;IAc/C,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO;;;;;;;;;;;;;;IAsCpC,OAAO,CAAC,QAAQ;IAyBhB,OAAO,CAAC,gBAAgB;CA2BzB"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAE7C,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,EAE9B,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAIjC,eAAO,MAAM,cAAc;;CAE1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;CAmB5B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;CAGhC,CAAC;AAEF,8BAAsB,kBAAmB,SAAQ,OAAO;IACtD,MAAM,CAAC,cAAc,UAAQ;IAE7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,iCAExB;IACH,OAAO,CAAC,iBAAiB,CAAC,CAAuB;IACjD,OAAO,CAAC,kBAAkB,CAAS;cAEnB,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAiB1D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;IAuB/C,SAAS,CAAC,oBAAoB;IAI9B,SAAS,CAAC,iBAAiB,CAAC,SAAS,SAAuB;IAa5D,SAAS,CAAC,gBAAgB,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAWvC,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,iBAAiB;IAO3D,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;IAmBpC,OAAO,CAAC,QAAQ;IAoChB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,gBAAgB;CAqCzB"}
package/dist/base.js CHANGED
@@ -1,16 +1,51 @@
1
+ import { developerError } from 'openxiangda-devkit-core';
1
2
  import { Command, Flags } from "@oclif/core";
2
- import { OpenXiangdaApplicationServices } from "openxiangda-devkit-core";
3
+ import { randomUUID } from "node:crypto";
4
+ import { STUDIO_CLI_RESULT_SCHEMA_VERSION, } from "openxiangda-contracts";
5
+ import { OpenXiangdaApplicationServices, commandDefinition, } from "openxiangda-devkit-core";
6
+ import { StudioCliEventStream } from "./studio-events.js";
3
7
  import { resolveCliToolchainCapsule } from "./toolchain-capsule.js";
4
8
  export const workspaceFlags = {
5
9
  cwd: Flags.string({ summary: "应用工作区目录", helpValue: "<directory>" }),
6
10
  };
11
+ export const studioEventFlags = {
12
+ "json-events": Flags.boolean({
13
+ summary: "按 openxiangda.cli-event/v1 输出 JSONL 事件",
14
+ exclusive: ["json"],
15
+ }),
16
+ "run-id": Flags.string({
17
+ summary: "Studio AgentRun ID;仅与 --json-events 一起使用",
18
+ helpValue: "<run-id>",
19
+ dependsOn: ["json-events"],
20
+ parse: async (input) => {
21
+ if (!input || input.length > 256) {
22
+ throw Object.assign(new Error("STUDIO_RUN_ID_INVALID: runId 必须为 1 到 256 个字符"), { code: "STUDIO_RUN_ID_INVALID", retryable: false });
23
+ }
24
+ return input;
25
+ },
26
+ }),
27
+ };
28
+ export const studioWorkspaceFlags = {
29
+ ...workspaceFlags,
30
+ ...studioEventFlags,
31
+ };
7
32
  export class OpenXiangdaCommand extends Command {
8
33
  static enableJsonFlag = true;
9
34
  services = new OpenXiangdaApplicationServices({
10
35
  toolchainCapsule: resolveCliToolchainCapsule(),
11
36
  });
37
+ studioEventStream;
38
+ studioEventStarted = false;
12
39
  async catch(error) {
13
40
  process.exitCode = error.exitCode ?? 1;
41
+ if (this.studioEventsEnabled()) {
42
+ this.beginStudioEvents();
43
+ this.studioEventStream.emit("command.failed", {
44
+ operation: this.id || "unknown",
45
+ result: this.toErrorJson(error),
46
+ });
47
+ return;
48
+ }
14
49
  if (this.jsonEnabled()) {
15
50
  this.logJson(this.toErrorJson(error));
16
51
  return;
@@ -20,6 +55,12 @@ export class OpenXiangdaCommand extends Command {
20
55
  present(result) {
21
56
  if (!result.ok)
22
57
  process.exitCode = 1;
58
+ if (this.studioEventsEnabled()) {
59
+ this.beginStudioEvents(result.operation);
60
+ const envelope = this.envelope(result);
61
+ this.studioEventStream.emit(result.ok ? "command.completed" : "command.failed", { operation: result.operation, result: envelope });
62
+ return;
63
+ }
23
64
  if (this.jsonEnabled())
24
65
  return this.envelope(result);
25
66
  this.log(`${result.ok ? "✓" : "✗"} ${result.operation}`);
@@ -33,45 +74,70 @@ export class OpenXiangdaCommand extends Command {
33
74
  }
34
75
  return result;
35
76
  }
77
+ machineOutputEnabled() {
78
+ return this.jsonEnabled() || this.studioEventsEnabled();
79
+ }
80
+ beginStudioEvents(operation = this.id || "unknown") {
81
+ if (!this.studioEventsEnabled())
82
+ return;
83
+ if (!this.studioEventStream) {
84
+ this.studioEventStream = new StudioCliEventStream(this.studioRunId() || randomUUID());
85
+ }
86
+ if (!this.studioEventStarted) {
87
+ this.studioEventStarted = true;
88
+ this.studioEventStream.emit("command.started", { operation });
89
+ }
90
+ }
91
+ emitStudioStatus(message, details = {}) {
92
+ if (!this.studioEventsEnabled())
93
+ return;
94
+ this.beginStudioEvents();
95
+ this.studioEventStream.emit("command.status", {
96
+ operation: this.id || "unknown",
97
+ message,
98
+ ...details,
99
+ });
100
+ }
101
+ presentOperationProgress(event) {
102
+ const state = { running: '进行中', passed: '完成', failed: '失败', skipped: '未执行' }[event.state];
103
+ const message = `${event.label}:${state},${(event.durationMs / 1000).toFixed(1)} 秒`;
104
+ if (this.studioEventsEnabled())
105
+ this.emitStudioStatus(message, { progress: event });
106
+ else
107
+ process.stderr.write(`${message}\n`);
108
+ }
36
109
  toErrorJson(error) {
37
110
  const message = error instanceof Error ? error.message : String(error || "未知错误");
38
111
  const code = String(error?.code ||
39
112
  message.match(/^([A-Z][A-Z0-9_]+)/)?.[1] ||
40
113
  "OPENXIANGDA_COMMAND_FAILED");
41
114
  const nextCommand = this.errorNextCommand(code);
42
- const declaredRemediation = error?.remote?.remediation ||
43
- error?.data?.remediation;
44
- const retryable = Boolean(error?.retryable ||
45
- error?.remote?.retryable ||
46
- (error?.status &&
47
- Number(error.status) >= 500) ||
48
- /NETWORK|TIMEOUT|UNAVAILABLE|RATE_LIMIT/.test(code));
49
115
  return {
50
- schemaVersion: "openxiangda.cli-result/v2",
116
+ schemaVersion: STUDIO_CLI_RESULT_SCHEMA_VERSION,
51
117
  ok: false,
52
118
  operation: this.id || "unknown",
53
119
  workspace: null,
54
120
  data: null,
55
- error: {
56
- code,
57
- message: message.replace(/^([A-Z][A-Z0-9_]+):\s*/, ""),
58
- retryable,
59
- remediation: typeof declaredRemediation === "string"
60
- ? declaredRemediation
61
- : `运行 ${nextCommand}`,
62
- nextCommand,
63
- },
121
+ error: developerError(error, nextCommand),
64
122
  };
65
123
  }
66
124
  envelope(result) {
67
125
  const diagnostic = result.diagnostics.find(item => item.severity === "error");
68
126
  const nextCommand = result.nextActions.find(action => action.command?.startsWith("openxiangda "))
69
127
  ?.command || (diagnostic ? this.errorNextCommand(diagnostic.code) : null);
128
+ const studioInitialization = result.data &&
129
+ typeof result.data === "object" &&
130
+ "studioInitialization" in result.data;
70
131
  return {
71
- schemaVersion: "openxiangda.cli-result/v2",
132
+ schemaVersion: STUDIO_CLI_RESULT_SCHEMA_VERSION,
72
133
  ok: result.ok,
73
134
  operation: result.operation,
74
- workspace: result.workspace,
135
+ workspace: studioInitialization
136
+ ? {
137
+ appCode: result.workspace.appCode,
138
+ name: result.workspace.name,
139
+ }
140
+ : result.workspace,
75
141
  data: result.data ?? null,
76
142
  error: diagnostic
77
143
  ? {
@@ -81,10 +147,30 @@ export class OpenXiangdaCommand extends Command {
81
147
  remediation: diagnostic.remediation ||
82
148
  (nextCommand ? `运行 ${nextCommand}` : "检查错误后重试"),
83
149
  nextCommand,
150
+ ...(diagnostic.path ? { pointer: diagnostic.path } : {}),
151
+ ...(diagnostic.details ? { details: diagnostic.details } : {}),
84
152
  }
85
153
  : null,
86
154
  };
87
155
  }
156
+ studioEventsEnabled() {
157
+ if (!this.argv.includes("--json-events"))
158
+ return false;
159
+ const command = commandDefinition(this.id || "");
160
+ return Boolean(command &&
161
+ "studioJsonEvents" in command &&
162
+ command.studioJsonEvents === true);
163
+ }
164
+ studioRunId() {
165
+ const inline = this.argv.find(argument => argument.startsWith("--run-id="));
166
+ if (inline) {
167
+ const value = inline.slice("--run-id=".length);
168
+ return value && value.length <= 256 ? value : undefined;
169
+ }
170
+ const index = this.argv.indexOf("--run-id");
171
+ const value = index >= 0 ? this.argv[index + 1] : undefined;
172
+ return value && value.length <= 256 ? value : undefined;
173
+ }
88
174
  errorNextCommand(code) {
89
175
  if (/AUTH|LOGIN|SESSION|TOKEN/.test(code)) {
90
176
  return "openxiangda login --base-url <platform>";
@@ -92,25 +178,36 @@ export class OpenXiangdaCommand extends Command {
92
178
  if (/PRODUCTION|PROMOTION/.test(code)) {
93
179
  return "openxiangda deploy --environment production --from <test-deployment-id>";
94
180
  }
181
+ if (code === "DELIVERY_RUN_ALREADY_ACTIVE") {
182
+ return "openxiangda status";
183
+ }
95
184
  const currentCommand = {
96
- create: "openxiangda create <directory>",
185
+ admin: "openxiangda admin context --json",
186
+ create: "openxiangda create <directory> --base-url <platform>",
97
187
  dev: "openxiangda dev",
98
188
  check: "openxiangda check",
99
189
  accept: "openxiangda accept --plan <file>",
100
190
  deploy: "openxiangda deploy",
101
191
  status: "openxiangda status",
102
192
  logs: "openxiangda logs",
193
+ cancel: "openxiangda cancel <deployment-id>",
194
+ retry: "openxiangda retry <deployment-id>",
195
+ start: "openxiangda start",
196
+ stop: "openxiangda stop",
103
197
  rollback: "openxiangda rollback --to <app-version-id>",
104
198
  login: "openxiangda login --base-url <platform>",
199
+ spec: "openxiangda spec context --json",
105
200
  };
106
201
  const currentId = this.id;
107
202
  if (currentId && currentCommand[currentId])
108
203
  return currentCommand[currentId];
109
204
  if (/LINK|WORKSPACE|APP_CODE|APP_NAME|TARGET_DIRECTORY/.test(code)) {
110
- return "openxiangda create <directory>";
205
+ return "openxiangda create <directory> --base-url <platform>";
111
206
  }
112
207
  if (/DEPLOYMENT|STATUS|LOG/.test(code))
113
208
  return "openxiangda status";
209
+ if (/APPSPEC/.test(code))
210
+ return "openxiangda spec check";
114
211
  if (/DEV/.test(code))
115
212
  return "openxiangda dev";
116
213
  return "openxiangda check";
package/dist/base.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
@@ -6,18 +6,23 @@ export default class Accept extends OpenXiangdaCommand {
6
6
  cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
7
  };
8
8
  run(): Promise<import("openxiangda-contracts").DevkitResult<unknown> | {
9
- schemaVersion: string;
9
+ schemaVersion: "openxiangda.cli-result/v2";
10
10
  ok: boolean;
11
11
  operation: string;
12
- workspace: import("openxiangda-contracts").WorkspaceIdentity;
12
+ workspace: import("openxiangda-contracts").WorkspaceIdentity | {
13
+ appCode: string;
14
+ name: string | undefined;
15
+ };
13
16
  data: {} | null;
14
17
  error: {
18
+ details?: Record<string, unknown>;
19
+ pointer?: string;
15
20
  code: string;
16
21
  message: string;
17
22
  retryable: boolean;
18
23
  remediation: string;
19
24
  nextCommand: string | null;
20
25
  } | null;
21
- }>;
26
+ } | undefined>;
22
27
  }
23
28
  //# sourceMappingURL=accept.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accept.d.ts","sourceRoot":"","sources":["../../src/commands/accept.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,YAAY,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB;IACpD,MAAM,CAAC,OAAO,SAA0B;IACxC,MAAM,CAAC,KAAK;;;MAOV;IAEI,GAAG;;;;;;;;;;;;;;CASV"}
1
+ {"version":3,"file":"accept.d.ts","sourceRoot":"","sources":["../../src/commands/accept.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,YAAY,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB;IACpD,MAAM,CAAC,OAAO,SAA0B;IACxC,MAAM,CAAC,KAAK;;;MAOV;IAEI,GAAG;;;;;;;;;;;;;;;;;;;CASV"}
@@ -0,0 +1,32 @@
1
+ import { OpenXiangdaCommand } from "../base.js";
2
+ export default class Admin extends OpenXiangdaCommand {
3
+ static summary: string;
4
+ static args: {
5
+ action: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
6
+ workflowCode: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ environment: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
+ cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ };
12
+ run(): Promise<import("openxiangda-contracts").DevkitResult<unknown> | {
13
+ schemaVersion: "openxiangda.cli-result/v2";
14
+ ok: boolean;
15
+ operation: string;
16
+ workspace: import("openxiangda-contracts").WorkspaceIdentity | {
17
+ appCode: string;
18
+ name: string | undefined;
19
+ };
20
+ data: {} | null;
21
+ error: {
22
+ details?: Record<string, unknown>;
23
+ pointer?: string;
24
+ code: string;
25
+ message: string;
26
+ retryable: boolean;
27
+ remediation: string;
28
+ nextCommand: string | null;
29
+ } | null;
30
+ } | undefined>;
31
+ }
32
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,YAAY,CAAC;AAGhE,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,kBAAkB;IACnD,MAAM,CAAC,OAAO,SAA2B;IACzC,MAAM,CAAC,IAAI;;;MAGT;IACF,MAAM,CAAC,KAAK;;;MAGV;IACI,GAAG;;;;;;;;;;;;;;;;;;;CAUV"}
@@ -0,0 +1,27 @@
1
+ import { Args, Flags } from "@oclif/core";
2
+ import { OpenXiangdaCommand, workspaceFlags } from "../base.js";
3
+ import { DEVELOPER_ENVIRONMENTS, developerEnvironment } from "openxiangda-devkit-core";
4
+ export default class Admin extends OpenXiangdaCommand {
5
+ static summary = "只读查看当前应用管理能力和流程节点运行配置";
6
+ static args = {
7
+ action: Args.string({ required: true, options: ["context", "workflow"] }),
8
+ workflowCode: Args.string({ summary: "workflow 操作需要指定流程代码" }),
9
+ };
10
+ static flags = {
11
+ ...workspaceFlags,
12
+ environment: Flags.string({ options: [...DEVELOPER_ENVIRONMENTS], default: "test", summary: "读取环境;默认测试环境" }),
13
+ };
14
+ async run() {
15
+ const { args, flags } = await this.parse(Admin);
16
+ const environment = developerEnvironment(flags.environment);
17
+ if (args.action === "context") {
18
+ if (args.workflowCode)
19
+ throw new Error("ADMIN_CONTEXT_UNEXPECTED_WORKFLOW_CODE");
20
+ return this.present(await this.services.administrationContext(flags.cwd, environment));
21
+ }
22
+ if (!args.workflowCode)
23
+ throw new Error("WORKFLOW_CODE_REQUIRED: 请指定流程代码");
24
+ return this.present(await this.services.workflowNodeConfigurations(flags.cwd, args.workflowCode, environment));
25
+ }
26
+ }
27
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEvF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,kBAAkB;IACnD,MAAM,CAAC,OAAO,GAAG,uBAAuB,CAAC;IACzC,MAAM,CAAC,IAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;QACzE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;KAC9D,CAAC;IACF,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,cAAc;QACjB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;KAC7G,CAAC;IACF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,YAAY;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACjF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IACjH,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { OpenXiangdaCommand } from '../base.js';
2
+ export default class Auth extends OpenXiangdaCommand {
3
+ static summary: string;
4
+ static args: {
5
+ action: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
6
+ };
7
+ static flags: {
8
+ 'base-url': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
+ };
10
+ run(): Promise<import("openxiangda-contracts").DevkitResult<unknown> | {
11
+ schemaVersion: "openxiangda.cli-result/v2";
12
+ ok: boolean;
13
+ operation: string;
14
+ workspace: import("openxiangda-contracts").WorkspaceIdentity | {
15
+ appCode: string;
16
+ name: string | undefined;
17
+ };
18
+ data: {} | null;
19
+ error: {
20
+ details?: Record<string, unknown>;
21
+ pointer?: string;
22
+ code: string;
23
+ message: string;
24
+ retryable: boolean;
25
+ remediation: string;
26
+ nextCommand: string | null;
27
+ } | null;
28
+ } | undefined>;
29
+ }
30
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,kBAAkB;IAClD,MAAM,CAAC,OAAO,SAA8B;IAC5C,MAAM,CAAC,IAAI;;MAAoE;IAC/E,MAAM,CAAC,KAAK;;MAA2E;IAEjF,GAAG;;;;;;;;;;;;;;;;;;;CAIV"}
@@ -0,0 +1,13 @@
1
+ import { Args, Flags } from '@oclif/core';
2
+ import { developerAuthorizationStatus } from 'openxiangda-devkit-core';
3
+ import { OpenXiangdaCommand } from '../base.js';
4
+ export default class Auth extends OpenXiangdaCommand {
5
+ static summary = '只读核验指定平台的当前授权,不启动登录或刷新会话';
6
+ static args = { action: Args.string({ required: true, options: ['status'] }) };
7
+ static flags = { 'base-url': Flags.string({ required: true, summary: '明确指定目标平台地址' }) };
8
+ async run() {
9
+ const { flags } = await this.parse(Auth);
10
+ return this.present(await developerAuthorizationStatus({ baseUrl: flags['base-url'] }));
11
+ }
12
+ }
13
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,kBAAkB;IAClD,MAAM,CAAC,OAAO,GAAG,0BAA0B,CAAC;IAC5C,MAAM,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/E,MAAM,CAAC,KAAK,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAEvF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,4BAA4B,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { OpenXiangdaCommand } from '../base.js';
2
+ export default class Cancel extends OpenXiangdaCommand {
3
+ static summary: string;
4
+ static args: {
5
+ deploymentId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
6
+ };
7
+ static flags: {
8
+ cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ };
10
+ run(): Promise<import("openxiangda-contracts").DevkitResult<unknown> | {
11
+ schemaVersion: "openxiangda.cli-result/v2";
12
+ ok: boolean;
13
+ operation: string;
14
+ workspace: import("openxiangda-contracts").WorkspaceIdentity | {
15
+ appCode: string;
16
+ name: string | undefined;
17
+ };
18
+ data: {} | null;
19
+ error: {
20
+ details?: Record<string, unknown>;
21
+ pointer?: string;
22
+ code: string;
23
+ message: string;
24
+ retryable: boolean;
25
+ remediation: string;
26
+ nextCommand: string | null;
27
+ } | null;
28
+ } | undefined>;
29
+ }
30
+ //# sourceMappingURL=cancel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../src/commands/cancel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,YAAY,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB;IACpD,MAAM,CAAC,OAAO,SAA+B;IAC7C,MAAM,CAAC,IAAI;;MAAqD;IAChE,MAAM,CAAC,KAAK;;MAAkB;IAExB,GAAG;;;;;;;;;;;;;;;;;;;CAMV"}
@@ -0,0 +1,12 @@
1
+ import { Args } from '@oclif/core';
2
+ import { OpenXiangdaCommand, workspaceFlags } from '../base.js';
3
+ export default class Cancel extends OpenXiangdaCommand {
4
+ static summary = '幂等取消尚未提交激活的 DeploymentRun';
5
+ static args = { deploymentId: Args.string({ required: true }) };
6
+ static flags = workspaceFlags;
7
+ async run() {
8
+ const { args, flags } = await this.parse(Cancel);
9
+ return this.present(await this.services.cancel(flags.cwd, args.deploymentId));
10
+ }
11
+ }
12
+ //# sourceMappingURL=cancel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../src/commands/cancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB;IACpD,MAAM,CAAC,OAAO,GAAG,2BAA2B,CAAC;IAC7C,MAAM,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAChE,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC;IAE9B,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CACzD,CAAC;IACJ,CAAC"}