@cortexkit/aft-bridge 0.35.4 → 0.36.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.
@@ -13,14 +13,4 @@
13
13
  * agents into a confusing error.
14
14
  */
15
15
  export declare function maybeAppendConflictsHint(output: string): string;
16
- /**
17
- * Append the grep-tool hint when the bash command was a grep/rg invocation.
18
- *
19
- * When `command` is provided (Pi knows the exact command), it is matched
20
- * directly. Otherwise (OpenCode's `tool.execute.after`, where only the output
21
- * is available) the FIRST LINE of output is examined — on most shells in
22
- * foreground mode this is the echoed command line. The slice is capped at 300
23
- * chars so a single huge first line doesn't slow this hook.
24
- */
25
- export declare function maybeAppendGrepHint(output: string, command?: string): string;
26
16
  //# sourceMappingURL=bash-hints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bash-hints.d.ts","sourceRoot":"","sources":["../src/bash-hints.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5E"}
1
+ {"version":3,"file":"bash-hints.d.ts","sourceRoot":"","sources":["../src/bash-hints.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM/D"}
@@ -1,12 +1,14 @@
1
1
  // Pure helpers for the bash-output hint nudges appended to bash tool results.
2
2
  //
3
- // Shared across harnesses (OpenCode applies them in `tool.execute.after`; Pi
4
- // applies them inside its hoisted bash tool, where the command is known). Each
5
- // function returns the new output string (or the original when no hint should
6
- // fire) so callers compose them without managing state. The appended
7
- // "[Hint] ..." lines are agent-visible and persist in the tool result.
3
+ // Shared across harnesses (OpenCode applies it in `tool.execute.after`; Pi
4
+ // applies it inside its hoisted bash tool). Returns the new output string (or
5
+ // the original when no hint should fire). The appended "[Hint] ..." line is
6
+ // agent-visible and persists in the tool result.
7
+ //
8
+ // Note: the grep/rg code-search redirect lives in the Rust bash rewriter
9
+ // (`bash_rewrite::footer::add_grep_footer`), which owns the rewrite and reads
10
+ // `aft_search_registered` from config. It is not duplicated here.
8
11
  const CONFLICT_HINT = "\n\n[Hint] Use aft_conflicts to see all conflict regions across files in a single call.";
9
- const GREP_HINT = "\n\n[Hint] Use the grep tool instead of bash for faster indexed search.";
10
12
  /**
11
13
  * Append the `aft_conflicts` hint when the output indicates a real git merge
12
14
  * or rebase produced conflicts.
@@ -30,19 +32,4 @@ export function maybeAppendConflictsHint(output) {
30
32
  return output;
31
33
  return output + CONFLICT_HINT;
32
34
  }
33
- /**
34
- * Append the grep-tool hint when the bash command was a grep/rg invocation.
35
- *
36
- * When `command` is provided (Pi knows the exact command), it is matched
37
- * directly. Otherwise (OpenCode's `tool.execute.after`, where only the output
38
- * is available) the FIRST LINE of output is examined — on most shells in
39
- * foreground mode this is the echoed command line. The slice is capped at 300
40
- * chars so a single huge first line doesn't slow this hook.
41
- */
42
- export function maybeAppendGrepHint(output, command) {
43
- const probe = command !== undefined ? command : (output.slice(0, 300).split("\n")[0] ?? "");
44
- if (!/\b(rg|grep)\s/.test(probe))
45
- return output;
46
- return output + GREP_HINT;
47
- }
48
35
  //# sourceMappingURL=bash-hints.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bash-hints.js","sourceRoot":"","sources":["../src/bash-hints.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,qEAAqE;AACrE,uEAAuE;AAEvE,MAAM,aAAa,GACjB,yFAAyF,CAAC;AAC5F,MAAM,SAAS,GAAG,yEAAyE,CAAC;AAE5F;;;;;;;;;;;;;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;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,OAAgB;IAClE,MAAM,KAAK,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5F,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAChD,OAAO,MAAM,GAAG,SAAS,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"bash-hints.js","sourceRoot":"","sources":["../src/bash-hints.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,4EAA4E;AAC5E,iDAAiD;AACjD,EAAE;AACF,yEAAyE;AACzE,8EAA8E;AAC9E,kEAAkE;AAElE,MAAM,aAAa,GACjB,yFAAyF,CAAC;AAE5F;;;;;;;;;;;;;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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Resolve the hard-kill timeout to forward to the bridge for a foreground bash
3
+ * command.
4
+ *
5
+ * A model-supplied `timeout` shorter than the foreground wait window is
6
+ * incoherent: the task would be killed before (or exactly at) the moment we
7
+ * promote it to background, which is never what the caller wants. This is the
8
+ * #102 bug, where a model passed `timeout: 100` and the command was killed at
9
+ * 100ms while `foreground_wait_window_ms` was silently overridden to 100ms by a
10
+ * `Math.min(timeout, window)`.
11
+ *
12
+ * Treat such sub-window values as unset (return `undefined`) so the bridge
13
+ * applies its default 30-minute kill cap and the foreground poll runs the full
14
+ * wait window. A `timeout` at or above the window is a coherent cap and is
15
+ * honored as-is. Callers use the returned value for the bridge payload, the
16
+ * promotion message, and the subagent inline-wait, so all three agree.
17
+ */
18
+ export declare function resolveBashKillTimeout(modelTimeout: number | undefined, foregroundWaitMs: number): number | undefined;
19
+ //# sourceMappingURL=bash-timeout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash-timeout.d.ts","sourceRoot":"","sources":["../src/bash-timeout.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,gBAAgB,EAAE,MAAM,GACvB,MAAM,GAAG,SAAS,CAKpB"}
@@ -0,0 +1,26 @@
1
+ // Shared resolution of the hard-kill timeout sent to the bridge for a bash
2
+ // command. Used by both harness plugins so the semantics stay identical.
3
+ /**
4
+ * Resolve the hard-kill timeout to forward to the bridge for a foreground bash
5
+ * command.
6
+ *
7
+ * A model-supplied `timeout` shorter than the foreground wait window is
8
+ * incoherent: the task would be killed before (or exactly at) the moment we
9
+ * promote it to background, which is never what the caller wants. This is the
10
+ * #102 bug, where a model passed `timeout: 100` and the command was killed at
11
+ * 100ms while `foreground_wait_window_ms` was silently overridden to 100ms by a
12
+ * `Math.min(timeout, window)`.
13
+ *
14
+ * Treat such sub-window values as unset (return `undefined`) so the bridge
15
+ * applies its default 30-minute kill cap and the foreground poll runs the full
16
+ * wait window. A `timeout` at or above the window is a coherent cap and is
17
+ * honored as-is. Callers use the returned value for the bridge payload, the
18
+ * promotion message, and the subagent inline-wait, so all three agree.
19
+ */
20
+ export function resolveBashKillTimeout(modelTimeout, foregroundWaitMs) {
21
+ if (modelTimeout !== undefined && modelTimeout >= foregroundWaitMs) {
22
+ return modelTimeout;
23
+ }
24
+ return undefined;
25
+ }
26
+ //# sourceMappingURL=bash-timeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash-timeout.js","sourceRoot":"","sources":["../src/bash-timeout.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,yEAAyE;AAEzE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,sBAAsB,CACpC,YAAgC,EAChC,gBAAwB;IAExB,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,IAAI,gBAAgB,EAAE,CAAC;QACnE,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Coerce a tool argument that is contractually a string array into a real
3
+ * `string[]`, tolerating the shapes models/MCP clients send in practice.
4
+ *
5
+ * Some hosts deliver an array-typed param as a bare string (`"a.ts"`) or a
6
+ * JSON-stringified array (`'["a.ts","b.ts"]'`) despite the declared schema.
7
+ * A plain `args.files as string[]` cast then lies, and the first `.map`/
8
+ * iteration throws (`inputs.map is not a function`) before any validation can
9
+ * report a clean error. This normalizes at the boundary so callers get a real
10
+ * array (possibly empty) and never crash on a mistyped argument.
11
+ *
12
+ * Accepts:
13
+ * - a string[] (non-string entries dropped, empties trimmed out)
14
+ * - a JSON-stringified array of strings (`'["a","b"]'`)
15
+ * - a single non-empty string (treated as a one-element array)
16
+ *
17
+ * Returns `[]` for null/undefined/empty/other shapes; the caller enforces any
18
+ * "at least one" requirement and produces the user-facing error.
19
+ */
20
+ export declare function coerceStringArray(value: unknown): string[];
21
+ //# sourceMappingURL=coerce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce.d.ts","sourceRoot":"","sources":["../src/coerce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAwB1D"}
package/dist/coerce.js ADDED
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Coerce a tool argument that is contractually a string array into a real
3
+ * `string[]`, tolerating the shapes models/MCP clients send in practice.
4
+ *
5
+ * Some hosts deliver an array-typed param as a bare string (`"a.ts"`) or a
6
+ * JSON-stringified array (`'["a.ts","b.ts"]'`) despite the declared schema.
7
+ * A plain `args.files as string[]` cast then lies, and the first `.map`/
8
+ * iteration throws (`inputs.map is not a function`) before any validation can
9
+ * report a clean error. This normalizes at the boundary so callers get a real
10
+ * array (possibly empty) and never crash on a mistyped argument.
11
+ *
12
+ * Accepts:
13
+ * - a string[] (non-string entries dropped, empties trimmed out)
14
+ * - a JSON-stringified array of strings (`'["a","b"]'`)
15
+ * - a single non-empty string (treated as a one-element array)
16
+ *
17
+ * Returns `[]` for null/undefined/empty/other shapes; the caller enforces any
18
+ * "at least one" requirement and produces the user-facing error.
19
+ */
20
+ export function coerceStringArray(value) {
21
+ if (Array.isArray(value)) {
22
+ return value.filter((entry) => typeof entry === "string" && entry.length > 0);
23
+ }
24
+ if (typeof value === "string") {
25
+ const trimmed = value.trim();
26
+ if (trimmed.length === 0)
27
+ return [];
28
+ // JSON-stringified array, e.g. '["a.ts","b.ts"]'
29
+ if (trimmed.startsWith("[") && trimmed.endsWith("]")) {
30
+ try {
31
+ const parsed = JSON.parse(trimmed);
32
+ if (Array.isArray(parsed)) {
33
+ return parsed.filter((entry) => typeof entry === "string" && entry.length > 0);
34
+ }
35
+ }
36
+ catch {
37
+ // Not valid JSON; fall through to single-string handling.
38
+ }
39
+ }
40
+ // A single path. Do NOT split on spaces/commas: paths may contain spaces.
41
+ return [value];
42
+ }
43
+ return [];
44
+ }
45
+ //# sourceMappingURL=coerce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce.js","sourceRoot":"","sources":["../src/coerce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,iDAAiD;QACjD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAC1E,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,0DAA0D;YAC5D,CAAC;QACH,CAAC;QACD,0EAA0E;QAC1E,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -7,9 +7,11 @@
7
7
  * each host plugin.
8
8
  */
9
9
  export { setActiveLogger } from "./active-logger.js";
10
- export { maybeAppendConflictsHint, maybeAppendGrepHint } from "./bash-hints.js";
10
+ export { maybeAppendConflictsHint } from "./bash-hints.js";
11
+ export { resolveBashKillTimeout } from "./bash-timeout.js";
11
12
  export type { BashCompletedPayload, BashLongRunningPayload, BridgeOptions, BridgeRequestOptions, ConfigureWarning, ConfigureWarningsContext, StatusSnapshot, } from "./bridge.js";
12
13
  export { BinaryBridge, compareSemver, tagStderrLine } from "./bridge.js";
14
+ export { coerceStringArray } from "./coerce.js";
13
15
  export { downloadBinary, ensureBinary, getBinaryName, getCacheDir, getCachedBinaryPath, } from "./downloader.js";
14
16
  export type { EditSummaryInput } from "./edit-summary.js";
15
17
  export { formatEditSummary } from "./edit-summary.js";
@@ -22,6 +24,8 @@ export type { ResolvedNpm } from "./npm-resolver.js";
22
24
  export { isNpmAvailable, npmSpawnEnv, probeNpmVersion, resolveNpm, } from "./npm-resolver.js";
23
25
  export { __test__ as __onnxTest__, cleanupOnnxRuntime, ensureOnnxRuntime, getManualInstallHint, isOrtAutoDownloadSupported, } from "./onnx-runtime.js";
24
26
  export { markAnnouncementSeen, repairRootScopedStorageFile, resolveHarnessStoragePath, shouldShowAnnouncement, } from "./paths.js";
27
+ export type { PipeStripResult } from "./pipe-strip.js";
28
+ export { maybeStripCompressorPipe } from "./pipe-strip.js";
25
29
  export { PLATFORM_ARCH_MAP, PLATFORM_ASSET_MAP } from "./platform.js";
26
30
  export type { PoolOptions } from "./pool.js";
27
31
  export { BridgePool, HomeProjectRootError, isHomeDirectoryRoot } from "./pool.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAChF,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,WAAW,EACX,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE1F,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAElF,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5F,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,WAAW,EACX,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE1F,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAElF,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5F,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -9,9 +9,11 @@
9
9
  // --- logger contract ---
10
10
  export { setActiveLogger } from "./active-logger.js";
11
11
  // --- bash output hints (shared by both plugin hosts) ---
12
- export { maybeAppendConflictsHint, maybeAppendGrepHint } from "./bash-hints.js";
12
+ export { maybeAppendConflictsHint } from "./bash-hints.js";
13
+ export { resolveBashKillTimeout } from "./bash-timeout.js";
13
14
  // --- transport ---
14
15
  export { BinaryBridge, compareSemver, tagStderrLine } from "./bridge.js";
16
+ export { coerceStringArray } from "./coerce.js";
15
17
  // --- binary resolution ---
16
18
  export { downloadBinary, ensureBinary, getBinaryName, getCacheDir, getCachedBinaryPath, } from "./downloader.js";
17
19
  export { formatEditSummary } from "./edit-summary.js";
@@ -25,6 +27,7 @@ export { isNpmAvailable, npmSpawnEnv, probeNpmVersion, resolveNpm, } from "./npm
25
27
  // --- ONNX runtime ---
26
28
  export { __test__ as __onnxTest__, cleanupOnnxRuntime, ensureOnnxRuntime, getManualInstallHint, isOrtAutoDownloadSupported, } from "./onnx-runtime.js";
27
29
  export { markAnnouncementSeen, repairRootScopedStorageFile, resolveHarnessStoragePath, shouldShowAnnouncement, } from "./paths.js";
30
+ export { maybeStripCompressorPipe } from "./pipe-strip.js";
28
31
  // --- platform helpers ---
29
32
  export { PLATFORM_ARCH_MAP, PLATFORM_ASSET_MAP } from "./platform.js";
30
33
  export { BridgePool, HomeProjectRootError, isHomeDirectoryRoot } from "./pool.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,0BAA0B;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,0DAA0D;AAC1D,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAUhF,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzE,4BAA4B;AAC5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,WAAW,EACX,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,gCAAgC;AAChC,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1E,wBAAwB;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,4BAA4B;AAC5B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,uBAAuB;AACvB,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAiBlF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5F,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,0BAA0B;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,0DAA0D;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAU3D,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,4BAA4B;AAC5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,WAAW,EACX,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,gCAAgC;AAChC,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1E,wBAAwB;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,4BAA4B;AAC5B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,uBAAuB;AACvB,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAiBlF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5F,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface PipeStripResult {
2
+ command: string;
3
+ stripped: boolean;
4
+ note?: string;
5
+ }
6
+ export declare function maybeStripCompressorPipe(command: string, compressionEnabled: boolean): PipeStripResult;
7
+ //# sourceMappingURL=pipe-strip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe-strip.d.ts","sourceRoot":"","sources":["../src/pipe-strip.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAcD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,OAAO,GAC1B,eAAe,CAiCjB"}
@@ -0,0 +1,229 @@
1
+ const NOISE_FILTERS = new Set(["grep", "rg", "head", "tail", "cat", "less", "more"]);
2
+ const GREP_GUARD_FLAGS = new Set([
3
+ "c",
4
+ "count",
5
+ "q",
6
+ "quiet",
7
+ "o",
8
+ "only-matching",
9
+ "l",
10
+ "files-with-matches",
11
+ ]);
12
+ export function maybeStripCompressorPipe(command, compressionEnabled) {
13
+ if (!compressionEnabled)
14
+ return { command, stripped: false };
15
+ // Peel a leading `cmd && ... &&` prefix (e.g. `cd dir && bun test | grep`).
16
+ // Since `&&` binds looser than `|`, `A && B | C` means `A && (B | C)`, so the
17
+ // pipeline to strip is the LAST `&&`-segment and the earlier segments are a
18
+ // verbatim prefix to reattach. Bail on top-level `||`/`;` (ambiguous/risky).
19
+ const chain = splitTopLevelAndChain(command);
20
+ if (chain === null)
21
+ return { command, stripped: false };
22
+ const prefix = chain
23
+ .slice(0, -1)
24
+ .map((segment) => segment.trim())
25
+ .filter(Boolean);
26
+ const pipeline = chain[chain.length - 1] ?? "";
27
+ const stages = splitTopLevelPipeline(pipeline);
28
+ if (stages.length < 2)
29
+ return { command, stripped: false };
30
+ const firstStage = stages[0]?.trim() ?? "";
31
+ if (!isCompressorHandledRunner(firstStage))
32
+ return { command, stripped: false };
33
+ const filterStages = stages.slice(1).map((stage) => stage.trim());
34
+ for (const stage of filterStages) {
35
+ if (!isPlainNoiseFilter(stage))
36
+ return { command, stripped: false };
37
+ }
38
+ const filters = filterStages.join(" | ");
39
+ const rebuilt = [...prefix, firstStage].join(" && ");
40
+ return {
41
+ command: rebuilt,
42
+ stripped: true,
43
+ note: `[AFT dropped \`| ${filters}\` (compressed:false to keep)]`,
44
+ };
45
+ }
46
+ /**
47
+ * Split a command into its top-level `&&`-joined segments, respecting quotes
48
+ * and escapes. Returns `null` if the command contains a top-level `||` or `;`,
49
+ * which make prefix-peeling ambiguous, so the caller bails. Single `&`
50
+ * (redirects like `2>&1`, background) is left intact inside a segment.
51
+ */
52
+ function splitTopLevelAndChain(command) {
53
+ const segments = [];
54
+ let start = 0;
55
+ let quote = null;
56
+ let escaped = false;
57
+ for (let index = 0; index < command.length; index++) {
58
+ const char = command[index];
59
+ const next = command[index + 1];
60
+ if (escaped) {
61
+ escaped = false;
62
+ continue;
63
+ }
64
+ if (char === "\\" && quote !== "'") {
65
+ escaped = true;
66
+ continue;
67
+ }
68
+ if (quote) {
69
+ if (char === quote)
70
+ quote = null;
71
+ continue;
72
+ }
73
+ if (char === "'" || char === '"') {
74
+ quote = char;
75
+ continue;
76
+ }
77
+ if (char === "&" && next === "&") {
78
+ segments.push(command.slice(start, index));
79
+ start = index + 2;
80
+ index++;
81
+ continue;
82
+ }
83
+ if (char === "|" && next === "|")
84
+ return null;
85
+ if (char === ";")
86
+ return null;
87
+ }
88
+ segments.push(command.slice(start));
89
+ return segments;
90
+ }
91
+ function splitTopLevelPipeline(command) {
92
+ const stages = [];
93
+ let start = 0;
94
+ let quote = null;
95
+ let escaped = false;
96
+ for (let index = 0; index < command.length; index++) {
97
+ const char = command[index];
98
+ const next = command[index + 1];
99
+ const previous = command[index - 1];
100
+ if (escaped) {
101
+ escaped = false;
102
+ continue;
103
+ }
104
+ if (char === "\\" && quote !== "'") {
105
+ escaped = true;
106
+ continue;
107
+ }
108
+ if (quote) {
109
+ if (char === quote)
110
+ quote = null;
111
+ continue;
112
+ }
113
+ if (char === "'" || char === '"') {
114
+ quote = char;
115
+ continue;
116
+ }
117
+ if (char === "|" && previous !== "|" && next !== "|") {
118
+ stages.push(command.slice(start, index));
119
+ start = index + 1;
120
+ }
121
+ }
122
+ stages.push(command.slice(start));
123
+ return stages;
124
+ }
125
+ function isCompressorHandledRunner(stage) {
126
+ const tokens = tokenizeStage(stage);
127
+ if (tokens.length === 0)
128
+ return false;
129
+ const [first, second, third] = tokens;
130
+ if (!first)
131
+ return false;
132
+ if (tokens.some((token) => token === "&&" || token === "||" || token.includes(";"))) {
133
+ return false;
134
+ }
135
+ if (first === "bun")
136
+ return second === "test" || (second === "run" && startsWithTest(third));
137
+ if (first === "cargo")
138
+ return ["test", "build", "check", "clippy"].includes(second ?? "");
139
+ if (first === "go")
140
+ return second === "test" || second === "build";
141
+ if (["npm", "pnpm"].includes(first)) {
142
+ return second === "test" || (second === "run" && startsWithTest(third));
143
+ }
144
+ if (first === "yarn")
145
+ return second === "test";
146
+ if (first === "playwright")
147
+ return second === "test";
148
+ if (first === "npx")
149
+ return ["tsc", "eslint", "vitest", "jest"].includes(second ?? "");
150
+ return ["vitest", "jest", "pytest", "tsc", "eslint", "biome", "ruff", "mypy"].includes(first);
151
+ }
152
+ function startsWithTest(token) {
153
+ return token?.startsWith("test") === true;
154
+ }
155
+ function isPlainNoiseFilter(stage) {
156
+ const tokens = tokenizeStage(stage);
157
+ const head = tokens[0];
158
+ if (!head)
159
+ return false;
160
+ if (head === "wc")
161
+ return false;
162
+ if (!NOISE_FILTERS.has(head))
163
+ return false;
164
+ if ((head === "grep" || head === "rg") && hasIntentChangingGrepFlag(tokens.slice(1)))
165
+ return false;
166
+ return true;
167
+ }
168
+ function hasIntentChangingGrepFlag(args) {
169
+ for (const arg of args) {
170
+ if (arg === "--")
171
+ return false;
172
+ if (!arg.startsWith("-") || arg === "-")
173
+ continue;
174
+ if (arg.startsWith("--")) {
175
+ const flag = arg.slice(2).split("=", 1)[0];
176
+ if (GREP_GUARD_FLAGS.has(flag))
177
+ return true;
178
+ continue;
179
+ }
180
+ for (const flag of arg.slice(1)) {
181
+ if (GREP_GUARD_FLAGS.has(flag))
182
+ return true;
183
+ }
184
+ }
185
+ return false;
186
+ }
187
+ function tokenizeStage(stage) {
188
+ const tokens = [];
189
+ let current = "";
190
+ let quote = null;
191
+ let escaped = false;
192
+ for (let index = 0; index < stage.length; index++) {
193
+ const char = stage[index];
194
+ if (escaped) {
195
+ current += char;
196
+ escaped = false;
197
+ continue;
198
+ }
199
+ if (char === "\\" && quote !== "'") {
200
+ escaped = true;
201
+ continue;
202
+ }
203
+ if (quote) {
204
+ if (char === quote) {
205
+ quote = null;
206
+ }
207
+ else {
208
+ current += char;
209
+ }
210
+ continue;
211
+ }
212
+ if (char === "'" || char === '"') {
213
+ quote = char;
214
+ continue;
215
+ }
216
+ if (/\s/.test(char)) {
217
+ if (current.length > 0) {
218
+ tokens.push(current);
219
+ current = "";
220
+ }
221
+ continue;
222
+ }
223
+ current += char;
224
+ }
225
+ if (current.length > 0)
226
+ tokens.push(current);
227
+ return tokens;
228
+ }
229
+ //# sourceMappingURL=pipe-strip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe-strip.js","sourceRoot":"","sources":["../src/pipe-strip.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/aft-bridge",
3
- "version": "0.35.4",
3
+ "version": "0.36.0",
4
4
  "type": "module",
5
5
  "description": "Shared NDJSON bridge transport, binary resolution, and ONNX runtime helpers for AFT agent-host plugins (OpenCode, Pi)",
6
6
  "license": "MIT",