@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.
- package/dist/agent/providers/agent-utils.d.ts +37 -13
- package/dist/agent/providers/agent-utils.d.ts.map +1 -1
- package/dist/agent/providers/agent-utils.js +92 -17
- package/dist/agent/providers/agent-utils.js.map +1 -1
- package/dist/agent/run-attach.d.ts.map +1 -1
- package/dist/agent/run-attach.js +8 -21
- package/dist/agent/run-attach.js.map +1 -1
- package/dist/commands/agent.d.ts +6 -0
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +28 -4
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/drain.d.ts.map +1 -1
- package/dist/commands/drain.js +60 -9
- package/dist/commands/drain.js.map +1 -1
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +20 -2
- package/dist/commands/inspect.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +61 -8
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/listen.d.ts +13 -0
- package/dist/commands/listen.d.ts.map +1 -1
- package/dist/commands/listen.js +36 -4
- package/dist/commands/listen.js.map +1 -1
- package/dist/commands/register.d.ts +1 -14
- package/dist/commands/register.d.ts.map +1 -1
- package/dist/commands/register.js +52 -56
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/replay.d.ts.map +1 -1
- package/dist/commands/replay.js +4 -2
- package/dist/commands/replay.js.map +1 -1
- package/dist/commands/respond.d.ts.map +1 -1
- package/dist/commands/respond.js +30 -3
- package/dist/commands/respond.js.map +1 -1
- package/dist/commands/resume.d.ts.map +1 -1
- package/dist/commands/resume.js +3 -2
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/run.d.ts +35 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +246 -12
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +51 -8
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/validate.d.ts +31 -0
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +658 -132
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/watch.d.ts +43 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +366 -42
- package/dist/commands/watch.js.map +1 -1
- package/dist/commands/workflow-list.d.ts +16 -0
- package/dist/commands/workflow-list.d.ts.map +1 -0
- package/dist/commands/workflow-list.js +96 -0
- package/dist/commands/workflow-list.js.map +1 -0
- package/dist/commands-registry.d.ts.map +1 -1
- package/dist/commands-registry.js +2 -0
- package/dist/commands-registry.js.map +1 -1
- package/dist/extensions/load-project-extensions.d.ts.map +1 -1
- package/dist/extensions/load-project-extensions.js +9 -3
- package/dist/extensions/load-project-extensions.js.map +1 -1
- package/dist/index.js +22 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/admission-context.d.ts +58 -0
- package/dist/lib/admission-context.d.ts.map +1 -0
- package/dist/lib/admission-context.js +57 -0
- package/dist/lib/admission-context.js.map +1 -0
- package/dist/lib/load-workflow-for-admission.d.ts +69 -0
- package/dist/lib/load-workflow-for-admission.d.ts.map +1 -0
- package/dist/lib/load-workflow-for-admission.js +130 -0
- package/dist/lib/load-workflow-for-admission.js.map +1 -0
- package/dist/lib/loader-warnings.d.ts +28 -10
- package/dist/lib/loader-warnings.d.ts.map +1 -1
- package/dist/lib/loader-warnings.js +84 -30
- package/dist/lib/loader-warnings.js.map +1 -1
- 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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"}
|
package/dist/commands/watch.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/commands/watch.js
CHANGED
|
@@ -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 {
|
|
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
|
|
55
|
+
const { definition, warnings } = await loadWorkflowForAdmission(filePath, {
|
|
56
|
+
surface: 'watch',
|
|
57
|
+
});
|
|
28
58
|
if (rejectOnErrorSeverity(warnings)) {
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
35
|
-
|
|
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
|
|
39
|
-
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
//
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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":"AAAA,oFAAoF;AACpF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mCAAmC,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,KAAwB;IACpE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAC7E,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC9B,OAAO,CAAC,KAAK,CACX,IAAI,SAAS,eAAe,UAAU,CAAC,EAAE,yEAAyE,CACnH,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACjC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CACT,IAAI,SAAS,iBAAiB,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,SAAS,CACrH,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,YAAY,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,KAAwB,EACxB,MAAoB,EACpB,WAAoB;IAEpB,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEpC,gFAAgF;IAChF,IAAI,mBAAmB,GAAG,WAAW,CAAC;IACtC,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,qFAAqF;YACrF,iFAAiF;YACjF,gFAAgF;YAChF,MAAM,EAAE,UAAU,EAAE,GAAG,mCAAmC,CAAC,QAAQ,CAAC,CAAC;YACrE,mBAAmB;gBACjB,UAAU,CAAC,YAAY,KAAK,SAAS;oBACnC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC;oBAC/C,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;YACnE,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAE/D,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAiB,EAAE,EAAE;YACzC,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,KAAK,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACjC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,kDAAkD;IAClD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,eAAe,GAAG,mBAAmB,CAAC;IAC5C,MAAM,aAAa,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,KAAK,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACjC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,QAAQ,CAAC,QAAQ,EAAE,kDAAkD,CAAC;KACtE,WAAW,CAAC,+DAA+D,CAAC;KAC5E,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,EAAE;IAClC,MAAM,QAAQ,GACZ,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAEvC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,yBAAyB,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
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
|