@aexol/spectral 0.9.178 → 0.9.180
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/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +43 -34
- package/dist/sdk/coding-agent/core/agent-session.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/agent-session.js +6 -1
- package/dist/sdk/coding-agent/core/bash-jobs.d.ts +47 -0
- package/dist/sdk/coding-agent/core/bash-jobs.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/bash-jobs.js +71 -0
- package/dist/sdk/coding-agent/core/sdk.js +1 -1
- package/dist/sdk/coding-agent/core/system-prompt.d.ts +3 -1
- package/dist/sdk/coding-agent/core/system-prompt.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/system-prompt.js +9 -2
- package/dist/sdk/coding-agent/core/tools/bash.d.ts +35 -0
- package/dist/sdk/coding-agent/core/tools/bash.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/tools/bash.js +185 -89
- package/dist/sdk/coding-agent/core/tools/index.d.ts +5 -2
- package/dist/sdk/coding-agent/core/tools/index.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/tools/index.js +34 -8
- package/dist/sdk/coding-agent/core/tools/output-accumulator.d.ts +13 -0
- package/dist/sdk/coding-agent/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/tools/output-accumulator.js +14 -1
- package/dist/sdk/coding-agent/index.d.ts +2 -1
- package/dist/sdk/coding-agent/index.d.ts.map +1 -1
- package/dist/sdk/coding-agent/index.js +2 -1
- package/package.json +1 -1
package/dist/agent/index.d.ts
CHANGED
|
@@ -45,7 +45,7 @@ export declare function buildSubagentSystemPrompt(baseSystemPrompt: string | und
|
|
|
45
45
|
* SessionManager. Each getBranch call returns fresh clones of the snapshot.
|
|
46
46
|
*/
|
|
47
47
|
export declare function createSubagentSessionManagerSnapshot(sessionManager: ExtensionContext["sessionManager"]): Pick<RichExtensionContext["sessionManager"], "getBranch">;
|
|
48
|
-
export declare function resolveSubagentTools(
|
|
48
|
+
export declare function resolveSubagentTools(cwd: string, ext: ExtensionAPI, ctx: ExtensionContext): AgentTool[];
|
|
49
49
|
export default function subagentExtension(ext: ExtensionAPI, opts?: {
|
|
50
50
|
disabledAgents?: string[];
|
|
51
51
|
emitSubagentEvent?: (event: ServerEvent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAIX,SAAS,EAET,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAIX,SAAS,EAET,MAAM,4BAA4B,CAAC;AAWpC,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACN,KAAK,WAAW,EAKhB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAAO,KAAK,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAuG7G;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACxC,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC,GACpF,MAAM,CAYR;AA0JD;;;GAGG;AACH,wBAAgB,oCAAoC,CACnD,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GAChD,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,CAK3D;AAoBD,wBAAgB,oBAAoB,CACnC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,gBAAgB,GACnB,SAAS,EAAE,CAoCb;AAicD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACxC,GAAG,EAAE,YAAY,EACjB,IAAI,CAAC,EAAE;IACN,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GACC,IAAI,CAgaN"}
|
package/dist/agent/index.js
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* - Access to observational memory via the recall tool
|
|
26
26
|
*/
|
|
27
27
|
import { agentLoop } from "../sdk/agent-core/index.js";
|
|
28
|
-
import { buildIsolatedRequestTimePrunedMessages, createIsolatedDcpNudgePayloadHook, } from "../memory/tools/compact-context.js";
|
|
28
|
+
import { buildIsolatedRequestTimePrunedMessages, COMPACT_CONTEXT_TOOL_NAME, createIsolatedDcpNudgePayloadHook, } from "../memory/tools/compact-context.js";
|
|
29
29
|
import { loadConfig } from "../memory/config.js";
|
|
30
30
|
import { StringEnum } from "../sdk/ai/index.js";
|
|
31
31
|
import { mutateSystemPrompt } from "../sdk/coding-agent/core/system-prompt-mutator.js";
|
|
@@ -36,9 +36,11 @@ import { loadAgentSettings } from "../server/handlers/agent-settings.js";
|
|
|
36
36
|
// Built-in tool resolution (no spawn needed — tools are registered in-process)
|
|
37
37
|
// ---------------------------------------------------------------------------
|
|
38
38
|
import { createTool, allToolNames } from "../sdk/coding-agent/core/tools/index.js";
|
|
39
|
+
import { BashJobRegistry } from "../sdk/coding-agent/core/bash-jobs.js";
|
|
39
40
|
import { wrapToolDefinition } from "../sdk/coding-agent/core/tools/tool-definition-wrapper.js";
|
|
40
|
-
import { READ_PROJECT_OBSERVATIONS_TOOL_NAME } from "../memory/tools/read-project-observations.js";
|
|
41
41
|
import { RECALL_OBSERVATION_TOOL_NAME } from "../memory/tools/recall-observation.js";
|
|
42
|
+
import { RECEIVE_AGENT_OBSERVATIONS_TOOL_NAME } from "../memory/tools/receive-agent-observations.js";
|
|
43
|
+
import { SHARE_PROJECT_OBSERVATION_TOOL_NAME } from "../memory/tools/share-project-observation.js";
|
|
42
44
|
import { compressSubagentToolResult } from "../memory/tool-output-compressor.js";
|
|
43
45
|
// ---------------------------------------------------------------------------
|
|
44
46
|
// Constants
|
|
@@ -220,13 +222,6 @@ function resolveModelString(modelStr, modelRegistry) {
|
|
|
220
222
|
// ---------------------------------------------------------------------------
|
|
221
223
|
// Helpers — tool resolution
|
|
222
224
|
// ---------------------------------------------------------------------------
|
|
223
|
-
/**
|
|
224
|
-
* Resolve tool names from an agent definition into AgentTool objects.
|
|
225
|
-
*
|
|
226
|
-
* Built-in tools (read, bash, edit, apply_patch, write, grep, find, ls) are created via
|
|
227
|
-
* `createTool()`. Extension-registered tools (e.g., recall) are resolved
|
|
228
|
-
* via the ExtensionAPI and wrapped.
|
|
229
|
-
*/
|
|
230
225
|
function cloneSessionEntry(entry) {
|
|
231
226
|
return structuredClone(entry);
|
|
232
227
|
}
|
|
@@ -240,22 +235,39 @@ export function createSubagentSessionManagerSnapshot(sessionManager) {
|
|
|
240
235
|
getBranch: () => snapshot.map(cloneSessionEntry),
|
|
241
236
|
};
|
|
242
237
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
238
|
+
/**
|
|
239
|
+
* Tools that cannot run inside the isolated subagent context.
|
|
240
|
+
*
|
|
241
|
+
* - `subagent`: prevents recursive delegation from inside a subagent.
|
|
242
|
+
* - `compact_context`: depends on parent session/UI state (sessionManager,
|
|
243
|
+
* settingsManager, ui, compaction actions) that is unavailable inside the
|
|
244
|
+
* isolated `{ cwd, getSystemPrompt }` subagent context.
|
|
245
|
+
* - `receive_agent_observations` / `share_project_observation`: require the
|
|
246
|
+
* parent session id and branch, which are not exposed to the isolated
|
|
247
|
+
* subagent context.
|
|
248
|
+
*/
|
|
249
|
+
const SUBAGENT_EXCLUDED_TOOL_NAMES = new Set([
|
|
250
|
+
"subagent",
|
|
251
|
+
COMPACT_CONTEXT_TOOL_NAME,
|
|
252
|
+
RECEIVE_AGENT_OBSERVATIONS_TOOL_NAME,
|
|
253
|
+
SHARE_PROJECT_OBSERVATION_TOOL_NAME,
|
|
254
|
+
]);
|
|
255
|
+
export function resolveSubagentTools(cwd, ext, ctx) {
|
|
256
|
+
// Subagents receive every tool registered on the primary agent. Built-in
|
|
257
|
+
// tools are created fresh with the subagent's isolated cwd/jobs, and
|
|
258
|
+
// extension-registered tools are wrapped with an isolated context exposing
|
|
259
|
+
// only `cwd` and `getSystemPrompt` (plus a read-only branch snapshot for
|
|
260
|
+
// `recall`).
|
|
253
261
|
const tools = [];
|
|
254
|
-
|
|
262
|
+
const jobs = new BashJobRegistry();
|
|
263
|
+
for (const toolInfo of ext.getAllTools()) {
|
|
264
|
+
const name = toolInfo.name;
|
|
265
|
+
if (SUBAGENT_EXCLUDED_TOOL_NAMES.has(name))
|
|
266
|
+
continue;
|
|
255
267
|
// Built-in tools
|
|
256
268
|
if (allToolNames.has(name)) {
|
|
257
269
|
try {
|
|
258
|
-
const tool = createTool(name, cwd);
|
|
270
|
+
const tool = createTool(name, cwd, { jobs });
|
|
259
271
|
tools.push(tool);
|
|
260
272
|
}
|
|
261
273
|
catch {
|
|
@@ -263,18 +275,15 @@ export function resolveSubagentTools(toolNames, cwd, ext, ctx) {
|
|
|
263
275
|
}
|
|
264
276
|
continue;
|
|
265
277
|
}
|
|
266
|
-
// Extension-registered tools
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
const
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
const isolatedContextWithNoParent = isolatedContext;
|
|
276
|
-
tools.push(wrapToolDefinition(toolDef, () => isolatedContextWithNoParent));
|
|
277
|
-
}
|
|
278
|
+
// Extension-registered tools
|
|
279
|
+
const toolDef = ext.getToolDefinition(name);
|
|
280
|
+
if (!toolDef)
|
|
281
|
+
continue;
|
|
282
|
+
const isolatedContext = name === RECALL_OBSERVATION_TOOL_NAME
|
|
283
|
+
? { cwd, sessionManager: createSubagentSessionManagerSnapshot(ctx.sessionManager), getSystemPrompt: ctx.getSystemPrompt }
|
|
284
|
+
: { cwd, getSystemPrompt: ctx.getSystemPrompt };
|
|
285
|
+
const isolatedContextWithNoParent = isolatedContext;
|
|
286
|
+
tools.push(wrapToolDefinition(toolDef, () => isolatedContextWithNoParent));
|
|
278
287
|
}
|
|
279
288
|
return tools;
|
|
280
289
|
}
|
|
@@ -418,7 +427,7 @@ async function runSingleAgent(defaultCwd, agents, agentName, task, cwd, step, si
|
|
|
418
427
|
// per-agent tool filtering). Built-ins (read, bash, apply_patch) plus
|
|
419
428
|
// observational-memory tools (recall, read-project-observations) are
|
|
420
429
|
// always available so subagents can actually do work.
|
|
421
|
-
const tools = resolveSubagentTools(
|
|
430
|
+
const tools = resolveSubagentTools(effectiveCwd, ext, ctx);
|
|
422
431
|
const currentResult = {
|
|
423
432
|
agent: agentName,
|
|
424
433
|
agentSource: agent.source,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/agent-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/agent-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ import { clampThinkingLevel, cleanupSessionResources, getSupportedThinkingLevels
|
|
|
18
18
|
import { stripFrontmatter } from "../utils/frontmatter.js";
|
|
19
19
|
import { resolvePath } from "../utils/paths.js";
|
|
20
20
|
import { sleep } from "../utils/sleep.js";
|
|
21
|
+
import { getToolPath } from "../utils/tools-manager.js";
|
|
21
22
|
import { formatNoApiKeyFoundMessage, formatNoModelSelectedMessage, } from "./auth-guidance.js";
|
|
22
23
|
import { executeBashWithOperations } from "./bash-executor.js";
|
|
23
24
|
import { calculateContextTokens, collectEntriesForBranchSummary, compactDcpLite, estimateContextTokens, estimateCompactionTokenMetrics, getManualCompactionSettings, normalizeCompactionPolicy, normalizeManualKeepRecentTokens, generateBranchSummary, prepareCompaction, shouldCompact, } from "./compaction/index.js";
|
|
@@ -790,12 +791,16 @@ export class AgentSession {
|
|
|
790
791
|
: undefined;
|
|
791
792
|
const loadedSkills = this._resourceLoader.getSkills().skills;
|
|
792
793
|
const loadedContextFiles = this._resourceLoader.getAgentsFiles().agentsFiles;
|
|
794
|
+
const environmentInstructions = getToolPath("rg")
|
|
795
|
+
? "Prefer `rg` (ripgrep) over `grep` for searching code — it is faster and respects .gitignore."
|
|
796
|
+
: undefined;
|
|
793
797
|
this._baseSystemPromptOptions = {
|
|
794
798
|
cwd: this._cwd,
|
|
795
799
|
skills: loadedSkills,
|
|
796
800
|
contextFiles: loadedContextFiles,
|
|
797
801
|
customPrompt: loaderSystemPrompt,
|
|
798
802
|
appendSystemPrompt,
|
|
803
|
+
environmentInstructions,
|
|
799
804
|
selectedTools: validToolNames,
|
|
800
805
|
toolSnippets,
|
|
801
806
|
promptGuidelines,
|
|
@@ -2573,7 +2578,7 @@ export class AgentSession {
|
|
|
2573
2578
|
this._applyExtensionBindings(this._extensionRunner);
|
|
2574
2579
|
const defaultActiveToolNames = this._baseToolsOverride
|
|
2575
2580
|
? Object.keys(this._baseToolsOverride)
|
|
2576
|
-
: ["read", "bash", "edit", "apply_patch", "write"];
|
|
2581
|
+
: ["read", "bash", "bash_status", "bash_kill", "edit", "apply_patch", "write"];
|
|
2577
2582
|
const baseActiveToolNames = options.activeToolNames ?? defaultActiveToolNames;
|
|
2578
2583
|
this._refreshToolRegistry({
|
|
2579
2584
|
activeToolNames: baseActiveToolNames,
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { OutputAccumulator } from "./tools/output-accumulator.js";
|
|
2
|
+
export type BashJobStatus = "running" | "exited" | "killed";
|
|
3
|
+
export interface BashJob {
|
|
4
|
+
/** Short unique id returned to the agent. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Process id of the detached shell (undefined if spawn failed). */
|
|
7
|
+
pid: number | undefined;
|
|
8
|
+
command: string;
|
|
9
|
+
cwd: string;
|
|
10
|
+
status: BashJobStatus;
|
|
11
|
+
exitCode: number | null;
|
|
12
|
+
startedAt: number;
|
|
13
|
+
endedAt: number | undefined;
|
|
14
|
+
/** Temp file that always receives the full (unsanitized) output. */
|
|
15
|
+
fullOutputPath: string;
|
|
16
|
+
/** Bounded accumulator used to render status tails. */
|
|
17
|
+
output: OutputAccumulator;
|
|
18
|
+
/** Kills the process tree backing this job. */
|
|
19
|
+
kill: () => void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Session-scoped registry of background bash jobs.
|
|
23
|
+
*
|
|
24
|
+
* The registry is intentionally not a module-level singleton: a single CLI
|
|
25
|
+
* process can host many agent sessions (server/agent-bridge), so each session
|
|
26
|
+
* creates and owns its own registry. `bash`, `bash_status`, and `bash_kill`
|
|
27
|
+
* must share the same instance in order to refer to the same jobs.
|
|
28
|
+
*/
|
|
29
|
+
export declare class BashJobRegistry {
|
|
30
|
+
private readonly jobs;
|
|
31
|
+
create(input: {
|
|
32
|
+
pid?: number;
|
|
33
|
+
command: string;
|
|
34
|
+
cwd: string;
|
|
35
|
+
output: OutputAccumulator;
|
|
36
|
+
fullOutputPath: string;
|
|
37
|
+
kill: () => void;
|
|
38
|
+
}): BashJob;
|
|
39
|
+
get(id: string): BashJob | undefined;
|
|
40
|
+
markExited(id: string, exitCode: number | null): void;
|
|
41
|
+
markKilled(id: string): void;
|
|
42
|
+
/** Kill a job by id. Returns false when the job does not exist. */
|
|
43
|
+
kill(id: string): boolean;
|
|
44
|
+
/** Kill every tracked job. Used on session shutdown. */
|
|
45
|
+
killAll(): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=bash-jobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bash-jobs.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/bash-jobs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5D,MAAM,WAAW,OAAO;IACvB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,oEAAoE;IACpE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,IAAI,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA8B;IAEnD,MAAM,CAAC,KAAK,EAAE;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,iBAAiB,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;QACvB,IAAI,EAAE,MAAM,IAAI,CAAC;KACjB,GAAG,OAAO;IAmBX,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIpC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAQrD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ5B,mEAAmE;IACnE,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAczB,wDAAwD;IACxD,OAAO,IAAI,IAAI;CAKf"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
|
+
/**
|
|
3
|
+
* Session-scoped registry of background bash jobs.
|
|
4
|
+
*
|
|
5
|
+
* The registry is intentionally not a module-level singleton: a single CLI
|
|
6
|
+
* process can host many agent sessions (server/agent-bridge), so each session
|
|
7
|
+
* creates and owns its own registry. `bash`, `bash_status`, and `bash_kill`
|
|
8
|
+
* must share the same instance in order to refer to the same jobs.
|
|
9
|
+
*/
|
|
10
|
+
export class BashJobRegistry {
|
|
11
|
+
jobs = new Map();
|
|
12
|
+
create(input) {
|
|
13
|
+
const id = randomBytes(6).toString("hex");
|
|
14
|
+
const job = {
|
|
15
|
+
id,
|
|
16
|
+
pid: input.pid,
|
|
17
|
+
command: input.command,
|
|
18
|
+
cwd: input.cwd,
|
|
19
|
+
status: "running",
|
|
20
|
+
exitCode: null,
|
|
21
|
+
startedAt: Date.now(),
|
|
22
|
+
endedAt: undefined,
|
|
23
|
+
fullOutputPath: input.fullOutputPath,
|
|
24
|
+
output: input.output,
|
|
25
|
+
kill: input.kill,
|
|
26
|
+
};
|
|
27
|
+
this.jobs.set(id, job);
|
|
28
|
+
return job;
|
|
29
|
+
}
|
|
30
|
+
get(id) {
|
|
31
|
+
return this.jobs.get(id);
|
|
32
|
+
}
|
|
33
|
+
markExited(id, exitCode) {
|
|
34
|
+
const job = this.jobs.get(id);
|
|
35
|
+
if (!job || job.status !== "running")
|
|
36
|
+
return;
|
|
37
|
+
job.status = "exited";
|
|
38
|
+
job.exitCode = exitCode;
|
|
39
|
+
job.endedAt = Date.now();
|
|
40
|
+
}
|
|
41
|
+
markKilled(id) {
|
|
42
|
+
const job = this.jobs.get(id);
|
|
43
|
+
if (!job || job.status !== "running")
|
|
44
|
+
return;
|
|
45
|
+
job.status = "killed";
|
|
46
|
+
job.exitCode = null;
|
|
47
|
+
job.endedAt = Date.now();
|
|
48
|
+
}
|
|
49
|
+
/** Kill a job by id. Returns false when the job does not exist. */
|
|
50
|
+
kill(id) {
|
|
51
|
+
const job = this.jobs.get(id);
|
|
52
|
+
if (!job)
|
|
53
|
+
return false;
|
|
54
|
+
if (job.status === "running") {
|
|
55
|
+
try {
|
|
56
|
+
job.kill();
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// Process may already be gone.
|
|
60
|
+
}
|
|
61
|
+
this.markKilled(id);
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
/** Kill every tracked job. Used on session shutdown. */
|
|
66
|
+
killAll() {
|
|
67
|
+
for (const id of [...this.jobs.keys()]) {
|
|
68
|
+
this.kill(id);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -149,7 +149,7 @@ export async function createAgentSession(options = {}) {
|
|
|
149
149
|
else {
|
|
150
150
|
thinkingLevel = clampThinkingLevel(model, thinkingLevel);
|
|
151
151
|
}
|
|
152
|
-
const defaultActiveToolNames = ["read", "bash", "apply_patch"];
|
|
152
|
+
const defaultActiveToolNames = ["read", "bash", "bash_status", "bash_kill", "apply_patch"];
|
|
153
153
|
const allowedToolNames = options.tools ?? (options.noTools === "all" ? [] : undefined);
|
|
154
154
|
const initialActiveToolNames = options.tools
|
|
155
155
|
? [...options.tools]
|
|
@@ -5,7 +5,7 @@ import { type Skill } from "./skills.js";
|
|
|
5
5
|
export interface BuildSystemPromptOptions {
|
|
6
6
|
/** Custom system prompt (replaces default). */
|
|
7
7
|
customPrompt?: string;
|
|
8
|
-
/** Tools to include in prompt.
|
|
8
|
+
/** Tools to include in prompt. */
|
|
9
9
|
selectedTools?: string[];
|
|
10
10
|
/** Optional one-line tool snippets keyed by tool name. */
|
|
11
11
|
toolSnippets?: Record<string, string>;
|
|
@@ -13,6 +13,8 @@ export interface BuildSystemPromptOptions {
|
|
|
13
13
|
promptGuidelines?: string[];
|
|
14
14
|
/** Text to append to system prompt. */
|
|
15
15
|
appendSystemPrompt?: string;
|
|
16
|
+
/** Environment-specific instructions to append to system prompt (e.g. available tooling). */
|
|
17
|
+
environmentInstructions?: string;
|
|
16
18
|
/** Working directory. */
|
|
17
19
|
cwd: string;
|
|
18
20
|
/** Pre-loaded context files. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,wBAAwB;IACxC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,wBAAwB;IACxC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6FAA6F;IAC7F,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,gCAAgC;IAChC,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,yBAAyB;IACzB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAqL3E"}
|
|
@@ -5,9 +5,10 @@ import { getDocsPath, getExamplesPath, getReadmePath } from "../config.js";
|
|
|
5
5
|
import { formatSkillsForPrompt } from "./skills.js";
|
|
6
6
|
/** Build the system prompt with tools, guidelines, and context */
|
|
7
7
|
export function buildSystemPrompt(options) {
|
|
8
|
-
const { customPrompt, selectedTools, toolSnippets, promptGuidelines, appendSystemPrompt, cwd, contextFiles: providedContextFiles, skills: providedSkills, } = options;
|
|
8
|
+
const { customPrompt, selectedTools, toolSnippets, promptGuidelines, appendSystemPrompt, environmentInstructions, cwd, contextFiles: providedContextFiles, skills: providedSkills, } = options;
|
|
9
9
|
const promptCwd = cwd.replace(/\\/g, "/");
|
|
10
10
|
const appendSection = appendSystemPrompt ? `\n\n${appendSystemPrompt}` : "";
|
|
11
|
+
const environmentSection = environmentInstructions ? `\n\n${environmentInstructions}` : "";
|
|
11
12
|
const contextFiles = providedContextFiles ?? [];
|
|
12
13
|
const skills = providedSkills ?? [];
|
|
13
14
|
if (customPrompt) {
|
|
@@ -29,6 +30,9 @@ export function buildSystemPrompt(options) {
|
|
|
29
30
|
if (customPromptHasRead && skills.length > 0) {
|
|
30
31
|
prompt += formatSkillsForPrompt(skills);
|
|
31
32
|
}
|
|
33
|
+
if (environmentSection) {
|
|
34
|
+
prompt += environmentSection;
|
|
35
|
+
}
|
|
32
36
|
prompt += `\nCurrent working directory: ${promptCwd}`;
|
|
33
37
|
return prompt;
|
|
34
38
|
}
|
|
@@ -38,7 +42,7 @@ export function buildSystemPrompt(options) {
|
|
|
38
42
|
const examplesPath = getExamplesPath();
|
|
39
43
|
// Build tools list based on selected tools.
|
|
40
44
|
// A tool appears in Available tools only when the caller provides a one-line snippet.
|
|
41
|
-
const tools = selectedTools
|
|
45
|
+
const tools = selectedTools ?? [];
|
|
42
46
|
const visibleTools = tools.filter((name) => !!toolSnippets?.[name]);
|
|
43
47
|
const toolsList = visibleTools.length > 0 ? visibleTools.map((name) => `- ${name}: ${toolSnippets[name]}`).join("\n") : "(none)";
|
|
44
48
|
// Build guidelines based on which tools are actually available
|
|
@@ -142,6 +146,9 @@ spectral documentation (read only when the user asks about spectral itself, its
|
|
|
142
146
|
if (hasRead && skills.length > 0) {
|
|
143
147
|
prompt += formatSkillsForPrompt(skills);
|
|
144
148
|
}
|
|
149
|
+
if (environmentSection) {
|
|
150
|
+
prompt += environmentSection;
|
|
151
|
+
}
|
|
145
152
|
prompt += `\nCurrent working directory: ${promptCwd}`;
|
|
146
153
|
return prompt;
|
|
147
154
|
}
|
|
@@ -2,9 +2,11 @@ import type { AgentTool } from "../../../agent-core/index.js";
|
|
|
2
2
|
import { type Static, Type } from "typebox";
|
|
3
3
|
import type { ToolDefinition } from "../extensions/types.js";
|
|
4
4
|
import { type TruncationResult } from "./truncate.js";
|
|
5
|
+
import { BashJobRegistry } from "../bash-jobs.js";
|
|
5
6
|
declare const bashSchema: Type.TObject<{
|
|
6
7
|
command: Type.TString;
|
|
7
8
|
timeout: Type.TOptional<Type.TNumber>;
|
|
9
|
+
background: Type.TOptional<Type.TBoolean>;
|
|
8
10
|
}>;
|
|
9
11
|
export type BashToolInput = Static<typeof bashSchema>;
|
|
10
12
|
export interface BashToolDetails {
|
|
@@ -15,6 +17,15 @@ export interface BashToolDetails {
|
|
|
15
17
|
* Pluggable operations for the bash tool.
|
|
16
18
|
* Override these to delegate command execution to remote systems (for example SSH).
|
|
17
19
|
*/
|
|
20
|
+
export interface BashBackgroundHandle {
|
|
21
|
+
pid: number | undefined;
|
|
22
|
+
/** Resolves (or rejects) when the process exits. Rejections mirror `exec`. */
|
|
23
|
+
done: Promise<{
|
|
24
|
+
exitCode: number | null;
|
|
25
|
+
}>;
|
|
26
|
+
/** Synchronously kills the process tree. */
|
|
27
|
+
kill: () => void;
|
|
28
|
+
}
|
|
18
29
|
export interface BashOperations {
|
|
19
30
|
/**
|
|
20
31
|
* Execute a command and stream output.
|
|
@@ -31,6 +42,16 @@ export interface BashOperations {
|
|
|
31
42
|
}) => Promise<{
|
|
32
43
|
exitCode: number | null;
|
|
33
44
|
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Start a command without blocking. Returns a handle immediately so the
|
|
47
|
+
* caller can register a background job and later poll or kill it.
|
|
48
|
+
*/
|
|
49
|
+
execBackground?: (command: string, cwd: string, options: {
|
|
50
|
+
onData: (data: Buffer) => void;
|
|
51
|
+
signal?: AbortSignal;
|
|
52
|
+
timeout?: number;
|
|
53
|
+
env?: NodeJS.ProcessEnv;
|
|
54
|
+
}) => BashBackgroundHandle;
|
|
34
55
|
}
|
|
35
56
|
/**
|
|
36
57
|
* Create bash operations using spectral's built-in local shell execution backend.
|
|
@@ -56,8 +77,22 @@ export interface BashToolOptions {
|
|
|
56
77
|
shellPath?: string;
|
|
57
78
|
/** Hook to adjust command, cwd, or env before execution */
|
|
58
79
|
spawnHook?: BashSpawnHook;
|
|
80
|
+
/** Session-scoped registry used by background jobs (shared with bash_status/bash_kill). */
|
|
81
|
+
jobs?: BashJobRegistry;
|
|
59
82
|
}
|
|
60
83
|
export declare function createBashToolDefinition(cwd: string, options?: BashToolOptions): ToolDefinition<typeof bashSchema, BashToolDetails | undefined>;
|
|
61
84
|
export declare function createBashTool(cwd: string, options?: BashToolOptions): AgentTool<typeof bashSchema>;
|
|
85
|
+
declare const bashStatusSchema: Type.TObject<{
|
|
86
|
+
jobId: Type.TString;
|
|
87
|
+
}>;
|
|
88
|
+
export type BashStatusToolInput = Static<typeof bashStatusSchema>;
|
|
89
|
+
export declare function createBashStatusToolDefinition(jobs: BashJobRegistry): ToolDefinition<typeof bashStatusSchema, undefined>;
|
|
90
|
+
declare const bashKillSchema: Type.TObject<{
|
|
91
|
+
jobId: Type.TString;
|
|
92
|
+
}>;
|
|
93
|
+
export type BashKillToolInput = Static<typeof bashKillSchema>;
|
|
94
|
+
export declare function createBashKillToolDefinition(jobs: BashJobRegistry): ToolDefinition<typeof bashKillSchema, undefined>;
|
|
95
|
+
export declare function createBashStatusTool(jobs: BashJobRegistry): AgentTool<typeof bashStatusSchema>;
|
|
96
|
+
export declare function createBashKillTool(jobs: BashJobRegistry): AgentTool<typeof bashKillSchema>;
|
|
62
97
|
export {};
|
|
63
98
|
//# sourceMappingURL=bash.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/coding-agent/core/tools/bash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAU5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAK7D,OAAO,EAAoD,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/coding-agent/core/tools/bash.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,13 @@ import { checkBashBlocklist } from "./bash-blocklist.js";
|
|
|
8
8
|
import { getTextOutput, str } from "./render-utils.js";
|
|
9
9
|
import { wrapToolDefinition } from "./tool-definition-wrapper.js";
|
|
10
10
|
import { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize } from "./truncate.js";
|
|
11
|
+
import { BashJobRegistry } from "../bash-jobs.js";
|
|
11
12
|
const bashSchema = Type.Object({
|
|
12
13
|
command: Type.String({ description: "Bash command to execute" }),
|
|
13
14
|
timeout: Type.Optional(Type.Number({ description: "Timeout in seconds (optional, no default timeout)" })),
|
|
15
|
+
background: Type.Optional(Type.Boolean({
|
|
16
|
+
description: "Run in the background and return a job id immediately. Use bash_status to poll and bash_kill to stop.",
|
|
17
|
+
})),
|
|
14
18
|
});
|
|
15
19
|
/**
|
|
16
20
|
* Create bash operations using spectral's built-in local shell execution backend.
|
|
@@ -19,96 +23,91 @@ const bashSchema = Type.Object({
|
|
|
19
23
|
* standard local shell behavior while wrapping or rewriting commands.
|
|
20
24
|
*/
|
|
21
25
|
export function createLocalBashOperations(options) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
timedOut = true;
|
|
45
|
-
if (child.pid) {
|
|
46
|
-
try {
|
|
47
|
-
killProcessTree(child.pid);
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
// ESRCH: process already exited. If it's truly gone, treat as normal exit.
|
|
51
|
-
if (child.exitCode !== null || child.signalCode) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}, timeout * 1000);
|
|
57
|
-
}
|
|
58
|
-
// Stream stdout and stderr.
|
|
59
|
-
child.stdout?.on("data", onData);
|
|
60
|
-
child.stderr?.on("data", onData);
|
|
61
|
-
// Handle abort signal by killing the entire process tree.
|
|
62
|
-
const onAbort = () => {
|
|
63
|
-
if (child.pid)
|
|
26
|
+
const spawnHandle = (command, cwd, { onData, signal, timeout, env }) => {
|
|
27
|
+
const { shell, args } = getShellConfig(options?.shellPath);
|
|
28
|
+
if (!existsSync(cwd)) {
|
|
29
|
+
throw new Error(`Working directory does not exist: ${cwd}\nCannot execute bash commands.`);
|
|
30
|
+
}
|
|
31
|
+
const child = spawn(shell, [...args, command], {
|
|
32
|
+
cwd,
|
|
33
|
+
detached: process.platform !== "win32",
|
|
34
|
+
env: env ?? getShellEnv(),
|
|
35
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
36
|
+
windowsHide: true,
|
|
37
|
+
});
|
|
38
|
+
if (child.pid)
|
|
39
|
+
trackDetachedChildPid(child.pid);
|
|
40
|
+
let timedOut = false;
|
|
41
|
+
let timeoutHandle;
|
|
42
|
+
// Set timeout if provided.
|
|
43
|
+
if (timeout !== undefined && timeout > 0) {
|
|
44
|
+
timeoutHandle = setTimeout(() => {
|
|
45
|
+
timedOut = true;
|
|
46
|
+
if (child.pid) {
|
|
47
|
+
try {
|
|
64
48
|
killProcessTree(child.pid);
|
|
65
|
-
};
|
|
66
|
-
if (signal) {
|
|
67
|
-
if (signal.aborted)
|
|
68
|
-
onAbort();
|
|
69
|
-
else
|
|
70
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
71
|
-
}
|
|
72
|
-
// Handle shell spawn errors and wait for the process to terminate without hanging
|
|
73
|
-
// on inherited stdio handles held by detached descendants.
|
|
74
|
-
// Hard deadline = max(LLM timeout + 5s grace, 30m default). Guarantees the
|
|
75
|
-
// promise resolves even if a detached descendant keeps the pipe open.
|
|
76
|
-
const hardDeadlineMs = timeout !== undefined && timeout > 0
|
|
77
|
-
? Math.max(timeout * 1000 + 5000, BASH_HARD_DEADLINE_MS)
|
|
78
|
-
: BASH_HARD_DEADLINE_MS;
|
|
79
|
-
waitForChildProcess(child, hardDeadlineMs)
|
|
80
|
-
.then(({ code, forcedKill }) => {
|
|
81
|
-
if (child.pid)
|
|
82
|
-
untrackDetachedChildPid(child.pid);
|
|
83
|
-
if (timeoutHandle)
|
|
84
|
-
clearTimeout(timeoutHandle);
|
|
85
|
-
if (signal)
|
|
86
|
-
signal.removeEventListener("abort", onAbort);
|
|
87
|
-
if (signal?.aborted) {
|
|
88
|
-
reject(new Error("aborted"));
|
|
89
|
-
return;
|
|
90
49
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
reject(new Error(`timeout:${timeout}`));
|
|
97
|
-
return;
|
|
50
|
+
catch {
|
|
51
|
+
// ESRCH: process already exited. If it's truly gone, treat as normal exit.
|
|
52
|
+
if (child.exitCode !== null || child.signalCode) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
98
55
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
56
|
+
}
|
|
57
|
+
}, timeout * 1000);
|
|
58
|
+
}
|
|
59
|
+
// Stream stdout and stderr.
|
|
60
|
+
child.stdout?.on("data", onData);
|
|
61
|
+
child.stderr?.on("data", onData);
|
|
62
|
+
// Handle abort signal by killing the entire process tree.
|
|
63
|
+
const kill = () => {
|
|
64
|
+
if (child.pid)
|
|
65
|
+
killProcessTree(child.pid);
|
|
66
|
+
};
|
|
67
|
+
if (signal) {
|
|
68
|
+
if (signal.aborted)
|
|
69
|
+
kill();
|
|
70
|
+
else
|
|
71
|
+
signal.addEventListener("abort", kill, { once: true });
|
|
72
|
+
}
|
|
73
|
+
// Handle shell spawn errors and wait for the process to terminate without hanging
|
|
74
|
+
// on inherited stdio handles held by detached descendants.
|
|
75
|
+
// Hard deadline = max(LLM timeout + 5s grace, 30m default). Guarantees the
|
|
76
|
+
// promise resolves even if a detached descendant keeps the pipe open.
|
|
77
|
+
const hardDeadlineMs = timeout !== undefined && timeout > 0
|
|
78
|
+
? Math.max(timeout * 1000 + 5000, BASH_HARD_DEADLINE_MS)
|
|
79
|
+
: BASH_HARD_DEADLINE_MS;
|
|
80
|
+
const done = waitForChildProcess(child, hardDeadlineMs).then(({ code, forcedKill }) => {
|
|
81
|
+
if (child.pid)
|
|
82
|
+
untrackDetachedChildPid(child.pid);
|
|
83
|
+
if (timeoutHandle)
|
|
84
|
+
clearTimeout(timeoutHandle);
|
|
85
|
+
if (signal)
|
|
86
|
+
signal.removeEventListener("abort", kill);
|
|
87
|
+
if (signal?.aborted) {
|
|
88
|
+
throw new Error("aborted");
|
|
89
|
+
}
|
|
90
|
+
if (forcedKill) {
|
|
91
|
+
throw new Error(`Command force-killed after hard deadline (${Math.round(hardDeadlineMs / 60000)}m)`);
|
|
92
|
+
}
|
|
93
|
+
if (timedOut) {
|
|
94
|
+
throw new Error(`timeout:${timeout}`);
|
|
95
|
+
}
|
|
96
|
+
return { exitCode: code };
|
|
97
|
+
}, (err) => {
|
|
98
|
+
if (child.pid)
|
|
99
|
+
untrackDetachedChildPid(child.pid);
|
|
100
|
+
if (timeoutHandle)
|
|
101
|
+
clearTimeout(timeoutHandle);
|
|
102
|
+
if (signal)
|
|
103
|
+
signal.removeEventListener("abort", kill);
|
|
104
|
+
throw err;
|
|
105
|
+
});
|
|
106
|
+
return { pid: child.pid, done, kill };
|
|
107
|
+
};
|
|
108
|
+
return {
|
|
109
|
+
exec: (command, cwd, opts) => spawnHandle(command, cwd, opts).done,
|
|
110
|
+
execBackground: (command, cwd, opts) => spawnHandle(command, cwd, opts),
|
|
112
111
|
};
|
|
113
112
|
}
|
|
114
113
|
function resolveSpawnContext(command, cwd, spawnHook) {
|
|
@@ -191,16 +190,62 @@ export function createBashToolDefinition(cwd, options) {
|
|
|
191
190
|
return {
|
|
192
191
|
name: "bash",
|
|
193
192
|
label: "bash",
|
|
194
|
-
description: `Execute a bash command in the current working directory. Returns stdout and stderr. Output is truncated to last ${DEFAULT_MAX_LINES} lines or ${DEFAULT_MAX_BYTES / 1024}KB (whichever is hit first). If truncated, full output is saved to a temp file. Optionally provide a timeout in seconds.`,
|
|
193
|
+
description: `Execute a bash command in the current working directory. Returns stdout and stderr. Output is truncated to last ${DEFAULT_MAX_LINES} lines or ${DEFAULT_MAX_BYTES / 1024}KB (whichever is hit first). If truncated, full output is saved to a temp file. Optionally provide a timeout in seconds, or set background=true to start it in the background and poll with bash_status.`,
|
|
195
194
|
promptSnippet: "Execute bash commands (ls, grep, find, etc.)",
|
|
196
195
|
parameters: bashSchema,
|
|
197
|
-
async execute(_toolCallId, { command, timeout }, signal, onUpdate, _ctx) {
|
|
196
|
+
async execute(_toolCallId, { command, timeout, background }, signal, onUpdate, _ctx) {
|
|
198
197
|
const resolvedCommand = commandPrefix ? `${commandPrefix}\n${command}` : command;
|
|
199
198
|
const spawnContext = resolveSpawnContext(resolvedCommand, cwd, spawnHook);
|
|
200
199
|
const blocklistResult = checkBashBlocklist(spawnContext.command);
|
|
201
200
|
if (blocklistResult.blocked) {
|
|
202
201
|
throw new Error(blocklistResult.reason);
|
|
203
202
|
}
|
|
203
|
+
if (background) {
|
|
204
|
+
if (!ops.execBackground) {
|
|
205
|
+
throw new Error("Background execution is not supported by the current bash backend.");
|
|
206
|
+
}
|
|
207
|
+
const jobs = options?.jobs ?? new BashJobRegistry();
|
|
208
|
+
const output = new OutputAccumulator({ tempFilePrefix: "spectral-bash", alwaysPersist: true });
|
|
209
|
+
const fullOutputPath = output.persist();
|
|
210
|
+
const handle = ops.execBackground(spawnContext.command, spawnContext.cwd, {
|
|
211
|
+
onData: (data) => output.append(data),
|
|
212
|
+
signal,
|
|
213
|
+
timeout,
|
|
214
|
+
env: spawnContext.env,
|
|
215
|
+
});
|
|
216
|
+
const job = jobs.create({
|
|
217
|
+
pid: handle.pid,
|
|
218
|
+
command: spawnContext.command,
|
|
219
|
+
cwd: spawnContext.cwd,
|
|
220
|
+
output,
|
|
221
|
+
fullOutputPath,
|
|
222
|
+
kill: handle.kill,
|
|
223
|
+
});
|
|
224
|
+
void handle.done
|
|
225
|
+
.then(({ exitCode }) => {
|
|
226
|
+
output.finish();
|
|
227
|
+
jobs.markExited(job.id, exitCode);
|
|
228
|
+
}, () => {
|
|
229
|
+
output.finish();
|
|
230
|
+
jobs.markKilled(job.id);
|
|
231
|
+
})
|
|
232
|
+
.finally(() => {
|
|
233
|
+
void output.closeTempFile();
|
|
234
|
+
});
|
|
235
|
+
return {
|
|
236
|
+
content: [
|
|
237
|
+
{
|
|
238
|
+
type: "text",
|
|
239
|
+
text: [
|
|
240
|
+
`Started background job ${job.id}`,
|
|
241
|
+
`Full output: ${fullOutputPath}`,
|
|
242
|
+
`Check progress with bash_status(${job.id}); stop it with bash_kill(${job.id}).`,
|
|
243
|
+
].join("\n"),
|
|
244
|
+
},
|
|
245
|
+
],
|
|
246
|
+
details: undefined,
|
|
247
|
+
};
|
|
248
|
+
}
|
|
204
249
|
const output = new OutputAccumulator({ tempFilePrefix: "spectral-bash" });
|
|
205
250
|
let updateTimer;
|
|
206
251
|
let updateDirty = false;
|
|
@@ -321,3 +366,54 @@ export function createBashToolDefinition(cwd, options) {
|
|
|
321
366
|
export function createBashTool(cwd, options) {
|
|
322
367
|
return wrapToolDefinition(createBashToolDefinition(cwd, options));
|
|
323
368
|
}
|
|
369
|
+
const bashStatusSchema = Type.Object({
|
|
370
|
+
jobId: Type.String({ description: "Background job id returned by bash(background: true)." }),
|
|
371
|
+
});
|
|
372
|
+
export function createBashStatusToolDefinition(jobs) {
|
|
373
|
+
return {
|
|
374
|
+
name: "bash_status",
|
|
375
|
+
label: "bash_status",
|
|
376
|
+
description: "Check the status and latest output of a background bash job started with bash(background: true).",
|
|
377
|
+
parameters: bashStatusSchema,
|
|
378
|
+
async execute(_toolCallId, { jobId }) {
|
|
379
|
+
const job = jobs.get(jobId);
|
|
380
|
+
if (!job) {
|
|
381
|
+
throw new Error(`Unknown background job: ${jobId}`);
|
|
382
|
+
}
|
|
383
|
+
const snapshot = job.output.snapshot({ persistIfTruncated: true });
|
|
384
|
+
const statusLine = job.status === "running"
|
|
385
|
+
? `running (${formatDuration(Date.now() - job.startedAt)} elapsed)`
|
|
386
|
+
: `${job.status}${job.exitCode !== null ? ` exit ${job.exitCode}` : ""}`;
|
|
387
|
+
const text = [
|
|
388
|
+
`Job ${jobId}: ${statusLine}`,
|
|
389
|
+
snapshot.content ? `\n${snapshot.content}` : "(no output yet)",
|
|
390
|
+
`Full output: ${job.fullOutputPath}`,
|
|
391
|
+
].join("\n");
|
|
392
|
+
return { content: [{ type: "text", text }], details: undefined };
|
|
393
|
+
},
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
const bashKillSchema = Type.Object({
|
|
397
|
+
jobId: Type.String({ description: "Background job id to stop." }),
|
|
398
|
+
});
|
|
399
|
+
export function createBashKillToolDefinition(jobs) {
|
|
400
|
+
return {
|
|
401
|
+
name: "bash_kill",
|
|
402
|
+
label: "bash_kill",
|
|
403
|
+
description: "Stop a running background bash job by killing its process tree. Returns whether the job existed.",
|
|
404
|
+
parameters: bashKillSchema,
|
|
405
|
+
async execute(_toolCallId, { jobId }) {
|
|
406
|
+
const killed = jobs.kill(jobId);
|
|
407
|
+
if (!killed) {
|
|
408
|
+
throw new Error(`Unknown background job: ${jobId}`);
|
|
409
|
+
}
|
|
410
|
+
return { content: [{ type: "text", text: `Stopped background job ${jobId}.` }], details: undefined };
|
|
411
|
+
},
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
export function createBashStatusTool(jobs) {
|
|
415
|
+
return wrapToolDefinition(createBashStatusToolDefinition(jobs));
|
|
416
|
+
}
|
|
417
|
+
export function createBashKillTool(jobs) {
|
|
418
|
+
return wrapToolDefinition(createBashKillToolDefinition(jobs));
|
|
419
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { type BashOperations, type BashSpawnContext, type BashSpawnHook, type BashToolDetails, type BashToolInput, type BashToolOptions, createBashTool, createBashToolDefinition, createLocalBashOperations, } from "./bash.js";
|
|
1
|
+
export { type BashOperations, type BashSpawnContext, type BashSpawnHook, type BashToolDetails, type BashToolInput, type BashToolOptions, type BashStatusToolInput, type BashKillToolInput, createBashTool, createBashToolDefinition, createBashStatusTool, createBashStatusToolDefinition, createBashKillTool, createBashKillToolDefinition, createLocalBashOperations, } from "./bash.js";
|
|
2
2
|
export { createApplyPatchTool, createApplyPatchToolDefinition, type ApplyPatchOperations, type ApplyPatchToolDetails, type ApplyPatchToolInput, type ApplyPatchToolOptions, } from "./apply-patch.js";
|
|
3
3
|
export { withFileMutationQueue } from "./file-mutation-queue.js";
|
|
4
4
|
export { createReadTool, createReadToolDefinition, type ReadOperations, type ReadToolDetails, type ReadToolInput, type ReadToolOptions, } from "./read.js";
|
|
@@ -8,14 +8,17 @@ import type { ToolDefinition } from "../extensions/types.js";
|
|
|
8
8
|
import { type ApplyPatchToolOptions } from "./apply-patch.js";
|
|
9
9
|
import { type BashToolOptions } from "./bash.js";
|
|
10
10
|
import { type ReadToolOptions } from "./read.js";
|
|
11
|
+
import { BashJobRegistry } from "../bash-jobs.js";
|
|
11
12
|
export type Tool = AgentTool<any>;
|
|
12
13
|
export type ToolDef = ToolDefinition<any, any>;
|
|
13
|
-
export type ToolName = "read" | "bash" | "apply_patch";
|
|
14
|
+
export type ToolName = "read" | "bash" | "apply_patch" | "bash_status" | "bash_kill";
|
|
14
15
|
export declare const allToolNames: Set<ToolName>;
|
|
15
16
|
export interface ToolsOptions {
|
|
16
17
|
read?: ReadToolOptions;
|
|
17
18
|
bash?: BashToolOptions;
|
|
18
19
|
applyPatch?: ApplyPatchToolOptions;
|
|
20
|
+
/** Session-scoped registry shared by bash (background), bash_status, and bash_kill. */
|
|
21
|
+
jobs?: BashJobRegistry;
|
|
19
22
|
}
|
|
20
23
|
export declare function createToolDefinition(toolName: ToolName, cwd: string, options?: ToolsOptions): ToolDef;
|
|
21
24
|
export declare function createTool(toolName: ToolName, cwd: string, options?: ToolsOptions): Tool;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/coding-agent/core/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,cAAc,EACd,wBAAwB,EACxB,yBAAyB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,oBAAoB,EACpB,8BAA8B,EAC9B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACN,cAAc,EACd,wBAAwB,EACxB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAwD,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACpH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/coding-agent/core/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,32 @@
|
|
|
1
|
-
export { createBashTool, createBashToolDefinition, createLocalBashOperations, } from "./bash.js";
|
|
1
|
+
export { createBashTool, createBashToolDefinition, createBashStatusTool, createBashStatusToolDefinition, createBashKillTool, createBashKillToolDefinition, createLocalBashOperations, } from "./bash.js";
|
|
2
2
|
export { createApplyPatchTool, createApplyPatchToolDefinition, } from "./apply-patch.js";
|
|
3
3
|
export { withFileMutationQueue } from "./file-mutation-queue.js";
|
|
4
4
|
export { createReadTool, createReadToolDefinition, } from "./read.js";
|
|
5
5
|
export { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize, truncateHead, truncateLine, truncateTail, } from "./truncate.js";
|
|
6
6
|
import { createApplyPatchTool, createApplyPatchToolDefinition } from "./apply-patch.js";
|
|
7
|
-
import { createBashTool, createBashToolDefinition } from "./bash.js";
|
|
7
|
+
import { createBashTool, createBashToolDefinition, createBashStatusTool, createBashStatusToolDefinition, createBashKillTool, createBashKillToolDefinition, } from "./bash.js";
|
|
8
8
|
import { createReadTool, createReadToolDefinition } from "./read.js";
|
|
9
|
+
import { BashJobRegistry } from "../bash-jobs.js";
|
|
9
10
|
export const allToolNames = new Set([
|
|
10
11
|
"read",
|
|
11
12
|
"bash",
|
|
12
13
|
"apply_patch",
|
|
14
|
+
"bash_status",
|
|
15
|
+
"bash_kill",
|
|
13
16
|
]);
|
|
17
|
+
function resolveJobs(options) {
|
|
18
|
+
return options?.jobs ?? new BashJobRegistry();
|
|
19
|
+
}
|
|
14
20
|
export function createToolDefinition(toolName, cwd, options) {
|
|
15
21
|
switch (toolName) {
|
|
16
22
|
case "read":
|
|
17
23
|
return createReadToolDefinition(cwd, options?.read);
|
|
18
24
|
case "bash":
|
|
19
|
-
return createBashToolDefinition(cwd, options?.bash);
|
|
25
|
+
return createBashToolDefinition(cwd, { ...options?.bash, jobs: options?.jobs ?? options?.bash?.jobs });
|
|
26
|
+
case "bash_status":
|
|
27
|
+
return createBashStatusToolDefinition(resolveJobs(options));
|
|
28
|
+
case "bash_kill":
|
|
29
|
+
return createBashKillToolDefinition(resolveJobs(options));
|
|
20
30
|
case "apply_patch":
|
|
21
31
|
return createApplyPatchToolDefinition(cwd, options?.applyPatch);
|
|
22
32
|
default:
|
|
@@ -28,7 +38,11 @@ export function createTool(toolName, cwd, options) {
|
|
|
28
38
|
case "read":
|
|
29
39
|
return createReadTool(cwd, options?.read);
|
|
30
40
|
case "bash":
|
|
31
|
-
return createBashTool(cwd, options?.bash);
|
|
41
|
+
return createBashTool(cwd, { ...options?.bash, jobs: options?.jobs ?? options?.bash?.jobs });
|
|
42
|
+
case "bash_status":
|
|
43
|
+
return createBashStatusTool(resolveJobs(options));
|
|
44
|
+
case "bash_kill":
|
|
45
|
+
return createBashKillTool(resolveJobs(options));
|
|
32
46
|
case "apply_patch":
|
|
33
47
|
return createApplyPatchTool(cwd, options?.applyPatch);
|
|
34
48
|
default:
|
|
@@ -36,9 +50,12 @@ export function createTool(toolName, cwd, options) {
|
|
|
36
50
|
}
|
|
37
51
|
}
|
|
38
52
|
export function createCodingToolDefinitions(cwd, options) {
|
|
53
|
+
const jobs = resolveJobs(options);
|
|
39
54
|
return [
|
|
40
55
|
createReadToolDefinition(cwd, options?.read),
|
|
41
|
-
createBashToolDefinition(cwd, options?.bash),
|
|
56
|
+
createBashToolDefinition(cwd, { ...options?.bash, jobs }),
|
|
57
|
+
createBashStatusToolDefinition(jobs),
|
|
58
|
+
createBashKillToolDefinition(jobs),
|
|
42
59
|
createApplyPatchToolDefinition(cwd, options?.applyPatch),
|
|
43
60
|
];
|
|
44
61
|
}
|
|
@@ -48,16 +65,22 @@ export function createReadOnlyToolDefinitions(cwd, options) {
|
|
|
48
65
|
];
|
|
49
66
|
}
|
|
50
67
|
export function createAllToolDefinitions(cwd, options) {
|
|
68
|
+
const jobs = resolveJobs(options);
|
|
51
69
|
return {
|
|
52
70
|
read: createReadToolDefinition(cwd, options?.read),
|
|
53
|
-
bash: createBashToolDefinition(cwd, options?.bash),
|
|
71
|
+
bash: createBashToolDefinition(cwd, { ...options?.bash, jobs }),
|
|
72
|
+
bash_status: createBashStatusToolDefinition(jobs),
|
|
73
|
+
bash_kill: createBashKillToolDefinition(jobs),
|
|
54
74
|
apply_patch: createApplyPatchToolDefinition(cwd, options?.applyPatch),
|
|
55
75
|
};
|
|
56
76
|
}
|
|
57
77
|
export function createCodingTools(cwd, options) {
|
|
78
|
+
const jobs = resolveJobs(options);
|
|
58
79
|
return [
|
|
59
80
|
createReadTool(cwd, options?.read),
|
|
60
|
-
createBashTool(cwd, options?.bash),
|
|
81
|
+
createBashTool(cwd, { ...options?.bash, jobs }),
|
|
82
|
+
createBashStatusTool(jobs),
|
|
83
|
+
createBashKillTool(jobs),
|
|
61
84
|
createApplyPatchTool(cwd, options?.applyPatch),
|
|
62
85
|
];
|
|
63
86
|
}
|
|
@@ -67,9 +90,12 @@ export function createReadOnlyTools(cwd, options) {
|
|
|
67
90
|
];
|
|
68
91
|
}
|
|
69
92
|
export function createAllTools(cwd, options) {
|
|
93
|
+
const jobs = resolveJobs(options);
|
|
70
94
|
return {
|
|
71
95
|
read: createReadTool(cwd, options?.read),
|
|
72
|
-
bash: createBashTool(cwd, options?.bash),
|
|
96
|
+
bash: createBashTool(cwd, { ...options?.bash, jobs }),
|
|
97
|
+
bash_status: createBashStatusTool(jobs),
|
|
98
|
+
bash_kill: createBashKillTool(jobs),
|
|
73
99
|
apply_patch: createApplyPatchTool(cwd, options?.applyPatch),
|
|
74
100
|
};
|
|
75
101
|
}
|
|
@@ -3,6 +3,12 @@ export interface OutputAccumulatorOptions {
|
|
|
3
3
|
maxLines?: number;
|
|
4
4
|
maxBytes?: number;
|
|
5
5
|
tempFilePrefix?: string;
|
|
6
|
+
/**
|
|
7
|
+
* When true, persist every chunk to a temp file from the first append,
|
|
8
|
+
* even before the output exceeds the truncation thresholds. Background bash
|
|
9
|
+
* jobs use this so a log path exists immediately and can be polled.
|
|
10
|
+
*/
|
|
11
|
+
alwaysPersist?: boolean;
|
|
6
12
|
}
|
|
7
13
|
export interface OutputSnapshot {
|
|
8
14
|
content: string;
|
|
@@ -21,6 +27,7 @@ export declare class OutputAccumulator {
|
|
|
21
27
|
private readonly maxBytes;
|
|
22
28
|
private readonly maxRollingBytes;
|
|
23
29
|
private readonly tempFilePrefix;
|
|
30
|
+
private readonly alwaysPersist;
|
|
24
31
|
private readonly decoder;
|
|
25
32
|
private rawChunks;
|
|
26
33
|
private tailText;
|
|
@@ -43,6 +50,12 @@ export declare class OutputAccumulator {
|
|
|
43
50
|
}): OutputSnapshot;
|
|
44
51
|
closeTempFile(): Promise<void>;
|
|
45
52
|
getLastLineBytes(): number;
|
|
53
|
+
get fullOutputPath(): string | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Force the temp file to be opened now and return its path. Used by
|
|
56
|
+
* background bash jobs so the log path is stable before any output arrives.
|
|
57
|
+
*/
|
|
58
|
+
persist(): string;
|
|
46
59
|
private appendDecodedText;
|
|
47
60
|
private trimTail;
|
|
48
61
|
private getSnapshotText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-accumulator.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/coding-agent/core/tools/output-accumulator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwC,KAAK,gBAAgB,EAAgB,MAAM,eAAe,CAAC;AAE1G,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAWD;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,wBAAwB,CAAQ;IACxC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAA0B;gBAEpC,OAAO,GAAE,wBAA6B;
|
|
1
|
+
{"version":3,"file":"output-accumulator.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/coding-agent/core/tools/output-accumulator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwC,KAAK,gBAAgB,EAAgB,MAAM,eAAe,CAAC;AAE1G,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAWD;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,wBAAwB,CAAQ;IACxC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAA0B;gBAEpC,OAAO,GAAE,wBAA6B;IAQlD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgB1B,MAAM,IAAI,IAAI;IAWd,QAAQ,CAAC,OAAO,GAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,cAAc;IA8BlE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBpC,gBAAgB,IAAI,MAAM;IAI1B,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED;;;OAGG;IACH,OAAO,IAAI,MAAM;IAKjB,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,cAAc;CAWtB"}
|
|
@@ -22,6 +22,7 @@ export class OutputAccumulator {
|
|
|
22
22
|
maxBytes;
|
|
23
23
|
maxRollingBytes;
|
|
24
24
|
tempFilePrefix;
|
|
25
|
+
alwaysPersist;
|
|
25
26
|
decoder = new TextDecoder();
|
|
26
27
|
rawChunks = [];
|
|
27
28
|
tailText = "";
|
|
@@ -41,6 +42,7 @@ export class OutputAccumulator {
|
|
|
41
42
|
this.maxBytes = options.maxBytes ?? DEFAULT_MAX_BYTES;
|
|
42
43
|
this.maxRollingBytes = Math.max(this.maxBytes * 2, 1);
|
|
43
44
|
this.tempFilePrefix = options.tempFilePrefix ?? "spectral-output";
|
|
45
|
+
this.alwaysPersist = options.alwaysPersist ?? false;
|
|
44
46
|
}
|
|
45
47
|
append(data) {
|
|
46
48
|
if (this.finished) {
|
|
@@ -48,7 +50,7 @@ export class OutputAccumulator {
|
|
|
48
50
|
}
|
|
49
51
|
this.totalRawBytes += data.length;
|
|
50
52
|
this.appendDecodedText(this.decoder.decode(data, { stream: true }));
|
|
51
|
-
if (this.tempFileStream || this.shouldUseTempFile()) {
|
|
53
|
+
if (this.alwaysPersist || this.tempFileStream || this.shouldUseTempFile()) {
|
|
52
54
|
this.ensureTempFile();
|
|
53
55
|
this.tempFileStream?.write(data);
|
|
54
56
|
}
|
|
@@ -116,6 +118,17 @@ export class OutputAccumulator {
|
|
|
116
118
|
getLastLineBytes() {
|
|
117
119
|
return this.currentLineBytes;
|
|
118
120
|
}
|
|
121
|
+
get fullOutputPath() {
|
|
122
|
+
return this.tempFilePath;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Force the temp file to be opened now and return its path. Used by
|
|
126
|
+
* background bash jobs so the log path is stable before any output arrives.
|
|
127
|
+
*/
|
|
128
|
+
persist() {
|
|
129
|
+
this.ensureTempFile();
|
|
130
|
+
return this.tempFilePath;
|
|
131
|
+
}
|
|
119
132
|
appendDecodedText(text) {
|
|
120
133
|
if (text.length === 0) {
|
|
121
134
|
return;
|
|
@@ -19,7 +19,8 @@ export { type BranchSummaryEntry, buildSessionContext, type CompactionEntry, CUR
|
|
|
19
19
|
export { type CompactionSettings, type ImageSettings, type PackageSource, type RetrySettings, SettingsManager, } from "./core/settings-manager.js";
|
|
20
20
|
export { formatSkillsForPrompt, type LoadSkillsFromDirOptions, type LoadSkillsResult, loadSkills, loadSkillsFromDir, type Skill, type SkillFrontmatter, } from "./core/skills.js";
|
|
21
21
|
export { createSyntheticSourceInfo } from "./core/source-info.js";
|
|
22
|
-
export { type BashOperations, type BashSpawnContext, type BashSpawnHook, type BashToolDetails, type BashToolInput, type BashToolOptions, createApplyPatchToolDefinition, createBashToolDefinition, createLocalBashOperations, createReadToolDefinition, type ApplyPatchOperations, type ApplyPatchToolDetails, type ApplyPatchToolInput, type ApplyPatchToolOptions, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize, type ReadOperations, type ReadToolDetails, type ReadToolInput, type ReadToolOptions, type ToolsOptions, type TruncationOptions, type TruncationResult, truncateHead, truncateLine, truncateTail, withFileMutationQueue, } from "./core/tools/index.js";
|
|
22
|
+
export { type BashOperations, type BashSpawnContext, type BashSpawnHook, type BashToolDetails, type BashToolInput, type BashToolOptions, type BashStatusToolInput, type BashKillToolInput, createApplyPatchToolDefinition, createBashKillTool, createBashKillToolDefinition, createBashStatusTool, createBashStatusToolDefinition, createBashToolDefinition, createLocalBashOperations, createReadToolDefinition, type ApplyPatchOperations, type ApplyPatchToolDetails, type ApplyPatchToolInput, type ApplyPatchToolOptions, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize, type ReadOperations, type ReadToolDetails, type ReadToolInput, type ReadToolOptions, type ToolsOptions, type TruncationOptions, type TruncationResult, truncateHead, truncateLine, truncateTail, withFileMutationQueue, } from "./core/tools/index.js";
|
|
23
|
+
export { BashJobRegistry } from "./core/bash-jobs.js";
|
|
23
24
|
export { RpcClient, type RpcClientOptions, type RpcCommand, type RpcEventListener, type RpcResponse, type RpcSessionState, runRpcMode, } from "./modes/index.js";
|
|
24
25
|
export type { ModelInfo } from "./modes/rpc/rpc-client.js";
|
|
25
26
|
export type { PrintModeOptions } from "./modes/print-mode.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdk/coding-agent/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACN,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,eAAe,EACf,KAAK,YAAY,GACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,WAAW,EACX,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,eAAe,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,cAAc,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,OAAO,EACP,2BAA2B,EAC3B,cAAc,EACd,KAAK,cAAc,EACnB,YAAY,EACZ,kBAAkB,EAClB,KAAK,4BAA4B,EACjC,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE7F,YAAY,EACX,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,0BAA0B,EAC1B,gCAAgC,EAChC,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,8BAA8B,EAC9B,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,QAAQ,EACR,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,mBAAmB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACN,sBAAsB,EACtB,UAAU,EACV,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACnB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD,OAAO,EACN,SAAS,EACT,iBAAiB,GACjB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EACf,YAAY,EACZ,SAAS,EACT,aAAa,EACb,QAAQ,GACR,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACX,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,OAAO,EACP,KAAK,EACL,WAAW,EACX,eAAe,EACf,QAAQ,EACR,iBAAiB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,YAAY,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,gBAAgB,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACvG,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAE3F,OAAO,EACN,mBAAmB,EACnB,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,EACzB,KAAK,qCAAqC,EAC1C,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,iCAAiC,EAEtC,kBAAkB,EAClB,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc,EAEd,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,KAAK,cAAc,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,KAAK,kBAAkB,EACvB,mBAAmB,EACnB,KAAK,eAAe,EACpB,uBAAuB,EACvB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,eAAe,GACf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACN,qBAAqB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,UAAU,EACV,iBAAiB,EACjB,KAAK,KAAK,EACV,KAAK,gBAAgB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,qBAAqB,GACrB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdk/coding-agent/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,8 @@ export { SettingsManager, } from "./core/settings-manager.js";
|
|
|
32
32
|
export { formatSkillsForPrompt, loadSkills, loadSkillsFromDir, } from "./core/skills.js";
|
|
33
33
|
export { createSyntheticSourceInfo } from "./core/source-info.js";
|
|
34
34
|
// Tools
|
|
35
|
-
export { createApplyPatchToolDefinition, createBashToolDefinition, createLocalBashOperations, createReadToolDefinition, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize, truncateHead, truncateLine, truncateTail, withFileMutationQueue, } from "./core/tools/index.js";
|
|
35
|
+
export { createApplyPatchToolDefinition, createBashKillTool, createBashKillToolDefinition, createBashStatusTool, createBashStatusToolDefinition, createBashToolDefinition, createLocalBashOperations, createReadToolDefinition, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize, truncateHead, truncateLine, truncateTail, withFileMutationQueue, } from "./core/tools/index.js";
|
|
36
|
+
export { BashJobRegistry } from "./core/bash-jobs.js";
|
|
36
37
|
// Main entry point
|
|
37
38
|
// main.ts removed (interactive-only, not used in SDK mode)
|
|
38
39
|
// Run modes for programmatic SDK usage
|