@hongmaple0820/scale-engine 0.47.0 → 0.49.0
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/README.en.md +8 -2
- package/README.md +9 -3
- package/dist/agents/evidenceDiscipline.d.ts +7 -0
- package/dist/agents/evidenceDiscipline.js +21 -0
- package/dist/agents/evidenceDiscipline.js.map +1 -0
- package/dist/agents/profiles.js +8 -1
- package/dist/agents/profiles.js.map +1 -1
- package/dist/agents/types.d.ts +1 -0
- package/dist/api/cli.js +975 -6222
- package/dist/api/cli.js.map +1 -1
- package/dist/artifact/types.d.ts +59 -0
- package/dist/artifact/types.js.map +1 -1
- package/dist/cli/artifactCrudCommands.d.ts +67 -0
- package/dist/cli/artifactCrudCommands.js +182 -0
- package/dist/cli/artifactCrudCommands.js.map +1 -0
- package/dist/cli/codegraphCommands.d.ts +1 -0
- package/dist/cli/codegraphCommands.js +241 -0
- package/dist/cli/codegraphCommands.js.map +1 -0
- package/dist/cli/contextCommands.d.ts +1 -0
- package/dist/cli/contextCommands.js +415 -0
- package/dist/cli/contextCommands.js.map +1 -0
- package/dist/cli/cortexCommands.d.ts +36 -0
- package/dist/cli/cortexCommands.js +76 -4
- package/dist/cli/cortexCommands.js.map +1 -1
- package/dist/cli/dependencyTddCommands.d.ts +92 -0
- package/dist/cli/dependencyTddCommands.js +174 -0
- package/dist/cli/dependencyTddCommands.js.map +1 -0
- package/dist/cli/diagnoseHuntCommands.d.ts +135 -0
- package/dist/cli/diagnoseHuntCommands.js +224 -0
- package/dist/cli/diagnoseHuntCommands.js.map +1 -0
- package/dist/cli/engineBootstrap.d.ts +39 -0
- package/dist/cli/engineBootstrap.js +129 -0
- package/dist/cli/engineBootstrap.js.map +1 -0
- package/dist/cli/evalCommands.d.ts +1 -0
- package/dist/cli/evalCommands.js +273 -0
- package/dist/cli/evalCommands.js.map +1 -0
- package/dist/cli/evolveDoctorCommands.d.ts +18 -0
- package/dist/cli/evolveDoctorCommands.js +59 -0
- package/dist/cli/evolveDoctorCommands.js.map +1 -0
- package/dist/cli/gateInlineCommands.d.ts +43 -0
- package/dist/cli/gateInlineCommands.js +74 -0
- package/dist/cli/gateInlineCommands.js.map +1 -0
- package/dist/cli/initConfigCommands.d.ts +138 -0
- package/dist/cli/initConfigCommands.js +602 -0
- package/dist/cli/initConfigCommands.js.map +1 -0
- package/dist/cli/metaGovernanceCommands.d.ts +11 -0
- package/dist/cli/metaGovernanceCommands.js +55 -0
- package/dist/cli/metaGovernanceCommands.js.map +1 -0
- package/dist/cli/phaseCommands.d.ts +53 -1
- package/dist/cli/phaseCommands.js +317 -22
- package/dist/cli/phaseCommands.js.map +1 -1
- package/dist/cli/runtimeSkillCommands.d.ts +6 -0
- package/dist/cli/runtimeSkillCommands.js +1515 -0
- package/dist/cli/runtimeSkillCommands.js.map +1 -0
- package/dist/cli/sessionCommands.d.ts +17 -0
- package/dist/cli/sessionCommands.js +38 -0
- package/dist/cli/sessionCommands.js.map +1 -0
- package/dist/cli/toolAgentCommands.d.ts +3 -0
- package/dist/cli/toolAgentCommands.js +441 -0
- package/dist/cli/toolAgentCommands.js.map +1 -0
- package/dist/cli/transitionCommands.d.ts +62 -0
- package/dist/cli/transitionCommands.js +174 -0
- package/dist/cli/transitionCommands.js.map +1 -0
- package/dist/cli/upgradeAssetsCommands.d.ts +44 -0
- package/dist/cli/upgradeAssetsCommands.js +933 -0
- package/dist/cli/upgradeAssetsCommands.js.map +1 -0
- package/dist/cli/workflowEvidenceCommands.d.ts +34 -0
- package/dist/cli/workflowEvidenceCommands.js +130 -0
- package/dist/cli/workflowEvidenceCommands.js.map +1 -0
- package/dist/cortex/InstinctStore.d.ts +32 -1
- package/dist/cortex/InstinctStore.js +235 -42
- package/dist/cortex/InstinctStore.js.map +1 -1
- package/dist/cortex/InstinctValidation.d.ts +9 -0
- package/dist/cortex/InstinctValidation.js +55 -0
- package/dist/cortex/InstinctValidation.js.map +1 -0
- package/dist/cortex/SessionInjector.js +13 -6
- package/dist/cortex/SessionInjector.js.map +1 -1
- package/dist/eval/BenchmarkPublisher.d.ts +2 -0
- package/dist/eval/BenchmarkPublisher.js +43 -0
- package/dist/eval/BenchmarkPublisher.js.map +1 -1
- package/dist/guardrails/ast/confirmers.d.ts +18 -0
- package/dist/guardrails/ast/confirmers.js +69 -0
- package/dist/guardrails/ast/confirmers.js.map +1 -0
- package/dist/guardrails/ast/parse.d.ts +20 -0
- package/dist/guardrails/ast/parse.js +51 -0
- package/dist/guardrails/ast/parse.js.map +1 -0
- package/dist/output/HTMLDocumentRenderer.d.ts +9 -0
- package/dist/output/HTMLDocumentRenderer.js +19 -0
- package/dist/output/HTMLDocumentRenderer.js.map +1 -1
- package/dist/review/FreshContextVerifier.d.ts +35 -0
- package/dist/review/FreshContextVerifier.js +120 -0
- package/dist/review/FreshContextVerifier.js.map +1 -0
- package/dist/review/JsonLlmClient.d.ts +37 -0
- package/dist/review/JsonLlmClient.js +94 -0
- package/dist/review/JsonLlmClient.js.map +1 -0
- package/dist/review/LlmJudge.d.ts +61 -0
- package/dist/review/LlmJudge.js +167 -0
- package/dist/review/LlmJudge.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/workflow/BoundaryEnforcement.d.ts +60 -0
- package/dist/workflow/BoundaryEnforcement.js +182 -0
- package/dist/workflow/BoundaryEnforcement.js.map +1 -0
- package/dist/workflow/EngineeringStandards.js +19 -9
- package/dist/workflow/EngineeringStandards.js.map +1 -1
- package/dist/workflow/GateCatalog.js +12 -2
- package/dist/workflow/GateCatalog.js.map +1 -1
- package/dist/workflow/ProfileEnforcement.d.ts +7 -0
- package/dist/workflow/ProfileEnforcement.js +12 -0
- package/dist/workflow/ProfileEnforcement.js.map +1 -0
- package/dist/workflow/ReviewStore.d.ts +10 -0
- package/dist/workflow/ReviewStore.js.map +1 -1
- package/dist/workflow/SurfaceCoverage.d.ts +19 -0
- package/dist/workflow/SurfaceCoverage.js +57 -0
- package/dist/workflow/SurfaceCoverage.js.map +1 -0
- package/dist/workflow/gates/EnhancedGates.js +2 -0
- package/dist/workflow/gates/EnhancedGates.js.map +1 -1
- package/dist/workflow/gates/TestIntegrityGate.d.ts +51 -0
- package/dist/workflow/gates/TestIntegrityGate.js +175 -0
- package/dist/workflow/gates/TestIntegrityGate.js.map +1 -0
- package/dist/workflow/types.d.ts +1 -1
- package/docs/guides/DEVELOPMENT_WORKFLOW.md +28 -0
- package/docs/workflow/E2E_EXAMPLE.md +133 -0
- package/docs/workflow/README.md +6 -0
- package/docs/workflow/TEMPLATE_GUIDE.md +162 -0
- package/docs/workflow/templates/plan.md +26 -0
- package/docs/workflow/templates/spec.md +28 -0
- package/package.json +3 -1
package/dist/artifact/types.d.ts
CHANGED
|
@@ -108,6 +108,23 @@ export interface SpecPayload {
|
|
|
108
108
|
edgeCases: string[];
|
|
109
109
|
northStar: string;
|
|
110
110
|
ambiguityScore?: number;
|
|
111
|
+
/** 具体证据来源:测试名 / 基准命令 / 产物路径。后续 evidence 须能映射回其中某一项。 */
|
|
112
|
+
verificationSurface?: string[];
|
|
113
|
+
/** 运行期间不能退化的指标(性能 / 安全 / 兼容性)。 */
|
|
114
|
+
constraints?: string[];
|
|
115
|
+
/** 执行边界:可改文件、可用工具、明确禁动范围。 */
|
|
116
|
+
boundaries?: SpecBoundaries;
|
|
117
|
+
/** build 阶段每轮迭代后如何决定下一步。 */
|
|
118
|
+
iterationStrategy?: string;
|
|
119
|
+
/** 无可行路径时报告什么、需要什么才能解锁。 */
|
|
120
|
+
blockedStopCondition?: string;
|
|
121
|
+
}
|
|
122
|
+
/** Spec 执行边界(六要素之一) */
|
|
123
|
+
export interface SpecBoundaries {
|
|
124
|
+
files: string[];
|
|
125
|
+
tools: string[];
|
|
126
|
+
/** 明确不能动的范围(与需求层 outOfScope 互补:此处是执行层禁动)。 */
|
|
127
|
+
forbidden: string[];
|
|
111
128
|
}
|
|
112
129
|
/** Plan —— 技术方案 (HOW) */
|
|
113
130
|
export interface PlanPayload {
|
|
@@ -217,6 +234,44 @@ export interface ChangePayload {
|
|
|
217
234
|
diffSummary: string;
|
|
218
235
|
reverted?: boolean;
|
|
219
236
|
}
|
|
237
|
+
/** P1.2 (G23): a single test-integrity heuristic finding. */
|
|
238
|
+
export interface TestIntegrityFinding {
|
|
239
|
+
/** Test file (repo-relative path) the finding came from. */
|
|
240
|
+
file: string;
|
|
241
|
+
/** Heuristic that produced the finding. */
|
|
242
|
+
kind: 'assertion-removed' | 'skip-added' | 'only-added' | 'weakened-assertion' | 'timeout-inflated';
|
|
243
|
+
/** Intended enforcement once G23 leaves advisory mode (see P1 decision E1). */
|
|
244
|
+
severity: 'warn' | 'block';
|
|
245
|
+
/** Human-readable explanation of the flagged change. */
|
|
246
|
+
detail: string;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* P1.2 (G23 Test Integrity): evidence produced by analysing the test-file diff.
|
|
250
|
+
* Fields marked PR-D2 are populated by the later verify→ship enforcement PR and
|
|
251
|
+
* are optional so PR-D1 (advisory detection) can omit them.
|
|
252
|
+
*/
|
|
253
|
+
export interface TestIntegrityEvidence {
|
|
254
|
+
/** Test files included in the analysis (repo-relative paths). */
|
|
255
|
+
analyzedFiles: string[];
|
|
256
|
+
/** Approx assertion count on the pre-change side of the analysed diff hunks. */
|
|
257
|
+
preChangeAssertionCount: number;
|
|
258
|
+
/** Approx assertion count on the post-change side of the analysed diff hunks. */
|
|
259
|
+
postChangeAssertionCount: number;
|
|
260
|
+
/** postChangeAssertionCount - preChangeAssertionCount (negative = net assertions removed). */
|
|
261
|
+
assertionCountDelta: number;
|
|
262
|
+
/** Human-readable summary of every flagged heuristic. */
|
|
263
|
+
flaggedPatterns: string[];
|
|
264
|
+
/** Structured findings backing flaggedPatterns. */
|
|
265
|
+
findings: TestIntegrityFinding[];
|
|
266
|
+
/** Whether this run was advisory (warn-only) or enforced. */
|
|
267
|
+
advisory: boolean;
|
|
268
|
+
/** PR-D2: coverage regression vs the last passing baseline. */
|
|
269
|
+
coverageDelta?: number;
|
|
270
|
+
/** PR-D2: test-file hash recorded at verify time. */
|
|
271
|
+
testFileHashAtVerify?: string;
|
|
272
|
+
/** PR-D2: test-file hash recomputed at ship time. */
|
|
273
|
+
testFileHashAtShip?: string;
|
|
274
|
+
}
|
|
220
275
|
/** Evidence —— 验证证据 */
|
|
221
276
|
export interface EvidencePayload {
|
|
222
277
|
testPlanId: ArtifactId;
|
|
@@ -225,6 +280,10 @@ export interface EvidencePayload {
|
|
|
225
280
|
output: string;
|
|
226
281
|
duration: number;
|
|
227
282
|
artifacts: string[];
|
|
283
|
+
/** P0: 指向 Spec.verificationSurface 中声明的某一项;无映射的证据视为未对齐(P0 仅告警)。 */
|
|
284
|
+
verificationSurfaceRef?: string;
|
|
285
|
+
/** P1.2 (G23): test-integrity analysis attached to verify-stage evidence. */
|
|
286
|
+
testIntegrity?: TestIntegrityEvidence;
|
|
228
287
|
}
|
|
229
288
|
/** Defect —— 缺陷 */
|
|
230
289
|
export interface DefectPayload {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/artifact/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/artifact/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAsxBH,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YAAY,OAAe,EAAS,IAAY,EAAS,OAAiB;QACxE,KAAK,CAAC,OAAO,CAAC,CAAA;QADoB,SAAI,GAAJ,IAAI,CAAQ;QAAS,YAAO,GAAP,OAAO,CAAU;QAExE,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,UAAU;IACpD,YAAY,IAAY,EAAE,MAAc;QACtC,KAAK,CAAC,UAAU,IAAI,8BAA8B,MAAM,GAAG,EAAE,oBAAoB,EAAE;YACjF,IAAI;YACJ,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC9C,YAAmB,QAAwB;QACzC,KAAK,CAAC,iCAAiC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE;YAChG,QAAQ;SACT,CAAC,CAAA;QAHe,aAAQ,GAAR,QAAQ,CAAgB;IAI3C,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAY,IAAY,EAAE,MAAc;QACtC,KAAK,CAAC,SAAS,IAAI,aAAa,MAAM,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5E,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,UAAU;IACnD,YAAY,EAAU;QACpB,KAAK,CAAC,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACnE,CAAC;CACF;AAmBD,eAAe;AACf,MAAM,CAAC,MAAM,qBAAqB,GAA6C;IAC7E,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,yBAAyB,EAAE,KAAK;QAChC,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;KACf;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,mBAAmB,EAAE,QAAQ;QAC7B,oBAAoB,EAAE,IAAI;QAC1B,yBAAyB,EAAE,KAAK;QAChC,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC;KACd;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,mBAAmB,EAAE,MAAM;QAC3B,oBAAoB,EAAE,IAAI;QAC1B,yBAAyB,EAAE,IAAI;QAC/B,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC;KACd;CACF,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export declare const createCommand: import("citty").CommandDef<{
|
|
2
|
+
type: {
|
|
3
|
+
type: "positional";
|
|
4
|
+
required: true;
|
|
5
|
+
};
|
|
6
|
+
title: {
|
|
7
|
+
type: "positional";
|
|
8
|
+
required: true;
|
|
9
|
+
};
|
|
10
|
+
parent: {
|
|
11
|
+
type: "string";
|
|
12
|
+
};
|
|
13
|
+
payload: {
|
|
14
|
+
type: "string";
|
|
15
|
+
default: string;
|
|
16
|
+
};
|
|
17
|
+
}>;
|
|
18
|
+
export declare const listCommand: import("citty").CommandDef<{
|
|
19
|
+
type: {
|
|
20
|
+
type: "string";
|
|
21
|
+
};
|
|
22
|
+
status: {
|
|
23
|
+
type: "string";
|
|
24
|
+
};
|
|
25
|
+
limit: {
|
|
26
|
+
type: "string";
|
|
27
|
+
default: string;
|
|
28
|
+
};
|
|
29
|
+
}>;
|
|
30
|
+
export declare const showCommand: import("citty").CommandDef<{
|
|
31
|
+
id: {
|
|
32
|
+
type: "positional";
|
|
33
|
+
required: true;
|
|
34
|
+
};
|
|
35
|
+
}>;
|
|
36
|
+
export declare const suggestCommand: import("citty").CommandDef<{
|
|
37
|
+
id: {
|
|
38
|
+
type: "positional";
|
|
39
|
+
required: true;
|
|
40
|
+
};
|
|
41
|
+
json: {
|
|
42
|
+
type: "boolean";
|
|
43
|
+
default: false;
|
|
44
|
+
};
|
|
45
|
+
}>;
|
|
46
|
+
export declare const createPRDCommand: import("citty").CommandDef<{
|
|
47
|
+
title: {
|
|
48
|
+
type: "positional";
|
|
49
|
+
required: true;
|
|
50
|
+
};
|
|
51
|
+
specs: {
|
|
52
|
+
type: "string";
|
|
53
|
+
description: string;
|
|
54
|
+
};
|
|
55
|
+
plans: {
|
|
56
|
+
type: "string";
|
|
57
|
+
description: string;
|
|
58
|
+
};
|
|
59
|
+
tasks: {
|
|
60
|
+
type: "string";
|
|
61
|
+
description: string;
|
|
62
|
+
};
|
|
63
|
+
'session-id': {
|
|
64
|
+
type: "string";
|
|
65
|
+
required: false;
|
|
66
|
+
};
|
|
67
|
+
}>;
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
// SCALE Engine — Artifact CRUD Commands
|
|
2
|
+
import { defineCommand } from 'citty';
|
|
3
|
+
import { getEngine } from './engineBootstrap.js';
|
|
4
|
+
export const createCommand = defineCommand({
|
|
5
|
+
meta: { name: 'create', description: 'Create an artifact' },
|
|
6
|
+
args: {
|
|
7
|
+
type: { type: 'positional', required: true },
|
|
8
|
+
title: { type: 'positional', required: true },
|
|
9
|
+
parent: { type: 'string' },
|
|
10
|
+
payload: { type: 'string', default: '{}' },
|
|
11
|
+
},
|
|
12
|
+
async run({ args }) {
|
|
13
|
+
const { store } = getEngine();
|
|
14
|
+
let payload = {};
|
|
15
|
+
try {
|
|
16
|
+
payload = JSON.parse(args.payload);
|
|
17
|
+
}
|
|
18
|
+
catch { /* empty */ }
|
|
19
|
+
const { INITIAL_STATES } = await import('../artifact/fsmDefinitions.js');
|
|
20
|
+
const artifact = await store.create({
|
|
21
|
+
type: args.type,
|
|
22
|
+
title: args.title,
|
|
23
|
+
payload,
|
|
24
|
+
parents: args.parent ? [args.parent] : [],
|
|
25
|
+
initialStatus: INITIAL_STATES[args.type] ?? 'DRAFT',
|
|
26
|
+
createdBy: { kind: 'human', userId: process.env.USER ?? 'cli' },
|
|
27
|
+
});
|
|
28
|
+
console.log(JSON.stringify(artifact, null, 2));
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
export const listCommand = defineCommand({
|
|
32
|
+
meta: { name: 'list', description: 'List artifacts' },
|
|
33
|
+
args: { type: { type: 'string' }, status: { type: 'string' }, limit: { type: 'string', default: '20' } },
|
|
34
|
+
async run({ args }) {
|
|
35
|
+
const { store } = getEngine();
|
|
36
|
+
const items = await store.query({
|
|
37
|
+
type: args.type,
|
|
38
|
+
status: args.status,
|
|
39
|
+
limit: parseInt(args.limit, 10),
|
|
40
|
+
});
|
|
41
|
+
console.log(JSON.stringify(items, null, 2));
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
export const showCommand = defineCommand({
|
|
45
|
+
meta: { name: 'show', description: 'Show artifact details' },
|
|
46
|
+
args: { id: { type: 'positional', required: true } },
|
|
47
|
+
async run({ args }) {
|
|
48
|
+
const { store } = getEngine();
|
|
49
|
+
const artifact = await store.get(args.id);
|
|
50
|
+
if (!artifact) {
|
|
51
|
+
console.error(`Artifact not found: ${args.id}`);
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
console.log(JSON.stringify(artifact, null, 2));
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
export const suggestCommand = defineCommand({
|
|
58
|
+
meta: { name: 'suggest', description: 'Show available actions for an artifact' },
|
|
59
|
+
args: {
|
|
60
|
+
id: { type: 'positional', required: true },
|
|
61
|
+
json: { type: 'boolean', default: false },
|
|
62
|
+
},
|
|
63
|
+
async run({ args }) {
|
|
64
|
+
const { store, fsm } = getEngine();
|
|
65
|
+
const artifact = await store.get(args.id);
|
|
66
|
+
if (!artifact) {
|
|
67
|
+
console.error(`Artifact not found: ${args.id}`);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
const def = fsm.getDefinition(artifact.type);
|
|
71
|
+
if (!def) {
|
|
72
|
+
console.error(`No FSM registered for type: ${artifact.type}`);
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
const availableTxs = def.transitions.filter((t) => t.from === artifact.status);
|
|
76
|
+
const suggestions = await Promise.all(availableTxs.map(async (tx) => {
|
|
77
|
+
const guardCheck = await fsm.canTransition(args.id, tx.action);
|
|
78
|
+
return {
|
|
79
|
+
action: tx.action,
|
|
80
|
+
to: tx.to,
|
|
81
|
+
guards: (tx.guards ?? []).map((g) => g.name),
|
|
82
|
+
guardMessages: (tx.guards ?? []).map((g) => g.errorMessage),
|
|
83
|
+
canExecute: guardCheck.allowed,
|
|
84
|
+
blockedBy: guardCheck.blockedBy,
|
|
85
|
+
};
|
|
86
|
+
}));
|
|
87
|
+
if (args.json) {
|
|
88
|
+
console.log(JSON.stringify({
|
|
89
|
+
id: artifact.id,
|
|
90
|
+
type: artifact.type,
|
|
91
|
+
currentStatus: artifact.status,
|
|
92
|
+
isTerminal: def.terminal.includes(artifact.status),
|
|
93
|
+
suggestions,
|
|
94
|
+
}, null, 2));
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
console.log(`\n📊 ${artifact.id} (${artifact.type})`);
|
|
98
|
+
console.log(` Current status: ${artifact.status}`);
|
|
99
|
+
if (def.terminal.includes(artifact.status)) {
|
|
100
|
+
console.log(` ⚠️ Terminal state — no further transitions available`);
|
|
101
|
+
}
|
|
102
|
+
console.log('');
|
|
103
|
+
console.log('Available actions:');
|
|
104
|
+
console.log('──────────────────────────────────────────────────');
|
|
105
|
+
if (suggestions.length === 0) {
|
|
106
|
+
console.log(' No actions available from this state.');
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
for (const s of suggestions) {
|
|
110
|
+
const status = s.canExecute ? '✅' : '❌';
|
|
111
|
+
console.log(` ${status} ${s.action} → ${s.to}`);
|
|
112
|
+
if (s.guards.length > 0) {
|
|
113
|
+
for (const g of s.guardMessages) {
|
|
114
|
+
console.log(` Guard: ${g}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (s.blockedBy && s.blockedBy.length > 0) {
|
|
118
|
+
for (const b of s.blockedBy) {
|
|
119
|
+
console.log(` ❌ ${b.message}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
console.log('──────────────────────────────────────────────────');
|
|
125
|
+
console.log('\nUsage: scale transition <id> <action> --reason "..."');
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
export const createPRDCommand = defineCommand({
|
|
130
|
+
meta: { name: 'create-prd', description: 'Create PRD hierarchy (Spec → Plan → Tasks)' },
|
|
131
|
+
args: {
|
|
132
|
+
title: { type: 'positional', required: true },
|
|
133
|
+
specs: { type: 'string', description: 'Spec description' },
|
|
134
|
+
plans: { type: 'string', description: 'Plan design' },
|
|
135
|
+
tasks: { type: 'string', description: 'Task list (comma-separated)' },
|
|
136
|
+
'session-id': { type: 'string', required: false },
|
|
137
|
+
},
|
|
138
|
+
async run({ args }) {
|
|
139
|
+
const { store } = getEngine();
|
|
140
|
+
const spec = await store.create({
|
|
141
|
+
type: 'Spec',
|
|
142
|
+
title: args.title,
|
|
143
|
+
payload: { description: args.specs ?? '', ambiguityScore: 0.3 },
|
|
144
|
+
initialStatus: 'DRAFT',
|
|
145
|
+
createdBy: { kind: 'human', userId: process.env.USER ?? 'cli' },
|
|
146
|
+
});
|
|
147
|
+
const plan = await store.create({
|
|
148
|
+
type: 'Plan',
|
|
149
|
+
title: `${args.title} - Implementation Plan`,
|
|
150
|
+
payload: { design: args.plans ?? '' },
|
|
151
|
+
parents: [spec.id],
|
|
152
|
+
initialStatus: 'DRAFT',
|
|
153
|
+
createdBy: { kind: 'human', userId: process.env.USER ?? 'cli' },
|
|
154
|
+
});
|
|
155
|
+
const taskList = (args.tasks ?? '').split(',').map((t) => t.trim()).filter((t) => t.length > 0);
|
|
156
|
+
const tasks = [];
|
|
157
|
+
for (const taskTitle of taskList) {
|
|
158
|
+
const task = await store.create({
|
|
159
|
+
type: 'Task',
|
|
160
|
+
title: taskTitle,
|
|
161
|
+
payload: { description: taskTitle, filesInvolved: [], dependsOn: [], requiredRole: 'implementer', requiredCapabilities: [] },
|
|
162
|
+
parents: [plan.id],
|
|
163
|
+
initialStatus: 'TODO',
|
|
164
|
+
createdBy: { kind: 'human', userId: process.env.USER ?? 'cli' },
|
|
165
|
+
});
|
|
166
|
+
tasks.push({ id: task.id, title: task.title });
|
|
167
|
+
}
|
|
168
|
+
console.log('\n✅ PRD hierarchy created:');
|
|
169
|
+
console.log(`\nSpec: ${spec.id} (DRAFT)`);
|
|
170
|
+
console.log(` └─ Plan: ${plan.id} (DRAFT)`);
|
|
171
|
+
for (const task of tasks) {
|
|
172
|
+
console.log(` └─ Task: ${task.id} (TODO) - ${task.title}`);
|
|
173
|
+
}
|
|
174
|
+
console.log('\nNext steps:');
|
|
175
|
+
console.log(' 1. scale transition spec submit');
|
|
176
|
+
console.log(' 2. scale transition spec review');
|
|
177
|
+
console.log(' 3. scale transition spec approve (requires ambiguity ≤ 0.2)');
|
|
178
|
+
console.log(' 4. scale transition plan approve');
|
|
179
|
+
console.log(' 5. scale transition task-* ready (for each task)');
|
|
180
|
+
},
|
|
181
|
+
});
|
|
182
|
+
//# sourceMappingURL=artifactCrudCommands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifactCrudCommands.js","sourceRoot":"","sources":["../../src/cli/artifactCrudCommands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const codegraphCommand: import("citty").CommandDef<import("citty").ArgsDef>;
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
// SCALE Engine — CodeGraph CLI Commands (extracted from cli.ts)
|
|
2
|
+
// Adapter-first code intelligence: status, init, query, impact, context, roi, dump
|
|
3
|
+
import { defineCommand } from 'citty';
|
|
4
|
+
import { resolve, dirname } from 'node:path';
|
|
5
|
+
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
6
|
+
import { buildCodeGraphContext, createCodeGraphRoiReport, dumpCodeGraphData, impactCodeGraph, inspectCodeIntelligence, queryCodeGraph, writeCodeIntelligenceConfig, } from '../codegraph/CodeIntelligence.js';
|
|
7
|
+
import { PROJECT_DIR, isTruthyFlag, resolveScaleDirForProject } from './engineBootstrap.js';
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// Helpers
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
function parsePositiveIntArg(value, name) {
|
|
12
|
+
if (value === undefined || value === null || value === '')
|
|
13
|
+
return undefined;
|
|
14
|
+
const parsed = Number.parseInt(String(value), 10);
|
|
15
|
+
if (Number.isNaN(parsed) || parsed <= 0) {
|
|
16
|
+
throw new Error(`${name} must be a positive integer.`);
|
|
17
|
+
}
|
|
18
|
+
return parsed;
|
|
19
|
+
}
|
|
20
|
+
function printCodeGraphReport(report) {
|
|
21
|
+
console.log('SCALE Code Intelligence');
|
|
22
|
+
console.log(` Mode: ${report.mode}`);
|
|
23
|
+
console.log(` Query: ${report.query}`);
|
|
24
|
+
console.log(` Provider: ${report.provider ?? 'fallback'}`);
|
|
25
|
+
console.log(` Fallback used: ${report.fallbackUsed}`);
|
|
26
|
+
console.log(` Confidence: ${report.confidence}`);
|
|
27
|
+
console.log(` Files: ${report.files.length}`);
|
|
28
|
+
console.log(` Estimated reads saved: ${report.roi.fileReadsSaved}`);
|
|
29
|
+
for (const hit of report.hits.slice(0, 12)) {
|
|
30
|
+
const line = hit.line ? `:${hit.line}` : '';
|
|
31
|
+
const symbol = hit.symbol ? ` ${hit.symbol}` : '';
|
|
32
|
+
console.log(` - ${hit.file}${line}${symbol} (${hit.reason})`);
|
|
33
|
+
}
|
|
34
|
+
for (const warning of report.warnings)
|
|
35
|
+
console.log(` warning: ${warning}`);
|
|
36
|
+
}
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Sub-commands
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
const codegraphStatus = defineCommand({
|
|
41
|
+
meta: { name: 'status', description: 'Inspect CodeGraph, Graphify, and fallback code intelligence providers' },
|
|
42
|
+
args: {
|
|
43
|
+
dir: { type: 'string', default: PROJECT_DIR, description: 'Project directory' },
|
|
44
|
+
json: { type: 'boolean', default: false },
|
|
45
|
+
},
|
|
46
|
+
run({ args }) {
|
|
47
|
+
const projectDir = resolve(String(args.dir ?? PROJECT_DIR));
|
|
48
|
+
const scaleDir = resolveScaleDirForProject(projectDir);
|
|
49
|
+
const report = inspectCodeIntelligence({
|
|
50
|
+
projectDir,
|
|
51
|
+
scaleDir,
|
|
52
|
+
});
|
|
53
|
+
if (args.json) {
|
|
54
|
+
console.log(JSON.stringify(report, null, 2));
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
console.log('SCALE Code Intelligence Status');
|
|
58
|
+
console.log(` Config: ${report.configPath} (${report.configExists ? 'found' : 'default'})`);
|
|
59
|
+
console.log(` Project index: ${report.projectIndexExists ? report.projectIndexPath : `${report.projectIndexPath} (not initialized)`}`);
|
|
60
|
+
for (const provider of report.providers) {
|
|
61
|
+
console.log(` [${provider.available ? 'AVAILABLE' : 'UNAVAILABLE'}] ${provider.id} (${provider.type}): ${provider.reason}`);
|
|
62
|
+
if (provider.source)
|
|
63
|
+
console.log(` source: ${provider.source}`);
|
|
64
|
+
if (!provider.available && provider.installHint)
|
|
65
|
+
console.log(` install: ${provider.installHint}`);
|
|
66
|
+
if (provider.available && provider.projectInitHint && provider.id === 'codegraph' && !report.projectIndexExists) {
|
|
67
|
+
console.log(` init: ${provider.projectInitHint}`);
|
|
68
|
+
}
|
|
69
|
+
if (provider.serveCommand)
|
|
70
|
+
console.log(` mcp: ${provider.serveCommand}`);
|
|
71
|
+
}
|
|
72
|
+
console.log(` Fallback: ${report.fallback.available ? 'available' : 'disabled'} (${report.fallback.tools.join(', ')})`);
|
|
73
|
+
for (const recommendation of report.recommendations)
|
|
74
|
+
console.log(` recommendation: ${recommendation}`);
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
const codegraphInit = defineCommand({
|
|
78
|
+
meta: { name: 'init', description: 'Create .scale/code-intelligence.json provider configuration' },
|
|
79
|
+
args: {
|
|
80
|
+
dir: { type: 'string', default: PROJECT_DIR, description: 'Project directory' },
|
|
81
|
+
force: { type: 'boolean', default: false, description: 'Overwrite existing configuration' },
|
|
82
|
+
json: { type: 'boolean', default: false },
|
|
83
|
+
},
|
|
84
|
+
run({ args }) {
|
|
85
|
+
const projectDir = resolve(String(args.dir ?? PROJECT_DIR));
|
|
86
|
+
const scaleDir = resolveScaleDirForProject(projectDir);
|
|
87
|
+
const result = writeCodeIntelligenceConfig({
|
|
88
|
+
projectDir,
|
|
89
|
+
scaleDir,
|
|
90
|
+
force: isTruthyFlag(args.force),
|
|
91
|
+
});
|
|
92
|
+
if (args.json) {
|
|
93
|
+
console.log(JSON.stringify(result, null, 2));
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
console.log(`SCALE Code Intelligence Config: ${result.written ? 'written' : 'exists'}`);
|
|
97
|
+
console.log(` ${result.path}`);
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
const codegraphQuery = defineCommand({
|
|
101
|
+
meta: { name: 'query', description: 'Query code intelligence providers, with explicit fallback when graph data is unavailable' },
|
|
102
|
+
args: {
|
|
103
|
+
query: { type: 'positional', required: true, description: 'Symbol, function, class, route, or text query' },
|
|
104
|
+
dir: { type: 'string', default: PROJECT_DIR, description: 'Project directory' },
|
|
105
|
+
json: { type: 'boolean', default: false },
|
|
106
|
+
},
|
|
107
|
+
run({ args }) {
|
|
108
|
+
const projectDir = resolve(String(args.dir ?? PROJECT_DIR));
|
|
109
|
+
const scaleDir = resolveScaleDirForProject(projectDir);
|
|
110
|
+
const report = queryCodeGraph({
|
|
111
|
+
projectDir,
|
|
112
|
+
scaleDir,
|
|
113
|
+
query: String(args.query),
|
|
114
|
+
});
|
|
115
|
+
if (args.json) {
|
|
116
|
+
console.log(JSON.stringify(report, null, 2));
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
printCodeGraphReport(report);
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
const codegraphImpact = defineCommand({
|
|
123
|
+
meta: { name: 'impact', description: 'Find likely impacted files for a symbol' },
|
|
124
|
+
args: {
|
|
125
|
+
symbol: { type: 'string', required: true, description: 'Symbol to analyze' },
|
|
126
|
+
dir: { type: 'string', default: PROJECT_DIR, description: 'Project directory' },
|
|
127
|
+
json: { type: 'boolean', default: false },
|
|
128
|
+
},
|
|
129
|
+
run({ args }) {
|
|
130
|
+
const projectDir = resolve(String(args.dir ?? PROJECT_DIR));
|
|
131
|
+
const scaleDir = resolveScaleDirForProject(projectDir);
|
|
132
|
+
const report = impactCodeGraph({
|
|
133
|
+
projectDir,
|
|
134
|
+
scaleDir,
|
|
135
|
+
symbol: String(args.symbol),
|
|
136
|
+
});
|
|
137
|
+
if (args.json) {
|
|
138
|
+
console.log(JSON.stringify(report, null, 2));
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
printCodeGraphReport(report);
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
const codegraphContext = defineCommand({
|
|
145
|
+
meta: { name: 'context', description: 'Build a budgeted file context recommendation from code intelligence' },
|
|
146
|
+
args: {
|
|
147
|
+
symbol: { type: 'string', required: true, description: 'Symbol to analyze' },
|
|
148
|
+
budget: { type: 'string', description: 'Maximum estimated tokens for recommended files' },
|
|
149
|
+
dir: { type: 'string', default: PROJECT_DIR, description: 'Project directory' },
|
|
150
|
+
json: { type: 'boolean', default: false },
|
|
151
|
+
},
|
|
152
|
+
run({ args }) {
|
|
153
|
+
const projectDir = resolve(String(args.dir ?? PROJECT_DIR));
|
|
154
|
+
const scaleDir = resolveScaleDirForProject(projectDir);
|
|
155
|
+
const report = buildCodeGraphContext({
|
|
156
|
+
projectDir,
|
|
157
|
+
scaleDir,
|
|
158
|
+
symbol: String(args.symbol),
|
|
159
|
+
budget: parsePositiveIntArg(args.budget, '--budget'),
|
|
160
|
+
});
|
|
161
|
+
if (args.json) {
|
|
162
|
+
console.log(JSON.stringify(report, null, 2));
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
printCodeGraphReport(report);
|
|
166
|
+
console.log(` Context budget: ${report.totalEstimatedTokens}/${report.budget}`);
|
|
167
|
+
for (const file of report.contextFiles) {
|
|
168
|
+
console.log(` [${file.included ? 'IN' : 'OUT'}] ${file.path}: ${file.estimatedTokens} tokens`);
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
const codegraphRoi = defineCommand({
|
|
173
|
+
meta: { name: 'roi', description: 'Estimate exploration ROI from code intelligence or fallback query results' },
|
|
174
|
+
args: {
|
|
175
|
+
query: { type: 'string', description: 'Text query' },
|
|
176
|
+
symbol: { type: 'string', description: 'Symbol to analyze' },
|
|
177
|
+
dir: { type: 'string', default: PROJECT_DIR, description: 'Project directory' },
|
|
178
|
+
json: { type: 'boolean', default: false },
|
|
179
|
+
},
|
|
180
|
+
run({ args }) {
|
|
181
|
+
if (!args.query && !args.symbol)
|
|
182
|
+
throw new Error('Provide --query or --symbol.');
|
|
183
|
+
const projectDir = resolve(String(args.dir ?? PROJECT_DIR));
|
|
184
|
+
const scaleDir = resolveScaleDirForProject(projectDir);
|
|
185
|
+
const report = createCodeGraphRoiReport({
|
|
186
|
+
projectDir,
|
|
187
|
+
scaleDir,
|
|
188
|
+
query: args.query ? String(args.query) : undefined,
|
|
189
|
+
symbol: args.symbol ? String(args.symbol) : undefined,
|
|
190
|
+
});
|
|
191
|
+
if (args.json) {
|
|
192
|
+
console.log(JSON.stringify(report, null, 2));
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
console.log('SCALE Code Intelligence ROI');
|
|
196
|
+
console.log(` Query: ${report.query}`);
|
|
197
|
+
console.log(` Provider: ${report.provider ?? 'fallback'}`);
|
|
198
|
+
console.log(` Fallback: ${report.fallbackUsed}`);
|
|
199
|
+
console.log(` Graph hits: ${report.metrics.graphHits}`);
|
|
200
|
+
console.log(` Reads saved: ${report.metrics.fileReadsSaved}`);
|
|
201
|
+
console.log(` Recommendation: ${report.recommendation}`);
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
const codegraphDump = defineCommand({
|
|
205
|
+
meta: { name: 'dump', description: 'Dump full topology graph (nodes + edges) for visualization' },
|
|
206
|
+
args: {
|
|
207
|
+
dir: { type: 'string', default: PROJECT_DIR, description: 'Project directory' },
|
|
208
|
+
out: { type: 'string', description: 'Output file path (default: stdout as JSON)' },
|
|
209
|
+
},
|
|
210
|
+
run({ args }) {
|
|
211
|
+
const projectDir = resolve(String(args.dir ?? PROJECT_DIR));
|
|
212
|
+
const scaleDir = resolveScaleDirForProject(projectDir);
|
|
213
|
+
const graph = dumpCodeGraphData({ projectDir, scaleDir });
|
|
214
|
+
const json = JSON.stringify(graph, null, 2);
|
|
215
|
+
const outPath = args.out ? resolve(String(args.out)) : undefined;
|
|
216
|
+
if (outPath) {
|
|
217
|
+
mkdirSync(dirname(outPath), { recursive: true });
|
|
218
|
+
writeFileSync(outPath, json, 'utf-8');
|
|
219
|
+
console.log(`Topology written to ${outPath} (${graph.nodes.length} nodes, ${graph.edges.length} edges)`);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
console.log(json);
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
});
|
|
226
|
+
// ---------------------------------------------------------------------------
|
|
227
|
+
// Root command (exported)
|
|
228
|
+
// ---------------------------------------------------------------------------
|
|
229
|
+
export const codegraphCommand = defineCommand({
|
|
230
|
+
meta: { name: 'codegraph', description: 'Adapter-first code intelligence and exploration ROI' },
|
|
231
|
+
subCommands: {
|
|
232
|
+
status: codegraphStatus,
|
|
233
|
+
init: codegraphInit,
|
|
234
|
+
query: codegraphQuery,
|
|
235
|
+
impact: codegraphImpact,
|
|
236
|
+
context: codegraphContext,
|
|
237
|
+
roi: codegraphRoi,
|
|
238
|
+
dump: codegraphDump,
|
|
239
|
+
},
|
|
240
|
+
});
|
|
241
|
+
//# sourceMappingURL=codegraphCommands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegraphCommands.js","sourceRoot":"","sources":["../../src/cli/codegraphCommands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const contextCommand: import("citty").CommandDef<import("citty").ArgsDef>;
|