@sensigo/realm-cli 0.40.0 → 0.42.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 (77) hide show
  1. package/dist/agent/providers/agent-utils.d.ts +37 -13
  2. package/dist/agent/providers/agent-utils.d.ts.map +1 -1
  3. package/dist/agent/providers/agent-utils.js +92 -17
  4. package/dist/agent/providers/agent-utils.js.map +1 -1
  5. package/dist/agent/run-attach.d.ts.map +1 -1
  6. package/dist/agent/run-attach.js +8 -21
  7. package/dist/agent/run-attach.js.map +1 -1
  8. package/dist/commands/agent.d.ts +6 -0
  9. package/dist/commands/agent.d.ts.map +1 -1
  10. package/dist/commands/agent.js +28 -4
  11. package/dist/commands/agent.js.map +1 -1
  12. package/dist/commands/drain.d.ts.map +1 -1
  13. package/dist/commands/drain.js +60 -9
  14. package/dist/commands/drain.js.map +1 -1
  15. package/dist/commands/inspect.d.ts.map +1 -1
  16. package/dist/commands/inspect.js +20 -2
  17. package/dist/commands/inspect.js.map +1 -1
  18. package/dist/commands/list.d.ts.map +1 -1
  19. package/dist/commands/list.js +61 -8
  20. package/dist/commands/list.js.map +1 -1
  21. package/dist/commands/listen.d.ts +13 -0
  22. package/dist/commands/listen.d.ts.map +1 -1
  23. package/dist/commands/listen.js +36 -4
  24. package/dist/commands/listen.js.map +1 -1
  25. package/dist/commands/register.d.ts +1 -14
  26. package/dist/commands/register.d.ts.map +1 -1
  27. package/dist/commands/register.js +52 -56
  28. package/dist/commands/register.js.map +1 -1
  29. package/dist/commands/replay.d.ts.map +1 -1
  30. package/dist/commands/replay.js +4 -2
  31. package/dist/commands/replay.js.map +1 -1
  32. package/dist/commands/respond.d.ts.map +1 -1
  33. package/dist/commands/respond.js +30 -3
  34. package/dist/commands/respond.js.map +1 -1
  35. package/dist/commands/resume.d.ts.map +1 -1
  36. package/dist/commands/resume.js +3 -2
  37. package/dist/commands/resume.js.map +1 -1
  38. package/dist/commands/run.d.ts +35 -0
  39. package/dist/commands/run.d.ts.map +1 -1
  40. package/dist/commands/run.js +246 -12
  41. package/dist/commands/run.js.map +1 -1
  42. package/dist/commands/test.d.ts.map +1 -1
  43. package/dist/commands/test.js +51 -8
  44. package/dist/commands/test.js.map +1 -1
  45. package/dist/commands/validate.d.ts +31 -0
  46. package/dist/commands/validate.d.ts.map +1 -1
  47. package/dist/commands/validate.js +658 -132
  48. package/dist/commands/validate.js.map +1 -1
  49. package/dist/commands/watch.d.ts +43 -1
  50. package/dist/commands/watch.d.ts.map +1 -1
  51. package/dist/commands/watch.js +366 -42
  52. package/dist/commands/watch.js.map +1 -1
  53. package/dist/commands/workflow-list.d.ts +16 -0
  54. package/dist/commands/workflow-list.d.ts.map +1 -0
  55. package/dist/commands/workflow-list.js +96 -0
  56. package/dist/commands/workflow-list.js.map +1 -0
  57. package/dist/commands-registry.d.ts.map +1 -1
  58. package/dist/commands-registry.js +2 -0
  59. package/dist/commands-registry.js.map +1 -1
  60. package/dist/extensions/load-project-extensions.d.ts.map +1 -1
  61. package/dist/extensions/load-project-extensions.js +9 -3
  62. package/dist/extensions/load-project-extensions.js.map +1 -1
  63. package/dist/index.js +22 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/lib/admission-context.d.ts +58 -0
  66. package/dist/lib/admission-context.d.ts.map +1 -0
  67. package/dist/lib/admission-context.js +57 -0
  68. package/dist/lib/admission-context.js.map +1 -0
  69. package/dist/lib/load-workflow-for-admission.d.ts +69 -0
  70. package/dist/lib/load-workflow-for-admission.d.ts.map +1 -0
  71. package/dist/lib/load-workflow-for-admission.js +130 -0
  72. package/dist/lib/load-workflow-for-admission.js.map +1 -0
  73. package/dist/lib/loader-warnings.d.ts +28 -10
  74. package/dist/lib/loader-warnings.d.ts.map +1 -1
  75. package/dist/lib/loader-warnings.js +84 -30
  76. package/dist/lib/loader-warnings.js.map +1 -1
  77. package/package.json +4 -4
@@ -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,11 +1,53 @@
1
1
  import { Command } from 'commander';
2
2
  import type { WorkflowRegistrar } from '@sensigo/realm';
3
+ /**
4
+ * A trailing-edge coalescer: every `trigger()` (re)arms one timer, so a burst of calls inside the
5
+ * window produces exactly one `fn()` at the end of it (issue #449).
6
+ *
7
+ * WHAT ACTUALLY BURSTS, precisely — the YAML watcher is not the reason. On this platform the
8
+ * basename filter already reduces an atomic save to ONE passing event. The burst is the
9
+ * profiles watcher, which has no filter: creating a file there emits `rename` + `change`, two
10
+ * events, probe-proven. Cross-platform event shapes vary besides, so one instance is shared by
11
+ * both watchers rather than reasoned about per-watcher.
12
+ *
13
+ * `cancel()` exists because an abort must not leave a pending timer: it would fire after the
14
+ * watch resolved, re-registering into a store whose owner has moved on. Idempotent.
15
+ *
16
+ * @internal Exported for testing only.
17
+ */
18
+ export declare function makeCoalescedTrigger(fn: () => void, delayMs: number): {
19
+ trigger(): void;
20
+ cancel(): void;
21
+ };
3
22
  /**
4
23
  * Watches a workflow YAML file and re-registers it into the given store on every change.
5
24
  * Also watches the profiles directory alongside the YAML — any file change there triggers
6
25
  * re-registration. If the profiles directory does not exist, only the YAML is watched.
7
26
  * Performs an initial registration before entering the watch loop.
8
- * Resolves when the watcher is closed (e.g. when the AbortSignal fires).
27
+ * Resolves when the watcher is closed (e.g. when the AbortSignal fires) — or THROWS when the
28
+ * watched directory stops existing (both watchers closed first — the throw never leaves a live
29
+ * watcher behind).
30
+ *
31
+ * Four mechanics worth knowing (issues #449, #453):
32
+ * - The YAML watch is on the file's DIRECTORY, filtered by basename — a file watch dies with the
33
+ * inode an atomic save renames away.
34
+ * - Both watchers are persistent, so they hold the process open; Ctrl+C is what stops it.
35
+ * - Each save's event burst is coalesced into one re-registration on a 100ms trailing edge.
36
+ * - The watched directory ITSELF can be replaced or removed. Replacement it can OBSERVE — the
37
+ * directory's own rename event fires whether it was deleted or moved, and if the path still
38
+ * exists afterwards (a fast delete+recreate, an atomic tree replace, a same-named sibling) the
39
+ * watch closes its stale handle and re-arms fresh on the same path, silently. If the path does
40
+ * NOT exist when that check runs, the watch stops and this function throws — never waits for
41
+ * the path to come back; restart is the recovery, deliberately (the #449 posture: no
42
+ * late-mount, no self-healing poll). Detection rides the platform's watcher events, so it
43
+ * degrades to the pre-#453 behaviour wherever those events do not arrive — an ancestor
44
+ * directory moving away, with no further activity inside, delivers nothing to this handle at
45
+ * all (documented residual, not polled around).
46
+ *
47
+ * RESTART REQUIRED for three things, all read once at startup and never re-read: the extension
48
+ * modules (ESM cache, note below), a `profiles/` directory created after the watch began, and a
49
+ * `profiles_dir:` value edited mid-watch — an edit to that key keeps watching the OLD directory
50
+ * until you restart. No late-mount machinery; watch-before-create is a separate feature.
9
51
  *
10
52
  * @param filePath Path to the workflow YAML file.
11
53
  * @param store The workflow registrar to register into — injected, never instantiated here.
@@ -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;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"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,gBAAgB,CAAC;AAwGvE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,IAAI,EACd,OAAO,EAAE,MAAM,GACd;IAAE,OAAO,IAAI,IAAI,CAAC;IAAC,MAAM,IAAI,IAAI,CAAA;CAAE,CAerC;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;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,CAgRf;AAED,eAAO,MAAM,YAAY,SAoBrB,CAAC"}
@@ -1,10 +1,10 @@
1
1
  // realm workflow watch <path> — watches a workflow YAML and re-registers on change.
2
2
  import { watch, existsSync } from 'node:fs';
3
- import { join, dirname, resolve } from 'node:path';
3
+ import { join, dirname, resolve, basename } from 'node:path';
4
4
  import { Command } from 'commander';
5
- import { loadWorkflowFromFileWithDiagnostics, WorkflowError } from '@sensigo/realm';
6
- import { loadWorkflowForRegistration } from './register.js';
7
- import { renderLoadFailure, printLoaderWarnings, rejectOnErrorSeverity, } from '../lib/loader-warnings.js';
5
+ import { loadWorkflowFromFileWithDiagnostics, renderLoaderWarning, WorkflowError, } from '@sensigo/realm';
6
+ import { loadWorkflowForAdmission, ExtensionLoadError, } from '../lib/load-workflow-for-admission.js';
7
+ import { renderLoadFailure, renderEscalationLine, 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.
@@ -21,22 +21,69 @@ import { renderLoadFailure, printLoaderWarnings, rejectOnErrorSeverity, } from '
21
21
  * @param filePath Path to the workflow YAML file.
22
22
  * @param store The registrar to register into.
23
23
  */
24
+ /**
25
+ * issue #425: watch's own lines are timestamped and its warnings block was not, so on a busy
26
+ * watch session the warnings floated free of the save that produced them. One gated header ties
27
+ * them together. GATED because the clean-save path below calls printLoaderWarnings
28
+ * unconditionally: an ungated header would print `[iso] 0 warnings:` over nothing on every
29
+ * successful save. On console.warn, so it heads the block it belongs to rather than splitting
30
+ * across channels.
31
+ */
32
+ function printWarningsBlock(timestamp, warnings, opts) {
33
+ if (warnings.length === 0)
34
+ return;
35
+ console.warn(`[${timestamp}] ${warnings.length} ${warnings.length === 1 ? 'warning' : 'warnings'}:`);
36
+ // issue #463 — `plain` renders without going through printLoaderWarnings. On the
37
+ // extensions-failure path the escalation gate never ran and the refusal below is the
38
+ // extensions error, so printLoaderWarnings' now-deleted `— REFUSED below` substitution (issue
39
+ // #540) would have named the wrong cause here (test.ts's render comment, #450's reasoning). The
40
+ // substitution is gone — the two branches below now render identical bytes, kept as two call
41
+ // shapes on purpose (#542) — and the distinction still matters for WHICH population each caller
42
+ // is in: the three boundary callers pass no opts, because a refusal of the warning's own
43
+ // follows there — the escalation line, or renderLoadFailure's `Invalid:`.
44
+ if (opts?.plain === true) {
45
+ for (const w of warnings)
46
+ console.warn(renderLoaderWarning(w));
47
+ }
48
+ else {
49
+ printLoaderWarnings(warnings);
50
+ }
51
+ }
24
52
  async function registerFile(filePath, store) {
25
53
  const timestamp = new Date().toISOString();
26
54
  try {
27
- const { definition, warnings } = await loadWorkflowForRegistration(filePath);
55
+ const { definition, warnings } = await loadWorkflowForAdmission(filePath, {
56
+ surface: 'watch',
57
+ });
28
58
  if (rejectOnErrorSeverity(warnings)) {
29
- printLoaderWarnings(warnings);
30
- console.error(`[${timestamp}] Invalid: '${definition.id}' has a warning escalated to an error by policy refusing to register.`);
59
+ printWarningsBlock(timestamp, warnings);
60
+ // One grammar with validate and register (issue #451) plus a tail those two do not
61
+ // need. They exit, so the refusal is the exit; watch CONTINUES, and a line that only
62
+ // named the warning would leave it unsaid whether the file was registered anyway.
63
+ console.error(`[${timestamp}] ${renderEscalationLine(warnings)} — refusing to register.`);
31
64
  return;
32
65
  }
33
66
  await store.register(definition);
34
- printLoaderWarnings(warnings);
35
- console.log(`[${timestamp}] Registered: ${definition.id} v${definition.version} (${Object.keys(definition.steps).length} steps)`);
67
+ printWarningsBlock(timestamp, warnings);
68
+ const stepCount = Object.keys(definition.steps).length;
69
+ console.log(`[${timestamp}] Registered: ${definition.id} v${definition.version} (${stepCount} ${stepCount === 1 ? 'step' : 'steps'})`);
36
70
  }
37
71
  catch (err) {
38
- if (err instanceof WorkflowError) {
39
- console.error(`[${timestamp}] ${renderLoadFailure(err.message)}`);
72
+ if (err instanceof ExtensionLoadError) {
73
+ // issue #451 — the sentence run, validate and register print for this class. The
74
+ // watcher keeps running: fix the module, save, and the next pass re-registers.
75
+ // issue #463 — the workflow's own warnings first, in the plain form (see printWarningsBlock);
76
+ // the block's empty-array return is the belt under the ABSENT guard.
77
+ if (err.warnings !== undefined) {
78
+ printWarningsBlock(timestamp, [...err.warnings], { plain: true });
79
+ }
80
+ console.error(`[${timestamp}] Error loading extensions: ${err.message}`);
81
+ }
82
+ else if (err instanceof WorkflowError) {
83
+ // issue #424 — see the comment at validate.ts's extension-free catch.
84
+ if (err.warnings !== undefined)
85
+ printWarningsBlock(timestamp, [...err.warnings]);
86
+ console.error(`[${timestamp}] ${renderLoadFailure(err)}`);
40
87
  }
41
88
  else {
42
89
  const message = err instanceof Error ? err.message : String(err);
@@ -44,12 +91,87 @@ async function registerFile(filePath, store) {
44
91
  }
45
92
  }
46
93
  }
94
+ /** The trailing-edge window a save's event burst collapses into (issue #449). */
95
+ const COALESCE_MS = 100;
96
+ /**
97
+ * A trailing-edge coalescer: every `trigger()` (re)arms one timer, so a burst of calls inside the
98
+ * window produces exactly one `fn()` at the end of it (issue #449).
99
+ *
100
+ * WHAT ACTUALLY BURSTS, precisely — the YAML watcher is not the reason. On this platform the
101
+ * basename filter already reduces an atomic save to ONE passing event. The burst is the
102
+ * profiles watcher, which has no filter: creating a file there emits `rename` + `change`, two
103
+ * events, probe-proven. Cross-platform event shapes vary besides, so one instance is shared by
104
+ * both watchers rather than reasoned about per-watcher.
105
+ *
106
+ * `cancel()` exists because an abort must not leave a pending timer: it would fire after the
107
+ * watch resolved, re-registering into a store whose owner has moved on. Idempotent.
108
+ *
109
+ * @internal Exported for testing only.
110
+ */
111
+ export function makeCoalescedTrigger(fn, delayMs) {
112
+ let timer;
113
+ return {
114
+ trigger() {
115
+ if (timer !== undefined)
116
+ clearTimeout(timer);
117
+ timer = setTimeout(() => {
118
+ timer = undefined;
119
+ fn();
120
+ }, delayMs);
121
+ },
122
+ cancel() {
123
+ if (timer !== undefined)
124
+ clearTimeout(timer);
125
+ timer = undefined;
126
+ },
127
+ };
128
+ }
129
+ /**
130
+ * issue #453 — thrown when the watched directory itself is gone: deleted, or moved somewhere the
131
+ * watch cannot follow (an ancestor moved, or the directory's own self-event arrived and the path
132
+ * is absent). The single source of that claim's text — minted here, thrown once, rendered once by
133
+ * the CLI catch below as `Error: ` + this message.
134
+ */
135
+ const DEATH_MSG = "The watched directory no longer exists — deleted, or moved out from under the watch. Nothing is watched any more; restart 'realm workflow watch' when the path exists again.";
136
+ /**
137
+ * issue #453 — the profiles directory's own death is NOT fatal (it was optional at startup,
138
+ * issue #449's :257-260 non-goal): the YAML watch continues, and this is the honest replacement
139
+ * for what used to be silence. Timestamped like the file's other lines. Minted through this ONE
140
+ * helper for both call sites (the coalesced callback's maintenance branch, and the profiles
141
+ * loop's own catch-on-reopen arm) so the two can never drift apart.
142
+ */
143
+ function renderProfilesGone() {
144
+ return `[${new Date().toISOString()}] The profiles directory is gone — profile edits are no longer watched. Restart watch if you recreate it.`;
145
+ }
47
146
  /**
48
147
  * Watches a workflow YAML file and re-registers it into the given store on every change.
49
148
  * Also watches the profiles directory alongside the YAML — any file change there triggers
50
149
  * re-registration. If the profiles directory does not exist, only the YAML is watched.
51
150
  * Performs an initial registration before entering the watch loop.
52
- * Resolves when the watcher is closed (e.g. when the AbortSignal fires).
151
+ * Resolves when the watcher is closed (e.g. when the AbortSignal fires) — or THROWS when the
152
+ * watched directory stops existing (both watchers closed first — the throw never leaves a live
153
+ * watcher behind).
154
+ *
155
+ * Four mechanics worth knowing (issues #449, #453):
156
+ * - The YAML watch is on the file's DIRECTORY, filtered by basename — a file watch dies with the
157
+ * inode an atomic save renames away.
158
+ * - Both watchers are persistent, so they hold the process open; Ctrl+C is what stops it.
159
+ * - Each save's event burst is coalesced into one re-registration on a 100ms trailing edge.
160
+ * - The watched directory ITSELF can be replaced or removed. Replacement it can OBSERVE — the
161
+ * directory's own rename event fires whether it was deleted or moved, and if the path still
162
+ * exists afterwards (a fast delete+recreate, an atomic tree replace, a same-named sibling) the
163
+ * watch closes its stale handle and re-arms fresh on the same path, silently. If the path does
164
+ * NOT exist when that check runs, the watch stops and this function throws — never waits for
165
+ * the path to come back; restart is the recovery, deliberately (the #449 posture: no
166
+ * late-mount, no self-healing poll). Detection rides the platform's watcher events, so it
167
+ * degrades to the pre-#453 behaviour wherever those events do not arrive — an ancestor
168
+ * directory moving away, with no further activity inside, delivers nothing to this handle at
169
+ * all (documented residual, not polled around).
170
+ *
171
+ * RESTART REQUIRED for three things, all read once at startup and never re-read: the extension
172
+ * modules (ESM cache, note below), a `profiles/` directory created after the watch began, and a
173
+ * `profiles_dir:` value edited mid-watch — an edit to that key keeps watching the OLD directory
174
+ * until you restart. No late-mount machinery; watch-before-create is a separate feature.
53
175
  *
54
176
  * @param filePath Path to the workflow YAML file.
55
177
  * @param store The workflow registrar to register into — injected, never instantiated here.
@@ -78,38 +200,240 @@ export async function watchWorkflow(filePath, store, signal, profilesDir) {
78
200
  resolvedProfilesDir = join(workflowDir, 'profiles');
79
201
  }
80
202
  }
81
- const watchYaml = new Promise((resolve, reject) => {
82
- const watcher = watch(filePath, { persistent: false, signal });
83
- watcher.on('change', (eventType) => {
84
- if (eventType === 'change') {
85
- void registerFile(filePath, store);
86
- }
87
- });
88
- watcher.on('error', (err) => {
89
- reject(err);
90
- });
91
- watcher.on('close', () => {
92
- resolve();
93
- });
94
- });
95
- // Only watch the profiles directory if it exists.
96
- if (!existsSync(resolvedProfilesDir)) {
97
- return watchYaml;
203
+ // issue #449 `fs.watch` on the FILE dies with the inode. A vim-style atomic save writes a
204
+ // temp file and renames it over the target, so the watched inode is renamed away: the save that
205
+ // does it can still slip through as the dying inode's final `change` (executed: v2 DOES
206
+ // register), but the handle is dead from then on — the NEXT atomic save, and an ordinary
207
+ // in-place write after it, emit nothing at all (executed: count stays 2 through both). One vim
208
+ // save left watch silently blind to every later edit.
209
+ //
210
+ // Watching the DIRECTORY and filtering by basename fixes it structurally: the directory sees
211
+ // the rename INTO the name, and a directory handle has no inode to die with. No eventType
212
+ // filter — event shapes vary by platform, and on this one an atomic save's passing event is a
213
+ // `rename`, not a `change`.
214
+ //
215
+ // issue #449 — the missing-file contract, preserved deliberately. `fs.watch` on an absent FILE
216
+ // threw ENOENT and the action exited 1; a DIRECTORY watch would happily watch nothing forever,
217
+ // silently. Same error, same exit, raised explicitly now that the watch itself no longer does.
218
+ //
219
+ // POSITION IS LOAD-BEARING: before any resource exists. Thrown after the watcher was created,
220
+ // this left a live persistent watcher behind a reported failure — executed: the rejection
221
+ // arrives, a workflow.yaml created afterwards still gets registered by the phantom, and the
222
+ // caller's event loop is held open by a watch it was told had failed. It also orphaned the
223
+ // never-awaited watchYaml promise, so a later 'error' on the leaked handle would have surfaced
224
+ // as an unhandled rejection. The CLI never saw either — its catch calls process.exit(1) — but
225
+ // the function's own contract ("resolves when the watcher is closed") cannot be honoured by a
226
+ // rejection that closes nothing.
227
+ if (!existsSync(filePath)) {
228
+ throw new Error(`ENOENT: no such file or directory, watch '${filePath}'`);
98
229
  }
230
+ // Computed BEFORE the Promise below: the executor's `resolve` parameter shadows node:path's
231
+ // `resolve`, so path math inside it is a trap.
232
+ const watchDir = dirname(resolve(filePath));
233
+ const watchName = basename(filePath);
234
+ // issue #453 — the directory's OWN basename: its rename event is surfaced with this name, not
235
+ // the watched file's (IN_DELETE_SELF/IN_MOVE_SELF; grounding P3a/P3b). Computed once, beside
236
+ // the names above — never recomputed on re-arm, since a re-arm always watches the SAME path.
237
+ const dirSelfName = basename(watchDir);
238
+ // issue #453 — an INTERNAL controller, always present, so a fatal death or a watcher 'error'
239
+ // can stop BOTH loops even when the caller passed no signal at all (or the caller's signal
240
+ // never fires). `effSignal` is what every fs.watch call below actually receives.
241
+ const internal = new AbortController();
242
+ const effSignal = signal === undefined ? internal.signal : AbortSignal.any([signal, internal.signal]);
243
+ // The single funnel every fatal condition writes to; thrown once, after both loops have ended.
244
+ let fatal;
245
+ // issue #453 — the coalesced callback's two inputs, set by the 'change' handlers below and
246
+ // consumed (snapshotted, then cleared) at the TOP of the callback — never reset per-branch,
247
+ // which would create a two-readings ambiguity between the branch that sets them and the branch
248
+ // that reads them.
249
+ let selfEventSeen = false;
250
+ let profilesSelfSeen = false;
251
+ // Latches false the moment the profiles directory is found gone — a post-close straggler event
252
+ // on the (now-idle) old profiles watcher is then a no-op, never a second PROFILES_GONE line.
253
+ let profilesLoopLive = true;
99
254
  const profilesDirPath = resolvedProfilesDir;
100
- const watchProfiles = new Promise((resolve, reject) => {
101
- const watcher = watch(profilesDirPath, { persistent: false, signal });
102
- watcher.on('change', () => {
103
- void registerFile(filePath, store);
104
- });
105
- watcher.on('error', (err) => {
106
- reject(err);
107
- });
108
- watcher.on('close', () => {
109
- resolve();
110
- });
111
- });
112
- await Promise.all([watchYaml, watchProfiles]);
255
+ // Each loop's "please end your current watcher with this outcome" request, set by the
256
+ // coalesced callback (or the loop's own error/catch arm) and read by that SAME watcher's
257
+ // 'close' handler once close() actually fires. Reset to 'aborted' at the top of every new
258
+ // iteration, so an iteration that never gets a request defaults to ending the whole loop.
259
+ let yamlPendingOutcome = 'aborted';
260
+ let profilesPendingOutcome = 'aborted';
261
+ // The CURRENT watcher's own close(), reachable from the coalesced callback so it can request a
262
+ // re-arm or a gone-stop without knowing which iteration is live.
263
+ let closeCurrentYaml;
264
+ let closeCurrentProfiles;
265
+ // issue #453 — the single discriminate-first chokepoint. Both watchers' 'change' handlers
266
+ // funnel here (via the shared coalescer), so death, re-arm and profiles maintenance are decided
267
+ // in ONE place, in a fixed order, never per-branch.
268
+ function onCoalesced() {
269
+ const selfSeen = selfEventSeen;
270
+ const profSeen = profilesSelfSeen;
271
+ selfEventSeen = false;
272
+ profilesSelfSeen = false;
273
+ // (a) Death net — checked FIRST, unconditionally. This is what catches an ancestor-mv (no
274
+ // self event ever reaches this handle for that case — grounding addendum) and what makes an
275
+ // mv-then-immediate-write race die with the honest message instead of a misattributed one:
276
+ // a self event and a content event can both be pending when this runs, but the directory's
277
+ // absence is checked before either is acted on.
278
+ if (!existsSync(watchDir)) {
279
+ fatal ??= new Error(DEATH_MSG);
280
+ internal.abort();
281
+ return;
282
+ }
283
+ // (b) YAML re-arm. SILENT — no line: any positive wording ("replaced") is unprovable against
284
+ // the sibling-collision case (a file literally named like the directory emits the identical
285
+ // event shape — grounding E2c), so the only observable contract is whatever the next
286
+ // registerFile call prints. Requesting a re-arm on a directory that in fact never died (E2c)
287
+ // is harmless — the old watcher closes, a fresh one opens on the same live path.
288
+ if (selfSeen) {
289
+ yamlPendingOutcome = 'rearm';
290
+ closeCurrentYaml?.();
291
+ }
292
+ // (c) Profiles maintenance — independent of (b); either can fire alone.
293
+ if (profSeen && profilesLoopLive) {
294
+ if (!existsSync(profilesDirPath)) {
295
+ console.error(renderProfilesGone());
296
+ profilesLoopLive = false;
297
+ profilesPendingOutcome = 'gone';
298
+ closeCurrentProfiles?.();
299
+ }
300
+ else {
301
+ profilesPendingOutcome = 'rearm';
302
+ closeCurrentProfiles?.();
303
+ }
304
+ }
305
+ // (d) Fall through. Runs on the re-arm and 'gone' paths alike — a profiles-deletion burst
306
+ // still re-registers once (today's census behaviour, kept); the death path already returned
307
+ // above and never reaches here.
308
+ void registerFile(filePath, store);
309
+ }
310
+ // ONE coalescer shared by both watchers' 'change' handlers, funneling into the discriminate-first
311
+ // chokepoint above — never wired directly to registerFile. See makeCoalescedTrigger for what
312
+ // actually bursts.
313
+ const coalesced = makeCoalescedTrigger(onCoalesced, COALESCE_MS);
314
+ async function yamlLoop() {
315
+ for (;;) {
316
+ if (effSignal.aborted)
317
+ return;
318
+ let watcher;
319
+ try {
320
+ watcher = watch(watchDir, { persistent: true, signal: effSignal });
321
+ }
322
+ catch (err) {
323
+ // issue #453 — fs.watch throws SYNC ENOENT on an absent path (grounding addendum): the
324
+ // re-arm's own TOCTOU window (the directory vanishing between the death net's existsSync
325
+ // and this re-creation). The YAML loop's version of this is always fatal.
326
+ fatal ??=
327
+ err.code === 'ENOENT' ? new Error(DEATH_MSG) : err;
328
+ internal.abort();
329
+ return;
330
+ }
331
+ yamlPendingOutcome = 'aborted';
332
+ const outcome = await new Promise((resolveIter) => {
333
+ closeCurrentYaml = () => watcher.close();
334
+ watcher.on('change', (_eventType, filename) => {
335
+ // Self-name FIRST: in the pathological case where the directory is itself named
336
+ // `workflow.yaml` (dirSelfName === watchName), self-first still detects the
337
+ // directory's own death — it only degrades to a harmless extra re-arm on ordinary
338
+ // file saves, never the reverse.
339
+ if (filename === dirSelfName) {
340
+ selfEventSeen = true;
341
+ coalesced.trigger();
342
+ }
343
+ else if (filename === watchName || filename === null) {
344
+ // `null` is in the type and means "the platform could not say which file" — treat
345
+ // it as possibly-ours rather than dropping a real edit. Buffer only under
346
+ // encoding:'buffer', which is never set here.
347
+ coalesced.trigger();
348
+ }
349
+ });
350
+ watcher.on('error', (err) => {
351
+ // issue #453 — an errored FSWatcher never emits 'close' (Node nulls the handle in its
352
+ // error path specifically to avoid firing it — grounding addendum, executed against
353
+ // node internals). Waiting for 'close' here would deadlock forever with the other
354
+ // watcher already closed: settle this iteration's own promise directly.
355
+ // This arm has no test coverage on Linux — inotify never emits 'error' for the
356
+ // directory-death class this file cares about (the negative knowledge behind the whole
357
+ // design), so there is no reachable trigger to construct a cell from. Stated, not
358
+ // pretended: correctness here rests on the two executed facts cited above, not on a pin.
359
+ fatal ??= err;
360
+ internal.abort();
361
+ yamlPendingOutcome = 'aborted';
362
+ resolveIter('aborted');
363
+ });
364
+ watcher.on('close', () => {
365
+ // A 'rearm' close must NOT cancel the coalescer: the OTHER watcher may have armed it
366
+ // inside this close gap, and cancelling here would silently drop a pending save.
367
+ if (yamlPendingOutcome === 'aborted')
368
+ coalesced.cancel();
369
+ resolveIter(yamlPendingOutcome);
370
+ });
371
+ });
372
+ closeCurrentYaml = undefined;
373
+ if (outcome === 'aborted')
374
+ return;
375
+ // outcome === 'rearm': loop — a fresh watcher opens on the same path next iteration.
376
+ }
377
+ }
378
+ async function profilesLoop() {
379
+ for (;;) {
380
+ if (effSignal.aborted)
381
+ return;
382
+ let watcher;
383
+ try {
384
+ watcher = watch(profilesDirPath, { persistent: true, signal: effSignal });
385
+ }
386
+ catch (err) {
387
+ if (err.code === 'ENOENT') {
388
+ // issue #453 — the profiles directory is optional (issue #449's non-goal at startup);
389
+ // its disappearance is never fatal and never DEATH_MSG, whose "watched directory" claim
390
+ // would be false here. The YAML loop is untouched by this return.
391
+ console.error(renderProfilesGone());
392
+ profilesLoopLive = false;
393
+ return;
394
+ }
395
+ fatal ??= err;
396
+ internal.abort();
397
+ return;
398
+ }
399
+ profilesPendingOutcome = 'aborted';
400
+ const outcome = await new Promise((resolveIter) => {
401
+ closeCurrentProfiles = () => watcher.close();
402
+ watcher.on('change', (_eventType, filename) => {
403
+ if (filename === basename(profilesDirPath))
404
+ profilesSelfSeen = true;
405
+ // Still triggers unconditionally, matching today's behaviour: any change inside the
406
+ // profiles directory re-registers, self-name or not.
407
+ coalesced.trigger();
408
+ });
409
+ watcher.on('error', (err) => {
410
+ // Same settle-own-promise rule as the YAML loop's 'error' handler above, and the same
411
+ // no-cell-on-Linux disclosure applies here too.
412
+ fatal ??= err;
413
+ internal.abort();
414
+ profilesPendingOutcome = 'aborted';
415
+ resolveIter('aborted');
416
+ });
417
+ watcher.on('close', () => {
418
+ if (profilesPendingOutcome === 'aborted')
419
+ coalesced.cancel();
420
+ resolveIter(profilesPendingOutcome);
421
+ });
422
+ });
423
+ closeCurrentProfiles = undefined;
424
+ if (outcome !== 'rearm')
425
+ return;
426
+ // outcome === 'rearm': loop — a fresh watcher opens on the same path next iteration.
427
+ }
428
+ }
429
+ const loops = [yamlLoop()];
430
+ // Only watch the profiles directory if it exists at startup (issue #449's non-goal: no
431
+ // late-mount for a directory created after the watch began).
432
+ if (existsSync(resolvedProfilesDir))
433
+ loops.push(profilesLoop());
434
+ await Promise.all(loops);
435
+ if (fatal !== undefined)
436
+ throw fatal;
113
437
  }
114
438
  export const watchCommand = new Command('watch')
115
439
  .argument('<path>', 'Path to workflow directory or workflow.yaml file')
@@ -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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"}
@@ -0,0 +1,16 @@
1
+ import { Command } from 'commander';
2
+ import type { WorkflowDefinition } from '@sensigo/realm';
3
+ /**
4
+ * Alphabetical by id — the documented order, and the only one an operator can predict.
5
+ *
6
+ * Extracted and exported because the filesystem is not a reliable witness for it: `readdirSync`
7
+ * happens to return alphabetical order on this repo's ext4, so a cell that registers entries out
8
+ * of order and reads them back would pass with the sort deleted. This pins the rule itself.
9
+ *
10
+ * @internal Exported for testing only.
11
+ */
12
+ export declare function sortedById(workflows: WorkflowDefinition[]): WorkflowDefinition[];
13
+ /** The SCHEMA column: current, or a legacy marker naming the remedy. */
14
+ export declare function schemaCell(schemaVersion: number | undefined): string;
15
+ export declare const workflowListCommand: Command;
16
+ //# sourceMappingURL=workflow-list.d.ts.map