@cortexkit/aft-bridge 0.58.2 → 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 (106) 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 +76 -30
  5. package/dist/bash-hints.d.ts.map +1 -1
  6. package/dist/bash-hints.js +218 -47
  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 +80 -38
  19. package/dist/bridge.js.map +1 -1
  20. package/dist/callgraph-format.d.ts.map +1 -1
  21. package/dist/callgraph-format.js +7 -7
  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/config-error.d.ts +2 -2
  27. package/dist/config-error.js +2 -2
  28. package/dist/config-watch.d.ts +2 -0
  29. package/dist/config-watch.d.ts.map +1 -1
  30. package/dist/config-watch.js +35 -0
  31. package/dist/config-watch.js.map +1 -1
  32. package/dist/durable-log.d.ts +11 -0
  33. package/dist/durable-log.d.ts.map +1 -1
  34. package/dist/durable-log.js +67 -24
  35. package/dist/durable-log.js.map +1 -1
  36. package/dist/error-contract.d.ts +14 -5
  37. package/dist/error-contract.d.ts.map +1 -1
  38. package/dist/error-contract.js +42 -9
  39. package/dist/error-contract.js.map +1 -1
  40. package/dist/feature-config.d.ts +35 -18
  41. package/dist/feature-config.d.ts.map +1 -1
  42. package/dist/feature-config.js +161 -94
  43. package/dist/feature-config.js.map +1 -1
  44. package/dist/index.d.ts +8 -7
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +8 -7
  47. package/dist/index.js.map +1 -1
  48. package/dist/location-lifecycle.d.ts.map +1 -1
  49. package/dist/location-lifecycle.js +4 -2
  50. package/dist/location-lifecycle.js.map +1 -1
  51. package/dist/message-detach.d.ts +8 -0
  52. package/dist/message-detach.d.ts.map +1 -1
  53. package/dist/message-detach.js +32 -0
  54. package/dist/message-detach.js.map +1 -1
  55. package/dist/migration-notices.d.ts.map +1 -1
  56. package/dist/migration-notices.js +12 -5
  57. package/dist/migration-notices.js.map +1 -1
  58. package/dist/migration.d.ts +1 -0
  59. package/dist/migration.d.ts.map +1 -1
  60. package/dist/migration.js +39 -12
  61. package/dist/migration.js.map +1 -1
  62. package/dist/onnx-runtime.d.ts.map +1 -1
  63. package/dist/onnx-runtime.js +37 -32
  64. package/dist/onnx-runtime.js.map +1 -1
  65. package/dist/path-display.d.ts +5 -0
  66. package/dist/path-display.d.ts.map +1 -0
  67. package/dist/path-display.js +21 -0
  68. package/dist/path-display.js.map +1 -0
  69. package/dist/paths.d.ts.map +1 -1
  70. package/dist/paths.js +7 -6
  71. package/dist/paths.js.map +1 -1
  72. package/dist/private-storage.d.ts +9 -0
  73. package/dist/private-storage.d.ts.map +1 -0
  74. package/dist/private-storage.js +75 -0
  75. package/dist/private-storage.js.map +1 -0
  76. package/dist/protocol.d.ts +4 -0
  77. package/dist/protocol.d.ts.map +1 -1
  78. package/dist/revivable-transport.d.ts +4 -2
  79. package/dist/revivable-transport.d.ts.map +1 -1
  80. package/dist/revivable-transport.js +48 -19
  81. package/dist/revivable-transport.js.map +1 -1
  82. package/dist/storage-paths.d.ts +3 -4
  83. package/dist/storage-paths.d.ts.map +1 -1
  84. package/dist/storage-paths.js +4 -5
  85. package/dist/storage-paths.js.map +1 -1
  86. package/dist/subc-transport.d.ts +61 -3
  87. package/dist/subc-transport.d.ts.map +1 -1
  88. package/dist/subc-transport.js +383 -43
  89. package/dist/subc-transport.js.map +1 -1
  90. package/dist/tar-executable.d.ts +1 -1
  91. package/dist/tar-executable.d.ts.map +1 -1
  92. package/dist/tar-executable.js +16 -2
  93. package/dist/tar-executable.js.map +1 -1
  94. package/dist/test-child-environment.d.ts +8 -0
  95. package/dist/test-child-environment.d.ts.map +1 -0
  96. package/dist/test-child-environment.js +105 -0
  97. package/dist/test-child-environment.js.map +1 -0
  98. package/dist/transport.d.ts +14 -0
  99. package/dist/transport.d.ts.map +1 -1
  100. package/dist/transport.js +17 -0
  101. package/dist/transport.js.map +1 -1
  102. package/dist/zoom-format.d.ts +1 -0
  103. package/dist/zoom-format.d.ts.map +1 -1
  104. package/dist/zoom-format.js +5 -1
  105. package/dist/zoom-format.js.map +1 -1
  106. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"bash-format.d.ts","sourceRoot":"","sources":["../src/bash-format.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAiB5E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAQzD;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC"}
1
+ {"version":3,"file":"bash-format.d.ts","sourceRoot":"","sources":["../src/bash-format.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAsB5E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAQzD;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC"}
@@ -15,6 +15,11 @@ export function formatForegroundResult(data) {
15
15
  }
16
16
  if (status === "timed_out") {
17
17
  rendered += `\n[command timed out]`;
18
+ // Name the limit that killed it, so AFT's own default limit is not
19
+ // mistaken for the command failing.
20
+ if (typeof data.status_reason === "string" && data.status_reason !== "") {
21
+ rendered += ` ${data.status_reason}`;
22
+ }
18
23
  }
19
24
  if (typeof exit === "number" && exit !== 0) {
20
25
  rendered += `\n[exit code: ${exit}]`;
@@ -1 +1 @@
1
- {"version":3,"file":"bash-format.js","sourceRoot":"","sources":["../src/bash-format.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,gGAAgG;AAChG,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA6B;IAClE,MAAM,MAAM,GAAI,IAAI,CAAC,cAAqC,IAAI,EAAE,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAiC,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAA4B,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,SAA+B,CAAC;IAClD,IAAI,QAAQ,GAAG,MAAM,CAAC;IACtB,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;QAC5B,QAAQ,IAAI,uCAAuC,UAAU,GAAG,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,QAAQ,IAAI,uBAAuB,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QAC3C,QAAQ,IAAI,iBAAiB,IAAI,GAAG,CAAC;IACvC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAe;IAC9C,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,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"bash-format.js","sourceRoot":"","sources":["../src/bash-format.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,gGAAgG;AAChG,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA6B;IAClE,MAAM,MAAM,GAAI,IAAI,CAAC,cAAqC,IAAI,EAAE,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAiC,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAA4B,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,SAA+B,CAAC;IAClD,IAAI,QAAQ,GAAG,MAAM,CAAC;IACtB,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;QAC5B,QAAQ,IAAI,uCAAuC,UAAU,GAAG,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,QAAQ,IAAI,uBAAuB,CAAC;QACpC,mEAAmE;QACnE,oCAAoC;QACpC,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,EAAE,CAAC;YACxE,QAAQ,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QAC3C,QAAQ,IAAI,iBAAiB,IAAI,GAAG,CAAC;IACvC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAe;IAC9C,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,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;AAC3B,CAAC"}
@@ -4,38 +4,54 @@ export type WatchCallerRole = "worker" | "primary";
4
4
  export declare const DEFAULT_PRIMARY_WATCH_TIMEOUT_MS = 30000;
5
5
  /** Largest bash_watch timeout accepted by the OpenCode and Pi plugins' tool schemas. */
6
6
  export declare const MAX_WATCH_TIMEOUT_MS = 1800000;
7
+ /**
8
+ * Default `bash.worker_wait_max_ms`: the longest a delegated worker's wait on
9
+ * one command blocks before control returns to it. Mirrors
10
+ * `DEFAULT_BASH_WORKER_WAIT_MAX_MS` in the engine's `config.rs`. A worker that
11
+ * blocked with no limit once sat behind a stuck test run for fifteen hours;
12
+ * with the limit it gets control back, sees the command is still running, and
13
+ * decides whether to wait again or kill it.
14
+ */
15
+ export declare const DEFAULT_WORKER_WAIT_MAX_MS = 1800000;
16
+ /** Smallest accepted `bash.worker_wait_max_ms`; mirrors `MIN_BASH_WORKER_WAIT_MAX_MS`. */
17
+ export declare const MIN_WORKER_WAIT_MAX_MS = 60000;
7
18
  /**
8
19
  * Longest delay a JavaScript timer accepts (2^31 - 1 ms, about 24.8 days); a
9
- * larger one fires almost at once. A bridge request that must wait for a
10
- * command with no hard-kill timeout uses it as its transport timeout, which
11
- * in practice means no transport timeout.
20
+ * larger one fires almost at once. Bridge transport timeouts derived from a
21
+ * configured limit are clamped to it.
12
22
  */
13
23
  export declare const LONGEST_TIMER_DELAY_MS = 2147483647;
24
+ /**
25
+ * How a delegated worker's waits are bounded, worded once for every tool
26
+ * description. It names the setting, not its value, so the prompt prefix is
27
+ * the same for every user.
28
+ */
29
+ export declare const WORKER_WAIT_LIMIT_PHRASE = "the worker wait limit (`bash.worker_wait_max_ms`, 30 minutes by default)";
14
30
  /**
15
31
  * Description of the bash_watch tool's sync-wait defaults, embedded in both
16
32
  * plugins' tool descriptions. Every caller sees the same description, so it
17
33
  * has to state both roles' real behaviour.
18
34
  */
19
- export declare 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 until the command finishes";
35
+ export declare 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";
20
36
  /**
21
37
  * Description of the bash_watch timeout parameter. Every caller sees the same
22
38
  * schema, so it has to be true for both roles.
23
39
  */
24
- export declare 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 until the command finishes; a value you pass is used as given.";
40
+ export declare 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.";
25
41
  /**
26
- * Effective sync bash_watch deadline in milliseconds, or `undefined` for a
27
- * wait with no deadline, which lasts until the task exits, a pattern matches,
28
- * a new message arrives, or the call is aborted.
42
+ * Effective sync bash_watch deadline in milliseconds.
29
43
  *
30
44
  * A delegated worker cannot be woken once its turn ends, so it has nothing
31
- * useful to do while its command runs except wait. Any deadline only makes it
32
- * call bash_watch again, and every such call re-reads its whole context. It
33
- * therefore waits with no deadline by default, and a timeout it passes is
34
- * honoured as given rather than clamped to the configured cap. A primary keeps
35
- * the short default and the cap because it can do other work or end its turn
36
- * and be woken by the completion reminder.
45
+ * useful to do while its command runs except wait, and a short deadline only
46
+ * makes it call bash_watch again, re-reading its whole context each time. It
47
+ * therefore waits up to the worker wait limit (`workerWaitMaxMs`,
48
+ * `bash.worker_wait_max_ms`) by default: long enough that re-watching is
49
+ * rare, short enough that a stuck command cannot hold it forever. A timeout
50
+ * it passes is honoured as given rather than clamped to the primary cap. A
51
+ * primary keeps the short default and the cap because it can do other work
52
+ * or end its turn and be woken by the completion reminder.
37
53
  */
38
- export declare function resolveWatchTimeoutMs(requestedMs: number | undefined, role: WatchCallerRole, capMs: number): number | undefined;
54
+ export declare function resolveWatchTimeoutMs(requestedMs: number | undefined, role: WatchCallerRole, capMs: number, workerWaitMaxMs: number): number;
39
55
  /**
40
56
  * Largest bash_watch timeout a caller of this role may pass. A primary is
41
57
  * bounded by the configured cap; a worker only by the schema maximum.
@@ -73,18 +89,48 @@ export declare function abortableSleep(ms: number, signal?: AbortSignal): Promis
73
89
  */
74
90
  export declare function formatWatchWaited(elapsedMs: number, limitMs: number | undefined, capMs: number | undefined): string;
75
91
  /**
76
- * Appended to a bash_watch reply whose sync deadline passed without a match.
77
- * The deadline is a property of the watch, not of the command: a delegated
78
- * worker that read the bare "timeout reached" line as its own execution being
79
- * interrupted declared a failed result while its long-running command was
80
- * still going. Each role gets only the move that applies to it: a worker must
81
- * keep watching and not report, while a primary may end its turn because the
82
- * completion reminder wakes it. A worker only reaches this with a timeout it
83
- * passed itself, so it is told that leaving the timeout out waits until the
84
- * command finishes. `timeoutParam` is the host's spelling of the bash_watch
85
- * timeout argument, so the worker is told a name it can pass.
86
- */
87
- export declare function watchTimeoutSteer(role: WatchCallerRole, timeoutParam?: string): string;
92
+ * Appended to a primary's bash_watch reply whose sync deadline passed without
93
+ * a match. The deadline is a property of the watch, not of the command, so the
94
+ * caller is told the command is still running and that the completion
95
+ * reminder wakes it. A worker gets {@link workerWatchStillRunning} instead.
96
+ */
97
+ export declare function watchTimeoutSteer(): string;
98
+ /** A duration in words: whole minutes as minutes, anything else in seconds. */
99
+ export declare function formatWaitDuration(ms: number): string;
100
+ /**
101
+ * The sentence naming a task's own kill deadline, from the `hard_kill` field
102
+ * and `started_at` of the engine's task status (`{ limit_ms, source }`), or how
103
+ * the task was killed when its hard kill fired (`status_reason`). It reports an
104
+ * absolute UTC deadline measured from command start and the approximate time
105
+ * remaining. Mirrors `kill_deadline_sentence` in the engine.
106
+ */
107
+ export declare function taskKillDeadlineText(data: Record<string, unknown>, role: WatchCallerRole, nowMs?: number): string;
108
+ /**
109
+ * A wait should not hand back a still-running task just before its own kill
110
+ * deadline. Five seconds covers the slowest status poll and kill publication.
111
+ */
112
+ export declare function taskKillDeadlineWithinHandoffMargin(data: Record<string, unknown>): boolean;
113
+ /** The last lines of `output`, so a worker can judge whether a command is stuck. */
114
+ export declare function outputTail(output: string | undefined): string;
115
+ /**
116
+ * Appended to a delegated worker's bash_watch reply whose deadline passed
117
+ * while the command still runs (by default the worker wait limit). The
118
+ * deadline is a property of the watch, not of the command: a worker that read
119
+ * a bare "timeout reached" line as its own execution failing declared a
120
+ * failed result while its command was still going. So it is told plainly that
121
+ * the command is still running, how long it has run, and its latest output,
122
+ * then given both moves by name: watch again to keep waiting, or kill a
123
+ * command that should have finished. `taskIdArg` and `timeoutParam` are the
124
+ * host's spellings of the bash_watch arguments.
125
+ */
126
+ export declare function workerWatchStillRunning(options: {
127
+ taskId: string;
128
+ waitedMs: number;
129
+ ranMs: number | undefined;
130
+ output: string | undefined;
131
+ taskIdArg?: string;
132
+ timeoutParam?: string;
133
+ }): string;
88
134
  /**
89
135
  * How long a sync bash_watch with no deadline keeps retrying while every
90
136
  * status poll times out because the bridge is busy. Without this bound a wait
@@ -110,9 +156,9 @@ export declare function interruptedWatchTail(role: WatchCallerRole, primaryTail:
110
156
  * command now runs in the background. AFT's own reply already says the task
111
157
  * won't wake the worker; this names the plugin-owned bash_watch tool, which
112
158
  * AFT cannot assume a host has. The suggested call passes no timeout on
113
- * purpose: a worker's watch without one waits until the command finishes, so
114
- * any number would only make it wake and watch again. `taskIdArg` is the
115
- * host's spelling of the task id argument.
159
+ * purpose: a worker's watch without one waits up to the worker wait limit,
160
+ * the longest it may, so any number would only make it wake sooner and watch
161
+ * again. `taskIdArg` is the host's spelling of the task id argument.
116
162
  */
117
163
  export declare function workerBackgroundTaskNote(taskId: string, taskIdArg?: string): string;
118
164
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"bash-hints.d.ts","sourceRoot":"","sources":["../src/bash-hints.ts"],"names":[],"mappings":"AAWA,8EAA8E;AAC9E,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnD,iFAAiF;AACjF,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAEvD,wFAAwF;AACxF,eAAO,MAAM,oBAAoB,UAAY,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,aAAgB,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,uLAC0I,CAAC;AAEvL;;;GAGG;AACH,eAAO,MAAM,+BAA+B,kOACqL,CAAC;AAElO;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,SAAS,CAGpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAK1D;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE;IACvB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAI5D,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,CAOR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,SAAc,GAAG,MAAM,CAK3F;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,SAAU,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,6FAC4D,CAAC;AAE7F;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAW,GAAG,MAAM,CAErF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAInE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAInE;AAqBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAYjE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,OAAO,EAC5B,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAQR"}
1
+ {"version":3,"file":"bash-hints.d.ts","sourceRoot":"","sources":["../src/bash-hints.ts"],"names":[],"mappings":"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"}
@@ -1,44 +1,61 @@
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;
6
7
  /** Largest bash_watch timeout accepted by the OpenCode and Pi plugins' tool schemas. */
7
8
  export const MAX_WATCH_TIMEOUT_MS = 1_800_000;
9
+ /**
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.
16
+ */
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;
8
20
  /**
9
21
  * Longest delay a JavaScript timer accepts (2^31 - 1 ms, about 24.8 days); a
10
- * larger one fires almost at once. A bridge request that must wait for a
11
- * command with no hard-kill timeout uses it as its transport timeout, which
12
- * in practice means no transport timeout.
22
+ * larger one fires almost at once. Bridge transport timeouts derived from a
23
+ * configured limit are clamped to it.
13
24
  */
14
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)";
15
32
  /**
16
33
  * Description of the bash_watch tool's sync-wait defaults, embedded in both
17
34
  * plugins' tool descriptions. Every caller sees the same description, so it
18
35
  * has to state both roles' real behaviour.
19
36
  */
20
- 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 until the command finishes";
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";
21
38
  /**
22
39
  * Description of the bash_watch timeout parameter. Every caller sees the same
23
40
  * schema, so it has to be true for both roles.
24
41
  */
25
- 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 until the command finishes; a value you pass is used as given.";
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.";
26
43
  /**
27
- * Effective sync bash_watch deadline in milliseconds, or `undefined` for a
28
- * wait with no deadline, which lasts until the task exits, a pattern matches,
29
- * a new message arrives, or the call is aborted.
44
+ * Effective sync bash_watch deadline in milliseconds.
30
45
  *
31
46
  * A delegated worker cannot be woken once its turn ends, so it has nothing
32
- * useful to do while its command runs except wait. Any deadline only makes it
33
- * call bash_watch again, and every such call re-reads its whole context. It
34
- * therefore waits with no deadline by default, and a timeout it passes is
35
- * honoured as given rather than clamped to the configured cap. A primary keeps
36
- * the short default and the cap because it can do other work or end its turn
37
- * and be woken by the completion reminder.
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.
38
55
  */
39
- export function resolveWatchTimeoutMs(requestedMs, role, capMs) {
56
+ export function resolveWatchTimeoutMs(requestedMs, role, capMs, workerWaitMaxMs) {
40
57
  if (role === "worker")
41
- return requestedMs;
58
+ return requestedMs ?? workerWaitMaxMs;
42
59
  return Math.min(requestedMs ?? DEFAULT_PRIMARY_WATCH_TIMEOUT_MS, capMs);
43
60
  }
44
61
  /**
@@ -101,7 +118,7 @@ export function abortableSleep(ms, signal) {
101
118
  export function formatWatchWaited(elapsedMs, limitMs, capMs) {
102
119
  let limit;
103
120
  if (limitMs === undefined)
104
- limit = "no limit: waits until the command finishes";
121
+ limit = "no wait limit";
105
122
  else if (capMs !== undefined && limitMs >= capMs)
106
123
  limit = `limit ${limitMs}ms, the bash.watch_sync_max_ms cap`;
107
124
  else
@@ -109,23 +126,142 @@ export function formatWatchWaited(elapsedMs, limitMs, capMs) {
109
126
  return `Waited ${Math.round(elapsedMs)}ms (${limit})`;
110
127
  }
111
128
  /**
112
- * Appended to a bash_watch reply whose sync deadline passed without a match.
113
- * The deadline is a property of the watch, not of the command: a delegated
114
- * worker that read the bare "timeout reached" line as its own execution being
115
- * interrupted declared a failed result while its long-running command was
116
- * still going. Each role gets only the move that applies to it: a worker must
117
- * keep watching and not report, while a primary may end its turn because the
118
- * completion reminder wakes it. A worker only reaches this with a timeout it
119
- * passed itself, so it is told that leaving the timeout out waits until the
120
- * command finishes. `timeoutParam` is the host's spelling of the bash_watch
121
- * 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.
122
133
  */
123
- export function watchTimeoutSteer(role, timeoutParam = "timeoutMs") {
124
- if (role === "worker") {
125
- return `The command is still running; this is not a failure. Watch again and don't report a result until it finishes; a bash_watch without ${timeoutParam} waits until the command finishes.`;
126
- }
134
+ export function watchTimeoutSteer() {
127
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.";
128
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
+ }
129
265
  /**
130
266
  * How long a sync bash_watch with no deadline keeps retrying while every
131
267
  * status poll times out because the bridge is busy. Without this bound a wait
@@ -153,12 +289,12 @@ export function interruptedWatchTail(role, primaryTail) {
153
289
  * command now runs in the background. AFT's own reply already says the task
154
290
  * won't wake the worker; this names the plugin-owned bash_watch tool, which
155
291
  * AFT cannot assume a host has. The suggested call passes no timeout on
156
- * purpose: a worker's watch without one waits until the command finishes, so
157
- * any number would only make it wake and watch again. `taskIdArg` is the
158
- * host's spelling of the task id argument.
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.
159
295
  */
160
296
  export function workerBackgroundTaskNote(taskId, taskIdArg = "taskId") {
161
- 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 until the command finishes. Subagents don't survive turn-end and won't be woken when the command finishes.`;
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.`;
162
298
  }
163
299
  /**
164
300
  * Line a bash_status snapshot of a still-running task ends with. A primary is
@@ -369,7 +505,7 @@ function nextCwdAfterCd(currentCwd, firstStage, afterCd) {
369
505
  }
370
506
  function isDirInsideProject(resolvedRoot, dir) {
371
507
  const rel = path.relative(resolvedRoot, path.resolve(dir));
372
- return rel === "" || (!rel.startsWith("..") && !path.isAbsolute(rel));
508
+ return !relativePathEscapesRoot(rel);
373
509
  }
374
510
  function collectPathOperands(firstStage, startAfterCommand) {
375
511
  const operands = [];
@@ -380,6 +516,8 @@ function collectPathOperands(firstStage, startAfterCommand) {
380
516
  // the grep read as path-less ("in-project cwd") and nudged toward aft_search
381
517
  // for a target it could not see - the logs directory, in the field.
382
518
  let sawPattern = false;
519
+ let optionsEnded = false;
520
+ let optionValue;
383
521
  while (index < firstStage.length) {
384
522
  const tokenResult = readShellToken(firstStage, index);
385
523
  if (tokenResult === null)
@@ -393,23 +531,56 @@ function collectPathOperands(firstStage, startAfterCommand) {
393
531
  if (end <= index)
394
532
  break;
395
533
  index = skipSpaces(firstStage, end);
396
- 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;
397
545
  continue;
398
- 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) {
399
577
  sawPattern = true;
400
578
  continue;
401
579
  }
402
- if (looksLikePathOperand(token) || isDynamicPathOperand(token))
403
- operands.push(token);
580
+ operands.push(token);
404
581
  }
405
582
  return operands;
406
583
  }
407
- function looksLikePathOperand(token) {
408
- return (token.includes("/") ||
409
- token.startsWith("~") ||
410
- token.startsWith("./") ||
411
- token.startsWith("../"));
412
- }
413
584
  function isDynamicPathOperand(token) {
414
585
  return token.startsWith("~") || token.includes("$") || token.includes("`");
415
586
  }
@@ -430,7 +601,7 @@ function isPathInsideProject(resolvedRoot, baseCwd, operand) {
430
601
  // from the project root after a `cd`), absolute/`~` operands against the FS.
431
602
  const resolved = resolvePathOperand(baseCwd, operand);
432
603
  const rel = path.relative(resolvedRoot, resolved);
433
- return rel === "" || (!rel.startsWith("..") && !path.isAbsolute(rel));
604
+ return !relativePathEscapesRoot(rel);
434
605
  }
435
606
  function shouldSuppressResolvedPath(resolved) {
436
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":"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"}