@qwen-code/arena-agent 0.0.7-preview.0 → 0.0.8-dev.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/.env.example +15 -5
- package/README.md +127 -16
- package/dist/agent.d.ts +23 -4
- package/dist/agent.js +287 -95
- 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/index.d.ts +9 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/mock.js +24 -1
- package/dist/mock.js.map +1 -1
- package/dist/protocol.d.ts +5 -2
- package/dist/protocol.js +20 -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 +128 -27
- package/dist/spec.js.map +1 -1
- package/dist/tools.d.ts +13 -3
- package/dist/tools.js +289 -29
- 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 +26 -9
- package/dist/web/app.js +2 -3
- package/dist/web/app.js.map +1 -1
- package/package.json +22 -8
- 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,100 @@ 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, toolNames) {
|
|
196
|
+
const selected = toolNames ? new Set(toolNames) : undefined;
|
|
197
|
+
const definitions = structuredClone(modelSpec().tools).filter((definition) => selected
|
|
198
|
+
? selected.has(definition.function.name)
|
|
199
|
+
: definition.function.name !== "generate_video");
|
|
200
|
+
if (!workspaceContext)
|
|
201
|
+
return definitions;
|
|
202
|
+
const root = path.resolve(workspaceContext.root);
|
|
203
|
+
const cwd = path.resolve(workspaceContext.cwd);
|
|
204
|
+
const displayedRoot = JSON.stringify(root);
|
|
205
|
+
const displayedCwd = JSON.stringify(cwd);
|
|
206
|
+
const absoluteExample = (relativePath) => JSON.stringify(path.join(cwd, relativePath));
|
|
207
|
+
const find = (name) => {
|
|
208
|
+
const definition = definitions.find((candidate) => candidate.function.name === name);
|
|
209
|
+
if (!definition)
|
|
210
|
+
throw new Error(`canonical tool definition not found: ${name}`);
|
|
211
|
+
return definition;
|
|
212
|
+
};
|
|
213
|
+
const bash = find("bash");
|
|
214
|
+
bash.function.description =
|
|
215
|
+
"Run a bash command in the current runtime environment, starting in the provided cwd. " +
|
|
216
|
+
`The workspace root is ${displayedRoot}, and cwd defaults to ${displayedCwd}. ` +
|
|
217
|
+
"Commands run without a controlling terminal and with stdin closed. " +
|
|
218
|
+
"Working directory changes, shell variables, aliases, functions, history, " +
|
|
219
|
+
"exported environment changes, and background process state are not preserved across calls.";
|
|
220
|
+
const bashCwd = parameterProperty(bash, "cwd");
|
|
221
|
+
bashCwd.description = `Working directory for this command. Defaults to ${displayedCwd}.`;
|
|
222
|
+
bashCwd.default = cwd;
|
|
223
|
+
const runtimePathDescription = (relativeExample, suffix = "") => `Path inside the workspace ${displayedRoot}: either an absolute path ` +
|
|
224
|
+
`(e.g. ${absoluteExample(relativeExample)}) or a path relative to the ` +
|
|
225
|
+
`default working directory ${displayedCwd} ` +
|
|
226
|
+
`(e.g. ${JSON.stringify(relativeExample)}).${suffix}`;
|
|
227
|
+
parameterProperty(find("edit_file"), "path").description =
|
|
228
|
+
runtimePathDescription("notes.txt");
|
|
229
|
+
parameterProperty(find("read_file"), "path").description =
|
|
230
|
+
runtimePathDescription("images/dog.jpg");
|
|
231
|
+
parameterProperty(find("write_file"), "path").description =
|
|
232
|
+
runtimePathDescription("src/app.js", " Parent directories are created as needed.");
|
|
233
|
+
const generateImage = find("generate_image");
|
|
234
|
+
parameterProperty(generateImage, "file_path").description =
|
|
235
|
+
runtimePathDescription("images/hero.jpg", " Parent directories are created as needed. Must end in .jpg, .jpeg, or .png.");
|
|
236
|
+
parameterProperty(generateImage, "images").description =
|
|
237
|
+
`Optional paths to existing images inside the workspace ${displayedRoot}, ` +
|
|
238
|
+
`given as absolute paths or paths relative to ${displayedCwd}. ` +
|
|
239
|
+
"Omit for text-to-image generation.";
|
|
240
|
+
parameterProperty(find("generate_speech"), "file_path").description =
|
|
241
|
+
runtimePathDescription("audio/narration.mp3", " Parent directories are created as needed. Must end in a supported audio " +
|
|
242
|
+
"extension (.mp3, .wav, .ogg, .opus, .flac, .aac, .m4a, .aiff).");
|
|
243
|
+
return workspaceContext.presentFile
|
|
244
|
+
? definitions
|
|
245
|
+
: definitions.filter((definition) => definition.function.name !== "present_file");
|
|
145
246
|
}
|
|
146
247
|
//# 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,10 @@
|
|
|
1
1
|
import type { ArenaConfig } from "./config.js";
|
|
2
|
-
import type { AskUserHandler, MultimodalUserMessage, ToolCall, ToolMessage } from "./types.js";
|
|
3
|
-
interface ToolExecutorOptions {
|
|
2
|
+
import type { AskUserHandler, MultimodalUserMessage, ToolCall, ToolDefinition, ToolMessage, WorkspaceContext } from "./types.js";
|
|
3
|
+
export interface ToolExecutorOptions {
|
|
4
4
|
askUserHandler?: AskUserHandler;
|
|
5
|
+
deferUserInput?: boolean;
|
|
5
6
|
signal?: AbortSignal;
|
|
7
|
+
workspaceContext?: WorkspaceContext;
|
|
6
8
|
}
|
|
7
9
|
export declare class ToolExecutor {
|
|
8
10
|
private readonly config;
|
|
@@ -11,12 +13,20 @@ export declare class ToolExecutor {
|
|
|
11
13
|
private readonly validators;
|
|
12
14
|
private readonly pendingVisualContent;
|
|
13
15
|
private readonly askUserHandler?;
|
|
16
|
+
private readonly deferUserInput;
|
|
14
17
|
private readonly signal?;
|
|
18
|
+
private readonly workspaceContext?;
|
|
15
19
|
private readonly pageReader;
|
|
16
20
|
private readonly ajv;
|
|
21
|
+
readonly askUserEnabled: boolean;
|
|
17
22
|
constructor(config: ArenaConfig, options?: ToolExecutorOptions);
|
|
23
|
+
availableTools(toolNames?: readonly string[]): ToolDefinition[];
|
|
18
24
|
execute(call: ToolCall): Promise<ToolMessage>;
|
|
19
25
|
takeVisualMessage(toolCallIds: string[]): MultimodalUserMessage | undefined;
|
|
26
|
+
workspaceSnapshot(): Promise<Array<{
|
|
27
|
+
path: string;
|
|
28
|
+
content: string;
|
|
29
|
+
}>>;
|
|
20
30
|
private dispatch;
|
|
21
31
|
private confinedPath;
|
|
22
32
|
private relativePath;
|
|
@@ -31,5 +41,5 @@ export declare class ToolExecutor {
|
|
|
31
41
|
private presentFile;
|
|
32
42
|
private generateImage;
|
|
33
43
|
private generateSpeech;
|
|
44
|
+
private generateVideo;
|
|
34
45
|
}
|
|
35
|
-
export {};
|