nolo-cli 0.16.0 → 0.17.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/{_executeModel-AVCA2NAV.js → _executeModel-WPNX5DH4.js} +49 -43
- package/{action-F5JACQBG.js → action-LT7BRFLK.js} +10 -9
- package/{addContentAction-AQXEYRBE.js → addContentAction-PL3KKBDH.js} +9 -8
- package/{addDialogAgentAction-EJHHJZWW.js → addDialogAgentAction-FCMSKYAF.js} +8 -7
- package/{agentDeleteCommand-QW5PUMDQ.js → agentDeleteCommand-L3357EFL.js} +31 -28
- package/{agentEmailCommands-4ORVLGVQ.js → agentEmailCommands-N65AVLEI.js} +61 -55
- package/{agentListCommands-YWBYRTYC.js → agentListCommands-CH27FTI2.js} +30 -27
- package/{agentMachineCommands-JSQW4FOA.js → agentMachineCommands-PPK5HJZB.js} +29 -26
- package/{agentPullCommand-6HWUT3SW.js → agentPullCommand-ZZGU5KOY.js} +4 -4
- package/{agentRecordCommands-AASIWOBT.js → agentRecordCommands-HTVXD4TT.js} +56 -50
- package/{agentRunCommand-TB5BHXUH.js → agentRunCommand-MGLVJUA5.js} +62 -53
- package/{agentRunControl-6ADXVYMR.js → agentRunControl-P75VPTGS.js} +24 -1
- package/{agentRuntimeLocal-QNPNJRVH.js → agentRuntimeLocal-QUTBSY3I.js} +24 -21
- package/{agentSlice-RUNXC62Y.js → agentSlice-DOGRCMWK.js} +9 -8
- package/appDeleteCommands-FEEVXUBG.js +127 -0
- package/appDeployCommands-C4HCGC4B.js +166 -0
- package/appDeployStatusCommands-IR5ZUZBQ.js +147 -0
- package/appGetCommands-6RJGZ66Z.js +122 -0
- package/appListCommands-VMTF5YZF.js +125 -0
- package/{authCommand-YFTR3347.js → authCommand-WJZPOLSS.js} +16 -9
- package/{authCommands-YXGOXNBZ.js → authCommands-XTBV7OFZ.js} +6 -5
- package/{chunk-XPC5C7BK.js → chunk-3ND52WIL.js} +2 -2
- package/{chunk-SOTZ6RDN.js → chunk-3Q7WHGCB.js} +1 -1
- package/{chunk-M43KDE25.js → chunk-45BY7RLP.js} +2 -8
- package/{chunk-KKY4B2Q2.js → chunk-4PWB7JRR.js} +4 -1
- package/{chunk-6N4KODMN.js → chunk-4T5F7YZQ.js} +1 -1
- package/chunk-7BUYEZ6U.js +671 -0
- package/{chunk-AS3ZQ3O2.js → chunk-7OBMZCRD.js} +1 -1
- package/{chunk-AVVZUXXC.js → chunk-AAODAAUQ.js} +34 -13
- package/{chunk-QLUFR47U.js → chunk-AL2V7U3E.js} +1 -1
- package/{chunk-MTU75CZ2.js → chunk-B5TOXZAK.js} +1 -1
- package/{chunk-AUURUT6L.js → chunk-BT6K76S7.js} +238 -424
- package/chunk-CEFXYF66.js +107 -0
- package/{chunk-RLCXU7A5.js → chunk-D3HVJJIA.js} +1 -1
- package/{chunk-JTMNCCWF.js → chunk-DKZFOK24.js} +16 -87
- package/chunk-DL6EPNIK.js +50 -0
- package/{chunk-4L2OJPCU.js → chunk-EGPCU42M.js} +58 -8
- package/{chunk-IWLUTMYX.js → chunk-ELT65PZW.js} +2 -2
- package/chunk-FKXFCYVO.js +221 -0
- package/{chunk-4FX6NVDW.js → chunk-FPKLD4KB.js} +3 -136
- package/{chunk-PCTUYVUM.js → chunk-FVIPEIVX.js} +10 -3
- package/chunk-GFUIQ4RY.js +136 -0
- package/{chunk-66X4VSRC.js → chunk-HQPG2PIV.js} +41 -1
- package/{chunk-IGXREZW2.js → chunk-HV2A3B4W.js} +1 -1
- package/{chunk-LPEUV5RE.js → chunk-IOOMJJ4Z.js} +2 -2
- package/{setDialogExtraReferencesAction-LR6MSIXO.js → chunk-JLA4FXYC.js} +2 -17
- package/{chunk-3OIRVWXA.js → chunk-JP7REMYP.js} +10 -1
- package/chunk-KFEVY3ST.js +255 -0
- package/{chunk-P3RIAYGG.js → chunk-L2MLZQXU.js} +3 -3
- package/{chunk-55NSNCFM.js → chunk-L6NVTGI7.js} +1 -1
- package/{chunk-3WGLLTK4.js → chunk-LSFAWXKC.js} +100 -3
- package/{chunk-S2LXHNHG.js → chunk-MD3V54DA.js} +6 -6
- package/{chunk-6EVITP2G.js → chunk-MUCU6ATG.js} +2 -251
- package/{chunk-KFHN5NGJ.js → chunk-MVQ4TBSD.js} +1 -1
- package/{chunk-ZQBL7LIC.js → chunk-NEKFSXOP.js} +310 -211
- package/{chunk-NSCHQQPU.js → chunk-NVB267BZ.js} +397 -324
- package/{chunk-Z5JQNBNY.js → chunk-NYUXSXLY.js} +33 -14
- package/{chunk-FRV6A633.js → chunk-PZCBZO4J.js} +2 -2
- package/{chunk-GSINCD4P.js → chunk-QCJITMYO.js} +21 -11
- package/{chunk-OOSFSFMA.js → chunk-R5V5G73M.js} +2 -0
- package/{chunk-4IJYA27C.js → chunk-RG2U2MTJ.js} +1 -1
- package/{chunk-BEBNFWDU.js → chunk-RRGVDPH3.js} +3 -3
- package/{chunk-EABWT43X.js → chunk-RVOUXDFU.js} +5 -5
- package/{chunk-JTINRTBT.js → chunk-SKDNBYZK.js} +2 -2
- package/{chunk-3663CXZN.js → chunk-SNZV4QCE.js} +65 -22
- package/{chunk-KMQPSTMJ.js → chunk-TRT4I4UD.js} +2 -2
- package/{chunk-MYMMNKYL.js → chunk-TSIYZBTH.js} +156 -6
- package/{chunk-EHLHSX7R.js → chunk-UB4RYYNQ.js} +9 -2
- package/{chunk-YJKXGHJ6.js → chunk-UGUW3FHG.js} +4 -4
- package/{chunk-DPAB4FQ7.js → chunk-UZY4BEBR.js} +1579 -212
- package/chunk-V5R4NZP2.js +78 -0
- package/{chunk-MR6ISAGB.js → chunk-VDNQF5VI.js} +6 -6
- package/{chunk-33BJUVK4.js → chunk-VGMJ6PDJ.js} +5 -5
- package/{chunk-W4NVOSFF.js → chunk-WFHXMLHZ.js} +1 -1
- package/{chunk-H33743XH.js → chunk-WJRJDX2W.js} +1 -1
- package/chunk-X4Q4UZEY.js +26 -0
- package/{chunk-RPDGJO4D.js → chunk-XHG22OEX.js} +4 -4
- package/{chunk-DVRHHFEA.js → chunk-XMLRJUU5.js} +1 -1
- package/{chunk-3S2VOMIF.js → chunk-XRZJGPFI.js} +7 -7
- package/{chunk-7UKFVQ5W.js → chunk-YLRTBX4Y.js} +105 -36
- package/{chunk-DGEYDWEZ.js → chunk-YXTRNO5W.js} +3 -3
- package/{chunk-FY233ZFU.js → chunk-ZJZCMKOR.js} +107 -177
- package/{chunk-NVEWUJVX.js → chunk-ZVOZH2HW.js} +1 -1
- package/chunk-ZZ2MH7LE.js +84 -0
- package/{cliExecutor-K3F7DMRO.js → cliExecutor-DNE7TCC4.js} +2 -2
- package/codingSkills-36KN5NQT.js +48 -0
- package/{createAgentAutomationAction-FNHPSKKO.js → createAgentAutomationAction-PMOLEPGJ.js} +19 -18
- package/{createDialogAction-TZCVQ3NU.js → createDialogAction-DPRTYNAK.js} +21 -20
- package/{createPageAction-EIGZ3BKT.js → createPageAction-JGZK3WAM.js} +25 -24
- package/{dbSlice-7KQH6GOU.js → dbSlice-CGSRFJN3.js} +8 -7
- package/{deleteFile-WPWVZE4B.js → deleteFile-WDZ3VM7B.js} +3 -3
- package/{dialogCommands-FO77J5DQ.js → dialogCommands-XED6DKLV.js} +29 -26
- package/{dialogSlice-MM5U4KE2.js → dialogSlice-KO4NRNKC.js} +19 -18
- package/{docCreateCommands-I3BS3AZI.js → docCreateCommands-P6DYWHH3.js} +32 -27
- package/{docDeleteCommands-Q2OPV52P.js → docDeleteCommands-KUWXAMSN.js} +31 -26
- package/{docReadCommands-YOOFACYZ.js → docReadCommands-ECW55TKB.js} +30 -25
- package/{docStore-NGYQ2JTR.js → docStore-6KMERNUY.js} +20 -19
- package/{docUpdateCommands-2B32ITHN.js → docUpdateCommands-5J4BTJQN.js} +31 -26
- package/{fetchMessages-KTNM7QAR.js → fetchMessages-BMGVZVSE.js} +4 -3
- package/{getPricing-P4XRJRZB.js → getPricing-RYY6OBA4.js} +2 -2
- package/{handleSendMessageAction-JRZWWBKP.js → handleSendMessageAction-R3ZHTVU4.js} +20 -19
- package/index.js +95 -64
- package/{localDialogRead-2VRI24F4.js → localDialogRead-HQZPVIE3.js} +1 -1
- package/{localRuntimeDb-LGDF6FQP.js → localRuntimeDb-THJZGAOJ.js} +1 -1
- package/{machineCommands-WRWF2ICZ.js → machineCommands-JF2YL34J.js} +62 -56
- package/{machineWsRunDispatch-ZX7Q3TWZ.js → machineWsRunDispatch-ON4AEOJL.js} +54 -48
- package/{models-WQ5N4OJM.js → models-5K5G2CZI.js} +1 -1
- package/package.json +1 -1
- package/queryRunOverlay-O4LOMMPO.js +161 -0
- package/{read-CN3TNXIP.js → read-3FMPZPER.js} +3 -3
- package/{readDocTool-WF3675ED.js → readDocTool-VSYHKK3V.js} +1 -1
- package/{readlineWorkspace-ZTGRGW46.js → readlineWorkspace-SUCINTL7.js} +354 -185
- package/{removeDialogAgentAction-YDHBFEGI.js → removeDialogAgentAction-OAGA2G3U.js} +10 -9
- package/{runAgentClientLoop-JZCOP7LG.js → runAgentClientLoop-OBD2AVEL.js} +43 -37
- package/runOverlayPresentation-ZO4VCWEU.js +11 -0
- package/{runtimeDoctorCommands-THIHX2SY.js → runtimeDoctorCommands-E2OUORHK.js} +6 -6
- package/setDialogExtraReferencesAction-JZEXA5SL.js +27 -0
- package/{setPrimaryDialogAgentAction-IIVDCY5C.js → setPrimaryDialogAgentAction-4ZUQQKDG.js} +26 -17
- package/{settingSlice-O23YDK2O.js → settingSlice-7MNKHZ6R.js} +9 -8
- package/{skillDiscovery-6M2BZUFN.js → skillDiscovery-KJWT7JBU.js} +3 -3
- package/{spaceCommands-VV4GTPQK.js → spaceCommands-32NTNLHS.js} +30 -27
- package/{spaceSlice-DRWWZJP7.js → spaceSlice-P7VOXLY6.js} +19 -18
- package/{streamAgentChatTurn-Y6WGATQR.js → streamAgentChatTurn-UHEMNI3X.js} +97 -56
- package/{tableCommands-3P7MJ3PF.js → tableCommands-BEQAGE4I.js} +1 -1
- package/{tools-PUNBY3AH.js → tools-BMXIXHMB.js} +32 -27
- package/{tuiSummaryLlmCaller-F64WLSAF.js → tuiSummaryLlmCaller-VUNVBRX3.js} +5 -4
- package/types-ZSTJ7MPR.js +7 -0
- package/{updateDialogTitleAction-YSR4TCMB.js → updateDialogTitleAction-LJBDYZLH.js} +22 -21
- package/{chunk-O4BU24WZ.js → chunk-6Y7A3OQQ.js} +3 -3
- package/{chunk-XBS2WYJ2.js → chunk-RK5NYQEL.js} +0 -0
- package/{chunk-CMKUBIGW.js → chunk-X7W4TNB4.js} +3 -3
- package/{localRuntimeAuthority-TEGCOWX4.js → localRuntimeAuthority-4IXJCHZ7.js} +3 -3
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// packages/core/chat/runOverlayPresentation.ts
|
|
2
|
+
var STATUS_ORDER = [
|
|
3
|
+
"running",
|
|
4
|
+
"reviewing",
|
|
5
|
+
"testing",
|
|
6
|
+
"done",
|
|
7
|
+
"failed",
|
|
8
|
+
"cancelled",
|
|
9
|
+
"orphaned"
|
|
10
|
+
];
|
|
11
|
+
var STATUS_DISPLAY = {
|
|
12
|
+
running: { icon: "\u25B6", label: "\u6B63\u5728\u8FD0\u884C" },
|
|
13
|
+
reviewing: { icon: "\u{1F441}", label: "\u5F85 review" },
|
|
14
|
+
testing: { icon: "\u{1F9EA}", label: "\u5728\u6D4B\u8BD5" },
|
|
15
|
+
done: { icon: "\u2705", label: "\u5DF2\u5B8C\u6210" },
|
|
16
|
+
failed: { icon: "\u274C", label: "\u5931\u8D25" },
|
|
17
|
+
cancelled: { icon: "\u23F9", label: "\u5DF2\u53D6\u6D88" },
|
|
18
|
+
orphaned: { icon: "\u{1F47B}", label: "\u5B64\u513F" }
|
|
19
|
+
};
|
|
20
|
+
function statusLabel(status) {
|
|
21
|
+
return STATUS_DISPLAY[status]?.label ?? status;
|
|
22
|
+
}
|
|
23
|
+
function groupByStatus(runs) {
|
|
24
|
+
const buckets = /* @__PURE__ */ new Map();
|
|
25
|
+
for (const run of runs.values()) {
|
|
26
|
+
const arr = buckets.get(run.status);
|
|
27
|
+
if (arr) arr.push(run);
|
|
28
|
+
else buckets.set(run.status, [run]);
|
|
29
|
+
}
|
|
30
|
+
const grouped = [];
|
|
31
|
+
for (const status of STATUS_ORDER) {
|
|
32
|
+
const arr = buckets.get(status);
|
|
33
|
+
if (arr && arr.length > 0) grouped.push({ status, runs: arr });
|
|
34
|
+
}
|
|
35
|
+
return grouped;
|
|
36
|
+
}
|
|
37
|
+
function buildOverlayPresentation(state) {
|
|
38
|
+
if (state.runs.size === 0) return null;
|
|
39
|
+
const grouped = groupByStatus(state.runs);
|
|
40
|
+
const lines = [];
|
|
41
|
+
for (const { status, runs } of grouped) {
|
|
42
|
+
const { icon, label } = STATUS_DISPLAY[status];
|
|
43
|
+
lines.push(`${icon} ${runs.length} \u4E2A${label}`);
|
|
44
|
+
}
|
|
45
|
+
lines.push("");
|
|
46
|
+
lines.push("--- \u8BE6\u60C5 ---");
|
|
47
|
+
for (const { runs } of grouped) {
|
|
48
|
+
for (const run of runs) {
|
|
49
|
+
lines.push(detailLine(run));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return lines.join("\n");
|
|
53
|
+
}
|
|
54
|
+
function detailLine(run) {
|
|
55
|
+
const short = shortStatusLabel(run.status);
|
|
56
|
+
let suffix = short;
|
|
57
|
+
if (run.summary) suffix += ` \u2014 ${run.summary}`;
|
|
58
|
+
else if (run.status === "failed" && run.errorMessage) suffix += ` \u2014 ${run.errorMessage}`;
|
|
59
|
+
return `\u2022 ${run.runId} (${run.name}): ${suffix}`;
|
|
60
|
+
}
|
|
61
|
+
var SHORT_STATUS_LABEL = {
|
|
62
|
+
running: "\u8FD0\u884C\u4E2D",
|
|
63
|
+
reviewing: "\u5F85 review",
|
|
64
|
+
testing: "\u6D4B\u8BD5\u4E2D",
|
|
65
|
+
done: "\u5DF2\u5B8C\u6210",
|
|
66
|
+
failed: "\u5931\u8D25",
|
|
67
|
+
cancelled: "\u5DF2\u53D6\u6D88",
|
|
68
|
+
orphaned: "\u5B64\u513F"
|
|
69
|
+
};
|
|
70
|
+
function shortStatusLabel(status) {
|
|
71
|
+
return SHORT_STATUS_LABEL[status];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export {
|
|
75
|
+
statusLabel,
|
|
76
|
+
groupByStatus,
|
|
77
|
+
buildOverlayPresentation
|
|
78
|
+
};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
updateContentTitle
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NVB267BZ.js";
|
|
4
4
|
import {
|
|
5
5
|
require_date_fns
|
|
6
6
|
} from "./chunk-M76ECQRD.js";
|
|
7
|
-
import {
|
|
8
|
-
require_react
|
|
9
|
-
} from "./chunk-3ASDTTEI.js";
|
|
10
7
|
import {
|
|
11
8
|
toErrorMessage
|
|
12
9
|
} from "./chunk-HNMXYYJR.js";
|
|
10
|
+
import {
|
|
11
|
+
require_react
|
|
12
|
+
} from "./chunk-3ASDTTEI.js";
|
|
13
13
|
import {
|
|
14
14
|
patch,
|
|
15
15
|
readAndWait
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-XRZJGPFI.js";
|
|
17
17
|
import {
|
|
18
18
|
asOptionalTrimmedString
|
|
19
19
|
} from "./chunk-G3SUCT4W.js";
|
|
@@ -367,7 +367,7 @@ async function saveDocState(arg, { dispatch, getState }) {
|
|
|
367
367
|
}
|
|
368
368
|
}
|
|
369
369
|
async function createDocState(args, thunkApi) {
|
|
370
|
-
const { createPageAction } = await import("./createPageAction-
|
|
370
|
+
const { createPageAction } = await import("./createPageAction-JGZK3WAM.js");
|
|
371
371
|
return createPageAction(args, thunkApi);
|
|
372
372
|
}
|
|
373
373
|
function subscribe(listener) {
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
clearCliLocalRuntimePreparedAgentCache
|
|
3
|
-
} from "./chunk-DPAB4FQ7.js";
|
|
4
1
|
import {
|
|
5
2
|
getReadableCliDb
|
|
6
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WFHXMLHZ.js";
|
|
7
4
|
import {
|
|
8
5
|
buildCreatedAgentRecord,
|
|
9
6
|
buildUpdatedAgentRecord,
|
|
@@ -12,7 +9,10 @@ import {
|
|
|
12
9
|
resolveAgentRecordFromHybridStore,
|
|
13
10
|
sanitizeAgentRecordForCliOutput,
|
|
14
11
|
writeAgentRecord
|
|
15
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-FVIPEIVX.js";
|
|
13
|
+
import {
|
|
14
|
+
clearCliLocalRuntimePreparedAgentCache
|
|
15
|
+
} from "./chunk-UZY4BEBR.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveCliAgentKeyInput
|
|
18
18
|
} from "./chunk-VHBWHNVT.js";
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
|
|
5
5
|
// packages/cli/agentCommandSupport.ts
|
|
6
6
|
async function getDefaultCliDb() {
|
|
7
|
-
const { getDefaultCliLocalRuntimeDb } = await import("./localRuntimeDb-
|
|
7
|
+
const { getDefaultCliLocalRuntimeDb } = await import("./localRuntimeDb-THJZGAOJ.js");
|
|
8
8
|
return getDefaultCliLocalRuntimeDb();
|
|
9
9
|
}
|
|
10
10
|
function createNullCliDb() {
|
|
@@ -14,7 +14,7 @@ function buildCliLocalRuntimeDbEnv(env = process.env) {
|
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
async function getDefaultCliLocalRuntimeDb(options = {}) {
|
|
17
|
-
const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority-
|
|
17
|
+
const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority-4IXJCHZ7.js");
|
|
18
18
|
return getAuthorityBackedDb(options);
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// packages/create/types.ts
|
|
2
|
+
var DataType = /* @__PURE__ */ ((DataType2) => {
|
|
3
|
+
DataType2["AGENT"] = "agent";
|
|
4
|
+
DataType2["DOC"] = "page";
|
|
5
|
+
DataType2["DIALOG"] = "dialog";
|
|
6
|
+
DataType2["NOTIFICATION"] = "notification";
|
|
7
|
+
DataType2["MSG"] = "msg";
|
|
8
|
+
DataType2["TOKEN"] = "token";
|
|
9
|
+
DataType2["SPACE"] = "space";
|
|
10
|
+
DataType2["TRANSACTION"] = "transaction";
|
|
11
|
+
DataType2["SETTING"] = "setting";
|
|
12
|
+
DataType2["TASK"] = "task";
|
|
13
|
+
DataType2["AGENT_AUTOMATION"] = "agent-automation";
|
|
14
|
+
DataType2["TABLE"] = "table";
|
|
15
|
+
DataType2["TABLE_ROW"] = "table_row";
|
|
16
|
+
DataType2["FILE"] = "file";
|
|
17
|
+
DataType2["IMAGE"] = "image";
|
|
18
|
+
DataType2["APP"] = "app";
|
|
19
|
+
DataType2["EMAIL"] = "email";
|
|
20
|
+
DataType2["Category"] = "category";
|
|
21
|
+
return DataType2;
|
|
22
|
+
})(DataType || {});
|
|
23
|
+
|
|
24
|
+
export {
|
|
25
|
+
DataType
|
|
26
|
+
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
selectCurrentServer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RVOUXDFU.js";
|
|
4
4
|
import {
|
|
5
5
|
patch
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-XRZJGPFI.js";
|
|
7
7
|
import {
|
|
8
8
|
selectIdentityToken
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XMLRJUU5.js";
|
|
10
10
|
import {
|
|
11
11
|
getIsDesktopApp
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-R5V5G73M.js";
|
|
13
13
|
|
|
14
14
|
// packages/ai/agent/cliChatClient.ts
|
|
15
15
|
function getCliChatRequestConfig(thunkApi) {
|
|
@@ -2,17 +2,17 @@ import {
|
|
|
2
2
|
fileKey,
|
|
3
3
|
getFileIdFromKey,
|
|
4
4
|
ulid
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6Y7A3OQQ.js";
|
|
6
6
|
import {
|
|
7
7
|
loadFileFromIndexedDb,
|
|
8
8
|
removeAction,
|
|
9
9
|
saveFileToIndexedDb
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-SKDNBYZK.js";
|
|
11
11
|
import {
|
|
12
12
|
readAction,
|
|
13
13
|
readRequestManager,
|
|
14
14
|
resolveAgentReadServers
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-3ND52WIL.js";
|
|
16
16
|
import {
|
|
17
17
|
asyncThunkCreator,
|
|
18
18
|
buildCreateSlice,
|
|
@@ -32,13 +32,13 @@ import {
|
|
|
32
32
|
shouldReplaceLocalWithRemoteRecord,
|
|
33
33
|
shouldReplicateLocalRecord,
|
|
34
34
|
uploadToCurrentServer
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-XMLRJUU5.js";
|
|
36
36
|
import {
|
|
37
37
|
fetchFromClientDb,
|
|
38
38
|
fetchFromServer,
|
|
39
39
|
logger,
|
|
40
40
|
normalizeTimeFields
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-R5V5G73M.js";
|
|
42
42
|
import {
|
|
43
43
|
isTombstoneRecord
|
|
44
44
|
} from "./chunk-GBRG75BQ.js";
|
|
@@ -704,7 +704,7 @@ var dbSlice = createSliceWithThunks({
|
|
|
704
704
|
// 动态 import 在调用期解析,避开 TDZ/求值顺序问题(同下方 share)。
|
|
705
705
|
read: create.asyncThunk(
|
|
706
706
|
async (payload, thunkApi) => {
|
|
707
|
-
const { readAction: readAction2 } = await import("./read-
|
|
707
|
+
const { readAction: readAction2 } = await import("./read-3FMPZPER.js");
|
|
708
708
|
return readAction2(payload, thunkApi);
|
|
709
709
|
},
|
|
710
710
|
{
|
|
@@ -778,7 +778,7 @@ var dbSlice = createSliceWithThunks({
|
|
|
778
778
|
// 这里改成动态 import,运行期才解析,彻底断开这条边。
|
|
779
779
|
share: create.asyncThunk(
|
|
780
780
|
async (config, thunkApi) => {
|
|
781
|
-
const { shareResourceAction } = await import("./action-
|
|
781
|
+
const { shareResourceAction } = await import("./action-LT7BRFLK.js");
|
|
782
782
|
return shareResourceAction(config, thunkApi);
|
|
783
783
|
}
|
|
784
784
|
),
|
|
@@ -4,46 +4,51 @@ import {
|
|
|
4
4
|
providerHttpFailure,
|
|
5
5
|
readSseFrames,
|
|
6
6
|
throwIfChatCompletionStreamFailed
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-AAODAAUQ.js";
|
|
8
8
|
import {
|
|
9
9
|
parseToolArgumentsJson
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-QCJITMYO.js";
|
|
11
11
|
import {
|
|
12
12
|
createThinkParserState,
|
|
13
13
|
createToolCallAccumulator,
|
|
14
|
+
createToolCallTextParserState,
|
|
14
15
|
extractThinkContent,
|
|
15
16
|
finalizeAccumulatedToolCalls
|
|
16
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-LSFAWXKC.js";
|
|
17
18
|
import {
|
|
18
19
|
requiresBareImageUrl,
|
|
19
20
|
toBareImageUrlMessages
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-IOOMJJ4Z.js";
|
|
21
22
|
import {
|
|
22
|
-
buildProviderAuthHeaders,
|
|
23
|
-
buildProviderExecutionPlan,
|
|
24
23
|
shouldStripReasoningContentForOutbound,
|
|
25
24
|
toOpenAiCompatibleMessages
|
|
26
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-KFEVY3ST.js";
|
|
26
|
+
import {
|
|
27
|
+
buildProviderAuthHeaders,
|
|
28
|
+
buildProviderExecutionPlan
|
|
29
|
+
} from "./chunk-MUCU6ATG.js";
|
|
27
30
|
import {
|
|
28
|
-
canonicalizeToolName,
|
|
29
31
|
createGlob,
|
|
30
32
|
resolveExecutableOnPath
|
|
31
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-DKZFOK24.js";
|
|
32
34
|
import {
|
|
33
35
|
toErrorMessage
|
|
34
36
|
} from "./chunk-HNMXYYJR.js";
|
|
37
|
+
import {
|
|
38
|
+
canonicalizeToolName
|
|
39
|
+
} from "./chunk-ZZ2MH7LE.js";
|
|
35
40
|
import {
|
|
36
41
|
asRecordOrEmpty
|
|
37
42
|
} from "./chunk-KX6YBIHG.js";
|
|
38
43
|
import {
|
|
39
44
|
dialogMessageKey
|
|
40
|
-
} from "./chunk-
|
|
41
|
-
import {
|
|
42
|
-
asTrimmedNonEmptyStringArray
|
|
43
|
-
} from "./chunk-I42VC5KR.js";
|
|
45
|
+
} from "./chunk-6Y7A3OQQ.js";
|
|
44
46
|
import {
|
|
45
47
|
asOptionalFiniteNumber
|
|
46
48
|
} from "./chunk-WWC7I6TA.js";
|
|
49
|
+
import {
|
|
50
|
+
asTrimmedNonEmptyStringArray
|
|
51
|
+
} from "./chunk-I42VC5KR.js";
|
|
47
52
|
import {
|
|
48
53
|
asTrimmedLowercaseString
|
|
49
54
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -85,6 +90,10 @@ function parseSseDataLineJson(line) {
|
|
|
85
90
|
return null;
|
|
86
91
|
}
|
|
87
92
|
}
|
|
93
|
+
function parseSseDataLineObject(line) {
|
|
94
|
+
const parsed = parseSseDataLineJson(line);
|
|
95
|
+
return parsed && typeof parsed === "object" ? parsed : null;
|
|
96
|
+
}
|
|
88
97
|
|
|
89
98
|
// packages/agent-runtime/openAiCompatibleProvider.ts
|
|
90
99
|
function buildOpenAiCompatibleChatCompletionRequest(args) {
|
|
@@ -160,6 +169,7 @@ async function readOpenAiCompatibleSseCompletion(args) {
|
|
|
160
169
|
usage: void 0,
|
|
161
170
|
accumulatedToolCalls: createToolCallAccumulator(),
|
|
162
171
|
thinkState: createThinkParserState(),
|
|
172
|
+
toolCallTextState: createToolCallTextParserState(),
|
|
163
173
|
onTextDelta: args.onTextDelta,
|
|
164
174
|
onReasoningDelta: args.onReasoningDelta
|
|
165
175
|
};
|
|
@@ -529,14 +539,24 @@ function buildAgentRuntimeDialogWritePlan(args) {
|
|
|
529
539
|
const nowIso = new Date(args.now).toISOString();
|
|
530
540
|
const dialogKey = `dialog-${args.userId}-${dialogId}`;
|
|
531
541
|
const subjectRefs = buildRuntimeSubjectRefs(args.input.runtimeContext);
|
|
542
|
+
const requestedAgentMode = args.input.runtimeContext?.dialogAgentMode === "auto" || args.input.runtimeContext?.dialogAgentMode === "fixed" ? args.input.runtimeContext.dialogAgentMode : void 0;
|
|
543
|
+
const agentMode = requestedAgentMode ?? (args.existingDialog?.agentMode === "auto" ? "auto" : "fixed");
|
|
544
|
+
const dialogAgentFields = agentMode === "auto" ? {
|
|
545
|
+
agentMode: "auto",
|
|
546
|
+
cybots: [],
|
|
547
|
+
primaryAgentKey: void 0
|
|
548
|
+
} : {
|
|
549
|
+
agentMode: "fixed",
|
|
550
|
+
cybots: [args.input.agentKey],
|
|
551
|
+
primaryAgentKey: args.input.agentKey
|
|
552
|
+
};
|
|
532
553
|
const dialogRecord = {
|
|
533
554
|
...asRecordOrEmpty(args.existingDialog),
|
|
534
555
|
id: dialogId,
|
|
535
556
|
dbKey: dialogKey,
|
|
536
557
|
type: "dialog",
|
|
537
558
|
userId: args.userId,
|
|
538
|
-
|
|
539
|
-
primaryAgentKey: args.input.agentKey,
|
|
559
|
+
...dialogAgentFields,
|
|
540
560
|
title: pickDialogTitle({
|
|
541
561
|
existingDialog: args.existingDialog,
|
|
542
562
|
titleOverride: args.titleOverride,
|
|
@@ -833,12 +853,16 @@ var buildCombinedShellInput = (args) => {
|
|
|
833
853
|
typeof args.input === "string" ? args.input : ""
|
|
834
854
|
].filter(Boolean).join("\n");
|
|
835
855
|
};
|
|
836
|
-
function
|
|
856
|
+
function resolveScannableShellInput(args) {
|
|
837
857
|
const combined = buildCombinedShellInput(args);
|
|
838
|
-
if (!combined.trim()) return
|
|
839
|
-
|
|
858
|
+
if (!combined.trim()) return void 0;
|
|
859
|
+
return SHELL_STRING_EXECUTION_PATTERNS.some(
|
|
840
860
|
(pattern) => pattern.test(combined)
|
|
841
861
|
) ? combined : stripQuotedSegments(combined);
|
|
862
|
+
}
|
|
863
|
+
function isDestructiveShellCommand(args) {
|
|
864
|
+
const scannable = resolveScannableShellInput(args);
|
|
865
|
+
if (scannable === void 0) return false;
|
|
842
866
|
return SHELL_DESTRUCTIVE_PATTERNS.some((pattern) => pattern.test(scannable));
|
|
843
867
|
}
|
|
844
868
|
var LONG_RUNNING_COMMAND_PATTERNS = [
|
|
@@ -854,13 +878,42 @@ var LONG_RUNNING_COMMAND_PATTERNS = [
|
|
|
854
878
|
/\bpm2\b.*\bstart\b/i
|
|
855
879
|
];
|
|
856
880
|
function isLongRunningShellCommand(args) {
|
|
857
|
-
const
|
|
858
|
-
if (
|
|
859
|
-
const scannable = SHELL_STRING_EXECUTION_PATTERNS.some(
|
|
860
|
-
(pattern) => pattern.test(combined)
|
|
861
|
-
) ? combined : stripQuotedSegments(combined);
|
|
881
|
+
const scannable = resolveScannableShellInput(args);
|
|
882
|
+
if (scannable === void 0) return false;
|
|
862
883
|
return LONG_RUNNING_COMMAND_PATTERNS.some((pattern) => pattern.test(scannable));
|
|
863
884
|
}
|
|
885
|
+
var IMMEDIATE_DETACH_COMMAND_PATTERNS = [
|
|
886
|
+
/\btail\s+(?:-\S*[fF]\S*|--follow)\b/,
|
|
887
|
+
/\bwatch\s+\S/,
|
|
888
|
+
/\bwhile\s+(?:true|:|\[\s*true\s*\])\s*;\s*do\b/
|
|
889
|
+
];
|
|
890
|
+
var IMMEDIATE_DETACH_SLEEP_THRESHOLD_SECONDS = 5;
|
|
891
|
+
var SLEEP_PREFIX_PATTERN = /^(?:[A-Za-z_][A-Za-z0-9_]*=\S*\s+)*(?:nohup\s+|time\s+)*sleep\s+(\S+)/;
|
|
892
|
+
function parseSleepDurationSeconds(token) {
|
|
893
|
+
const match = /^(\d+(?:\.\d+)?)(s|m|h|d)?$/i.exec(token);
|
|
894
|
+
if (!match) return void 0;
|
|
895
|
+
const value = Number(match[1]);
|
|
896
|
+
if (!Number.isFinite(value)) return void 0;
|
|
897
|
+
const unit = (match[2] ?? "s").toLowerCase();
|
|
898
|
+
const factor = unit === "m" ? 60 : unit === "h" ? 3600 : unit === "d" ? 86400 : 1;
|
|
899
|
+
return value * factor;
|
|
900
|
+
}
|
|
901
|
+
function isLongSleepCommand(scannable) {
|
|
902
|
+
const match = SLEEP_PREFIX_PATTERN.exec(scannable.trim());
|
|
903
|
+
if (!match) return false;
|
|
904
|
+
const durationToken = match[1] ?? "";
|
|
905
|
+
if (/^inf(inity)?$/i.test(durationToken)) return true;
|
|
906
|
+
const seconds = parseSleepDurationSeconds(durationToken);
|
|
907
|
+
if (seconds === void 0) return true;
|
|
908
|
+
return seconds > IMMEDIATE_DETACH_SLEEP_THRESHOLD_SECONDS;
|
|
909
|
+
}
|
|
910
|
+
function isImmediateDetachShellCommand(args) {
|
|
911
|
+
const scannable = resolveScannableShellInput(args);
|
|
912
|
+
if (scannable === void 0) return false;
|
|
913
|
+
return isLongSleepCommand(scannable) || LONG_RUNNING_COMMAND_PATTERNS.some((pattern) => pattern.test(scannable)) || IMMEDIATE_DETACH_COMMAND_PATTERNS.some(
|
|
914
|
+
(pattern) => pattern.test(scannable)
|
|
915
|
+
);
|
|
916
|
+
}
|
|
864
917
|
function evaluateShellCommandPolicy(args) {
|
|
865
918
|
if (isDestructiveShellCommand(args) && !hasExplicitDestructivePermission(args.userInput)) {
|
|
866
919
|
return {
|
|
@@ -1543,7 +1596,7 @@ function buildExecShellTool(toolName) {
|
|
|
1543
1596
|
type: "function",
|
|
1544
1597
|
function: {
|
|
1545
1598
|
name: toolName,
|
|
1546
|
-
description: "Run a shell command in the local workspace. Commands already execute from the workspace root; do not cd into guessed paths such as /workspace, /repo, /home/user, or /home/user/workspace. Prefer one command that performs a complete verification or related git operation instead of many tiny commands. For branch setup, prefer idempotent commands such as git switch -C <branch> when replacing or recreating a benchmark branch is acceptable. Use portable POSIX commands for macOS/BSD shells; avoid GNU-only flags such as cat -A. Do not use cat -A. Do not use brittle byte-offset commands such as xxd -s -32. For separator lines, use echo or printf '%s\\n'. For text-file content or trailing-newline checks, prefer readFile over shell byte inspection when that tool is available. Do not run repeated git status, git log, git rev-parse, or branch checks after a successful command already returned the needed clean status and commit information; use one final verification command. If a command fails, use the error output to adjust the next command rather than repeating the same shape. For long-running commands that should keep running in the background (dev servers, watchers, REPLs, `--watch`/`serve`/`dev` scripts),
|
|
1599
|
+
description: "Run a shell command in the local workspace. Commands already execute from the workspace root; do not cd into guessed paths such as /workspace, /repo, /home/user, or /home/user/workspace. Prefer one command that performs a complete verification or related git operation instead of many tiny commands. For branch setup, prefer idempotent commands such as git switch -C <branch> when replacing or recreating a benchmark branch is acceptable. Use portable POSIX commands for macOS/BSD shells; avoid GNU-only flags such as cat -A. Do not use cat -A. Do not use brittle byte-offset commands such as xxd -s -32. For separator lines, use echo or printf '%s\\n'. For text-file content or trailing-newline checks, prefer readFile over shell byte inspection when that tool is available. Do not run repeated git status, git log, git rev-parse, or branch checks after a successful command already returned the needed clean status and commit information; use one final verification command. If a command fails, use the error output to adjust the next command rather than repeating the same shape. For long-running commands that should keep running in the background (dev servers, watchers, REPLs, `--watch`/`serve`/`dev` scripts), prefer launchProcess. Obviously long-running commands run via execShell (sleep over 5s, tail -f, watch, infinite loops, dev/serve/watch scripts) are moved to the background automatically and return {detached: true, pid, label} \u2014 use listProcesses to inspect or stop them, and tell the user the command is running in the background. Any other command blocks until it exits, so keep those short.",
|
|
1547
1600
|
parameters: {
|
|
1548
1601
|
type: "object",
|
|
1549
1602
|
properties: {
|
|
@@ -1740,8 +1793,9 @@ function resolveExecShellTimeoutMs(override) {
|
|
|
1740
1793
|
return asOptionalPositiveFiniteNumber(Number(raw));
|
|
1741
1794
|
}
|
|
1742
1795
|
function resolveDetachMs(override) {
|
|
1743
|
-
|
|
1744
|
-
|
|
1796
|
+
if (typeof override === "number" && Number.isFinite(override) && override >= 0) {
|
|
1797
|
+
return override;
|
|
1798
|
+
}
|
|
1745
1799
|
const raw = process.env[EXEC_SHELL_DETACH_ENV];
|
|
1746
1800
|
if (raw === void 0) return DEFAULT_EXEC_SHELL_DETACH_MS;
|
|
1747
1801
|
const parsed = asOptionalPositiveFiniteNumber(Number(raw));
|
|
@@ -2505,9 +2559,9 @@ async function runWorkspaceCommand(args) {
|
|
|
2505
2559
|
args.abortSignal.addEventListener("abort", abortListener, { once: true });
|
|
2506
2560
|
}) : null;
|
|
2507
2561
|
const effectiveDetachMs = resolveDetachMs(args.detachMs);
|
|
2508
|
-
const detachPromise =
|
|
2562
|
+
const detachPromise = new Promise((r) => {
|
|
2509
2563
|
detachTimer = setTimeout(() => r(detachResult), effectiveDetachMs);
|
|
2510
|
-
})
|
|
2564
|
+
});
|
|
2511
2565
|
const racers = [exitPromise];
|
|
2512
2566
|
if (timeoutMs) {
|
|
2513
2567
|
racers.push(
|
|
@@ -2517,7 +2571,7 @@ async function runWorkspaceCommand(args) {
|
|
|
2517
2571
|
);
|
|
2518
2572
|
}
|
|
2519
2573
|
if (abortPromise) racers.push(abortPromise);
|
|
2520
|
-
|
|
2574
|
+
racers.push(detachPromise);
|
|
2521
2575
|
let raceWinner;
|
|
2522
2576
|
try {
|
|
2523
2577
|
raceWinner = await Promise.race(racers);
|
|
@@ -2550,25 +2604,35 @@ async function runWorkspaceCommand(args) {
|
|
|
2550
2604
|
killChild("SIGKILL");
|
|
2551
2605
|
}
|
|
2552
2606
|
if (didDetach) {
|
|
2553
|
-
|
|
2607
|
+
exitPromise.catch(() => {
|
|
2608
|
+
});
|
|
2554
2609
|
const pid = typeof proc.pid === "number" ? proc.pid : 0;
|
|
2555
2610
|
const label = deriveLabel(args.command.join(" "));
|
|
2556
2611
|
const pgid = pid;
|
|
2557
2612
|
const registry2 = getProcessRegistry();
|
|
2558
2613
|
registry2.add({ pid, pgid, command: args.command.join(" "), label });
|
|
2559
2614
|
proc.on("close", (code) => {
|
|
2615
|
+
detachSignalCleanup();
|
|
2560
2616
|
registry2.markExited(pid, code ?? 1);
|
|
2561
2617
|
});
|
|
2618
|
+
const immediate = effectiveDetachMs === 0;
|
|
2619
|
+
const reason = immediate ? `command looks long-running; moved to background immediately (pid=${pid}, label=${label})` : `command detached to background after ${effectiveDetachMs}ms (pid=${pid}, label=${label})`;
|
|
2562
2620
|
return {
|
|
2563
2621
|
stdout: "",
|
|
2564
|
-
stderr:
|
|
2565
|
-
Use listProcesses
|
|
2622
|
+
stderr: `${reason}
|
|
2623
|
+
Use listProcesses to inspect or stop it.`,
|
|
2566
2624
|
exitCode: 0,
|
|
2567
2625
|
timedOut: false,
|
|
2568
2626
|
detached: true,
|
|
2569
2627
|
pid,
|
|
2570
2628
|
label,
|
|
2571
|
-
content: JSON.stringify({
|
|
2629
|
+
content: JSON.stringify({
|
|
2630
|
+
detached: true,
|
|
2631
|
+
pid,
|
|
2632
|
+
label,
|
|
2633
|
+
status: "running",
|
|
2634
|
+
...immediate ? { reason: "long-running-command" } : {}
|
|
2635
|
+
})
|
|
2572
2636
|
};
|
|
2573
2637
|
}
|
|
2574
2638
|
const [stdout, rawStderr] = await Promise.all([
|
|
@@ -2926,7 +2990,7 @@ async function searchFilesTool(args) {
|
|
|
2926
2990
|
const literal = parsed.literal === true;
|
|
2927
2991
|
const caseSensitive = parsed.caseSensitive === false ? false : true;
|
|
2928
2992
|
const requestedPath = pickFirstAlias(parsed, PATH_FIELD_ALIASES) ?? ".";
|
|
2929
|
-
const includeIgnored = parsed.includeIgnored === true;
|
|
2993
|
+
const includeIgnored = parsed.includeIgnored === true || args.workspaceRoot.includes(".worktrees");
|
|
2930
2994
|
const searchPath = await resolveLocalWorkspaceToolPath({
|
|
2931
2995
|
workspaceRoot: args.workspaceRoot,
|
|
2932
2996
|
requestedPath,
|
|
@@ -3202,7 +3266,7 @@ async function globFilesTool(args) {
|
|
|
3202
3266
|
const exclude = readWorkspaceExcludeGlobs(parsed);
|
|
3203
3267
|
const maxResults = readWorkspaceMaxResults(parsed, warnings);
|
|
3204
3268
|
const requestedPath = pickFirstAlias(parsed, PATH_FIELD_ALIASES) ?? ".";
|
|
3205
|
-
const includeIgnored = parsed.includeIgnored === true;
|
|
3269
|
+
const includeIgnored = parsed.includeIgnored === true || args.workspaceRoot.includes(".worktrees");
|
|
3206
3270
|
const searchPath = await resolveLocalWorkspaceToolPath({
|
|
3207
3271
|
workspaceRoot: args.workspaceRoot,
|
|
3208
3272
|
requestedPath,
|
|
@@ -3400,7 +3464,11 @@ async function execShellTool(args) {
|
|
|
3400
3464
|
outputLimit: args.commandOutputLimit,
|
|
3401
3465
|
commandPrefix: args.commandPrefix,
|
|
3402
3466
|
abortSignal: args.abortSignal,
|
|
3403
|
-
|
|
3467
|
+
// Commands that clearly never exit (long sleeps, tail -f, watch, dev
|
|
3468
|
+
// servers, infinite loops) are promoted to background immediately so the
|
|
3469
|
+
// turn — and the user's conversation — keeps going. Everything else keeps
|
|
3470
|
+
// the caller/env detach grace window.
|
|
3471
|
+
detachMs: isImmediateDetachShellCommand({ command }) ? 0 : args.detachMs
|
|
3404
3472
|
});
|
|
3405
3473
|
const activity = extractActivity(parsed);
|
|
3406
3474
|
return {
|
|
@@ -3574,6 +3642,7 @@ function createLocalWorkspaceToolExecutors(args) {
|
|
|
3574
3642
|
|
|
3575
3643
|
export {
|
|
3576
3644
|
parseSseDataLineJson,
|
|
3645
|
+
parseSseDataLineObject,
|
|
3577
3646
|
buildOpenAiCompatibleChatCompletionRequest,
|
|
3578
3647
|
parseOpenAiCompatibleChatCompletionResponse,
|
|
3579
3648
|
readOpenAiCompatibleSseCompletion,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createCliLocalRuntimeAdapter,
|
|
3
3
|
summarizeEndpoint
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-UZY4BEBR.js";
|
|
5
5
|
import {
|
|
6
6
|
clipMultilineText
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-NEKFSXOP.js";
|
|
8
8
|
import {
|
|
9
9
|
runLocalAgentTurn
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-QCJITMYO.js";
|
|
11
11
|
import {
|
|
12
12
|
resolveLocalRuntimeEnvFromPolicy
|
|
13
13
|
} from "./chunk-5CS33IBL.js";
|