openxiangda-cli 2.0.0-alpha.179 → 2.0.0-alpha.182
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/dist/base.d.ts +2 -1
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js +8 -0
- package/dist/base.js.map +1 -1
- package/dist/commands/check.d.ts +1 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +3 -1
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/deploy.d.ts +1 -0
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +3 -0
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/spec.d.ts +3 -0
- package/dist/commands/spec.d.ts.map +1 -1
- package/dist/commands/spec.js +9 -3
- package/dist/commands/spec.js.map +1 -1
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +10 -3
- package/dist/commands/status.js.map +1 -1
- package/package.json +5 -5
- package/template/AGENTS.md +4 -1
- package/template/apps/web/package.json +1 -1
- package/template/appspec/app.md +10 -20
- package/template/package.json +1 -1
package/dist/base.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command } from "@oclif/core";
|
|
2
2
|
import { type DevkitResult } from "openxiangda-contracts";
|
|
3
|
-
import { OpenXiangdaApplicationServices } from "openxiangda-devkit-core";
|
|
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
|
};
|
|
@@ -43,6 +43,7 @@ export declare abstract class OpenXiangdaCommand extends Command {
|
|
|
43
43
|
protected machineOutputEnabled(): boolean;
|
|
44
44
|
protected beginStudioEvents(operation?: string): void;
|
|
45
45
|
protected emitStudioStatus(message: string, details?: Record<string, unknown>): void;
|
|
46
|
+
protected presentOperationProgress(event: OperationProgress): void;
|
|
46
47
|
protected toErrorJson(error: unknown): {
|
|
47
48
|
schemaVersion: "openxiangda.cli-result/v2";
|
|
48
49
|
ok: boolean;
|
package/dist/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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
|
@@ -98,6 +98,14 @@ export class OpenXiangdaCommand extends Command {
|
|
|
98
98
|
...details,
|
|
99
99
|
});
|
|
100
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
|
+
}
|
|
101
109
|
toErrorJson(error) {
|
|
102
110
|
const message = error instanceof Error ? error.message : String(error || "未知错误");
|
|
103
111
|
const code = String(error?.code ||
|
package/dist/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,gCAAgC,GAEjC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/check.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { OpenXiangdaCommand } from '../base.js';
|
|
|
2
2
|
export default class Check extends OpenXiangdaCommand {
|
|
3
3
|
static summary: string;
|
|
4
4
|
static flags: {
|
|
5
|
+
local: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
5
6
|
environment: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
6
7
|
"json-events": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
8
|
"run-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAwB,MAAM,YAAY,CAAC;AAGtE,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,kBAAkB;IACnD,MAAM,CAAC,OAAO,SAAqB;IACnC,MAAM,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAwB,MAAM,YAAY,CAAC;AAGtE,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,kBAAkB;IACnD,MAAM,CAAC,OAAO,SAAqB;IACnC,MAAM,CAAC,KAAK;;;;;;MAQV;IAEI,GAAG;;;;;;;;;;;;;;;;;;;CAQV"}
|
package/dist/commands/check.js
CHANGED
|
@@ -5,6 +5,7 @@ export default class Check extends OpenXiangdaCommand {
|
|
|
5
5
|
static summary = '针对目标平台确定性检查完整应用';
|
|
6
6
|
static flags = {
|
|
7
7
|
...studioWorkspaceFlags,
|
|
8
|
+
local: Flags.boolean({ summary: '只执行本地完整校验与构建,不验证目标平台;适用于 CI 和候选包验证', default: false }),
|
|
8
9
|
environment: Flags.string({
|
|
9
10
|
options: [...DEVELOPER_ENVIRONMENTS],
|
|
10
11
|
default: 'test',
|
|
@@ -15,7 +16,8 @@ export default class Check extends OpenXiangdaCommand {
|
|
|
15
16
|
const { flags } = await this.parse(Check);
|
|
16
17
|
this.beginStudioEvents('check');
|
|
17
18
|
return this.present(await checkApplication(this.services, {
|
|
18
|
-
|
|
19
|
+
onProgress: event => this.presentOperationProgress(event),
|
|
20
|
+
...(flags.cwd ? { root: flags.cwd } : {}), environment: flags.environment, local: flags.local,
|
|
19
21
|
}));
|
|
20
22
|
}
|
|
21
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,kBAAkB;IACnD,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC;IACnC,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,oBAAoB;QACvB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,CAAC,GAAG,sBAAsB,CAAC;YACpC,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,kBAAkB;SAC5B,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE;YACxD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,kBAAkB;IACnD,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC;IACnC,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,oBAAoB;QACvB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvF,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,CAAC,GAAG,sBAAsB,CAAC;YACpC,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,kBAAkB;SAC5B,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE;YACxD,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;YACzD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;SAC9F,CAAC,CAAC,CAAC;IACN,CAAC"}
|
|
@@ -7,6 +7,7 @@ export default class Deploy extends OpenXiangdaCommand {
|
|
|
7
7
|
"environment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
8
|
"idempotency-key": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
9
|
"dry-run": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
wait: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
11
|
"json-events": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
12
|
"run-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
13
|
cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAwB,MAAM,YAAY,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB;IACpD,MAAM,CAAC,OAAO,SAA2B;IACzC,MAAM,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAwB,MAAM,YAAY,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB;IACpD,MAAM,CAAC,OAAO,SAA2B;IACzC,MAAM,CAAC,KAAK;;;;;;;;;;MAeV;IACI,GAAG;;;;;;;;;;;;;;;;;;;CAoBV"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -17,15 +17,18 @@ export default class Deploy extends OpenXiangdaCommand {
|
|
|
17
17
|
"environment-id": Flags.string({ summary: '测试环境 ID;通常由绑定自动确定' }),
|
|
18
18
|
"idempotency-key": Flags.string({ summary: '测试部署幂等键;省略时从不可变包摘要派生' }),
|
|
19
19
|
"dry-run": Flags.boolean({ summary: '只读预览部署或生产晋级,不构建、不上传、不提交' }),
|
|
20
|
+
wait: Flags.boolean({ default: true, allowNo: true, summary: '默认持续反馈并等待平台完成,最多 15 分钟;--no-wait 只提交' }),
|
|
20
21
|
};
|
|
21
22
|
async run() {
|
|
22
23
|
const { flags } = await this.parse(Deploy);
|
|
23
24
|
this.beginStudioEvents("deploy");
|
|
24
25
|
return this.present(await deployApplication(this.services, {
|
|
26
|
+
onProgress: event => this.presentOperationProgress(event),
|
|
25
27
|
...(flags.cwd ? { root: flags.cwd } : {}),
|
|
26
28
|
environment: flags.environment,
|
|
27
29
|
...(flags.from ? { from: flags.from } : {}),
|
|
28
30
|
dryRun: flags['dry-run'],
|
|
31
|
+
wait: flags.wait,
|
|
29
32
|
...(flags["environment-id"]
|
|
30
33
|
? { environmentId: flags["environment-id"] }
|
|
31
34
|
: {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACpF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB;IACpD,MAAM,CAAC,OAAO,GAAG,uBAAuB,CAAC;IACzC,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,oBAAoB;QACvB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,CAAC,GAAG,sBAAsB,CAAC;YACpC,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,eAAe;SACzB,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,8BAA8B;YACvC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC3B,CAAC;QACF,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;QAChE,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;QACpE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACpF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB;IACpD,MAAM,CAAC,OAAO,GAAG,uBAAuB,CAAC;IACzC,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,oBAAoB;QACvB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,CAAC,GAAG,sBAAsB,CAAC;YACpC,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,eAAe;SACzB,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,8BAA8B;YACvC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC3B,CAAC;QACF,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;QAChE,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;QACpE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;QAChE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;KACvG,CAAC;IACF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE;YACrC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;YACzD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBACzB,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE;gBAC5C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBAC1B,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE;gBAC9C,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CACH,CAAC;IACJ,CAAC"}
|
package/dist/commands/spec.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ export default class Spec extends OpenXiangdaCommand {
|
|
|
6
6
|
target: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
7
7
|
};
|
|
8
8
|
static flags: {
|
|
9
|
+
'history-offset': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
deployment: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
evidence: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
12
|
title: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
13
|
risk: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
14
|
summary: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,YAAY,CAAC;AAYhE,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,kBAAkB;IAClD,MAAM,CAAC,OAAO,SAAgC;IAC9C,MAAM,CAAC,IAAI;;;MAMT;IACF,MAAM,CAAC,KAAK;;;;;;;;;;;;;MAoCV;IAEI,GAAG;;;;;;;;;;;;;;;;;;;CA6DV"}
|
package/dist/commands/spec.js
CHANGED
|
@@ -7,9 +7,10 @@ const actions = [
|
|
|
7
7
|
"context",
|
|
8
8
|
"check",
|
|
9
9
|
"close",
|
|
10
|
+
"verify",
|
|
10
11
|
];
|
|
11
12
|
export default class Spec extends OpenXiangdaCommand {
|
|
12
|
-
static summary = "
|
|
13
|
+
static summary = "记录需求、设计、变更、验收与交接,按阶段检查交付条件";
|
|
13
14
|
static args = {
|
|
14
15
|
action: Args.string({ required: true, options: [...actions] }),
|
|
15
16
|
target: Args.string({
|
|
@@ -19,6 +20,9 @@ export default class Spec extends OpenXiangdaCommand {
|
|
|
19
20
|
};
|
|
20
21
|
static flags = {
|
|
21
22
|
...workspaceFlags,
|
|
23
|
+
'history-offset': Flags.integer({ summary: '历史索引分页偏移,每页 50 条', min: 0, default: 0 }),
|
|
24
|
+
deployment: Flags.string({ summary: 'verify 对应的成功测试运行 ID' }),
|
|
25
|
+
evidence: Flags.string({ summary: 'verify 使用的 appspec/verification/*.json 报告路径' }),
|
|
22
26
|
title: Flags.string({ summary: "能力或变更标题", helpValue: "<title>" }),
|
|
23
27
|
risk: Flags.string({
|
|
24
28
|
summary: "变更维护深度;默认 L1",
|
|
@@ -30,7 +34,7 @@ export default class Spec extends OpenXiangdaCommand {
|
|
|
30
34
|
helpValue: "<text>",
|
|
31
35
|
}),
|
|
32
36
|
"current-spec": Flags.string({
|
|
33
|
-
summary: "
|
|
37
|
+
summary: "按实际结果记录当前规格已合并或不适用,不重复请求已有确认",
|
|
34
38
|
options: ["merged", "not-applicable"],
|
|
35
39
|
helpValue: "<merged|not-applicable>",
|
|
36
40
|
}),
|
|
@@ -57,11 +61,13 @@ export default class Spec extends OpenXiangdaCommand {
|
|
|
57
61
|
if (action === "init")
|
|
58
62
|
return this.present(await this.services.appSpecInit(flags.cwd));
|
|
59
63
|
if (action === "context") {
|
|
60
|
-
return this.present(await this.services.appSpecContext(flags.cwd, args.target));
|
|
64
|
+
return this.present(await this.services.appSpecContext(flags.cwd, args.target, flags['history-offset']));
|
|
61
65
|
}
|
|
62
66
|
if (action === "check") {
|
|
63
67
|
return this.present(await this.services.appSpecCheck(flags.cwd));
|
|
64
68
|
}
|
|
69
|
+
if (action === 'verify')
|
|
70
|
+
return this.present(await this.services.appSpecVerify(flags.cwd, required(flags.deployment, 'APPSPEC_TEST_DEPLOYMENT_REQUIRED'), flags.evidence));
|
|
65
71
|
const id = required(args.target, `APPSPEC_${action.toUpperCase().replaceAll("-", "_")}_ID_REQUIRED`);
|
|
66
72
|
if (action === "add-capability") {
|
|
67
73
|
return this.present(await this.services.appSpecAddCapability({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,OAAO,GAAG;IACd,MAAM;IACN,gBAAgB;IAChB,KAAK;IACL,SAAS;IACT,OAAO;IACP,OAAO;
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export default class Status extends OpenXiangdaCommand {
|
|
|
5
5
|
deploymentId: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
6
6
|
};
|
|
7
7
|
static flags: {
|
|
8
|
+
watch: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
9
|
cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
10
|
};
|
|
10
11
|
run(): Promise<import("openxiangda-contracts").DevkitResult<unknown> | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,YAAY,CAAC;AAChE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB;IACpD,MAAM,CAAC,OAAO,SAAkC;IAChD,MAAM,CAAC,IAAI;;MAAmC;IAC9C,MAAM,CAAC,KAAK;;;MAA8F;IACpG,GAAG;;;;;;;;;;;;;;;;;;;CAOV"}
|
package/dist/commands/status.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import { Args } from '@oclif/core';
|
|
1
|
+
import { Args, Flags } from '@oclif/core';
|
|
2
|
+
import { watchDeployment } from 'openxiangda-devkit-core';
|
|
2
3
|
import { OpenXiangdaCommand, workspaceFlags } from '../base.js';
|
|
3
4
|
export default class Status extends OpenXiangdaCommand {
|
|
4
5
|
static summary = '查询 DeploymentRun 状态;默认最近一次部署';
|
|
5
6
|
static args = { deploymentId: Args.string() };
|
|
6
|
-
static flags = workspaceFlags;
|
|
7
|
-
async run() {
|
|
7
|
+
static flags = { ...workspaceFlags, watch: Flags.boolean({ summary: '持续反馈并等待原运行结束,最多 15 分钟;不会重新提交部署' }) };
|
|
8
|
+
async run() {
|
|
9
|
+
const { args, flags } = await this.parse(Status);
|
|
10
|
+
return this.present(flags.watch ? await watchDeployment(this.services, {
|
|
11
|
+
...(flags.cwd ? { root: flags.cwd } : {}), ...(args.deploymentId ? { deploymentId: args.deploymentId } : {}),
|
|
12
|
+
onProgress: event => this.presentOperationProgress(event),
|
|
13
|
+
}) : await this.services.deploymentStatus(flags.cwd, args.deploymentId));
|
|
14
|
+
}
|
|
8
15
|
}
|
|
9
16
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB;IACpD,MAAM,CAAC,OAAO,GAAG,8BAA8B,CAAC;IAChD,MAAM,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IAC9C,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,EAAE,CAAC;IAC1G,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE;YACrE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5G,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;SAC1D,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3E,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openxiangda-cli",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.182",
|
|
4
4
|
"description": "OpenXiangda 2.0 应用生命周期命令、创建器与模板。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
],
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@oclif/core": "4.13.3",
|
|
24
|
-
"openxiangda-contracts": "2.0.0-alpha.
|
|
25
|
-
"openxiangda-devkit-core": "2.0.0-alpha.
|
|
26
|
-
"openxiangda-mcp": "2.0.0-alpha.
|
|
27
|
-
"openxiangda-skill-kit": "2.0.0-alpha.
|
|
24
|
+
"openxiangda-contracts": "2.0.0-alpha.91",
|
|
25
|
+
"openxiangda-devkit-core": "2.0.0-alpha.117",
|
|
26
|
+
"openxiangda-mcp": "2.0.0-alpha.117",
|
|
27
|
+
"openxiangda-skill-kit": "2.0.0-alpha.143"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"tsx": "4.23.12",
|
package/template/AGENTS.md
CHANGED
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
- 标准业务字段使用 `openxiangda/field-kit`;PC 补充控件使用 antd,移动使用有作用域的 `openxiangda/mobile` 和 MobileSurface,不引入上游全局重置。
|
|
11
11
|
- 无账号表单读取 `docs public-access`,使用 frontend.publicAccess 和专用客户端;标准审批、通知和后端均按需启用。
|
|
12
12
|
- 日常使用 dev 和聚焦测试。只验证时使用 check;授权部署时直接 deploy,它已包含检查、测试和构建。生产必须指定成功测试运行并复用同一版本。
|
|
13
|
-
-
|
|
13
|
+
- deploy 默认持续反馈并跟踪平台结果;观察中断用 status <运行ID> --watch 继续,保留原运行,不重新构建。平台部署成功后仍需真实角色业务验收。
|
|
14
|
+
- 开发开始先同步远端默认主分支;同一工作区只有一个写者。发布前将本轮源码、生成契约与记录合入并推送主分支,从干净且同步的主分支冻结候选;任务分支已推送不等于已合入主线。不要覆盖其他会话改动或自动合并所有分支。
|
|
15
|
+
- 默认读取 AppSpec 当前规格、活动变更和阶段缺口,按角色、规则、页面、数据澄清模糊需求,再评估架构、权限和性能边界。总纲保存长期规则,本轮变更关联需求、任务、源码与 AC 验收;测试发布前完成设计与计划,生产晋级前保存绑定原测试运行及包摘要的实际验收报告。更新当前规则、验证与发布结果和交接后归档;不得编造确认或通过结果。
|
|
16
|
+
- 根据变化风险记录业务意图。无行为变化引用已有记录;已有授权和已确认意图不重复向用户请求机械确认。真实角色和浏览器验收与本地测试分别记录。
|
|
14
17
|
- 失败保留错误码、指针和原候选;查询平台状态后使用允许的恢复操作,不自动重放未知结果。
|
|
15
18
|
|
|
16
19
|
MCP 使用同一项目 CLI:`pnpm exec openxiangda --mcp-stdio --cwd <workspace>`。先读取 workspace_context,再按任务读取 docs_read 和当前契约。登录、创建及长期 dev 使用 CLI/终端。
|
package/template/appspec/app.md
CHANGED
|
@@ -6,7 +6,7 @@ status: active
|
|
|
6
6
|
---
|
|
7
7
|
# OpenXiangda 应用
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
本文件保存当前有效目标与设计约束。正式变更关联 ChangeSpec;测试发布前核对设计与验收计划,生产晋级前核对实际验收。资源、字段、权限和动作的实现以
|
|
10
10
|
`openxiangda.config.ts` 与实时编译合同为准。
|
|
11
11
|
|
|
12
12
|
## 业务目标
|
|
@@ -25,38 +25,28 @@ status: active
|
|
|
25
25
|
|
|
26
26
|
## 能力目录
|
|
27
27
|
|
|
28
|
-
<!-- 复杂业务再在 capabilities/ 下增加 CAP
|
|
28
|
+
<!-- 复杂业务再在 capabilities/ 下增加 CAP-*;简单应用的稳定规则直接写在本文件。 -->
|
|
29
29
|
|
|
30
30
|
## 术语
|
|
31
31
|
|
|
32
32
|
## 跨能力约束
|
|
33
33
|
|
|
34
|
-
##
|
|
34
|
+
## 架构与数据关系
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
<!-- 写明领域边界、核心模型关系、平台能力与自定义动作的归属、状态转换与不变量。 -->
|
|
37
37
|
|
|
38
38
|
## 业务任务与页面
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
| --- | --- | --- | --- | --- |
|
|
42
|
-
|
|
43
|
-
<!-- 辅助表可以没有页面;多表共同完成一项业务时只规划需要的任务页。 -->
|
|
40
|
+
<!-- 按用户任务规划管理端、PC、移动入口与数据关系;辅助表不必有页面。 -->
|
|
44
41
|
|
|
45
42
|
## 权限矩阵与确认
|
|
46
43
|
|
|
47
|
-
|
|
48
|
-
| --- | --- | --- | --- | --- | --- | --- |
|
|
49
|
-
|
|
50
|
-
- 已确认的业务权限:
|
|
51
|
-
- 尚未确认的权限(不要擅自授予):
|
|
44
|
+
<!-- 记录角色、页面、操作、行范围、字段和多角色组合;写明需求依据与未明确的边界。 -->
|
|
52
45
|
|
|
53
|
-
##
|
|
46
|
+
## 性能与容量预算
|
|
54
47
|
|
|
55
|
-
|
|
56
|
-
| --- | --- | --- | --- | --- | --- |
|
|
48
|
+
<!-- 记录数据量及增长、并发、分页与索引、请求次数、延迟目标和测量口径;区分估算、目标与实测。 -->
|
|
57
49
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
## 变更记录
|
|
50
|
+
## 未确认问题
|
|
61
51
|
|
|
62
|
-
|
|
52
|
+
- 无。
|