@specverse/engines 6.19.0 → 6.21.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.
@@ -1 +1 @@
1
- {"version":3,"file":"analyse-runner.d.ts","sourceRoot":"","sources":["../../src/ai/analyse-runner.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAGL,KAAK,WAAW,EAAE,KAAK,YAAY,EACpC,MAAM,gBAAgB,CAAC;AAiBxB,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,UAAU,EAAE,OAAO,GAAG,UAAU,CAAC;IACjC,aAAa,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAqCD;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8SnF"}
1
+ {"version":3,"file":"analyse-runner.d.ts","sourceRoot":"","sources":["../../src/ai/analyse-runner.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAGL,KAAK,WAAW,EAAE,KAAK,YAAY,EACpC,MAAM,gBAAgB,CAAC;AAiBxB,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,UAAU,EAAE,OAAO,GAAG,UAAU,CAAC;IACjC,aAAa,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAqCD;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6TnF"}
@@ -94,17 +94,24 @@ export async function runAnalyse(opts) {
94
94
  let methodFactsContent = '';
95
95
  // Hold raw method fact sheets for the deterministic cross-check (#32 v2).
96
96
  let methodFactSheetsRaw;
97
+ // #27-C: pre-classified candidate-step timelines are surfaced
98
+ // alongside method facts as a third structured-input stream.
99
+ let candidateStepsContent = '';
97
100
  if (opts.autoFacts && !opts.factsPath) {
98
- const { runPrepass, formatFactsAsMarkdown, formatMethodFactsAsMarkdown } = await import('./../analyse-prepass/index.js');
101
+ const { runPrepass, formatFactsAsMarkdown, formatMethodFactsAsMarkdown, formatCandidateMethodsAsMarkdown } = await import('./../analyse-prepass/index.js');
99
102
  const facts = await runPrepass(opts.sourceDir);
100
103
  factsContent = formatFactsAsMarkdown(facts);
101
104
  methodFactsContent = formatMethodFactsAsMarkdown(facts.methodFactSheets);
105
+ candidateStepsContent = formatCandidateMethodsAsMarkdown(facts.candidateMethods);
102
106
  methodFactSheetsRaw = facts.methodFactSheets;
103
107
  factsSource = `auto (${facts.meta.backend}, adapters: ${facts.meta.adaptersRun.join(', ') || 'none'})`;
104
108
  writeFileSync(join(factsDir(opts.outputDir), 'facts.md'), factsContent);
105
109
  if (methodFactsContent) {
106
110
  writeFileSync(join(factsDir(opts.outputDir), 'method-facts.md'), methodFactsContent);
107
111
  }
112
+ if (candidateStepsContent) {
113
+ writeFileSync(join(factsDir(opts.outputDir), 'candidate-steps.md'), candidateStepsContent);
114
+ }
108
115
  try {
109
116
  writeFileSync(join(factsDir(opts.outputDir), 'facts.json'), JSON.stringify(facts, null, 2));
110
117
  }
@@ -123,7 +130,15 @@ export async function runAnalyse(opts) {
123
130
  'source. Do not invent entities not in this inventory.\n\n' +
124
131
  '---BEGIN STRUCTURAL FACTS---\n' +
125
132
  factsContent.trim() + '\n' +
126
- '---END STRUCTURAL FACTS---\n\n'
133
+ '---END STRUCTURAL FACTS---\n\n' +
134
+ // #27-C: candidate-step timelines are appended when present.
135
+ // The analyse prompt knows to consume them as `behaviors[].steps[]`
136
+ // structural anchors (see analyse.prompt.yaml v9.7+).
137
+ (candidateStepsContent
138
+ ? '---BEGIN CANDIDATE BEHAVIOR STEPS---\n' +
139
+ candidateStepsContent.trim() + '\n' +
140
+ '---END CANDIDATE BEHAVIOR STEPS---\n\n'
141
+ : '')
127
142
  : '';
128
143
  // 2. Resolve model (caller may have pre-built one for session caching).
129
144
  const model = opts.model ?? resolveModel({
@@ -1 +1 @@
1
- {"version":3,"file":"analyse-runner.js","sourceRoot":"","sources":["../../src/ai/analyse-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyse-runner.js","sourceRoot":"","sources":["../../src/ai/analyse-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Behavior step classifier — turns method-body walker output into a
3
+ * structured candidate-step timeline that the analyse LLM can refine
4
+ * into spec `behaviors[].steps[]` blocks. Implements Phase 2 of #27.
5
+ *
6
+ * The classifier is a "soft oracle" (per the
7
+ * 2026-04-26-BEHAVIOR-EXTRACTION-FOR-ANALYSE.md proposal): it labels
8
+ * what the patterns clearly say and falls through to `kind: 'call'` /
9
+ * `kind: 'compute'` for unclassifiable lines. The LLM filters / merges /
10
+ * refines the output into the final spec vocabulary.
11
+ *
12
+ * Why classification matters: pre-classifier the LLM sees raw method
13
+ * bodies (200 lines, lots of boilerplate). With it, the LLM sees
14
+ * "this method does {find, validate, create, emit, return}" — a
15
+ * structured anchor it can map to spec language without inventing.
16
+ *
17
+ * Step kinds (the categorical vocabulary):
18
+ * - `find` — read a record by key (`repo.findOne`, `findOneByField`)
19
+ * - `find-many` — read a collection (`repo.find()`, `findAll()`)
20
+ * - `create` — write a new record (`repo.save(create(...))`, `insertOne`)
21
+ * - `update` — mutate an existing record (`repo.update`, `updateOneById`)
22
+ * - `delete` — remove a record (`repo.delete`, `deleteOneById`)
23
+ * - `transition` — change a lifecycle state (assignment to enum-typed field)
24
+ * - `emit` — publish an event (`eventBus.emit/publish/dispatch`)
25
+ * - `validate` — precondition guard or throw outside a guard
26
+ * - `call` — invoke a service method (not repo, not eventBus)
27
+ * - `return` — explicit return (kept for completeness; the analyse
28
+ * layer usually folds this into the behavior's
29
+ * `returns:` declaration rather than a step)
30
+ *
31
+ * Open question (deferred to next phase): merging adjacent related
32
+ * steps (`repo.create + repo.save` = one `create`). For now the
33
+ * classifier emits both — the LLM can collapse.
34
+ */
35
+ export type CandidateStepKind = 'find' | 'find-many' | 'create' | 'update' | 'delete' | 'transition' | 'emit' | 'validate' | 'call' | 'return';
36
+ export interface CandidateStep {
37
+ /** Categorical kind — see header for vocabulary. */
38
+ kind: CandidateStepKind;
39
+ /** Source position within the method body (for ordering across kinds). */
40
+ position: number;
41
+ /** Human-readable single-line summary of the step (fed to the LLM). */
42
+ summary: string;
43
+ /** For `find` / `find-many` / `create` / `update` / `delete`. */
44
+ entity?: string;
45
+ /** For `find` — the field used to look up. */
46
+ byField?: string;
47
+ /** For `transition`. */
48
+ transition?: {
49
+ field: string;
50
+ toState: string;
51
+ };
52
+ /** For `emit`. */
53
+ event?: string;
54
+ /** For `validate` — what the precondition asserts. */
55
+ precondition?: string;
56
+ /** For `call` — the receiver + method (`PaymentService.charge`). */
57
+ callTarget?: string;
58
+ }
59
+ /**
60
+ * Per-method classification result. The same shape `walkMethodBodies`
61
+ * returns, plus the `candidates` field — useful for IDE-like contexts
62
+ * that want both the raw facts AND the classified output.
63
+ */
64
+ export interface MethodCandidates {
65
+ methodName: string;
66
+ isAsync: boolean;
67
+ /** Raw body source — passed through from the walker for downstream
68
+ * cross-validation. */
69
+ body: string;
70
+ candidates: CandidateStep[];
71
+ }
72
+ /**
73
+ * Walk a class body and return per-method candidate-step timelines.
74
+ * Each method's candidates are ordered by source position so the
75
+ * timeline reflects execution order.
76
+ *
77
+ * `lifecycleField` (optional) — when known, assignments to this field
78
+ * are classified as `transition` rather than generic `call`/`update`.
79
+ * Pass it from the lifecycle-detection pass (see
80
+ * typescript-decorators.ts).
81
+ */
82
+ export declare function extractCandidateSteps(classBody: string, options?: {
83
+ lifecycleField?: string;
84
+ }): MethodCandidates[];
85
+ //# sourceMappingURL=behavior-step-classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"behavior-step-classifier.d.ts","sourceRoot":"","sources":["../../src/analyse-prepass/behavior-step-classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAIH,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,MAAM,GACN,UAAU,GACV,MAAM,GACN,QAAQ,CAAC;AAEb,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,IAAI,EAAE,iBAAiB,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAKhB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB;4BACwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACxC,gBAAgB,EAAE,CAkGpB"}
@@ -0,0 +1,266 @@
1
+ /**
2
+ * Behavior step classifier — turns method-body walker output into a
3
+ * structured candidate-step timeline that the analyse LLM can refine
4
+ * into spec `behaviors[].steps[]` blocks. Implements Phase 2 of #27.
5
+ *
6
+ * The classifier is a "soft oracle" (per the
7
+ * 2026-04-26-BEHAVIOR-EXTRACTION-FOR-ANALYSE.md proposal): it labels
8
+ * what the patterns clearly say and falls through to `kind: 'call'` /
9
+ * `kind: 'compute'` for unclassifiable lines. The LLM filters / merges /
10
+ * refines the output into the final spec vocabulary.
11
+ *
12
+ * Why classification matters: pre-classifier the LLM sees raw method
13
+ * bodies (200 lines, lots of boilerplate). With it, the LLM sees
14
+ * "this method does {find, validate, create, emit, return}" — a
15
+ * structured anchor it can map to spec language without inventing.
16
+ *
17
+ * Step kinds (the categorical vocabulary):
18
+ * - `find` — read a record by key (`repo.findOne`, `findOneByField`)
19
+ * - `find-many` — read a collection (`repo.find()`, `findAll()`)
20
+ * - `create` — write a new record (`repo.save(create(...))`, `insertOne`)
21
+ * - `update` — mutate an existing record (`repo.update`, `updateOneById`)
22
+ * - `delete` — remove a record (`repo.delete`, `deleteOneById`)
23
+ * - `transition` — change a lifecycle state (assignment to enum-typed field)
24
+ * - `emit` — publish an event (`eventBus.emit/publish/dispatch`)
25
+ * - `validate` — precondition guard or throw outside a guard
26
+ * - `call` — invoke a service method (not repo, not eventBus)
27
+ * - `return` — explicit return (kept for completeness; the analyse
28
+ * layer usually folds this into the behavior's
29
+ * `returns:` declaration rather than a step)
30
+ *
31
+ * Open question (deferred to next phase): merging adjacent related
32
+ * steps (`repo.create + repo.save` = one `create`). For now the
33
+ * classifier emits both — the LLM can collapse.
34
+ */
35
+ import { walkMethodBodies } from './method-body-walker.js';
36
+ /**
37
+ * Walk a class body and return per-method candidate-step timelines.
38
+ * Each method's candidates are ordered by source position so the
39
+ * timeline reflects execution order.
40
+ *
41
+ * `lifecycleField` (optional) — when known, assignments to this field
42
+ * are classified as `transition` rather than generic `call`/`update`.
43
+ * Pass it from the lifecycle-detection pass (see
44
+ * typescript-decorators.ts).
45
+ */
46
+ export function extractCandidateSteps(classBody, options = {}) {
47
+ const methods = walkMethodBodies(classBody);
48
+ const out = [];
49
+ for (const method of methods) {
50
+ const candidates = [];
51
+ // Each fact contributes 0 or 1 candidate steps. Push, then sort by
52
+ // position to merge across kinds.
53
+ for (const guard of method.guards) {
54
+ if (guard.throws) {
55
+ // Guard with throw = precondition.
56
+ candidates.push({
57
+ kind: 'validate',
58
+ position: guard.position,
59
+ summary: `Validate this.${guard.field} ${guard.op === '!==' || guard.op === '!=' ? '==' : '!='} ${guard.valueExpr}`,
60
+ precondition: `this.${guard.field} ${guard.op === '!==' || guard.op === '!=' ? '==' : '!='} ${guard.valueExpr}`,
61
+ });
62
+ }
63
+ }
64
+ for (const throwStmt of method.throws) {
65
+ // Top-level throws (not inside an extracted guard) are also
66
+ // preconditions, but they may be reported alongside their guard's
67
+ // throw classification above. Deduplication-by-position would be
68
+ // more correct; for the soft-oracle stance, accept some redundancy
69
+ // and let downstream merge.
70
+ candidates.push({
71
+ kind: 'validate',
72
+ position: throwStmt.position,
73
+ summary: `Throw ${throwStmt.errorClass ?? 'Error'}${throwStmt.argsExpr ? ' (' + throwStmt.argsExpr + ')' : ''}`,
74
+ precondition: throwStmt.argsExpr,
75
+ });
76
+ }
77
+ for (const assignment of method.thisAssignments) {
78
+ if (options.lifecycleField && assignment.field === options.lifecycleField && assignment.enumMember) {
79
+ candidates.push({
80
+ kind: 'transition',
81
+ position: assignment.position,
82
+ summary: `Transition this.${assignment.field} to ${assignment.enumMember}`,
83
+ transition: {
84
+ field: assignment.field,
85
+ toState: assignment.enumMember,
86
+ },
87
+ });
88
+ }
89
+ // Non-lifecycle assignments fall through (not a step on their own).
90
+ }
91
+ for (const call of method.calls) {
92
+ const classified = classifyCall(call);
93
+ if (classified) {
94
+ candidates.push({
95
+ ...classified,
96
+ position: call.position,
97
+ });
98
+ }
99
+ }
100
+ for (const ret of method.returns) {
101
+ // Skip the trivial implicit `return;` — only emit when there's a
102
+ // real value being returned (the analyse layer folds these into
103
+ // the behavior's `returns:` declaration usually).
104
+ if (ret.valueExpr) {
105
+ candidates.push({
106
+ kind: 'return',
107
+ position: ret.position,
108
+ summary: `Return ${truncate(ret.valueExpr, 80)}`,
109
+ });
110
+ }
111
+ }
112
+ candidates.sort((a, b) => a.position - b.position);
113
+ // Deduplicate exact-position pairs (a `validate` from a guard often
114
+ // co-locates with its throw inside the guard body; the throw alone
115
+ // gets reported, the guard already covered the precondition).
116
+ const deduped = [];
117
+ for (const step of candidates) {
118
+ const last = deduped[deduped.length - 1];
119
+ if (last && last.kind === 'validate' && step.kind === 'validate'
120
+ && Math.abs(last.position - step.position) < 5) {
121
+ continue;
122
+ }
123
+ deduped.push(step);
124
+ }
125
+ out.push({
126
+ methodName: method.methodName,
127
+ isAsync: method.isAsync,
128
+ body: method.body,
129
+ candidates: deduped,
130
+ });
131
+ }
132
+ return out;
133
+ }
134
+ /**
135
+ * Classify a single method call into a CandidateStep (or null if the
136
+ * call shouldn't surface as a step — e.g. utility helpers like
137
+ * `Object.assign`, `Array.from`).
138
+ *
139
+ * Soft-oracle stance: when in doubt, classify as `call` rather than
140
+ * trying to be clever. The LLM has the call shape + receiver name and
141
+ * can collapse / refine.
142
+ */
143
+ function classifyCall(call) {
144
+ const receiver = call.receiver;
145
+ const method = call.method;
146
+ const args = call.argsExpr;
147
+ // Skip JS stdlib utility invocations (no business value).
148
+ if (/^(Object|Array|JSON|Math|Date|Number|String|Boolean|RegExp)$/.test(receiver)) {
149
+ return null;
150
+ }
151
+ // EventBus / Subject-style emissions.
152
+ if (/(?:^|\.)eventBus$/i.test(receiver) && /^(emit|publish|dispatch|fire)$/i.test(method)) {
153
+ const event = parseFirstStringArg(args);
154
+ return {
155
+ kind: 'emit',
156
+ summary: event ? `Emit ${event} event` : `Emit event (${truncate(args, 60)})`,
157
+ event: event ?? undefined,
158
+ };
159
+ }
160
+ // RxJS-style: `subject.next('Foo', payload)` — heuristic, often used
161
+ // for events too. Receiver name often ends in `Subject` or contains
162
+ // `Bus` / `Stream` / `EventEmitter`.
163
+ if (/(?:Subject|Bus|Stream|Emitter)$/.test(receiver) && /^(next|emit|publish|fire|dispatch)$/i.test(method)) {
164
+ const event = parseFirstStringArg(args);
165
+ return {
166
+ kind: 'emit',
167
+ summary: event ? `Emit ${event} event` : `Emit event via ${receiver}.${method}`,
168
+ event: event ?? undefined,
169
+ };
170
+ }
171
+ // Repository-pattern reads (TypeORM `repo.findOne`, Mongo
172
+ // `getCollection().findOne`, pg `findOneByField`).
173
+ if (/^(findOne|findOneBy|findOneByOrFail|findById|getById)$/i.test(method)) {
174
+ const entity = guessEntityFromReceiver(receiver);
175
+ return {
176
+ kind: 'find',
177
+ summary: `Find ${entity ?? '?'}${args ? ' by ' + truncate(args, 40) : ''}`,
178
+ entity,
179
+ };
180
+ }
181
+ if (/^(findOneByField)$/.test(method)) {
182
+ return {
183
+ kind: 'find',
184
+ summary: `Find ${args ? truncate(args, 80) : 'record'}`,
185
+ entity: parseFirstStringArg(args) ?? undefined,
186
+ };
187
+ }
188
+ if (/^(find|findAll|findMany|all|list|search)$/i.test(method)) {
189
+ const entity = guessEntityFromReceiver(receiver);
190
+ return {
191
+ kind: 'find-many',
192
+ summary: `Find ${entity ?? 'records'}${args ? ' (' + truncate(args, 40) + ')' : ''}`,
193
+ entity,
194
+ };
195
+ }
196
+ // Repository-pattern writes.
197
+ if (/^(create|save|persist|insert|insertOne)$/i.test(method)) {
198
+ const entity = guessEntityFromReceiver(receiver) ?? parseFirstStringArg(args) ?? undefined;
199
+ return {
200
+ kind: 'create',
201
+ summary: `Create ${entity ?? 'record'}`,
202
+ entity,
203
+ };
204
+ }
205
+ if (/^(insertMany)$/i.test(method)) {
206
+ return {
207
+ kind: 'create',
208
+ summary: `Bulk create records`,
209
+ };
210
+ }
211
+ if (/^(update|updateOne|updateOneById|updateMany|patch)$/i.test(method)) {
212
+ const entity = guessEntityFromReceiver(receiver) ?? parseFirstStringArg(args) ?? undefined;
213
+ return {
214
+ kind: 'update',
215
+ summary: `Update ${entity ?? 'record'}`,
216
+ entity,
217
+ };
218
+ }
219
+ if (/^(delete|deleteOne|deleteOneById|deleteMany|remove|destroy)$/i.test(method)) {
220
+ const entity = guessEntityFromReceiver(receiver) ?? parseFirstStringArg(args) ?? undefined;
221
+ return {
222
+ kind: 'delete',
223
+ summary: `Delete ${entity ?? 'record'}`,
224
+ entity,
225
+ };
226
+ }
227
+ // Mongo native — `getCollection('name')` followed by `.findOne` etc.
228
+ // The walker reports these as separate calls; the find/create/update
229
+ // patterns above already cover the second leg.
230
+ // Anything else is a generic call (likely a service method).
231
+ return {
232
+ kind: 'call',
233
+ summary: `Call ${receiver}.${method}${args ? '(' + truncate(args, 40) + ')' : '()'}`,
234
+ callTarget: `${receiver}.${method}`,
235
+ };
236
+ }
237
+ /**
238
+ * Best-effort entity name extraction from a receiver expression.
239
+ * `this.invoiceRepo` → `Invoice`. `this.payments` → `Payment`. Returns
240
+ * undefined when no clean inference is possible.
241
+ */
242
+ function guessEntityFromReceiver(receiver) {
243
+ // Strip `this.` prefix.
244
+ const tail = receiver.replace(/^this\./, '');
245
+ // Last segment of dotted access.
246
+ const last = tail.split('.').pop() ?? tail;
247
+ // Common suffixes: Repo, Repository, Service, Bus, Manager. Strip them.
248
+ const trimmed = last.replace(/(?:Repo|Repository|Service|Bus|Manager|Store|Dao)$/i, '');
249
+ if (!trimmed)
250
+ return undefined;
251
+ // Pluralized — drop trailing s if Capitalised collection (e.g. `users` → `User`).
252
+ const singular = /^[a-z]+s$/.test(trimmed) ? trimmed.slice(0, -1) : trimmed;
253
+ // Capitalize first letter.
254
+ return singular.charAt(0).toUpperCase() + singular.slice(1);
255
+ }
256
+ /** Parse the first argument's string-literal value, if any. */
257
+ function parseFirstStringArg(args) {
258
+ const m = args.match(/^\s*['"]([^'"]+)['"]/);
259
+ return m ? m[1] : null;
260
+ }
261
+ function truncate(s, max) {
262
+ if (s.length <= max)
263
+ return s;
264
+ return s.slice(0, max - 1) + '…';
265
+ }
266
+ //# sourceMappingURL=behavior-step-classifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"behavior-step-classifier.js","sourceRoot":"","sources":["../../src/analyse-prepass/behavior-step-classifier.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ import { type BackendName } from './backends/index.js';
20
20
  import type { StructuralPrepass, MethodFactSheet } from './interface.js';
21
21
  import type { ComponentSuggestion } from './community-detection.js';
22
22
  export type { ComponentSuggestion } from './community-detection.js';
23
+ export { walkMethodBodies, type MethodBodyFacts, type ThisAssignment, type ThisGuard, type MethodCall, type ThrowStmt, type ReturnStmt, } from './method-body-walker.js';
24
+ export { extractCandidateSteps, type CandidateStep, type CandidateStepKind, type MethodCandidates, } from './behavior-step-classifier.js';
23
25
  /**
24
26
  * Normalised attribute shape — a per-adapter superset that consumers
25
27
  * can rely on regardless of which framework the source code uses. Each
@@ -109,6 +111,30 @@ export interface SpecVerseFacts {
109
111
  * external calls / async boundaries). See TODO #32.
110
112
  */
111
113
  methodFactSheets?: MethodFactSheet[];
114
+ /**
115
+ * Optional pre-classified candidate-step timelines (#27-B). For every
116
+ * detected entity class, the method-body walker + behavior-step
117
+ * classifier extract a structured list of `CandidateStep`s per method
118
+ * — kind ∈ {find, find-many, create, update, delete, transition, emit,
119
+ * validate, call, return} ordered by source position. The analyse LLM
120
+ * uses these as a structural anchor when emitting `behaviors[].steps[]`
121
+ * blocks: instead of summarizing 200 lines of code, it refines a
122
+ * 5-15 step pre-classified timeline into spec vocabulary.
123
+ *
124
+ * Populated when `extractCandidateSteps !== false` in options
125
+ * AND at least one entity was detected by the typescript-decorators
126
+ * adapter. Other adapters (typescript-prisma, future python/java)
127
+ * don't yet run the classifier — they'd need their own walker
128
+ * appropriate to the language.
129
+ */
130
+ candidateMethods?: Array<{
131
+ /** Source file the methods came from. */
132
+ filePath: string;
133
+ /** Entity class containing the methods. */
134
+ entityName: string;
135
+ /** Per-method classified timelines. */
136
+ methods: import('./behavior-step-classifier.js').MethodCandidates[];
137
+ }>;
112
138
  }
113
139
  export interface RunPrepassOptions {
114
140
  /** Backend to use; defaults to 'auto' (CodeGraph if available, else grep-only). */
@@ -129,6 +155,15 @@ export interface RunPrepassOptions {
129
155
  gatherMethodFacts?: boolean;
130
156
  /** Maximum number of method fact sheets to gather. Default 30. */
131
157
  methodFactsCap?: number;
158
+ /**
159
+ * Run the behavior-step classifier (#27-B) on every entity class
160
+ * detected by the typescript-decorators adapter. Produces
161
+ * `facts.candidateMethods[]` — pre-classified per-method timelines
162
+ * the analyse LLM can refine into spec `behaviors[].steps[]`. Default
163
+ * true. Set to false when the caller doesn't need the timelines
164
+ * (e.g. structure-only analysis, or to save time on huge codebases).
165
+ */
166
+ extractCandidateSteps?: boolean;
132
167
  }
133
168
  /**
134
169
  * Run the structural pre-pass on a source directory.
@@ -160,4 +195,25 @@ export declare function formatFactsAsMarkdown(facts: SpecVerseFacts): string;
160
195
  * TODO #32 — surfaces what `runPrepass` already computes but didn't expose.
161
196
  */
162
197
  export declare function formatMethodFactsAsMarkdown(sheets: MethodFactSheet[] | undefined): string;
198
+ /**
199
+ * Format the per-method candidate-step timelines (#27-B/C) as a
200
+ * markdown block suitable for prompt injection. Output shape:
201
+ *
202
+ * # Pre-classified candidate behavior steps
203
+ * ## EntityName (path/to/file.ts)
204
+ * ### methodName (5 candidate steps)
205
+ * 1. [find] Find Customer by { id }
206
+ * 2. [validate] Throw NotFoundException
207
+ * 3. [create] Create Invoice
208
+ * ...
209
+ *
210
+ * The analyse LLM uses this as a STRUCTURAL ANCHOR — refining the
211
+ * pre-classified timeline into spec `behaviors[].steps[]` blocks
212
+ * rather than summarizing raw method bodies.
213
+ *
214
+ * Returns the empty string when `candidateMethods` is undefined or
215
+ * empty — caller should `if (md) prompt += md` rather than
216
+ * unconditionally embed.
217
+ */
218
+ export declare function formatCandidateMethodsAsMarkdown(candidateMethods: SpecVerseFacts['candidateMethods']): string;
163
219
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyse-prepass/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyse-prepass/index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,14 @@ export { extractTypeScriptPrisma, } from './adapters/index.js';
3
3
  import { selectBackend } from './backends/index.js';
4
4
  import { extractTypeScriptPrisma } from './adapters/index.js';
5
5
  import { formatSuggestionsAsMarkdown } from './community-detection.js';
6
+ // #27-A: method-body walker — per-method facts (assignments, guards,
7
+ // calls, throws, returns) for entity classes. Foundation for behavior
8
+ // step extraction (#27-B) and lifecycle transition graphs (#28-lifecycle B).
9
+ export { walkMethodBodies, } from './method-body-walker.js';
10
+ // #27-B: behavior step classifier — turns walker output into ordered
11
+ // CandidateStep timeline that the analyse LLM refines into spec
12
+ // behaviors[].steps[] blocks.
13
+ export { extractCandidateSteps, } from './behavior-step-classifier.js';
6
14
  /**
7
15
  * Run the structural pre-pass on a source directory.
8
16
  *
@@ -104,6 +112,71 @@ export async function runPrepass(sourceDir, options = {}) {
104
112
  transitions: lc.transitions,
105
113
  });
106
114
  }
115
+ // #27-B/C: pre-classify instance methods into candidate-step
116
+ // timelines for entities + controllers + services. The analyse
117
+ // LLM consumes these as structural anchors (via
118
+ // formatCandidateMethodsAsMarkdown). Cheap relative to AI calls —
119
+ // pure regex pass per file.
120
+ if (options.extractCandidateSteps !== false) {
121
+ const { extractCandidateSteps } = await import('./behavior-step-classifier.js');
122
+ const candidateMethods = [];
123
+ const fileSourceCache = new Map();
124
+ const targets = [];
125
+ const seenTargetKeys = new Set();
126
+ const addTarget = (t) => {
127
+ const key = `${t.filePath}::${t.className}`;
128
+ if (seenTargetKeys.has(key))
129
+ return;
130
+ seenTargetKeys.add(key);
131
+ targets.push(t);
132
+ };
133
+ for (const ent of decorators.entities) {
134
+ addTarget({ className: ent.name, filePath: ent.filePath, isEntity: true });
135
+ }
136
+ try {
137
+ const allClasses = await prepass.listClasses();
138
+ for (const cls of allClasses) {
139
+ if (!cls.filePath || !cls.name)
140
+ continue;
141
+ if (/(?:Controller|Service|Handler)$/.test(cls.name)) {
142
+ addTarget({ className: cls.name, filePath: cls.filePath, isEntity: false });
143
+ }
144
+ }
145
+ }
146
+ catch { /* listClasses may fail for some backends; entity-only fallback is fine */ }
147
+ for (const target of targets) {
148
+ let source = fileSourceCache.get(target.filePath);
149
+ if (source === undefined) {
150
+ try {
151
+ source = await prepass.fileSourceText(target.filePath);
152
+ }
153
+ catch {
154
+ source = '';
155
+ }
156
+ fileSourceCache.set(target.filePath, source);
157
+ }
158
+ if (!source)
159
+ continue;
160
+ // Lifecycle field hint: only entities have detected lifecycles
161
+ // (controllers don't own state). For controllers we pass no
162
+ // hint — `this.X = Y` assignments stay as generic assignments.
163
+ const lifecycleField = target.isEntity
164
+ ? decorators.lifecycles.find((lc) => lc.model === target.className)?.field
165
+ : undefined;
166
+ const methods = extractCandidateSteps(source, lifecycleField ? { lifecycleField } : {});
167
+ const populated = methods.filter((m) => m.candidates.length > 0);
168
+ if (populated.length > 0) {
169
+ candidateMethods.push({
170
+ filePath: target.filePath,
171
+ entityName: target.className,
172
+ methods: populated,
173
+ });
174
+ }
175
+ }
176
+ if (candidateMethods.length > 0) {
177
+ facts.candidateMethods = candidateMethods;
178
+ }
179
+ }
107
180
  }
108
181
  }
109
182
  // Future framework-specific adapters slot in BEFORE the decorator
@@ -272,4 +345,61 @@ export function formatMethodFactsAsMarkdown(sheets) {
272
345
  }
273
346
  return lines.join('\n');
274
347
  }
348
+ /**
349
+ * Format the per-method candidate-step timelines (#27-B/C) as a
350
+ * markdown block suitable for prompt injection. Output shape:
351
+ *
352
+ * # Pre-classified candidate behavior steps
353
+ * ## EntityName (path/to/file.ts)
354
+ * ### methodName (5 candidate steps)
355
+ * 1. [find] Find Customer by { id }
356
+ * 2. [validate] Throw NotFoundException
357
+ * 3. [create] Create Invoice
358
+ * ...
359
+ *
360
+ * The analyse LLM uses this as a STRUCTURAL ANCHOR — refining the
361
+ * pre-classified timeline into spec `behaviors[].steps[]` blocks
362
+ * rather than summarizing raw method bodies.
363
+ *
364
+ * Returns the empty string when `candidateMethods` is undefined or
365
+ * empty — caller should `if (md) prompt += md` rather than
366
+ * unconditionally embed.
367
+ */
368
+ export function formatCandidateMethodsAsMarkdown(candidateMethods) {
369
+ if (!candidateMethods || candidateMethods.length === 0)
370
+ return '';
371
+ const lines = [];
372
+ lines.push('# Pre-classified candidate behavior steps');
373
+ lines.push('');
374
+ lines.push('Per-method timelines extracted by the deterministic walker +');
375
+ lines.push('classifier (NOT LLM judgment). Each step has a `kind` from a');
376
+ lines.push('fixed vocabulary {find, find-many, create, update, delete,');
377
+ lines.push('transition, emit, validate, call, return} and a one-line summary.');
378
+ lines.push('Use these as structural anchors when emitting `behaviors[].steps[]`:');
379
+ lines.push('');
380
+ lines.push(' - REFINE the pre-classified timeline into spec vocabulary');
381
+ lines.push(' (`[find] Find Customer by { id }` → `"Find Customer by id"`)');
382
+ lines.push(' - MERGE adjacent related steps where appropriate');
383
+ lines.push(' (`[create]` then `[create]` from `repo.create + repo.save`');
384
+ lines.push(' is one create step in spec terms)');
385
+ lines.push(' - FILTER implementation noise — `[call]` to a logger, idempotency');
386
+ lines.push(' short-circuit returns, response serialization are not steps');
387
+ lines.push(' - PRESERVE order — the timeline reflects execution order');
388
+ lines.push(' - DO NOT INVENT — if a behavior step you want to emit is not');
389
+ lines.push(' backed by a candidate here OR in the source body, drop it');
390
+ lines.push('');
391
+ for (const entry of candidateMethods) {
392
+ lines.push(`## ${entry.entityName} (${entry.filePath})`);
393
+ for (const m of entry.methods) {
394
+ lines.push('');
395
+ lines.push(`### ${m.methodName}${m.isAsync ? ' (async)' : ''} — ${m.candidates.length} candidate step${m.candidates.length === 1 ? '' : 's'}`);
396
+ m.candidates.forEach((step, idx) => {
397
+ const kind = `[${step.kind}]`.padEnd(12);
398
+ lines.push(`${idx + 1}. ${kind} ${step.summary}`);
399
+ });
400
+ }
401
+ lines.push('');
402
+ }
403
+ return lines.join('\n');
404
+ }
275
405
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analyse-prepass/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analyse-prepass/index.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,16 @@ export interface MethodBodyFacts {
44
44
  /** Explicit `return <expr>;` statements. */
45
45
  returns: ReturnStmt[];
46
46
  }
47
- export interface ThisAssignment {
47
+ /**
48
+ * Positional metadata shared by all walker outputs. `position` is the
49
+ * byte offset of the match within the method body (NOT the class body),
50
+ * so consumers can order events across the per-kind arrays into a
51
+ * single timeline. Used by `behavior-step-classifier.ts` (#27-B).
52
+ */
53
+ interface Positioned {
54
+ position: number;
55
+ }
56
+ export interface ThisAssignment extends Positioned {
48
57
  /** Field being assigned (`status` in `this.status = X`). */
49
58
  field: string;
50
59
  /** Raw RHS expression as text. */
@@ -53,7 +62,7 @@ export interface ThisAssignment {
53
62
  enumName?: string;
54
63
  enumMember?: string;
55
64
  }
56
- export interface ThisGuard {
65
+ export interface ThisGuard extends Positioned {
57
66
  field: string;
58
67
  /** Comparison operator as written in source. */
59
68
  op: '!=' | '==' | '!==' | '===';
@@ -65,7 +74,7 @@ export interface ThisGuard {
65
74
  * (the load-bearing pattern for preconditions). */
66
75
  throws: boolean;
67
76
  }
68
- export interface MethodCall {
77
+ export interface MethodCall extends Positioned {
69
78
  /** Receiver expression — `this.repo` in `this.repo.save(...)`,
70
79
  * `eventBus` in `eventBus.emit(...)`. */
71
80
  receiver: string;
@@ -76,13 +85,13 @@ export interface MethodCall {
76
85
  /** True when the call site is `await ...`. */
77
86
  isAwait: boolean;
78
87
  }
79
- export interface ThrowStmt {
88
+ export interface ThrowStmt extends Positioned {
80
89
  /** Constructor name, if `throw new X(...)`. */
81
90
  errorClass?: string;
82
91
  /** Argument text — useful as a precondition explanation. */
83
92
  argsExpr?: string;
84
93
  }
85
- export interface ReturnStmt {
94
+ export interface ReturnStmt extends Positioned {
86
95
  /** Raw return expression text (or empty for bare `return;`). */
87
96
  valueExpr: string;
88
97
  }
@@ -100,4 +109,5 @@ export interface ReturnStmt {
100
109
  * boundaries.
101
110
  */
102
111
  export declare function walkMethodBodies(classBody: string): MethodBodyFacts[];
112
+ export {};
103
113
  //# sourceMappingURL=method-body-walker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"method-body-walker.d.ts","sourceRoot":"","sources":["../../src/analyse-prepass/method-body-walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,OAAO,EAAE,OAAO,CAAC;IAEjB,2CAA2C;IAC3C,eAAe,EAAE,cAAc,EAAE,CAAC;IAElC;;6CAEyC;IACzC,MAAM,EAAE,SAAS,EAAE,CAAC;IAEpB;;;gEAG4D;IAC5D,KAAK,EAAE,UAAU,EAAE,CAAC;IAEpB,+DAA+D;IAC/D,MAAM,EAAE,SAAS,EAAE,CAAC;IAEpB,4CAA4C;IAC5C,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;IAChC,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;wDACoD;IACpD,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB;8CAC0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,CAuCrE"}
1
+ {"version":3,"file":"method-body-walker.d.ts","sourceRoot":"","sources":["../../src/analyse-prepass/method-body-walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,OAAO,EAAE,OAAO,CAAC;IAEjB,2CAA2C;IAC3C,eAAe,EAAE,cAAc,EAAE,CAAC;IAElC;;6CAEyC;IACzC,MAAM,EAAE,SAAS,EAAE,CAAC;IAEpB;;;gEAG4D;IAC5D,KAAK,EAAE,UAAU,EAAE,CAAC;IAEpB,+DAA+D;IAC/D,MAAM,EAAE,SAAS,EAAE,CAAC;IAEpB,4CAA4C;IAC5C,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;;;;GAKG;AACH,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;IAChC,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;wDACoD;IACpD,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C;8CAC0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,CAiErE"}
@@ -35,29 +35,63 @@
35
35
  */
36
36
  export function walkMethodBodies(classBody) {
37
37
  const out = [];
38
- // Find candidate method-declaration lines. Greedy match would catch
39
- // function-typed properties; we'd rather under-match than over-match.
40
- // Pattern: optional access modifier + `async`? + name + `(` + params + `):` + return + `{`
41
- // OR with no return annotation. The body is taken from the matched
42
- // `{` onward via brace-balanced scanning.
43
- const declRe = /^\s*(?:public\s+|private\s+|protected\s+)?(?:static\s+)?(async\s+)?([a-zA-Z_$][\w$]*)\s*\([^)]*\)(?:\s*:\s*[^{]+)?\s*\{/gm;
38
+ // Find candidate method-declaration lines. Decorator-style params
39
+ // like `@Param('id') id: string` carry nested parens, so a naive
40
+ // `\([^)]*\)` regex stops at the first `)` and misses the method.
41
+ // Walk the source: match the START of a declaration, then balance
42
+ // parens forward to find the param-list close, then scan to `{`.
43
+ const startRe = /^\s*(?:public\s+|private\s+|protected\s+)?(?:static\s+)?(async\s+)?([a-zA-Z_$][\w$]*)\s*\(/gm;
44
44
  let m;
45
- while ((m = declRe.exec(classBody)) !== null) {
45
+ while ((m = startRe.exec(classBody)) !== null) {
46
46
  const isAsync = !!m[1];
47
47
  const methodName = m[2];
48
48
  if (methodName === 'constructor')
49
49
  continue;
50
- // Reserved words that look like methods but aren't business logic.
51
- if (/^(if|for|while|switch|catch)$/.test(methodName))
50
+ if (/^(if|for|while|switch|catch|return|new|typeof|throw|await|async)$/.test(methodName))
52
51
  continue;
53
- // Brace-balanced scan from the matched opening `{` to find the
54
- // method body's closing `}`. Skips strings + comments to avoid
55
- // false-positive braces in literals.
56
- const bodyStart = m.index + m[0].length;
57
- const bodyEnd = findMatchingBrace(classBody, bodyStart - 1);
52
+ // Find matching close-paren for the param list (nested-paren aware).
53
+ const paramOpenIdx = m.index + m[0].length - 1; // position of `(`
54
+ const paramCloseIdx = findMatchingParen(classBody, paramOpenIdx);
55
+ if (paramCloseIdx < 0)
56
+ continue;
57
+ // After the close-paren, an optional return type annotation `: <type>`
58
+ // and then the opening `{` of the body. Skip whitespace + comments.
59
+ let i = paramCloseIdx + 1;
60
+ // Skip whitespace.
61
+ while (i < classBody.length && /\s/.test(classBody[i]))
62
+ i++;
63
+ // Skip optional return annotation (everything from `:` up to but not
64
+ // including the opening `{` — we tolerate union types, generics, etc.)
65
+ if (classBody[i] === ':') {
66
+ // Walk until we hit the first `{` at the top level (not inside
67
+ // <generic> or [array] or another type expression).
68
+ i++;
69
+ let angleDepth = 0;
70
+ let bracketDepth = 0;
71
+ while (i < classBody.length) {
72
+ const c = classBody[i];
73
+ if (c === '<')
74
+ angleDepth++;
75
+ else if (c === '>')
76
+ angleDepth--;
77
+ else if (c === '[')
78
+ bracketDepth++;
79
+ else if (c === ']')
80
+ bracketDepth--;
81
+ else if (c === '{' && angleDepth <= 0 && bracketDepth <= 0)
82
+ break;
83
+ else if (c === ';')
84
+ break; // type alias-ish — definitely not a method
85
+ i++;
86
+ }
87
+ }
88
+ if (classBody[i] !== '{')
89
+ continue;
90
+ const bodyOpenIdx = i;
91
+ const bodyEnd = findMatchingBrace(classBody, bodyOpenIdx);
58
92
  if (bodyEnd < 0)
59
93
  continue;
60
- const body = classBody.slice(bodyStart, bodyEnd);
94
+ const body = classBody.slice(bodyOpenIdx + 1, bodyEnd);
61
95
  out.push({
62
96
  methodName,
63
97
  body,
@@ -71,6 +105,73 @@ export function walkMethodBodies(classBody) {
71
105
  }
72
106
  return out;
73
107
  }
108
+ /** Find the index of the `)` matching the `(` at `openIdx`. -1 if not found.
109
+ * Same string + comment awareness as `findMatchingBrace`. */
110
+ function findMatchingParen(src, openIdx) {
111
+ let depth = 0;
112
+ let i = openIdx;
113
+ let stringChar = null;
114
+ let inLineComment = false;
115
+ let inBlockComment = false;
116
+ while (i < src.length) {
117
+ const c = src[i];
118
+ const n = src[i + 1];
119
+ if (inLineComment) {
120
+ if (c === '\n')
121
+ inLineComment = false;
122
+ i++;
123
+ continue;
124
+ }
125
+ if (inBlockComment) {
126
+ if (c === '*' && n === '/') {
127
+ inBlockComment = false;
128
+ i += 2;
129
+ continue;
130
+ }
131
+ i++;
132
+ continue;
133
+ }
134
+ if (stringChar !== null) {
135
+ if (c === '\\' && i + 1 < src.length) {
136
+ i += 2;
137
+ continue;
138
+ }
139
+ if (c === stringChar)
140
+ stringChar = null;
141
+ i++;
142
+ continue;
143
+ }
144
+ if (c === '/' && n === '/') {
145
+ inLineComment = true;
146
+ i += 2;
147
+ continue;
148
+ }
149
+ if (c === '/' && n === '*') {
150
+ inBlockComment = true;
151
+ i += 2;
152
+ continue;
153
+ }
154
+ if (c === '"' || c === "'" || c === '`') {
155
+ stringChar = c;
156
+ i++;
157
+ continue;
158
+ }
159
+ if (c === '(') {
160
+ depth++;
161
+ i++;
162
+ continue;
163
+ }
164
+ if (c === ')') {
165
+ depth--;
166
+ if (depth === 0)
167
+ return i;
168
+ i++;
169
+ continue;
170
+ }
171
+ i++;
172
+ }
173
+ return -1;
174
+ }
74
175
  /** Find the index of the `}` matching the `{` at `openIdx`. -1 if not found.
75
176
  * Tracks string literals + comments so embedded braces don't fool the count. */
76
177
  function findMatchingBrace(src, openIdx) {
@@ -221,15 +322,14 @@ function stripComments(src) {
221
322
  function extractThisAssignments(body) {
222
323
  const cleaned = stripComments(body);
223
324
  const out = [];
224
- // `this.<field> = <expr>;` (not `==` / `===` / `!==`)
225
325
  const re = /\bthis\.([a-zA-Z_$][\w$]*)\s*=(?!=)\s*([^;]+);/g;
226
326
  let m;
227
327
  while ((m = re.exec(cleaned)) !== null) {
228
328
  const field = m[1];
229
329
  const valueExpr = m[2].trim();
230
- // Recognise `EnumName.MemberName` shape on the RHS.
231
330
  const enumMatch = valueExpr.match(/^([A-Z][\w$]*)\.([A-Z][\w$]*)\b/);
232
331
  out.push({
332
+ position: m.index,
233
333
  field,
234
334
  valueExpr,
235
335
  enumName: enumMatch?.[1],
@@ -241,9 +341,6 @@ function extractThisAssignments(body) {
241
341
  function extractGuards(body) {
242
342
  const cleaned = stripComments(body);
243
343
  const out = [];
244
- // `if (this.<field> <op> <expr>)` followed by either `{ ... throw ... }`
245
- // or a single statement that may be a throw. We capture the operator,
246
- // RHS, and check whether the guard body contains `throw`.
247
344
  const re = /\bif\s*\(\s*this\.([a-zA-Z_$][\w$]*)\s*(!==|===|!=|==)\s*([^)]+?)\s*\)\s*([{][^}]*[}]|[^;{}]+;)/g;
248
345
  let m;
249
346
  while ((m = re.exec(cleaned)) !== null) {
@@ -254,6 +351,7 @@ function extractGuards(body) {
254
351
  const throws = /\bthrow\b/.test(guardBody);
255
352
  const enumMatch = valueExpr.match(/^([A-Z][\w$]*)\.([A-Z][\w$]*)\b/);
256
353
  out.push({
354
+ position: m.index,
257
355
  field,
258
356
  op,
259
357
  valueExpr,
@@ -267,19 +365,14 @@ function extractGuards(body) {
267
365
  function extractCalls(body) {
268
366
  const cleaned = stripComments(body);
269
367
  const out = [];
270
- // `[await] <receiver>.<method>(<args>)` — receiver is one or more
271
- // dot-separated identifiers (or `this`). Args are captured up to the
272
- // matching close-paren via a bounded `[^()]*` (won't survive deeply
273
- // nested parens; that's fine for soft-oracle output).
274
368
  const re = /(\bawait\s+)?((?:this|[a-zA-Z_$][\w$]*)(?:\.[a-zA-Z_$][\w$]*)*)\.([a-zA-Z_$][\w$]*)\s*\(([^()]*(?:\([^()]*\)[^()]*)*)\)/g;
275
369
  let m;
276
370
  while ((m = re.exec(cleaned)) !== null) {
277
371
  const isAwait = !!m[1];
278
372
  const receiver = m[2];
279
373
  const method = m[3];
280
- // Skip declarations like `async send(): void` that are matched as
281
- // calls — but those aren't on a receiver, so they shouldn't match.
282
374
  out.push({
375
+ position: m.index,
283
376
  receiver,
284
377
  method,
285
378
  argsExpr: m[4].trim(),
@@ -291,11 +384,11 @@ function extractCalls(body) {
291
384
  function extractThrows(body) {
292
385
  const cleaned = stripComments(body);
293
386
  const out = [];
294
- // `throw new <ClassName>(<args>)` and `throw <expression>;`
295
387
  const reNew = /\bthrow\s+new\s+([A-Z][\w$]*)\s*\(([^)]*)\)/g;
296
388
  let m;
297
389
  while ((m = reNew.exec(cleaned)) !== null) {
298
390
  out.push({
391
+ position: m.index,
299
392
  errorClass: m[1],
300
393
  argsExpr: m[2].trim() || undefined,
301
394
  });
@@ -305,11 +398,13 @@ function extractThrows(body) {
305
398
  function extractReturns(body) {
306
399
  const cleaned = stripComments(body);
307
400
  const out = [];
308
- // `return <expr>;` — bare `return;` produces empty valueExpr.
309
401
  const re = /\breturn\b\s*([^;]*);/g;
310
402
  let m;
311
403
  while ((m = re.exec(cleaned)) !== null) {
312
- out.push({ valueExpr: m[1].trim() });
404
+ out.push({
405
+ position: m.index,
406
+ valueExpr: m[1].trim(),
407
+ });
313
408
  }
314
409
  return out;
315
410
  }
@@ -1 +1 @@
1
- {"version":3,"file":"method-body-walker.js","sourceRoot":"","sources":["../../src/analyse-prepass/method-body-walker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"method-body-walker.js","sourceRoot":"","sources":["../../src/analyse-prepass/method-body-walker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specverse/engines",
3
- "version": "6.19.0",
3
+ "version": "6.21.0",
4
4
  "description": "SpecVerse toolchain — parser, inference, realize, generators, AI, registry, bundles",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",