@qwen-code/arena-agent 0.0.7-preview.0 → 0.0.7
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/.env.example +15 -5
- package/README.md +127 -16
- package/dist/agent.d.ts +9 -1
- package/dist/agent.js +249 -94
- package/dist/agent.js.map +1 -1
- package/dist/anthropic.d.ts +16 -0
- package/dist/anthropic.js +391 -0
- package/dist/anthropic.js.map +1 -0
- package/dist/attachments.d.ts +29 -0
- package/dist/attachments.js +222 -0
- package/dist/attachments.js.map +1 -0
- package/dist/canonical-data.d.ts +2 -0
- package/dist/canonical-data.js +4 -0
- package/dist/canonical-data.js.map +1 -0
- package/dist/cli.js +55 -13
- package/dist/cli.js.map +1 -1
- package/dist/compaction.d.ts +16 -0
- package/dist/compaction.js +183 -0
- package/dist/compaction.js.map +1 -0
- package/dist/config.d.ts +6 -1
- package/dist/config.js +28 -2
- package/dist/config.js.map +1 -1
- package/dist/history.d.ts +3 -3
- package/dist/history.js +4 -4
- package/dist/history.js.map +1 -1
- package/dist/mock.js +24 -1
- package/dist/mock.js.map +1 -1
- package/dist/protocol.d.ts +4 -2
- package/dist/protocol.js +17 -1
- package/dist/protocol.js.map +1 -1
- package/dist/provider.d.ts +4 -0
- package/dist/provider.js +163 -4
- package/dist/provider.js.map +1 -1
- package/dist/repo.js +2 -5
- package/dist/repo.js.map +1 -1
- package/dist/server.js +9 -174
- package/dist/server.js.map +1 -1
- package/dist/spec.d.ts +7 -9
- package/dist/spec.js +125 -27
- package/dist/spec.js.map +1 -1
- package/dist/tools.d.ts +5 -1
- package/dist/tools.js +45 -23
- package/dist/tools.js.map +1 -1
- package/dist/tui.js +48 -12
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +21 -9
- package/dist/web/app.js +2 -3
- package/dist/web/app.js.map +1 -1
- package/package.json +4 -4
- package/docs/SDK.md +0 -521
- package/spec/tools.json +0 -418
package/dist/spec.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { readFileSync } from "node:fs";
|
|
2
1
|
import { fileURLToPath } from "node:url";
|
|
3
2
|
import path from "node:path";
|
|
4
|
-
import {
|
|
3
|
+
import { messageFixtureJson, modelSpecJson } from "./canonical-data.js";
|
|
4
|
+
import { repoAgentSystemPromptTemplate } from "./prompts.js";
|
|
5
5
|
const packageRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
6
|
-
|
|
7
|
-
return JSON.parse(readFileSync(path.join(packageRoot, relativePath), "utf8"));
|
|
8
|
-
}
|
|
6
|
+
let cachedMessageFixture;
|
|
9
7
|
let cachedModelSpec;
|
|
10
8
|
const locationAbsentLine = "The user's approximate location was not provided by the client.";
|
|
11
9
|
const clientContextPattern = /Today's date is [^\n]*\nThe user's approximate location (?:is:[^\n]*|was not provided by the client\.)/;
|
|
10
|
+
const workspaceGuidancePattern = /Many of the tools are for the workspace;[\s\S]*?Turn-end snapshots are best-effort capped around 128 MB or 10,000 files\.\n\n/;
|
|
11
|
+
const viewerGuidancePattern = /Note, when user views a workspace file[\s\S]*?tell them it will download rather than preview\.\n\n/;
|
|
12
12
|
export const userInterruptionNotice = "<arena-system-message>\n" +
|
|
13
13
|
"The previous assistant response was stopped by the user before it completed. " +
|
|
14
14
|
"Treat that response as partial and do not assume any unfinished text or tool calls completed.\n" +
|
|
@@ -16,8 +16,12 @@ export const userInterruptionNotice = "<arena-system-message>\n" +
|
|
|
16
16
|
export function projectRoot() {
|
|
17
17
|
return packageRoot;
|
|
18
18
|
}
|
|
19
|
+
export function messageFixture() {
|
|
20
|
+
cachedMessageFixture ??= JSON.parse(messageFixtureJson);
|
|
21
|
+
return cachedMessageFixture;
|
|
22
|
+
}
|
|
19
23
|
export function modelSpec() {
|
|
20
|
-
cachedModelSpec ??=
|
|
24
|
+
cachedModelSpec ??= JSON.parse(modelSpecJson);
|
|
21
25
|
return cachedModelSpec;
|
|
22
26
|
}
|
|
23
27
|
// Single pass so substituted values are never rescanned.
|
|
@@ -70,11 +74,49 @@ function clientContextValues(context) {
|
|
|
70
74
|
locationLine: locationLine(context.location),
|
|
71
75
|
};
|
|
72
76
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
function applyWorkspaceContext(message, workspaceContext) {
|
|
78
|
+
if (!workspaceContext)
|
|
79
|
+
return message;
|
|
80
|
+
const root = path.resolve(workspaceContext.root);
|
|
81
|
+
const cwd = path.resolve(workspaceContext.cwd);
|
|
82
|
+
const displayedRoot = JSON.stringify(root);
|
|
83
|
+
const displayedCwd = JSON.stringify(cwd);
|
|
84
|
+
const workspaceGuidance = "Many of the tools operate on a shared workspace. The workspace root is " +
|
|
85
|
+
`${displayedRoot}, and the default working directory is ${displayedCwd}. ` +
|
|
86
|
+
"Bash commands run with the permissions provided by the current runtime environment. " +
|
|
87
|
+
"Files written to the workspace persist across messages in this conversation.\n\n" +
|
|
88
|
+
"Tool path arguments resolve relative to the default working directory unless " +
|
|
89
|
+
`an absolute path inside ${displayedRoot} is provided. Prefer relative paths, ` +
|
|
90
|
+
"and report these actual runtime paths rather than translating them to a fixed virtual path.\n\n";
|
|
91
|
+
const viewerGuidance = "The current client does not provide an in-app file viewer. When you create a " +
|
|
92
|
+
"deliverable, tell the user its workspace-relative path and, when useful, " +
|
|
93
|
+
"its resolved runtime path. Do not claim that the client opened the file, Finder, " +
|
|
94
|
+
"or another host application.\n\n";
|
|
95
|
+
if (!workspaceGuidancePattern.test(message.content)) {
|
|
96
|
+
throw new Error("canonical system prompt workspace guidance was not found");
|
|
97
|
+
}
|
|
98
|
+
message.content = message.content.replace(workspaceGuidancePattern, workspaceGuidance);
|
|
99
|
+
if (!workspaceContext.presentFile) {
|
|
100
|
+
if (!viewerGuidancePattern.test(message.content)) {
|
|
101
|
+
throw new Error("canonical system prompt viewer guidance was not found");
|
|
102
|
+
}
|
|
103
|
+
message.content = message.content.replace(viewerGuidancePattern, viewerGuidance);
|
|
104
|
+
}
|
|
105
|
+
return message;
|
|
106
|
+
}
|
|
107
|
+
export function systemMessage(context, workspaceContext) {
|
|
108
|
+
const fixture = messageFixture().messages;
|
|
109
|
+
const canonical = structuredClone(fixture[0]);
|
|
110
|
+
const currentDate = cleanContextValue(context.currentDate);
|
|
111
|
+
const timezone = cleanContextValue(context.timezone);
|
|
112
|
+
const dynamicContext = `Today's date is ${currentDate} in the user's local timezone (${timezone}). ` +
|
|
113
|
+
"Trust this date over any assumptions you may have from your training data; " +
|
|
114
|
+
'if a user\'s question references a year or relative time ("this year", ' +
|
|
115
|
+
'"today", "the most recent X"), interpret it against today\'s date in the ' +
|
|
116
|
+
"user's local timezone.\n" +
|
|
117
|
+
locationLine(context.location);
|
|
118
|
+
canonical.content = canonical.content.replace(clientContextPattern, dynamicContext);
|
|
119
|
+
return applyWorkspaceContext(canonical, workspaceContext);
|
|
78
120
|
}
|
|
79
121
|
export function repoSystemMessage(context, repo) {
|
|
80
122
|
return {
|
|
@@ -89,10 +131,7 @@ export function repoSystemMessage(context, repo) {
|
|
|
89
131
|
}),
|
|
90
132
|
};
|
|
91
133
|
}
|
|
92
|
-
/**
|
|
93
|
-
* Inverse of `repoSystemMessage()`. Extracts without validating; callers feed
|
|
94
|
-
* the result back through `repoSystemMessage()` + `isCanonicalSystemMessage()`.
|
|
95
|
-
*/
|
|
134
|
+
/** Extract the stable repo session context encoded in a repo-mode prompt. */
|
|
96
135
|
export function repoContextFromSystemMessage(message) {
|
|
97
136
|
if (message?.role !== "system" || typeof message.content !== "string") {
|
|
98
137
|
return undefined;
|
|
@@ -109,38 +148,97 @@ export function repoContextFromSystemMessage(message) {
|
|
|
109
148
|
baseBranch: branch[3],
|
|
110
149
|
};
|
|
111
150
|
}
|
|
112
|
-
export function isCanonicalSystemMessage(message,
|
|
151
|
+
export function isCanonicalSystemMessage(message, expectedOrWorkspace) {
|
|
113
152
|
if (message?.role !== "system" ||
|
|
114
153
|
typeof message.content !== "string" ||
|
|
115
154
|
!message.content) {
|
|
116
155
|
return false;
|
|
117
156
|
}
|
|
118
|
-
const canonical =
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
157
|
+
const canonical = expectedOrWorkspace && "role" in expectedOrWorkspace
|
|
158
|
+
? expectedOrWorkspace
|
|
159
|
+
: systemMessage(defaultClientContext(), expectedOrWorkspace);
|
|
160
|
+
return (message.content.replace(clientContextPattern, "<client-context>") ===
|
|
161
|
+
canonical.content.replace(clientContextPattern, "<client-context>"));
|
|
122
162
|
}
|
|
123
|
-
export function initialMessages(prompt, context = defaultClientContext(), repo) {
|
|
163
|
+
export function initialMessages(prompt, context = defaultClientContext(), workspaceContext, repo) {
|
|
124
164
|
return [
|
|
125
|
-
repo
|
|
165
|
+
repo
|
|
166
|
+
? repoSystemMessage(context, repo)
|
|
167
|
+
: systemMessage(context, workspaceContext),
|
|
126
168
|
{ role: "user", content: prompt },
|
|
127
169
|
];
|
|
128
170
|
}
|
|
129
171
|
export function interruptedUserMessage(promptOrMessage) {
|
|
130
172
|
const content = typeof promptOrMessage === "string"
|
|
131
|
-
? [{
|
|
173
|
+
? [{ text: promptOrMessage }]
|
|
132
174
|
: typeof promptOrMessage.content === "string"
|
|
133
|
-
? [{
|
|
175
|
+
? [{ text: promptOrMessage.content }]
|
|
134
176
|
: structuredClone(promptOrMessage.content);
|
|
135
177
|
return {
|
|
136
178
|
role: "user",
|
|
137
179
|
content: [
|
|
138
|
-
{
|
|
180
|
+
{ text: userInterruptionNotice },
|
|
139
181
|
...content,
|
|
140
182
|
],
|
|
141
183
|
};
|
|
142
184
|
}
|
|
143
|
-
|
|
144
|
-
return
|
|
185
|
+
function parameterProperties(definition) {
|
|
186
|
+
return definition.function.parameters.properties;
|
|
187
|
+
}
|
|
188
|
+
function parameterProperty(definition, name) {
|
|
189
|
+
const property = parameterProperties(definition)[name];
|
|
190
|
+
if (!property) {
|
|
191
|
+
throw new Error(`canonical tool parameter not found: ${definition.function.name}.${name}`);
|
|
192
|
+
}
|
|
193
|
+
return property;
|
|
194
|
+
}
|
|
195
|
+
export function toolDefinitions(workspaceContext) {
|
|
196
|
+
const definitions = structuredClone(modelSpec().tools);
|
|
197
|
+
if (!workspaceContext)
|
|
198
|
+
return definitions;
|
|
199
|
+
const root = path.resolve(workspaceContext.root);
|
|
200
|
+
const cwd = path.resolve(workspaceContext.cwd);
|
|
201
|
+
const displayedRoot = JSON.stringify(root);
|
|
202
|
+
const displayedCwd = JSON.stringify(cwd);
|
|
203
|
+
const absoluteExample = (relativePath) => JSON.stringify(path.join(cwd, relativePath));
|
|
204
|
+
const find = (name) => {
|
|
205
|
+
const definition = definitions.find((candidate) => candidate.function.name === name);
|
|
206
|
+
if (!definition)
|
|
207
|
+
throw new Error(`canonical tool definition not found: ${name}`);
|
|
208
|
+
return definition;
|
|
209
|
+
};
|
|
210
|
+
const bash = find("bash");
|
|
211
|
+
bash.function.description =
|
|
212
|
+
"Run a bash command in the current runtime environment, starting in the provided cwd. " +
|
|
213
|
+
`The workspace root is ${displayedRoot}, and cwd defaults to ${displayedCwd}. ` +
|
|
214
|
+
"Commands run without a controlling terminal and with stdin closed. " +
|
|
215
|
+
"Working directory changes, shell variables, aliases, functions, history, " +
|
|
216
|
+
"exported environment changes, and background process state are not preserved across calls.";
|
|
217
|
+
const bashCwd = parameterProperty(bash, "cwd");
|
|
218
|
+
bashCwd.description = `Working directory for this command. Defaults to ${displayedCwd}.`;
|
|
219
|
+
bashCwd.default = cwd;
|
|
220
|
+
const runtimePathDescription = (relativeExample, suffix = "") => `Path inside the workspace ${displayedRoot}: either an absolute path ` +
|
|
221
|
+
`(e.g. ${absoluteExample(relativeExample)}) or a path relative to the ` +
|
|
222
|
+
`default working directory ${displayedCwd} ` +
|
|
223
|
+
`(e.g. ${JSON.stringify(relativeExample)}).${suffix}`;
|
|
224
|
+
parameterProperty(find("edit_file"), "path").description =
|
|
225
|
+
runtimePathDescription("notes.txt");
|
|
226
|
+
parameterProperty(find("read_file"), "path").description =
|
|
227
|
+
runtimePathDescription("images/dog.jpg");
|
|
228
|
+
parameterProperty(find("write_file"), "path").description =
|
|
229
|
+
runtimePathDescription("src/app.js", " Parent directories are created as needed.");
|
|
230
|
+
const generateImage = find("generate_image");
|
|
231
|
+
parameterProperty(generateImage, "file_path").description =
|
|
232
|
+
runtimePathDescription("images/hero.jpg", " Parent directories are created as needed. Must end in .jpg, .jpeg, or .png.");
|
|
233
|
+
parameterProperty(generateImage, "images").description =
|
|
234
|
+
`Optional paths to existing images inside the workspace ${displayedRoot}, ` +
|
|
235
|
+
`given as absolute paths or paths relative to ${displayedCwd}. ` +
|
|
236
|
+
"Omit for text-to-image generation.";
|
|
237
|
+
parameterProperty(find("generate_speech"), "file_path").description =
|
|
238
|
+
runtimePathDescription("audio/narration.mp3", " Parent directories are created as needed. Must end in a supported audio " +
|
|
239
|
+
"extension (.mp3, .wav, .ogg, .opus, .flac, .aac, .m4a, .aiff).");
|
|
240
|
+
return workspaceContext.presentFile
|
|
241
|
+
? definitions
|
|
242
|
+
: definitions.filter((definition) => definition.function.name !== "present_file");
|
|
145
243
|
}
|
|
146
244
|
//# sourceMappingURL=spec.js.map
|
package/dist/spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { ArenaConfig } from "./config.js";
|
|
2
|
-
import type { AskUserHandler, MultimodalUserMessage, ToolCall, ToolMessage } from "./types.js";
|
|
2
|
+
import type { AskUserHandler, MultimodalUserMessage, ToolCall, ToolDefinition, ToolMessage, WorkspaceContext } from "./types.js";
|
|
3
3
|
interface ToolExecutorOptions {
|
|
4
4
|
askUserHandler?: AskUserHandler;
|
|
5
5
|
signal?: AbortSignal;
|
|
6
|
+
workspaceContext?: WorkspaceContext;
|
|
6
7
|
}
|
|
7
8
|
export declare class ToolExecutor {
|
|
8
9
|
private readonly config;
|
|
@@ -12,9 +13,12 @@ export declare class ToolExecutor {
|
|
|
12
13
|
private readonly pendingVisualContent;
|
|
13
14
|
private readonly askUserHandler?;
|
|
14
15
|
private readonly signal?;
|
|
16
|
+
private readonly workspaceContext?;
|
|
15
17
|
private readonly pageReader;
|
|
16
18
|
private readonly ajv;
|
|
19
|
+
readonly askUserEnabled: boolean;
|
|
17
20
|
constructor(config: ArenaConfig, options?: ToolExecutorOptions);
|
|
21
|
+
availableTools(): ToolDefinition[];
|
|
18
22
|
execute(call: ToolCall): Promise<ToolMessage>;
|
|
19
23
|
takeVisualMessage(toolCallIds: string[]): MultimodalUserMessage | undefined;
|
|
20
24
|
private dispatch;
|
package/dist/tools.js
CHANGED
|
@@ -407,21 +407,37 @@ export class ToolExecutor {
|
|
|
407
407
|
pendingVisualContent = new Map();
|
|
408
408
|
askUserHandler;
|
|
409
409
|
signal;
|
|
410
|
+
workspaceContext;
|
|
410
411
|
pageReader;
|
|
411
412
|
ajv = new Ajv({ allErrors: true, strict: false });
|
|
413
|
+
// ask_user needs an interactive front-end (TUI/WebUI) to collect answers.
|
|
414
|
+
// Headless `-p` supplies no handler, so the tool is withheld from the model
|
|
415
|
+
// entirely rather than offered and then dead-ending on needs_input.
|
|
416
|
+
askUserEnabled;
|
|
412
417
|
constructor(config, options = {}) {
|
|
413
418
|
this.config = config;
|
|
414
419
|
this.workspace = path.resolve(config.workspace);
|
|
415
420
|
mkdirSync(this.workspace, { recursive: true });
|
|
416
421
|
this.workspaceReal = realpathSync(this.workspace);
|
|
417
422
|
this.askUserHandler = options.askUserHandler;
|
|
423
|
+
this.askUserEnabled = Boolean(options.askUserHandler);
|
|
418
424
|
this.signal = options.signal;
|
|
425
|
+
this.workspaceContext = options.workspaceContext;
|
|
419
426
|
this.pageReader = new FetchPageReader({ signal: options.signal });
|
|
420
427
|
addFormats(this.ajv);
|
|
421
|
-
for (const definition of toolDefinitions()) {
|
|
428
|
+
for (const definition of toolDefinitions(this.workspaceContext)) {
|
|
422
429
|
this.validators.set(definition.function.name, this.ajv.compile(definition.function.parameters));
|
|
423
430
|
}
|
|
424
431
|
}
|
|
432
|
+
// The tool schemas offered to the model for this session. Identical to the
|
|
433
|
+
// canonical trace set, adjusted for the selected workspace runtime and minus
|
|
434
|
+
// ask_user when no interactive handler is wired.
|
|
435
|
+
availableTools() {
|
|
436
|
+
const definitions = toolDefinitions(this.workspaceContext);
|
|
437
|
+
if (this.askUserEnabled)
|
|
438
|
+
return definitions;
|
|
439
|
+
return definitions.filter((definition) => definition.function.name !== "ask_user");
|
|
440
|
+
}
|
|
425
441
|
async execute(call) {
|
|
426
442
|
const callId = String(call.id || "");
|
|
427
443
|
const name = String(call.function?.name || "");
|
|
@@ -474,13 +490,16 @@ export class ToolExecutor {
|
|
|
474
490
|
return undefined;
|
|
475
491
|
return {
|
|
476
492
|
role: "user",
|
|
477
|
-
content: [{
|
|
493
|
+
content: [{ text: visualIntroText }, ...images],
|
|
478
494
|
};
|
|
479
495
|
}
|
|
480
496
|
async dispatch(name, values, toolCallId) {
|
|
481
497
|
switch (name) {
|
|
482
498
|
case "bash":
|
|
483
|
-
return this.bash(String(values.command), String(values.cwd ||
|
|
499
|
+
return this.bash(String(values.command), String(values.cwd ||
|
|
500
|
+
(this.workspaceContext
|
|
501
|
+
? path.resolve(this.workspaceContext.cwd)
|
|
502
|
+
: "/home/user")), Number(values.timeout || 30));
|
|
484
503
|
case "ask_user":
|
|
485
504
|
return this.askUser(values.questions, toolCallId);
|
|
486
505
|
case "edit_file":
|
|
@@ -509,20 +528,20 @@ export class ToolExecutor {
|
|
|
509
528
|
if (!raw)
|
|
510
529
|
throw new Error("path must not be empty");
|
|
511
530
|
let candidate;
|
|
512
|
-
if (raw === "/home/user" || raw === "~") {
|
|
531
|
+
if (!this.workspaceContext && (raw === "/home/user" || raw === "~")) {
|
|
513
532
|
candidate = this.workspace;
|
|
514
533
|
}
|
|
515
|
-
else if (raw.startsWith("/home/user/")) {
|
|
534
|
+
else if (!this.workspaceContext && raw.startsWith("/home/user/")) {
|
|
516
535
|
candidate = path.join(this.workspace, raw.slice("/home/user/".length));
|
|
517
536
|
}
|
|
518
|
-
else if (raw.startsWith("~/")) {
|
|
537
|
+
else if (!this.workspaceContext && raw.startsWith("~/")) {
|
|
519
538
|
candidate = path.join(this.workspace, raw.slice(2));
|
|
520
539
|
}
|
|
521
540
|
else {
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
candidate = path.isAbsolute(raw) ? raw : path.join(
|
|
541
|
+
const defaultCwd = this.workspaceContext
|
|
542
|
+
? path.resolve(this.workspaceContext.cwd)
|
|
543
|
+
: this.workspace;
|
|
544
|
+
candidate = path.isAbsolute(raw) ? raw : path.join(defaultCwd, raw);
|
|
526
545
|
}
|
|
527
546
|
const absolute = path.resolve(candidate);
|
|
528
547
|
const lexicalRelative = path.relative(this.workspace, absolute);
|
|
@@ -549,6 +568,8 @@ export class ToolExecutor {
|
|
|
549
568
|
return path.relative(this.workspaceReal, target).split(path.sep).join("/");
|
|
550
569
|
}
|
|
551
570
|
virtualizeBashOutput(value) {
|
|
571
|
+
if (this.workspaceContext)
|
|
572
|
+
return value;
|
|
552
573
|
let virtualized = value;
|
|
553
574
|
const workspaceRoots = [...new Set([this.workspace, this.workspaceReal])]
|
|
554
575
|
.filter((root) => root !== path.parse(root).root)
|
|
@@ -563,10 +584,11 @@ export class ToolExecutor {
|
|
|
563
584
|
if (!(await stat(workdir)).isDirectory()) {
|
|
564
585
|
throw new Error(`cwd is not a directory: ${cwd}`);
|
|
565
586
|
}
|
|
566
|
-
//
|
|
567
|
-
//
|
|
568
|
-
|
|
569
|
-
|
|
587
|
+
// Legacy callers without runtime context retain the captured /home/user
|
|
588
|
+
// contract. Runtime-aware callers execute and report their actual paths.
|
|
589
|
+
const translatedCommand = this.workspaceContext
|
|
590
|
+
? command
|
|
591
|
+
: command.replaceAll("/home/user", "\"$ARENA_WORKSPACE\"");
|
|
570
592
|
return new Promise((resolve, reject) => {
|
|
571
593
|
const env = {
|
|
572
594
|
...process.env,
|
|
@@ -692,10 +714,14 @@ export class ToolExecutor {
|
|
|
692
714
|
if (this.askUserHandler) {
|
|
693
715
|
return this.askUserHandler(toolCallId, questions);
|
|
694
716
|
}
|
|
717
|
+
// ask_user is not offered in non-interactive sessions; if the model still
|
|
718
|
+
// emits it (e.g. resumed history or a hallucinated call), report an error
|
|
719
|
+
// so the turn continues instead of stalling on needs_input.
|
|
695
720
|
return {
|
|
696
|
-
status: "
|
|
697
|
-
|
|
698
|
-
|
|
721
|
+
status: "error",
|
|
722
|
+
tool: "ask_user",
|
|
723
|
+
error: "ask_user is unavailable in this non-interactive session. " +
|
|
724
|
+
"Proceed with reasonable defaults and state any assumptions you make.",
|
|
699
725
|
};
|
|
700
726
|
}
|
|
701
727
|
async editFile(rawPath, oldText, newText) {
|
|
@@ -773,14 +799,10 @@ export class ToolExecutor {
|
|
|
773
799
|
}
|
|
774
800
|
this.pendingVisualContent.set(toolCallId, [
|
|
775
801
|
{
|
|
776
|
-
|
|
777
|
-
image_url: {
|
|
778
|
-
url: `data:${mimeType};base64,${data.toString("base64")}`,
|
|
779
|
-
detail: "auto",
|
|
780
|
-
},
|
|
802
|
+
image: `data:${mimeType};base64,${data.toString("base64")}`,
|
|
781
803
|
},
|
|
782
804
|
]);
|
|
783
|
-
return [{
|
|
805
|
+
return [{ text: imageResultPlaceholder }];
|
|
784
806
|
}
|
|
785
807
|
return {
|
|
786
808
|
status: "success",
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|