@qwen-code/arena-agent 0.0.10-dev.5 → 0.0.10-dev.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 +19 -10
- package/CHANGELOG.md +160 -0
- package/README.md +50 -37
- package/dist/agent.d.ts +2 -2
- package/dist/agent.js +62 -96
- package/dist/agent.js.map +1 -1
- package/dist/anthropic.js +2 -0
- package/dist/anthropic.js.map +1 -1
- package/dist/ask-user.js +2 -0
- package/dist/ask-user.js.map +1 -1
- package/dist/attachments.js +4 -3
- package/dist/attachments.js.map +1 -1
- package/dist/cli.js +9 -8
- package/dist/cli.js.map +1 -1
- package/dist/code-tools.js +122 -30
- package/dist/code-tools.js.map +1 -1
- package/dist/compaction.d.ts +4 -2
- package/dist/compaction.js +37 -5
- package/dist/compaction.js.map +1 -1
- package/dist/config.d.ts +0 -2
- package/dist/config.js +2 -3
- package/dist/config.js.map +1 -1
- package/dist/file-edit.d.ts +2 -0
- package/dist/file-edit.js +9 -4
- package/dist/file-edit.js.map +1 -1
- package/dist/history.d.ts +7 -6
- package/dist/history.js +41 -46
- package/dist/history.js.map +1 -1
- package/dist/mode.js +3 -1
- package/dist/mode.js.map +1 -1
- package/dist/model-router-media.d.ts +1 -0
- package/dist/model-router-media.js +71 -1
- package/dist/model-router-media.js.map +1 -1
- package/dist/openai-responses.js +2 -0
- package/dist/openai-responses.js.map +1 -1
- package/dist/provider.d.ts +0 -1
- package/dist/provider.js +12 -41
- package/dist/provider.js.map +1 -1
- package/dist/replay-responses.d.ts +17 -0
- package/dist/replay-responses.js +100 -0
- package/dist/replay-responses.js.map +1 -0
- package/dist/routify-web-fetch.js +18 -4
- package/dist/routify-web-fetch.js.map +1 -1
- package/dist/server.js +7 -7
- package/dist/server.js.map +1 -1
- package/dist/spec.js +2 -0
- package/dist/spec.js.map +1 -1
- package/dist/speech-audio.d.ts +9 -0
- package/dist/speech-audio.js +130 -0
- package/dist/speech-audio.js.map +1 -0
- package/dist/speech-model.d.ts +3 -0
- package/dist/speech-model.js +8 -0
- package/dist/speech-model.js.map +1 -0
- package/dist/tools.js +81 -11
- package/dist/tools.js.map +1 -1
- package/dist/tui.js +6 -9
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +16 -2
- package/dist/voice-registry.d.ts +2 -0
- package/dist/voice-registry.js +10 -2
- package/dist/voice-registry.js.map +1 -1
- package/dist/web-fetch-output.d.ts +9 -0
- package/dist/web-fetch-output.js +38 -0
- package/dist/web-fetch-output.js.map +1 -0
- package/docs/BINARY_DISTRIBUTION.md +25 -16
- package/docs/MODES_AND_RELEASES.md +28 -5
- package/docs/SDK.md +4 -0
- package/package.json +9 -3
- package/scripts/README.md +62 -0
- package/scripts/check-changelog.mjs +66 -0
- package/vendor/audio/darwin-arm64/FFmpeg.LICENSE +502 -0
- package/vendor/audio/darwin-arm64/LAME.LICENSE +481 -0
- package/vendor/audio/darwin-arm64/Opus.LICENSE +44 -0
- package/vendor/audio/darwin-arm64/ffmpeg.gz +0 -0
- package/vendor/audio/darwin-arm64/manifest.json +39 -0
- package/vendor/audio/darwin-x64/FFmpeg.LICENSE +502 -0
- package/vendor/audio/darwin-x64/LAME.LICENSE +481 -0
- package/vendor/audio/darwin-x64/Opus.LICENSE +44 -0
- package/vendor/audio/darwin-x64/ffmpeg.gz +0 -0
- package/vendor/audio/darwin-x64/manifest.json +39 -0
- package/vendor/audio/linux-arm64/FFmpeg.LICENSE +502 -0
- package/vendor/audio/linux-arm64/LAME.LICENSE +481 -0
- package/vendor/audio/linux-arm64/Opus.LICENSE +44 -0
- package/vendor/audio/linux-arm64/ffmpeg.gz +0 -0
- package/vendor/audio/linux-arm64/manifest.json +39 -0
- package/vendor/audio/linux-x64/FFmpeg.LICENSE +502 -0
- package/vendor/audio/linux-x64/LAME.LICENSE +481 -0
- package/vendor/audio/linux-x64/Opus.LICENSE +44 -0
- package/vendor/audio/linux-x64/ffmpeg.gz +0 -0
- package/vendor/audio/linux-x64/manifest.json +39 -0
- package/vendor/audio/sources/build-audio-encoder.sh +76 -0
- package/vendor/audio/sources/ffmpeg-7.0.2.tar.xz +0 -0
- package/vendor/audio/sources/lame-3.100.tar.gz +0 -0
- package/vendor/audio/sources/opus-1.5.2.tar.gz +0 -0
- package/vendor/audio/sources/pkgconf-2.3.0.tar.xz +0 -0
- package/vendor/audio/sources/sources.lock.json +30 -0
- package/vendor/audio/win32-x64/FFmpeg.LICENSE +502 -0
- package/vendor/audio/win32-x64/LAME.LICENSE +481 -0
- package/vendor/audio/win32-x64/Opus.LICENSE +44 -0
- package/vendor/audio/win32-x64/ffmpeg.gz +0 -0
- package/vendor/audio/win32-x64/manifest.json +39 -0
package/dist/cli.js
CHANGED
|
@@ -9,7 +9,7 @@ import { attachmentUserMessage, maxAttachmentBytesPerMessage, maxAttachmentsPerM
|
|
|
9
9
|
import { configFromEnv } from "./config.js";
|
|
10
10
|
import { historyMetadata, IncrementalHistoryWriter, loadStoredHistoryState, saveStoredHistory, storedHistoryPath, } from "./history.js";
|
|
11
11
|
import { EventSink } from "./protocol.js";
|
|
12
|
-
import { parseHarnessMode } from "./mode.js";
|
|
12
|
+
import { isCodeArenaMode, parseHarnessMode } from "./mode.js";
|
|
13
13
|
import { embeddedTextAsset } from "./runtime-assets.js";
|
|
14
14
|
import { startServer } from "./server.js";
|
|
15
15
|
import { defaultClientContext } from "./spec.js";
|
|
@@ -103,8 +103,9 @@ function parsePromptOptions(argumentsList) {
|
|
|
103
103
|
" argument size limits. It cannot be combined with -p/--prompt.\n" +
|
|
104
104
|
"\n" +
|
|
105
105
|
" --attach (alias --image) saves a local file or downloaded URL into the\n" +
|
|
106
|
-
" workspace uploads/ directory and
|
|
107
|
-
"
|
|
106
|
+
" workspace uploads/ directory and lists it in the prompt. Local images\n" +
|
|
107
|
+
" are read on demand with read_file; URL images are also sent as image\n" +
|
|
108
|
+
" content. Repeat the flag for multiple files.");
|
|
108
109
|
process.exit(0);
|
|
109
110
|
}
|
|
110
111
|
else {
|
|
@@ -283,7 +284,7 @@ async function runPrompt(options) {
|
|
|
283
284
|
? confinedHistoryPath(workspace, options.historyFile)
|
|
284
285
|
: undefined;
|
|
285
286
|
const storedHistory = await loadStoredHistoryState(suppliedHistoryPath || sessionHistoryPath);
|
|
286
|
-
const sessionMemory = {
|
|
287
|
+
const sessionMemory = {};
|
|
287
288
|
const history = storedHistory?.messages;
|
|
288
289
|
const repoContext = resolveRepoContext(workspace, history, config.mode);
|
|
289
290
|
if (repoContext)
|
|
@@ -309,7 +310,7 @@ async function runPrompt(options) {
|
|
|
309
310
|
// --history-file is also mirrored into the serve-compatible session path.
|
|
310
311
|
// Seed that distinct base once so both incremental journals describe the
|
|
311
312
|
// same prefix even when the session path already existed.
|
|
312
|
-
await saveStoredHistory(sessionHistoryPath, storedHistory?.messages || [], metadata, storedHistory?.metrics ?? null, storedHistory?.tools
|
|
313
|
+
await saveStoredHistory(sessionHistoryPath, storedHistory?.messages || [], metadata, storedHistory?.metrics ?? null, storedHistory?.tools);
|
|
313
314
|
}
|
|
314
315
|
const historyWriters = [
|
|
315
316
|
await IncrementalHistoryWriter.create(sessionHistoryPath, storedHistory, metadata),
|
|
@@ -321,18 +322,18 @@ async function runPrompt(options) {
|
|
|
321
322
|
const persistHistory = async (messages, tools) => {
|
|
322
323
|
if (tools)
|
|
323
324
|
persistedTools = tools;
|
|
324
|
-
await Promise.all(historyWriters.map((writer) => writer.checkpoint(messages, persistedTools
|
|
325
|
+
await Promise.all(historyWriters.map((writer) => writer.checkpoint(messages, persistedTools)));
|
|
325
326
|
};
|
|
326
327
|
const result = await new Agent(config, sink, {
|
|
327
328
|
askUserHandler: remoteAskUserHandlerFromConfig(config, version),
|
|
328
329
|
sessionId,
|
|
329
330
|
clientContext: defaultClientContext(),
|
|
330
|
-
workspaceContext,
|
|
331
|
+
workspaceContext: isCodeArenaMode(config.mode) ? undefined : workspaceContext,
|
|
331
332
|
reuseHistoryMessages: true,
|
|
332
333
|
sessionMemory,
|
|
333
334
|
onCheckpoint: persistHistory,
|
|
334
335
|
}).run(options.prompt, history, { userMessage });
|
|
335
|
-
await Promise.all(historyWriters.map((writer) => writer.finalize(result.messages, storedHistory?.metrics ?? null, persistedTools
|
|
336
|
+
await Promise.all(historyWriters.map((writer) => writer.finalize(result.messages, storedHistory?.metrics ?? null, persistedTools)));
|
|
336
337
|
if (options.output === "json") {
|
|
337
338
|
console.log(JSON.stringify(result));
|
|
338
339
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAGA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAEL,qBAAqB,EACrB,4BAA4B,EAC5B,wBAAwB,EACxB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAqB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAoB,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,iBAAiB,CAAC,cAAc,CAAC;IAC/B,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAC3C,CAAC;AAE3B,IAAI,OAAO,eAAe,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;IAChD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;AACxC,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;AAqC3E,SAAS,SAAS,CAChB,aAAuB,EACvB,KAAa,EACb,IAAY,EACZ,SAAS,GAAG,KAAK;IAEjB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,aAAuB;IACjD,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;QACxB,WAAW,EAAE,EAAE;KAChB,CAAC;IACF,IAAI,YAAgC,CAAC;IACrC,IAAI,UAA8B,CAAC;IACnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YACjD,YAAY,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC/D,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,UAAU,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACvD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC7D,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YACpE,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,CAAC,MAAM,GAAG,MAAsB,CAAC;YACxC,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YACtC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9D,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1D,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3E,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YAC1C,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACjE,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,wBAAwB,EAAE,CAAC;YACjD,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACvE,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,mCAAmC,EAAE,CAAC;YAC5D,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC;QAC7C,CAAC;aAAM,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YACzC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAChE,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YACvC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9D,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CACT,UAAU,OAAO,kRAAkR;gBACjS,UAAU,OAAO,8MAA8M;gBAC/N,UAAU,OAAO,4LAA4L;gBAC7M,IAAI;gBACJ,wEAAwE;gBACxE,mEAAmE;gBACnE,IAAI;gBACJ,4EAA4E;gBAC5E,2EAA2E;gBAC3E,0EAA0E;gBAC1E,gDAAgD,CACnD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,GAAG,YAAY,IAAI,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,+CAA+C,OAAO,YAAY,OAAO,WAAW,CACrF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IACE,OAAO,CAAC,SAAS;QACjB,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAChD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,aAAuB;IAChD,MAAM,OAAO,GAAoB;QAC/B,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;KACzB,CAAC;IACF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACzD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;gBAChF,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC;YACD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YACtC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9D,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3E,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YAC1C,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACjE,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,wBAAwB,EAAE,CAAC;YACjD,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACvE,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,mCAAmC,EAAE,CAAC;YAC5D,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC;QAC7C,CAAC;aAAM,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CACT,UAAU,OAAO,0LAA0L,CAC5M,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,aAAuB;IAC9C,MAAM,OAAO,GAAkB;QAC7B,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;KACzB,CAAC;IACF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC/B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9D,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1D,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3E,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YAC1C,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACjE,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,wBAAwB,EAAE,CAAC;YACjD,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACvE,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,mCAAmC,EAAE,CAAC;YAC5D,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC;QAC7C,CAAC;aAAM,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YACzC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAChE,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YACvC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9D,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CACT,UAAU,OAAO,4MAA4M,CAC9N,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IACE,OAAO,CAAC,SAAS;QACjB,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAChD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,KAAa;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAsB;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClD,2EAA2E;IAC3E,2EAA2E;IAC3E,kEAAkE;IAClE,MAAM,gBAAgB,GAAG;QACvB,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,SAAS;QACd,WAAW,EAAE,IAAI;KACS,CAAC;IAC7B,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;QAClC,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAChD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,CAAC,2BAA2B,EAAE,CAAC;QACxC,MAAM,CAAC,2BAA2B,GAAG,IAAI,CAAC;IAC5C,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;IAC3D,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,kBAAkB,GAAG,iBAAiB,CAC1C,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,EACf,SAAS,CACV,CAAC;IACF,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW;QAC7C,CAAC,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC;QACrD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAChD,mBAAmB,IAAI,kBAAkB,CAC1C,CAAC;IACF,MAAM,aAAa,GAAuB,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,WAAW;QAAE,gBAAgB,CAAC,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC;IACjE,IAAI,WAAwC,CAAC;IAC7C,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,iCAAiC,wBAAwB,cAAc,CACxE,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAiB,EAAE,CAAC;QACrC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACzC,WAAW,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CACnC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,EAC9C,CAAC,CACF,CAAC;QACF,IAAI,UAAU,GAAG,4BAA4B,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,8BAA8B,4BAA4B,QAAQ,CACnE,CAAC;QACJ,CAAC;QACD,WAAW,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,yBAAyB,GAC7B,mBAAmB,KAAK,SAAS;QACjC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE,IAAI,yBAAyB,EAAE,CAAC;QAC9B,0EAA0E;QAC1E,yEAAyE;QACzE,0DAA0D;QAC1D,MAAM,iBAAiB,CACrB,kBAAkB,EAClB,aAAa,EAAE,QAAQ,IAAI,EAAE,EAC7B,QAAQ,EACR,aAAa,EAAE,OAAO,IAAI,IAAI,EAC9B,aAAa,EAAE,KAAK,CACrB,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG;QACrB,MAAM,wBAAwB,CAAC,MAAM,CACnC,kBAAkB,EAClB,aAAa,EACb,QAAQ,CACT;KACF,CAAC;IACF,IAAI,yBAAyB,EAAE,CAAC;QAC9B,cAAc,CAAC,IAAI,CACjB,MAAM,wBAAwB,CAAC,MAAM,CACnC,mBAAmB,EACnB,aAAa,EACb,QAAQ,CACT,CACF,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,GAA8B,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC;IAC3E,MAAM,cAAc,GAAG,KAAK,EAC1B,QAA4B,EAC5B,KAAiC,EAClB,EAAE;QACjB,IAAI,KAAK;YAAE,cAAc,GAAG,KAAK,CAAC;QAClC,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAC5E,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE;QAC3C,cAAc,EAAE,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC;QAC/D,SAAS;QACT,aAAa,EAAE,oBAAoB,EAAE;QACrC,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB;QAC7E,oBAAoB,EAAE,IAAI;QAC1B,aAAa;QACb,YAAY,EAAE,cAAc;KAC7B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACjD,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5B,MAAM,CAAC,QAAQ,CACb,MAAM,CAAC,QAAQ,EACf,aAAa,EAAE,OAAO,IAAI,IAAI,EAC9B,cAAc,CACf,CACF,CACF,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;YAClC,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,MAAM,WAAW,CAAC;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS;YACT,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,2BAA2B,EAAE,OAAO,CAAC,2BAA2B;SACjE,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QAC/B,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
package/dist/code-tools.js
CHANGED
|
@@ -12,11 +12,13 @@ import iconv from "iconv-lite";
|
|
|
12
12
|
import mime from "mime/lite";
|
|
13
13
|
import { executeBraveWebSearch } from "./brave-search.js";
|
|
14
14
|
import { FetchPageReader } from "./fetch-page.js";
|
|
15
|
-
import { replaceUniqueText } from "./file-edit.js";
|
|
15
|
+
import { replaceFirstText, replaceUniqueText } from "./file-edit.js";
|
|
16
16
|
import { generatedImageBytesForExtension } from "./image.js";
|
|
17
17
|
import { generateImageWithModelRouter, } from "./model-router-media.js";
|
|
18
18
|
import { executeRoutifyWebFetch, routifyWebFetchEnabled, } from "./routify-web-fetch.js";
|
|
19
|
+
import { replayResponseFor } from "./replay-responses.js";
|
|
19
20
|
import { toolDefinitions } from "./spec.js";
|
|
21
|
+
import { boundedWebFetchResult, truncateCodeArenaText } from "./web-fetch-output.js";
|
|
20
22
|
const knownTextApplicationMimeTypes = new Set([
|
|
21
23
|
"application/ecmascript",
|
|
22
24
|
"application/javascript",
|
|
@@ -451,9 +453,14 @@ function matchesGlob(filePath, pattern) {
|
|
|
451
453
|
matcher.test(path.posix.basename(normalized))));
|
|
452
454
|
});
|
|
453
455
|
}
|
|
454
|
-
function packageNameIsSafe(value) {
|
|
456
|
+
function packageNameIsSafe(value, mode) {
|
|
455
457
|
if (!value || value.startsWith("-") || /\s/.test(value))
|
|
456
458
|
return false;
|
|
459
|
+
if (mode === "react") {
|
|
460
|
+
// React captures reject version ranges before invoking npm, while accepting
|
|
461
|
+
// exact versions and tags such as latest. Keep other modes' validator intact.
|
|
462
|
+
return /^(?:@[\w.-]+\/)?[\w.-]+(?:@[\w.+-]+)?$/.test(value);
|
|
463
|
+
}
|
|
457
464
|
return /^(?:@[\w.-]+\/)?[\w.-]+(?:@(?:[\w*^<>=|.+-]+))?$/.test(value);
|
|
458
465
|
}
|
|
459
466
|
function valueAtPath(value, instancePath) {
|
|
@@ -765,9 +772,14 @@ export class CodeToolExecutor {
|
|
|
765
772
|
// 监听器不会补发已发生的 abort:已取消的 signal 必须在产生任何副作用
|
|
766
773
|
// 之前短路,否则命令会照常 spawn 直到自然结束。
|
|
767
774
|
this.signal?.throwIfAborted();
|
|
768
|
-
const
|
|
775
|
+
const parsedArguments = JSON.parse(typeof call.function?.arguments === "string"
|
|
769
776
|
? call.function.arguments
|
|
770
777
|
: "{}");
|
|
778
|
+
// React captures normalize a string-valued argument payload to an empty
|
|
779
|
+
// object before validating required fields (rather than echoing the string).
|
|
780
|
+
const argumentsValue = this.config.mode === "react" && typeof parsedArguments === "string"
|
|
781
|
+
? {}
|
|
782
|
+
: parsedArguments;
|
|
771
783
|
// The captured provider advertises these fields as required, but its
|
|
772
784
|
// runtime still applies the documented defaults when a model omits
|
|
773
785
|
// them. Preserve the byte-identical outgoing schema while matching the
|
|
@@ -779,6 +791,11 @@ export class CodeToolExecutor {
|
|
|
779
791
|
else if (name === "list_files" || name === "glob_files") {
|
|
780
792
|
argumentsValue.path ??= "";
|
|
781
793
|
}
|
|
794
|
+
else if (this.config.mode === "full-stack" && name === "bash" &&
|
|
795
|
+
argumentsValue && typeof argumentsValue === "object" &&
|
|
796
|
+
!Array.isArray(argumentsValue) && argumentsValue.workdir === undefined) {
|
|
797
|
+
argumentsValue.workdir = "";
|
|
798
|
+
}
|
|
782
799
|
else if (name === "grep_files") {
|
|
783
800
|
argumentsValue.path ??= "";
|
|
784
801
|
argumentsValue.glob ??= "";
|
|
@@ -843,6 +860,13 @@ export class CodeToolExecutor {
|
|
|
843
860
|
};
|
|
844
861
|
}
|
|
845
862
|
async dispatch(name, values, _toolCallId) {
|
|
863
|
+
// Replay mode (CODE_HARNESS_REPLAY_RESPONSES set): serve recorded outputs
|
|
864
|
+
// verbatim for nondeterministic tools (web_search/web_fetch/fetch_media/…)
|
|
865
|
+
// so replayed sessions stay offline and deterministic. Unlisted calls fall
|
|
866
|
+
// through to real execution.
|
|
867
|
+
const replayed = replayResponseFor(name, values);
|
|
868
|
+
if (replayed)
|
|
869
|
+
return replayed.output;
|
|
846
870
|
switch (name) {
|
|
847
871
|
case "read_file":
|
|
848
872
|
return this.readCodeFile(String(values.path), Number(values.offset), Number(values.limit));
|
|
@@ -1064,7 +1088,9 @@ export class CodeToolExecutor {
|
|
|
1064
1088
|
status: "success",
|
|
1065
1089
|
file: {
|
|
1066
1090
|
path: this.relativePath(target),
|
|
1067
|
-
content:
|
|
1091
|
+
content: this.config.mode === "react"
|
|
1092
|
+
? truncateCodeArenaText(`${numbered}\n\n${footer}`)
|
|
1093
|
+
: `${numbered}\n\n${footer}`,
|
|
1068
1094
|
contentType: contentTypeForFile(target),
|
|
1069
1095
|
},
|
|
1070
1096
|
totalLines: lines.length,
|
|
@@ -1147,15 +1173,24 @@ export class CodeToolExecutor {
|
|
|
1147
1173
|
message: `File "${rawPath}" does not exist`,
|
|
1148
1174
|
};
|
|
1149
1175
|
}
|
|
1150
|
-
|
|
1176
|
+
// React replaces the first exact occurrence, including when an indented
|
|
1177
|
+
// context also occurs on a later, more deeply indented line. Keep the
|
|
1178
|
+
// existing uniqueness check for fuzzy fallback and the other modes.
|
|
1179
|
+
const replace = this.config.mode === "react" && context.length > 0 && source.includes(context)
|
|
1180
|
+
? replaceFirstText : replaceUniqueText;
|
|
1181
|
+
const edited = replace(source, context, replacement, {
|
|
1151
1182
|
whitespaceInsensitiveMultiline: true,
|
|
1183
|
+
whitespaceInsensitiveSingleLine: this.config.mode === "react",
|
|
1184
|
+
preserveNewlines: this.config.mode === "react",
|
|
1152
1185
|
});
|
|
1153
1186
|
if (edited === undefined) {
|
|
1154
1187
|
// Captured sessions re-issue an edit after compaction or a retry. The
|
|
1155
1188
|
// provider reports success without touching the file when the context
|
|
1156
1189
|
// is already gone and the replacement is in place (f39 re-issues four
|
|
1157
1190
|
// dashboard edits this way).
|
|
1158
|
-
|
|
1191
|
+
// That retry behavior comes from Full Stack captures. React still
|
|
1192
|
+
// reports Context not found even when the replacement is present.
|
|
1193
|
+
if (this.config.mode !== "react" && replacement && source.includes(replacement)) {
|
|
1159
1194
|
return this.mutationResult("Edited", rawPath);
|
|
1160
1195
|
}
|
|
1161
1196
|
return {
|
|
@@ -1198,6 +1233,19 @@ export class CodeToolExecutor {
|
|
|
1198
1233
|
}
|
|
1199
1234
|
current?.lines.push(line);
|
|
1200
1235
|
}
|
|
1236
|
+
if (this.config.mode === "react") {
|
|
1237
|
+
// React parses duplicate operation paths before applying any writes.
|
|
1238
|
+
// In particular, Delete + Add of the same file is an Add duplicate.
|
|
1239
|
+
const seen = new Set();
|
|
1240
|
+
for (const operation of operations) {
|
|
1241
|
+
const target = await this.confinedPath(operation.path);
|
|
1242
|
+
if (seen.has(target)) {
|
|
1243
|
+
const label = operation.kind[0].toUpperCase() + operation.kind.slice(1);
|
|
1244
|
+
return { status: "error", message: `${label} File Error: Duplicate Path: ${operation.path}` };
|
|
1245
|
+
}
|
|
1246
|
+
seen.add(target);
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1201
1249
|
for (const operation of operations) {
|
|
1202
1250
|
const target = await this.confinedPath(operation.path);
|
|
1203
1251
|
if (operation.kind === "add") {
|
|
@@ -1313,6 +1361,11 @@ export class CodeToolExecutor {
|
|
|
1313
1361
|
return { status: "success" };
|
|
1314
1362
|
}
|
|
1315
1363
|
async listCodeFiles(rawPath) {
|
|
1364
|
+
if (this.config.mode === "react" && rawPath === "/")
|
|
1365
|
+
rawPath = ".";
|
|
1366
|
+
if (this.config.mode === "react" && (path.isAbsolute(rawPath) || rawPath.includes(".."))) {
|
|
1367
|
+
return { status: "error", message: "Path must be relative to project root (no absolute paths or '..' traversal)" };
|
|
1368
|
+
}
|
|
1316
1369
|
const target = await this.confinedPath(rawPath || ".");
|
|
1317
1370
|
if (!(await this.existsWithExactCase(rawPath || ".")) ||
|
|
1318
1371
|
!existsSync(target)) {
|
|
@@ -1321,7 +1374,8 @@ export class CodeToolExecutor {
|
|
|
1321
1374
|
const files = this.orderListedFiles(await this.walkFiles(target));
|
|
1322
1375
|
return {
|
|
1323
1376
|
status: "success",
|
|
1324
|
-
files: files.
|
|
1377
|
+
files: (this.config.mode === "react" ? files.slice(0, 500) : files)
|
|
1378
|
+
.map((filePath) => ({ path: filePath })),
|
|
1325
1379
|
};
|
|
1326
1380
|
}
|
|
1327
1381
|
async grepCodeFiles(values) {
|
|
@@ -1408,8 +1462,10 @@ export class CodeToolExecutor {
|
|
|
1408
1462
|
continue;
|
|
1409
1463
|
}
|
|
1410
1464
|
const lines = content.split("\n");
|
|
1465
|
+
const searchLineCount = this.config.mode === "react" && lines.at(-1) === ""
|
|
1466
|
+
? lines.length - 1 : lines.length;
|
|
1411
1467
|
const matchingLines = [];
|
|
1412
|
-
for (let index = 0; index <
|
|
1468
|
+
for (let index = 0; index < searchLineCount; index += 1) {
|
|
1413
1469
|
if (expression.test(lines[index]))
|
|
1414
1470
|
matchingLines.push(index);
|
|
1415
1471
|
}
|
|
@@ -1440,6 +1496,24 @@ export class CodeToolExecutor {
|
|
|
1440
1496
|
if (previousAfter.length > 0)
|
|
1441
1497
|
match.contextAfter = previousAfter;
|
|
1442
1498
|
}
|
|
1499
|
+
else if (this.config.mode === "react") {
|
|
1500
|
+
// The captured adapter attaches context lines to the preceding
|
|
1501
|
+
// match, even across ripgrep group separators. Only a file's first
|
|
1502
|
+
// match receives contextBefore. Do not duplicate overlapping groups.
|
|
1503
|
+
if (position === 0 && before > 0) {
|
|
1504
|
+
const contextBefore = lines.slice(Math.max(0, index - before), index);
|
|
1505
|
+
if (contextBefore.length)
|
|
1506
|
+
match.contextBefore = contextBefore;
|
|
1507
|
+
}
|
|
1508
|
+
const nextMatch = matchingLines[position + 1];
|
|
1509
|
+
const end = Math.min(index + 1 + after, nextMatch ?? searchLineCount);
|
|
1510
|
+
const contextAfter = lines.slice(index + 1, end);
|
|
1511
|
+
if (nextMatch !== undefined && before > 0) {
|
|
1512
|
+
contextAfter.push(...lines.slice(Math.max(end, index + 1, nextMatch - before), nextMatch));
|
|
1513
|
+
}
|
|
1514
|
+
if (contextAfter.length)
|
|
1515
|
+
match.contextAfter = contextAfter;
|
|
1516
|
+
}
|
|
1443
1517
|
else {
|
|
1444
1518
|
if (before > 0) {
|
|
1445
1519
|
match.contextBefore = lines.slice(Math.max(0, index - before), index);
|
|
@@ -1495,7 +1569,7 @@ export class CodeToolExecutor {
|
|
|
1495
1569
|
return { status: "success", paths: [], truncated: false };
|
|
1496
1570
|
}
|
|
1497
1571
|
const allPaths = files
|
|
1498
|
-
.filter((filePath) => matchesGlob(path.relative(target, filePath).split(path.sep).join("/"), pattern))
|
|
1572
|
+
.filter((filePath) => matchesGlob(path.relative(target, filePath).split(path.sep).join("/"), pattern) || (this.config.mode === "react" && matchesGlob(this.relativePath(filePath), pattern)))
|
|
1499
1573
|
.map((filePath) => this.relativePath(filePath));
|
|
1500
1574
|
return {
|
|
1501
1575
|
status: "success",
|
|
@@ -1568,11 +1642,11 @@ export class CodeToolExecutor {
|
|
|
1568
1642
|
});
|
|
1569
1643
|
}
|
|
1570
1644
|
async installNpmPackages(packages) {
|
|
1571
|
-
const invalid = packages.find((packageName) => !packageNameIsSafe(packageName));
|
|
1645
|
+
const invalid = packages.find((packageName) => !packageNameIsSafe(packageName, this.config.mode));
|
|
1572
1646
|
if (invalid) {
|
|
1573
1647
|
return {
|
|
1574
1648
|
status: "error",
|
|
1575
|
-
message: `Invalid package name: ${invalid}`,
|
|
1649
|
+
message: `Invalid package name: ${this.config.mode === "react" ? JSON.stringify(invalid) : invalid}`,
|
|
1576
1650
|
};
|
|
1577
1651
|
}
|
|
1578
1652
|
const args = ["install", "-S"];
|
|
@@ -1611,11 +1685,15 @@ export class CodeToolExecutor {
|
|
|
1611
1685
|
};
|
|
1612
1686
|
}
|
|
1613
1687
|
async fullStackBash(command, workdir) {
|
|
1688
|
+
const cwd = workdir.trim() || ".";
|
|
1689
|
+
if (path.isAbsolute(cwd) || cwd.includes("..")) {
|
|
1690
|
+
throw new Error(`Invalid workdir: ${cwd}. Commands run from the project root by default. Only use workdir for relative subdirectories, never absolute paths.`);
|
|
1691
|
+
}
|
|
1614
1692
|
const configuredTimeout = Number(process.env.CODE_HARNESS_BASH_TIMEOUT_SECONDS || 300);
|
|
1615
1693
|
const timeoutSeconds = Number.isFinite(configuredTimeout) && configuredTimeout > 0
|
|
1616
1694
|
? configuredTimeout
|
|
1617
1695
|
: 300;
|
|
1618
|
-
const result = await this.bash(command,
|
|
1696
|
+
const result = await this.bash(command, cwd, timeoutSeconds);
|
|
1619
1697
|
const exitCode = result.exit_code;
|
|
1620
1698
|
const stdout = String(result.stdout || "");
|
|
1621
1699
|
const stderr = String(result.stderr || "");
|
|
@@ -1886,11 +1964,7 @@ export class CodeToolExecutor {
|
|
|
1886
1964
|
const result = routifyWebFetchEnabled()
|
|
1887
1965
|
? await executeRoutifyWebFetch(url, format, { signal: this.signal })
|
|
1888
1966
|
: await this.pageReader.readFormatted(url, format);
|
|
1889
|
-
return
|
|
1890
|
-
status: "success",
|
|
1891
|
-
title: String(result.title || "No Title Found"),
|
|
1892
|
-
content: String(result.content || ""),
|
|
1893
|
-
};
|
|
1967
|
+
return boundedWebFetchResult(result);
|
|
1894
1968
|
}
|
|
1895
1969
|
async pexelsRequest(pathname, parameters) {
|
|
1896
1970
|
const apiKey = process.env.PEXELS_API_KEY;
|
|
@@ -1929,7 +2003,7 @@ export class CodeToolExecutor {
|
|
|
1929
2003
|
},
|
|
1930
2004
|
});
|
|
1931
2005
|
}
|
|
1932
|
-
mapPexelsPhotos(payload) {
|
|
2006
|
+
mapPexelsPhotos(payload, orientation) {
|
|
1933
2007
|
const photos = Array.isArray(payload.photos) ? payload.photos : [];
|
|
1934
2008
|
return photos.map((value) => {
|
|
1935
2009
|
const photo = record(value);
|
|
@@ -1938,12 +2012,14 @@ export class CodeToolExecutor {
|
|
|
1938
2012
|
type: "image",
|
|
1939
2013
|
id: Number(photo.id),
|
|
1940
2014
|
pexelsUrl: stringValue(photo.url),
|
|
1941
|
-
recommendedUrl:
|
|
2015
|
+
recommendedUrl: (orientation === "landscape" || orientation === "portrait"
|
|
2016
|
+
? stringValue(source[orientation]) : "") ||
|
|
2017
|
+
stringValue(source.large2x) ||
|
|
1942
2018
|
stringValue(source.large) ||
|
|
1943
2019
|
stringValue(source.original),
|
|
1944
|
-
thumbnailUrl: stringValue(source.
|
|
1945
|
-
stringValue(source.
|
|
1946
|
-
stringValue(source.
|
|
2020
|
+
thumbnailUrl: stringValue(source.tiny) ||
|
|
2021
|
+
stringValue(source.medium) ||
|
|
2022
|
+
stringValue(source.small),
|
|
1947
2023
|
width: Number(photo.width),
|
|
1948
2024
|
height: Number(photo.height),
|
|
1949
2025
|
creatorName: stringValue(photo.photographer),
|
|
@@ -1963,20 +2039,29 @@ export class CodeToolExecutor {
|
|
|
1963
2039
|
const files = Array.isArray(video.video_files)
|
|
1964
2040
|
? video.video_files.map(record)
|
|
1965
2041
|
: [];
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
2042
|
+
// Captures contain full-resolution HD/UHD files. A quality label alone
|
|
2043
|
+
// does not order renditions; compare their actual pixel dimensions.
|
|
2044
|
+
const playable = files.filter((item) => stringValue(item.file_type) === "video/mp4" && stringValue(item.link));
|
|
2045
|
+
const preferred = playable.sort((left, right) => (Number(right.width) || 0) * (Number(right.height) || 0) -
|
|
2046
|
+
(Number(left.width) || 0) * (Number(left.height) || 0))[0] || files[0] || {};
|
|
1969
2047
|
return {
|
|
1970
2048
|
type: "video",
|
|
1971
2049
|
id: Number(video.id),
|
|
1972
2050
|
pexelsUrl: stringValue(video.url),
|
|
1973
2051
|
recommendedUrl: stringValue(preferred.link),
|
|
1974
|
-
thumbnailUrl: stringValue(pictures[0]?.picture),
|
|
2052
|
+
thumbnailUrl: stringValue(video.image) || stringValue(pictures[0]?.picture),
|
|
1975
2053
|
width: Number(video.width),
|
|
1976
2054
|
height: Number(video.height),
|
|
1977
2055
|
duration: Number(video.duration),
|
|
1978
2056
|
creatorName: stringValue(user.name),
|
|
1979
2057
|
creatorUrl: stringValue(user.url),
|
|
2058
|
+
videoFile: {
|
|
2059
|
+
url: stringValue(preferred.link),
|
|
2060
|
+
width: Number(preferred.width),
|
|
2061
|
+
height: Number(preferred.height),
|
|
2062
|
+
...(preferred.quality !== undefined ? { quality: preferred.quality } : {}),
|
|
2063
|
+
fileType: stringValue(preferred.file_type),
|
|
2064
|
+
},
|
|
1980
2065
|
};
|
|
1981
2066
|
});
|
|
1982
2067
|
}
|
|
@@ -1994,7 +2079,7 @@ export class CodeToolExecutor {
|
|
|
1994
2079
|
if (mediaType === "image" || mediaType === "both") {
|
|
1995
2080
|
const photos = await this.pexelsRequest("/v1/search", common);
|
|
1996
2081
|
totalResults += Number(photos.total_results || 0);
|
|
1997
|
-
photoResults = this.mapPexelsPhotos(photos);
|
|
2082
|
+
photoResults = this.mapPexelsPhotos(photos, orientation);
|
|
1998
2083
|
}
|
|
1999
2084
|
if (mediaType === "video" || mediaType === "both") {
|
|
2000
2085
|
const videos = await this.pexelsRequest("/v1/videos/search", common);
|
|
@@ -2016,13 +2101,20 @@ export class CodeToolExecutor {
|
|
|
2016
2101
|
}
|
|
2017
2102
|
async fetchMedia(query, mediaType, count, orientation, size, locale) {
|
|
2018
2103
|
const requestedCount = Math.min(10, Math.max(1, Math.trunc(count)));
|
|
2019
|
-
|
|
2104
|
+
try {
|
|
2105
|
+
return await this.fetchMediaFromPexels(query, mediaType, requestedCount, orientation, size, locale);
|
|
2106
|
+
}
|
|
2107
|
+
catch (error) {
|
|
2108
|
+
throw new Error(`Media fetch failed: ${errorMessage(error)}`);
|
|
2109
|
+
}
|
|
2020
2110
|
}
|
|
2021
2111
|
async generateImage(rawPath, prompt, images) {
|
|
2022
2112
|
if (this.generatedImageCount >= 10) {
|
|
2023
2113
|
return {
|
|
2024
2114
|
status: "error",
|
|
2025
|
-
message:
|
|
2115
|
+
message: this.config.mode === "react"
|
|
2116
|
+
? "Failed to generate image: Image generation limit of 10 reached for this session. Use CSS gradients, SVG, or placeholder images for remaining visuals."
|
|
2117
|
+
: "generate_image can be used at most 10 times per session",
|
|
2026
2118
|
};
|
|
2027
2119
|
}
|
|
2028
2120
|
this.generatedImageCount += 1;
|
|
@@ -2034,7 +2126,7 @@ export class CodeToolExecutor {
|
|
|
2034
2126
|
mkdirSync(path.dirname(target), { recursive: true });
|
|
2035
2127
|
const model = process.env.CODE_HARNESS_IMAGE_MODEL ||
|
|
2036
2128
|
process.env.ARENA_IMAGE_MODEL ||
|
|
2037
|
-
"gemini-
|
|
2129
|
+
"gemini-3.1-flash-image";
|
|
2038
2130
|
const references = [];
|
|
2039
2131
|
for (const imagePath of images || []) {
|
|
2040
2132
|
const source = await this.confinedPath(imagePath);
|