@sean.holung/minicode 0.2.4 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/serve/agent-bridge.js +127 -4
- package/dist/src/serve/server.js +101 -3
- package/dist/src/session/session-store.js +3 -1
- package/dist/src/ui/cli-ink.js +1 -0
- package/dist/src/web/app.js +2037 -117
- package/dist/src/web/index.html +28 -9
- package/dist/src/web/style.css +503 -3
- package/dist/tests/serve.integration.test.js +225 -0
- package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.d.ts +5 -0
- package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.d.ts.map +1 -1
- package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.js +35 -20
- package/node_modules/@minicode/agent-sdk/dist/src/agent/agent.js.map +1 -1
- package/node_modules/@minicode/agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -4
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import assert from "node:assert/strict";
|
|
2
2
|
import { test, afterEach } from "node:test";
|
|
3
3
|
import { createServer } from "node:http";
|
|
4
|
+
import { mkdirSync, writeFileSync, rmSync } from "node:fs";
|
|
4
5
|
import { createRequestHandler } from "../src/serve/server.js";
|
|
5
6
|
import { AgentBridge } from "../src/serve/agent-bridge.js";
|
|
6
7
|
import { createTestAgentConfig } from "./test-utils.js";
|
|
@@ -126,6 +127,49 @@ class MockBridge extends AgentBridge {
|
|
|
126
127
|
this._pinned.delete(name);
|
|
127
128
|
return true;
|
|
128
129
|
}
|
|
130
|
+
// Annotation state for testing
|
|
131
|
+
_annotations = new Map();
|
|
132
|
+
getAnnotations() {
|
|
133
|
+
return Object.fromEntries(this._annotations);
|
|
134
|
+
}
|
|
135
|
+
getAnnotationsForSymbol(name) {
|
|
136
|
+
// Resolve symbol name to qualifiedName
|
|
137
|
+
const sym = this.getSymbol(name);
|
|
138
|
+
const key = sym ? sym.qualifiedName : name;
|
|
139
|
+
return this._annotations.get(key) ?? [];
|
|
140
|
+
}
|
|
141
|
+
addAnnotation(name, text) {
|
|
142
|
+
const sym = this.getSymbol(name);
|
|
143
|
+
if (!sym)
|
|
144
|
+
return false;
|
|
145
|
+
const trimmed = text.slice(0, 500).trim();
|
|
146
|
+
if (trimmed.length === 0)
|
|
147
|
+
return false;
|
|
148
|
+
const key = sym.qualifiedName;
|
|
149
|
+
const existing = this._annotations.get(key) ?? [];
|
|
150
|
+
existing.push(trimmed);
|
|
151
|
+
this._annotations.set(key, existing);
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
removeAnnotation(name, index) {
|
|
155
|
+
const notes = this._annotations.get(name);
|
|
156
|
+
if (!notes || index < 0 || index >= notes.length)
|
|
157
|
+
return false;
|
|
158
|
+
notes.splice(index, 1);
|
|
159
|
+
if (notes.length === 0)
|
|
160
|
+
this._annotations.delete(name);
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
clearAnnotations(name) {
|
|
164
|
+
this._annotations.delete(name);
|
|
165
|
+
}
|
|
166
|
+
async explainSymbol(name, onEvent) {
|
|
167
|
+
const sym = this.getSymbol(name);
|
|
168
|
+
if (!sym)
|
|
169
|
+
throw new Error(`Symbol "${name}" not found`);
|
|
170
|
+
onEvent({ type: "streaming_chunk", content: `Explaining ${name}...` });
|
|
171
|
+
return `Explaining ${name}...`;
|
|
172
|
+
}
|
|
129
173
|
}
|
|
130
174
|
// ── Test harness ──
|
|
131
175
|
let activeServer;
|
|
@@ -532,3 +576,184 @@ test("POST /api/focus returns 400 for invalid action", async () => {
|
|
|
532
576
|
});
|
|
533
577
|
assert.equal(res.status, 400);
|
|
534
578
|
});
|
|
579
|
+
// ── Symbol source endpoint tests ──
|
|
580
|
+
test("GET /api/symbols/:name/source returns source code for known symbol", async () => {
|
|
581
|
+
const bridge = new MockBridge();
|
|
582
|
+
const base = await startTestServer(bridge);
|
|
583
|
+
// Create a temp file matching the mock symbol's filePath
|
|
584
|
+
const wsRoot = "/tmp/test-workspace";
|
|
585
|
+
mkdirSync(`${wsRoot}/src`, { recursive: true });
|
|
586
|
+
writeFileSync(`${wsRoot}/src/foo.ts`, "line1\nfunction foo(): void {\n return;\n}\nline5\n");
|
|
587
|
+
try {
|
|
588
|
+
const res = await fetch(`${base}/api/symbols/foo/source`);
|
|
589
|
+
assert.equal(res.status, 200);
|
|
590
|
+
const body = (await res.json());
|
|
591
|
+
assert.equal(body.symbol, "foo");
|
|
592
|
+
assert.equal(body.filePath, "src/foo.ts");
|
|
593
|
+
assert.equal(body.startLine, 1);
|
|
594
|
+
assert.equal(body.endLine, 5);
|
|
595
|
+
assert.ok(body.source.includes("line1"));
|
|
596
|
+
}
|
|
597
|
+
finally {
|
|
598
|
+
rmSync(wsRoot, { recursive: true, force: true });
|
|
599
|
+
}
|
|
600
|
+
});
|
|
601
|
+
test("GET /api/symbols/:name/source returns 404 for unknown symbol", async () => {
|
|
602
|
+
const bridge = new MockBridge();
|
|
603
|
+
const base = await startTestServer(bridge);
|
|
604
|
+
const res = await fetch(`${base}/api/symbols/nonexistent/source`);
|
|
605
|
+
assert.equal(res.status, 404);
|
|
606
|
+
const body = (await res.json());
|
|
607
|
+
assert.ok(body.error.includes("nonexistent"));
|
|
608
|
+
});
|
|
609
|
+
test("GET /api/symbols/:name/source returns 500 when file is missing", async () => {
|
|
610
|
+
const bridge = new MockBridge();
|
|
611
|
+
const base = await startTestServer(bridge);
|
|
612
|
+
// Don't create the file — let it fail with a read error
|
|
613
|
+
const res = await fetch(`${base}/api/symbols/foo/source`);
|
|
614
|
+
assert.equal(res.status, 500);
|
|
615
|
+
const body = (await res.json());
|
|
616
|
+
assert.ok(body.error.includes("src/foo.ts"));
|
|
617
|
+
});
|
|
618
|
+
// ── Annotations API tests ──
|
|
619
|
+
test("GET /api/annotations returns empty annotations initially", async () => {
|
|
620
|
+
const bridge = new MockBridge();
|
|
621
|
+
const base = await startTestServer(bridge);
|
|
622
|
+
const res = await fetch(`${base}/api/annotations`);
|
|
623
|
+
assert.equal(res.status, 200);
|
|
624
|
+
const body = (await res.json());
|
|
625
|
+
assert.deepEqual(body.annotations, {});
|
|
626
|
+
});
|
|
627
|
+
test("POST /api/symbols/:name/annotations adds annotation", async () => {
|
|
628
|
+
const bridge = new MockBridge();
|
|
629
|
+
const base = await startTestServer(bridge);
|
|
630
|
+
const res = await fetch(`${base}/api/symbols/foo/annotations`, {
|
|
631
|
+
method: "POST",
|
|
632
|
+
headers: { "Content-Type": "application/json" },
|
|
633
|
+
body: JSON.stringify({ text: "don't modify, stable API" }),
|
|
634
|
+
});
|
|
635
|
+
assert.equal(res.status, 200);
|
|
636
|
+
const body = (await res.json());
|
|
637
|
+
assert.equal(body.symbol, "foo");
|
|
638
|
+
assert.equal(body.annotations.length, 1);
|
|
639
|
+
assert.equal(body.annotations[0], "don't modify, stable API");
|
|
640
|
+
});
|
|
641
|
+
test("GET /api/symbols/:name/annotations returns annotations for symbol", async () => {
|
|
642
|
+
const bridge = new MockBridge();
|
|
643
|
+
const base = await startTestServer(bridge);
|
|
644
|
+
// Add one first
|
|
645
|
+
await fetch(`${base}/api/symbols/foo/annotations`, {
|
|
646
|
+
method: "POST",
|
|
647
|
+
headers: { "Content-Type": "application/json" },
|
|
648
|
+
body: JSON.stringify({ text: "note 1" }),
|
|
649
|
+
});
|
|
650
|
+
const res = await fetch(`${base}/api/symbols/foo/annotations`);
|
|
651
|
+
assert.equal(res.status, 200);
|
|
652
|
+
const body = (await res.json());
|
|
653
|
+
assert.equal(body.annotations.length, 1);
|
|
654
|
+
assert.equal(body.annotations[0], "note 1");
|
|
655
|
+
});
|
|
656
|
+
test("POST /api/symbols/:name/annotations returns 404 for unknown symbol", async () => {
|
|
657
|
+
const bridge = new MockBridge();
|
|
658
|
+
const base = await startTestServer(bridge);
|
|
659
|
+
const res = await fetch(`${base}/api/symbols/nonexistent/annotations`, {
|
|
660
|
+
method: "POST",
|
|
661
|
+
headers: { "Content-Type": "application/json" },
|
|
662
|
+
body: JSON.stringify({ text: "hello" }),
|
|
663
|
+
});
|
|
664
|
+
assert.equal(res.status, 404);
|
|
665
|
+
});
|
|
666
|
+
test("POST /api/symbols/:name/annotations returns 400 for missing text", async () => {
|
|
667
|
+
const bridge = new MockBridge();
|
|
668
|
+
const base = await startTestServer(bridge);
|
|
669
|
+
const res = await fetch(`${base}/api/symbols/foo/annotations`, {
|
|
670
|
+
method: "POST",
|
|
671
|
+
headers: { "Content-Type": "application/json" },
|
|
672
|
+
body: JSON.stringify({}),
|
|
673
|
+
});
|
|
674
|
+
assert.equal(res.status, 400);
|
|
675
|
+
});
|
|
676
|
+
test("DELETE /api/symbols/:name/annotations/:index removes annotation", async () => {
|
|
677
|
+
const bridge = new MockBridge();
|
|
678
|
+
const base = await startTestServer(bridge);
|
|
679
|
+
// Add two annotations
|
|
680
|
+
await fetch(`${base}/api/symbols/foo/annotations`, {
|
|
681
|
+
method: "POST",
|
|
682
|
+
headers: { "Content-Type": "application/json" },
|
|
683
|
+
body: JSON.stringify({ text: "first" }),
|
|
684
|
+
});
|
|
685
|
+
await fetch(`${base}/api/symbols/foo/annotations`, {
|
|
686
|
+
method: "POST",
|
|
687
|
+
headers: { "Content-Type": "application/json" },
|
|
688
|
+
body: JSON.stringify({ text: "second" }),
|
|
689
|
+
});
|
|
690
|
+
// Remove first
|
|
691
|
+
const res = await fetch(`${base}/api/symbols/foo/annotations/0`, {
|
|
692
|
+
method: "DELETE",
|
|
693
|
+
});
|
|
694
|
+
assert.equal(res.status, 200);
|
|
695
|
+
const body = (await res.json());
|
|
696
|
+
assert.equal(body.annotations.length, 1);
|
|
697
|
+
assert.equal(body.annotations[0], "second");
|
|
698
|
+
});
|
|
699
|
+
test("DELETE /api/symbols/:name/annotations/:index returns 404 for invalid index", async () => {
|
|
700
|
+
const bridge = new MockBridge();
|
|
701
|
+
const base = await startTestServer(bridge);
|
|
702
|
+
const res = await fetch(`${base}/api/symbols/foo/annotations/99`, {
|
|
703
|
+
method: "DELETE",
|
|
704
|
+
});
|
|
705
|
+
assert.equal(res.status, 404);
|
|
706
|
+
});
|
|
707
|
+
test("DELETE /api/symbols/:name/annotations clears all annotations", async () => {
|
|
708
|
+
const bridge = new MockBridge();
|
|
709
|
+
const base = await startTestServer(bridge);
|
|
710
|
+
// Add annotations
|
|
711
|
+
await fetch(`${base}/api/symbols/foo/annotations`, {
|
|
712
|
+
method: "POST",
|
|
713
|
+
headers: { "Content-Type": "application/json" },
|
|
714
|
+
body: JSON.stringify({ text: "note" }),
|
|
715
|
+
});
|
|
716
|
+
// Clear all
|
|
717
|
+
const res = await fetch(`${base}/api/symbols/foo/annotations`, {
|
|
718
|
+
method: "DELETE",
|
|
719
|
+
});
|
|
720
|
+
assert.equal(res.status, 200);
|
|
721
|
+
const body = (await res.json());
|
|
722
|
+
assert.deepEqual(body.annotations, []);
|
|
723
|
+
});
|
|
724
|
+
test("GET /api/annotations returns all annotations after adding", async () => {
|
|
725
|
+
const bridge = new MockBridge();
|
|
726
|
+
const base = await startTestServer(bridge);
|
|
727
|
+
await fetch(`${base}/api/symbols/foo/annotations`, {
|
|
728
|
+
method: "POST",
|
|
729
|
+
headers: { "Content-Type": "application/json" },
|
|
730
|
+
body: JSON.stringify({ text: "foo note" }),
|
|
731
|
+
});
|
|
732
|
+
await fetch(`${base}/api/symbols/Bar/annotations`, {
|
|
733
|
+
method: "POST",
|
|
734
|
+
headers: { "Content-Type": "application/json" },
|
|
735
|
+
body: JSON.stringify({ text: "bar note" }),
|
|
736
|
+
});
|
|
737
|
+
const res = await fetch(`${base}/api/annotations`);
|
|
738
|
+
assert.equal(res.status, 200);
|
|
739
|
+
const body = (await res.json());
|
|
740
|
+
assert.ok(Object.keys(body.annotations).length >= 2);
|
|
741
|
+
});
|
|
742
|
+
test("GET /api/symbols/:name/explain returns SSE stream", async () => {
|
|
743
|
+
const bridge = new MockBridge();
|
|
744
|
+
const base = await startTestServer(bridge);
|
|
745
|
+
const res = await fetch(`${base}/api/symbols/foo/explain`);
|
|
746
|
+
assert.equal(res.status, 200);
|
|
747
|
+
assert.equal(res.headers.get("content-type"), "text/event-stream");
|
|
748
|
+
const text = await res.text();
|
|
749
|
+
assert.ok(text.includes("data: "));
|
|
750
|
+
assert.ok(text.includes("[DONE]"));
|
|
751
|
+
});
|
|
752
|
+
test("GET /api/symbols/:name/explain returns error for unknown symbol", async () => {
|
|
753
|
+
const bridge = new MockBridge();
|
|
754
|
+
const base = await startTestServer(bridge);
|
|
755
|
+
const res = await fetch(`${base}/api/symbols/nonexistent/explain`);
|
|
756
|
+
assert.equal(res.status, 200); // SSE always starts 200
|
|
757
|
+
const text = await res.text();
|
|
758
|
+
assert.ok(text.includes("error"));
|
|
759
|
+
});
|
|
@@ -37,6 +37,8 @@ export declare class CodingAgent {
|
|
|
37
37
|
private readonly verbose;
|
|
38
38
|
private readonly onProgress;
|
|
39
39
|
private readonly onUiUpdate;
|
|
40
|
+
private readonly onVerbose;
|
|
41
|
+
private readonly getSystemPromptSuffix;
|
|
40
42
|
/**
|
|
41
43
|
* Tracks symbol names the user/agent has been working with.
|
|
42
44
|
* Persists across turns so the code map stays focused on the
|
|
@@ -59,7 +61,10 @@ export declare class CodingAgent {
|
|
|
59
61
|
verbose?: boolean;
|
|
60
62
|
onProgress?: (message: string) => void;
|
|
61
63
|
onUiUpdate?: (event: UiUpdate) => void;
|
|
64
|
+
onVerbose?: (message: string) => void;
|
|
65
|
+
getSystemPromptSuffix?: () => string | undefined;
|
|
62
66
|
});
|
|
67
|
+
private verboseLog;
|
|
63
68
|
getSession(): Session;
|
|
64
69
|
/**
|
|
65
70
|
* Manually compact the conversation context.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agent/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAY,MAAM,YAAY,CAAC;AAiGrE,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AACrE,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAClF,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,QAAQ,GAChB,gBAAgB,GAChB,sBAAsB,GACtB,YAAY,GACZ,qBAAqB,GACrB,mBAAmB,CAAC;AA+BxB,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0E;IACrG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agent/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,6 +107,8 @@ export class CodingAgent {
|
|
|
107
107
|
verbose;
|
|
108
108
|
onProgress;
|
|
109
109
|
onUiUpdate;
|
|
110
|
+
onVerbose;
|
|
111
|
+
getSystemPromptSuffix;
|
|
110
112
|
/**
|
|
111
113
|
* Tracks symbol names the user/agent has been working with.
|
|
112
114
|
* Persists across turns so the code map stays focused on the
|
|
@@ -129,6 +131,17 @@ export class CodingAgent {
|
|
|
129
131
|
this.verbose = params.verbose ?? false;
|
|
130
132
|
this.onProgress = params.onProgress;
|
|
131
133
|
this.onUiUpdate = params.onUiUpdate;
|
|
134
|
+
this.onVerbose = params.onVerbose;
|
|
135
|
+
this.getSystemPromptSuffix = params.getSystemPromptSuffix;
|
|
136
|
+
}
|
|
137
|
+
verboseLog(...args) {
|
|
138
|
+
const msg = args.map((a) => typeof a === "string" ? a : JSON.stringify(a, null, 2)).join(" ");
|
|
139
|
+
if (this.onVerbose) {
|
|
140
|
+
this.onVerbose(msg);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
console.error(msg);
|
|
144
|
+
}
|
|
132
145
|
}
|
|
133
146
|
getSession() {
|
|
134
147
|
return this.session;
|
|
@@ -232,15 +245,17 @@ export class CodingAgent {
|
|
|
232
245
|
// Rebuild system prompt each step with the latest focus set,
|
|
233
246
|
// so the code map dynamically adapts as the agent explores symbols.
|
|
234
247
|
const codeMapResult = this.getCodeMap?.(this.getFocusSet());
|
|
235
|
-
const
|
|
248
|
+
const basePrompt = buildSystemPrompt(this.config, toolSchemas, codeMapResult);
|
|
249
|
+
const suffix = this.getSystemPromptSuffix?.();
|
|
250
|
+
const systemPrompt = suffix ? basePrompt + "\n\n" + suffix : basePrompt;
|
|
236
251
|
const messages = this.session.getMessages();
|
|
237
252
|
if (this.verbose) {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
253
|
+
this.verboseLog(`\n${VERBOSE_SEP}`);
|
|
254
|
+
this.verboseLog(`[verbose] Request (step ${step})`);
|
|
255
|
+
this.verboseLog(VERBOSE_SEP);
|
|
256
|
+
this.verboseLog("\n[System Prompt]\n", systemPrompt);
|
|
257
|
+
this.verboseLog("\n[Messages]\n", JSON.stringify(messages, null, 2));
|
|
258
|
+
this.verboseLog(VERBOSE_SEP);
|
|
244
259
|
}
|
|
245
260
|
const response = await this.modelClient.chat({
|
|
246
261
|
model: this.config.model,
|
|
@@ -260,16 +275,16 @@ export class CodingAgent {
|
|
|
260
275
|
totalInputTokens += response.usage.inputTokens;
|
|
261
276
|
totalOutputTokens += response.usage.outputTokens;
|
|
262
277
|
if (this.verbose) {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
278
|
+
this.verboseLog(`\n${VERBOSE_SEP}`);
|
|
279
|
+
this.verboseLog("[verbose] Response");
|
|
280
|
+
this.verboseLog(VERBOSE_SEP);
|
|
281
|
+
this.verboseLog("Text:", response.text);
|
|
282
|
+
this.verboseLog("Tool calls:", response.toolCalls.length);
|
|
268
283
|
if (response.toolCalls.length > 0) {
|
|
269
|
-
|
|
284
|
+
this.verboseLog("Tools:", response.toolCalls.map((t) => `${t.name}(${JSON.stringify(t.input)})`).join(", "));
|
|
270
285
|
}
|
|
271
|
-
|
|
272
|
-
|
|
286
|
+
this.verboseLog("Usage:", response.usage);
|
|
287
|
+
this.verboseLog(VERBOSE_SEP);
|
|
273
288
|
}
|
|
274
289
|
if (response.toolCalls.length === 0) {
|
|
275
290
|
const finalText = response.text.length > 0
|
|
@@ -345,9 +360,9 @@ export class CodingAgent {
|
|
|
345
360
|
});
|
|
346
361
|
}
|
|
347
362
|
if (this.verbose) {
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
363
|
+
this.verboseLog(`\n${VERBOSE_SEP}`);
|
|
364
|
+
this.verboseLog(`[verbose] Tool: ${toolCall.name}`);
|
|
365
|
+
this.verboseLog("Arguments:", JSON.stringify(toolCall.input, null, 2));
|
|
351
366
|
}
|
|
352
367
|
let toolResult;
|
|
353
368
|
const toolStartMs = Date.now();
|
|
@@ -388,8 +403,8 @@ export class CodingAgent {
|
|
|
388
403
|
});
|
|
389
404
|
}
|
|
390
405
|
if (this.verbose) {
|
|
391
|
-
|
|
392
|
-
|
|
406
|
+
this.verboseLog("Output:", toolResult);
|
|
407
|
+
this.verboseLog(VERBOSE_SEP);
|
|
393
408
|
}
|
|
394
409
|
this.session.addMessage({
|
|
395
410
|
role: "tool",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/agent/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/agent/agent.ts"],"names":[],"mappings":"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"}
|