@cortexkit/aft-bridge 0.58.1 → 0.59.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 (114) hide show
  1. package/dist/bash-format.d.ts.map +1 -1
  2. package/dist/bash-format.js +5 -0
  3. package/dist/bash-format.js.map +1 -1
  4. package/dist/bash-hints.d.ts +159 -20
  5. package/dist/bash-hints.d.ts.map +1 -1
  6. package/dist/bash-hints.js +343 -37
  7. package/dist/bash-hints.js.map +1 -1
  8. package/dist/bash-host-fallback.d.ts +27 -0
  9. package/dist/bash-host-fallback.d.ts.map +1 -1
  10. package/dist/bash-host-fallback.js +55 -16
  11. package/dist/bash-host-fallback.js.map +1 -1
  12. package/dist/binary-identity.d.ts +13 -0
  13. package/dist/binary-identity.d.ts.map +1 -1
  14. package/dist/binary-identity.js +91 -2
  15. package/dist/binary-identity.js.map +1 -1
  16. package/dist/bridge.d.ts +12 -3
  17. package/dist/bridge.d.ts.map +1 -1
  18. package/dist/bridge.js +85 -40
  19. package/dist/bridge.js.map +1 -1
  20. package/dist/callgraph-format.d.ts.map +1 -1
  21. package/dist/callgraph-format.js +18 -10
  22. package/dist/callgraph-format.js.map +1 -1
  23. package/dist/child-process.d.ts.map +1 -1
  24. package/dist/child-process.js +10 -1
  25. package/dist/child-process.js.map +1 -1
  26. package/dist/coerce.d.ts +27 -0
  27. package/dist/coerce.d.ts.map +1 -1
  28. package/dist/coerce.js +64 -0
  29. package/dist/coerce.js.map +1 -1
  30. package/dist/config-error.d.ts +2 -2
  31. package/dist/config-error.js +2 -2
  32. package/dist/config-watch.d.ts +2 -0
  33. package/dist/config-watch.d.ts.map +1 -1
  34. package/dist/config-watch.js +35 -0
  35. package/dist/config-watch.js.map +1 -1
  36. package/dist/durable-log.d.ts +11 -0
  37. package/dist/durable-log.d.ts.map +1 -1
  38. package/dist/durable-log.js +67 -24
  39. package/dist/durable-log.js.map +1 -1
  40. package/dist/error-contract.d.ts +14 -5
  41. package/dist/error-contract.d.ts.map +1 -1
  42. package/dist/error-contract.js +42 -9
  43. package/dist/error-contract.js.map +1 -1
  44. package/dist/feature-config.d.ts +35 -18
  45. package/dist/feature-config.d.ts.map +1 -1
  46. package/dist/feature-config.js +161 -94
  47. package/dist/feature-config.js.map +1 -1
  48. package/dist/index.d.ts +9 -7
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +9 -7
  51. package/dist/index.js.map +1 -1
  52. package/dist/location-lifecycle.d.ts.map +1 -1
  53. package/dist/location-lifecycle.js +22 -4
  54. package/dist/location-lifecycle.js.map +1 -1
  55. package/dist/message-detach.d.ts +15 -0
  56. package/dist/message-detach.d.ts.map +1 -1
  57. package/dist/message-detach.js +48 -0
  58. package/dist/message-detach.js.map +1 -1
  59. package/dist/migration-notices.d.ts.map +1 -1
  60. package/dist/migration-notices.js +12 -5
  61. package/dist/migration-notices.js.map +1 -1
  62. package/dist/migration.d.ts +1 -0
  63. package/dist/migration.d.ts.map +1 -1
  64. package/dist/migration.js +39 -12
  65. package/dist/migration.js.map +1 -1
  66. package/dist/onnx-runtime.d.ts +5 -0
  67. package/dist/onnx-runtime.d.ts.map +1 -1
  68. package/dist/onnx-runtime.js +55 -32
  69. package/dist/onnx-runtime.js.map +1 -1
  70. package/dist/path-aliases.d.ts.map +1 -1
  71. package/dist/path-aliases.js +8 -7
  72. package/dist/path-aliases.js.map +1 -1
  73. package/dist/path-display.d.ts +5 -0
  74. package/dist/path-display.d.ts.map +1 -0
  75. package/dist/path-display.js +21 -0
  76. package/dist/path-display.js.map +1 -0
  77. package/dist/paths.d.ts.map +1 -1
  78. package/dist/paths.js +7 -6
  79. package/dist/paths.js.map +1 -1
  80. package/dist/private-storage.d.ts +9 -0
  81. package/dist/private-storage.d.ts.map +1 -0
  82. package/dist/private-storage.js +75 -0
  83. package/dist/private-storage.js.map +1 -0
  84. package/dist/protocol.d.ts +4 -0
  85. package/dist/protocol.d.ts.map +1 -1
  86. package/dist/revivable-transport.d.ts +4 -2
  87. package/dist/revivable-transport.d.ts.map +1 -1
  88. package/dist/revivable-transport.js +48 -19
  89. package/dist/revivable-transport.js.map +1 -1
  90. package/dist/storage-paths.d.ts +3 -4
  91. package/dist/storage-paths.d.ts.map +1 -1
  92. package/dist/storage-paths.js +4 -5
  93. package/dist/storage-paths.js.map +1 -1
  94. package/dist/subc-transport.d.ts +62 -3
  95. package/dist/subc-transport.d.ts.map +1 -1
  96. package/dist/subc-transport.js +460 -53
  97. package/dist/subc-transport.js.map +1 -1
  98. package/dist/tar-executable.d.ts +1 -1
  99. package/dist/tar-executable.d.ts.map +1 -1
  100. package/dist/tar-executable.js +16 -2
  101. package/dist/tar-executable.js.map +1 -1
  102. package/dist/test-child-environment.d.ts +8 -0
  103. package/dist/test-child-environment.d.ts.map +1 -0
  104. package/dist/test-child-environment.js +105 -0
  105. package/dist/test-child-environment.js.map +1 -0
  106. package/dist/transport.d.ts +29 -0
  107. package/dist/transport.d.ts.map +1 -1
  108. package/dist/transport.js +26 -1
  109. package/dist/transport.js.map +1 -1
  110. package/dist/zoom-format.d.ts +1 -0
  111. package/dist/zoom-format.d.ts.map +1 -1
  112. package/dist/zoom-format.js +5 -1
  113. package/dist/zoom-format.js.map +1 -1
  114. package/package.json +2 -2
@@ -1,51 +1,322 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as os from "node:os";
3
3
  import * as path from "node:path";
4
+ import { relativePathEscapesRoot } from "./path-display.js";
4
5
  /** Sync bash_watch deadline used by a primary session that passes no timeout. */
5
6
  export const DEFAULT_PRIMARY_WATCH_TIMEOUT_MS = 30_000;
7
+ /** Largest bash_watch timeout accepted by the OpenCode and Pi plugins' tool schemas. */
8
+ export const MAX_WATCH_TIMEOUT_MS = 1_800_000;
6
9
  /**
7
- * Description of the bash_watch timeout parameter. It must stay true for both
8
- * roles without naming them, because every caller sees the same schema.
10
+ * Default `bash.worker_wait_max_ms`: the longest a delegated worker's wait on
11
+ * one command blocks before control returns to it. Mirrors
12
+ * `DEFAULT_BASH_WORKER_WAIT_MAX_MS` in the engine's `config.rs`. A worker that
13
+ * blocked with no limit once sat behind a stuck test run for fifteen hours;
14
+ * with the limit it gets control back, sees the command is still running, and
15
+ * decides whether to wait again or kill it.
9
16
  */
10
- export const WATCH_TIMEOUT_PARAM_DESCRIPTION = "Sync-only timeout in milliseconds. Default 30000 (the configured maximum for delegated sessions); max `bash.watch_sync_max_ms` (120000 by default).";
17
+ export const DEFAULT_WORKER_WAIT_MAX_MS = 1_800_000;
18
+ /** Smallest accepted `bash.worker_wait_max_ms`; mirrors `MIN_BASH_WORKER_WAIT_MAX_MS`. */
19
+ export const MIN_WORKER_WAIT_MAX_MS = 60_000;
11
20
  /**
12
- * Effective sync bash_watch deadline. A delegated worker cannot end its turn
13
- * while a command runs, so a short default only makes it loop, re-reading its
14
- * whole context on every call; it gets the configured cap instead. A primary
15
- * keeps the short default because it can do other work or end its turn.
21
+ * Longest delay a JavaScript timer accepts (2^31 - 1 ms, about 24.8 days); a
22
+ * larger one fires almost at once. Bridge transport timeouts derived from a
23
+ * configured limit are clamped to it.
16
24
  */
17
- export function resolveWatchTimeoutMs(requestedMs, role, capMs) {
18
- const fallback = role === "worker" ? capMs : DEFAULT_PRIMARY_WATCH_TIMEOUT_MS;
19
- return Math.min(requestedMs ?? fallback, capMs);
25
+ export const LONGEST_TIMER_DELAY_MS = 2_147_483_647;
26
+ /**
27
+ * How a delegated worker's waits are bounded, worded once for every tool
28
+ * description. It names the setting, not its value, so the prompt prefix is
29
+ * the same for every user.
30
+ */
31
+ export const WORKER_WAIT_LIMIT_PHRASE = "the worker wait limit (`bash.worker_wait_max_ms`, 30 minutes by default)";
32
+ /**
33
+ * Description of the bash_watch tool's sync-wait defaults, embedded in both
34
+ * plugins' tool descriptions. Every caller sees the same description, so it
35
+ * has to state both roles' real behaviour.
36
+ */
37
+ export const WATCH_SYNC_DEFAULTS_DESCRIPTION = "Sync waits default to 30s in a main session (max `bash.watch_sync_max_ms`, 120s by default); in a delegated session a sync wait without a timeout waits up to the worker wait limit (`bash.worker_wait_max_ms`, 30 minutes by default), then reports it is still running; watch again to keep waiting";
38
+ /**
39
+ * Description of the bash_watch timeout parameter. Every caller sees the same
40
+ * schema, so it has to be true for both roles.
41
+ */
42
+ export const WATCH_TIMEOUT_PARAM_DESCRIPTION = "Sync-only timeout in milliseconds. In a main session: default 30000, max `bash.watch_sync_max_ms` (120000 by default). In a delegated session: omit it to wait up to the worker wait limit (`bash.worker_wait_max_ms`, 30 minutes by default), after which the watch reports the command is still running; a value you pass is used as given.";
43
+ /**
44
+ * Effective sync bash_watch deadline in milliseconds.
45
+ *
46
+ * A delegated worker cannot be woken once its turn ends, so it has nothing
47
+ * useful to do while its command runs except wait, and a short deadline only
48
+ * makes it call bash_watch again, re-reading its whole context each time. It
49
+ * therefore waits up to the worker wait limit (`workerWaitMaxMs`,
50
+ * `bash.worker_wait_max_ms`) by default: long enough that re-watching is
51
+ * rare, short enough that a stuck command cannot hold it forever. A timeout
52
+ * it passes is honoured as given rather than clamped to the primary cap. A
53
+ * primary keeps the short default and the cap because it can do other work
54
+ * or end its turn and be woken by the completion reminder.
55
+ */
56
+ export function resolveWatchTimeoutMs(requestedMs, role, capMs, workerWaitMaxMs) {
57
+ if (role === "worker")
58
+ return requestedMs ?? workerWaitMaxMs;
59
+ return Math.min(requestedMs ?? DEFAULT_PRIMARY_WATCH_TIMEOUT_MS, capMs);
60
+ }
61
+ /**
62
+ * Largest bash_watch timeout a caller of this role may pass. A primary is
63
+ * bounded by the configured cap; a worker only by the schema maximum.
64
+ */
65
+ export function maxWatchTimeoutMs(role, capMs) {
66
+ return role === "worker" ? MAX_WATCH_TIMEOUT_MS : capMs;
67
+ }
68
+ /**
69
+ * Delay before the next bash_watch status poll. The first seconds poll fast so
70
+ * a short command's exit or a quick pattern is seen promptly; after that the
71
+ * interval grows, because a wait that can last as long as a build would
72
+ * otherwise send ten status requests a second for its whole length. The
73
+ * longest interval is also the worst-case delay before a new message or an
74
+ * abort ends the wait.
75
+ */
76
+ export function watchPollDelayMs(elapsedMs) {
77
+ if (elapsedMs < 5_000)
78
+ return 100;
79
+ if (elapsedMs < 30_000)
80
+ return 250;
81
+ if (elapsedMs < 120_000)
82
+ return 500;
83
+ return 1_000;
84
+ }
85
+ /**
86
+ * Clock and sleep used by the bash_watch wait loops. Production uses the
87
+ * monotonic clock and a real timer; tests replace both fields so a wait that
88
+ * lasts minutes of simulated time runs in milliseconds.
89
+ */
90
+ export const watchClock = {
91
+ now: () => performance.now(),
92
+ sleep: abortableSleep,
93
+ };
94
+ /** Sleep that resolves early when `signal` aborts, so an aborted wait ends at once. */
95
+ export function abortableSleep(ms, signal) {
96
+ if (signal?.aborted)
97
+ return Promise.resolve();
98
+ return new Promise((resolve) => {
99
+ const done = () => {
100
+ clearTimeout(timer);
101
+ signal?.removeEventListener("abort", done);
102
+ resolve();
103
+ };
104
+ const timer = setTimeout(done, ms);
105
+ signal?.addEventListener("abort", done, { once: true });
106
+ });
20
107
  }
21
108
  /**
22
109
  * Opening of every sync bash_watch reply line: the real time the watch held
23
110
  * the call, next to the limit it was allowed. Printing both lets a reader see
24
111
  * at a glance whether the watch ran to its limit or returned early, and when
25
112
  * the limit is the configured cap it names the knob, so a caller that wanted
26
- * longer knows what bounded it. `elapsedMs` must come from a monotonic clock
27
- * (see monotonicNowMs).
113
+ * longer knows what bounded it. `limitMs` is undefined for a wait with no
114
+ * deadline, and `capMs` is undefined when the caller is not bounded by the
115
+ * configured cap (a delegated worker). `elapsedMs` must come from a monotonic
116
+ * clock (see monotonicNowMs).
28
117
  */
29
118
  export function formatWatchWaited(elapsedMs, limitMs, capMs) {
30
- const limit = limitMs >= capMs ? `limit ${limitMs}ms, the bash.watch_sync_max_ms cap` : `limit ${limitMs}ms`;
119
+ let limit;
120
+ if (limitMs === undefined)
121
+ limit = "no wait limit";
122
+ else if (capMs !== undefined && limitMs >= capMs)
123
+ limit = `limit ${limitMs}ms, the bash.watch_sync_max_ms cap`;
124
+ else
125
+ limit = `limit ${limitMs}ms`;
31
126
  return `Waited ${Math.round(elapsedMs)}ms (${limit})`;
32
127
  }
33
128
  /**
34
- * Appended to a bash_watch reply whose sync deadline passed without a match.
35
- * The deadline is a property of the watch, not of the command: a delegated
36
- * worker that read the bare "timeout reached" line as its own execution being
37
- * interrupted declared a failed result while its long-running command was
38
- * still going. Each role gets only the move that applies to it: a worker must
39
- * keep watching and not report, while a primary may end its turn because the
40
- * completion reminder wakes it. `timeoutParam` is the host's spelling of the
41
- * bash_watch timeout argument, so the worker is told a name it can pass.
129
+ * Appended to a primary's bash_watch reply whose sync deadline passed without
130
+ * a match. The deadline is a property of the watch, not of the command, so the
131
+ * caller is told the command is still running and that the completion
132
+ * reminder wakes it. A worker gets {@link workerWatchStillRunning} instead.
42
133
  */
43
- export function watchTimeoutSteer(role, capMs, timeoutParam = "timeoutMs") {
44
- if (role === "worker") {
45
- return `The command is still running; this is not a failure. Watch again (${timeoutParam} up to ${capMs}) and don't report a result until it finishes.`;
46
- }
134
+ export function watchTimeoutSteer() {
47
135
  return "The command is still running; this is not a failure. Watch again, do other work, or end your turn: the completion reminder wakes you.";
48
136
  }
137
+ /** A duration in words: whole minutes as minutes, anything else in seconds. */
138
+ export function formatWaitDuration(ms) {
139
+ const rounded = Math.max(0, Math.round(ms));
140
+ if (rounded === 60_000)
141
+ return "1 minute";
142
+ if (rounded > 0 && rounded % 60_000 === 0)
143
+ return `${rounded / 60_000} minutes`;
144
+ const seconds = (rounded / 1000).toFixed(1).replace(/\.0$/, "");
145
+ return `${seconds}s`;
146
+ }
147
+ /**
148
+ * The sentence naming a task's own kill deadline, from the `hard_kill` field
149
+ * and `started_at` of the engine's task status (`{ limit_ms, source }`), or how
150
+ * the task was killed when its hard kill fired (`status_reason`). It reports an
151
+ * absolute UTC deadline measured from command start and the approximate time
152
+ * remaining. Mirrors `kill_deadline_sentence` in the engine.
153
+ */
154
+ export function taskKillDeadlineText(data, role, nowMs = Date.now()) {
155
+ if (data.status === "timed_out") {
156
+ const reason = typeof data.status_reason === "string" ? data.status_reason : "";
157
+ return reason === ""
158
+ ? "The task was killed by its time limit (exit 124)."
159
+ : `The task was ${reason}.`;
160
+ }
161
+ // A terminal task's deadline no longer matters; an unknown state (the
162
+ // bridge stayed busy) has none to report.
163
+ if (isTerminalTaskStatus(data.status) || typeof data.status !== "string")
164
+ return "";
165
+ if (data.status === "unknown")
166
+ return "";
167
+ const hardKill = data.hard_kill;
168
+ if (!hardKill || typeof hardKill.limit_ms !== "number") {
169
+ return "This task has no kill deadline.";
170
+ }
171
+ const startedAtMs = data.started_at;
172
+ if (typeof startedAtMs !== "number" || !Number.isSafeInteger(startedAtMs)) {
173
+ return "This task has no kill deadline.";
174
+ }
175
+ const limitMs = hardKill.limit_ms;
176
+ const limit = formatWaitDuration(limitMs);
177
+ const deadlineAt = startedAtMs + limitMs;
178
+ const when = `at ${formatKillDeadlineUtc(deadlineAt)}, when it has run ${limit}`;
179
+ let source;
180
+ if (hardKill.source === "timeout") {
181
+ source = "(the `timeout` you passed)";
182
+ }
183
+ else if (role === "worker") {
184
+ source =
185
+ "(its default background limit), but each wait you make on it moves that kill to at least the worker wait limit (`bash.worker_wait_max_ms`) after the wait, so it is not killed while you keep waiting; pass a `timeout` to set your own limit";
186
+ }
187
+ else {
188
+ source = "(its default background limit) unless you pass a longer `timeout`";
189
+ }
190
+ const remaining = deadlineAt <= nowMs
191
+ ? "; the kill deadline has passed"
192
+ : `; about ${formatApproximateRemaining(deadlineAt - nowMs)} remain`;
193
+ return `AFT kills this task ${when} ${source}${remaining}.`;
194
+ }
195
+ /**
196
+ * A wait should not hand back a still-running task just before its own kill
197
+ * deadline. Five seconds covers the slowest status poll and kill publication.
198
+ */
199
+ export function taskKillDeadlineWithinHandoffMargin(data) {
200
+ if (typeof data.status !== "string" || isTerminalTaskStatus(data.status))
201
+ return false;
202
+ const hardKill = data.hard_kill;
203
+ const limitMs = hardKill?.limit_ms;
204
+ const elapsedMs = data.elapsed_ms;
205
+ return (typeof limitMs === "number" &&
206
+ Number.isSafeInteger(limitMs) &&
207
+ typeof elapsedMs === "number" &&
208
+ Number.isSafeInteger(elapsedMs) &&
209
+ limitMs - elapsedMs <= 5_000);
210
+ }
211
+ function formatKillDeadlineUtc(unixMs) {
212
+ const date = new Date(unixMs);
213
+ if (!Number.isFinite(date.getTime()))
214
+ throw new Error("invalid bash task start time");
215
+ const year = String(date.getUTCFullYear()).padStart(4, "0");
216
+ const month = String(date.getUTCMonth() + 1).padStart(2, "0");
217
+ const day = String(date.getUTCDate()).padStart(2, "0");
218
+ const hour = String(date.getUTCHours()).padStart(2, "0");
219
+ const minute = String(date.getUTCMinutes()).padStart(2, "0");
220
+ const second = String(date.getUTCSeconds()).padStart(2, "0");
221
+ const millis = date.getUTCMilliseconds();
222
+ const fraction = millis === 0 ? "" : `.${String(millis).padStart(3, "0")}`;
223
+ return `${year}-${month}-${day} ${hour}:${minute}:${second}${fraction}Z`;
224
+ }
225
+ function formatApproximateRemaining(ms) {
226
+ if (ms >= 60_000) {
227
+ const minutes = Math.max(1, Math.floor((ms + 30_000) / 60_000));
228
+ return `${minutes} minute${minutes === 1 ? "" : "s"}`;
229
+ }
230
+ return formatWaitDuration(ms);
231
+ }
232
+ function isTerminalTaskStatus(status) {
233
+ return (status === "completed" ||
234
+ status === "failed" ||
235
+ status === "killed" ||
236
+ status === "timed_out" ||
237
+ status === "fate_unknown");
238
+ }
239
+ /** Most lines of a still-running command's output shown to a worker. */
240
+ const WORKER_OUTPUT_TAIL_LINES = 20;
241
+ /** The last lines of `output`, so a worker can judge whether a command is stuck. */
242
+ export function outputTail(output) {
243
+ const lines = (output ?? "").replace(/\s+$/, "").split("\n");
244
+ return lines.slice(-WORKER_OUTPUT_TAIL_LINES).join("\n");
245
+ }
246
+ /**
247
+ * Appended to a delegated worker's bash_watch reply whose deadline passed
248
+ * while the command still runs (by default the worker wait limit). The
249
+ * deadline is a property of the watch, not of the command: a worker that read
250
+ * a bare "timeout reached" line as its own execution failing declared a
251
+ * failed result while its command was still going. So it is told plainly that
252
+ * the command is still running, how long it has run, and its latest output,
253
+ * then given both moves by name: watch again to keep waiting, or kill a
254
+ * command that should have finished. `taskIdArg` and `timeoutParam` are the
255
+ * host's spellings of the bash_watch arguments.
256
+ */
257
+ export function workerWatchStillRunning(options) {
258
+ const taskIdArg = options.taskIdArg ?? "taskId";
259
+ const timeoutParam = options.timeoutParam ?? "timeoutMs";
260
+ const ran = options.ranMs === undefined ? "" : ` It has run for ${formatWaitDuration(options.ranMs)}.`;
261
+ const tail = outputTail(options.output);
262
+ const output = tail === "" ? "No output yet." : `Recent output:\n${tail}`;
263
+ return `The command is still running after ${formatWaitDuration(options.waitedMs)} of watching; this is not a failure.${ran} Call bash_watch({ ${taskIdArg}: "${options.taskId}" }) again to keep waiting (without ${timeoutParam} a watch waits up to the worker wait limit, then reports it is still running), or bash_kill({ ${taskIdArg}: "${options.taskId}" }) if it should have finished by now. Don't report a result until it finishes.\n${output}`;
264
+ }
265
+ /**
266
+ * How long a sync bash_watch with no deadline keeps retrying while every
267
+ * status poll times out because the bridge is busy. Without this bound a wait
268
+ * with no deadline would retry a wedged bridge forever; after it, the watch
269
+ * returns and says the task state is unknown.
270
+ */
271
+ export const WATCH_UNAVAILABLE_GIVE_UP_MS = 120_000;
272
+ /**
273
+ * What a delegated worker is told whenever its watch returned while its task
274
+ * is still running. A worker cannot be woken after its turn ends, so the only
275
+ * right move is to wait again.
276
+ */
277
+ export const WORKER_KEEP_WAITING = "Call bash_watch again to keep waiting; don't report a result until the command finishes.";
278
+ /**
279
+ * Tail of a sync bash_watch reply interrupted by a new message, saying what
280
+ * happens to the still-running task next. A primary is woken later by the
281
+ * completion reminder or an async watch, as `primaryTail` says; a worker
282
+ * cannot be woken once its turn ends, so it is told to wait again instead.
283
+ */
284
+ export function interruptedWatchTail(role, primaryTail) {
285
+ return role === "worker" ? `The task is still running. ${WORKER_KEEP_WAITING}` : primaryTail;
286
+ }
287
+ /**
288
+ * Appended to a bash reply shown to a delegated worker (subagent) whose
289
+ * command now runs in the background. AFT's own reply already says the task
290
+ * won't wake the worker; this names the plugin-owned bash_watch tool, which
291
+ * AFT cannot assume a host has. The suggested call passes no timeout on
292
+ * purpose: a worker's watch without one waits up to the worker wait limit,
293
+ * the longest it may, so any number would only make it wake sooner and watch
294
+ * again. `taskIdArg` is the host's spelling of the task id argument.
295
+ */
296
+ export function workerBackgroundTaskNote(taskId, taskIdArg = "taskId") {
297
+ return `\n\nNOTE (subagent session): Continue with other work if you have it. If you don't, call bash_watch({ ${taskIdArg}: "${taskId}" }) to wait for completion before returning to the parent; without a timeout it waits up to ${WORKER_WAIT_LIMIT_PHRASE}, then reports it is still running; watch again to keep waiting, or call bash_kill({ ${taskIdArg}: "${taskId}" }) if it should have finished by now. Subagents don't survive turn-end and won't be woken when the command finishes.`;
298
+ }
299
+ /**
300
+ * Line a bash_status snapshot of a still-running task ends with. A primary is
301
+ * woken by the completion reminder; a delegated worker is not, so it is
302
+ * pointed at bash_watch instead.
303
+ */
304
+ export function runningTaskStatusHint(role) {
305
+ return role === "worker"
306
+ ? "To wait for it, call bash_watch; don't poll."
307
+ : "A completion reminder will be delivered automatically; don't poll.";
308
+ }
309
+ /**
310
+ * Tail of a sync bash_watch reply that ended because the bridge stayed busy,
311
+ * so the task's state is unknown. Only a primary can rely on the completion
312
+ * notification to wake it.
313
+ */
314
+ export function watchUnavailableSteer(role) {
315
+ const unknown = "the bridge was busy, so task state is unknown.";
316
+ if (role === "worker")
317
+ return `${unknown} ${WORKER_KEEP_WAITING}`;
318
+ return `${unknown} Do not poll; let the task's completion notification wake the session, or use one bash_status snapshot on the next normal tool call.`;
319
+ }
49
320
  const CONFLICT_HINT = "\n\n[Hint] Use aft_conflicts to see all conflict regions across files in a single call.";
50
321
  const GREP_SEARCH_AFT_SEARCH_HINT = "DO NOT search code by running grep/rg in bash — it is unindexed, unranked, and serial. Use the `aft_search` tool instead (it auto-routes concepts, identifiers, regex, and literals).";
51
322
  const GREP_SEARCH_GREP_HINT = "DO NOT search code by running grep/rg in bash — it is unindexed, unranked, and serial. Use the `grep` tool instead (indexed and ranked).";
@@ -234,7 +505,7 @@ function nextCwdAfterCd(currentCwd, firstStage, afterCd) {
234
505
  }
235
506
  function isDirInsideProject(resolvedRoot, dir) {
236
507
  const rel = path.relative(resolvedRoot, path.resolve(dir));
237
- return rel === "" || (!rel.startsWith("..") && !path.isAbsolute(rel));
508
+ return !relativePathEscapesRoot(rel);
238
509
  }
239
510
  function collectPathOperands(firstStage, startAfterCommand) {
240
511
  const operands = [];
@@ -245,6 +516,8 @@ function collectPathOperands(firstStage, startAfterCommand) {
245
516
  // the grep read as path-less ("in-project cwd") and nudged toward aft_search
246
517
  // for a target it could not see - the logs directory, in the field.
247
518
  let sawPattern = false;
519
+ let optionsEnded = false;
520
+ let optionValue;
248
521
  while (index < firstStage.length) {
249
522
  const tokenResult = readShellToken(firstStage, index);
250
523
  if (tokenResult === null)
@@ -258,23 +531,56 @@ function collectPathOperands(firstStage, startAfterCommand) {
258
531
  if (end <= index)
259
532
  break;
260
533
  index = skipSpaces(firstStage, end);
261
- if (token.startsWith("-"))
534
+ // A descriptor before a redirection is shell syntax, not a search path.
535
+ if (/^\d+$/.test(token) && /[<>]/.test(firstStage[end] ?? ""))
536
+ break;
537
+ if (optionValue) {
538
+ if (optionValue === "pattern" || optionValue === "file")
539
+ sawPattern = true;
540
+ optionValue = undefined;
541
+ continue;
542
+ }
543
+ if (!optionsEnded && token === "--") {
544
+ optionsEnded = true;
262
545
  continue;
263
- if (!sawPattern && !looksLikePathOperand(token)) {
546
+ }
547
+ if (!optionsEnded && token.startsWith("-")) {
548
+ if (token === "-e" || token === "--regexp")
549
+ optionValue = "pattern";
550
+ else if (token === "-f" || token === "--file")
551
+ optionValue = "file";
552
+ else if (/^(?:--regexp=|--file=|-e.+|-f.+)/.test(token))
553
+ sawPattern = true;
554
+ else if ([
555
+ "-A",
556
+ "-B",
557
+ "-C",
558
+ "-m",
559
+ "--after-context",
560
+ "--before-context",
561
+ "--context",
562
+ "--max-count",
563
+ "--include",
564
+ "--exclude",
565
+ "--exclude-dir",
566
+ "-g",
567
+ "--glob",
568
+ "-t",
569
+ "--type",
570
+ "-T",
571
+ "--type-not",
572
+ ].includes(token))
573
+ optionValue = "other";
574
+ continue;
575
+ }
576
+ if (!sawPattern) {
264
577
  sawPattern = true;
265
578
  continue;
266
579
  }
267
- if (looksLikePathOperand(token) || isDynamicPathOperand(token))
268
- operands.push(token);
580
+ operands.push(token);
269
581
  }
270
582
  return operands;
271
583
  }
272
- function looksLikePathOperand(token) {
273
- return (token.includes("/") ||
274
- token.startsWith("~") ||
275
- token.startsWith("./") ||
276
- token.startsWith("../"));
277
- }
278
584
  function isDynamicPathOperand(token) {
279
585
  return token.startsWith("~") || token.includes("$") || token.includes("`");
280
586
  }
@@ -295,7 +601,7 @@ function isPathInsideProject(resolvedRoot, baseCwd, operand) {
295
601
  // from the project root after a `cd`), absolute/`~` operands against the FS.
296
602
  const resolved = resolvePathOperand(baseCwd, operand);
297
603
  const rel = path.relative(resolvedRoot, resolved);
298
- return rel === "" || (!rel.startsWith("..") && !path.isAbsolute(rel));
604
+ return !relativePathEscapesRoot(rel);
299
605
  }
300
606
  function shouldSuppressResolvedPath(resolved) {
301
607
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"bash-hints.js","sourceRoot":"","sources":["../src/bash-hints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bash-hints.js","sourceRoot":"","sources":["../src/bash-hints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAY5D,iFAAiF;AACjF,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CAAC;AAEvD,wFAAwF;AACxF,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAC;AAEpD,0FAA0F;AAC1F,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GACnC,0EAA0E,CAAC;AAE7E;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,uSAAuS,CAAC;AAE1S;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,+UAA+U,CAAC;AAElV;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAA+B,EAC/B,IAAqB,EACrB,KAAa,EACb,eAAuB;IAEvB,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,WAAW,IAAI,eAAe,CAAC;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,gCAAgC,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAqB,EAAE,KAAa;IACpE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,IAAI,SAAS,GAAG,KAAK;QAAE,OAAO,GAAG,CAAC;IAClC,IAAI,SAAS,GAAG,MAAM;QAAE,OAAO,GAAG,CAAC;IACnC,IAAI,SAAS,GAAG,OAAO;QAAE,OAAO,GAAG,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAGnB;IACF,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;IAC5B,KAAK,EAAE,cAAc;CACtB,CAAC;AAEF,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,MAAoB;IAC7D,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,OAA2B,EAC3B,KAAyB;IAEzB,IAAI,KAAa,CAAC;IAClB,IAAI,OAAO,KAAK,SAAS;QAAE,KAAK,GAAG,eAAe,CAAC;SAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK;QAC9C,KAAK,GAAG,SAAS,OAAO,oCAAoC,CAAC;;QAC1D,KAAK,GAAG,SAAS,OAAO,IAAI,CAAC;IAClC,OAAO,UAAU,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,KAAK,GAAG,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,uIAAuI,CAAC;AACjJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC;IAC1C,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,OAAO,GAAG,MAAM,UAAU,CAAC;IAChF,MAAM,OAAO,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChE,OAAO,GAAG,OAAO,GAAG,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAA6B,EAC7B,IAAqB,EACrB,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;IAElB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,OAAO,MAAM,KAAK,EAAE;YAClB,CAAC,CAAC,mDAAmD;YACrD,CAAC,CAAC,gBAAgB,MAAM,GAAG,CAAC;IAChC,CAAC;IACD,sEAAsE;IACtE,0CAA0C;IAC1C,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACpF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAiE,CAAC;IACxF,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACvD,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;IACpC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1E,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,KAAK,EAAE,CAAC;IACjF,IAAI,MAAc,CAAC;IACnB,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,GAAG,4BAA4B,CAAC;IACxC,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM;YACJ,+OAA+O,CAAC;IACpP,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,mEAAmE,CAAC;IAC/E,CAAC;IACD,MAAM,SAAS,GACb,UAAU,IAAI,KAAK;QACjB,CAAC,CAAC,gCAAgC;QAClC,CAAC,CAAC,WAAW,0BAA0B,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC;IACzE,OAAO,uBAAuB,IAAI,IAAI,MAAM,GAAG,SAAS,GAAG,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CAAC,IAA6B;IAC/E,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAA+C,CAAC;IACtE,MAAM,OAAO,GAAG,QAAQ,EAAE,QAAQ,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;IAClC,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;QAC7B,OAAO,SAAS,KAAK,QAAQ;QAC7B,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;QAC/B,OAAO,GAAG,SAAS,IAAI,KAAK,CAC7B,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAC3E,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,IAAI,MAAM,GAAG,QAAQ,GAAG,CAAC;AAC3E,CAAC;AAED,SAAS,0BAA0B,CAAC,EAAU;IAC5C,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAChE,OAAO,GAAG,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAe;IAC3C,OAAO,CACL,MAAM,KAAK,WAAW;QACtB,MAAM,KAAK,QAAQ;QACnB,MAAM,KAAK,QAAQ;QACnB,MAAM,KAAK,WAAW;QACtB,MAAM,KAAK,cAAc,CAC1B,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,MAA0B;IACnD,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAOvC;IACC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC;IAChD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,WAAW,CAAC;IACzD,MAAM,GAAG,GACP,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;IAC7F,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,IAAI,EAAE,CAAC;IAC1E,OAAO,sCAAsC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,uCAAuC,GAAG,sBAAsB,SAAS,MAAM,OAAO,CAAC,MAAM,uCAAuC,YAAY,iGAAiG,SAAS,MAAM,OAAO,CAAC,MAAM,qFAAqF,MAAM,EAAE,CAAC;AAC/b,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,OAAO,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,0FAA0F,CAAC;AAE7F;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAqB,EAAE,WAAmB;IAC7E,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,8BAA8B,mBAAmB,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;AAC/F,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAc,EAAE,SAAS,GAAG,QAAQ;IAC3E,OAAO,yGAAyG,SAAS,MAAM,MAAM,gGAAgG,wBAAwB,wFAAwF,SAAS,MAAM,MAAM,wHAAwH,CAAC;AACre,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAqB;IACzD,OAAO,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,8CAA8C;QAChD,CAAC,CAAC,oEAAoE,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAqB;IACzD,MAAM,OAAO,GAAG,gDAAgD,CAAC;IACjE,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,GAAG,OAAO,IAAI,mBAAmB,EAAE,CAAC;IAClE,OAAO,GAAG,OAAO,sIAAsI,CAAC;AAC1J,CAAC;AAED,MAAM,aAAa,GACjB,yFAAyF,CAAC;AAE5F,MAAM,2BAA2B,GAC/B,uLAAuL,CAAC;AAE1L,MAAM,qBAAqB,GACzB,0IAA0I,CAAC;AAE7I,MAAM,uBAAuB,GAAG,iDAAiD,CAAC;AAClF,MAAM,+BAA+B,GAAG,MAAM,CAAC;AAS/C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7E,gEAAgE;IAChE,4EAA4E;IAC5E,IAAI,CAAC,wCAAwC,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1E,OAAO,MAAM,GAAG,aAAa,CAAC;AAChC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEtC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QAClC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QAClC,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAc,EACd,OAAe,EACf,mBAA4B,EAC5B,WAAoB;IAEpB,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC;IACjC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IACtD,IAAI,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5D,IAAI,4BAA4B,CAAC,OAAO,EAAE,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC;IAEtE,MAAM,IAAI,GAAG,mBAAmB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,qBAAqB,CAAC;IACvF,OAAO,GAAG,MAAM,OAAO,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAe,EAAE,WAA+B;IACpF,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEtC,IAAI,+BAA+B,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7D,MAAM,IAAI,GAAG,WAAW,EAAE,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,6EAA6E;IAC7E,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAC9E,2DAA2D;IAC3D,IAAI,YAAY,GAAkB,YAAY,CAAC;IAC/C,IAAI,sBAAsB,GAAG,KAAK,CAAC;IAEnC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QAClC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QAClC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC;QAE9B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,YAAY,GAAG,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YACxE,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QAC/C,sBAAsB,GAAG,IAAI,CAAC;QAE9B,6EAA6E;QAC7E,+EAA+E;QAC/E,IAAI,YAAY,KAAK,IAAI;YAAE,SAAS;QACpC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC;YAAE,SAAS;QAE9D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;QACjE,wEAAwE;QACxE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,oBAAoB,CAAC,OAAO,CAAC;gBAAE,SAAS;YAC5C,MAAM,eAAe,GAAG,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC;gBAAE,SAAS;YACxE,mBAAmB,GAAG,IAAI,CAAC;YAC3B,IAAI,0BAA0B,CAAC,eAAe,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC/D,CAAC;QACD,oEAAoE;QACpE,IAAI,mBAAmB;YAAE,OAAO,KAAK,CAAC;IACxC,CAAC;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,SAAS,+BAA+B,CAAC,UAAoB;IAC3D,IAAI,oBAAoB,GAAG,KAAK,CAAC;IACjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QAClC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QAClC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC;QAC9B,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QAE/C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7E,oBAAoB,GAAG,IAAI,CAAC;IAC9B,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CACrB,UAAyB,EACzB,UAAkB,EAClB,OAAe;IAEf,IAAI,KAAK,GAAG,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,OAAO,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,WAAW,KAAK,IAAI;YAAE,MAAM;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;QACnC,IAAI,GAAG,IAAI,KAAK;YAAE,MAAM,CAAC,iCAAiC;QAC1D,KAAK,GAAG,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,CAAC,iCAAiC;QACjE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,oBAAoB;QAC7E,MAAM,GAAG,KAAK,CAAC;QACf,MAAM;IACR,CAAC;IACD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,mBAAmB;IAC3E,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,UAAU;IACzE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7D,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,kBAAkB,CAAC,YAAoB,EAAE,GAAW;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB,EAAE,iBAAyB;IACxE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,KAAK,GAAG,UAAU,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACtD,wEAAwE;IACxE,4EAA4E;IAC5E,+EAA+E;IAC/E,6EAA6E;IAC7E,oEAAoE;IACpE,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,WAAqD,CAAC;IAE1D,OAAO,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,WAAW,KAAK,IAAI;YAAE,MAAM;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;QACnC,uEAAuE;QACvE,yEAAyE;QACzE,wEAAwE;QACxE,mEAAmE;QACnE,0EAA0E;QAC1E,IAAI,GAAG,IAAI,KAAK;YAAE,MAAM;QACxB,KAAK,GAAG,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACpC,wEAAwE;QACxE,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAAE,MAAM;QAErE,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,MAAM;gBAAE,UAAU,GAAG,IAAI,CAAC;YAC3E,WAAW,GAAG,SAAS,CAAC;YACxB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,YAAY,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACpC,YAAY,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,UAAU;gBAAE,WAAW,GAAG,SAAS,CAAC;iBAC/D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,QAAQ;gBAAE,WAAW,GAAG,MAAM,CAAC;iBAC/D,IAAI,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,UAAU,GAAG,IAAI,CAAC;iBACtE,IACH;gBACE,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,iBAAiB;gBACjB,kBAAkB;gBAClB,WAAW;gBACX,aAAa;gBACb,WAAW;gBACX,WAAW;gBACX,eAAe;gBACf,IAAI;gBACJ,QAAQ;gBACR,IAAI;gBACJ,QAAQ;gBACR,IAAI;gBACJ,YAAY;aACb,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAEjB,WAAW,GAAG,OAAO,CAAC;YACxB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB,EAAE,OAAe;IAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,mBAAmB,CAAC,YAAoB,EAAE,OAAe,EAAE,OAAe;IACjF,+EAA+E;IAC/E,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAClD,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAgB;IAClD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,MAAM,EAAE;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;QACzC,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,+BAA+B,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,OAAe;IAC9C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAU,MAAM,CAAC;IAC1B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,IAAI,EAAE,KAAK,GAAG;gBAAE,KAAK,GAAG,MAAM,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,IAAI,EAAE,KAAK,IAAI;gBAAE,OAAO,GAAG,IAAI,CAAC;iBAC3B,IAAI,EAAE,KAAK,GAAG;gBAAE,KAAK,GAAG,MAAM,CAAC;YACpC,SAAS;QACX,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,EAAE,KAAK,GAAG;gBAAE,UAAU,GAAG,KAAK,CAAC;YACnC,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,KAAK,GAAG,QAAQ,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,KAAK,GAAG,QAAQ,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,UAAU,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,UAAU,GAAG,CAAC;gBAAE,UAAU,EAAE,CAAC;YACjC,SAAS;QACX,CAAC;QACD,IAAI,UAAU,GAAG,CAAC;YAAE,SAAS;QAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACjE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7C,KAAK,EAAE,CAAC;YACR,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACnD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7C,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,IAAI,UAAU,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAC3D,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,IAAI,KAAK,GAAU,MAAM,CAAC;IAC1B,IAAI,cAAkC,CAAC;IAEvC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,IAAI,EAAE,KAAK,GAAG;gBAAE,KAAK,GAAG,MAAM,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;iBAAM,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBACvB,KAAK,EAAE,CAAC;YACV,CAAC;iBAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;aAAM,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACvB,KAAK,EAAE,CAAC;QACV,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC/B,KAAK,EAAE,CAAC;YACV,CAAC;iBAAM,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACxC,cAAc,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,KAAa;IACpD,IAAI,KAAK,GAAU,MAAM,CAAC;IAC1B,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,OAAO,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,EAAE,CAAC;YACd,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;iBAAM,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBACvB,KAAK,EAAE,CAAC;gBACR,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;YAClC,CAAC;iBAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,EAAE,CAAC;YACd,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,MAAM;QACzB,IAAI,eAAe,CAAC,EAAE,CAAC;YAAE,MAAM;QAC/B,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;aAAM,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACvB,KAAK,EAAE,CAAC;YACR,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;QAClC,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,eAAe,CAAC,EAAU;IACjC,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC;AAC5E,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,KAAa;IAC9C,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAE,KAAK,EAAE,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -3,6 +3,14 @@ export declare const BASH_HOST_FALLBACK_BANNER = "[AFT host fallback - module tr
3
3
  export declare const BASH_HOST_FALLBACK_MAX_OUTPUT_BYTES: number;
4
4
  export declare const BASH_HOST_FALLBACK_MAX_TIMEOUT_MS: number;
5
5
  export declare const BASH_HOST_FALLBACK_REFUSAL = "AFT transport is down; only foreground execution is available in host fallback";
6
+ /**
7
+ * The bash `runon` argument's description. It is paid in every prompt that
8
+ * offers the argument, so it is one short sentence; docs/tools.md explains
9
+ * the rest. Shared by the OpenCode and Pi tools and the module catalog.
10
+ */
11
+ export declare const BASH_RUNON_DESCRIPTION = "Run this command on the remote Linux build server instead of this machine; the only value is \"linux\".";
12
+ /** Guidance served only beside an available remote-run parameter. */
13
+ export declare const BASH_RUNON_GUIDANCE = "When remote runs are available, put `runon: \"linux\"` on build and test lines (cargo, bun test), including chains and pipes. Keep git, gh, interactive and file-editing commands local, and keep a line local if it needs macOS (Seatbelt, codesign, launchd, TCC, AppKit) or runs binaries built on this machine: a remote build leaves no binaries or target/ output here.";
6
14
  export interface BashHostFallbackOptions {
7
15
  command: string;
8
16
  projectRoot: string;
@@ -18,6 +26,25 @@ export interface BashHostFallbackResult extends Record<string, unknown> {
18
26
  }
19
27
  export declare function hostFallbackPathWithShims(env: NodeJS.ProcessEnv, platform?: NodeJS.Platform): string | undefined;
20
28
  export declare function bashHostFallbackAskPattern(command: string, cwd: string, cause?: BashHostFallbackCause): string;
29
+ /**
30
+ * The last `BASH_HOST_FALLBACK_MAX_OUTPUT_BYTES` of a command's combined
31
+ * output. Chunks are kept as received and the oldest are dropped or sliced
32
+ * (without copying) once the cap is exceeded; the tail is copied into one
33
+ * buffer only when the command finishes. Concatenating the whole tail on every
34
+ * chunk copied up to the cap per chunk.
35
+ */
36
+ export declare class OutputTail {
37
+ private readonly maxBytes;
38
+ private chunks;
39
+ private length;
40
+ /** Some output was dropped from the front to honour the cap. */
41
+ truncated: boolean;
42
+ /** Bytes copied while assembling output; tests use it to pin the cost. */
43
+ copiedBytes: number;
44
+ constructor(maxBytes?: number);
45
+ push(chunk: Buffer): void;
46
+ bytes(): Buffer;
47
+ }
21
48
  /** Execute one explicitly-approved shell command without any AFT processing. */
22
49
  export declare function runBashHostFallback(options: BashHostFallbackOptions): Promise<BashHostFallbackResult>;
23
50
  //# sourceMappingURL=bash-host-fallback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bash-host-fallback.d.ts","sourceRoot":"","sources":["../src/bash-host-fallback.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjE,eAAO,MAAM,yBAAyB,oFAC6C,CAAC;AACpF,eAAO,MAAM,mCAAmC,QAAa,CAAC;AAC9D,eAAO,MAAM,iCAAiC,QAAiB,CAAC;AAChE,eAAO,MAAM,0BAA0B,mFAC2C,CAAC;AAEnF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrE,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AA2DD,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,qBAAwC,GAC9C,MAAM,CAER;AAmBD,gFAAgF;AAChF,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CA4FjC"}
1
+ {"version":3,"file":"bash-host-fallback.d.ts","sourceRoot":"","sources":["../src/bash-host-fallback.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjE,eAAO,MAAM,yBAAyB,oFAC6C,CAAC;AACpF,eAAO,MAAM,mCAAmC,QAAa,CAAC;AAC9D,eAAO,MAAM,iCAAiC,QAAiB,CAAC;AAChE,eAAO,MAAM,0BAA0B,mFAC2C,CAAC;AAEnF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,4GACsE,CAAC;AAE1G,qEAAqE;AACrE,eAAO,MAAM,mBAAmB,kXAC+U,CAAC;AAEhX,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrE,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AA2DD,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,qBAAwC,GAC9C,MAAM,CAER;AAED;;;;;;GAMG;AACH,qBAAa,UAAU;IAQT,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAPrC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAK;IACnB,gEAAgE;IAChE,SAAS,UAAS;IAClB,0EAA0E;IAC1E,WAAW,SAAK;gBAEa,QAAQ,SAAsC;IAE3E,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAoBzB,KAAK,IAAI,MAAM;CAIhB;AAQD,gFAAgF;AAChF,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAyFjC"}