nolo-cli 0.176.0-alpha.1 → 0.177.0-alpha.1
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/{_executeModel-OV72YSE4.js → _executeModel-6WX5JUK7.js} +14 -14
- package/{accountResolver-YGMLY3WW.js → accountResolver-OHS53Q75.js} +2 -2
- package/{agentDeleteCommand-HOWS5BAT.js → agentDeleteCommand-JQG2LSA5.js} +17 -17
- package/{agentEmailCommands-3EETPZFC.js → agentEmailCommands-OXTDO2NF.js} +19 -19
- package/{agentListCommands-7ZZHM4GC.js → agentListCommands-4EXK3SYL.js} +7 -7
- package/{agentMachineCommands-BGQVXERS.js → agentMachineCommands-EY7STQGY.js} +8 -8
- package/{agentRecordCommands-L2O46J54.js → agentRecordCommands-YBMNP36Y.js} +18 -18
- package/{agentRunCommand-7HDQ4RLO.js → agentRunCommand-RLLMSTZO.js} +19 -19
- package/{agentRuntimeLocal-3QX3FMER.js → agentRuntimeLocal-JNX6T5PK.js} +7 -7
- package/{agentSlice-VC7BZD5N.js → agentSlice-FYQAPKX5.js} +1 -1
- package/{appDeleteCommands-NJAVC6F4.js → appDeleteCommands-26FQDO25.js} +7 -7
- package/{appDeployCommands-POTCQDWQ.js → appDeployCommands-SUWSMHNK.js} +7 -7
- package/{appDeployStatusCommands-YIG5S2ET.js → appDeployStatusCommands-KQ7ENQE4.js} +7 -7
- package/{appGetCommands-HSXKEA64.js → appGetCommands-HGMGWU5B.js} +7 -7
- package/{appListCommands-GKLZKGKZ.js → appListCommands-2N6XHLGI.js} +7 -7
- package/{authCommand-2IUG2PX7.js → authCommand-44AMFHPM.js} +2 -2
- package/{chromeCommands-Z5LDHMYN.js → chromeCommands-VANHVOCE.js} +2 -2
- package/{chromeOpsCommands-CHBIUDJD.js → chromeOpsCommands-RY776THN.js} +2 -2
- package/{chunk-IR55JAHL.js → chunk-33BY55WF.js} +3 -3
- package/{chunk-33AGCT5W.js → chunk-3MZ33FL7.js} +1 -1
- package/{chunk-GHNRJ3TK.js → chunk-4NB4XLNL.js} +3 -3
- package/{chunk-CS4FUKMG.js → chunk-5VNY3X7V.js} +1 -1
- package/{chunk-SYIWIP4D.js → chunk-5ZTCH2Y6.js} +2 -2
- package/{chunk-MR7SWXO4.js → chunk-72ILVFRF.js} +15 -15
- package/{chunk-36OQE7ZU.js → chunk-ABEZP6S7.js} +9 -9
- package/{chunk-U3YGSKXD.js → chunk-AEZBL2MY.js} +1 -1
- package/{chunk-TV6QW46C.js → chunk-C2M3QZBC.js} +8 -8
- package/{chunk-DRR5E2EM.js → chunk-CY2NSJL5.js} +1 -1
- package/{chunk-GJU7F5IR.js → chunk-DN2DBFJ2.js} +1 -1
- package/{chunk-JJE5HQ6M.js → chunk-E23Y7NIR.js} +5 -5
- package/{chunk-XIM37FAU.js → chunk-FR2AHCB6.js} +8 -8
- package/{chunk-SRZ6BQIP.js → chunk-HIVDQPQR.js} +9 -1
- package/{chunk-QMFYP3O4.js → chunk-ITSMLMHJ.js} +1 -1
- package/{chunk-CCWUO2ZE.js → chunk-IZAL4EF7.js} +2 -2
- package/{chunk-IJOJMOCX.js → chunk-KYAMW3AY.js} +4 -4
- package/{chunk-3ERN2PSD.js → chunk-LP4XBYE7.js} +3 -3
- package/{chunk-LQRXBYTS.js → chunk-MBFXRU2T.js} +8 -8
- package/{chunk-P3KTMRQ2.js → chunk-NF5NWGPH.js} +1 -1
- package/{chunk-S4SXPMPC.js → chunk-NRO3AZRC.js} +2 -2
- package/{chunk-QA5LXQFO.js → chunk-PAI4KXWW.js} +55 -19
- package/{chunk-73FHDE7C.js → chunk-PN2D6STE.js} +2 -2
- package/{chunk-GA4NE7QH.js → chunk-RX7AYZIB.js} +3 -3
- package/{chunk-DPQYIS6D.js → chunk-YUXSWHQC.js} +3 -2
- package/{chunk-UPJVQK5J.js → chunk-YWEMVIRS.js} +2 -2
- package/{commandRegistry-B24YK3LB.js → commandRegistry-VUSP6YAY.js} +51 -51
- package/{contentThunks-F4Y7V4IH.js → contentThunks-HLBN6LDG.js} +3 -3
- package/{createAgentAutomationAction-7K5M7ULU.js → createAgentAutomationAction-KZHZ7RGX.js} +3 -3
- package/{createDialogAction-SYA2LFEN.js → createDialogAction-R4QDGQPX.js} +4 -4
- package/{createPageAction-FAYZZVYI.js → createPageAction-BEQBAYSA.js} +3 -3
- package/{dialogCommands-K6AQZTAS.js → dialogCommands-TH32KIJ4.js} +7 -7
- package/{dialogSlice-QRWP73XJ.js → dialogSlice-XUN4AEE6.js} +2 -2
- package/{docCreateCommands-3ZDCDYLH.js → docCreateCommands-DU2MJR2G.js} +7 -7
- package/{docDeleteCommands-O74MHZEA.js → docDeleteCommands-6POYBBEE.js} +7 -7
- package/{docReadCommands-QJPAFQS3.js → docReadCommands-SN2JJSMI.js} +7 -7
- package/{docStore-TABPPAGD.js → docStore-YGM3R64V.js} +1 -1
- package/{docUpdateCommands-M3THSN6V.js → docUpdateCommands-JBC4GWE6.js} +7 -7
- package/{handleSendMessageAction-FRBUFXEC.js → handleSendMessageAction-I3TYJFAZ.js} +7 -7
- package/index.js +4 -4
- package/{localRuntimeAdapter-2YSA5D7P.js → localRuntimeAdapter-MUGE4TRL.js} +17 -17
- package/{machineCommands-LVRRVNPD.js → machineCommands-EEFNO3WU.js} +18 -18
- package/{machineWsRunDispatch-HUQ6HPSC.js → machineWsRunDispatch-SXNCWZNO.js} +18 -18
- package/package.json +1 -1
- package/{readlineWorkspace-N74QNU7H.js → readlineWorkspace-W23GKNU7.js} +19 -19
- package/{runAgentClientLoop-NYZWX6JF.js → runAgentClientLoop-HZU57DWI.js} +12 -12
- package/{spaceCommands-5ZN5J2X3.js → spaceCommands-2D7RAC6A.js} +7 -7
- package/{streamAgentChatTurn-LP3RQ3K5.js → streamAgentChatTurn-YGVG54KM.js} +15 -15
- package/{tools-KYFVARQ5.js → tools-EHK4XG4X.js} +7 -7
- package/{tuiSummaryLlmCaller-OM3V6TZG.js → tuiSummaryLlmCaller-2MLU3QOG.js} +3 -3
- package/{updateDialogTitleAction-4ESKJ7L6.js → updateDialogTitleAction-FRLRJMQY.js} +3 -3
|
@@ -57,8 +57,8 @@ function createToolImageBudget() {
|
|
|
57
57
|
return "delivered";
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
-
function toolImageSource(message) {
|
|
61
|
-
const path = typeof message.content === "string" ? message.content.match(/→ ([^\s\x00-\x1f\x7f]+)/u)?.[1]?.replace(/\]$/, "") : void 0;
|
|
60
|
+
function toolImageSource(message, imageIndex = 0) {
|
|
61
|
+
const path = typeof message.content === "string" ? (Array.from(message.content.matchAll(/→ ([^\s\x00-\x1f\x7f]+)/gu))[imageIndex]?.[1] ?? message.content.match(/→ ([^\s\x00-\x1f\x7f]+)/u)?.[1])?.replace(/\]$/, "") : void 0;
|
|
62
62
|
return `${(message.tool_call_id ?? "unknown").replace(/[\x00-\x1f\x7f]/g, "")}${path ? ` (${path})` : ""}`;
|
|
63
63
|
}
|
|
64
64
|
function toolImageOmission(source, impossible) {
|
|
@@ -107,10 +107,10 @@ function projectOpenAiToolImages(messages, supportsImages) {
|
|
|
107
107
|
messages.forEach((message, index) => {
|
|
108
108
|
if (message.role === "tool") lastTool = index;
|
|
109
109
|
if (!supportsImages) return;
|
|
110
|
-
for (const image of toolImages(message)) {
|
|
110
|
+
for (const [imageIndex, image] of toolImages(message).entries()) {
|
|
111
111
|
const decision = budget(image);
|
|
112
112
|
if (decision === "duplicate") continue;
|
|
113
|
-
const source = toolImageSource(message);
|
|
113
|
+
const source = toolImageSource(message, imageIndex);
|
|
114
114
|
if (decision !== "delivered") {
|
|
115
115
|
omitted.push(toolImageOmission(source, decision === "impossible"));
|
|
116
116
|
continue;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
fetchReferenceContents,
|
|
3
3
|
resolveReferenceAssets
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YWEMVIRS.js";
|
|
5
5
|
import {
|
|
6
6
|
updateTokensAction
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MBFXRU2T.js";
|
|
8
8
|
import {
|
|
9
9
|
applyUpdateTokensFulfilled
|
|
10
10
|
} from "./chunk-OWYYDMGJ.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
extractReasoningFromResponseOutput,
|
|
13
13
|
extractTextFromResponseOutput,
|
|
14
14
|
extractToolCallsFromResponseOutput
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-AEZBL2MY.js";
|
|
16
16
|
import {
|
|
17
17
|
isRecord
|
|
18
18
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-QYPE3TS3.js";
|
|
12
12
|
import {
|
|
13
13
|
runLlm
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-4NB4XLNL.js";
|
|
15
15
|
import {
|
|
16
16
|
getApproxPricePerImage
|
|
17
17
|
} from "./chunk-4JH2UMJR.js";
|
|
@@ -11064,7 +11064,7 @@ var messageSlice = createSliceWithThunks({
|
|
|
11064
11064
|
runtimeOptions: args.runtimeOptions
|
|
11065
11065
|
});
|
|
11066
11066
|
if (agentKeyToUse) {
|
|
11067
|
-
const { streamAgentChatTurn } = await import("./agentSlice-
|
|
11067
|
+
const { streamAgentChatTurn } = await import("./agentSlice-FYQAPKX5.js");
|
|
11068
11068
|
await dispatch(
|
|
11069
11069
|
streamAgentChatTurn({
|
|
11070
11070
|
agentKey: agentKeyToUse,
|
|
@@ -13881,7 +13881,7 @@ var deleteDialogThunk = async (payload, thunkApi) => {
|
|
|
13881
13881
|
}
|
|
13882
13882
|
if (isCurrentDialog) {
|
|
13883
13883
|
await thunkApi.dispatch(resetMsgs());
|
|
13884
|
-
const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-
|
|
13884
|
+
const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-XUN4AEE6.js");
|
|
13885
13885
|
dispatch(clearPendingAttachments2());
|
|
13886
13886
|
}
|
|
13887
13887
|
return { dialogKey, isCurrentDialog, attachmentPlan };
|
|
@@ -13889,15 +13889,15 @@ var deleteDialogThunk = async (payload, thunkApi) => {
|
|
|
13889
13889
|
|
|
13890
13890
|
// packages/chat/dialog/dialogSlice.ts
|
|
13891
13891
|
var runCreateDialogAction = async (args, thunkApi) => {
|
|
13892
|
-
const { createDialogAction } = await import("./createDialogAction-
|
|
13892
|
+
const { createDialogAction } = await import("./createDialogAction-R4QDGQPX.js");
|
|
13893
13893
|
return createDialogAction(args, thunkApi);
|
|
13894
13894
|
};
|
|
13895
13895
|
var runCreateAgentAutomationAction = async (args, thunkApi) => {
|
|
13896
|
-
const { createAgentAutomationAction } = await import("./createAgentAutomationAction-
|
|
13896
|
+
const { createAgentAutomationAction } = await import("./createAgentAutomationAction-KZHZ7RGX.js");
|
|
13897
13897
|
return createAgentAutomationAction(args, thunkApi);
|
|
13898
13898
|
};
|
|
13899
13899
|
var runUpdateDialogTitleAction = async (args, thunkApi) => {
|
|
13900
|
-
const { updateDialogTitleAction } = await import("./updateDialogTitleAction-
|
|
13900
|
+
const { updateDialogTitleAction } = await import("./updateDialogTitleAction-FRLRJMQY.js");
|
|
13901
13901
|
return updateDialogTitleAction(args, thunkApi);
|
|
13902
13902
|
};
|
|
13903
13903
|
var runAddDialogAgentAction = async (args, thunkApi) => {
|
|
@@ -13921,7 +13921,7 @@ var runSetDialogExtraReferencesAction = async (args, thunkApi) => {
|
|
|
13921
13921
|
return setDialogExtraReferencesAction(args, thunkApi);
|
|
13922
13922
|
};
|
|
13923
13923
|
var runHandleSendMessageAction = async (args, thunkApi) => {
|
|
13924
|
-
const { handleSendMessageAction } = await import("./handleSendMessageAction-
|
|
13924
|
+
const { handleSendMessageAction } = await import("./handleSendMessageAction-I3TYJFAZ.js");
|
|
13925
13925
|
return handleSendMessageAction(args, thunkApi);
|
|
13926
13926
|
};
|
|
13927
13927
|
function clearDialogState() {
|
|
@@ -13934,7 +13934,7 @@ var createPageAndAddReference = createAsyncThunk(
|
|
|
13934
13934
|
async (payload, { dispatch, getState, rejectWithValue }) => {
|
|
13935
13935
|
const { slateData, jsonData, title, type, fileId, groupId, dialogKey } = payload;
|
|
13936
13936
|
try {
|
|
13937
|
-
const { createDocState } = await import("./docStore-
|
|
13937
|
+
const { createDocState } = await import("./docStore-YGM3R64V.js");
|
|
13938
13938
|
const pageKey = await createDocState(
|
|
13939
13939
|
{ slateData, title },
|
|
13940
13940
|
{ dispatch, getState }
|
|
@@ -333,7 +333,7 @@ async function saveDocState(arg, { dispatch, getState }) {
|
|
|
333
333
|
).unwrap();
|
|
334
334
|
if (dbSpaceId) {
|
|
335
335
|
try {
|
|
336
|
-
const { updateContentTitle } = await import("./contentThunks-
|
|
336
|
+
const { updateContentTitle } = await import("./contentThunks-HLBN6LDG.js");
|
|
337
337
|
await dispatch(
|
|
338
338
|
updateContentTitle({
|
|
339
339
|
spaceId: dbSpaceId,
|
|
@@ -372,7 +372,7 @@ async function saveDocState(arg, { dispatch, getState }) {
|
|
|
372
372
|
}
|
|
373
373
|
}
|
|
374
374
|
async function createDocState(args, thunkApi) {
|
|
375
|
-
const { createPageAction } = await import("./createPageAction-
|
|
375
|
+
const { createPageAction } = await import("./createPageAction-BEQBAYSA.js");
|
|
376
376
|
return createPageAction(args, thunkApi);
|
|
377
377
|
}
|
|
378
378
|
function subscribe(listener) {
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
DEVIN_CONNECT_URL,
|
|
3
3
|
parseSseDataLineJson,
|
|
4
4
|
parseSseDataLineObject
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ITSMLMHJ.js";
|
|
6
6
|
import {
|
|
7
7
|
applyChatCompletionDelta,
|
|
8
8
|
applyResponsesToolEvent,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
flushChatCompletionStream,
|
|
12
12
|
providerHttpFailure,
|
|
13
13
|
throwIfChatCompletionStreamFailed
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-CY2NSJL5.js";
|
|
15
15
|
import {
|
|
16
16
|
readSseFrames
|
|
17
17
|
} from "./chunk-HNUWUO75.js";
|
|
@@ -23,12 +23,13 @@ import {
|
|
|
23
23
|
EXECUTION_BACKEND_KINDS
|
|
24
24
|
} from "./chunk-PWTNI4N7.js";
|
|
25
25
|
import {
|
|
26
|
+
formatImageSummary,
|
|
26
27
|
readLocalImage
|
|
27
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-HIVDQPQR.js";
|
|
28
29
|
import {
|
|
29
30
|
hasImageInRuntimeMessages,
|
|
30
31
|
stripImagePartsFromMessages
|
|
31
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-5VNY3X7V.js";
|
|
32
33
|
import {
|
|
33
34
|
clipToolText,
|
|
34
35
|
resolveHistoricalToolContentCap,
|
|
@@ -96,7 +97,7 @@ import {
|
|
|
96
97
|
toOpenAiCompatibleMessages,
|
|
97
98
|
toResponsesTools,
|
|
98
99
|
transferDowngradedToolTurnOrigin
|
|
99
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-AEZBL2MY.js";
|
|
100
101
|
import {
|
|
101
102
|
TOOL_HAD_IMAGES,
|
|
102
103
|
TOOL_IMAGES,
|
|
@@ -109,7 +110,7 @@ import {
|
|
|
109
110
|
toolImageDelivery,
|
|
110
111
|
toolImages,
|
|
111
112
|
withoutToolImages
|
|
112
|
-
} from "./chunk-
|
|
113
|
+
} from "./chunk-KYAMW3AY.js";
|
|
113
114
|
import {
|
|
114
115
|
BRIDGE_STREAM_MAX_CHARS,
|
|
115
116
|
CLI_NOLO_WORKSPACE_TOOL_NAMES,
|
|
@@ -16017,11 +16018,9 @@ function createHostWindowCapture(options = {}) {
|
|
|
16017
16018
|
const path = fileURLToPath2(uri);
|
|
16018
16019
|
const image = await (options.readImage ?? readLocalImage)(path);
|
|
16019
16020
|
if (!image.images?.length) throw new Error("portal image could not be decoded");
|
|
16020
|
-
const dimensions = /\[image (\d+x\d+) (\d+) bytes/.exec(image.content);
|
|
16021
|
-
if (!dimensions) throw new Error("invalid image summary");
|
|
16022
16021
|
return {
|
|
16023
16022
|
...image,
|
|
16024
|
-
content:
|
|
16023
|
+
content: `${formatImageSummary({ kind: "screenshot", ...image.imageSummary })}
|
|
16025
16024
|
\u6765\u6E90\uFF1A\u5BBF\u4E3B portal \u5168\u5C4F/\u4EA4\u4E92\u9009\u62E9\u7ED3\u679C\uFF1Bportal \u672A\u63D0\u4F9B\u5E94\u7528/\u7A97\u53E3\u8EAB\u4EFD\uFF0C\u65E0\u6CD5\u786E\u8BA4\u7A97\u53E3\u540D\u3002`
|
|
16026
16025
|
};
|
|
16027
16026
|
} finally {
|
|
@@ -16886,8 +16885,17 @@ function buildWorkspaceToolDefinition(toolName) {
|
|
|
16886
16885
|
type: "function",
|
|
16887
16886
|
function: {
|
|
16888
16887
|
name: "read_image",
|
|
16889
|
-
description: "Read
|
|
16890
|
-
parameters: {
|
|
16888
|
+
description: "Read 1 to 4 local PNG/JPEG/WebP/GIF images in one call. Supply either path (one image) or paths (1\u20134 images), never both. Any failure rejects the entire batch. Long edges above 1568px are resized to JPEG q80. Maximum encoded base64 size is 2MiB per image; request budget remains 4 images / 8MiB.",
|
|
16889
|
+
parameters: {
|
|
16890
|
+
type: "object",
|
|
16891
|
+
properties: {
|
|
16892
|
+
path: buildWorkspacePathProperty(),
|
|
16893
|
+
paths: { type: "array", items: buildWorkspacePathProperty(), minItems: 1, maxItems: 4 }
|
|
16894
|
+
},
|
|
16895
|
+
// 不用 oneOf:不少兼容网关/严格模式不支持参数级组合子,模型会两个都传 →
|
|
16896
|
+
// 执行器拒绝 → 反复重试形成死循环(2026-10-27 实测)。互斥由执行器校验。
|
|
16897
|
+
additionalProperties: false
|
|
16898
|
+
}
|
|
16891
16899
|
}
|
|
16892
16900
|
};
|
|
16893
16901
|
}
|
|
@@ -17898,7 +17906,7 @@ async function captureVisualStateTool(args2) {
|
|
|
17898
17906
|
`waitSelector: ${captureArgs.waitSelector}`,
|
|
17899
17907
|
...captureArgs.focusSelector ? [`focusSelector: ${captureArgs.focusSelector}`] : [],
|
|
17900
17908
|
...captureArgs.expectText ? [`expectText: ${captureArgs.expectText}`] : [],
|
|
17901
|
-
|
|
17909
|
+
formatImageSummary({ kind: "screenshot", ...image.imageSummary })
|
|
17902
17910
|
].join("\n"),
|
|
17903
17911
|
images: image.images,
|
|
17904
17912
|
metadata: {
|
|
@@ -18298,13 +18306,41 @@ function createLocalWorkspaceToolExecutors(args2) {
|
|
|
18298
18306
|
},
|
|
18299
18307
|
read_image: async (call) => {
|
|
18300
18308
|
const parsed = parseWorkspaceToolArguments(call.arguments);
|
|
18301
|
-
if (Object.keys(parsed).some((key) => key !== "path"
|
|
18302
|
-
|
|
18303
|
-
|
|
18304
|
-
|
|
18305
|
-
|
|
18306
|
-
|
|
18307
|
-
|
|
18309
|
+
if (Object.keys(parsed).some((key) => key !== "path" && key !== "paths")) {
|
|
18310
|
+
throw new Error("read_image accepts only path or paths");
|
|
18311
|
+
}
|
|
18312
|
+
const mergedPaths = [];
|
|
18313
|
+
if ("paths" in parsed) {
|
|
18314
|
+
if (!Array.isArray(parsed.paths)) throw new Error("read_image: paths must be an array of strings");
|
|
18315
|
+
mergedPaths.push(...parsed.paths);
|
|
18316
|
+
}
|
|
18317
|
+
if ("path" in parsed) mergedPaths.unshift(requireWorkspaceToolPath(parsed));
|
|
18318
|
+
if (mergedPaths.length === 0) {
|
|
18319
|
+
throw new Error("read_image requires path or paths");
|
|
18320
|
+
}
|
|
18321
|
+
if (mergedPaths.length > 4) {
|
|
18322
|
+
throw new Error(`read_image: maximum 4 images; received ${mergedPaths.length}`);
|
|
18323
|
+
}
|
|
18324
|
+
const paths = mergedPaths;
|
|
18325
|
+
if (!Array.isArray(paths) || paths.length === 0 || paths.some((path) => typeof path !== "string" || !path.trim())) {
|
|
18326
|
+
throw new Error("read_image: paths must contain 1 to 4 non-empty string paths (maximum 4 images)");
|
|
18327
|
+
}
|
|
18328
|
+
const results2 = await Promise.all(paths.map(async (path) => {
|
|
18329
|
+
try {
|
|
18330
|
+
const absolutePath = await resolveLocalWorkspaceToolPath({
|
|
18331
|
+
workspaceRoot: args2.workspaceRoot,
|
|
18332
|
+
requestedPath: path,
|
|
18333
|
+
...fileAccess
|
|
18334
|
+
});
|
|
18335
|
+
return await readLocalImage(absolutePath);
|
|
18336
|
+
} catch (error) {
|
|
18337
|
+
throw new Error(`read_image: failed to read ${JSON.stringify(path)}: ${error instanceof Error ? error.message : String(error)}`);
|
|
18338
|
+
}
|
|
18339
|
+
}));
|
|
18340
|
+
return {
|
|
18341
|
+
content: results2.map((result4) => result4.content).join("\n"),
|
|
18342
|
+
images: results2.flatMap((result4) => result4.images ?? [])
|
|
18343
|
+
};
|
|
18308
18344
|
},
|
|
18309
18345
|
readFile: (call) => readFileTool({
|
|
18310
18346
|
call,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
addContentToSpace
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DN2DBFJ2.js";
|
|
4
4
|
import {
|
|
5
5
|
format,
|
|
6
6
|
prepareAndPersistMessage,
|
|
7
7
|
uiAskChoiceFunc,
|
|
8
8
|
uiAskChoiceFunctionSchema
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MBFXRU2T.js";
|
|
10
10
|
import {
|
|
11
11
|
formatISO
|
|
12
12
|
} from "./chunk-ZRAU6T47.js";
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
} from "./chunk-HS7MLR74.js";
|
|
4
4
|
import {
|
|
5
5
|
performServerProxyFetchWithRetry
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YWEMVIRS.js";
|
|
7
7
|
import {
|
|
8
8
|
fetchServerSyncedCredential
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-4NB4XLNL.js";
|
|
10
10
|
import {
|
|
11
11
|
buildSkillGuidancePromptBlock
|
|
12
12
|
} from "./chunk-3LNVSFTH.js";
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
resolveReasoningReplayOptions,
|
|
33
33
|
shouldStripReasoningContentForOutbound,
|
|
34
34
|
stablePromptCacheKey
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-AEZBL2MY.js";
|
|
36
36
|
import {
|
|
37
37
|
resolveAgentCallPlan,
|
|
38
38
|
resolveClientWire
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
|
+
formatImageSummary,
|
|
2
3
|
readLocalImage
|
|
3
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-HIVDQPQR.js";
|
|
4
5
|
import {
|
|
5
6
|
isRecord
|
|
6
7
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -247,7 +248,7 @@ async function screenshotResult(result) {
|
|
|
247
248
|
const image = await readLocalImage(path);
|
|
248
249
|
return {
|
|
249
250
|
content: `${JSON.stringify({ ok: true, result: { ...summary, savedTo: path } })}
|
|
250
|
-
${
|
|
251
|
+
${formatImageSummary({ kind: "screenshot", ...image.imageSummary })}`,
|
|
251
252
|
images: image.images
|
|
252
253
|
};
|
|
253
254
|
} catch (error) {
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
clipMultilineText,
|
|
3
3
|
fetchAndSerializeTable,
|
|
4
4
|
waitForAbortableDelay
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5ZTCH2Y6.js";
|
|
6
6
|
import {
|
|
7
7
|
isGatewayHttpStatus
|
|
8
8
|
} from "./chunk-NF64D32W.js";
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
} from "./chunk-AGIM7IMJ.js";
|
|
22
22
|
import {
|
|
23
23
|
fetchAndCacheMessages
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-MBFXRU2T.js";
|
|
25
25
|
import {
|
|
26
26
|
createSpaceKey
|
|
27
27
|
} from "./chunk-UAD2WT54.js";
|