@specverse/engines 6.27.14 → 6.29.4
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/ai/analyse-runner.d.ts +16 -0
- package/dist/ai/analyse-runner.d.ts.map +1 -1
- package/dist/ai/analyse-runner.js +119 -60
- package/dist/ai/analyse-runner.js.map +1 -1
- package/dist/ai/behaviours-runner.d.ts +49 -0
- package/dist/ai/behaviours-runner.d.ts.map +1 -0
- package/dist/ai/behaviours-runner.js +177 -0
- package/dist/ai/behaviours-runner.js.map +1 -0
- package/dist/ai/deployment-emitter.d.ts +86 -0
- package/dist/ai/deployment-emitter.d.ts.map +1 -0
- package/dist/ai/deployment-emitter.js +201 -0
- package/dist/ai/deployment-emitter.js.map +1 -0
- package/dist/ai/index.d.ts +2 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +5 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/manifest-emitter.d.ts +60 -0
- package/dist/ai/manifest-emitter.d.ts.map +1 -0
- package/dist/ai/manifest-emitter.js +126 -0
- package/dist/ai/manifest-emitter.js.map +1 -0
- package/dist/ai/skeleton-emitter.d.ts +11 -1
- package/dist/ai/skeleton-emitter.d.ts.map +1 -1
- package/dist/ai/skeleton-emitter.js +73 -2
- package/dist/ai/skeleton-emitter.js.map +1 -1
- package/dist/analyse-prepass/adapters/react-views.d.ts +59 -0
- package/dist/analyse-prepass/adapters/react-views.d.ts.map +1 -0
- package/dist/analyse-prepass/adapters/react-views.js +314 -0
- package/dist/analyse-prepass/adapters/react-views.js.map +1 -0
- package/dist/analyse-prepass/index.d.ts +15 -0
- package/dist/analyse-prepass/index.d.ts.map +1 -1
- package/dist/analyse-prepass/index.js +46 -0
- package/dist/analyse-prepass/index.js.map +1 -1
- package/dist/libs/instance-factories/cli/templates/commander/command-generator.js +51 -4
- package/libs/instance-factories/cli/templates/commander/command-generator.ts +70 -5
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"behaviours-runner.js","sourceRoot":"","sources":["../../src/ai/behaviours-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EACL,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,GAChD,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA8CnD,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;QACtD,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACzD,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA0B;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;IAC7C,aAAa,CAAC,SAAS,CAAC,CAAC;IAEzB,uEAAuE;IACvE,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,IAAI,iBAAiB,CAAC;IAChE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,wCAAwC,YAAY,IAAI;YACxD,oDAAoD,QAAQ,WAAW,CACxE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEpD,MAAM,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,0BAA0B,CAAC,CAAC;IACpF,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,wDAAwD,sBAAsB,GAAG,CAClF,CAAC;IACJ,CAAC;IACD,MAAM,kBAAkB,GAAuB,IAAI,CAAC,KAAK,CACvD,YAAY,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAC7C,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,0CAA0C,SAAS,GAAG,CACvD,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAmB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1E,uEAAuE;IACvE,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5D,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;QAC/C,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/E,yBAAyB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC;QACvC,OAAO,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE,GAAG,MAAM;QAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IAEH,uEAAuE;IACvE,MAAM,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,GAC1F,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,kBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC;IACzD,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,6BAA6B,UAAU,gCAAgC,cAAc,oBAAoB,CAAC,CAAC;IACvH,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC;QAChD,QAAQ;QACR,kBAAkB;QAClB,yBAAyB;QACzB,KAAK;QACL,cAAc;QACd,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,CAAC,GAAG,MAAM;QACrD,mEAAmE;QACnE,cAAc,EAAE,SAAS;QACzB,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,SAAS,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;YACzC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC;gBACpE,CAAC,CAAC,aAAa,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,UAAU,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,KAAK,GAAG,KAAK,OAAO,GAAG,IAAI,EAAE,CAAC,CAAC;QACpJ,CAAC;KACF,CAAC,CAAC;IAEH,oCAAoC;IACpC,aAAa,CACX,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,0BAA0B,CAAC,EACzD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CACpD,CAAC;IAEF,uEAAuE;IACvE,uEAAuE;IACvE,sEAAsE;IACtE,oEAAoE;IACpE,sEAAsE;IACtE,6CAA6C;IAC7C,IAAI,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAE/F,uEAAuE;IACvE,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC;IAChE,aAAa,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAC1C,IAAI,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAE5B,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;QACvB,IAAI,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC;QACvC,IAAI,aAAa,GAAG,eAAe,CAAC,YAAY,CAAC;QACjD,MAAM,oBAAoB,GAAG,CAAC,CAAC;QAC/B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,oBAAoB,EAAE,OAAO,EAAE,EAAE,CAAC;YACjE,MAAM,cAAc,GAAG,wBAAwB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;YAChF,IAAI,cAAc,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC/C,sDAAsD;gBACtD,MAAM;YACR,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,gBAAgB,cAAc,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC,CAAC;YACnH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC;gBACtC,QAAQ;gBACR,kBAAkB;gBAClB,yBAAyB;gBACzB,KAAK,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE;gBACtD,KAAK;gBACL,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,CAAC,GAAG,MAAM;aACtD,CAAC,CAAC;YACH,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC;YACtC,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;YAC5E,aAAa,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YAC1C,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;YAC7C,mBAAmB,EAAE,CAAC;YACtB,IAAI,cAAc,CAAC,EAAE;gBAAE,MAAM;YAC7B,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC;QACrC,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAC;IACzE,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAC;IACzE,OAAO,CAAC,GAAG,CACT,iBAAiB,SAAS,IAAI,SAAS,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QACzF,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,mBAAmB,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC,CACtF,CAAC;IAEF,OAAO;QACL,cAAc;QACd,cAAc,EAAE;YACd,SAAS;YACT,SAAS;YACT,MAAM,EAAE,SAAS,GAAG,SAAS;YAC7B,UAAU;SACX;QACD,aAAa,EAAE,cAAc;QAC7B,mBAAmB;KACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deployment-emitter — engines 6.28.0+.
|
|
3
|
+
*
|
|
4
|
+
* After the analyse pipeline assembles the final spec (skeleton + filled
|
|
5
|
+
* action bodies), this emits a deterministic `deployments:` block based
|
|
6
|
+
* on what was extracted. One production environment with one instance
|
|
7
|
+
* per detected controller / service / entity / view.
|
|
8
|
+
*
|
|
9
|
+
* Why this lives in analyse (not in `spv infer`): the inference-engine
|
|
10
|
+
* deployment rules in `entities/src/core/deployments/inference/` are
|
|
11
|
+
* for the from-scratch authoring path. They expand a minimal spec to
|
|
12
|
+
* convention defaults. Analyse is the OPPOSITE — produces a faithful
|
|
13
|
+
* mirror of the codebase. But the analysed spec WITHOUT a deployments
|
|
14
|
+
* block is incomplete in a user-visible way (Dom Williams 2026-05-06:
|
|
15
|
+
* "where does it say I'll have one of these and two of those and wire
|
|
16
|
+
* them up"). This emitter closes that gap with a minimal mechanical
|
|
17
|
+
* mapping users can hand-edit.
|
|
18
|
+
*
|
|
19
|
+
* Output shape (matches `entities/src/core/deployments/schema/`):
|
|
20
|
+
*
|
|
21
|
+
* deployments:
|
|
22
|
+
* production:
|
|
23
|
+
* version: "1.0.0"
|
|
24
|
+
* description: "Default deployment topology emitted by spv analyse..."
|
|
25
|
+
* environment: production
|
|
26
|
+
* instances:
|
|
27
|
+
* controllers:
|
|
28
|
+
* authController:
|
|
29
|
+
* component: "ComponentName"
|
|
30
|
+
* services:
|
|
31
|
+
* authService:
|
|
32
|
+
* component: "ComponentName"
|
|
33
|
+
* storage:
|
|
34
|
+
* userStorage:
|
|
35
|
+
* component: "ComponentName"
|
|
36
|
+
* type: "document"
|
|
37
|
+
* persistence: "durable"
|
|
38
|
+
* views:
|
|
39
|
+
* gamePicker:
|
|
40
|
+
* component: "ComponentName"
|
|
41
|
+
*
|
|
42
|
+
* V1 keeps it minimal: no rateLimit / cache / retry / autoscaling /
|
|
43
|
+
* resource-limits / monitoring / security / infrastructure. Those are
|
|
44
|
+
* meaningful defaults but require manifest-aware decisions; emitting
|
|
45
|
+
* them as `enabled: false` or with arbitrary defaults adds noise without
|
|
46
|
+
* value. The user can layer those in via spec edits or via `spv infer`.
|
|
47
|
+
*/
|
|
48
|
+
import type { SpecVerseFacts } from '../analyse-prepass/index.js';
|
|
49
|
+
export interface DeploymentEmissionInput {
|
|
50
|
+
/** Specverse facts produced by the prepass — entities, views, etc. */
|
|
51
|
+
facts: SpecVerseFacts;
|
|
52
|
+
/**
|
|
53
|
+
* Per-component detected classes (controllers + services). The
|
|
54
|
+
* skeleton-emitter computed these via `classesByComponent`; pass them
|
|
55
|
+
* through here so we attribute instances to the right component.
|
|
56
|
+
* The shape mirrors the analyse-runner's bookkeeping.
|
|
57
|
+
*/
|
|
58
|
+
classesByComponent: Map<string, Array<{
|
|
59
|
+
entityName: string;
|
|
60
|
+
filePath: string;
|
|
61
|
+
}>>;
|
|
62
|
+
/**
|
|
63
|
+
* Map from facts.entities[].name → owning component spec name (the
|
|
64
|
+
* skeleton-emitter computes this in `entityHome`). Used to attribute
|
|
65
|
+
* storage instances to the right component.
|
|
66
|
+
*/
|
|
67
|
+
entityHome: Map<string, string>;
|
|
68
|
+
}
|
|
69
|
+
export interface DeploymentEmissionResult {
|
|
70
|
+
/** The emitted `deployments:` yaml block (no trailing newline). */
|
|
71
|
+
deploymentsYaml: string;
|
|
72
|
+
/** Per-instance count, useful for telemetry/REPORT. */
|
|
73
|
+
counts: {
|
|
74
|
+
controllers: number;
|
|
75
|
+
services: number;
|
|
76
|
+
storage: number;
|
|
77
|
+
views: number;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Emit a deterministic `deployments:` block from extracted facts.
|
|
82
|
+
* The output is a complete top-level YAML fragment that can be appended
|
|
83
|
+
* to a spec body.
|
|
84
|
+
*/
|
|
85
|
+
export declare function emitDefaultDeployments(input: DeploymentEmissionInput): DeploymentEmissionResult;
|
|
86
|
+
//# sourceMappingURL=deployment-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-emitter.d.ts","sourceRoot":"","sources":["../../src/ai/deployment-emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,KAAK,EAAE,cAAc,CAAC;IACtB;;;;;OAKG;IACH,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjF;;;;OAIG;IACH,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAeD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,GAAG,wBAAwB,CAsI/F"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deployment-emitter — engines 6.28.0+.
|
|
3
|
+
*
|
|
4
|
+
* After the analyse pipeline assembles the final spec (skeleton + filled
|
|
5
|
+
* action bodies), this emits a deterministic `deployments:` block based
|
|
6
|
+
* on what was extracted. One production environment with one instance
|
|
7
|
+
* per detected controller / service / entity / view.
|
|
8
|
+
*
|
|
9
|
+
* Why this lives in analyse (not in `spv infer`): the inference-engine
|
|
10
|
+
* deployment rules in `entities/src/core/deployments/inference/` are
|
|
11
|
+
* for the from-scratch authoring path. They expand a minimal spec to
|
|
12
|
+
* convention defaults. Analyse is the OPPOSITE — produces a faithful
|
|
13
|
+
* mirror of the codebase. But the analysed spec WITHOUT a deployments
|
|
14
|
+
* block is incomplete in a user-visible way (Dom Williams 2026-05-06:
|
|
15
|
+
* "where does it say I'll have one of these and two of those and wire
|
|
16
|
+
* them up"). This emitter closes that gap with a minimal mechanical
|
|
17
|
+
* mapping users can hand-edit.
|
|
18
|
+
*
|
|
19
|
+
* Output shape (matches `entities/src/core/deployments/schema/`):
|
|
20
|
+
*
|
|
21
|
+
* deployments:
|
|
22
|
+
* production:
|
|
23
|
+
* version: "1.0.0"
|
|
24
|
+
* description: "Default deployment topology emitted by spv analyse..."
|
|
25
|
+
* environment: production
|
|
26
|
+
* instances:
|
|
27
|
+
* controllers:
|
|
28
|
+
* authController:
|
|
29
|
+
* component: "ComponentName"
|
|
30
|
+
* services:
|
|
31
|
+
* authService:
|
|
32
|
+
* component: "ComponentName"
|
|
33
|
+
* storage:
|
|
34
|
+
* userStorage:
|
|
35
|
+
* component: "ComponentName"
|
|
36
|
+
* type: "document"
|
|
37
|
+
* persistence: "durable"
|
|
38
|
+
* views:
|
|
39
|
+
* gamePicker:
|
|
40
|
+
* component: "ComponentName"
|
|
41
|
+
*
|
|
42
|
+
* V1 keeps it minimal: no rateLimit / cache / retry / autoscaling /
|
|
43
|
+
* resource-limits / monitoring / security / infrastructure. Those are
|
|
44
|
+
* meaningful defaults but require manifest-aware decisions; emitting
|
|
45
|
+
* them as `enabled: false` or with arbitrary defaults adds noise without
|
|
46
|
+
* value. The user can layer those in via spec edits or via `spv infer`.
|
|
47
|
+
*/
|
|
48
|
+
/**
|
|
49
|
+
* Convert a PascalCase class/entity/view name to a lowercase-first
|
|
50
|
+
* identifier suitable as a deployment-instance key.
|
|
51
|
+
* AuthController → authController
|
|
52
|
+
* GamePicker → gamePicker
|
|
53
|
+
* PaymentService → paymentService
|
|
54
|
+
* GameScreen → gameScreen
|
|
55
|
+
*/
|
|
56
|
+
function toInstanceName(pascalName) {
|
|
57
|
+
if (!pascalName)
|
|
58
|
+
return pascalName;
|
|
59
|
+
return pascalName.charAt(0).toLowerCase() + pascalName.slice(1);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Emit a deterministic `deployments:` block from extracted facts.
|
|
63
|
+
* The output is a complete top-level YAML fragment that can be appended
|
|
64
|
+
* to a spec body.
|
|
65
|
+
*/
|
|
66
|
+
export function emitDefaultDeployments(input) {
|
|
67
|
+
const { facts, classesByComponent, entityHome } = input;
|
|
68
|
+
// Buckets: component name → instances, keyed by instance name.
|
|
69
|
+
const controllers = [];
|
|
70
|
+
const services = [];
|
|
71
|
+
const storage = [];
|
|
72
|
+
const views = [];
|
|
73
|
+
// Controllers + services from per-component class lists.
|
|
74
|
+
// The skeleton-emitter splits classes into controllers (Controller suffix)
|
|
75
|
+
// vs services (everything else); replicate that here so the deployment
|
|
76
|
+
// instances match the spec's logical layout.
|
|
77
|
+
//
|
|
78
|
+
// GLOBAL dedup of instance names (engines 6.29.4+). Earlier we deduped
|
|
79
|
+
// per-component, but instance names are at the deployment-instances
|
|
80
|
+
// namespace level (top of `instances.controllers`/`instances.services`
|
|
81
|
+
// map keys), so two `GameService` classes in different components would
|
|
82
|
+
// both emit `gameService:` keys — yaml-loads as a duplicated mapping key
|
|
83
|
+
// and validate fails. First-name-wins; the loser is silently dropped
|
|
84
|
+
// (the lost class is still in its component's services block in the
|
|
85
|
+
// spec — only the deployment instance is suppressed).
|
|
86
|
+
const seenGlobalControllerNames = new Set();
|
|
87
|
+
const seenGlobalServiceNames = new Set();
|
|
88
|
+
for (const [bucketKey, classes] of classesByComponent) {
|
|
89
|
+
// Map bucket key → component spec name. The bucket keys may be
|
|
90
|
+
// `_unassigned` (catch-all) or component-suggested names. We use the
|
|
91
|
+
// entityHome map's values to find the canonical spec name; fall
|
|
92
|
+
// back to bucketKey for non-`_unassigned` keys.
|
|
93
|
+
const specName = bucketKey === '_unassigned' ? 'Application' : bucketKey;
|
|
94
|
+
for (const cls of classes) {
|
|
95
|
+
// Skip entries that are also entities — the skeleton-emitter's
|
|
96
|
+
// owner-vs-model dedup keeps only one (model wins), and we mirror
|
|
97
|
+
// that here. Otherwise we'd emit a controller instance for a
|
|
98
|
+
// model that the spec doesn't declare as a controller.
|
|
99
|
+
if (entityHome.has(cls.entityName))
|
|
100
|
+
continue;
|
|
101
|
+
const instanceName = toInstanceName(cls.entityName);
|
|
102
|
+
if (/Controller$/.test(cls.entityName)) {
|
|
103
|
+
if (seenGlobalControllerNames.has(instanceName))
|
|
104
|
+
continue;
|
|
105
|
+
seenGlobalControllerNames.add(instanceName);
|
|
106
|
+
controllers.push({ instanceName, component: specName });
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
if (seenGlobalServiceNames.has(instanceName))
|
|
110
|
+
continue;
|
|
111
|
+
seenGlobalServiceNames.add(instanceName);
|
|
112
|
+
services.push({ instanceName, component: specName });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Storage from entities — one instance per entity, attributed to its
|
|
117
|
+
// owning component.
|
|
118
|
+
const seenStorageNames = new Set();
|
|
119
|
+
for (const ent of facts.entities ?? []) {
|
|
120
|
+
const owner = entityHome.get(ent.name);
|
|
121
|
+
if (!owner)
|
|
122
|
+
continue;
|
|
123
|
+
// Convention: <entity>Storage. Matches Dom's reference loosely
|
|
124
|
+
// (`mongoUsers`-style names depend on manifest knowledge we don't
|
|
125
|
+
// have at analyse-time; `userStorage` is the manifest-agnostic shape).
|
|
126
|
+
const instanceName = `${toInstanceName(ent.name)}Storage`;
|
|
127
|
+
if (seenStorageNames.has(instanceName))
|
|
128
|
+
continue;
|
|
129
|
+
seenStorageNames.add(instanceName);
|
|
130
|
+
storage.push({ instanceName, component: owner, entityName: ent.name });
|
|
131
|
+
}
|
|
132
|
+
// Views — one instance per detected view, attributed by source-tree
|
|
133
|
+
// topology. The skeleton-emitter has already done the attribution in
|
|
134
|
+
// its component bodies; we replicate the same logic here. Without a
|
|
135
|
+
// structural sourceDir, we fall back to `Application`.
|
|
136
|
+
const seenViewNames = new Set();
|
|
137
|
+
for (const v of facts.views ?? []) {
|
|
138
|
+
const instanceName = toInstanceName(v.name);
|
|
139
|
+
if (seenViewNames.has(instanceName))
|
|
140
|
+
continue;
|
|
141
|
+
seenViewNames.add(instanceName);
|
|
142
|
+
// Find the component whose structural.sourceDir is a prefix of v.filePath.
|
|
143
|
+
let owner = 'Application';
|
|
144
|
+
for (const c of facts.suggestedComponents ?? []) {
|
|
145
|
+
const sd = c.structural?.sourceDir;
|
|
146
|
+
if (sd && v.filePath.startsWith(sd)) {
|
|
147
|
+
owner = c.suggestedName;
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
views.push({ instanceName, component: owner });
|
|
152
|
+
}
|
|
153
|
+
// Build the YAML. Indented to be appendable to a top-level spec body.
|
|
154
|
+
const lines = [];
|
|
155
|
+
lines.push('deployments:');
|
|
156
|
+
lines.push(' production:');
|
|
157
|
+
lines.push(' version: "1.0.0"');
|
|
158
|
+
lines.push(' description: "Default deployment topology emitted by `spv ai analyse`. One instance per detected controller / service / entity / view. Hand-edit policies (rateLimit, cache, retry, autoscaling) and infrastructure-specific instances (security, monitoring) as needed."');
|
|
159
|
+
lines.push(' environment: production');
|
|
160
|
+
lines.push(' instances:');
|
|
161
|
+
if (controllers.length > 0) {
|
|
162
|
+
lines.push(' controllers:');
|
|
163
|
+
for (const c of controllers) {
|
|
164
|
+
lines.push(` ${c.instanceName}:`);
|
|
165
|
+
lines.push(` component: "${c.component}"`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (services.length > 0) {
|
|
169
|
+
lines.push(' services:');
|
|
170
|
+
for (const s of services) {
|
|
171
|
+
lines.push(` ${s.instanceName}:`);
|
|
172
|
+
lines.push(` component: "${s.component}"`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (storage.length > 0) {
|
|
176
|
+
lines.push(' storage:');
|
|
177
|
+
for (const s of storage) {
|
|
178
|
+
lines.push(` ${s.instanceName}:`);
|
|
179
|
+
lines.push(` component: "${s.component}"`);
|
|
180
|
+
lines.push(' type: "document"');
|
|
181
|
+
lines.push(' persistence: "durable"');
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (views.length > 0) {
|
|
185
|
+
lines.push(' views:');
|
|
186
|
+
for (const v of views) {
|
|
187
|
+
lines.push(` ${v.instanceName}:`);
|
|
188
|
+
lines.push(` component: "${v.component}"`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
deploymentsYaml: lines.join('\n'),
|
|
193
|
+
counts: {
|
|
194
|
+
controllers: controllers.length,
|
|
195
|
+
services: services.length,
|
|
196
|
+
storage: storage.length,
|
|
197
|
+
views: views.length,
|
|
198
|
+
},
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=deployment-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-emitter.js","sourceRoot":"","sources":["../../src/ai/deployment-emitter.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/index.d.ts
CHANGED
|
@@ -37,6 +37,8 @@ export { loadPrompt, substitute, assembleSystem, assembleUser, buildRunModel, ru
|
|
|
37
37
|
export type { PromptYaml, BuildRunModelOptions, RunPromptOptions, RunPromptResult, } from './prompt-runner.js';
|
|
38
38
|
export { runAnalyse } from './analyse-runner.js';
|
|
39
39
|
export type { RunAnalyseOptions, RunAnalyseResult } from './analyse-runner.js';
|
|
40
|
+
export { runBehaviours } from './behaviours-runner.js';
|
|
41
|
+
export type { RunBehavioursOptions, RunBehavioursResult } from './behaviours-runner.js';
|
|
40
42
|
export { runCreate } from './create-runner.js';
|
|
41
43
|
export type { RunCreateOptions, RunCreateResult } from './create-runner.js';
|
|
42
44
|
export { buildRunFolder, caseRunPath, ensureSubdirs, inputDir, factsDir, promptsDir, llmOutputDir, specsDir, projectDir, writeStageSpec, writeProjectReadme, writeManifest, writeScore, writeReadme, SUBDIRS, } from './run-paths.js';
|
package/dist/ai/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,cAAc,qBAAqB,CAAC;AAIpC,cAAc,oCAAoC,CAAC;AAGnD,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAIlG,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,YAAY,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGpG,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAK3E,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC9F,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKhD,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,SAAS,EACT,WAAW,EACX,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/index.js
CHANGED
|
@@ -50,6 +50,11 @@ export { loadPrompt, substitute, assembleSystem, assembleUser, buildRunModel, ru
|
|
|
50
50
|
// source dir, runs the LLM workflow (facts → analyse → validate → verify
|
|
51
51
|
// → validate → optional realize), writes the structured run output.
|
|
52
52
|
export { runAnalyse } from './analyse-runner.js';
|
|
53
|
+
// Behaviours runner — engines 6.29.0+. The LLM-heavy second phase of the
|
|
54
|
+
// analyse/behaviours split. Reads an analysed-spec dir + facts sidecars
|
|
55
|
+
// produced by `runAnalyse({withBehaviours: false})` and fills action
|
|
56
|
+
// bodies via per-action LLM micro-calls. Used by `spv ai behaviours`.
|
|
57
|
+
export { runBehaviours } from './behaviours-runner.js';
|
|
53
58
|
// Create runner — high-level orchestrator for `spv ai create`. Takes a
|
|
54
59
|
// natural-language request, runs the LLM workflow (create → validate →
|
|
55
60
|
// verify-create → validate → optional realize), writes structured output.
|
package/dist/ai/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest-emitter — engines 6.29.0+.
|
|
3
|
+
*
|
|
4
|
+
* Deterministic replacement for the LLM-driven manifest call in the
|
|
5
|
+
* analyse pipeline. The previous `runManifestCall` shipped detected
|
|
6
|
+
* adapters + a stub `importsList` to an LLM and asked it to pattern-
|
|
7
|
+
* match-and-lookup factory names — a job that doesn't need a model.
|
|
8
|
+
* The LLM was unreliable (output had to be normalized for `specVersion`,
|
|
9
|
+
* occasionally hallucinated factory names that don't exist), and one
|
|
10
|
+
* more LLM call adds latency and cost without any decision quality the
|
|
11
|
+
* source signals don't already give us.
|
|
12
|
+
*
|
|
13
|
+
* What `analyse` knows after prepass:
|
|
14
|
+
* - `meta.adaptersRun` — which detection adapters fired
|
|
15
|
+
* - `entities[].sourceFramework` — per-entity framework signal
|
|
16
|
+
* - `views[]` — presence of React/JSX
|
|
17
|
+
*
|
|
18
|
+
* What the realize engine needs:
|
|
19
|
+
* - A mapping from logical capability names (`api.rest`, `storage.X`,
|
|
20
|
+
* `ui.framework`, `auth.jwt`) to factory names from the engines
|
|
21
|
+
* instance-factory registry.
|
|
22
|
+
*
|
|
23
|
+
* The mapping IS a lookup table. This module IS that lookup table.
|
|
24
|
+
*
|
|
25
|
+
* V1 covers the common cases observed in the corpus:
|
|
26
|
+
* - Express routing → ExpressAPI
|
|
27
|
+
* - NestJS decorators → NestJSAPI
|
|
28
|
+
* - Prisma schema → PrismaDriver
|
|
29
|
+
* - Mongoose / mongodb-native → MongoDBDriver
|
|
30
|
+
* - React Native screens → ReactNativeApp
|
|
31
|
+
* - React DOM → ReactRuntime
|
|
32
|
+
* Edge cases (drizzle, knex, raw pg without prisma, vue, svelte, etc.)
|
|
33
|
+
* fall through to defaults that the user hand-edits. Better than
|
|
34
|
+
* an LLM hallucinating a nonexistent factory name.
|
|
35
|
+
*/
|
|
36
|
+
import type { SpecVerseFacts } from '../analyse-prepass/index.js';
|
|
37
|
+
export interface ManifestEmissionInput {
|
|
38
|
+
/** Specverse facts produced by the prepass. */
|
|
39
|
+
facts: SpecVerseFacts;
|
|
40
|
+
/**
|
|
41
|
+
* Optional spec name for the `name:` field. Defaults to a generic
|
|
42
|
+
* placeholder; callers (analyse-runner) typically pass the case name.
|
|
43
|
+
*/
|
|
44
|
+
specName?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface ManifestEmissionResult {
|
|
47
|
+
/** The emitted manifest yaml — a complete document including specVersion. */
|
|
48
|
+
manifestYaml: string;
|
|
49
|
+
/** Factory choice per capability — useful for telemetry/REPORT. */
|
|
50
|
+
factoryChoices: Record<string, string>;
|
|
51
|
+
/** Per-choice rationale: which signal drove the pick. Forward-logged. */
|
|
52
|
+
rationale: Record<string, string>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Emit a deterministic manifest from prepass facts. The output is a
|
|
56
|
+
* complete top-level YAML document (with specVersion) suitable for
|
|
57
|
+
* writing to `manifests/implementation.yaml`.
|
|
58
|
+
*/
|
|
59
|
+
export declare function emitManifest(input: ManifestEmissionInput): ManifestEmissionResult;
|
|
60
|
+
//# sourceMappingURL=manifest-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-emitter.d.ts","sourceRoot":"","sources":["../../src/ai/manifest-emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,KAAK,EAAE,cAAc,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAwFjF"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest-emitter — engines 6.29.0+.
|
|
3
|
+
*
|
|
4
|
+
* Deterministic replacement for the LLM-driven manifest call in the
|
|
5
|
+
* analyse pipeline. The previous `runManifestCall` shipped detected
|
|
6
|
+
* adapters + a stub `importsList` to an LLM and asked it to pattern-
|
|
7
|
+
* match-and-lookup factory names — a job that doesn't need a model.
|
|
8
|
+
* The LLM was unreliable (output had to be normalized for `specVersion`,
|
|
9
|
+
* occasionally hallucinated factory names that don't exist), and one
|
|
10
|
+
* more LLM call adds latency and cost without any decision quality the
|
|
11
|
+
* source signals don't already give us.
|
|
12
|
+
*
|
|
13
|
+
* What `analyse` knows after prepass:
|
|
14
|
+
* - `meta.adaptersRun` — which detection adapters fired
|
|
15
|
+
* - `entities[].sourceFramework` — per-entity framework signal
|
|
16
|
+
* - `views[]` — presence of React/JSX
|
|
17
|
+
*
|
|
18
|
+
* What the realize engine needs:
|
|
19
|
+
* - A mapping from logical capability names (`api.rest`, `storage.X`,
|
|
20
|
+
* `ui.framework`, `auth.jwt`) to factory names from the engines
|
|
21
|
+
* instance-factory registry.
|
|
22
|
+
*
|
|
23
|
+
* The mapping IS a lookup table. This module IS that lookup table.
|
|
24
|
+
*
|
|
25
|
+
* V1 covers the common cases observed in the corpus:
|
|
26
|
+
* - Express routing → ExpressAPI
|
|
27
|
+
* - NestJS decorators → NestJSAPI
|
|
28
|
+
* - Prisma schema → PrismaDriver
|
|
29
|
+
* - Mongoose / mongodb-native → MongoDBDriver
|
|
30
|
+
* - React Native screens → ReactNativeApp
|
|
31
|
+
* - React DOM → ReactRuntime
|
|
32
|
+
* Edge cases (drizzle, knex, raw pg without prisma, vue, svelte, etc.)
|
|
33
|
+
* fall through to defaults that the user hand-edits. Better than
|
|
34
|
+
* an LLM hallucinating a nonexistent factory name.
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* Emit a deterministic manifest from prepass facts. The output is a
|
|
38
|
+
* complete top-level YAML document (with specVersion) suitable for
|
|
39
|
+
* writing to `manifests/implementation.yaml`.
|
|
40
|
+
*/
|
|
41
|
+
export function emitManifest(input) {
|
|
42
|
+
const adapters = new Set(input.facts.meta?.adaptersRun ?? []);
|
|
43
|
+
const entities = input.facts.entities ?? [];
|
|
44
|
+
const views = input.facts.views ?? [];
|
|
45
|
+
const choices = {};
|
|
46
|
+
const rationale = {};
|
|
47
|
+
// ── api.rest — HTTP framework ─────────────────────────────────────
|
|
48
|
+
if (adapters.has('express-routes')) {
|
|
49
|
+
choices['api.rest'] = 'ExpressAPI';
|
|
50
|
+
rationale['api.rest'] = 'express-routes adapter detected Router() + verb calls';
|
|
51
|
+
}
|
|
52
|
+
else if (adapters.has('typescript-decorators')) {
|
|
53
|
+
// Decorator-rich codebases are most likely NestJS in our corpus.
|
|
54
|
+
// (TypeORM-only entities with no controller decorators wouldn't run
|
|
55
|
+
// this path, but if they did, NestJSAPI is still a reasonable default
|
|
56
|
+
// since it ships off NestJS conventions.)
|
|
57
|
+
choices['api.rest'] = 'NestJSAPI';
|
|
58
|
+
rationale['api.rest'] = 'typescript-decorators adapter — NestJS is the dominant decorator-based REST framework in the corpus';
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// Default — most analyse targets are HTTP services. Express is the
|
|
62
|
+
// most common low-friction choice.
|
|
63
|
+
choices['api.rest'] = 'ExpressAPI';
|
|
64
|
+
rationale['api.rest'] = 'no framework signal detected; defaulting to ExpressAPI (most common in the corpus)';
|
|
65
|
+
}
|
|
66
|
+
// ── storage — relational vs document ──────────────────────────────
|
|
67
|
+
if (adapters.has('typescript-prisma')) {
|
|
68
|
+
choices['storage.relational'] = 'PrismaDriver';
|
|
69
|
+
rationale['storage.relational'] = 'typescript-prisma adapter detected schema.prisma';
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// Without a Prisma signal, document storage is the analyse-time
|
|
73
|
+
// default. Codebases extracted via TS interfaces typically use
|
|
74
|
+
// mongoose / mongodb-native. The user can hand-edit to PostgresNativeDriver
|
|
75
|
+
// or others if the actual storage differs.
|
|
76
|
+
choices['storage.documents'] = 'MongoDBDriver';
|
|
77
|
+
rationale['storage.documents'] = 'no prisma schema detected; defaulting to document-store (MongoDBDriver)';
|
|
78
|
+
}
|
|
79
|
+
// ── ui.framework — React vs React Native vs none ──────────────────
|
|
80
|
+
if (adapters.has('react-views')) {
|
|
81
|
+
// RN signal: any view file path contains `react-native` or has
|
|
82
|
+
// `Screen` in the name (the screen convention).
|
|
83
|
+
const isReactNative = views.some((v) => v.filePath.includes('react-native') || v.filePath.includes('-mobile') || v.isScreen);
|
|
84
|
+
if (isReactNative) {
|
|
85
|
+
choices['ui.framework'] = 'ReactNativeApp';
|
|
86
|
+
rationale['ui.framework'] = 'react-views adapter detected RN screens or mobile-app structure';
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
choices['ui.framework'] = 'ReactRuntime';
|
|
90
|
+
rationale['ui.framework'] = 'react-views adapter detected JSX components without RN signals';
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// ── auth.jwt — JWT auth presence ──────────────────────────────────
|
|
94
|
+
// Heuristic: any RefreshToken or AuthService entity → JWT path.
|
|
95
|
+
// This is a weak signal but better than asking an LLM to guess.
|
|
96
|
+
const entityNames = new Set(entities.map((e) => e.name.toLowerCase()));
|
|
97
|
+
const hasJwtSignal = entityNames.has('refreshtoken')
|
|
98
|
+
|| entityNames.has('authsession')
|
|
99
|
+
|| entityNames.has('authservice')
|
|
100
|
+
|| entityNames.has('apitoken');
|
|
101
|
+
if (hasJwtSignal) {
|
|
102
|
+
// JWT auth in idle-meta-style monorepos uses jsonwebtoken with
|
|
103
|
+
// express middleware. The api.rest factory (ExpressAPI / NestJSAPI)
|
|
104
|
+
// also handles auth.jwt by default. We still emit the mapping so
|
|
105
|
+
// the realize engine doesn't have to guess.
|
|
106
|
+
choices['auth.jwt'] = choices['api.rest'] ?? 'ExpressAPI';
|
|
107
|
+
rationale['auth.jwt'] = 'detected RefreshToken/AuthSession entity — using api.rest factory for JWT path';
|
|
108
|
+
}
|
|
109
|
+
// Build the yaml document.
|
|
110
|
+
const lines = [];
|
|
111
|
+
lines.push('specVersion: "1.0"');
|
|
112
|
+
lines.push(`name: ${input.specName ?? 'AnalysedSpec'}`);
|
|
113
|
+
lines.push('');
|
|
114
|
+
lines.push('capabilityMappings:');
|
|
115
|
+
// Stable ordering — sort keys for reproducibility.
|
|
116
|
+
for (const cap of Object.keys(choices).sort()) {
|
|
117
|
+
lines.push(` ${cap}: ${choices[cap]}`);
|
|
118
|
+
}
|
|
119
|
+
lines.push('');
|
|
120
|
+
return {
|
|
121
|
+
manifestYaml: lines.join('\n'),
|
|
122
|
+
factoryChoices: choices,
|
|
123
|
+
rationale,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=manifest-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-emitter.js","sourceRoot":"","sources":["../../src/ai/manifest-emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ export interface SkeletonEmissionDecision {
|
|
|
34
34
|
/** Free-form note for human readers. */
|
|
35
35
|
note?: string;
|
|
36
36
|
}
|
|
37
|
-
export type SkeletonEmissionRule = 'header-component-from-suggested' | 'header-component-default-when-none-suggested' | 'model-from-detected-entity' | 'model-attribute-from-detected-attribute' | 'model-relationship-from-detected-relationship' | 'model-lifecycle-from-detected-lifecycle' | 'model-lifecycle-transition-from-detected-transition' | 'controller-from-walked-class' | 'service-from-walked-class' | 'cured-op-from-level1-curved-method' | 'action-stub-from-business-method' | 'event-from-detected-emit' | 'comment-skeleton-marker';
|
|
37
|
+
export type SkeletonEmissionRule = 'header-component-from-suggested' | 'header-component-default-when-none-suggested' | 'model-from-detected-entity' | 'model-attribute-from-detected-attribute' | 'model-relationship-from-detected-relationship' | 'model-lifecycle-from-detected-lifecycle' | 'model-lifecycle-transition-from-detected-transition' | 'controller-from-walked-class' | 'service-from-walked-class' | 'cured-op-from-level1-curved-method' | 'action-stub-from-business-method' | 'event-from-detected-emit' | 'view-from-react-component' | 'view-description-from-react-kind' | 'comment-skeleton-marker';
|
|
38
38
|
export interface SkeletonProvenance {
|
|
39
39
|
schemaVersion: '1.0';
|
|
40
40
|
/** When the skeleton was emitted (ISO timestamp). */
|
|
@@ -90,5 +90,15 @@ export interface SkeletonProvenance {
|
|
|
90
90
|
export declare function emitFaithfulSkeleton(facts: SpecVerseFacts): {
|
|
91
91
|
skeleton: string;
|
|
92
92
|
provenance: SkeletonProvenance;
|
|
93
|
+
/**
|
|
94
|
+
* Side products from skeleton emission that downstream emitters
|
|
95
|
+
* (deployment-emitter, future enhance pass) can reuse instead of
|
|
96
|
+
* recomputing the attribution logic. Returned at engines 6.28.0+.
|
|
97
|
+
*/
|
|
98
|
+
classesByComponent: Map<string, Array<{
|
|
99
|
+
entityName: string;
|
|
100
|
+
filePath: string;
|
|
101
|
+
}>>;
|
|
102
|
+
entityHome: Map<string, string>;
|
|
93
103
|
};
|
|
94
104
|
//# sourceMappingURL=skeleton-emitter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton-emitter.d.ts","sourceRoot":"","sources":["../../src/ai/skeleton-emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,WAAW,wBAAwB;IACvC,mEAAmE;IACnE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,IAAI,EAAE,oBAAoB,CAAC;IAC3B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,cAAc,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IACnE,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,oBAAoB,GAC5B,iCAAiC,GACjC,8CAA8C,GAC9C,4BAA4B,GAC5B,yCAAyC,GACzC,+CAA+C,GAC/C,yCAAyC,GACzC,qDAAqD,GACrD,8BAA8B,GAC9B,2BAA2B,GAC3B,oCAAoC,GACpC,kCAAkC,GAClC,0BAA0B,GAC1B,yBAAyB,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,KAAK,CAAC;IACrB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,mDAAmD;IACnD,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC;;sDAEkD;IAClD,WAAW,EAAE,KAAK,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,YAAY,GAAG,SAAS,CAAC;QACpC,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC;QAClE,sEAAsE;QACtE,kBAAkB,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/D,4EAA4E;QAC5E,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,KAAK,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,mBAAmB,GAAG,UAAU,CAAC;QACzC,6BAA6B,CAAC,EAAE,MAAM,CAAC;KACxC,CAAC,CAAC;CACJ;AAmID;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"skeleton-emitter.d.ts","sourceRoot":"","sources":["../../src/ai/skeleton-emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,WAAW,wBAAwB;IACvC,mEAAmE;IACnE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,IAAI,EAAE,oBAAoB,CAAC;IAC3B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,cAAc,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IACnE,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,oBAAoB,GAC5B,iCAAiC,GACjC,8CAA8C,GAC9C,4BAA4B,GAC5B,yCAAyC,GACzC,+CAA+C,GAC/C,yCAAyC,GACzC,qDAAqD,GACrD,8BAA8B,GAC9B,2BAA2B,GAC3B,oCAAoC,GACpC,kCAAkC,GAClC,0BAA0B,GAC1B,2BAA2B,GAC3B,kCAAkC,GAClC,yBAAyB,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,KAAK,CAAC;IACrB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,mDAAmD;IACnD,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC;;sDAEkD;IAClD,WAAW,EAAE,KAAK,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,YAAY,GAAG,SAAS,CAAC;QACpC,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC;QAClE,sEAAsE;QACtE,kBAAkB,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/D,4EAA4E;QAC5E,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,KAAK,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,mBAAmB,GAAG,UAAU,CAAC;QACzC,6BAA6B,CAAC,EAAE,MAAM,CAAC;KACxC,CAAC,CAAC;CACJ;AAmID;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,kBAAkB,CAAC;IAC/B;;;;OAIG;IACH,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjF,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAkHA"}
|