@specverse/engines 6.42.3 → 6.60.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/ai/analyse-runner.d.ts.map +1 -1
  2. package/dist/ai/analyse-runner.js +53 -1
  3. package/dist/ai/analyse-runner.js.map +1 -1
  4. package/dist/ai/prompt-runner.d.ts +39 -1
  5. package/dist/ai/prompt-runner.d.ts.map +1 -1
  6. package/dist/ai/prompt-runner.js +44 -3
  7. package/dist/ai/prompt-runner.js.map +1 -1
  8. package/dist/ai/providers/claude-cli.d.ts.map +1 -1
  9. package/dist/ai/providers/claude-cli.js +8 -1
  10. package/dist/ai/providers/claude-cli.js.map +1 -1
  11. package/dist/ai/skill-loader.d.ts +50 -0
  12. package/dist/ai/skill-loader.d.ts.map +1 -0
  13. package/dist/ai/skill-loader.js +96 -0
  14. package/dist/ai/skill-loader.js.map +1 -0
  15. package/dist/analyse-prepass/adapters/index.d.ts +2 -0
  16. package/dist/analyse-prepass/adapters/index.d.ts.map +1 -1
  17. package/dist/analyse-prepass/adapters/index.js +2 -0
  18. package/dist/analyse-prepass/adapters/index.js.map +1 -1
  19. package/dist/analyse-prepass/adapters/module-functions.d.ts +95 -0
  20. package/dist/analyse-prepass/adapters/module-functions.d.ts.map +1 -0
  21. package/dist/analyse-prepass/adapters/module-functions.js +358 -0
  22. package/dist/analyse-prepass/adapters/module-functions.js.map +1 -0
  23. package/dist/analyse-prepass/adapters/naming-convention-fks.d.ts +90 -0
  24. package/dist/analyse-prepass/adapters/naming-convention-fks.d.ts.map +1 -0
  25. package/dist/analyse-prepass/adapters/naming-convention-fks.js +181 -0
  26. package/dist/analyse-prepass/adapters/naming-convention-fks.js.map +1 -0
  27. package/dist/analyse-prepass/index.d.ts +8 -0
  28. package/dist/analyse-prepass/index.d.ts.map +1 -1
  29. package/dist/analyse-prepass/index.js +130 -0
  30. package/dist/analyse-prepass/index.js.map +1 -1
  31. package/dist/libs/instance-factories/cli/templates/commander/cli-entry-generator.js +11 -12
  32. package/dist/libs/instance-factories/cli/templates/commander/command-generator.js +2 -2
  33. package/dist/libs/instance-factories/controllers/templates/fastify/routes-generator.js +29 -10
  34. package/dist/libs/instance-factories/services/templates/prisma/ai-behaviors-generator.js +10 -9
  35. package/dist/libs/instance-factories/services/templates/prisma/behavior-generator.js +24 -2
  36. package/dist/libs/instance-factories/services/templates/prisma/controller-generator.js +28 -20
  37. package/dist/normalise/index.d.ts +14 -0
  38. package/dist/normalise/index.d.ts.map +1 -0
  39. package/dist/normalise/index.js +14 -0
  40. package/dist/normalise/index.js.map +1 -0
  41. package/dist/normalise/load-overrides.d.ts +43 -0
  42. package/dist/normalise/load-overrides.d.ts.map +1 -0
  43. package/dist/normalise/load-overrides.js +121 -0
  44. package/dist/normalise/load-overrides.js.map +1 -0
  45. package/dist/normalise/normalise-rules.d.ts +181 -0
  46. package/dist/normalise/normalise-rules.d.ts.map +1 -0
  47. package/dist/normalise/normalise-rules.js +79 -0
  48. package/dist/normalise/normalise-rules.js.map +1 -0
  49. package/dist/normalise/rules/cluster-module-functions.d.ts +31 -0
  50. package/dist/normalise/rules/cluster-module-functions.d.ts.map +1 -0
  51. package/dist/normalise/rules/cluster-module-functions.js +238 -0
  52. package/dist/normalise/rules/cluster-module-functions.js.map +1 -0
  53. package/dist/normalise/rules/crud-into-curved.d.ts +117 -0
  54. package/dist/normalise/rules/crud-into-curved.d.ts.map +1 -0
  55. package/dist/normalise/rules/crud-into-curved.js +303 -0
  56. package/dist/normalise/rules/crud-into-curved.js.map +1 -0
  57. package/dist/normalise/rules/drop-trivial-passthrough.d.ts +92 -0
  58. package/dist/normalise/rules/drop-trivial-passthrough.d.ts.map +1 -0
  59. package/dist/normalise/rules/drop-trivial-passthrough.js +217 -0
  60. package/dist/normalise/rules/drop-trivial-passthrough.js.map +1 -0
  61. package/dist/normalise/runner.d.ts +58 -0
  62. package/dist/normalise/runner.d.ts.map +1 -0
  63. package/dist/normalise/runner.js +114 -0
  64. package/dist/normalise/runner.js.map +1 -0
  65. package/dist/parser/import-resolver/resolver.js +1 -1
  66. package/dist/parser/import-resolver/resolver.js.map +1 -1
  67. package/dist/realize/engines/typescript-engine.js +1 -1
  68. package/dist/realize/engines/typescript-engine.js.map +1 -1
  69. package/dist/realize/index.d.ts.map +1 -1
  70. package/dist/realize/index.js +221 -88
  71. package/dist/realize/index.js.map +1 -1
  72. package/dist/realize/library/library.js +1 -1
  73. package/dist/realize/library/library.js.map +1 -1
  74. package/dist/realize/library/resolver.d.ts.map +1 -1
  75. package/dist/realize/library/resolver.js +14 -1
  76. package/dist/realize/library/resolver.js.map +1 -1
  77. package/dist/realize/owner-emit-shared.d.ts +114 -0
  78. package/dist/realize/owner-emit-shared.d.ts.map +1 -0
  79. package/dist/realize/owner-emit-shared.js +227 -0
  80. package/dist/realize/owner-emit-shared.js.map +1 -0
  81. package/dist/realize/per-action-recovery.d.ts +74 -0
  82. package/dist/realize/per-action-recovery.d.ts.map +1 -0
  83. package/dist/realize/per-action-recovery.js +268 -0
  84. package/dist/realize/per-action-recovery.js.map +1 -0
  85. package/dist/realize/per-owner-emit.d.ts +7 -58
  86. package/dist/realize/per-owner-emit.d.ts.map +1 -1
  87. package/dist/realize/per-owner-emit.js +67 -215
  88. package/dist/realize/per-owner-emit.js.map +1 -1
  89. package/dist/realize/per-owner-runner.d.ts +24 -4
  90. package/dist/realize/per-owner-runner.d.ts.map +1 -1
  91. package/dist/realize/per-owner-runner.js +77 -19
  92. package/dist/realize/per-owner-runner.js.map +1 -1
  93. package/dist/realize/post-emit-verify/diagnostics.d.ts +107 -0
  94. package/dist/realize/post-emit-verify/diagnostics.d.ts.map +1 -0
  95. package/dist/realize/post-emit-verify/diagnostics.js +148 -0
  96. package/dist/realize/post-emit-verify/diagnostics.js.map +1 -0
  97. package/dist/realize/post-emit-verify/feedback-runner.d.ts +123 -0
  98. package/dist/realize/post-emit-verify/feedback-runner.d.ts.map +1 -0
  99. package/dist/realize/post-emit-verify/feedback-runner.js +232 -0
  100. package/dist/realize/post-emit-verify/feedback-runner.js.map +1 -0
  101. package/dist/realize/post-emit-verify/index.d.ts +19 -0
  102. package/dist/realize/post-emit-verify/index.d.ts.map +1 -0
  103. package/dist/realize/post-emit-verify/index.js +18 -0
  104. package/dist/realize/post-emit-verify/index.js.map +1 -0
  105. package/dist/realize/post-emit-verify/reemit.d.ts +82 -0
  106. package/dist/realize/post-emit-verify/reemit.d.ts.map +1 -0
  107. package/dist/realize/post-emit-verify/reemit.js +124 -0
  108. package/dist/realize/post-emit-verify/reemit.js.map +1 -0
  109. package/dist/realize/post-emit-verify/types.d.ts +187 -0
  110. package/dist/realize/post-emit-verify/types.d.ts.map +1 -0
  111. package/dist/realize/post-emit-verify/types.js +28 -0
  112. package/dist/realize/post-emit-verify/types.js.map +1 -0
  113. package/dist/realize/post-emit-verify/verifier-manifest.d.ts +29 -0
  114. package/dist/realize/post-emit-verify/verifier-manifest.d.ts.map +1 -0
  115. package/dist/realize/post-emit-verify/verifier-manifest.js +57 -0
  116. package/dist/realize/post-emit-verify/verifier-manifest.js.map +1 -0
  117. package/dist/realize/post-emit-verify/verifiers/stub-completeness.d.ts +85 -0
  118. package/dist/realize/post-emit-verify/verifiers/stub-completeness.d.ts.map +1 -0
  119. package/dist/realize/post-emit-verify/verifiers/stub-completeness.js +298 -0
  120. package/dist/realize/post-emit-verify/verifiers/stub-completeness.js.map +1 -0
  121. package/dist/realize/post-emit-verify/verifiers/tsc.d.ts +24 -0
  122. package/dist/realize/post-emit-verify/verifiers/tsc.d.ts.map +1 -0
  123. package/dist/realize/post-emit-verify/verifiers/tsc.js +148 -0
  124. package/dist/realize/post-emit-verify/verifiers/tsc.js.map +1 -0
  125. package/dist/realize/realize-context-snapshot.d.ts +70 -0
  126. package/dist/realize/realize-context-snapshot.d.ts.map +1 -0
  127. package/dist/realize/realize-context-snapshot.js +96 -0
  128. package/dist/realize/realize-context-snapshot.js.map +1 -0
  129. package/dist/realize/realize-rules.d.ts +113 -0
  130. package/dist/realize/realize-rules.d.ts.map +1 -0
  131. package/dist/realize/realize-rules.js +271 -0
  132. package/dist/realize/realize-rules.js.map +1 -0
  133. package/dist/realize/structural-validator.d.ts +36 -2
  134. package/dist/realize/structural-validator.d.ts.map +1 -1
  135. package/dist/realize/structural-validator.js +50 -7
  136. package/dist/realize/structural-validator.js.map +1 -1
  137. package/libs/instance-factories/cli/templates/commander/cli-entry-generator.ts +11 -12
  138. package/libs/instance-factories/cli/templates/commander/command-generator.ts +2 -2
  139. package/libs/instance-factories/controllers/templates/fastify/routes-generator.ts +49 -15
  140. package/libs/instance-factories/services/templates/prisma/ai-behaviors-generator.ts +19 -3
  141. package/libs/instance-factories/services/templates/prisma/behavior-generator.ts +62 -2
  142. package/libs/instance-factories/services/templates/prisma/controller-generator.ts +47 -20
  143. package/package.json +9 -1
@@ -0,0 +1,268 @@
1
+ /**
2
+ * Per-action recovery tier — Phase 5a of
3
+ * `2026-05-14-PER-ACTION-RECOVERY-TIER.md`.
4
+ *
5
+ * The realize per-owner runner has three tiers:
6
+ *
7
+ * Tier 1 — whole-owner emit (`per-owner-emit.ts`). One LLM call emits
8
+ * the entire `<Owner>.ai.ts`. Works for the easy majority.
9
+ * Tier 2 — THIS MODULE. When Tier 1 fails (structural-preservation
10
+ * reject, parse failure, LLM decline), instead of dropping
11
+ * straight to a γ-stub file, retry the owner ACTION-BY-ACTION
12
+ * — but with the FULL owner context in every call.
13
+ * Tier 3 — γ-stub placeholder file (`renderFallbackPlaceholderFile`
14
+ * in `per-owner-runner.ts`). Only reached if Tier 2 produced
15
+ * ZERO real bodies.
16
+ *
17
+ * "Wide context, narrow output" — the distinction from the abandoned
18
+ * Realize L3 per-action emit: L3 gave the LLM NARROW context (one
19
+ * action's steps, no class shell, no capabilities) and it starved
20
+ * (29/94 actions came back as throw-stubs). This keeps the FULL owner
21
+ * context — every action's [PRE-BAKED] scaffolding, the target runtime,
22
+ * manifest capabilities, V2 clients, cross-service operation surface —
23
+ * in every per-action call, and only narrows the OUTPUT to one function
24
+ * body. The reasoning load per call drops (the model holds one function
25
+ * in its head, not all of them) without re-introducing context
26
+ * starvation.
27
+ *
28
+ * Motivation (Phase 3 trial, 2026-05-14): the quant-fidelity gap between
29
+ * Ollama (Q4 GGUF) and MarrBox (FP8) — SAME model, Qwen3-Coder-30B-A3B
30
+ * — localized to the single hardest owner (`ReactiveStateEngine`, 7
31
+ * interrelated functions). The Mac Mini's 24GB RAM structurally pins it
32
+ * at ~Q4 (Q6/Q8 don't fit), so "run a better quant" is closed. This
33
+ * makes the TASK easier instead.
34
+ *
35
+ * Phase 5a scope: declaration-order emission, full owner SCAFFOLDING
36
+ * context per call. Phase 5b adds dependency-ordered emission +
37
+ * already-emitted siblings shown as concrete code. Phase 5c adds the
38
+ * action-count cap telemetry.
39
+ */
40
+ import { generateText } from 'ai';
41
+ import { assembleSystemWithSkills } from '../ai/prompt-runner.js';
42
+ import { resolveProviderId } from '../ai/model-resolver.js';
43
+ import { buildPerActionScaffolding, } from './per-owner-emit.js';
44
+ import { validateLlmOutputPreservesConventions, DEFAULT_STRUCTURAL_DROP_THRESHOLD, } from './structural-validator.js';
45
+ import { extractTypescriptBlock } from './owner-emit-shared.js';
46
+ /** Reserved words that can't appear as `export async function <name>`.
47
+ * Mirrors `per-owner-runner.ts`'s TS_RESERVED_WORDS — kept local to
48
+ * avoid a cross-module dependency for a 5a-scoped concern; a future
49
+ * cleanup could hoist both to `owner-emit-shared.ts`. */
50
+ const TS_RESERVED_WORDS = new Set([
51
+ 'delete', 'class', 'function', 'return', 'void', 'typeof',
52
+ 'instanceof', 'new', 'this', 'throw', 'try', 'catch', 'finally',
53
+ 'if', 'else', 'for', 'while', 'do', 'switch', 'case', 'break',
54
+ 'continue', 'default', 'var', 'let', 'const', 'in', 'of',
55
+ 'async', 'await', 'yield', 'export', 'import', 'from',
56
+ 'true', 'false', 'null', 'undefined', 'static', 'public',
57
+ 'private', 'protected', 'interface', 'type', 'enum', 'extends',
58
+ 'implements', 'super',
59
+ ]);
60
+ /**
61
+ * Render a γ-stub for a single action whose per-action recovery emit
62
+ * failed. The error string says "per-action recovery fell back" — the
63
+ * stub-completeness verifier's GAMMA_FALLBACK_RE matches this (STUB001,
64
+ * auto-reemit-eligible), distinct from an LLM's own "not implemented"
65
+ * throw (STUB002, surface-spec-gap). Reserved-word action names get the
66
+ * re-export-rename treatment so the file still parses.
67
+ */
68
+ function renderActionGammaStub(actionName) {
69
+ const body = ` throw new Error("${actionName}: not implemented (per-action recovery fell back)");`;
70
+ if (TS_RESERVED_WORDS.has(actionName)) {
71
+ const safe = `${actionName}_`;
72
+ return (`/** Placeholder — per-action recovery failed for ${actionName}. */\n` +
73
+ `async function ${safe}(_input: any): Promise<any> {\n${body}\n}\n` +
74
+ `export { ${safe} as ${actionName} };`);
75
+ }
76
+ return (`/** Placeholder — per-action recovery failed for ${actionName}. */\n` +
77
+ `export async function ${actionName}(_input: any): Promise<any> {\n${body}\n}`);
78
+ }
79
+ /** Collect the pre-baked snippets for ONE action (its matched steps). */
80
+ function prebakedForAction(action) {
81
+ const out = [];
82
+ action.perStepMatches.forEach((match, idx) => {
83
+ if (match?.matched && match.call) {
84
+ out.push({
85
+ stepNum: idx + 1,
86
+ stepText: action.spec.steps[idx] ?? '',
87
+ snippet: match.call,
88
+ });
89
+ }
90
+ });
91
+ return out;
92
+ }
93
+ /** esbuild parse-check a single per-action emission as a TS module.
94
+ * Returns null on success, an error string on failure. */
95
+ async function parseCheckModule(code) {
96
+ try {
97
+ const esbuild = await import('esbuild');
98
+ await esbuild.transform(code, { loader: 'ts', format: 'esm', target: 'es2022' });
99
+ return null;
100
+ }
101
+ catch (err) {
102
+ return err?.errors?.[0]?.text || err?.message || 'unknown parse error';
103
+ }
104
+ }
105
+ /** Build the per-action recovery user prompt. Full owner context +
106
+ * "emit ONLY this one action". */
107
+ function buildActionPrompt(request, target) {
108
+ const allScaffolding = buildPerActionScaffolding(request.actions);
109
+ const targetScaffolding = buildPerActionScaffolding([target]);
110
+ const parts = [];
111
+ parts.push(`You are recovering ONE function for the \`${request.ownerName}\` ` +
112
+ `${request.ownerKind}. The whole-owner emit for it could not be ` +
113
+ `produced coherently, so each action is being emitted on its own — ` +
114
+ `but with the FULL owner context below. Emit ONLY the one action ` +
115
+ `named in EMIT TARGET.`);
116
+ parts.push('');
117
+ parts.push(`## TARGET RUNTIME`);
118
+ parts.push(request.targetRuntime ?? 'Node.js (backend)');
119
+ parts.push('');
120
+ parts.push(`## AVAILABLE CAPABILITIES`);
121
+ parts.push(request.availableCapabilities ?? '(none — only `input: any` is available)');
122
+ parts.push('');
123
+ parts.push(`## AVAILABLE CLIENTS`);
124
+ parts.push(request.availableClients ?? '(none)');
125
+ parts.push('');
126
+ parts.push(`## AVAILABLE SPEC SURFACE (other services / controllers — call these, don't reimplement)`);
127
+ parts.push(request.availableSpecSurface ?? '(no other services / controllers in this spec)');
128
+ parts.push('');
129
+ parts.push(`## ALL ACTIONS ON THIS OWNER (context — do NOT emit these)`);
130
+ parts.push(allScaffolding);
131
+ parts.push('');
132
+ parts.push(`## EMIT TARGET: ${target.actionName}`);
133
+ parts.push(targetScaffolding);
134
+ parts.push('');
135
+ parts.push(`Emit ONLY \`export async function ${target.actionName}(...)\` inside one ` +
136
+ '```typescript code block.');
137
+ parts.push(`- Put any imports the function needs on single lines ABOVE it.`);
138
+ parts.push(`- Honour every [PRE-BAKED] snippet verbatim — do not paraphrase.`);
139
+ parts.push(`- Do NOT emit the other actions; they are shown for context only.`);
140
+ return parts.join('\n');
141
+ }
142
+ /** Pull single-line \`import ...\` statements out of an emission. The
143
+ * realize-emit skill convention emits single-line imports; multi-line
144
+ * imports (rare) are left in place and ride the post-emit tsc verifier. */
145
+ function extractImports(code) {
146
+ const imports = [];
147
+ const restLines = [];
148
+ for (const line of code.split('\n')) {
149
+ if (/^\s*import\s.+;?\s*$/.test(line) && line.includes('from')) {
150
+ imports.push(line.trim());
151
+ }
152
+ else {
153
+ restLines.push(line);
154
+ }
155
+ }
156
+ return { imports, rest: restLines.join('\n').trim() };
157
+ }
158
+ /** Assemble the final `<Owner>.ai.ts` from per-action results: hoisted
159
+ * + deduped imports, then each function (real emission or γ-stub). */
160
+ function assembleOwnerFile(ownerName, perAction) {
161
+ const allImports = new Set();
162
+ const bodies = [];
163
+ for (const entry of perAction) {
164
+ if (entry.real) {
165
+ const { imports, rest } = extractImports(entry.code);
166
+ for (const imp of imports)
167
+ allImports.add(imp);
168
+ bodies.push(rest);
169
+ }
170
+ else {
171
+ bodies.push(entry.code);
172
+ }
173
+ }
174
+ const header = [
175
+ '/**',
176
+ ` * ${ownerName} — Per-owner AI behaviors (per-action recovery)`,
177
+ ' *',
178
+ ' * The whole-owner emit failed; each action below was emitted on its',
179
+ ' * own with full owner context (Tier 2). Actions that still could not',
180
+ ' * be emitted carry a γ-stub — the post-emit feedback loop will retry',
181
+ ' * those (they are STUB001, auto-reemit-eligible).',
182
+ ' *',
183
+ ` * Generated: ${new Date().toISOString().split('T')[0]}`,
184
+ ' */',
185
+ ].join('\n');
186
+ const importBlock = [...allImports].sort().join('\n');
187
+ return [header, '', importBlock, importBlock ? '' : null, bodies.join('\n\n'), '']
188
+ .filter((s) => s !== null)
189
+ .join('\n');
190
+ }
191
+ /**
192
+ * Build a {@link PerActionRecoveryFn}. The returned function loops over
193
+ * the owner's actions, emits each with full owner context, validates
194
+ * (structural + parse), γ-stubs the ones that fail, and assembles the
195
+ * owner file. Returns null only when EVERY action γ-stubbed (caller
196
+ * then uses the Tier 3 placeholder, which is equivalent).
197
+ */
198
+ export function createPerActionRecovery(opts = {}) {
199
+ const timeoutMs = opts.timeoutMs ?? 5 * 60_000;
200
+ const skills = opts.skills ?? ['realize-emit'];
201
+ const providerId = resolveProviderId();
202
+ const systemPrompt = assembleSystemWithSkills('', providerId, skills);
203
+ const envThreshold = process.env.SPECVERSE_REALIZE_STRUCTURAL_DROP_THRESHOLD;
204
+ const dropThreshold = opts.dropThreshold ??
205
+ (envThreshold !== undefined && !Number.isNaN(parseFloat(envThreshold))
206
+ ? parseFloat(envThreshold)
207
+ : DEFAULT_STRUCTURAL_DROP_THRESHOLD);
208
+ const callLlm = opts.generateOverride ??
209
+ (async (system, user) => {
210
+ const result = await Promise.race([
211
+ generateText({
212
+ model: opts.model,
213
+ prompt: user,
214
+ ...(system ? { system } : {}),
215
+ }),
216
+ new Promise((_, reject) => setTimeout(() => reject(new Error('per-action recovery timeout')), timeoutMs)),
217
+ ]);
218
+ return result.text ?? '';
219
+ });
220
+ return async (request) => {
221
+ const perAction = [];
222
+ let realCount = 0;
223
+ for (const action of request.actions) {
224
+ const user = buildActionPrompt(request, action);
225
+ let emitted = null;
226
+ try {
227
+ const text = await callLlm(systemPrompt, user);
228
+ emitted = extractTypescriptBlock(text);
229
+ }
230
+ catch {
231
+ emitted = null;
232
+ }
233
+ if (!emitted || emitted.trim().length === 0) {
234
+ perAction.push({ actionName: action.actionName, code: renderActionGammaStub(action.actionName), real: false });
235
+ continue;
236
+ }
237
+ // Gate 1: parse check.
238
+ const parseError = await parseCheckModule(emitted);
239
+ if (parseError !== null) {
240
+ if (process.env.SPECVERSE_VERBOSE) {
241
+ console.error(` ✗ per-action recovery parse-failed for ${request.ownerName}.${action.actionName}: ${parseError.slice(0, 160)}`);
242
+ }
243
+ perAction.push({ actionName: action.actionName, code: renderActionGammaStub(action.actionName), real: false });
244
+ continue;
245
+ }
246
+ // Gate 2: structural preservation (this action's snippets only).
247
+ const structural = validateLlmOutputPreservesConventions(emitted, prebakedForAction(action), dropThreshold);
248
+ if (structural.ok === false) {
249
+ if (process.env.SPECVERSE_VERBOSE) {
250
+ console.error(` ✗ per-action recovery structural-failed for ${request.ownerName}.${action.actionName}`);
251
+ }
252
+ perAction.push({ actionName: action.actionName, code: renderActionGammaStub(action.actionName), real: false });
253
+ continue;
254
+ }
255
+ perAction.push({ actionName: action.actionName, code: emitted, real: true });
256
+ realCount++;
257
+ }
258
+ // Zero real bodies → no better than the Tier 3 placeholder. Return
259
+ // null so the caller uses its own (reserved-word-safe) placeholder.
260
+ if (realCount === 0)
261
+ return null;
262
+ if (process.env.SPECVERSE_VERBOSE) {
263
+ console.error(` ↻ per-action recovery for ${request.ownerName}: ${realCount}/${request.actions.length} action(s) recovered`);
264
+ }
265
+ return assembleOwnerFile(request.ownerName, perAction);
266
+ };
267
+ }
268
+ //# sourceMappingURL=per-action-recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"per-action-recovery.js","sourceRoot":"","sources":["../../src/realize/per-action-recovery.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@
29
29
  * `specverse-self/assets/` is searched.
30
30
  */
31
31
  import { runPrompt as runPromptFn, type PromptYaml } from '../ai/prompt-runner.js';
32
- import type { ActionSpec, MatchResult } from './per-action-emitter.js';
32
+ import { type ActionSpec, type MatchResult } from './owner-emit-shared.js';
33
33
  /** One action collected for the owner. Includes step-match results
34
34
  * so the structural validator and the prompt's per-action scaffolding
35
35
  * can both reference them. */
@@ -110,61 +110,10 @@ export declare function createRealizeOwnerLlmEmit(opts?: CreateRealizeOwnerLlmEm
110
110
  * tier search: @specverse/assets package path, engine-bundled assets,
111
111
  * worktree-sibling specverse-self/assets. */
112
112
  export declare function loadRealizeOwnerPromptFromFallback(): PromptYaml | null;
113
- /**
114
- * Map a target-runtime label to its forbidden-API symbol set.
115
- *
116
- * Runtime targets are stated at the top of the realize-owner prompt
117
- * (`targetRuntime` slot) so the LLM knows up-front which APIs are off
118
- * limits. This function returns the same set the validator enforces.
119
- * Targets supported:
120
- * - "Node.js (backend)" (default) — browser globals are forbidden
121
- * - "Browser (DOM)" — Node builtins are forbidden
122
- * - Unknown / unset — treat as Node.js backend (the realize default)
123
- *
124
- * Returning an empty array means "no runtime-API rejection" — the
125
- * caller skips this check entirely (test fixtures use this).
126
- */
127
- export declare function forbiddenApisForRuntime(targetRuntime?: string): string[];
128
- /**
129
- * Scan the LLM-emitted file contents for forbidden runtime symbols.
130
- * Returns the list of distinct violations found (truncated to avoid
131
- * runaway output). Empty array = no violations.
132
- *
133
- * The scan is intentionally simple: substring presence test. False
134
- * positives are rare (these symbols don't legitimately appear in
135
- * backend code or vice versa) and the consequence of a false positive
136
- * is one surgical retry — cheap.
137
- */
138
- export declare function checkForbiddenRuntimeApis(fileContents: string, targetRuntime?: string): string[];
139
- /**
140
- * Build the user-prefix string for the surgical-retry call after a
141
- * runtime-API violation. Frames the violation concretely so the LLM
142
- * understands exactly which symbols to remove.
143
- */
144
- export declare function buildRuntimeViolationCorrectionMessage(violations: string[], targetRuntime?: string): string;
145
- /**
146
- * Detect sibling-.ai import violations in the LLM-emitted file.
147
- * Each .ai.ts file is supposed to be self-contained; importing
148
- * another `<Sibling>.ai` produces TS2307 because realize emits
149
- * per-action exports only, not aggregate types. The prompt's rule
150
- * 2 forbids this; this validator hard-enforces it the same way
151
- * `checkForbiddenRuntimeApis` enforces rule 3.
152
- *
153
- * Returns the list of distinct violating import specifiers
154
- * (e.g. `'./GameStateService.ai'`). Empty array = no violations.
155
- */
156
- export declare function checkSiblingAiImports(fileContents: string): string[];
157
- /**
158
- * Detect relative imports that are missing a `.js` extension.
159
- * NodeNext module resolution requires explicit extensions for relative
160
- * specifiers (`./foo`, `../bar`). Bare-package imports (`@prisma/client`)
161
- * don't need extensions; only relative paths.
162
- *
163
- * Returns the list of offending specifiers (e.g. `'../services/Auth'`).
164
- */
165
- export declare function checkMissingJsExtensions(fileContents: string): string[];
166
- /** Surgical-retry correction message for missing-.js violations. */
167
- export declare function buildExtensionCorrectionMessage(violations: string[]): string;
168
- /** Surgical-retry correction message for sibling-.ai violations. */
169
- export declare function buildSiblingAiCorrectionMessage(violations: string[]): string;
113
+ /** Build the per-action scaffolding block. One section per action,
114
+ * listing its steps with [PRE-BAKED] / [WRITE] markers. Exported for
115
+ * reuse by the realize-context-snapshot module (Phase 3 of
116
+ * 2026-05-13-VERIFIER-DIAGNOSTIC-TREATMENT-SPLIT) the reemit prompt
117
+ * embeds the same scaffolding the original per-owner prompt used. */
118
+ export declare function buildPerActionScaffolding(actions: CollectedOwnerAction[]): string;
170
119
  //# sourceMappingURL=per-owner-emit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"per-owner-emit.d.ts","sourceRoot":"","sources":["../../src/realize/per-owner-emit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"per-owner-emit.d.ts","sourceRoot":"","sources":["../../src/realize/per-owner-emit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAOH,OAAO,EAEL,SAAS,IAAI,WAAW,EAGxB,KAAK,UAAU,EAGhB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,wBAAwB,CAAC;AAUhC;;+BAE+B;AAC/B,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,IAAI,EAAE,UAAU,CAAC;IACjB;wEACoE;IACpE,cAAc,EAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CAC3C;AAED,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9C,kEAAkE;IAClE,SAAS,EAAE,GAAG,CAAC;IACf,iEAAiE;IACjE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;sEAEkE;IAClE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;iDAI6C;IAC7C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;kEAI8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;oCAEoC;AACpC,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5B,qDAAqD;AACrD,MAAM,WAAW,gCAAgC;IAC/C,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,OAAO,WAAW,CAAC;IACvC,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,UAAU,CAAC;IACtC;2CACuC;IACvC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9D,qDAAqD;IACrD,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,GAAE,gCAAqC,GAC1C,cAAc,CA+JhB;AAwBD;;;8CAG8C;AAC9C,wBAAgB,kCAAkC,IAAI,UAAU,GAAG,IAAI,CA8DtE;AA0FD;;;;sEAIsE;AACtE,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,CA2BjF"}