@cortexkit/aft-bridge 0.39.0 → 0.39.1
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-format.d.ts +8 -0
- package/dist/bash-format.d.ts.map +1 -0
- package/dist/bash-format.js +33 -0
- package/dist/bash-format.js.map +1 -0
- package/dist/bash-hints.d.ts +1 -1
- package/dist/bash-hints.d.ts.map +1 -1
- package/dist/bash-hints.js +80 -1
- package/dist/bash-hints.js.map +1 -1
- package/dist/coerce.d.ts +28 -0
- package/dist/coerce.d.ts.map +1 -1
- package/dist/coerce.js +55 -0
- package/dist/coerce.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/tool-format.d.ts +10 -0
- package/dist/tool-format.d.ts.map +1 -0
- package/dist/tool-format.js +124 -0
- package/dist/tool-format.js.map +1 -0
- package/dist/zoom-format.d.ts +23 -0
- package/dist/zoom-format.d.ts.map +1 -1
- package/dist/zoom-format.js +31 -0
- package/dist/zoom-format.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Shared pure formatting helpers for host bash tool wrappers. */
|
|
2
|
+
export declare function appendPipeStripNote(output: string, note: string | undefined): string;
|
|
3
|
+
/** Render a millisecond duration as a compact seconds string (8000 -> "8s", 5500 -> "5.5s"). */
|
|
4
|
+
export declare function formatSeconds(ms: number): string;
|
|
5
|
+
export declare function formatForegroundResult(data: Record<string, unknown>): string;
|
|
6
|
+
export declare function isTerminalStatus(status: unknown): boolean;
|
|
7
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=bash-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bash-format.d.ts","sourceRoot":"","sources":["../src/bash-format.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEpF;AAED,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,CAIzD;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Shared pure formatting helpers for host bash tool wrappers. */
|
|
2
|
+
export function appendPipeStripNote(output, note) {
|
|
3
|
+
return note ? `${output}\n\n${note}` : output;
|
|
4
|
+
}
|
|
5
|
+
/** Render a millisecond duration as a compact seconds string (8000 -> "8s", 5500 -> "5.5s"). */
|
|
6
|
+
export function formatSeconds(ms) {
|
|
7
|
+
return `${Number((ms / 1000).toFixed(1))}s`;
|
|
8
|
+
}
|
|
9
|
+
export function formatForegroundResult(data) {
|
|
10
|
+
const output = data.output_preview ?? "";
|
|
11
|
+
const outputPath = data.output_path;
|
|
12
|
+
const truncated = data.output_truncated === true;
|
|
13
|
+
const status = data.status;
|
|
14
|
+
const exit = data.exit_code;
|
|
15
|
+
let rendered = output;
|
|
16
|
+
if (truncated && outputPath) {
|
|
17
|
+
rendered += `\n[output truncated; full output at ${outputPath}]`;
|
|
18
|
+
}
|
|
19
|
+
if (status === "timed_out") {
|
|
20
|
+
rendered += `\n[command timed out]`;
|
|
21
|
+
}
|
|
22
|
+
if (typeof exit === "number" && exit !== 0) {
|
|
23
|
+
rendered += `\n[exit code: ${exit}]`;
|
|
24
|
+
}
|
|
25
|
+
return rendered;
|
|
26
|
+
}
|
|
27
|
+
export function isTerminalStatus(status) {
|
|
28
|
+
return (status === "completed" || status === "failed" || status === "killed" || status === "timed_out");
|
|
29
|
+
}
|
|
30
|
+
export function sleep(ms) {
|
|
31
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=bash-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bash-format.js","sourceRoot":"","sources":["../src/bash-format.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,IAAwB;IAC1E,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAChD,CAAC;AAED,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,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,CAC/F,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"}
|
package/dist/bash-hints.d.ts
CHANGED
|
@@ -29,5 +29,5 @@ export declare function commandInvokesCodeSearch(command: string): boolean;
|
|
|
29
29
|
* Append the grep/rg code-search nudge for native bash output that did not go
|
|
30
30
|
* through the Rust grep rewrite footer path.
|
|
31
31
|
*/
|
|
32
|
-
export declare function maybeAppendGrepSearchHint(output: string, command: string, aftSearchRegistered: boolean): string;
|
|
32
|
+
export declare function maybeAppendGrepSearchHint(output: string, command: string, aftSearchRegistered: boolean, projectRoot?: string): string;
|
|
33
33
|
//# 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":"AA4BA;;;;;;;;;;;;;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"}
|
package/dist/bash-hints.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import * as os from "node:os";
|
|
2
|
+
import * as path from "node:path";
|
|
1
3
|
// Pure helpers for the bash-output hint nudges appended to bash tool results.
|
|
2
4
|
//
|
|
3
5
|
// Shared across harnesses (OpenCode applies it in `tool.execute.after`; Pi
|
|
@@ -62,16 +64,93 @@ export function commandInvokesCodeSearch(command) {
|
|
|
62
64
|
* Append the grep/rg code-search nudge for native bash output that did not go
|
|
63
65
|
* through the Rust grep rewrite footer path.
|
|
64
66
|
*/
|
|
65
|
-
export function maybeAppendGrepSearchHint(output, command, aftSearchRegistered) {
|
|
67
|
+
export function maybeAppendGrepSearchHint(output, command, aftSearchRegistered, projectRoot) {
|
|
66
68
|
if (output === "")
|
|
67
69
|
return output;
|
|
68
70
|
if (!commandInvokesCodeSearch(command))
|
|
69
71
|
return output;
|
|
70
72
|
if (output.includes(GREP_SEARCH_HINT_PREFIX))
|
|
71
73
|
return output;
|
|
74
|
+
if (shouldSuppressGrepSearchHint(command, projectRoot))
|
|
75
|
+
return output;
|
|
72
76
|
const hint = aftSearchRegistered ? GREP_SEARCH_AFT_SEARCH_HINT : GREP_SEARCH_GREP_HINT;
|
|
73
77
|
return `${output}\n\n${hint}`;
|
|
74
78
|
}
|
|
79
|
+
function shouldSuppressGrepSearchHint(command, projectRoot) {
|
|
80
|
+
const root = projectRoot?.trim();
|
|
81
|
+
if (!root)
|
|
82
|
+
return false;
|
|
83
|
+
const statements = splitTopLevelStatements(command);
|
|
84
|
+
if (statements === null)
|
|
85
|
+
return false;
|
|
86
|
+
let sawCodeSearchStatement = false;
|
|
87
|
+
for (const statement of statements) {
|
|
88
|
+
const firstStage = firstPipelineStage(statement);
|
|
89
|
+
if (firstStage === null)
|
|
90
|
+
continue;
|
|
91
|
+
const firstToken = readShellToken(firstStage, skipSpaces(firstStage, 0));
|
|
92
|
+
if (firstToken === null)
|
|
93
|
+
continue;
|
|
94
|
+
if (firstToken.token !== "grep" && firstToken.token !== "rg")
|
|
95
|
+
continue;
|
|
96
|
+
sawCodeSearchStatement = true;
|
|
97
|
+
const operands = collectPathOperands(firstStage, firstToken.end);
|
|
98
|
+
if (operands.length === 0)
|
|
99
|
+
return false;
|
|
100
|
+
for (const operand of operands) {
|
|
101
|
+
if (isPathInsideProject(root, operand))
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return sawCodeSearchStatement;
|
|
106
|
+
}
|
|
107
|
+
function collectPathOperands(firstStage, startAfterCommand) {
|
|
108
|
+
const operands = [];
|
|
109
|
+
let index = skipSpaces(firstStage, startAfterCommand);
|
|
110
|
+
while (index < firstStage.length) {
|
|
111
|
+
const tokenResult = readShellToken(firstStage, index);
|
|
112
|
+
if (tokenResult === null)
|
|
113
|
+
break;
|
|
114
|
+
const { token, end } = tokenResult;
|
|
115
|
+
// No forward progress means readShellToken is parked on a redirection/
|
|
116
|
+
// operator boundary char (`<`, `>`, `|`, `;`, `&`) that it returns as an
|
|
117
|
+
// empty token without advancing. Stop here: grep's search-path operands
|
|
118
|
+
// precede any redirection, and continuing would spin forever (e.g.
|
|
119
|
+
// `grep p f 2>/dev/null` parks on `>`). This guarantees loop termination.
|
|
120
|
+
if (end <= index)
|
|
121
|
+
break;
|
|
122
|
+
index = skipSpaces(firstStage, end);
|
|
123
|
+
if (token.startsWith("-"))
|
|
124
|
+
continue;
|
|
125
|
+
if (looksLikePathOperand(token))
|
|
126
|
+
operands.push(token);
|
|
127
|
+
}
|
|
128
|
+
return operands;
|
|
129
|
+
}
|
|
130
|
+
function looksLikePathOperand(token) {
|
|
131
|
+
return (token.includes("/") ||
|
|
132
|
+
token.startsWith("~") ||
|
|
133
|
+
token.startsWith("./") ||
|
|
134
|
+
token.startsWith("../"));
|
|
135
|
+
}
|
|
136
|
+
function expandTilde(target) {
|
|
137
|
+
if (!target.startsWith("~"))
|
|
138
|
+
return target;
|
|
139
|
+
if (target === "~" || target.startsWith("~/")) {
|
|
140
|
+
return path.join(os.homedir(), target.slice(1));
|
|
141
|
+
}
|
|
142
|
+
return target;
|
|
143
|
+
}
|
|
144
|
+
function resolvePathOperand(projectRoot, operand) {
|
|
145
|
+
const expanded = expandTilde(operand);
|
|
146
|
+
return path.isAbsolute(expanded) ? path.resolve(expanded) : path.resolve(projectRoot, expanded);
|
|
147
|
+
}
|
|
148
|
+
function isPathInsideProject(projectRoot, operand) {
|
|
149
|
+
const root = path.resolve(projectRoot);
|
|
150
|
+
const resolved = resolvePathOperand(root, operand);
|
|
151
|
+
const rel = path.relative(root, resolved);
|
|
152
|
+
return rel === "" || (!rel.startsWith("..") && !path.isAbsolute(rel));
|
|
153
|
+
}
|
|
75
154
|
/**
|
|
76
155
|
* Split a command into top-level statements, breaking on `&&`, `||`, `;`, `&`,
|
|
77
156
|
* and newlines while respecting quotes, escapes, backticks, and parentheses
|
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,2EAA2E;AAC3E,8EAA8E;AAC9E,4EAA4E;AAC5E,iDAAiD;AAEjD,MAAM,aAAa,GACjB,yFAAyF,CAAC;AAE5F,MAAM,2BAA2B,GAC/B,uLAAuL,CAAC;AAE1L,MAAM,qBAAqB,GACzB,0IAA0I,CAAC;AAE7I,MAAM,uBAAuB,GAAG,iDAAiD,CAAC;AASlF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7E,gEAAgE;IAChE,4EAA4E;IAC5E,IAAI,CAAC,wCAAwC,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1E,OAAO,MAAM,GAAG,aAAa,CAAC;AAChC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEtC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QAClC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QAClC,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAc,EACd,OAAe,EACf,mBAA4B;
|
|
1
|
+
{"version":3,"file":"bash-hints.js","sourceRoot":"","sources":["../src/bash-hints.ts"],"names":[],"mappings":"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"}
|
package/dist/coerce.d.ts
CHANGED
|
@@ -18,4 +18,32 @@
|
|
|
18
18
|
* "at least one" requirement and produces the user-facing error.
|
|
19
19
|
*/
|
|
20
20
|
export declare function coerceStringArray(value: unknown): string[];
|
|
21
|
+
/**
|
|
22
|
+
* Runtime coercion for agent-friendly sentinel handling.
|
|
23
|
+
*
|
|
24
|
+
* Some agents emit null / "" / 0 when they mean "param not provided".
|
|
25
|
+
* Use this inside tool handlers BEFORE relying on the value. Returns
|
|
26
|
+
* `undefined` for all empty sentinels; rejects out-of-bounds with a
|
|
27
|
+
* clear message.
|
|
28
|
+
*
|
|
29
|
+
* Tool handlers that want sentinel tolerance must pass args through
|
|
30
|
+
* this AFTER schema validation has accepted the value (or for fields
|
|
31
|
+
* declared as `unknown`/`any` that bypass type validation). Host-specific
|
|
32
|
+
* optional-integer schemas stay local to each plugin; this helper is the
|
|
33
|
+
* shared runtime coercion.
|
|
34
|
+
*/
|
|
35
|
+
export declare function coerceOptionalInt(v: unknown, paramName: string, min: number, max: number): number | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* True when a value represents "agent did not provide this param".
|
|
38
|
+
*
|
|
39
|
+
* GPT-family models send empty strings / empty arrays / null instead of
|
|
40
|
+
* omitting optional params entirely. Use this BEFORE mutual-exclusion
|
|
41
|
+
* checks so an empty `targets: []` or `url: ""` doesn't get counted as
|
|
42
|
+
* present and trigger a misleading "X is mutually exclusive with Y" error.
|
|
43
|
+
*
|
|
44
|
+
* Treats undefined / null / "" / [] / {} as empty. Booleans and numbers
|
|
45
|
+
* (including 0 and false) are NOT empty by themselves — only string and
|
|
46
|
+
* collection sentinels qualify.
|
|
47
|
+
*/
|
|
48
|
+
export declare function isEmptyParam(value: unknown): boolean;
|
|
21
49
|
//# sourceMappingURL=coerce.d.ts.map
|
package/dist/coerce.d.ts.map
CHANGED
|
@@ -1 +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"}
|
|
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;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,OAAO,EACV,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CAepB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMpD"}
|
package/dist/coerce.js
CHANGED
|
@@ -42,4 +42,59 @@ export function coerceStringArray(value) {
|
|
|
42
42
|
}
|
|
43
43
|
return [];
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Runtime coercion for agent-friendly sentinel handling.
|
|
47
|
+
*
|
|
48
|
+
* Some agents emit null / "" / 0 when they mean "param not provided".
|
|
49
|
+
* Use this inside tool handlers BEFORE relying on the value. Returns
|
|
50
|
+
* `undefined` for all empty sentinels; rejects out-of-bounds with a
|
|
51
|
+
* clear message.
|
|
52
|
+
*
|
|
53
|
+
* Tool handlers that want sentinel tolerance must pass args through
|
|
54
|
+
* this AFTER schema validation has accepted the value (or for fields
|
|
55
|
+
* declared as `unknown`/`any` that bypass type validation). Host-specific
|
|
56
|
+
* optional-integer schemas stay local to each plugin; this helper is the
|
|
57
|
+
* shared runtime coercion.
|
|
58
|
+
*/
|
|
59
|
+
export function coerceOptionalInt(v, paramName, min, max) {
|
|
60
|
+
if (v === undefined || v === null || v === "")
|
|
61
|
+
return undefined;
|
|
62
|
+
// 0 is an empty-param sentinel ONLY when 0 is out of bounds anyway. For
|
|
63
|
+
// 0-indexed params (edit's `occurrence`, min=0) it is the most common legal
|
|
64
|
+
// value — dropping it sent agents into an ambiguous_match loop that told
|
|
65
|
+
// them to pass the param they had just passed.
|
|
66
|
+
if (typeof v === "number" && (!Number.isFinite(v) || (v === 0 && min > 0)))
|
|
67
|
+
return undefined;
|
|
68
|
+
const n = typeof v === "string" ? Number(v) : v;
|
|
69
|
+
if (typeof n !== "number" || !Number.isInteger(n)) {
|
|
70
|
+
throw new Error(`${paramName} must be an integer between ${min} and ${max}`);
|
|
71
|
+
}
|
|
72
|
+
if (n < min || n > max) {
|
|
73
|
+
throw new Error(`${paramName} must be between ${min} and ${max}`);
|
|
74
|
+
}
|
|
75
|
+
return n;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* True when a value represents "agent did not provide this param".
|
|
79
|
+
*
|
|
80
|
+
* GPT-family models send empty strings / empty arrays / null instead of
|
|
81
|
+
* omitting optional params entirely. Use this BEFORE mutual-exclusion
|
|
82
|
+
* checks so an empty `targets: []` or `url: ""` doesn't get counted as
|
|
83
|
+
* present and trigger a misleading "X is mutually exclusive with Y" error.
|
|
84
|
+
*
|
|
85
|
+
* Treats undefined / null / "" / [] / {} as empty. Booleans and numbers
|
|
86
|
+
* (including 0 and false) are NOT empty by themselves — only string and
|
|
87
|
+
* collection sentinels qualify.
|
|
88
|
+
*/
|
|
89
|
+
export function isEmptyParam(value) {
|
|
90
|
+
if (value === undefined || value === null)
|
|
91
|
+
return true;
|
|
92
|
+
if (typeof value === "string")
|
|
93
|
+
return value.length === 0;
|
|
94
|
+
if (Array.isArray(value))
|
|
95
|
+
return value.length === 0;
|
|
96
|
+
if (typeof value === "object")
|
|
97
|
+
return Object.keys(value).length === 0;
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
45
100
|
//# sourceMappingURL=coerce.js.map
|
package/dist/coerce.js.map
CHANGED
|
@@ -1 +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"}
|
|
1
|
+
{"version":3,"file":"coerce.js","sourceRoot":"","sources":["../src/coerce.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
* each host plugin.
|
|
8
8
|
*/
|
|
9
9
|
export { setActiveLogger } from "./active-logger.js";
|
|
10
|
+
export { appendPipeStripNote, formatForegroundResult, formatSeconds, isTerminalStatus, sleep, } from "./bash-format.js";
|
|
10
11
|
export { commandInvokesCodeSearch, maybeAppendConflictsHint, maybeAppendGrepSearchHint, } from "./bash-hints.js";
|
|
11
12
|
export { resolveBashKillTimeout } from "./bash-timeout.js";
|
|
12
13
|
export type { BashCompletedPayload, BashLongRunningPayload, BridgeOptions, BridgeRequestOptions, ConfigureWarning, ConfigureWarningsContext, StatusSnapshot, } from "./bridge.js";
|
|
13
14
|
export { BinaryBridge, compareSemver, tagStderrLine } from "./bridge.js";
|
|
14
|
-
export { coerceStringArray } from "./coerce.js";
|
|
15
|
+
export { coerceOptionalInt, coerceStringArray, isEmptyParam } from "./coerce.js";
|
|
15
16
|
export { LONG_RUNNING_COMMAND_TIMEOUT_MS, timeoutForCommand } from "./command-timeouts.js";
|
|
16
17
|
export { downloadBinary, ensureBinary, getBinaryName, getCacheDir, getCachedBinaryPath, } from "./downloader.js";
|
|
17
18
|
export type { EditSummaryInput } from "./edit-summary.js";
|
|
@@ -34,6 +35,8 @@ export type { AftErrorResponse, AftPushFrame, AftRequestEnvelope, AftResponse, A
|
|
|
34
35
|
export { findBinary, findBinarySync, isNativeExecutable, platformKey } from "./resolver.js";
|
|
35
36
|
export type { StatusBarCounts, StatusBarEmitState } from "./status-bar.js";
|
|
36
37
|
export { createStatusBarEmitState, formatStatusBar, parseStatusBarCounts, STATUS_BAR_HEARTBEAT_CALLS, shouldEmitStatusBar, statusBarLine, } from "./status-bar.js";
|
|
37
|
-
export type {
|
|
38
|
-
export {
|
|
38
|
+
export type { ReadFooterOptions } from "./tool-format.js";
|
|
39
|
+
export { formatBridgeErrorMessage, formatReadFooter } from "./tool-format.js";
|
|
40
|
+
export type { RustZoomBatchEntry, ZoomMultiTargetEntry, ZoomMultiTargetResult, ZoomMultiTargetSymbolResult, ZoomResponseLike, } from "./zoom-format.js";
|
|
41
|
+
export { formatZoomMultiTargetResult, formatZoomText, isRustZoomBatchEnvelope, unwrapRustZoomBatchEnvelope, } from "./zoom-format.js";
|
|
39
42
|
//# sourceMappingURL=index.d.ts.map
|
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,EACL,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -9,11 +9,12 @@
|
|
|
9
9
|
// --- logger contract ---
|
|
10
10
|
export { setActiveLogger } from "./active-logger.js";
|
|
11
11
|
// --- bash output hints (shared by both plugin hosts) ---
|
|
12
|
+
export { appendPipeStripNote, formatForegroundResult, formatSeconds, isTerminalStatus, sleep, } from "./bash-format.js";
|
|
12
13
|
export { commandInvokesCodeSearch, maybeAppendConflictsHint, maybeAppendGrepSearchHint, } from "./bash-hints.js";
|
|
13
14
|
export { resolveBashKillTimeout } from "./bash-timeout.js";
|
|
14
15
|
// --- transport ---
|
|
15
16
|
export { BinaryBridge, compareSemver, tagStderrLine } from "./bridge.js";
|
|
16
|
-
export { coerceStringArray } from "./coerce.js";
|
|
17
|
+
export { coerceOptionalInt, coerceStringArray, isEmptyParam } from "./coerce.js";
|
|
17
18
|
export { LONG_RUNNING_COMMAND_TIMEOUT_MS, timeoutForCommand } from "./command-timeouts.js";
|
|
18
19
|
// --- binary resolution ---
|
|
19
20
|
export { downloadBinary, ensureBinary, getBinaryName, getCacheDir, getCachedBinaryPath, } from "./downloader.js";
|
|
@@ -34,5 +35,6 @@ export { PLATFORM_ARCH_MAP, PLATFORM_ASSET_MAP } from "./platform.js";
|
|
|
34
35
|
export { BridgePool, HomeProjectRootError, isHomeDirectoryRoot } from "./pool.js";
|
|
35
36
|
export { findBinary, findBinarySync, isNativeExecutable, platformKey } from "./resolver.js";
|
|
36
37
|
export { createStatusBarEmitState, formatStatusBar, parseStatusBarCounts, STATUS_BAR_HEARTBEAT_CALLS, shouldEmitStatusBar, statusBarLine, } from "./status-bar.js";
|
|
37
|
-
export {
|
|
38
|
+
export { formatBridgeErrorMessage, formatReadFooter } from "./tool-format.js";
|
|
39
|
+
export { formatZoomMultiTargetResult, formatZoomText, isRustZoomBatchEnvelope, unwrapRustZoomBatchEnvelope, } from "./zoom-format.js";
|
|
38
40
|
//# sourceMappingURL=index.js.map
|
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,EACL,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,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;
|
|
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,EACL,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,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,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,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;AAGzB,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAS9E,OAAO,EACL,2BAA2B,EAC3B,cAAc,EACd,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Shared pure formatting helpers for AFT host plugins. */
|
|
2
|
+
/** Format bridge failure envelopes without dropping structured error data. */
|
|
3
|
+
export declare function formatBridgeErrorMessage(command: string, response: Record<string, unknown>, params?: Record<string, unknown>): string;
|
|
4
|
+
export interface ReadFooterOptions {
|
|
5
|
+
/** Host-specific parameter hint, for example `startLine/endLine` or `offset/limit`. */
|
|
6
|
+
rangeHint: string;
|
|
7
|
+
}
|
|
8
|
+
/** Build the navigation footer for a clamped `read` response. */
|
|
9
|
+
export declare function formatReadFooter(agentSpecifiedRange: boolean, data: Record<string, unknown>, options: ReadFooterOptions): string;
|
|
10
|
+
//# sourceMappingURL=tool-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-format.d.ts","sourceRoot":"","sources":["../src/tool-format.ts"],"names":[],"mappings":"AAAA,2DAA2D;AA2B3D,8EAA8E;AAC9E,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,MAAM,CAsDR;AAiCD,MAAM,WAAW,iBAAiB;IAChC,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,CAC9B,mBAAmB,EAAE,OAAO,EAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,iBAAiB,GACzB,MAAM,CAgBR"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/** Shared pure formatting helpers for AFT host plugins. */
|
|
2
|
+
function asPlainObject(value) {
|
|
3
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
4
|
+
return undefined;
|
|
5
|
+
return value;
|
|
6
|
+
}
|
|
7
|
+
function candidateLocation(candidate) {
|
|
8
|
+
const file = typeof candidate.file === "string" && candidate.file.length > 0 ? candidate.file : undefined;
|
|
9
|
+
if (!file)
|
|
10
|
+
return undefined;
|
|
11
|
+
const line = typeof candidate.line === "number" && Number.isFinite(candidate.line)
|
|
12
|
+
? candidate.line
|
|
13
|
+
: undefined;
|
|
14
|
+
return line === undefined ? file : `${file}:${line}`;
|
|
15
|
+
}
|
|
16
|
+
function stringifyData(data) {
|
|
17
|
+
if (data === undefined)
|
|
18
|
+
return undefined;
|
|
19
|
+
try {
|
|
20
|
+
return JSON.stringify(data, null, 2);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return String(data);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** Format bridge failure envelopes without dropping structured error data. */
|
|
27
|
+
export function formatBridgeErrorMessage(command, response, params = {}) {
|
|
28
|
+
const code = typeof response.code === "string" && response.code.length > 0 ? response.code : undefined;
|
|
29
|
+
const message = typeof response.message === "string" && response.message.length > 0
|
|
30
|
+
? response.message
|
|
31
|
+
: `${command} failed`;
|
|
32
|
+
// Rust merges error_with_data() extras into the top-level response, NOT under
|
|
33
|
+
// a nested `data` field. Read structured fields at top-level first; fall back
|
|
34
|
+
// to `response.data` for forward-compat with any handler that uses nesting.
|
|
35
|
+
const data = asPlainObject(response.data);
|
|
36
|
+
const rawCandidates = Array.isArray(response.candidates)
|
|
37
|
+
? response.candidates
|
|
38
|
+
: Array.isArray(data?.candidates)
|
|
39
|
+
? data.candidates
|
|
40
|
+
: undefined;
|
|
41
|
+
const rawSymbol = typeof response.symbol === "string" && response.symbol.length > 0
|
|
42
|
+
? response.symbol
|
|
43
|
+
: typeof data?.symbol === "string" && data.symbol.length > 0
|
|
44
|
+
? data.symbol
|
|
45
|
+
: undefined;
|
|
46
|
+
if (code === "ambiguous_target" || code === "target_symbol_not_in_file") {
|
|
47
|
+
const candidates = (rawCandidates ?? [])
|
|
48
|
+
.map(asPlainObject)
|
|
49
|
+
.filter((candidate) => candidate !== undefined)
|
|
50
|
+
.map(candidateLocation)
|
|
51
|
+
.filter((candidate) => candidate !== undefined);
|
|
52
|
+
if (candidates.length > 0) {
|
|
53
|
+
const symbol = typeof params.toSymbol === "string" && params.toSymbol.length > 0
|
|
54
|
+
? params.toSymbol
|
|
55
|
+
: rawSymbol;
|
|
56
|
+
const target = symbol ? `multiple symbols named "${symbol}"` : message.replace(/[.!?]+$/, "");
|
|
57
|
+
const action = code === "ambiguous_target"
|
|
58
|
+
? "Pass toFile to disambiguate"
|
|
59
|
+
: "Try one of these files for toFile";
|
|
60
|
+
return `${command}: ${code} — ${target}. ${action}:\n${candidates
|
|
61
|
+
.map((candidate) => ` - ${candidate}`)
|
|
62
|
+
.join("\n")}`;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (!code)
|
|
66
|
+
return message;
|
|
67
|
+
const lines = [`${command}: ${code} — ${message}`];
|
|
68
|
+
// For unhandled structured error codes, surface any extra fields beyond
|
|
69
|
+
// code/message/success/id so agents see the full context (not just data.*).
|
|
70
|
+
const extras = collectStructuredExtras(response);
|
|
71
|
+
if (extras)
|
|
72
|
+
lines.push(`data: ${extras}`);
|
|
73
|
+
return lines.join("\n");
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Capture any structured fields a Rust error_with_data() merged into the top-level
|
|
77
|
+
* response, excluding the well-known envelope keys (id/success/code/message) and
|
|
78
|
+
* already-shown nested `data` (handled separately when present).
|
|
79
|
+
*/
|
|
80
|
+
function collectStructuredExtras(response) {
|
|
81
|
+
// status_bar is transport metadata attached to EVERY bridge response (the
|
|
82
|
+
// [AFT ...] health bar) — never error context. Without this exclusion every
|
|
83
|
+
// structured error dumped the raw status-bar JSON as `data:`.
|
|
84
|
+
const reserved = new Set([
|
|
85
|
+
"id",
|
|
86
|
+
"success",
|
|
87
|
+
"code",
|
|
88
|
+
"message",
|
|
89
|
+
"data",
|
|
90
|
+
"status_bar",
|
|
91
|
+
"bg_completions",
|
|
92
|
+
]);
|
|
93
|
+
const extras = {};
|
|
94
|
+
for (const [key, value] of Object.entries(response)) {
|
|
95
|
+
if (reserved.has(key))
|
|
96
|
+
continue;
|
|
97
|
+
extras[key] = value;
|
|
98
|
+
}
|
|
99
|
+
if (Object.keys(extras).length === 0) {
|
|
100
|
+
return stringifyData(response.data);
|
|
101
|
+
}
|
|
102
|
+
// Prefer top-level extras; fold any nested data fields beneath.
|
|
103
|
+
if (response.data !== undefined)
|
|
104
|
+
extras.data = response.data;
|
|
105
|
+
return stringifyData(extras);
|
|
106
|
+
}
|
|
107
|
+
/** Build the navigation footer for a clamped `read` response. */
|
|
108
|
+
export function formatReadFooter(agentSpecifiedRange, data, options) {
|
|
109
|
+
// CASE B: agent picked the range. No footer at all. They have the math.
|
|
110
|
+
if (agentSpecifiedRange)
|
|
111
|
+
return "";
|
|
112
|
+
if (!data.truncated)
|
|
113
|
+
return "";
|
|
114
|
+
const startLine = data.start_line;
|
|
115
|
+
const endLine = data.end_line;
|
|
116
|
+
const totalLines = data.total_lines;
|
|
117
|
+
if (startLine === undefined || endLine === undefined || totalLines === undefined) {
|
|
118
|
+
return "";
|
|
119
|
+
}
|
|
120
|
+
// CASE A: agent did not pick a range, response was clamped — hint is
|
|
121
|
+
// useful, tell them how to read more.
|
|
122
|
+
return `\n(Showing lines ${startLine}-${endLine} of ${totalLines}. Use ${options.rangeHint} to read other sections.)`;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=tool-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-format.js","sourceRoot":"","sources":["../src/tool-format.ts"],"names":[],"mappings":"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"}
|
package/dist/zoom-format.d.ts
CHANGED
|
@@ -105,5 +105,28 @@ export interface ZoomMultiTargetResult {
|
|
|
105
105
|
* Sections are blank-line separated and output is byte-identical across hosts.
|
|
106
106
|
*/
|
|
107
107
|
export declare function formatZoomMultiTargetResult(entries: ZoomMultiTargetEntry[]): ZoomMultiTargetResult;
|
|
108
|
+
/** One entry in a Rust-side multi-symbol zoom batch (`zoom_batch_symbols`). */
|
|
109
|
+
export interface RustZoomBatchEntry {
|
|
110
|
+
name: string;
|
|
111
|
+
response: {
|
|
112
|
+
success?: boolean;
|
|
113
|
+
message?: unknown;
|
|
114
|
+
} & Record<string, unknown>;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* True when the bridge returned the Rust batch envelope from a single zoom request
|
|
118
|
+
* (e.g. whitespace-split `symbol` on a code file).
|
|
119
|
+
*/
|
|
120
|
+
export declare function isRustZoomBatchEnvelope(response: Record<string, unknown>): response is Record<string, unknown> & {
|
|
121
|
+
symbols: RustZoomBatchEntry[];
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Unwrap a Rust batch envelope into parallel name/response arrays for
|
|
125
|
+
* {@link formatZoomBatchResult} (plugin-local) or the same shaping in hosts.
|
|
126
|
+
*/
|
|
127
|
+
export declare function unwrapRustZoomBatchEnvelope(response: Record<string, unknown>): {
|
|
128
|
+
names: string[];
|
|
129
|
+
responses: Record<string, unknown>[];
|
|
130
|
+
} | null;
|
|
108
131
|
export {};
|
|
109
132
|
//# sourceMappingURL=zoom-format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoom-format.d.ts","sourceRoot":"","sources":["../src/zoom-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,gBAAgB;IACxB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAgEtF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9E;AAED,2DAA2D;AAC3D,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,oBAAoB,EAAE,GAC9B,qBAAqB,CAgCvB"}
|
|
1
|
+
{"version":3,"file":"zoom-format.d.ts","sourceRoot":"","sources":["../src/zoom-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,gBAAgB;IACxB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAgEtF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9E;AAED,2DAA2D;AAC3D,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,oBAAoB,EAAE,GAC9B,qBAAqB,CAgCvB;AAED,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAAE,CASzE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC9E,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACtC,GAAG,IAAI,CAWP"}
|
package/dist/zoom-format.js
CHANGED
|
@@ -134,4 +134,35 @@ export function formatZoomMultiTargetResult(entries) {
|
|
|
134
134
|
}
|
|
135
135
|
return { complete, entries: rendered, text: sections.join("\n\n") };
|
|
136
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* True when the bridge returned the Rust batch envelope from a single zoom request
|
|
139
|
+
* (e.g. whitespace-split `symbol` on a code file).
|
|
140
|
+
*/
|
|
141
|
+
export function isRustZoomBatchEnvelope(response) {
|
|
142
|
+
if (!Array.isArray(response.symbols) || response.symbols.length === 0) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
return response.symbols.every((entry) => {
|
|
146
|
+
if (!entry || typeof entry !== "object")
|
|
147
|
+
return false;
|
|
148
|
+
const row = entry;
|
|
149
|
+
return typeof row.name === "string" && row.response !== undefined && row.response !== null;
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Unwrap a Rust batch envelope into parallel name/response arrays for
|
|
154
|
+
* {@link formatZoomBatchResult} (plugin-local) or the same shaping in hosts.
|
|
155
|
+
*/
|
|
156
|
+
export function unwrapRustZoomBatchEnvelope(response) {
|
|
157
|
+
if (!isRustZoomBatchEnvelope(response)) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
const names = [];
|
|
161
|
+
const responses = [];
|
|
162
|
+
for (const entry of response.symbols) {
|
|
163
|
+
names.push(entry.name);
|
|
164
|
+
responses.push(entry.response);
|
|
165
|
+
}
|
|
166
|
+
return { names, responses };
|
|
167
|
+
}
|
|
137
168
|
//# sourceMappingURL=zoom-format.js.map
|
package/dist/zoom-format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoom-format.js","sourceRoot":"","sources":["../src/zoom-format.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zoom-format.js","sourceRoot":"","sources":["../src/zoom-format.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED