@multiplayer-app/agent 0.1.9 → 0.1.11
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/README.md +106 -0
- package/dist/agent/definition.d.ts +22 -0
- package/dist/agent/definition.d.ts.map +1 -0
- package/dist/agent/definition.js +3 -0
- package/dist/agent/definition.js.map +1 -0
- package/dist/agent/definition.test.d.ts +2 -0
- package/dist/agent/definition.test.d.ts.map +1 -0
- package/dist/agent/definition.test.js +40 -0
- package/dist/agent/definition.test.js.map +1 -0
- package/dist/agent/model-failure.d.ts +10 -0
- package/dist/agent/model-failure.d.ts.map +1 -0
- package/dist/agent/model-failure.js +50 -0
- package/dist/agent/model-failure.js.map +1 -0
- package/dist/agent/profiles/coding.d.ts +4 -0
- package/dist/agent/profiles/coding.d.ts.map +1 -0
- package/dist/agent/profiles/coding.js +17 -0
- package/dist/agent/profiles/coding.js.map +1 -0
- package/dist/agent/profiles/index.d.ts +4 -0
- package/dist/agent/profiles/index.d.ts.map +1 -0
- package/dist/agent/profiles/index.js +9 -0
- package/dist/agent/profiles/index.js.map +1 -0
- package/dist/agent/profiles/research.d.ts +4 -0
- package/dist/agent/profiles/research.d.ts.map +1 -0
- package/dist/agent/profiles/research.js +53 -0
- package/dist/agent/profiles/research.js.map +1 -0
- package/dist/agent/progress-reminder.test.d.ts +2 -0
- package/dist/agent/progress-reminder.test.d.ts.map +1 -0
- package/dist/agent/progress-reminder.test.js +20 -0
- package/dist/agent/progress-reminder.test.js.map +1 -0
- package/dist/agent/turn-runner.d.ts +54 -0
- package/dist/agent/turn-runner.d.ts.map +1 -0
- package/dist/agent/turn-runner.js +147 -0
- package/dist/agent/turn-runner.js.map +1 -0
- package/dist/agent/turn-runner.test.d.ts +2 -0
- package/dist/agent/turn-runner.test.d.ts.map +1 -0
- package/dist/agent/turn-runner.test.js +181 -0
- package/dist/agent/turn-runner.test.js.map +1 -0
- package/dist/context-pruning.d.ts +13 -0
- package/dist/context-pruning.d.ts.map +1 -0
- package/dist/context-pruning.js +61 -0
- package/dist/context-pruning.js.map +1 -0
- package/dist/context-pruning.test.d.ts +2 -0
- package/dist/context-pruning.test.d.ts.map +1 -0
- package/dist/context-pruning.test.js +48 -0
- package/dist/context-pruning.test.js.map +1 -0
- package/dist/index.d.ts +11 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -10
- package/dist/index.js.map +1 -1
- package/dist/models/attribution.d.ts.map +1 -0
- package/dist/models/attribution.js.map +1 -0
- package/dist/{model.d.ts → models/resolve-model.d.ts} +2 -2
- package/dist/models/resolve-model.d.ts.map +1 -0
- package/dist/{model.js → models/resolve-model.js} +4 -2
- package/dist/models/resolve-model.js.map +1 -0
- package/dist/models/usage.d.ts +11 -0
- package/dist/models/usage.d.ts.map +1 -0
- package/dist/models/usage.js +19 -0
- package/dist/models/usage.js.map +1 -0
- package/dist/{git-sync.d.ts → persistence/git-sync.d.ts} +1 -1
- package/dist/persistence/git-sync.d.ts.map +1 -0
- package/dist/persistence/git-sync.js.map +1 -0
- package/dist/persistence/git-sync.test.d.ts.map +1 -0
- package/dist/{git-sync.test.js → persistence/git-sync.test.js} +2 -2
- package/dist/persistence/git-sync.test.js.map +1 -0
- package/dist/{session-storage-sync.d.ts → persistence/snapshot-sync.d.ts} +2 -2
- package/dist/persistence/snapshot-sync.d.ts.map +1 -0
- package/dist/{session-storage-sync.js → persistence/snapshot-sync.js} +1 -1
- package/dist/persistence/snapshot-sync.js.map +1 -0
- package/dist/persistence/snapshot-sync.test.d.ts +2 -0
- package/dist/persistence/snapshot-sync.test.d.ts.map +1 -0
- package/dist/{session-storage-sync.test.js → persistence/snapshot-sync.test.js} +3 -3
- package/dist/persistence/snapshot-sync.test.js.map +1 -0
- package/dist/persistence/workspace.d.ts +17 -0
- package/dist/persistence/workspace.d.ts.map +1 -0
- package/dist/persistence/workspace.js +26 -0
- package/dist/persistence/workspace.js.map +1 -0
- package/dist/persistence/workspace.test.d.ts +2 -0
- package/dist/persistence/workspace.test.d.ts.map +1 -0
- package/dist/persistence/workspace.test.js +38 -0
- package/dist/persistence/workspace.test.js.map +1 -0
- package/dist/research/extract-texts.d.ts +41 -0
- package/dist/research/extract-texts.d.ts.map +1 -0
- package/dist/research/extract-texts.js +239 -0
- package/dist/research/extract-texts.js.map +1 -0
- package/dist/research/extract-texts.test.d.ts +2 -0
- package/dist/research/extract-texts.test.d.ts.map +1 -0
- package/dist/research/extract-texts.test.js +120 -0
- package/dist/research/extract-texts.test.js.map +1 -0
- package/dist/research/extraction-tool.d.ts +6 -0
- package/dist/research/extraction-tool.d.ts.map +1 -0
- package/dist/research/extraction-tool.js +41 -0
- package/dist/research/extraction-tool.js.map +1 -0
- package/dist/research/extraction-tool.test.d.ts +2 -0
- package/dist/research/extraction-tool.test.d.ts.map +1 -0
- package/dist/research/extraction-tool.test.js +102 -0
- package/dist/research/extraction-tool.test.js.map +1 -0
- package/dist/research/filingramp/attachment-tools.d.ts +4 -0
- package/dist/research/filingramp/attachment-tools.d.ts.map +1 -0
- package/dist/research/filingramp/attachment-tools.js +198 -0
- package/dist/research/filingramp/attachment-tools.js.map +1 -0
- package/dist/research/filingramp/document-search-tool.d.ts +4 -0
- package/dist/research/filingramp/document-search-tool.d.ts.map +1 -0
- package/dist/research/filingramp/document-search-tool.js +231 -0
- package/dist/research/filingramp/document-search-tool.js.map +1 -0
- package/dist/research/filingramp/filing-detail-tool.d.ts +8 -0
- package/dist/research/filingramp/filing-detail-tool.d.ts.map +1 -0
- package/dist/research/filingramp/filing-detail-tool.js +161 -0
- package/dist/research/filingramp/filing-detail-tool.js.map +1 -0
- package/dist/research/filingramp/filing-search-tools.d.ts +4 -0
- package/dist/research/filingramp/filing-search-tools.d.ts.map +1 -0
- package/dist/research/filingramp/filing-search-tools.js +207 -0
- package/dist/research/filingramp/filing-search-tools.js.map +1 -0
- package/dist/research/filingramp/shared.d.ts +64 -0
- package/dist/research/filingramp/shared.d.ts.map +1 -0
- package/dist/research/filingramp/shared.js +130 -0
- package/dist/research/filingramp/shared.js.map +1 -0
- package/dist/research/filingramp-client.d.ts +1 -1
- package/dist/research/filingramp-client.d.ts.map +1 -1
- package/dist/research/filingramp-contract.d.ts.map +1 -1
- package/dist/research/filingramp-contract.js +8 -2
- package/dist/research/filingramp-contract.js.map +1 -1
- package/dist/research/filingramp-tools.d.ts +4 -8
- package/dist/research/filingramp-tools.d.ts.map +1 -1
- package/dist/research/filingramp-tools.js +19 -597
- package/dist/research/filingramp-tools.js.map +1 -1
- package/dist/research/filingramp-tools.test.js +138 -2
- package/dist/research/filingramp-tools.test.js.map +1 -1
- package/dist/research/prompt.d.ts +1 -1
- package/dist/research/prompt.d.ts.map +1 -1
- package/dist/research/prompt.js +16 -7
- package/dist/research/prompt.js.map +1 -1
- package/dist/research/scope.d.ts +1 -1
- package/dist/research/scope.d.ts.map +1 -1
- package/dist/runtime/cli.d.ts.map +1 -0
- package/dist/{cli.js → runtime/cli.js} +3 -3
- package/dist/runtime/cli.js.map +1 -0
- package/dist/{config.d.ts → runtime/config.d.ts} +1 -1
- package/dist/runtime/config.d.ts.map +1 -0
- package/dist/{config.js → runtime/config.js} +1 -1
- package/dist/runtime/config.js.map +1 -0
- package/dist/{runtime.d.ts → runtime/index.d.ts} +2 -2
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/{runtime.js → runtime/index.js} +7 -7
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/lambda-microvm.d.ts +3 -0
- package/dist/runtime/lambda-microvm.d.ts.map +1 -0
- package/dist/{lambda-microvm-entrypoint.js → runtime/lambda-microvm.js} +4 -4
- package/dist/runtime/lambda-microvm.js.map +1 -0
- package/dist/runtime/lifecycle.test.d.ts.map +1 -0
- package/dist/{lifecycle.test.js → runtime/lifecycle.test.js} +5 -5
- package/dist/runtime/lifecycle.test.js.map +1 -0
- package/dist/session/checkpoint-timer.test.d.ts.map +1 -0
- package/dist/{checkpoint-timer.test.js → session/checkpoint-timer.test.js} +8 -8
- package/dist/session/checkpoint-timer.test.js.map +1 -0
- package/dist/session/conversation.d.ts +15 -0
- package/dist/session/conversation.d.ts.map +1 -0
- package/dist/session/conversation.js +61 -0
- package/dist/session/conversation.js.map +1 -0
- package/dist/session/conversation.test.d.ts +2 -0
- package/dist/session/conversation.test.d.ts.map +1 -0
- package/dist/session/conversation.test.js +53 -0
- package/dist/session/conversation.test.js.map +1 -0
- package/dist/session/idle-checkpoint.test.d.ts.map +1 -0
- package/dist/{idle-checkpoint.test.js → session/idle-checkpoint.test.js} +8 -4
- package/dist/session/idle-checkpoint.test.js.map +1 -0
- package/dist/session/index.d.ts +7 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +16 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/runtime.d.ts +58 -0
- package/dist/session/runtime.d.ts.map +1 -0
- package/dist/session/runtime.js +292 -0
- package/dist/session/runtime.js.map +1 -0
- package/dist/session/runtime.test.d.ts +2 -0
- package/dist/session/runtime.test.d.ts.map +1 -0
- package/dist/session/runtime.test.js +201 -0
- package/dist/session/runtime.test.js.map +1 -0
- package/dist/session/tool-context.d.ts +12 -0
- package/dist/session/tool-context.d.ts.map +1 -0
- package/dist/session/tool-context.js +3 -0
- package/dist/session/tool-context.js.map +1 -0
- package/dist/session/tools.d.ts +6 -0
- package/dist/session/tools.d.ts.map +1 -0
- package/dist/session/tools.js +97 -0
- package/dist/session/tools.js.map +1 -0
- package/dist/session/tools.test.d.ts +2 -0
- package/dist/session/tools.test.d.ts.map +1 -0
- package/dist/session/tools.test.js +55 -0
- package/dist/session/tools.test.js.map +1 -0
- package/dist/task/loop.d.ts +6 -0
- package/dist/task/loop.d.ts.map +1 -0
- package/dist/{loop.js → task/loop.js} +6 -6
- package/dist/task/loop.js.map +1 -0
- package/dist/tool-call-repair.d.ts +11 -0
- package/dist/tool-call-repair.d.ts.map +1 -0
- package/dist/tool-call-repair.js +91 -0
- package/dist/tool-call-repair.js.map +1 -0
- package/dist/tool-call-repair.test.d.ts +2 -0
- package/dist/tool-call-repair.test.d.ts.map +1 -0
- package/dist/tool-call-repair.test.js +50 -0
- package/dist/tool-call-repair.test.js.map +1 -0
- package/dist/tools/exec-tools.d.ts +1 -0
- package/dist/tools/exec-tools.d.ts.map +1 -1
- package/dist/tools/exec-tools.js +23 -3
- package/dist/tools/exec-tools.js.map +1 -1
- package/dist/transport/link.d.ts.map +1 -0
- package/dist/transport/link.js.map +1 -0
- package/dist/{protocol.d.ts → transport/protocol.d.ts} +4 -0
- package/dist/transport/protocol.d.ts.map +1 -0
- package/dist/transport/protocol.js.map +1 -0
- package/dist/transport/protocol.test.d.ts.map +1 -0
- package/dist/transport/protocol.test.js.map +1 -0
- package/dist/{report.d.ts → transport/reporter.d.ts} +1 -1
- package/dist/transport/reporter.d.ts.map +1 -0
- package/dist/{report.js → transport/reporter.js} +1 -1
- package/dist/transport/reporter.js.map +1 -0
- package/package.json +11 -11
- package/dist/attribution.d.ts.map +0 -1
- package/dist/attribution.js.map +0 -1
- package/dist/checkpoint-timer.test.d.ts.map +0 -1
- package/dist/checkpoint-timer.test.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/git-sync.d.ts.map +0 -1
- package/dist/git-sync.js.map +0 -1
- package/dist/git-sync.test.d.ts.map +0 -1
- package/dist/git-sync.test.js.map +0 -1
- package/dist/idle-checkpoint.test.d.ts.map +0 -1
- package/dist/idle-checkpoint.test.js.map +0 -1
- package/dist/lambda-microvm-entrypoint.d.ts +0 -3
- package/dist/lambda-microvm-entrypoint.d.ts.map +0 -1
- package/dist/lambda-microvm-entrypoint.js.map +0 -1
- package/dist/lifecycle.test.d.ts.map +0 -1
- package/dist/lifecycle.test.js.map +0 -1
- package/dist/link.d.ts.map +0 -1
- package/dist/link.js.map +0 -1
- package/dist/loop.d.ts +0 -6
- package/dist/loop.d.ts.map +0 -1
- package/dist/loop.js.map +0 -1
- package/dist/model.d.ts.map +0 -1
- package/dist/model.js.map +0 -1
- package/dist/protocol.d.ts.map +0 -1
- package/dist/protocol.js.map +0 -1
- package/dist/protocol.test.d.ts.map +0 -1
- package/dist/protocol.test.js.map +0 -1
- package/dist/report.d.ts.map +0 -1
- package/dist/report.js.map +0 -1
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js.map +0 -1
- package/dist/session-storage-sync.d.ts.map +0 -1
- package/dist/session-storage-sync.js.map +0 -1
- package/dist/session-storage-sync.test.d.ts +0 -2
- package/dist/session-storage-sync.test.d.ts.map +0 -1
- package/dist/session-storage-sync.test.js.map +0 -1
- package/dist/session.d.ts +0 -46
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -512
- package/dist/session.js.map +0 -1
- /package/dist/{attribution.d.ts → models/attribution.d.ts} +0 -0
- /package/dist/{attribution.js → models/attribution.js} +0 -0
- /package/dist/{git-sync.js → persistence/git-sync.js} +0 -0
- /package/dist/{git-sync.test.d.ts → persistence/git-sync.test.d.ts} +0 -0
- /package/dist/{cli.d.ts → runtime/cli.d.ts} +0 -0
- /package/dist/{lifecycle.test.d.ts → runtime/lifecycle.test.d.ts} +0 -0
- /package/dist/{checkpoint-timer.test.d.ts → session/checkpoint-timer.test.d.ts} +0 -0
- /package/dist/{idle-checkpoint.test.d.ts → session/idle-checkpoint.test.d.ts} +0 -0
- /package/dist/{link.d.ts → transport/link.d.ts} +0 -0
- /package/dist/{link.js → transport/link.js} +0 -0
- /package/dist/{protocol.js → transport/protocol.js} +0 -0
- /package/dist/{protocol.test.d.ts → transport/protocol.test.d.ts} +0 -0
- /package/dist/{protocol.test.js → transport/protocol.test.js} +0 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createSessionTools = createSessionTools;
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const ai_1 = require("ai");
|
|
10
|
+
const zod_1 = require("zod");
|
|
11
|
+
const mcp_tools_1 = require("../mcp/mcp-tools");
|
|
12
|
+
const exec_tools_1 = require("../tools/exec-tools");
|
|
13
|
+
const fs_tools_1 = require("../tools/fs-tools");
|
|
14
|
+
const MAX_PUBLISHED_FILE_BYTES = 512 * 1024;
|
|
15
|
+
/** Common tools for both profiles. Callbacks are bound to the turn that owns these tools. */
|
|
16
|
+
function createSessionTools(context, mcpConnections) {
|
|
17
|
+
const { workspaceDir } = context;
|
|
18
|
+
return {
|
|
19
|
+
...(0, fs_tools_1.createFsTools)(workspaceDir),
|
|
20
|
+
...(0, exec_tools_1.createExecTools)(workspaceDir),
|
|
21
|
+
...(0, mcp_tools_1.createMcpTools)(mcpConnections),
|
|
22
|
+
report_progress: (0, ai_1.tool)({
|
|
23
|
+
description: 'Show the user a checklist of the phases of the current work and their status. Call it when a phase starts or finishes.',
|
|
24
|
+
inputSchema: zod_1.z.object({
|
|
25
|
+
steps: zod_1.z
|
|
26
|
+
.array(zod_1.z.object({
|
|
27
|
+
key: zod_1.z.string().min(1).max(60),
|
|
28
|
+
label: zod_1.z.string().min(1).max(120),
|
|
29
|
+
status: zod_1.z.enum(['pending', 'active', 'done', 'failed']),
|
|
30
|
+
detail: zod_1.z.string().max(200).optional(),
|
|
31
|
+
}))
|
|
32
|
+
.min(1)
|
|
33
|
+
.max(20),
|
|
34
|
+
}),
|
|
35
|
+
execute: async ({ steps }, { toolCallId }) => {
|
|
36
|
+
context.reportProgress(steps, toolCallId);
|
|
37
|
+
return { ok: true };
|
|
38
|
+
},
|
|
39
|
+
}),
|
|
40
|
+
// Same name and input contract as the platform's own clarification tool, so the chat renders
|
|
41
|
+
// the question with its standard answer form and routes the answer back through approvals.
|
|
42
|
+
request_clarification: (0, ai_1.tool)({
|
|
43
|
+
description: 'Pause and ask the user one question you cannot answer yourself: confirm a large population, correct the scope, choose between readings, approve a codebook or more spending. Give 2–6 explicit options; set allowFreeText when they may not cover the answer. The turn ends after this call; the answer arrives as the next user message.',
|
|
44
|
+
inputSchema: zod_1.z.object({
|
|
45
|
+
question: zod_1.z.string().min(5).max(8000).describe('Clear, concise question with the context the user needs to decide; markdown allowed'),
|
|
46
|
+
selectionMode: zod_1.z.enum(['single', 'multiple']).describe('Whether the user picks one option or several'),
|
|
47
|
+
options: zod_1.z
|
|
48
|
+
.array(zod_1.z.object({
|
|
49
|
+
id: zod_1.z.string().min(1).max(60).describe('Stable option identifier'),
|
|
50
|
+
label: zod_1.z.string().min(1).max(300).describe('User-visible option label'),
|
|
51
|
+
description: zod_1.z.string().max(500).optional().describe('Optional explanation'),
|
|
52
|
+
}))
|
|
53
|
+
.min(2)
|
|
54
|
+
.max(6),
|
|
55
|
+
allowFreeText: zod_1.z.boolean().default(false).describe('Whether the user may answer in their own words instead'),
|
|
56
|
+
}),
|
|
57
|
+
execute: async ({ question }, { toolCallId }) => {
|
|
58
|
+
context.requestClarification(question, toolCallId);
|
|
59
|
+
return { asked: true };
|
|
60
|
+
},
|
|
61
|
+
}),
|
|
62
|
+
publish_results: (0, ai_1.tool)({
|
|
63
|
+
description: 'Store text files from the workspace as session artifacts the user sees in the session (findings.md, results.csv, evidence.json, notes). Call it whenever a deliverable changes. Max 512 KB per file.',
|
|
64
|
+
inputSchema: zod_1.z.object({ paths: zod_1.z.array(zod_1.z.string().min(1).max(500)).min(1).max(20) }),
|
|
65
|
+
execute: async ({ paths }) => {
|
|
66
|
+
const files = [];
|
|
67
|
+
const skipped = [];
|
|
68
|
+
for (const relative of paths) {
|
|
69
|
+
const target = node_path_1.default.resolve(workspaceDir, relative);
|
|
70
|
+
if (!target.startsWith(node_path_1.default.resolve(workspaceDir) + node_path_1.default.sep)) {
|
|
71
|
+
skipped.push({ path: relative, reason: 'outside the workspace' });
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const buffer = await node_fs_1.promises.readFile(target);
|
|
76
|
+
if (buffer.byteLength > MAX_PUBLISHED_FILE_BYTES) {
|
|
77
|
+
skipped.push({ path: relative, reason: `larger than ${MAX_PUBLISHED_FILE_BYTES} bytes` });
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (buffer.includes(0)) {
|
|
81
|
+
skipped.push({ path: relative, reason: 'binary file' });
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
files.push({ path: relative.replace(/^\/+/, ''), content: buffer.toString('utf8') });
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
skipped.push({ path: relative, reason: error.message });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (files.length)
|
|
91
|
+
context.publishFiles(files);
|
|
92
|
+
return { published: files.map((file) => file.path), skipped };
|
|
93
|
+
},
|
|
94
|
+
}),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/session/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.test.d.ts","sourceRoot":"","sources":["../../src/session/tools.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const node_test_1 = require("node:test");
|
|
11
|
+
const tools_1 = require("./tools");
|
|
12
|
+
function fixture(workspaceDir, messageId = 'turn') {
|
|
13
|
+
const events = [];
|
|
14
|
+
const context = {
|
|
15
|
+
workspaceDir,
|
|
16
|
+
abortSignal: new AbortController().signal,
|
|
17
|
+
recordUsage() { },
|
|
18
|
+
reportProgress: (steps, toolCallId) => events.push({ type: 'progress', messageId, toolCallId, steps }),
|
|
19
|
+
requestClarification: (question, toolCallId) => events.push({ type: 'question', messageId, toolCallId, question }),
|
|
20
|
+
publishFiles: (files) => events.push({ type: 'files', messageId, files }),
|
|
21
|
+
};
|
|
22
|
+
return { context, events };
|
|
23
|
+
}
|
|
24
|
+
(0, node_test_1.it)('reports progress and clarification through the supplied turn context', async () => {
|
|
25
|
+
const { context, events } = fixture('/unused');
|
|
26
|
+
const tools = (0, tools_1.createSessionTools)(context, []);
|
|
27
|
+
const steps = [{ key: 'research', label: 'Research', status: 'active' }];
|
|
28
|
+
await tools.report_progress.execute({ steps }, { toolCallId: 'progress', messages: [] });
|
|
29
|
+
await tools.request_clarification.execute({ question: 'Which state?' }, { toolCallId: 'question', messages: [] });
|
|
30
|
+
strict_1.default.deepEqual(events, [
|
|
31
|
+
{ type: 'progress', messageId: 'turn', toolCallId: 'progress', steps },
|
|
32
|
+
{ type: 'question', messageId: 'turn', toolCallId: 'question', question: 'Which state?' },
|
|
33
|
+
]);
|
|
34
|
+
});
|
|
35
|
+
(0, node_test_1.it)('publishes text artifacts and reports rejected paths without losing valid files', async (t) => {
|
|
36
|
+
const dir = await node_fs_1.promises.mkdtemp(node_path_1.default.join(node_os_1.default.tmpdir(), 'agent-publish-'));
|
|
37
|
+
t.after(() => node_fs_1.promises.rm(dir, { recursive: true, force: true }));
|
|
38
|
+
const { context, events } = fixture(dir);
|
|
39
|
+
await node_fs_1.promises.writeFile(node_path_1.default.join(dir, 'findings.md'), '# Findings');
|
|
40
|
+
await node_fs_1.promises.writeFile(node_path_1.default.join(dir, 'binary'), Buffer.from([1, 0, 2]));
|
|
41
|
+
await node_fs_1.promises.writeFile(node_path_1.default.join(dir, 'large'), 'x'.repeat(512 * 1024 + 1));
|
|
42
|
+
const result = await (0, tools_1.createSessionTools)(context, []).publish_results.execute({
|
|
43
|
+
paths: ['findings.md', '../outside', 'binary', 'large'],
|
|
44
|
+
}, { toolCallId: 'publish', messages: [] });
|
|
45
|
+
strict_1.default.deepEqual(result, {
|
|
46
|
+
published: ['findings.md'],
|
|
47
|
+
skipped: [
|
|
48
|
+
{ path: '../outside', reason: 'outside the workspace' },
|
|
49
|
+
{ path: 'binary', reason: 'binary file' },
|
|
50
|
+
{ path: 'large', reason: 'larger than 524288 bytes' },
|
|
51
|
+
],
|
|
52
|
+
});
|
|
53
|
+
strict_1.default.deepEqual(events, [{ type: 'files', messageId: 'turn', files: [{ path: 'findings.md', content: '# Findings' }] }]);
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=tools.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.test.js","sourceRoot":"","sources":["../../src/session/tools.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AgentRuntimeConfig } from '../runtime/config';
|
|
2
|
+
import type { Reporter } from '../transport/reporter';
|
|
3
|
+
export declare function runAgentLoop(config: AgentRuntimeConfig, reporter: Reporter): Promise<{
|
|
4
|
+
summary: string;
|
|
5
|
+
}>;
|
|
6
|
+
//# sourceMappingURL=loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/task/loop.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAG3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAsBrD,wBAAsB,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAyC/G"}
|
|
@@ -6,11 +6,11 @@ exports.runAgentLoop = runAgentLoop;
|
|
|
6
6
|
// primitives ai-agent-node uses underneath its ChatProcessor), not a port of ChatProcessor:
|
|
7
7
|
// that class needs MongoDB repositories and Socket.IO broadcast, none of which exist in a guest.
|
|
8
8
|
const ai_1 = require("ai");
|
|
9
|
-
const attribution_1 = require("
|
|
10
|
-
const mcp_tools_1 = require("
|
|
11
|
-
const
|
|
12
|
-
const exec_tools_1 = require("
|
|
13
|
-
const fs_tools_1 = require("
|
|
9
|
+
const attribution_1 = require("../models/attribution");
|
|
10
|
+
const mcp_tools_1 = require("../mcp/mcp-tools");
|
|
11
|
+
const resolve_model_1 = require("../models/resolve-model");
|
|
12
|
+
const exec_tools_1 = require("../tools/exec-tools");
|
|
13
|
+
const fs_tools_1 = require("../tools/fs-tools");
|
|
14
14
|
const MAX_STEPS = 40;
|
|
15
15
|
const SYSTEM_PROMPT = `You are a coding agent running inside an isolated session workspace VM. You have direct
|
|
16
16
|
tools to read/write files and run shell commands in the workspace, plus (if any MCP servers are
|
|
@@ -36,7 +36,7 @@ async function runAgentLoop(config, reporter) {
|
|
|
36
36
|
};
|
|
37
37
|
try {
|
|
38
38
|
const result = await (0, ai_1.generateText)({
|
|
39
|
-
model: (0,
|
|
39
|
+
model: (0, resolve_model_1.resolveLanguageModel)(config.provider, config.model, attribution_1.OPENROUTER_APPS.CODING_AGENT),
|
|
40
40
|
system: SYSTEM_PROMPT,
|
|
41
41
|
prompt: config.task,
|
|
42
42
|
tools,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/task/loop.ts"],"names":[],"mappings":";;AA+BA,oCAyCC;AAxED,2FAA2F;AAC3F,4FAA4F;AAC5F,4FAA4F;AAC5F,iGAAiG;AACjG,2BAAyD;AACzD,uDAAuD;AAEvD,gDAAiD;AACjD,2DAA8D;AAE9D,oDAAqD;AACrD,gDAAiD;AAEjD,MAAM,SAAS,GAAG,EAAE,CAAA;AAEpB,MAAM,aAAa,GAAG;;;;;;;;;;wEAUkD,CAAA;AAExE,SAAS,MAAM;IACb,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;AACjC,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,MAA0B,EAAE,QAAkB;IAC/E,IAAI,CAAC,MAAM,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxE,MAAM,KAAK,GAAyB;QAClC,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,YAAY,CAAC;QACrC,GAAG,IAAA,4BAAe,EAAC,MAAM,CAAC,YAAY,CAAC;QACvC,GAAG,IAAA,0BAAc,EAAC,MAAM,CAAC,cAAc,CAAC;KACzC,CAAA;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAY,EAAC;YAChC,KAAK,EAAE,IAAA,oCAAoB,EAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,6BAAe,CAAC,YAAY,CAAC;YACxF,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,KAAK;YACL,QAAQ,EAAE,IAAA,gBAAW,EAAC,SAAS,CAAC;YAChC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;oBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;oBAClC,MAAM,QAAQ,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,WAAW;wBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM;wBACtB,SAAS,EAAE,MAAM,EAAE;qBACpB,CAAC,CAAA;gBACJ,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;gBAC7G,CAAC;YACH,CAAC;SACF,CAAC,CAAA;QAEF,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;QAC7G,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;QACjG,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type JSONSchema7, type ToolCallRepairFunction, type ToolSet } from 'ai';
|
|
2
|
+
/** Shown in the chat for a command whose description the model left out (exec-tools.ts). */
|
|
3
|
+
export declare const DEFAULT_DESCRIPTION = "Analyzing the downloaded data";
|
|
4
|
+
/**
|
|
5
|
+
* The input with stringified top-level values turned into the types the schema expects, and a
|
|
6
|
+
* required `description` (a label for the chat, never part of the work) filled in when missing;
|
|
7
|
+
* undefined when nothing changed.
|
|
8
|
+
*/
|
|
9
|
+
export declare function coerceToolInput(input: Record<string, unknown>, schema: JSONSchema7): Record<string, unknown> | undefined;
|
|
10
|
+
export declare const repairStringifiedToolInput: ToolCallRepairFunction<ToolSet>;
|
|
11
|
+
//# sourceMappingURL=tool-call-repair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call-repair.d.ts","sourceRoot":"","sources":["../src/tool-call-repair.ts"],"names":[],"mappings":"AAKA,OAAO,EAAyB,KAAK,WAAW,EAAE,KAAK,sBAAsB,EAAE,KAAK,OAAO,EAAE,MAAM,IAAI,CAAA;AAwCvG,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,kCAAkC,CAAA;AAElE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAcxH;AAED,eAAO,MAAM,0BAA0B,EAAE,sBAAsB,CAAC,OAAO,CAMtE,CAAA"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.repairStringifiedToolInput = exports.DEFAULT_DESCRIPTION = void 0;
|
|
4
|
+
exports.coerceToolInput = coerceToolInput;
|
|
5
|
+
// Repairs tool calls whose arguments are the right values in the wrong JSON type. Models
|
|
6
|
+
// sometimes send a nested argument as JSON text — fields: "[\"a\", \"b\"]" instead of
|
|
7
|
+
// ["a", "b"], allowed: "{…}", concurrency: "4" — and the whole call then fails validation and
|
|
8
|
+
// costs a step. Only top-level properties are touched, and only towards the type the tool's
|
|
9
|
+
// schema declares; anything else is left for the model to fix from the validation error.
|
|
10
|
+
const ai_1 = require("ai");
|
|
11
|
+
function typesOf(schema) {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const types = new Set();
|
|
14
|
+
if (!schema || typeof schema === 'boolean')
|
|
15
|
+
return types;
|
|
16
|
+
if (typeof schema.type === 'string')
|
|
17
|
+
types.add(schema.type);
|
|
18
|
+
else if (Array.isArray(schema.type))
|
|
19
|
+
schema.type.forEach((type) => types.add(type));
|
|
20
|
+
for (const branch of [...((_a = schema.anyOf) !== null && _a !== void 0 ? _a : []), ...((_b = schema.oneOf) !== null && _b !== void 0 ? _b : [])])
|
|
21
|
+
typesOf(branch).forEach((type) => types.add(type));
|
|
22
|
+
return types;
|
|
23
|
+
}
|
|
24
|
+
function parseJson(text) {
|
|
25
|
+
try {
|
|
26
|
+
return JSON.parse(text);
|
|
27
|
+
}
|
|
28
|
+
catch (_a) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/** One value converted towards the schema's type, or the value itself when no conversion fits. */
|
|
33
|
+
function coerce(value, schema) {
|
|
34
|
+
if (typeof value !== 'string')
|
|
35
|
+
return value;
|
|
36
|
+
const types = typesOf(schema);
|
|
37
|
+
if (types.has('string'))
|
|
38
|
+
return value;
|
|
39
|
+
const text = value.trim();
|
|
40
|
+
if (types.has('array') && text.startsWith('[')) {
|
|
41
|
+
const parsed = parseJson(text);
|
|
42
|
+
if (Array.isArray(parsed))
|
|
43
|
+
return parsed;
|
|
44
|
+
}
|
|
45
|
+
if (types.has('object') && text.startsWith('{')) {
|
|
46
|
+
const parsed = parseJson(text);
|
|
47
|
+
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed))
|
|
48
|
+
return parsed;
|
|
49
|
+
}
|
|
50
|
+
if ((types.has('number') || types.has('integer')) && /^-?\d+(\.\d+)?$/.test(text))
|
|
51
|
+
return Number(text);
|
|
52
|
+
if (types.has('boolean') && (text === 'true' || text === 'false'))
|
|
53
|
+
return text === 'true';
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
/** Shown in the chat for a command whose description the model left out (exec-tools.ts). */
|
|
57
|
+
exports.DEFAULT_DESCRIPTION = 'Analyzing the downloaded data';
|
|
58
|
+
/**
|
|
59
|
+
* The input with stringified top-level values turned into the types the schema expects, and a
|
|
60
|
+
* required `description` (a label for the chat, never part of the work) filled in when missing;
|
|
61
|
+
* undefined when nothing changed.
|
|
62
|
+
*/
|
|
63
|
+
function coerceToolInput(input, schema) {
|
|
64
|
+
var _a, _b;
|
|
65
|
+
const properties = (_a = schema.properties) !== null && _a !== void 0 ? _a : {};
|
|
66
|
+
let changed = false;
|
|
67
|
+
const out = {};
|
|
68
|
+
if (((_b = schema.required) === null || _b === void 0 ? void 0 : _b.includes('description')) && !(typeof input.description === 'string' && input.description.trim())) {
|
|
69
|
+
out.description = exports.DEFAULT_DESCRIPTION;
|
|
70
|
+
changed = true;
|
|
71
|
+
}
|
|
72
|
+
for (const [key, value] of Object.entries(input)) {
|
|
73
|
+
if (key === 'description' && changed && out.description === exports.DEFAULT_DESCRIPTION)
|
|
74
|
+
continue;
|
|
75
|
+
out[key] = coerce(value, properties[key]);
|
|
76
|
+
if (out[key] !== value)
|
|
77
|
+
changed = true;
|
|
78
|
+
}
|
|
79
|
+
return changed ? out : undefined;
|
|
80
|
+
}
|
|
81
|
+
const repairStringifiedToolInput = async ({ toolCall, inputSchema, error }) => {
|
|
82
|
+
if (!ai_1.InvalidToolInputError.isInstance(error))
|
|
83
|
+
return null;
|
|
84
|
+
const input = parseJson(toolCall.input);
|
|
85
|
+
if (!input || typeof input !== 'object' || Array.isArray(input))
|
|
86
|
+
return null;
|
|
87
|
+
const fixed = coerceToolInput(input, await inputSchema({ toolName: toolCall.toolName }));
|
|
88
|
+
return fixed ? { ...toolCall, input: JSON.stringify(fixed) } : null;
|
|
89
|
+
};
|
|
90
|
+
exports.repairStringifiedToolInput = repairStringifiedToolInput;
|
|
91
|
+
//# sourceMappingURL=tool-call-repair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call-repair.js","sourceRoot":"","sources":["../src/tool-call-repair.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call-repair.test.d.ts","sourceRoot":"","sources":["../src/tool-call-repair.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
7
|
+
const node_test_1 = require("node:test");
|
|
8
|
+
const tool_call_repair_1 = require("./tool-call-repair");
|
|
9
|
+
const schema = {
|
|
10
|
+
type: 'object',
|
|
11
|
+
properties: {
|
|
12
|
+
question: { type: 'string' },
|
|
13
|
+
fields: { type: 'array', items: { type: 'string' } },
|
|
14
|
+
allowed: { type: 'object' },
|
|
15
|
+
concurrency: { type: 'integer' },
|
|
16
|
+
dryRun: { type: 'boolean' },
|
|
17
|
+
windows: { anyOf: [{ type: 'object' }, { type: 'null' }] },
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
(0, node_test_1.describe)('coerceToolInput', () => {
|
|
21
|
+
(0, node_test_1.it)('turns stringified arrays, objects, numbers and booleans into the declared types', () => {
|
|
22
|
+
const fixed = (0, tool_call_repair_1.coerceToolInput)({
|
|
23
|
+
question: '[not touched: a string field]',
|
|
24
|
+
fields: '["form_title", "purpose"]',
|
|
25
|
+
allowed: '{"coverage_effect": ["broadened", "restricted"]}',
|
|
26
|
+
concurrency: '4',
|
|
27
|
+
dryRun: 'true',
|
|
28
|
+
windows: '{"patterns": ["cancel"]}',
|
|
29
|
+
}, schema);
|
|
30
|
+
strict_1.default.deepEqual(fixed, {
|
|
31
|
+
question: '[not touched: a string field]',
|
|
32
|
+
fields: ['form_title', 'purpose'],
|
|
33
|
+
allowed: { coverage_effect: ['broadened', 'restricted'] },
|
|
34
|
+
concurrency: 4,
|
|
35
|
+
dryRun: true,
|
|
36
|
+
windows: { patterns: ['cancel'] },
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
(0, node_test_1.it)('leaves input it cannot fix alone', () => {
|
|
40
|
+
strict_1.default.equal((0, tool_call_repair_1.coerceToolInput)({ fields: ['a'], concurrency: 4 }, schema), undefined);
|
|
41
|
+
strict_1.default.equal((0, tool_call_repair_1.coerceToolInput)({ fields: '[broken json', concurrency: 'four' }, schema), undefined);
|
|
42
|
+
});
|
|
43
|
+
(0, node_test_1.it)('fills a missing required description so the call does not fail', () => {
|
|
44
|
+
const commandSchema = { type: 'object', required: ['description', 'command'], properties: { description: { type: 'string' }, command: { type: 'string' } } };
|
|
45
|
+
strict_1.default.deepEqual((0, tool_call_repair_1.coerceToolInput)({ command: 'ls' }, commandSchema), { description: 'Analyzing the downloaded data', command: 'ls' });
|
|
46
|
+
strict_1.default.deepEqual((0, tool_call_repair_1.coerceToolInput)({ description: '', command: 'ls' }, commandSchema), { description: 'Analyzing the downloaded data', command: 'ls' });
|
|
47
|
+
strict_1.default.equal((0, tool_call_repair_1.coerceToolInput)({ description: 'Listing files', command: 'ls' }, commandSchema), undefined);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=tool-call-repair.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call-repair.test.js","sourceRoot":"","sources":["../src/tool-call-repair.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec-tools.d.ts","sourceRoot":"","sources":["../../src/tools/exec-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exec-tools.d.ts","sourceRoot":"","sources":["../../src/tools/exec-tools.ts"],"names":[],"mappings":"AAwBA,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM;;;;;;;EAgDnD"}
|
package/dist/tools/exec-tools.js
CHANGED
|
@@ -10,18 +10,33 @@ const child_process_1 = require("child_process");
|
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
11
|
const ai_1 = require("ai");
|
|
12
12
|
const zod_1 = require("zod");
|
|
13
|
+
const tool_call_repair_1 = require("../tool-call-repair");
|
|
13
14
|
const MAX_OUTPUT_BYTES = 1024 * 1024;
|
|
15
|
+
/** Output kept in the conversation per stream; every later step re-sends it, so the rest belongs in a file. */
|
|
16
|
+
const MAX_INLINE_OUTPUT_CHARS = 8000;
|
|
14
17
|
const DEFAULT_TIMEOUT_MS = 60000;
|
|
18
|
+
/** Head and tail of a long output: the start says what ran, the end how it finished. */
|
|
15
19
|
function truncate(text) {
|
|
16
|
-
if (
|
|
20
|
+
if (text.length <= MAX_INLINE_OUTPUT_CHARS)
|
|
17
21
|
return { text, truncated: false };
|
|
18
|
-
|
|
22
|
+
const keep = MAX_INLINE_OUTPUT_CHARS / 2;
|
|
23
|
+
const omitted = text.length - MAX_INLINE_OUTPUT_CHARS;
|
|
24
|
+
return {
|
|
25
|
+
text: `${text.slice(0, keep)}\n…[${omitted.toLocaleString()} chars omitted — redirect the output to a file and grep it]…\n${text.slice(-keep)}`,
|
|
26
|
+
truncated: true,
|
|
27
|
+
};
|
|
19
28
|
}
|
|
20
29
|
function createExecTools(workspaceDir) {
|
|
21
30
|
const runCommandTool = (0, ai_1.tool)({
|
|
22
31
|
description: "Run a shell command inside the session's workspace (npm install, build steps, starting a dev server). Returns exit code and captured output. For a long-lived process (a dev server), background it (e.g. `nohup npm run dev &`) so this call returns promptly — the live preview picks it up once it's listening on $PORT.",
|
|
23
32
|
inputSchema: zod_1.z.object({
|
|
24
|
-
command:
|
|
33
|
+
// The chat shows this line instead of the command: users read what is being done, not shell syntax.
|
|
34
|
+
description: zod_1.z
|
|
35
|
+
.string()
|
|
36
|
+
.min(1)
|
|
37
|
+
.max(100)
|
|
38
|
+
.describe('What this command does, in plain words for a non-technical reader, e.g. "Comparing each form with its mock copy" (no file paths or shell syntax)'),
|
|
39
|
+
command: zod_1.z.string().min(1).max(16000).describe('Shell command run in the workspace root (or cwd); for a longer script, write it with write_files and run it'),
|
|
25
40
|
cwd: zod_1.z.string().max(500).optional().describe('Workspace-relative working directory'),
|
|
26
41
|
timeoutMs: zod_1.z.number().int().positive().max(300000).optional().describe('Wall-clock limit, default 60000'),
|
|
27
42
|
}),
|
|
@@ -42,6 +57,11 @@ function createExecTools(workspaceDir) {
|
|
|
42
57
|
durationMs,
|
|
43
58
|
truncated: out.truncated || err.truncated,
|
|
44
59
|
timedOut,
|
|
60
|
+
// The repair filled a missing description (tool-call-repair.ts); without a word here the
|
|
61
|
+
// model keeps copying its own description-less calls and the chat shows the same label.
|
|
62
|
+
...(input.description === tool_call_repair_1.DEFAULT_DESCRIPTION
|
|
63
|
+
? { note: 'You left out description: the user sees it as this step\'s label. Set it on every run_command.' }
|
|
64
|
+
: {}),
|
|
45
65
|
});
|
|
46
66
|
});
|
|
47
67
|
void child;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec-tools.js","sourceRoot":"","sources":["../../src/tools/exec-tools.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"exec-tools.js","sourceRoot":"","sources":["../../src/tools/exec-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/transport/link.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,mBAAmB,EAExB,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAA;AAMnB,MAAM,MAAM,aAAa,GAAG,iBAAiB,SAAS,MAAM,CAAC,GACzD,CAAC,SAAS;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7D,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,WAAW,CAAC,GAC1C,KAAK,GACP,KAAK,CAAA;AAET,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAEnF,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;IAChC,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IACxC,2FAA2F;IAC3F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAMD,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,WAAW,CAqEb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/transport/link.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,10 @@ export interface AgentUsage {
|
|
|
18
18
|
inputTokens: number;
|
|
19
19
|
outputTokens: number;
|
|
20
20
|
totalTokens: number;
|
|
21
|
+
/** Part of inputTokens served from the provider's prompt cache. */
|
|
22
|
+
cacheReadTokens?: number;
|
|
23
|
+
/** Part of inputTokens written to the prompt cache. */
|
|
24
|
+
cacheWriteTokens?: number;
|
|
21
25
|
model: string;
|
|
22
26
|
}
|
|
23
27
|
/** A text file the guest wants stored as a session artifact (findings, result tables, evidence). */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/transport/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/transport/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.test.d.ts","sourceRoot":"","sources":["../../src/transport/protocol.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.test.js","sourceRoot":"","sources":["../../src/transport/protocol.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAuC;AACvC,yCAAwC;AACxC,yCAAkJ;AAElJ,IAAA,oBAAQ,EAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAA,cAAE,EAAC,sFAAsF,EAAE,GAAG,EAAE;QAC9F,MAAM,KAAK,GAAsB,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QAC9K,gBAAM,CAAC,KAAK,CAAC,IAAA,+BAAoB,EAAC,KAAK,CAAC,EAAE,IAAA,+BAAoB,EAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;QAC7E,gBAAM,CAAC,QAAQ,CAAC,IAAA,+BAAoB,EAAC,KAAK,CAAC,EAAE,IAAA,+BAAoB,EAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,CAAA;QAC5G,gBAAM,CAAC,QAAQ,CAAC,IAAA,+BAAoB,EAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,IAAA,+BAAoB,EAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACxJ,CAAC,CAAC,CAAA;IACF,IAAA,cAAE,EAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,gBAAM,CAAC,KAAK,CAAC,IAAA,8BAAmB,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QACnI,gBAAM,CAAC,KAAK,CAAC,IAAA,8BAAmB,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QAC5E,gBAAM,CAAC,KAAK,CAAC,IAAA,8BAAmB,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QAC1D,gBAAM,CAAC,KAAK,CAAC,IAAA,8BAAmB,EAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,IAAA,cAAE,EAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,gBAAM,CAAC,KAAK,CAAC,IAAA,2BAAgB,EAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,IAAA,cAAE,EAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,KAAK,MAAM,GAAG,IAAI,CAAC,oBAAS,CAAC,wBAAwB,EAAE,oBAAS,CAAC,gBAAgB,EAAE,oBAAS,CAAC,kBAAkB,EAAE,oBAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/I,gBAAM,CAAC,EAAE,CAAC,gCAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,mBAAmB,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -27,4 +27,4 @@ export interface Reporter {
|
|
|
27
27
|
close(): Promise<void>;
|
|
28
28
|
}
|
|
29
29
|
export declare function createReporter(socketUrl: string | undefined, socketToken: string | undefined, sessionId: string): Reporter;
|
|
30
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=reporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/transport/reporter.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC9G;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5E,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,yFAAyF;IACzF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,SAAS,EAAE,MAAM,GAChB,QAAQ,CAwBV"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/transport/reporter.ts"],"names":[],"mappings":";;AAiBA,wCA4BC;AA7CD,4FAA4F;AAC5F,2FAA2F;AAC3F,wEAAwE;AACxE,iCAA4D;AAc5D,SAAgB,cAAc,CAC5B,SAA6B,EAC7B,WAA+B,EAC/B,SAAiB;IAEjB,MAAM,IAAI,GAAgB,IAAA,wBAAiB,EAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;IAC9E,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,KAAK;YACd,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YAClB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,WAAW;oBACd,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;oBACpG,MAAK;gBACP,KAAK,SAAS;oBACZ,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;oBAChD,MAAK;gBACP,KAAK,MAAM;oBACT,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;oBACtE,MAAK;gBACP,KAAK,OAAO;oBACV,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;oBACpD,MAAK;YACT,CAAC;QACH,CAAC;QACD,KAAK;YACH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;QACrB,CAAC;KACF,CAAA;AACH,CAAC"}
|