@sensigo/realm-cli 0.38.0 → 0.40.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.
Files changed (99) hide show
  1. package/dist/agent/drive-failure.d.ts +62 -0
  2. package/dist/agent/drive-failure.d.ts.map +1 -0
  3. package/dist/agent/drive-failure.js +241 -0
  4. package/dist/agent/drive-failure.js.map +1 -0
  5. package/dist/agent/providers/agent-utils.d.ts +132 -0
  6. package/dist/agent/providers/agent-utils.d.ts.map +1 -1
  7. package/dist/agent/providers/agent-utils.js +348 -1
  8. package/dist/agent/providers/agent-utils.js.map +1 -1
  9. package/dist/agent/providers/anthropic-provider.d.ts +51 -1
  10. package/dist/agent/providers/anthropic-provider.d.ts.map +1 -1
  11. package/dist/agent/providers/anthropic-provider.js +109 -30
  12. package/dist/agent/providers/anthropic-provider.js.map +1 -1
  13. package/dist/agent/providers/llm-provider.d.ts +13 -1
  14. package/dist/agent/providers/llm-provider.d.ts.map +1 -1
  15. package/dist/agent/providers/llm-provider.js +8 -4
  16. package/dist/agent/providers/llm-provider.js.map +1 -1
  17. package/dist/agent/providers/openai-provider.d.ts +6 -1
  18. package/dist/agent/providers/openai-provider.d.ts.map +1 -1
  19. package/dist/agent/providers/openai-provider.js +75 -20
  20. package/dist/agent/providers/openai-provider.js.map +1 -1
  21. package/dist/agent/providers/openai-reasoning-provider.d.ts +4 -1
  22. package/dist/agent/providers/openai-reasoning-provider.d.ts.map +1 -1
  23. package/dist/agent/providers/openai-reasoning-provider.js +21 -6
  24. package/dist/agent/providers/openai-reasoning-provider.js.map +1 -1
  25. package/dist/agent/run-agent.d.ts +9 -0
  26. package/dist/agent/run-agent.d.ts.map +1 -1
  27. package/dist/agent/run-agent.js +775 -680
  28. package/dist/agent/run-agent.js.map +1 -1
  29. package/dist/agent/run-attach.d.ts.map +1 -1
  30. package/dist/agent/run-attach.js +58 -11
  31. package/dist/agent/run-attach.js.map +1 -1
  32. package/dist/agent/test-support/anthropic-stub.d.ts +45 -0
  33. package/dist/agent/test-support/anthropic-stub.d.ts.map +1 -0
  34. package/dist/agent/test-support/anthropic-stub.js +146 -0
  35. package/dist/agent/test-support/anthropic-stub.js.map +1 -0
  36. package/dist/agent/test-support/composed-journey.d.ts +40 -0
  37. package/dist/agent/test-support/composed-journey.d.ts.map +1 -0
  38. package/dist/agent/test-support/composed-journey.js +104 -0
  39. package/dist/agent/test-support/composed-journey.js.map +1 -0
  40. package/dist/agent/test-support/mcp-server-entry.d.ts +20 -0
  41. package/dist/agent/test-support/mcp-server-entry.d.ts.map +1 -0
  42. package/dist/agent/test-support/mcp-server-entry.js +39 -0
  43. package/dist/agent/test-support/mcp-server-entry.js.map +1 -0
  44. package/dist/agent/test-support/openai-stub.d.ts +47 -0
  45. package/dist/agent/test-support/openai-stub.d.ts.map +1 -0
  46. package/dist/agent/test-support/openai-stub.js +115 -0
  47. package/dist/agent/test-support/openai-stub.js.map +1 -0
  48. package/dist/commands/abandon.d.ts.map +1 -1
  49. package/dist/commands/abandon.js +8 -1
  50. package/dist/commands/abandon.js.map +1 -1
  51. package/dist/commands/agent.d.ts.map +1 -1
  52. package/dist/commands/agent.js +17 -0
  53. package/dist/commands/agent.js.map +1 -1
  54. package/dist/commands/cleanup.d.ts.map +1 -1
  55. package/dist/commands/cleanup.js +21 -9
  56. package/dist/commands/cleanup.js.map +1 -1
  57. package/dist/commands/export.d.ts +5 -2
  58. package/dist/commands/export.d.ts.map +1 -1
  59. package/dist/commands/export.js +1 -1
  60. package/dist/commands/export.js.map +1 -1
  61. package/dist/commands/gc.d.ts +1 -1
  62. package/dist/commands/gc.d.ts.map +1 -1
  63. package/dist/commands/gc.js +29 -4
  64. package/dist/commands/gc.js.map +1 -1
  65. package/dist/commands/inspect.d.ts.map +1 -1
  66. package/dist/commands/inspect.js +86 -1
  67. package/dist/commands/inspect.js.map +1 -1
  68. package/dist/commands/list.d.ts.map +1 -1
  69. package/dist/commands/list.js +35 -0
  70. package/dist/commands/list.js.map +1 -1
  71. package/dist/commands/listen.d.ts.map +1 -1
  72. package/dist/commands/listen.js +9 -5
  73. package/dist/commands/listen.js.map +1 -1
  74. package/dist/commands/purge.d.ts +22 -1
  75. package/dist/commands/purge.d.ts.map +1 -1
  76. package/dist/commands/purge.js +70 -42
  77. package/dist/commands/purge.js.map +1 -1
  78. package/dist/commands/register.d.ts.map +1 -1
  79. package/dist/commands/register.js +3 -1
  80. package/dist/commands/register.js.map +1 -1
  81. package/dist/commands/run-migrate.d.ts +83 -0
  82. package/dist/commands/run-migrate.d.ts.map +1 -0
  83. package/dist/commands/run-migrate.js +303 -0
  84. package/dist/commands/run-migrate.js.map +1 -0
  85. package/dist/commands/validate.d.ts.map +1 -1
  86. package/dist/commands/validate.js +7 -5
  87. package/dist/commands/validate.js.map +1 -1
  88. package/dist/commands/watch.d.ts.map +1 -1
  89. package/dist/commands/watch.js +6 -4
  90. package/dist/commands/watch.js.map +1 -1
  91. package/dist/commands-registry.d.ts.map +1 -1
  92. package/dist/commands-registry.js +4 -0
  93. package/dist/commands-registry.js.map +1 -1
  94. package/dist/index.js +1 -1
  95. package/dist/lib/loader-warnings.d.ts +22 -1
  96. package/dist/lib/loader-warnings.d.ts.map +1 -1
  97. package/dist/lib/loader-warnings.js +42 -2
  98. package/dist/lib/loader-warnings.js.map +1 -1
  99. package/package.json +5 -4
@@ -0,0 +1,303 @@
1
+ // run-migrate.ts — `realm run migrate --stamp-seals` (issue #367, part 3).
2
+ //
3
+ // The vehicle the shipped `gc --heal` note promises operators. It walks every terminal run and
4
+ // gives each one the seal arm it has always meant, WITHOUT touching the retention clock — which is
5
+ // the whole reason it exists rather than letting `--heal` rewrite the same population and reset
6
+ // `updated_at` on all of it.
7
+ //
8
+ // The sweep is TWO-ARMED, and that is load-bearing. An unstamped-only filter would leave the
9
+ // `incoherent` bucket with no population at all: the records it exists to surface are precisely
10
+ // the STAMPED ones whose arm disagrees with their own prose or markers, and the store boundary
11
+ // deliberately abstains on the abandon-marker case, so nothing else in the system can see them.
12
+ //
13
+ // It writes only through `RunStore.stampSeal`. It never rewrites a record it cannot classify, and
14
+ // never auto-corrects one it finds incoherent — an operator adjudicates those.
15
+ import { Command } from 'commander';
16
+ import { classifyLegacySeal, armToPhase } from '@sensigo/realm';
17
+ function emptyBuckets() {
18
+ return {
19
+ stamped: [],
20
+ already_stamped: [],
21
+ unclassifiable: [],
22
+ incoherent: [],
23
+ skipped_conflict: [],
24
+ failed: [],
25
+ };
26
+ }
27
+ /**
28
+ * Why a record could not be classified — phrased for an operator, and deliberately phrased to
29
+ * avoid the terminal-writer census's own token: a printed diagnostic must never look like source
30
+ * code that writes a seal.
31
+ */
32
+ function whyUnclassifiable(run) {
33
+ if (run.terminal_reason === undefined) {
34
+ return 'no terminal reason recorded and no marker to read';
35
+ }
36
+ return `terminal reason "${run.terminal_reason.slice(0, 80)}" matches no known seal shape`;
37
+ }
38
+ /**
39
+ * The exit taxonomy, aligned with the house rule every other sweep command follows (`gc`'s own,
40
+ * gc.ts): **exit 1 means THIS COMMAND failed to do its job.** A write that errored is that. A
41
+ * record nobody can classify is not — the command did exactly what it should, and said so loudly.
42
+ *
43
+ * That distinction matters more here than usual, because residue is CHRONIC: an unclassifiable
44
+ * record stays unclassifiable, so a nonzero exit on residue would make every scheduled run of this
45
+ * command fail forever, and the first thing an operator does with a chronic alarm is silence it.
46
+ *
47
+ * Automation that genuinely wants to gate on residue opts in with `--detailed-exitcode`, which
48
+ * turns the two outcomes into a three-way: 0 clean · 1 the command failed · 2 succeeded, residue
49
+ * remains. Same shape as `grep`, `git diff --exit-code` and Terraform's `-detailed-exitcode` — a
50
+ * machine-readable answer that needs no prose parsing, and that naive pipelines never inherit.
51
+ */
52
+ export function migrateExitCode(buckets, options = {}) {
53
+ if (buckets.failed.length > 0)
54
+ return 1;
55
+ if (options.detailed === true &&
56
+ (buckets.unclassifiable.length > 0 || buckets.incoherent.length > 0)) {
57
+ return 2;
58
+ }
59
+ return 0;
60
+ }
61
+ /**
62
+ * The sweep. Pure over its injected store, so the acceptance suite drives it directly.
63
+ *
64
+ * `not_terminal` refusals from `stampSeal` are STATED-UNREACHABLE here rather than bucketed: this
65
+ * loop only offers terminal records, and any terminal→live flip bumps `version`, so the CAS
66
+ * refuses first and the record lands in `skipped_conflict`.
67
+ */
68
+ export async function migrateStampSeals(runStore, options = {}) {
69
+ if (runStore.stampSeal === undefined) {
70
+ throw new Error('This store does not implement stampSeal, so `realm run migrate --stamp-seals` cannot ' +
71
+ 'write to it. Records stay readable and correct without migrating — the read path ' +
72
+ 'recovers a legacy arm wherever one is recoverable, and the rest still derive correctly from ' +
73
+ 'the legacy ladder. To materialise the arms, use the tooling that owns ' +
74
+ 'this store.');
75
+ }
76
+ const buckets = emptyBuckets();
77
+ const all = await runStore.list();
78
+ for (const run of all) {
79
+ if (!run.terminal_state)
80
+ continue;
81
+ // ARM 2 — already stamped: audit the arm against the record's own evidence.
82
+ if (run.sealed_by !== undefined) {
83
+ // A ruled record is done. An operator looked at it and said what it is, which outranks
84
+ // anything the classifier can infer from prose — and re-examining it every sweep is exactly
85
+ // the loop the ruling was made to end.
86
+ if (run.sealed_by.adjudicated !== undefined) {
87
+ buckets.already_stamped.push({ id: run.id, verified: true, ruled: true });
88
+ continue;
89
+ }
90
+ // The FULL markers-first classifier, deliberately: the store boundary's comparator abstains
91
+ // on abandon-marker records, and those are exactly the stale arms nothing else observes.
92
+ const classified = classifyLegacySeal(run);
93
+ // PHASE level, not arm level. The classifier can only ever recover `complete` from a
94
+ // completed run's prose, so comparing arms would report every `gate_resolution_complete` and
95
+ // `guard_pass_complete` stamp as a disagreement.
96
+ if (classified === undefined) {
97
+ // Abstained: nothing to compare against. The arm stands, unverified.
98
+ buckets.already_stamped.push({ id: run.id, verified: false });
99
+ }
100
+ else if (armToPhase(classified) === armToPhase(run.sealed_by.arm)) {
101
+ buckets.already_stamped.push({ id: run.id, verified: true });
102
+ }
103
+ else {
104
+ buckets.incoherent.push({
105
+ id: run.id,
106
+ arm: run.sealed_by.arm,
107
+ classified,
108
+ arm_phase: armToPhase(run.sealed_by.arm),
109
+ classified_phase: armToPhase(classified),
110
+ });
111
+ }
112
+ continue;
113
+ }
114
+ // ARM 1 — unstamped: classify, then stamp.
115
+ const arm = classifyLegacySeal(run);
116
+ if (arm === undefined) {
117
+ buckets.unclassifiable.push({ id: run.id, why: whyUnclassifiable(run) });
118
+ continue;
119
+ }
120
+ const phaseBefore = run.run_phase;
121
+ const phaseAfter = armToPhase(arm);
122
+ if (options.force !== true) {
123
+ buckets.stamped.push({ id: run.id, arm, phase_before: phaseBefore, phase_after: phaseAfter });
124
+ continue;
125
+ }
126
+ try {
127
+ // `classified: true` marks this stamp as CLASSIFIER-minted, forever distinguishable from a
128
+ // writer's own assertion. `step` is never fabricated.
129
+ const result = await runStore.stampSeal(run.id, { arm, classified: true }, run.version);
130
+ if (result.stamped) {
131
+ buckets.stamped.push({
132
+ id: run.id,
133
+ arm,
134
+ phase_before: phaseBefore,
135
+ phase_after: result.run.run_phase,
136
+ });
137
+ }
138
+ else {
139
+ // The record gained an arm between the sweep's read and this write; nothing to verify.
140
+ buckets.already_stamped.push({ id: run.id, verified: false });
141
+ }
142
+ }
143
+ catch (err) {
144
+ const code = err.code;
145
+ if (code === 'STATE_SNAPSHOT_MISMATCH') {
146
+ buckets.skipped_conflict.push(run.id);
147
+ }
148
+ else {
149
+ buckets.failed.push({
150
+ id: run.id,
151
+ error: err instanceof Error ? err.message : String(err),
152
+ });
153
+ }
154
+ }
155
+ }
156
+ return buckets;
157
+ }
158
+ /**
159
+ * `armToPhase` is total over `SEAL_ARMS`, and returns JS `undefined` for anything else — so an arm
160
+ * written by a NEWER binary interpolated straight into a report line as "phase undefined", which
161
+ * reads like a bug in this command rather than a record it cannot interpret.
162
+ */
163
+ function phaseLabel(phase) {
164
+ return phase === undefined
165
+ ? 'phase unknown to this binary (written by a newer version?)'
166
+ : `phase ${phase}`;
167
+ }
168
+ /** The ordering instruction, live since the vehicle exists. */
169
+ export const ORDERING_LINE = 'Run `realm run migrate --stamp-seals` BEFORE `realm run gc --heal` after upgrading across ' +
170
+ '#367 if retention clocks matter: heal rewrites the same records and resets updated_at, which ' +
171
+ 'this command deliberately preserves.';
172
+ /** Renders the report. Returned as lines so the output cells can read it without capturing stdout. */
173
+ export function renderMigrateReport(buckets, options = {}) {
174
+ const force = options.force === true;
175
+ const lines = [];
176
+ const nothing = buckets.stamped.length === 0 &&
177
+ buckets.already_stamped.length === 0 &&
178
+ buckets.unclassifiable.length === 0 &&
179
+ buckets.incoherent.length === 0 &&
180
+ buckets.skipped_conflict.length === 0 &&
181
+ buckets.failed.length === 0;
182
+ // "every terminal run already carries its seal arm" is a UNIVERSAL claim, and four different
183
+ // buckets can each falsify it: a record nobody could classify, one whose write failed, one whose
184
+ // arm contradicts itself, and one a concurrent writer moved. It may only be appended when all
185
+ // four are empty. It shipped appended unconditionally, printed directly above the very records
186
+ // that disprove it.
187
+ const everyRunArmed = buckets.unclassifiable.length === 0 &&
188
+ buckets.incoherent.length === 0 &&
189
+ buckets.failed.length === 0 &&
190
+ buckets.skipped_conflict.length === 0;
191
+ if (nothing) {
192
+ lines.push('No terminal runs found to migrate.');
193
+ }
194
+ else if (buckets.stamped.length > 0) {
195
+ lines.push(force
196
+ ? `Stamped ${buckets.stamped.length} run(s) with their seal arm.`
197
+ : `${buckets.stamped.length} run(s) WOULD be stamped:`);
198
+ for (const e of buckets.stamped) {
199
+ const phase = e.phase_before === e.phase_after ? e.phase_after : `${e.phase_before} → ${e.phase_after}`;
200
+ lines.push(` • ${e.id}: ${e.arm} (phase ${phase})`);
201
+ }
202
+ }
203
+ else if (force) {
204
+ lines.push(everyRunArmed
205
+ ? 'Nothing to stamp — every terminal run already carries its seal arm.'
206
+ : 'Nothing was stamped.');
207
+ }
208
+ else {
209
+ lines.push(everyRunArmed
210
+ ? 'Nothing would be stamped — every terminal run already carries its seal arm.'
211
+ : 'Nothing would be stamped.');
212
+ }
213
+ if (buckets.already_stamped.length > 0) {
214
+ // "Coherent" is a finding, and the audit cannot make it when the classifier abstains — a
215
+ // record whose own evidence places it nowhere has an arm that stands UNVERIFIED, not one that
216
+ // has been checked and agreed with.
217
+ // Three disjoint groups, and the arithmetic is pinned by a cell: X + R + U = N.
218
+ const ruled = buckets.already_stamped.filter((e) => e.ruled === true).length;
219
+ const checked = buckets.already_stamped.filter((e) => e.verified && e.ruled !== true).length;
220
+ const unverified = buckets.already_stamped.filter((e) => !e.verified).length;
221
+ if (ruled === 0 && unverified === 0) {
222
+ lines.push(`${buckets.already_stamped.length} run(s) already stamped, and their arms agree with the record.`);
223
+ }
224
+ else {
225
+ // "Their arms agree with the record" would be FALSE for a ruled record whose prose still
226
+ // disagrees — the ruling stands over that disagreement rather than resolving it. So any
227
+ // ruled record forces the split form, and the ruled segment always shows when there is one.
228
+ const segments = [];
229
+ if (checked > 0)
230
+ segments.push(`${checked} checked against the record`);
231
+ if (ruled > 0)
232
+ segments.push(`${ruled} ruled by an operator — the ruling stands`);
233
+ if (unverified > 0) {
234
+ segments.push(`${unverified} unverifiable — nothing in the record to check the arm against`);
235
+ }
236
+ lines.push(`${buckets.already_stamped.length} run(s) already stamped (${segments.join(', ')}).`);
237
+ }
238
+ }
239
+ if (buckets.unclassifiable.length > 0) {
240
+ lines.push(`${buckets.unclassifiable.length} run(s) could NOT be classified and were left untouched:`);
241
+ for (const e of buckets.unclassifiable)
242
+ lines.push(` • ${e.id}: ${e.why}`);
243
+ }
244
+ if (buckets.incoherent.length > 0) {
245
+ lines.push(`${buckets.incoherent.length} run(s) carry an arm that disagrees with their own record — ` +
246
+ `adjudicate these yourself; nothing was rewritten:`);
247
+ for (const e of buckets.incoherent) {
248
+ lines.push(` • ${e.id}: recorded arm '${e.arm}' (${phaseLabel(e.arm_phase)}), but the record's own ` +
249
+ `markers/prose read as '${e.classified}' (${phaseLabel(e.classified_phase)})`);
250
+ }
251
+ }
252
+ if (buckets.skipped_conflict.length > 0) {
253
+ lines.push(`${buckets.skipped_conflict.length} run(s) skipped — a concurrent writer moved them; ` +
254
+ `their own next write path owns them.`);
255
+ for (const id of buckets.skipped_conflict)
256
+ lines.push(` • ${id} (skipped — concurrent write)`);
257
+ }
258
+ if (buckets.failed.length > 0) {
259
+ lines.push(`${buckets.failed.length} run(s) FAILED to stamp and still have no seal arm:`);
260
+ for (const f of buckets.failed)
261
+ lines.push(` ✗ ${f.id}: ${f.error}`);
262
+ }
263
+ // Only offer the next step when there IS one: on a corpus of nothing but unclassifiable records,
264
+ // `--force` stamps exactly nothing, and inviting the operator to run it is a wasted round trip.
265
+ if (!force && buckets.stamped.length > 0)
266
+ lines.push('Re-run with --force to actually stamp.');
267
+ // RESIDUE = terminal runs that will still have no recorded arm when this run ends. A failed
268
+ // write leaves the record armless just as surely as an unclassifiable one does — omitting it
269
+ // printed "Residue: 0" directly above a record that had failed to stamp. In a dry run nothing is
270
+ // written, so the would-be-stamped records still count.
271
+ const residue = buckets.unclassifiable.length + buckets.failed.length + (force ? 0 : buckets.stamped.length);
272
+ const skipped = buckets.skipped_conflict.length > 0
273
+ ? ` (+${buckets.skipped_conflict.length} skipped — arm state unknown until their own writer settles)`
274
+ : '';
275
+ lines.push(`Residue: ${residue} terminal run(s) still without a recorded seal arm.${skipped}`);
276
+ lines.push(ORDERING_LINE);
277
+ return lines;
278
+ }
279
+ export const runMigrateCommand = new Command('migrate')
280
+ .description('Materialise recorded seal arms on legacy terminal runs (issue #367)')
281
+ .requiredOption('--stamp-seals', 'Stamp each terminal run with the seal arm it has always meant')
282
+ .option('--force', 'Actually write the stamps (without this, the sweep is a dry run)')
283
+ .option('--detailed-exitcode', 'Three-way exit for automation: 0 clean, 1 the command failed, 2 succeeded but residue ' +
284
+ 'remains (the shape grep, `git diff --exit-code` and Terraform use). Opt-in, so a naive ' +
285
+ 'pipeline never inherits a chronic alarm from records that can never be classified.')
286
+ .action(async (opts) => {
287
+ const { JsonFileStore } = await import('@sensigo/realm');
288
+ const runStore = new JsonFileStore();
289
+ try {
290
+ const buckets = await migrateStampSeals(runStore, { force: opts.force ?? false });
291
+ for (const line of renderMigrateReport(buckets, { force: opts.force ?? false })) {
292
+ console.log(line);
293
+ }
294
+ process.exitCode = migrateExitCode(buckets, { detailed: opts.detailedExitcode ?? false });
295
+ }
296
+ catch (err) {
297
+ // The batch never started, or stopped before writing — say so, rather than emitting a bare
298
+ // errno an operator has to guess the scope of.
299
+ console.error(`migrate ABORTED before writing anything: ${err instanceof Error ? err.message : String(err)}`);
300
+ process.exit(1);
301
+ }
302
+ });
303
+ //# sourceMappingURL=run-migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-migrate.js","sourceRoot":"","sources":["../../src/commands/run-migrate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4MpC,eAAO,MAAM,eAAe,SAsGxB,CAAC"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmNpC,eAAO,MAAM,eAAe,SAsGxB,CAAC"}
@@ -11,7 +11,7 @@ import { readFileSync } from 'node:fs';
11
11
  import { load } from 'js-yaml';
12
12
  import { loadWorkflowFromStringWithDiagnostics, loadWorkflowFromFileWithDiagnostics, findTrustRoot, WorkflowError, shouldEnforceTimeout, DEFAULT_EXECUTION_TIMEOUT_SECONDS, resolveSeverity, assessStructuredOutputEligibility, renderIneligibleMessage, } from '@sensigo/realm';
13
13
  import { loadProjectExtensions, checkForOrphanedManifests, } from '../extensions/load-project-extensions.js';
14
- import { printLoaderWarnings, rejectOnErrorSeverity, failsStrict } from '../lib/loader-warnings.js';
14
+ import { renderLoadFailure, printLoaderWarnings, rejectOnErrorSeverity, failsStrict, } from '../lib/loader-warnings.js';
15
15
  /**
16
16
  * Advisory (issue A3, never rejects): an auto step declaring `retry:` but no `timeout_seconds`
17
17
  * has EVERY attempt bounded by the generous DEFAULT_EXECUTION_TIMEOUT_SECONDS default — a hung
@@ -144,8 +144,10 @@ function printStructuredOutputNudge(definition) {
144
144
  }
145
145
  }
146
146
  /**
147
- * The dormant issue #170 boundary-reject: inert today (DEFAULT_POLICY has no 'error' entries),
148
- * but once #170 flips UNKNOWN_WORKFLOW_KEY/UNKNOWN_STEP_KEY, this refuses those workflows here.
147
+ * The issue #170 boundary-reject, LIVE since the flip: a workflow carrying an unrecognised
148
+ * workflow-level or step-level key is refused here, before `--strict` is even consulted (which is
149
+ * why `--strict` and the default now agree on this class). run/agent/listen are unaffected — they
150
+ * load leniently, so a deployed workflow with an unknown key keeps running.
149
151
  */
150
152
  function rejectIfPolicyEscalates(warnings) {
151
153
  if (!rejectOnErrorSeverity(warnings))
@@ -213,7 +215,7 @@ export const validateCommand = new Command('validate')
213
215
  }
214
216
  catch (err) {
215
217
  if (err instanceof WorkflowError) {
216
- console.error(`Invalid: ${err.message}`);
218
+ console.error(renderLoadFailure(err.message));
217
219
  process.exit(1);
218
220
  }
219
221
  throw err;
@@ -255,7 +257,7 @@ export const validateCommand = new Command('validate')
255
257
  }
256
258
  }
257
259
  catch (err) {
258
- console.error(`Invalid: ${err instanceof Error ? err.message : String(err)}`);
260
+ console.error(renderLoadFailure(err instanceof Error ? err.message : String(err)));
259
261
  process.exit(1);
260
262
  }
261
263
  });
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA4CxD;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,iBAAiB,EACxB,MAAM,CAAC,EAAE,WAAW,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CA+Df;AAED,eAAO,MAAM,YAAY,SAoBrB,CAAC"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAkDxD;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,iBAAiB,EACxB,MAAM,CAAC,EAAE,WAAW,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CA+Df;AAED,eAAO,MAAM,YAAY,SAoBrB,CAAC"}
@@ -4,7 +4,7 @@ import { join, dirname, resolve } from 'node:path';
4
4
  import { Command } from 'commander';
5
5
  import { loadWorkflowFromFileWithDiagnostics, WorkflowError } from '@sensigo/realm';
6
6
  import { loadWorkflowForRegistration } from './register.js';
7
- import { printLoaderWarnings, rejectOnErrorSeverity } from '../lib/loader-warnings.js';
7
+ import { renderLoadFailure, printLoaderWarnings, rejectOnErrorSeverity, } from '../lib/loader-warnings.js';
8
8
  /**
9
9
  * Attempts to load and register a workflow YAML file.
10
10
  * Logs the result (success or validation error) to stdout/stderr.
@@ -14,8 +14,10 @@ import { printLoaderWarnings, rejectOnErrorSeverity } from '../lib/loader-warnin
14
14
  * imported content of each module path (ESM cache) — restart watch to pick up module changes.
15
15
  *
16
16
  * Prints every accumulated loader warning via printLoaderWarnings (issue #169) and applies the
17
- * dormant issue #170 boundary-reject (inert today) — but never `--strict` (watch is a dev loop;
18
- * `--strict` is deliberately validate/register-only).
17
+ * issue #170 boundary-reject, LIVE since the flip — but never `--strict` (watch is a dev loop;
18
+ * `--strict` is deliberately validate/register-only). Unlike validate/register this refuses
19
+ * WITHOUT exiting: the watcher keeps running so the author can fix the key and be re-registered on
20
+ * the next save, which is the whole point of a dev loop.
19
21
  * @param filePath Path to the workflow YAML file.
20
22
  * @param store The registrar to register into.
21
23
  */
@@ -34,7 +36,7 @@ async function registerFile(filePath, store) {
34
36
  }
35
37
  catch (err) {
36
38
  if (err instanceof WorkflowError) {
37
- console.error(`[${timestamp}] Invalid: ${err.message}`);
39
+ console.error(`[${timestamp}] ${renderLoadFailure(err.message)}`);
38
40
  }
39
41
  else {
40
42
  const message = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"commands-registry.d.ts","sourceRoot":"","sources":["../src/commands-registry.ts"],"names":[],"mappings":"AA+BA,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,+BAQ5B,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,WAAW,+BAgBvB,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,+BAM5B,CAAC"}
1
+ {"version":3,"file":"commands-registry.d.ts","sourceRoot":"","sources":["../src/commands-registry.ts"],"names":[],"mappings":"AAkCA,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,+BAQ5B,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,WAAW,+BAiBvB,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,+BAM5B,CAAC"}
@@ -25,6 +25,9 @@ import { listCommand } from './commands/list.js';
25
25
  import { mcpCommand } from './commands/mcp.js';
26
26
  import { serveCommand } from './commands/serve.js';
27
27
  import { migrateCommand } from './commands/migrate.js';
28
+ // issue #367 (part 3): the run-scoped sibling of `realm workflow migrate` — different group, no
29
+ // collision.
30
+ import { runMigrateCommand } from './commands/run-migrate.js';
28
31
  import { agentCommand } from './commands/agent.js';
29
32
  import { webhookCommand } from './commands/webhook.js';
30
33
  import { listenCommand } from './commands/listen.js';
@@ -55,6 +58,7 @@ export const runCommands = [
55
58
  reconcileCommand,
56
59
  attemptsCommand,
57
60
  drainCommand,
61
+ runMigrateCommand,
58
62
  ];
59
63
  /** Top-level commands not nested under a subgroup. */
60
64
  export const topLevelCommands = [
@@ -1 +1 @@
1
- {"version":3,"file":"commands-registry.js","sourceRoot":"","sources":["../src/commands-registry.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,+EAA+E;AAC/E,6CAA6C;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW;IACX,eAAe;IACf,eAAe;IACf,YAAY;IACZ,UAAU;IACV,WAAW;IACX,cAAc;CACf,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,WAAW;IACX,cAAc;IACd,aAAa;IACb,WAAW;IACX,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,YAAY;IACZ,SAAS;IACT,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,YAAY;CACb,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,aAAa;CACd,CAAC"}
1
+ {"version":3,"file":"commands-registry.js","sourceRoot":"","sources":["../src/commands-registry.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,+EAA+E;AAC/E,6CAA6C;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,gGAAgG;AAChG,aAAa;AACb,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW;IACX,eAAe;IACf,eAAe;IACf,YAAY;IACZ,UAAU;IACV,WAAW;IACX,cAAc;CACf,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,WAAW;IACX,cAAc;IACd,aAAa;IACb,WAAW;IACX,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,YAAY;IACZ,SAAS;IACT,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,iBAAiB;CAClB,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,aAAa;CACd,CAAC"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import 'dotenv/config';
4
4
  import { Command } from 'commander';
5
5
  import { workflowCommands, runCommands, topLevelCommands } from './commands-registry.js';
6
6
  const program = new Command();
7
- program.name('realm').description('Realm workflow engine CLI').version('0.38.0');
7
+ program.name('realm').description('Realm workflow engine CLI').version('0.40.0');
8
8
  // realm workflow — operations on workflow definitions
9
9
  const workflowCmd = new Command('workflow').description('Manage workflow definitions');
10
10
  for (const cmd of workflowCommands)
@@ -1,5 +1,13 @@
1
1
  import { type LoaderWarning, type WarningCode } from '@sensigo/realm';
2
- /** Prints every warning via the single renderLoaderWarning format source. */
2
+ /**
3
+ * Prints every warning via the single renderLoaderWarning format source, correcting the
4
+ * "— ignored" claim for any warning this boundary will actually refuse.
5
+ *
6
+ * Resolved against DEFAULT_POLICY, which is the policy the boundary-reject itself uses. A warning
7
+ * that only fails under `--strict` still renders "— ignored" — see the report's design note; the
8
+ * `--strict` path prints its own "failing due to --strict" line, so the author is not left
9
+ * without an explanation.
10
+ */
3
11
  export declare function printLoaderWarnings(warnings: LoaderWarning[]): void;
4
12
  /**
5
13
  * The dormant issue #170 boundary-reject hook, factored ONCE so validate/register/watch can't
@@ -12,4 +20,17 @@ export declare function printLoaderWarnings(warnings: LoaderWarning[]): void;
12
20
  export declare function rejectOnErrorSeverity(warnings: LoaderWarning[], policy?: Record<WarningCode, 'warn' | 'error'>): boolean;
13
21
  /** True if `--strict` should fail the command given these accumulated warnings. */
14
22
  export declare function failsStrict(warnings: LoaderWarning[]): boolean;
23
+ /**
24
+ * Renders a load failure without saying "invalid" twice (issue #417).
25
+ *
26
+ * The loader's own message already begins `Invalid workflow: …`, so wrapping it in `Invalid: `
27
+ * produced `Invalid: Invalid workflow: Step 'x': …` — an author's first three words are the same
28
+ * word twice, before anything they can act on. Where the message announces itself, it is printed
29
+ * verbatim; where it does not (a non-loader error surfacing on the same path), the prefix still
30
+ * earns its place.
31
+ *
32
+ * Applies only to the message-echoing renders. The standalone strict-escalation lines have their
33
+ * own text and are untouched.
34
+ */
35
+ export declare function renderLoadFailure(message: string): string;
15
36
  //# sourceMappingURL=loader-warnings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader-warnings.d.ts","sourceRoot":"","sources":["../../src/lib/loader-warnings.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAExB,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAInE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,EAAE,EACzB,MAAM,GAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAkB,GAC7D,OAAO,CAET;AAWD,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAE9D"}
1
+ {"version":3,"file":"loader-warnings.d.ts","sourceRoot":"","sources":["../../src/lib/loader-warnings.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAiBxB;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CASnE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,EAAE,EACzB,MAAM,GAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAkB,GAC7D,OAAO,CAET;AAWD,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAE9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD"}
@@ -3,10 +3,35 @@
3
3
  // only caller of renderLoaderWarning — no command hand-rolls a `⚠ ` string), and the dormant
4
4
  // #170 boundary-reject is factored into ONE shared helper so validate/register/watch can't drift.
5
5
  import { renderLoaderWarning, resolveSeverity, DEFAULT_POLICY, } from '@sensigo/realm';
6
- /** Prints every warning via the single renderLoaderWarning format source. */
6
+ /**
7
+ * The unknown-key warning is minted with "— ignored", which is true of the LENIENT loader
8
+ * (run/agent/listen really do ignore the key and carry on) and false here: the only callers of
9
+ * this function are validate/register/watch, and post-#170 those three REFUSE a workflow whose
10
+ * warning resolves to 'error'. Printing "— ignored" one line above "escalated to an error" tells
11
+ * the author the opposite of what is about to happen to them.
12
+ *
13
+ * Substituted at the RENDER, not the mint, precisely because the mint is shared with the lenient
14
+ * path — where the original wording is true and worth keeping. The did-you-mean fragment is
15
+ * untouched: it is the most useful half of the line and the reason the author can fix this in one
16
+ * edit.
17
+ */
18
+ const IGNORED_CLAUSE = '— ignored';
19
+ const REFUSED_CLAUSE = '— REFUSED below';
20
+ /**
21
+ * Prints every warning via the single renderLoaderWarning format source, correcting the
22
+ * "— ignored" claim for any warning this boundary will actually refuse.
23
+ *
24
+ * Resolved against DEFAULT_POLICY, which is the policy the boundary-reject itself uses. A warning
25
+ * that only fails under `--strict` still renders "— ignored" — see the report's design note; the
26
+ * `--strict` path prints its own "failing due to --strict" line, so the author is not left
27
+ * without an explanation.
28
+ */
7
29
  export function printLoaderWarnings(warnings) {
8
30
  for (const w of warnings) {
9
- console.warn(renderLoaderWarning(w));
31
+ const line = renderLoaderWarning(w);
32
+ console.warn(resolveSeverity(w.code, DEFAULT_POLICY) === 'error'
33
+ ? line.replace(IGNORED_CLAUSE, REFUSED_CLAUSE)
34
+ : line);
10
35
  }
11
36
  }
12
37
  /**
@@ -30,4 +55,19 @@ const ALL_ERROR_POLICY = Object.fromEntries(Object.keys(DEFAULT_POLICY).map((cod
30
55
  export function failsStrict(warnings) {
31
56
  return rejectOnErrorSeverity(warnings, ALL_ERROR_POLICY);
32
57
  }
58
+ /**
59
+ * Renders a load failure without saying "invalid" twice (issue #417).
60
+ *
61
+ * The loader's own message already begins `Invalid workflow: …`, so wrapping it in `Invalid: `
62
+ * produced `Invalid: Invalid workflow: Step 'x': …` — an author's first three words are the same
63
+ * word twice, before anything they can act on. Where the message announces itself, it is printed
64
+ * verbatim; where it does not (a non-loader error surfacing on the same path), the prefix still
65
+ * earns its place.
66
+ *
67
+ * Applies only to the message-echoing renders. The standalone strict-escalation lines have their
68
+ * own text and are untouched.
69
+ */
70
+ export function renderLoadFailure(message) {
71
+ return message.startsWith('Invalid workflow:') ? message : `Invalid: ${message}`;
72
+ }
33
73
  //# sourceMappingURL=loader-warnings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader-warnings.js","sourceRoot":"","sources":["../../src/lib/loader-warnings.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,gGAAgG;AAChG,6FAA6F;AAC7F,kGAAkG;AAClG,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,GAGf,MAAM,gBAAgB,CAAC;AAExB,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CAAC,QAAyB;IAC3D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAyB,EACzB,SAAgD,cAAc;IAE9D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,gBAAgB,GAA0C,MAAM,CAAC,WAAW,CAC/E,MAAM,CAAC,IAAI,CAAC,cAAc,CAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CACrC,CAAC;AAE3C,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAAC,QAAyB;IACnD,OAAO,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"loader-warnings.js","sourceRoot":"","sources":["../../src/lib/loader-warnings.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,gGAAgG;AAChG,6FAA6F;AAC7F,kGAAkG;AAClG,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,GAGf,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;GAWG;AACH,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAyB;IAC3D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CACV,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,OAAO;YACjD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC;YAC9C,CAAC,CAAC,IAAI,CACT,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAyB,EACzB,SAAgD,cAAc;IAE9D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,gBAAgB,GAA0C,MAAM,CAAC,WAAW,CAC/E,MAAM,CAAC,IAAI,CAAC,cAAc,CAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CACrC,CAAC;AAE3C,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAAC,QAAyB;IACnD,OAAO,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,OAAO,EAAE,CAAC;AACnF,CAAC"}