agent-nuvira 3.5.1 → 3.5.2
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/cli/chat.d.ts +42 -0
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +240 -16
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/edit.d.ts.map +1 -1
- package/dist/cli/edit.js +3 -2
- package/dist/cli/edit.js.map +1 -1
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +10 -3
- package/dist/cli/execute.js.map +1 -1
- package/dist/cli/loop-executor.d.ts +16 -0
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +9 -0
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/plan.d.ts.map +1 -1
- package/dist/cli/plan.js +18 -6
- package/dist/cli/plan.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +23 -8
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/ui/answer-view.d.ts +38 -0
- package/dist/cli/ui/answer-view.d.ts.map +1 -0
- package/dist/cli/ui/answer-view.js +72 -0
- package/dist/cli/ui/answer-view.js.map +1 -0
- package/dist/cli/ui/cards.d.ts +61 -0
- package/dist/cli/ui/cards.d.ts.map +1 -0
- package/dist/cli/ui/cards.js +141 -0
- package/dist/cli/ui/cards.js.map +1 -0
- package/dist/cli/ui/highlight.d.ts +32 -0
- package/dist/cli/ui/highlight.d.ts.map +1 -0
- package/dist/cli/ui/highlight.js +261 -0
- package/dist/cli/ui/highlight.js.map +1 -0
- package/dist/cli/ui/index.d.ts +21 -0
- package/dist/cli/ui/index.d.ts.map +1 -0
- package/dist/cli/ui/index.js +14 -0
- package/dist/cli/ui/index.js.map +1 -0
- package/dist/cli/ui/markdown.d.ts +90 -0
- package/dist/cli/ui/markdown.d.ts.map +1 -0
- package/dist/cli/ui/markdown.js +292 -0
- package/dist/cli/ui/markdown.js.map +1 -0
- package/dist/cli/ui/presenter.d.ts +147 -0
- package/dist/cli/ui/presenter.d.ts.map +1 -0
- package/dist/cli/ui/presenter.js +313 -0
- package/dist/cli/ui/presenter.js.map +1 -0
- package/dist/cli/ui/render.d.ts +52 -0
- package/dist/cli/ui/render.d.ts.map +1 -0
- package/dist/cli/ui/render.js +384 -0
- package/dist/cli/ui/render.js.map +1 -0
- package/dist/cli/ui/theme.d.ts +36 -0
- package/dist/cli/ui/theme.d.ts.map +1 -0
- package/dist/cli/ui/theme.js +92 -0
- package/dist/cli/ui/theme.js.map +1 -0
- package/dist/inference/model-entitlement.d.ts +10 -0
- package/dist/inference/model-entitlement.d.ts.map +1 -1
- package/dist/inference/model-entitlement.js +1 -1
- package/dist/inference/model-entitlement.js.map +1 -1
- package/dist/learning/auto-router.d.ts +10 -1
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +63 -11
- package/dist/learning/auto-router.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +21 -1
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +70 -4
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/tools/process-liveness.d.ts +227 -0
- package/dist/tools/process-liveness.d.ts.map +1 -0
- package/dist/tools/process-liveness.js +486 -0
- package/dist/tools/process-liveness.js.map +1 -0
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +4 -2
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/run-registry.d.ts +282 -0
- package/dist/tools/run-registry.d.ts.map +1 -0
- package/dist/tools/run-registry.js +544 -0
- package/dist/tools/run-registry.js.map +1 -0
- package/dist/tools/run-terminal.d.ts +100 -2
- package/dist/tools/run-terminal.d.ts.map +1 -1
- package/dist/tools/run-terminal.js +841 -67
- package/dist/tools/run-terminal.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +46 -0
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +115 -2
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/web-dashboard/chat-console.d.ts +25 -0
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +16 -1
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +7 -1
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +32 -1
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/dist/web-dashboard/task-registry.d.ts +98 -0
- package/dist/web-dashboard/task-registry.d.ts.map +1 -0
- package/dist/web-dashboard/task-registry.js +159 -0
- package/dist/web-dashboard/task-registry.js.map +1 -0
- package/dist/web-dashboard/task-runner.d.ts +155 -5
- package/dist/web-dashboard/task-runner.d.ts.map +1 -1
- package/dist/web-dashboard/task-runner.js +505 -14
- package/dist/web-dashboard/task-runner.js.map +1 -1
- package/package.json +1 -1
- package/src/web-dashboard/public/assets/index-DycGBWwy.js +236 -0
- package/src/web-dashboard/public/assets/index-DycGBWwy.js.map +1 -0
- package/src/web-dashboard/public/index.html +1 -1
- package/src/web-dashboard/public/assets/index-Bik91KJh.js +0 -236
- package/src/web-dashboard/public/assets/index-Bik91KJh.js.map +0 -1
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The durable half of the monitored-run registry.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS. Monitoring a long command in memory (see `run-terminal.ts`)
|
|
5
|
+
* fixed the killing, but it made the record as fragile as the process holding it:
|
|
6
|
+
* a CLI exit, a dashboard restart, a crash — all normal — and a command that is
|
|
7
|
+
* still running becomes unpollable. Nothing is left to follow it with, its real
|
|
8
|
+
* exit code is never collected, and the turn that started it can only re-run the
|
|
9
|
+
* work (wrong) or guess at the outcome. Two facts have to outlive the process:
|
|
10
|
+
*
|
|
11
|
+
* what is running — id, command, cwd, pid, start time, and how it ended;
|
|
12
|
+
* what it said — its output, from the FIRST byte as well as the last.
|
|
13
|
+
*
|
|
14
|
+
* The second one is why there is a spool file and not just a record. The
|
|
15
|
+
* in-memory buffer is a bounded TAIL (a 40MB build log must not be held), so the
|
|
16
|
+
* beginning of a long run was simply gone — the model could read the end of a
|
|
17
|
+
* failure and not the line that explained it. The spool keeps a bounded HEAD and
|
|
18
|
+
* a bounded TAIL (rewritten whole, so the file never grows past the cap), which
|
|
19
|
+
* is the part a diagnosis actually uses.
|
|
20
|
+
*
|
|
21
|
+
* Everything here is best-effort and must never break a turn: a missing, unreadable
|
|
22
|
+
* or corrupt registry is an empty registry, never a throw.
|
|
23
|
+
*/
|
|
24
|
+
/** How much of the BEGINNING of a run's output is kept. */
|
|
25
|
+
export declare const SPOOL_HEAD_BYTES = 32768;
|
|
26
|
+
/** How much of the END of a run's output is kept. */
|
|
27
|
+
export declare const SPOOL_TAIL_BYTES = 32768;
|
|
28
|
+
/**
|
|
29
|
+
* How much of a run's output is kept IN FULL before the window collapses to
|
|
30
|
+
* head+tail.
|
|
31
|
+
*
|
|
32
|
+
* WHY THIS EXISTS. A bounded window throws away the MIDDLE of a long run, and
|
|
33
|
+
* that is exactly where a failure explains itself — so the honest trade is to
|
|
34
|
+
* keep everything while everything is small. Most runs never reach this cap, so
|
|
35
|
+
* the common case stops losing anything at all; past it the file collapses to
|
|
36
|
+
* head+tail (with the dropped count stated), which keeps the guarantee that a
|
|
37
|
+
* chatty command cannot fill the disk. `NUVIRA_RUN_LOG_FULL_BYTES=0` restores
|
|
38
|
+
* "always a bounded window".
|
|
39
|
+
*/
|
|
40
|
+
export declare const SPOOL_FULL_BYTES = 2000000;
|
|
41
|
+
/** How often an in-flight spool is written out (a crash loses at most this much). */
|
|
42
|
+
export declare const SPOOL_FLUSH_MS = 2000;
|
|
43
|
+
export interface PersistedRun {
|
|
44
|
+
id: string;
|
|
45
|
+
command: string;
|
|
46
|
+
cwd: string;
|
|
47
|
+
/** The process-tree root: the shell we spawned, or the command it exec'd. */
|
|
48
|
+
pid: number;
|
|
49
|
+
startedAt: number;
|
|
50
|
+
status: 'running' | 'done';
|
|
51
|
+
exitCode: number | null;
|
|
52
|
+
endedAt?: number;
|
|
53
|
+
/** Why it stopped, when it was stopped rather than finishing on its own. */
|
|
54
|
+
exitReason?: string;
|
|
55
|
+
reaped?: boolean;
|
|
56
|
+
stopRequested?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* The OS's own start token for the process this run was started as — the
|
|
59
|
+
* second identity witness (see `processIdentityVerdict`). Recorded once, while
|
|
60
|
+
* the process is certainly still ours; a run recovered without it can be
|
|
61
|
+
* followed but not stopped, which is the old, safe behaviour.
|
|
62
|
+
*/
|
|
63
|
+
osStartedAt?: string;
|
|
64
|
+
}
|
|
65
|
+
/** `<config dir>/run-terminal` — isolated by `$NUVIRA_CONFIG_DIR`, like the rest. */
|
|
66
|
+
export declare function runsDir(): string;
|
|
67
|
+
export declare function spoolPath(id: string): string;
|
|
68
|
+
/** Read the registry. A missing/corrupt file is an empty registry. */
|
|
69
|
+
export declare function loadRuns(): PersistedRun[];
|
|
70
|
+
/**
|
|
71
|
+
* Add or update one run. Finished entries are kept (so a restart can still report
|
|
72
|
+
* the real exit code) and the oldest are dropped past the cap.
|
|
73
|
+
*/
|
|
74
|
+
export declare function saveRun(entry: PersistedRun): void;
|
|
75
|
+
/** The spooled output of one run, or null when there is none. */
|
|
76
|
+
export declare function readSpool(id: string): string | null;
|
|
77
|
+
export declare function spoolBytes(id: string): number;
|
|
78
|
+
export declare function discardSpool(id: string): void;
|
|
79
|
+
/**
|
|
80
|
+
* Delete spool files no record refers to.
|
|
81
|
+
*
|
|
82
|
+
* The registry is capped, but a file is not a record: without this, every run
|
|
83
|
+
* that was ever monitored would leave its log behind forever, and "bounded state"
|
|
84
|
+
* would be true of the JSON and false of the disk. Run on hydrate, when the live
|
|
85
|
+
* set is exactly known.
|
|
86
|
+
*/
|
|
87
|
+
export declare function sweepSpools(liveIds: readonly string[]): void;
|
|
88
|
+
/**
|
|
89
|
+
* A bounded head+tail window over some text.
|
|
90
|
+
*
|
|
91
|
+
* The head is kept because a run's first lines name what it is doing and how it
|
|
92
|
+
* was invoked; the tail is kept because that is where the failure is. The middle
|
|
93
|
+
* is what gets dropped — bounded, explicit, and never silently a lie about size.
|
|
94
|
+
*/
|
|
95
|
+
export declare function outputWindow(text: string, maxChars: number, headChars?: number, tailChars?: number): {
|
|
96
|
+
text: string;
|
|
97
|
+
omittedChars: number;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Write the spool for one run: HEAD (until it is full) + a rolling TAIL.
|
|
101
|
+
*
|
|
102
|
+
* The file is REWRITTEN whole rather than appended to, which is what keeps it
|
|
103
|
+
* bounded: a chatty command can write gigabytes in an hour and the spool still
|
|
104
|
+
* stays at ~64KB. Flushing is throttled (`SPOOL_FLUSH_MS`) so the write cost is
|
|
105
|
+
* independent of the output rate; `close()` does the final write.
|
|
106
|
+
*
|
|
107
|
+
* NOTHING IS WRITTEN UNTIL {@link startPersisting}. Until a run is handed to
|
|
108
|
+
* monitoring it is not durable (there is no registry entry to read it back), so a
|
|
109
|
+
* file on disk would be litter the user never asked for — and litter they do get:
|
|
110
|
+
* MEASURED, the first output chunk of an ordinary `npm test` created
|
|
111
|
+
* `<config>/run-terminal/out/<id>.log` in the developer's REAL profile on every
|
|
112
|
+
* test that spawned a command and finished inside its budget, for a spool that
|
|
113
|
+
* was then discarded. Buffering in memory until hand-off loses nothing (the head
|
|
114
|
+
* is bounded, and the window written at hand-off is the same one) and keeps the
|
|
115
|
+
* suite out of the profile it runs in.
|
|
116
|
+
*/
|
|
117
|
+
export declare class SpoolWriter {
|
|
118
|
+
private readonly id;
|
|
119
|
+
private readonly headBytes;
|
|
120
|
+
private readonly tailBytes;
|
|
121
|
+
/**
|
|
122
|
+
* Where the window is written. Defaults to the monitored-run spool dir; the
|
|
123
|
+
* dashboard's tasks keep theirs beside their own records. Parameterised
|
|
124
|
+
* rather than duplicated because the discipline — bounded, rewritten whole,
|
|
125
|
+
* throttled, discarded when nobody will read it — is the part worth sharing.
|
|
126
|
+
*/
|
|
127
|
+
private readonly dir;
|
|
128
|
+
private head;
|
|
129
|
+
private tail;
|
|
130
|
+
/** Everything ever written, so the window can say how much it dropped. */
|
|
131
|
+
private total;
|
|
132
|
+
private dirty;
|
|
133
|
+
private lastFlush;
|
|
134
|
+
private closed;
|
|
135
|
+
private discarded;
|
|
136
|
+
/** False until the run is durable — see {@link startPersisting}. */
|
|
137
|
+
private persisting;
|
|
138
|
+
/**
|
|
139
|
+
* `append` — the file is growing with the run, byte for byte, because it is
|
|
140
|
+
* still under the full-log cap. `window` — the cap was passed, so the file is
|
|
141
|
+
* the bounded head+tail window from here on.
|
|
142
|
+
*/
|
|
143
|
+
private mode;
|
|
144
|
+
/** Text written since the last flush, in append mode. */
|
|
145
|
+
private pending;
|
|
146
|
+
private readonly fullBytes;
|
|
147
|
+
constructor(id: string, headBytes?: number, tailBytes?: number,
|
|
148
|
+
/**
|
|
149
|
+
* Where the window is written. Defaults to the monitored-run spool dir; the
|
|
150
|
+
* dashboard's tasks keep theirs beside their own records. Parameterised
|
|
151
|
+
* rather than duplicated because the discipline — bounded, rewritten whole,
|
|
152
|
+
* throttled, discarded when nobody will read it — is the part worth sharing.
|
|
153
|
+
*/
|
|
154
|
+
dir?: string, fullBytes?: number);
|
|
155
|
+
/** The file this window lives in. */
|
|
156
|
+
path(): string;
|
|
157
|
+
/**
|
|
158
|
+
* Begin writing to disk: the run has outlived its wait budget and is now
|
|
159
|
+
* durable (`persistRun`), so its output has to be readable by another process.
|
|
160
|
+
*/
|
|
161
|
+
startPersisting(): void;
|
|
162
|
+
write(text: string): void;
|
|
163
|
+
private flushIfDue;
|
|
164
|
+
/**
|
|
165
|
+
* Cross the cap: write the bounded window ONCE, and stop growing the file.
|
|
166
|
+
*
|
|
167
|
+
* The bytes already appended are what a run's middle looked like while it still
|
|
168
|
+
* fit; rewriting the file is what keeps a gigabyte of output from becoming a
|
|
169
|
+
* gigabyte of disk.
|
|
170
|
+
*/
|
|
171
|
+
private collapse;
|
|
172
|
+
/**
|
|
173
|
+
* Write what has accumulated. Safe to call at any time.
|
|
174
|
+
*
|
|
175
|
+
* The file is the HEAD plus the LAST `tailBytes` of the tail — taken from the
|
|
176
|
+
* END, because the tail is where a failure explains itself. When everything
|
|
177
|
+
* fits in the head, only the head is written: otherwise a short run's output
|
|
178
|
+
* would be stored twice and read back doubled.
|
|
179
|
+
*/
|
|
180
|
+
flush(): void;
|
|
181
|
+
/**
|
|
182
|
+
* Make sure the bytes still held in memory reach the file.
|
|
183
|
+
*
|
|
184
|
+
* `close()` cannot use `flush()` for this: in append mode a pause in output
|
|
185
|
+
* older than the throttle leaves `pending` unwritten, and those are exactly the
|
|
186
|
+
* last lines of a run — the ones that explain why it failed.
|
|
187
|
+
*/
|
|
188
|
+
private drainPending;
|
|
189
|
+
/** Final write. The file stays (a finished run's output is still worth reading). */
|
|
190
|
+
close(): void;
|
|
191
|
+
/** Drop the spool: the run finished inside its wait budget, so nobody will poll it. */
|
|
192
|
+
discard(): void;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Is `pid` still the process we started, or has the pid been recycled?
|
|
196
|
+
*
|
|
197
|
+
* A run recovered from the registry is identified by a NUMBER that outlived the
|
|
198
|
+
* process table it came from. Between the crash and the re-attach, that pid can
|
|
199
|
+
* belong to something else entirely — and this tool's whole safety story is that
|
|
200
|
+
* it only ever signals commands IT started. So before any recovered run is
|
|
201
|
+
* signalled, it is identified all over again.
|
|
202
|
+
*
|
|
203
|
+
* The process line — `ps` on POSIX, the same `Get-CimInstance Win32_Process`
|
|
204
|
+
* query the liveness sampler already runs on Windows — shows the shell we spawned
|
|
205
|
+
* (`/bin/sh -c <command>`) or, when the shell exec'd a simple command, that
|
|
206
|
+
* command's own line; both contain the command text, which is why the check is a
|
|
207
|
+
* containment test rather than equality.
|
|
208
|
+
*/
|
|
209
|
+
export declare function commandMatchesProcess(pid: number, command: string): boolean | null;
|
|
210
|
+
/** What was recorded about the process a run was started as. */
|
|
211
|
+
export interface RecordedProcess {
|
|
212
|
+
command: string;
|
|
213
|
+
/**
|
|
214
|
+
* The OS's own start token for that process (`lookupProcess().startedAtText`).
|
|
215
|
+
* Absent for a record written before this existed, or when the read failed —
|
|
216
|
+
* in which case the command line is the only witness, exactly as before.
|
|
217
|
+
*/
|
|
218
|
+
osStartedAt?: string | null;
|
|
219
|
+
}
|
|
220
|
+
/** What the live process table says about a pid right now. */
|
|
221
|
+
export interface LiveProcess {
|
|
222
|
+
found: boolean;
|
|
223
|
+
command: string | null;
|
|
224
|
+
startedAtText: string | null;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* WHICH KIND of answer an identity check gave — the distinction a caller needs to
|
|
228
|
+
* avoid reading a statement about identity as a statement about liveness.
|
|
229
|
+
*
|
|
230
|
+
* `verified` ours, with evidence
|
|
231
|
+
* `gone` the pid is not in the table: a fact, so a task may be
|
|
232
|
+
* settled from it
|
|
233
|
+
* `not-ours` the pid exists but is a DIFFERENT process. The task is not
|
|
234
|
+
* ours any more either — but see the callers: this is a claim
|
|
235
|
+
* about identity, and it must not be turned into "it finished"
|
|
236
|
+
* without care, because a command line can change over a
|
|
237
|
+
* process's life (a shell that `exec`s keeps its pid).
|
|
238
|
+
* `unknown` nothing readable: never adopt, never signal, never conclude
|
|
239
|
+
* `unreadable-table` this platform cannot list processes at all
|
|
240
|
+
*/
|
|
241
|
+
export type IdentityKind = 'verified' | 'gone' | 'not-ours' | 'unknown' | 'unreadable-table';
|
|
242
|
+
/**
|
|
243
|
+
* Identity, decided by TWO independent witnesses — pure, so every branch can be
|
|
244
|
+
* asserted instead of hoped for.
|
|
245
|
+
*
|
|
246
|
+
* pid + command line what the run was started as
|
|
247
|
+
* pid + OS start token when the OS says that process began
|
|
248
|
+
*
|
|
249
|
+
* The rule that makes this safe rather than merely clever:
|
|
250
|
+
*
|
|
251
|
+
* a witness may VETO, and only the start token may ACCEPT ALONE.
|
|
252
|
+
*
|
|
253
|
+
* - A different command line is not our process, so `false` wins over any
|
|
254
|
+
* agreement elsewhere — a recycled pid running something else is refused.
|
|
255
|
+
* - When the command lines agree, a start token that DISAGREES refuses too: the
|
|
256
|
+
* same command started as a different process (another `npm test` in another
|
|
257
|
+
* directory, a stranger's `node`) is precisely the case that used to be
|
|
258
|
+
* adopted. This is the new refusal, and it can only ever refuse.
|
|
259
|
+
* - When the command line cannot be read at all (some platforms hide it, and a
|
|
260
|
+
* kernel process has none), a MATCHING start token is accepted: that is a
|
|
261
|
+
* value the kernel does not hand out twice, and it is the difference between
|
|
262
|
+
* a recovered run that can be stopped and one that can only be stopped by
|
|
263
|
+
* hand. Anything short of a match stays `null` — unknown, never ours.
|
|
264
|
+
*/
|
|
265
|
+
export declare function processIdentityVerdict(recorded: RecordedProcess, live: LiveProcess | null): boolean | null;
|
|
266
|
+
/**
|
|
267
|
+
* The verdict AND the evidence behind it.
|
|
268
|
+
*
|
|
269
|
+
* A refusal the operator cannot act on is barely better than a crash: the whole
|
|
270
|
+
* consequence of `false` here is that a real command keeps running and can only
|
|
271
|
+
* be stopped by hand, so the message has to say WHICH witness failed — a
|
|
272
|
+
* different command line and a mismatched start time are different problems, and
|
|
273
|
+
* "could not tell" is a third.
|
|
274
|
+
*/
|
|
275
|
+
export declare function processIdentityCheck(recorded: RecordedProcess, live: LiveProcess | null): {
|
|
276
|
+
verdict: boolean | null;
|
|
277
|
+
why: string;
|
|
278
|
+
kind: IdentityKind;
|
|
279
|
+
};
|
|
280
|
+
/** `processIdentityVerdict` against the live table: one read, both witnesses. */
|
|
281
|
+
export declare function processIdentityMatches(pid: number, recorded: RecordedProcess): boolean | null;
|
|
282
|
+
//# sourceMappingURL=run-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-registry.d.ts","sourceRoot":"","sources":["../../src/tools/run-registry.ts"],"names":[],"mappings":"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"}
|