@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.
- package/dist/bash-hints.d.ts +0 -10
- package/dist/bash-hints.d.ts.map +1 -1
- package/dist/bash-hints.js +8 -21
- package/dist/bash-hints.js.map +1 -1
- package/dist/bash-timeout.d.ts +19 -0
- package/dist/bash-timeout.d.ts.map +1 -0
- package/dist/bash-timeout.js +26 -0
- package/dist/bash-timeout.js.map +1 -0
- package/dist/coerce.d.ts +21 -0
- package/dist/coerce.d.ts.map +1 -0
- package/dist/coerce.js +45 -0
- package/dist/coerce.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/pipe-strip.d.ts +7 -0
- package/dist/pipe-strip.d.ts.map +1 -0
- package/dist/pipe-strip.js +229 -0
- package/dist/pipe-strip.js.map +1 -0
- package/package.json +1 -1
package/dist/bash-hints.d.ts
CHANGED
|
@@ -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
|
package/dist/bash-hints.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash-hints.d.ts","sourceRoot":"","sources":["../src/bash-hints.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/bash-hints.js
CHANGED
|
@@ -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
|
|
4
|
-
// applies
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
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
|
package/dist/bash-hints.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash-hints.js","sourceRoot":"","sources":["../src/bash-hints.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,
|
|
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"}
|
package/dist/coerce.d.ts
ADDED
|
@@ -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
|
|
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
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,
|
|
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 @@
|
|
|
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