nolo-cli 0.212.0-alpha.1 → 0.213.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-KE6MBNUJ.js → _executeModel-CUJLCFWR.js} +35 -35
- package/{addContentAction-N2YC5IL3.js → addContentAction-WERAONNY.js} +5 -5
- package/{addDialogAgentAction-3NKVQCEC.js → addDialogAgentAction-7VI7YRML.js} +4 -4
- package/{agentDeleteCommand-NWK7VU4N.js → agentDeleteCommand-XJORXPGU.js} +42 -42
- package/{agentEmailCommands-UZ4DHEX2.js → agentEmailCommands-XTYYFR6Z.js} +43 -43
- package/{agentListCommands-HE7L2A6L.js → agentListCommands-OBLRBLHS.js} +60 -51
- package/{agentMachineCommands-6TE4MBMP.js → agentMachineCommands-5FMT3OT5.js} +13 -12
- package/{agentRecordCommands-L3QQ7HZ4.js → agentRecordCommands-ZQ7SVYGG.js} +42 -42
- package/{agentRunCommand-2IFGQHCO.js → agentRunCommand-WS7IGO2W.js} +43 -43
- package/{agentRunControl-OI3LOENH.js → agentRunControl-TAMHJQSR.js} +3 -3
- package/{agentRuntimeLocal-HL526DNQ.js → agentRuntimeLocal-SOO2OPJG.js} +10 -10
- package/{agentSlice-TMYP2UEA.js → agentSlice-CHR6KOZN.js} +5 -5
- package/{appDeleteCommands-ZERW4AXY.js → appDeleteCommands-GUP6P5YE.js} +15 -14
- package/{appDeployCommands-DUWSMYHL.js → appDeployCommands-MH2FX4O5.js} +15 -14
- package/{appDeployStatusCommands-N2KIE4BF.js → appDeployStatusCommands-SUHN3HPJ.js} +15 -14
- package/{appGetCommands-YVR4NPVY.js → appGetCommands-YWDEX6Z4.js} +15 -14
- package/{appListCommands-JS6HOHZS.js → appListCommands-ZQVMLPAY.js} +15 -14
- package/{authCommand-FE2C3ZUM.js → authCommand-PWX2ZNUP.js} +2 -2
- package/{builtinSkillRegistry-3YOIGEF6.js → builtinSkillRegistry-2QETTQPM.js} +2 -2
- package/{chromeOpsCommands-HEN5AX2J.js → chromeOpsCommands-DIVM2K3T.js} +1 -1
- package/{chunk-YUXQAVRD.js → chunk-3UKL3HPD.js} +251 -14
- package/{chunk-PDGKOTO7.js → chunk-4T2WNOY7.js} +4 -4
- package/{chunk-NOMIGOST.js → chunk-5MQRBSMW.js} +35 -41
- package/{chunk-5RYBGBQH.js → chunk-6DWMYIUY.js} +3 -3
- package/{chunk-KSTEXKL6.js → chunk-75XIDFBW.js} +4 -3
- package/{chunk-CZM5YTZ7.js → chunk-7BT37FK3.js} +193 -305
- package/{chunk-GPO7FCEZ.js → chunk-7QTZCMKL.js} +159 -106
- package/{chunk-NJR3WKVP.js → chunk-7Y4YTDQF.js} +6 -6
- package/{chunk-CKAHAVMK.js → chunk-A7TFUNZO.js} +35 -25
- package/{chunk-PJNFNEJE.js → chunk-ALQ3657A.js} +28 -2
- package/{chunk-YJMRHHGY.js → chunk-BBJ22CLB.js} +5 -5
- package/{chunk-AVTVGMDY.js → chunk-COFEN36Z.js} +1 -1
- package/{chunk-DM6UMOEL.js → chunk-CRHOO2ZR.js} +1 -1
- package/{chunk-EYUBHHFB.js → chunk-EHGEOAHI.js} +2 -2
- package/{chunk-Y2WUYX4I.js → chunk-EHSZD5OI.js} +1 -1
- package/{chunk-QT6PKHYJ.js → chunk-FUGMREBO.js} +2 -2
- package/{chunk-BFM34N54.js → chunk-FW6YHHLI.js} +4 -4
- package/{chunk-3FOQHGHN.js → chunk-G2BQWAVT.js} +2 -2
- package/{chunk-VPAZOH2D.js → chunk-GPVRUGGY.js} +1 -1
- package/{chunk-JNKSDZFS.js → chunk-H4UOTUOX.js} +162 -48
- package/{chunk-UTV2AYEG.js → chunk-H5HF7TJA.js} +1 -1
- package/{chunk-IJXYFTV7.js → chunk-H7PPIYWP.js} +1 -1
- package/{chunk-NRFKLKRU.js → chunk-HSVBJRF4.js} +1 -1
- package/{chunk-GNDJKC4B.js → chunk-HUBHAQK2.js} +8 -8
- package/{chunk-LKDF3ATR.js → chunk-INUFILG6.js} +1 -1
- package/{chunk-OHNELDTO.js → chunk-IXNGOHV5.js} +2 -2
- package/{chunk-WXYLV624.js → chunk-J2NHJ7WX.js} +4 -4
- package/{chunk-YPD3VJZW.js → chunk-KFLT5KAD.js} +4 -4
- package/{chunk-OOF4UPC5.js → chunk-LLRPJECG.js} +4 -4
- package/{chunk-B7NJ3T4A.js → chunk-MDB67IWP.js} +4 -4
- package/{chunk-IF45XG7K.js → chunk-MOIJOHA5.js} +9 -4
- package/{chunk-IIQ6JGRI.js → chunk-NJLL224W.js} +1 -1
- package/{chunk-YOIW77S2.js → chunk-NOKUNJON.js} +2 -2
- package/{chunk-HIRC32DV.js → chunk-NSAPDIN2.js} +8 -4
- package/{chunk-JIT6FSXJ.js → chunk-O2TZF4AI.js} +1 -1
- package/{chunk-4KH4J3G5.js → chunk-OQPKUBPB.js} +1 -1
- package/{chunk-OXME3PEE.js → chunk-PCLE46CE.js} +1 -1
- package/{chunk-CJRONOYL.js → chunk-QG4AOSON.js} +8 -45
- package/{chunk-6OQUPIQF.js → chunk-QHPRUL4O.js} +3 -3
- package/{chunk-MMNYUVLW.js → chunk-R5O4QAWG.js} +1 -1
- package/{chunk-IAPCBNEE.js → chunk-RLBNLZVC.js} +1 -1
- package/{chunk-FHU44LN3.js → chunk-RSHTSUEG.js} +246 -77
- package/{chunk-25JZEIXN.js → chunk-RZOV7OMV.js} +11 -11
- package/{chunk-D2MDMY2M.js → chunk-SVYO6AO7.js} +7 -1
- package/{chunk-INSBKSBB.js → chunk-TAKB25RM.js} +1 -1
- package/{chunk-RU4SD66C.js → chunk-TX5EYMGT.js} +5 -5
- package/{chunk-D5RCRX4A.js → chunk-UYD5HQ6T.js} +746 -177
- package/{chunk-JTDORD5P.js → chunk-V5Y3R6BT.js} +110 -2
- package/{chunk-3RQVYR4B.js → chunk-VNYYOX3V.js} +59 -20
- package/{chunk-3AKFVZ2I.js → chunk-VO4WSAVP.js} +3 -3
- package/{chunk-6NSSLV67.js → chunk-WMTBPBMP.js} +6 -6
- package/{chunk-EZFQ6XRV.js → chunk-WRYQ35LQ.js} +4 -4
- package/{chunk-SOHTHFV2.js → chunk-WYDI6TGM.js} +14 -14
- package/{chunk-M6RL5JCD.js → chunk-X7SDOJUM.js} +3 -3
- package/{chunk-CQ46IRNN.js → chunk-XHQC4PXX.js} +48 -34
- package/{chunk-2WZXXAQD.js → chunk-YB3YZK56.js} +67 -1
- package/{chunk-22CIEBYO.js → chunk-YJAFKXMU.js} +11 -11
- package/{chunk-GSQNH63I.js → chunk-YTF4WH7J.js} +3 -19
- package/{chunk-5AQR3DGV.js → chunk-ZNWI6OVT.js} +2 -2
- package/{chunk-VZKUKCA6.js → chunk-ZXOUUDCG.js} +49 -40
- package/{commandRegistry-VVMTPFAX.js → commandRegistry-W63CYRZJ.js} +64 -64
- package/{contentThunks-N52O67MI.js → contentThunks-U7PL5MQD.js} +12 -12
- package/{cooldownCommands-YXLWOXWR.js → cooldownCommands-TIGUHXTD.js} +3 -3
- package/{createAgentAutomationAction-ZC57YRSV.js → createAgentAutomationAction-OLBQDD6R.js} +12 -12
- package/{createDialogAction-VQW5WDYX.js → createDialogAction-SVH6B3SB.js} +14 -14
- package/{createPageAction-M5VDA7SC.js → createPageAction-F4DIWZ2Z.js} +14 -14
- package/{dbSlice-HP7G4LX3.js → dbSlice-BVH2YZPQ.js} +4 -4
- package/{deleteFile-7VQGLK2V.js → deleteFile-5YOEKV4U.js} +2 -2
- package/{dialogCommands-JHMR2N2Y.js → dialogCommands-KHIEPY3M.js} +18 -18
- package/{dialogSlice-GRSVGDTF.js → dialogSlice-ZCTDV2PZ.js} +11 -11
- package/{docCreateCommands-F2K3UPSQ.js → docCreateCommands-DPMZI7G5.js} +14 -13
- package/{docDeleteCommands-XGXB5RFT.js → docDeleteCommands-IRQQLUBT.js} +16 -16
- package/{docReadCommands-7HWZZV6J.js → docReadCommands-LK37XH6L.js} +14 -13
- package/{docStore-KNZK6Y2G.js → docStore-V2KECILA.js} +5 -5
- package/{docUpdateCommands-OZZ7NQII.js → docUpdateCommands-O6T3HJHH.js} +14 -13
- package/{fetchMessages-M3QU7ZCQ.js → fetchMessages-NR4KNQLO.js} +2 -2
- package/{handleSendMessageAction-SHIH74GJ.js → handleSendMessageAction-2PE25WM3.js} +25 -25
- package/{hostCredentialCreate-X64WK4JD.js → hostCredentialCreate-S233UMAP.js} +42 -42
- package/index.js +7 -7
- package/{localDialogRead-XRLAH4CZ.js → localDialogRead-7NNDVVF7.js} +1 -1
- package/{localRuntimeAdapter-A7K3ABA6.js → localRuntimeAdapter-KY6WXNBR.js} +41 -41
- package/{machineCommands-DE3MR7CJ.js → machineCommands-Q6HA3IXF.js} +42 -42
- package/{machineWsRunDispatch-R26P5V36.js → machineWsRunDispatch-WWJQ6WR3.js} +42 -42
- package/{memberThunks-7WJAY5V6.js → memberThunks-7EDJADWU.js} +5 -5
- package/package.json +1 -1
- package/{projectArchive-GGL5HLMD.js → projectArchive-DRTDIMEV.js} +14 -14
- package/{read-4VZQODSN.js → read-4V2RMG7N.js} +2 -2
- package/{readDocTool-AVD32RUJ.js → readDocTool-BH6ATGQO.js} +1 -1
- package/{readlineWorkspace-XKYKNL2I.js → readlineWorkspace-2W4WRCOU.js} +322 -159
- package/{removeDialogAgentAction-FKL4BYMR.js → removeDialogAgentAction-LYAZGNKW.js} +5 -5
- package/{runAgentClientLoop-V7E2WBVM.js → runAgentClientLoop-J2VQBS2Z.js} +33 -33
- package/{secretCommands-4QS3HCA2.js → secretCommands-LXDWOLZ6.js} +1 -1
- package/{setDialogExtraReferencesAction-TLIOLWWI.js → setDialogExtraReferencesAction-OCRPGPYH.js} +5 -5
- package/{setPrimaryDialogAgentAction-2OLWRFYR.js → setPrimaryDialogAgentAction-HFJDQIBU.js} +5 -5
- package/{settingThunks-UGBPCNYF.js → settingThunks-RAMHMTGM.js} +7 -7
- package/{spaceCommands-4KSLKVNF.js → spaceCommands-KVJZVKVO.js} +14 -14
- package/{streamAgentChatTurn-7FR7X2NU.js → streamAgentChatTurn-GHBMJJ6S.js} +37 -37
- package/{switchDialogAgentAction-UZSAG2N5.js → switchDialogAgentAction-EBRMW3RA.js} +4 -4
- package/{tools-ZLKCC25W.js → tools-EWKCPKMS.js} +28 -28
- package/{tuiSummaryLlmCaller-WC54MVGP.js → tuiSummaryLlmCaller-ALQYUUWB.js} +41 -12
- package/{updateCommands-4744PL3P.js → updateCommands-ZQYU6SCI.js} +3 -3
- package/{updateDialogTitleAction-U53ZT7PJ.js → updateDialogTitleAction-5GGMBTDF.js} +12 -12
- package/{windowsSelfUpdate-XSQVF2GK.js → windowsSelfUpdate-257DV2T6.js} +2 -2
- package/{workloadLifecycle-4BEQHMSD.js → workloadLifecycle-4C42SVBD.js} +1 -0
|
@@ -168,6 +168,7 @@ var ProcessRegistry = class {
|
|
|
168
168
|
byTaskId = /* @__PURE__ */ new Map();
|
|
169
169
|
eventLog;
|
|
170
170
|
terminalListeners = /* @__PURE__ */ new Set();
|
|
171
|
+
backgroundListeners = /* @__PURE__ */ new Set();
|
|
171
172
|
constructor(eventLogOptions) {
|
|
172
173
|
this.eventLog = new ProcessTaskEventLog(eventLogOptions);
|
|
173
174
|
}
|
|
@@ -190,6 +191,21 @@ var ProcessRegistry = class {
|
|
|
190
191
|
this.terminalListeners.delete(listener);
|
|
191
192
|
};
|
|
192
193
|
}
|
|
194
|
+
/** Payload-free invalidation for the listBackground() view; no replay. */
|
|
195
|
+
onBackgroundChange(listener) {
|
|
196
|
+
this.backgroundListeners.add(listener);
|
|
197
|
+
return () => {
|
|
198
|
+
this.backgroundListeners.delete(listener);
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
emitBackgroundChange() {
|
|
202
|
+
for (const listener of [...this.backgroundListeners]) {
|
|
203
|
+
try {
|
|
204
|
+
listener();
|
|
205
|
+
} catch {
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
193
209
|
/** Emit a terminal notice synchronously; listener errors must not break registry callers. */
|
|
194
210
|
emitTerminal(notice) {
|
|
195
211
|
for (const listener of [...this.terminalListeners]) {
|
|
@@ -220,6 +236,7 @@ var ProcessRegistry = class {
|
|
|
220
236
|
this.processes.set(proc.pid, record);
|
|
221
237
|
this.byTaskId.set(record.taskId, proc.pid);
|
|
222
238
|
this.eventLog.append({ taskId: record.taskId, pid: proc.pid, type: "started" });
|
|
239
|
+
if (!record.transient) this.emitBackgroundChange();
|
|
223
240
|
return { ...record };
|
|
224
241
|
}
|
|
225
242
|
list() {
|
|
@@ -271,9 +288,11 @@ var ProcessRegistry = class {
|
|
|
271
288
|
const item = this.processes.get(pid);
|
|
272
289
|
if (!item) return void 0;
|
|
273
290
|
if (!item.promoted) {
|
|
291
|
+
const wasTransient = item.transient;
|
|
274
292
|
item.promoted = true;
|
|
275
293
|
item.transient = false;
|
|
276
294
|
this.eventLog.append({ taskId: item.taskId, pid, type: "promoted" });
|
|
295
|
+
if (wasTransient) this.emitBackgroundChange();
|
|
277
296
|
}
|
|
278
297
|
return { ...item };
|
|
279
298
|
}
|
|
@@ -304,6 +323,8 @@ var ProcessRegistry = class {
|
|
|
304
323
|
}
|
|
305
324
|
}
|
|
306
325
|
item.status = "stopped";
|
|
326
|
+
item.endedAt = Date.now();
|
|
327
|
+
if (!item.transient) this.emitBackgroundChange();
|
|
307
328
|
this.eventLog.append({ taskId: item.taskId, pid, type: "killed" });
|
|
308
329
|
this.emitTerminal({
|
|
309
330
|
taskId: item.taskId,
|
|
@@ -334,6 +355,8 @@ var ProcessRegistry = class {
|
|
|
334
355
|
}
|
|
335
356
|
}
|
|
336
357
|
item.status = "stopped";
|
|
358
|
+
item.endedAt = Date.now();
|
|
359
|
+
if (!item.transient) this.emitBackgroundChange();
|
|
337
360
|
this.eventLog.append({ taskId: item.taskId, pid: item.pid, type: "killed" });
|
|
338
361
|
this.emitTerminal({
|
|
339
362
|
taskId: item.taskId,
|
|
@@ -352,6 +375,8 @@ var ProcessRegistry = class {
|
|
|
352
375
|
item.exitCode = exitCode;
|
|
353
376
|
if (resultCapsule) item.resultCapsule = resultCapsule;
|
|
354
377
|
item.status = exitCode === 0 ? "exited" : "failed";
|
|
378
|
+
item.endedAt = Date.now();
|
|
379
|
+
if (!item.transient) this.emitBackgroundChange();
|
|
355
380
|
this.eventLog.append({
|
|
356
381
|
taskId: item.taskId,
|
|
357
382
|
pid,
|
|
@@ -390,6 +415,7 @@ var ProcessRegistry = class {
|
|
|
390
415
|
if (!item) return false;
|
|
391
416
|
this.processes.delete(pid);
|
|
392
417
|
this.byTaskId.delete(item.taskId);
|
|
418
|
+
if (!item.transient) this.emitBackgroundChange();
|
|
393
419
|
return true;
|
|
394
420
|
}
|
|
395
421
|
clear() {
|
|
@@ -397,6 +423,7 @@ var ProcessRegistry = class {
|
|
|
397
423
|
this.byTaskId.clear();
|
|
398
424
|
this.eventLog.clear();
|
|
399
425
|
this.terminalListeners.clear();
|
|
426
|
+
this.backgroundListeners.clear();
|
|
400
427
|
}
|
|
401
428
|
};
|
|
402
429
|
var registry = null;
|
|
@@ -1315,7 +1342,7 @@ function removeSpillFile(path) {
|
|
|
1315
1342
|
} catch {
|
|
1316
1343
|
}
|
|
1317
1344
|
}
|
|
1318
|
-
function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BYTES) {
|
|
1345
|
+
function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BYTES, capture) {
|
|
1319
1346
|
if (!stream) return Promise.resolve("");
|
|
1320
1347
|
const options = typeof maxBytesOrOptions === "number" ? { maxBytes: maxBytesOrOptions } : maxBytesOrOptions ?? {};
|
|
1321
1348
|
const maxBytes = typeof options.maxBytes === "number" && Number.isFinite(options.maxBytes) && options.maxBytes >= 0 ? options.maxBytes : DEFAULT_MAX_STREAM_BUFFER_BYTES;
|
|
@@ -1326,6 +1353,13 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
|
|
|
1326
1353
|
const chunks = [];
|
|
1327
1354
|
let totalBytes = 0;
|
|
1328
1355
|
let settled = false;
|
|
1356
|
+
let captureResolved = false;
|
|
1357
|
+
const resolveCapture = (text) => {
|
|
1358
|
+
if (captureResolved) return;
|
|
1359
|
+
captureResolved = true;
|
|
1360
|
+
capture?.stopSignal.removeEventListener("abort", stopCapture);
|
|
1361
|
+
resolveStream(text);
|
|
1362
|
+
};
|
|
1329
1363
|
let truncated = false;
|
|
1330
1364
|
let spillState = spillPath ? "idle" : "disabled";
|
|
1331
1365
|
let spillError = null;
|
|
@@ -1334,6 +1368,7 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
|
|
|
1334
1368
|
let spillSink = null;
|
|
1335
1369
|
let sourcePausedForSpill = false;
|
|
1336
1370
|
let sinkFinished = false;
|
|
1371
|
+
let spillSettlement;
|
|
1337
1372
|
const formatLimit = maxBytes >= 1024 * 1024 ? `${Math.round(maxBytes / (1024 * 1024))}MB` : `${Math.round(maxBytes / 1024)}KB`;
|
|
1338
1373
|
const resumeSourceIfPaused = () => {
|
|
1339
1374
|
if (!sourcePausedForSpill) return;
|
|
@@ -1344,7 +1379,7 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
|
|
|
1344
1379
|
}
|
|
1345
1380
|
};
|
|
1346
1381
|
const markSpillFailed = (error) => {
|
|
1347
|
-
if (spillState === "failed") return;
|
|
1382
|
+
if (spillSettlement || spillState === "failed") return;
|
|
1348
1383
|
spillState = "failed";
|
|
1349
1384
|
if (!spillError) {
|
|
1350
1385
|
spillError = toErrorMessage(error);
|
|
@@ -1411,26 +1446,30 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
|
|
|
1411
1446
|
for (const head of headChunks) writeToSink(head);
|
|
1412
1447
|
writeToSink(crossingChunk);
|
|
1413
1448
|
};
|
|
1414
|
-
const settleSpillRetention =
|
|
1415
|
-
if (
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
if (spillRetention === "promote" && spillState === "ok" && sourceEnded) {
|
|
1422
|
-
const promoted = await promoteToolSpillFile(spillPath, {
|
|
1423
|
-
workspaceRoot: options.spillWorkspaceRoot
|
|
1424
|
-
});
|
|
1425
|
-
if (promoted.ok) {
|
|
1426
|
-
spillRetainedPath = promoted.displayPath;
|
|
1449
|
+
const settleSpillRetention = () => {
|
|
1450
|
+
if (spillSettlement) return spillSettlement;
|
|
1451
|
+
spillSettlement = Promise.resolve().then(async () => {
|
|
1452
|
+
if (!spillPath || spillRetention === "keep") {
|
|
1453
|
+
if (spillPath && spillRetention === "keep" && spillState === "ok") {
|
|
1454
|
+
spillRetainedPath = spillPath;
|
|
1455
|
+
}
|
|
1427
1456
|
return;
|
|
1428
1457
|
}
|
|
1429
|
-
if (
|
|
1430
|
-
|
|
1458
|
+
if (spillRetention === "promote" && spillState === "ok" && sourceEnded) {
|
|
1459
|
+
const promoted = await (capture?.promoteSpill ?? promoteToolSpillFile)(spillPath, {
|
|
1460
|
+
workspaceRoot: options.spillWorkspaceRoot
|
|
1461
|
+
});
|
|
1462
|
+
if (promoted.ok) {
|
|
1463
|
+
spillRetainedPath = promoted.displayPath;
|
|
1464
|
+
return;
|
|
1465
|
+
}
|
|
1466
|
+
if (promoted.preservedPath) {
|
|
1467
|
+
return;
|
|
1468
|
+
}
|
|
1431
1469
|
}
|
|
1432
|
-
|
|
1433
|
-
|
|
1470
|
+
removeSpillFile(spillPath);
|
|
1471
|
+
});
|
|
1472
|
+
return spillSettlement;
|
|
1434
1473
|
};
|
|
1435
1474
|
const finalize = (wasTruncated) => {
|
|
1436
1475
|
if (settled) return;
|
|
@@ -1438,7 +1477,9 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
|
|
|
1438
1477
|
const truncatedNow = wasTruncated || truncated;
|
|
1439
1478
|
const baseText = Buffer.concat(chunks).toString("utf8");
|
|
1440
1479
|
const done = async () => {
|
|
1480
|
+
if (captureResolved) return;
|
|
1441
1481
|
await settleSpillRetention();
|
|
1482
|
+
if (captureResolved) return;
|
|
1442
1483
|
let text = baseText;
|
|
1443
1484
|
if (truncatedNow) {
|
|
1444
1485
|
const notes = [`output exceeded ${formatLimit} buffer limit`];
|
|
@@ -1453,7 +1494,8 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
|
|
|
1453
1494
|
|
|
1454
1495
|
[stream pipe truncated: ${notes.join("; ")}]`;
|
|
1455
1496
|
}
|
|
1456
|
-
|
|
1497
|
+
chunks.length = 0;
|
|
1498
|
+
resolveCapture(text);
|
|
1457
1499
|
};
|
|
1458
1500
|
const sink = spillSink;
|
|
1459
1501
|
if (!sink || spillState !== "open") {
|
|
@@ -1486,6 +1528,23 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
|
|
|
1486
1528
|
settleSink(true, error);
|
|
1487
1529
|
}
|
|
1488
1530
|
};
|
|
1531
|
+
const stopCapture = () => {
|
|
1532
|
+
if (captureResolved) return;
|
|
1533
|
+
settled = true;
|
|
1534
|
+
const reason = "capture incomplete: post-exit drain grace exceeded";
|
|
1535
|
+
const snapshot = Buffer.concat(chunks).toString("utf8");
|
|
1536
|
+
chunks.length = 0;
|
|
1537
|
+
capture?.onIncomplete(reason);
|
|
1538
|
+
if (!spillSettlement) {
|
|
1539
|
+
markSpillFailed(new Error(reason));
|
|
1540
|
+
void settleSpillRetention();
|
|
1541
|
+
}
|
|
1542
|
+
resolveCapture(`${snapshot}
|
|
1543
|
+
|
|
1544
|
+
[${reason}]`);
|
|
1545
|
+
};
|
|
1546
|
+
capture?.stopSignal.addEventListener("abort", stopCapture, { once: true });
|
|
1547
|
+
if (capture?.stopSignal.aborted) stopCapture();
|
|
1489
1548
|
stream.on("data", (chunk) => {
|
|
1490
1549
|
if (settled) return;
|
|
1491
1550
|
const buf = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
@@ -1524,6 +1583,9 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
|
|
|
1524
1583
|
}
|
|
1525
1584
|
resumeSourceIfPaused();
|
|
1526
1585
|
void settleSpillRetention();
|
|
1586
|
+
captureResolved = true;
|
|
1587
|
+
capture?.stopSignal.removeEventListener("abort", stopCapture);
|
|
1588
|
+
chunks.length = 0;
|
|
1527
1589
|
rejectStream(error);
|
|
1528
1590
|
});
|
|
1529
1591
|
stream.on("end", () => {
|
|
@@ -1533,14 +1595,6 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
|
|
|
1533
1595
|
stream.on("close", () => finalize(false));
|
|
1534
1596
|
});
|
|
1535
1597
|
}
|
|
1536
|
-
function waitForNodeProcessExit(proc) {
|
|
1537
|
-
return new Promise((resolveExit, rejectExit) => {
|
|
1538
|
-
proc.on("error", rejectExit);
|
|
1539
|
-
proc.on("close", (code) => {
|
|
1540
|
-
resolveExit(code ?? 0);
|
|
1541
|
-
});
|
|
1542
|
-
});
|
|
1543
|
-
}
|
|
1544
1598
|
function deriveLabel(command) {
|
|
1545
1599
|
const trimmed = command.trim();
|
|
1546
1600
|
if (!trimmed) return "process";
|
|
@@ -1588,6 +1642,7 @@ async function runWorkspaceCommand(args) {
|
|
|
1588
1642
|
...args.commandPrefix ?? [],
|
|
1589
1643
|
...args.command
|
|
1590
1644
|
];
|
|
1645
|
+
const spawnedAt = Date.now();
|
|
1591
1646
|
const proc = spawnChildProcess(command[0] ?? "", command.slice(1), {
|
|
1592
1647
|
cwd: resolve(args.workspaceRoot),
|
|
1593
1648
|
stdio: [
|
|
@@ -1621,7 +1676,10 @@ async function runWorkspaceCommand(args) {
|
|
|
1621
1676
|
owner: args.owner ?? null
|
|
1622
1677
|
});
|
|
1623
1678
|
}
|
|
1624
|
-
const
|
|
1679
|
+
const processExitPromise = new Promise((resolveExit, rejectExit) => {
|
|
1680
|
+
proc.once("exit", (code) => resolveExit(code ?? 0));
|
|
1681
|
+
proc.once("error", rejectExit);
|
|
1682
|
+
});
|
|
1625
1683
|
const cleanupChildOnHostSignal = (signal) => {
|
|
1626
1684
|
if (typeof proc.pid === "number") {
|
|
1627
1685
|
try {
|
|
@@ -1641,21 +1699,50 @@ async function runWorkspaceCommand(args) {
|
|
|
1641
1699
|
process.removeListener("SIGTERM", cleanupChildOnHostSignal);
|
|
1642
1700
|
process.removeListener("SIGINT", cleanupChildOnHostSignal);
|
|
1643
1701
|
};
|
|
1644
|
-
|
|
1702
|
+
const captureCutoff = new AbortController();
|
|
1703
|
+
let stdoutIncomplete;
|
|
1704
|
+
let stderrIncomplete;
|
|
1645
1705
|
const stdoutCapture = stdoutPromiseResult(
|
|
1646
1706
|
readNodeStream(proc.stdout, {
|
|
1647
1707
|
spillPath: join3(tmpdir(), `nolo-stream-${randomUUID2()}.log`),
|
|
1648
1708
|
spillRetention: "promote",
|
|
1649
1709
|
spillWorkspaceRoot: args.workspaceRoot
|
|
1710
|
+
}, {
|
|
1711
|
+
stopSignal: captureCutoff.signal,
|
|
1712
|
+
onIncomplete: (reason) => {
|
|
1713
|
+
stdoutIncomplete = reason;
|
|
1714
|
+
}
|
|
1650
1715
|
})
|
|
1651
|
-
);
|
|
1716
|
+
).then((result) => ({ ...result, error: result.error || stdoutIncomplete }));
|
|
1652
1717
|
const stderrCapture = stdoutPromiseResult(
|
|
1653
1718
|
readNodeStream(proc.stderr, {
|
|
1654
1719
|
spillPath: join3(tmpdir(), `nolo-stream-${randomUUID2()}-stderr.log`),
|
|
1655
1720
|
spillRetention: "promote",
|
|
1656
1721
|
spillWorkspaceRoot: args.workspaceRoot
|
|
1722
|
+
}, {
|
|
1723
|
+
stopSignal: captureCutoff.signal,
|
|
1724
|
+
onIncomplete: (reason) => {
|
|
1725
|
+
stderrIncomplete = reason;
|
|
1726
|
+
}
|
|
1657
1727
|
})
|
|
1658
|
-
);
|
|
1728
|
+
).then((result) => ({ ...result, error: result.error || stderrIncomplete }));
|
|
1729
|
+
const exitPromise = processExitPromise.then(async (code) => {
|
|
1730
|
+
const drainTimer = setTimeout(() => captureCutoff.abort(), 2e3);
|
|
1731
|
+
try {
|
|
1732
|
+
await Promise.all([stdoutCapture, stderrCapture]);
|
|
1733
|
+
return code;
|
|
1734
|
+
} finally {
|
|
1735
|
+
clearTimeout(drainTimer);
|
|
1736
|
+
}
|
|
1737
|
+
});
|
|
1738
|
+
let processExited = false;
|
|
1739
|
+
let terminationReason;
|
|
1740
|
+
let timeout;
|
|
1741
|
+
let forceKillTimer;
|
|
1742
|
+
const cleanupTerminationTimers = () => {
|
|
1743
|
+
if (timeout) clearTimeout(timeout);
|
|
1744
|
+
if (forceKillTimer) clearTimeout(forceKillTimer);
|
|
1745
|
+
};
|
|
1659
1746
|
const killChild = (signal) => {
|
|
1660
1747
|
if (detached && typeof proc.pid === "number") {
|
|
1661
1748
|
try {
|
|
@@ -1669,7 +1756,22 @@ async function runWorkspaceCommand(args) {
|
|
|
1669
1756
|
} catch {
|
|
1670
1757
|
}
|
|
1671
1758
|
};
|
|
1672
|
-
|
|
1759
|
+
const onProcessExit = () => {
|
|
1760
|
+
processExited = true;
|
|
1761
|
+
cleanupTerminationTimers();
|
|
1762
|
+
detachSignalCleanup();
|
|
1763
|
+
};
|
|
1764
|
+
proc.once("exit", onProcessExit);
|
|
1765
|
+
proc.once("error", onProcessExit);
|
|
1766
|
+
const terminate = (reason) => {
|
|
1767
|
+
if (processExited || terminationReason) return;
|
|
1768
|
+
terminationReason = reason;
|
|
1769
|
+
if (timeout) clearTimeout(timeout);
|
|
1770
|
+
killChild("SIGTERM");
|
|
1771
|
+
forceKillTimer = setTimeout(() => {
|
|
1772
|
+
if (!processExited) killChild("SIGKILL");
|
|
1773
|
+
}, 500);
|
|
1774
|
+
};
|
|
1673
1775
|
let detachTimer;
|
|
1674
1776
|
const timeoutResult = Symbol("timeout");
|
|
1675
1777
|
const abortResult = Symbol("abort");
|
|
@@ -1680,7 +1782,10 @@ async function runWorkspaceCommand(args) {
|
|
|
1680
1782
|
resolveAbort(abortResult);
|
|
1681
1783
|
return;
|
|
1682
1784
|
}
|
|
1683
|
-
abortListener = () =>
|
|
1785
|
+
abortListener = () => {
|
|
1786
|
+
terminate("abort");
|
|
1787
|
+
resolveAbort(abortResult);
|
|
1788
|
+
};
|
|
1684
1789
|
args.abortSignal.addEventListener("abort", abortListener, { once: true });
|
|
1685
1790
|
}) : null;
|
|
1686
1791
|
const effectiveDetachMs = resolveDetachMs(args.detachMs);
|
|
@@ -1690,7 +1795,12 @@ async function runWorkspaceCommand(args) {
|
|
|
1690
1795
|
const exitOrTimeoutPromise = timeoutMs ? Promise.race([
|
|
1691
1796
|
exitPromise,
|
|
1692
1797
|
new Promise((resolveTimeout) => {
|
|
1693
|
-
timeout = setTimeout(() =>
|
|
1798
|
+
timeout = setTimeout(() => {
|
|
1799
|
+
if (processExited) return;
|
|
1800
|
+
const aborted2 = args.abortSignal?.aborted === true;
|
|
1801
|
+
terminate(aborted2 ? "abort" : "timeout");
|
|
1802
|
+
resolveTimeout(aborted2 ? abortResult : timeoutResult);
|
|
1803
|
+
}, Math.max(0, timeoutMs - (Date.now() - spawnedAt)));
|
|
1694
1804
|
})
|
|
1695
1805
|
]) : exitPromise;
|
|
1696
1806
|
const raceCandidates = [
|
|
@@ -1704,7 +1814,7 @@ async function runWorkspaceCommand(args) {
|
|
|
1704
1814
|
try {
|
|
1705
1815
|
raceWinner = await Promise.race(raceCandidates);
|
|
1706
1816
|
} catch (error) {
|
|
1707
|
-
|
|
1817
|
+
cleanupTerminationTimers();
|
|
1708
1818
|
if (detachTimer) clearTimeout(detachTimer);
|
|
1709
1819
|
if (abortListener && args.abortSignal) {
|
|
1710
1820
|
args.abortSignal.removeEventListener("abort", abortListener);
|
|
@@ -1717,24 +1827,20 @@ async function runWorkspaceCommand(args) {
|
|
|
1717
1827
|
}
|
|
1718
1828
|
throw error;
|
|
1719
1829
|
}
|
|
1720
|
-
if (timeout) clearTimeout(timeout);
|
|
1721
1830
|
if (detachTimer) clearTimeout(detachTimer);
|
|
1722
1831
|
if (abortListener && args.abortSignal) {
|
|
1723
1832
|
args.abortSignal.removeEventListener("abort", abortListener);
|
|
1724
1833
|
}
|
|
1725
|
-
const
|
|
1726
|
-
const
|
|
1834
|
+
const aborted = raceWinner === abortResult || raceWinner === timeoutResult && args.abortSignal?.aborted === true;
|
|
1835
|
+
const timedOut = raceWinner === timeoutResult && !aborted;
|
|
1727
1836
|
const detachedProcess = raceWinner === detachResult;
|
|
1728
1837
|
if (timedOut || aborted) {
|
|
1729
|
-
|
|
1730
|
-
const forceKillTimer = setTimeout(() => {
|
|
1731
|
-
killChild("SIGKILL");
|
|
1732
|
-
}, 500);
|
|
1838
|
+
terminate(aborted ? "abort" : "timeout");
|
|
1733
1839
|
try {
|
|
1734
1840
|
await exitPromise;
|
|
1735
1841
|
} catch {
|
|
1736
1842
|
} finally {
|
|
1737
|
-
|
|
1843
|
+
cleanupTerminationTimers();
|
|
1738
1844
|
}
|
|
1739
1845
|
}
|
|
1740
1846
|
if (detachedProcess) {
|
|
@@ -1752,9 +1858,9 @@ async function runWorkspaceCommand(args) {
|
|
|
1752
1858
|
owner: args.owner ?? null
|
|
1753
1859
|
});
|
|
1754
1860
|
const taskId = envelope.taskId;
|
|
1755
|
-
|
|
1861
|
+
void exitPromise.then(() => {
|
|
1756
1862
|
detachSignalCleanup();
|
|
1757
|
-
const exitCode2 =
|
|
1863
|
+
const exitCode2 = terminationReason === "abort" ? 130 : terminationReason === "timeout" ? 124 : proc.exitCode ?? 1;
|
|
1758
1864
|
void (async () => {
|
|
1759
1865
|
const [stdoutResult, stderrResult] = await Promise.all([
|
|
1760
1866
|
stdoutCapture,
|
|
@@ -1763,10 +1869,15 @@ async function runWorkspaceCommand(args) {
|
|
|
1763
1869
|
const stdout2 = stdoutResult.value;
|
|
1764
1870
|
const stderr2 = stderrResult.value;
|
|
1765
1871
|
let capsule;
|
|
1872
|
+
const terminalStderr = terminationReason === "abort" ? `${stderr2.trim() ? `${stderr2.trim()}
|
|
1873
|
+
` : ""}command aborted by signal
|
|
1874
|
+
` : terminationReason === "timeout" ? `${stderr2.trim() ? `${stderr2.trim()}
|
|
1875
|
+
` : ""}command timed out after ${timeoutMs}ms
|
|
1876
|
+
` : stderr2;
|
|
1766
1877
|
try {
|
|
1767
1878
|
capsule = buildProcessTaskResultCapsule({
|
|
1768
1879
|
stdout: stdout2,
|
|
1769
|
-
stderr:
|
|
1880
|
+
stderr: terminalStderr,
|
|
1770
1881
|
exitCode: exitCode2,
|
|
1771
1882
|
// Duration is measured from the registry envelope's startedAt
|
|
1772
1883
|
// (spawn moment), not from the detach moment.
|
|
@@ -1778,6 +1889,7 @@ async function runWorkspaceCommand(args) {
|
|
|
1778
1889
|
}
|
|
1779
1890
|
registry2.markExited(pid, exitCode2, capsule);
|
|
1780
1891
|
})();
|
|
1892
|
+
}, () => {
|
|
1781
1893
|
});
|
|
1782
1894
|
const immediate = effectiveDetachMs === 0;
|
|
1783
1895
|
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})`;
|
|
@@ -1806,8 +1918,10 @@ Use listProcesses to inspect or stop it.`,
|
|
|
1806
1918
|
stderrCapture
|
|
1807
1919
|
]);
|
|
1808
1920
|
const stdout = stdoutCaptureResult.value;
|
|
1809
|
-
const rawStderr = stderrCaptureResult.value;
|
|
1810
1921
|
const streamCaptureError = [stdoutCaptureResult.error, stderrCaptureResult.error].filter(Boolean).join("; ");
|
|
1922
|
+
const rawStderr = streamCaptureError ? `${stderrCaptureResult.value}
|
|
1923
|
+
[${streamCaptureError}]
|
|
1924
|
+
` : stderrCaptureResult.value;
|
|
1811
1925
|
const exitCode = aborted ? 130 : timedOut ? 124 : Number(raceWinner);
|
|
1812
1926
|
if (typeof proc.pid === "number") {
|
|
1813
1927
|
registry2.completeTransient(proc.pid, exitCode);
|
|
@@ -7,16 +7,16 @@ import {
|
|
|
7
7
|
normalizeSystemBuiltinSkills,
|
|
8
8
|
normalizeTonePresetSetting,
|
|
9
9
|
resolveUserEnabledSkills
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-R5O4QAWG.js";
|
|
11
11
|
import {
|
|
12
12
|
isSkillSummaryMarker
|
|
13
13
|
} from "./chunk-VF4K2QE6.js";
|
|
14
14
|
import {
|
|
15
15
|
setDialogExtraReferencesAction
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-TAKB25RM.js";
|
|
17
17
|
import {
|
|
18
18
|
fetchAndCacheTableRows
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-7Y4YTDQF.js";
|
|
20
20
|
import {
|
|
21
21
|
createSpaceKey
|
|
22
22
|
} from "./chunk-UAD2WT54.js";
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
} from "./chunk-YDH3FDFQ.js";
|
|
29
29
|
import {
|
|
30
30
|
selectById
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-FW6YHHLI.js";
|
|
32
32
|
import {
|
|
33
33
|
selectRuntimeSnapshot
|
|
34
34
|
} from "./chunk-PYRUW7XN.js";
|
|
@@ -42,10 +42,10 @@ import {
|
|
|
42
42
|
import {
|
|
43
43
|
listBuiltinSkills,
|
|
44
44
|
resolveBuiltinSkillByName
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-WRYQ35LQ.js";
|
|
46
46
|
import {
|
|
47
47
|
DEFAULT_SYSTEM_AGENT_CAPABILITIES
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-EHGEOAHI.js";
|
|
49
49
|
import {
|
|
50
50
|
parseSkillDocProtocol
|
|
51
51
|
} from "./chunk-AETZ7AD6.js";
|
|
@@ -783,7 +783,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
783
783
|
if (!executionInput) {
|
|
784
784
|
throw new Error(`ToolRun ${id} has no input to execute with.`);
|
|
785
785
|
}
|
|
786
|
-
const { findToolExecutor } = await import("./tools-
|
|
786
|
+
const { findToolExecutor } = await import("./tools-EWKCPKMS.js");
|
|
787
787
|
const { executor } = findToolExecutor(run.toolName);
|
|
788
788
|
toolRunStarted({
|
|
789
789
|
id: run.id,
|
|
@@ -807,7 +807,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
807
807
|
const latestState = thunkApi.getState();
|
|
808
808
|
const userId = selectIdentityUserId(latestState);
|
|
809
809
|
if (userId) {
|
|
810
|
-
const { fetchUserSpaceMemberships } = await import("./memberThunks-
|
|
810
|
+
const { fetchUserSpaceMemberships } = await import("./memberThunks-7EDJADWU.js");
|
|
811
811
|
await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
|
|
812
812
|
}
|
|
813
813
|
}
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-YDH3FDFQ.js";
|
|
12
12
|
import {
|
|
13
13
|
toTimestampMs
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-FW6YHHLI.js";
|
|
15
15
|
import {
|
|
16
16
|
fetchFromServer,
|
|
17
17
|
getAllServers
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
} from "./chunk-PXYBUFDB.js";
|
|
23
23
|
import {
|
|
24
24
|
isTombstoneRecord
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-SVYO6AO7.js";
|
|
26
26
|
import {
|
|
27
27
|
__toESM
|
|
28
28
|
} from "./chunk-4VNS5WPM.js";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
listUserRecordsFromServers,
|
|
3
3
|
readLiveDbRecordAfterTombstoneMerge
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-VO4WSAVP.js";
|
|
5
5
|
import {
|
|
6
6
|
agentRecordHasConfiguredCredential
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MOIJOHA5.js";
|
|
8
8
|
import {
|
|
9
9
|
deriveCredentialGroup
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-QG4AOSON.js";
|
|
11
11
|
import {
|
|
12
12
|
isTombstoneRecord
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-SVYO6AO7.js";
|
|
14
14
|
import {
|
|
15
15
|
PUBLIC_AGENT_KEY_PREFIX,
|
|
16
16
|
isOwnedAgentKey,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
upsertSSREntity,
|
|
3
3
|
write
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-FW6YHHLI.js";
|
|
5
5
|
import {
|
|
6
6
|
getRuntimeServerContext,
|
|
7
7
|
resolveRecordAuthority
|
|
@@ -458,7 +458,7 @@ var slice = createSliceWithThunks({
|
|
|
458
458
|
const overrides = {};
|
|
459
459
|
if (args.systemPromptOverride !== void 0) overrides.prompt = args.systemPromptOverride;
|
|
460
460
|
if (args.toolsOverride !== void 0) overrides.tools = args.toolsOverride;
|
|
461
|
-
const { _executeModel } = await import("./_executeModel-
|
|
461
|
+
const { _executeModel } = await import("./_executeModel-CUJLCFWR.js");
|
|
462
462
|
return _executeModel(
|
|
463
463
|
{
|
|
464
464
|
isStreaming: args.isStreaming ?? false,
|
|
@@ -479,7 +479,7 @@ var slice = createSliceWithThunks({
|
|
|
479
479
|
* - 循环直到无工具调用或触发其他运行时停止条件
|
|
480
480
|
*/
|
|
481
481
|
runAgent: create.asyncThunk(async (args, thunkApi) => {
|
|
482
|
-
const { runAgentClientLoop } = await import("./runAgentClientLoop-
|
|
482
|
+
const { runAgentClientLoop } = await import("./runAgentClientLoop-J2VQBS2Z.js");
|
|
483
483
|
const { content: loopContent, toolCallCount } = await runAgentClientLoop(
|
|
484
484
|
{
|
|
485
485
|
agentKey: args.agentKey,
|
|
@@ -495,7 +495,7 @@ var slice = createSliceWithThunks({
|
|
|
495
495
|
* 聊天轮次流式 Agent 调用
|
|
496
496
|
*/
|
|
497
497
|
streamAgentChatTurn: create.asyncThunk(async (args, thunkApi) => {
|
|
498
|
-
const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-
|
|
498
|
+
const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-GHBMJJ6S.js");
|
|
499
499
|
return streamAgentChatTurnHandler(args, thunkApi);
|
|
500
500
|
}),
|
|
501
501
|
/**
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
addContentToSpace
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7Y4YTDQF.js";
|
|
4
4
|
import {
|
|
5
5
|
prepareAndPersistMessage,
|
|
6
6
|
uiAskChoiceFunc,
|
|
7
7
|
uiAskChoiceFunctionSchema
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ZXOUUDCG.js";
|
|
9
9
|
import {
|
|
10
10
|
require_format
|
|
11
11
|
} from "./chunk-7RFNTILS.js";
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
removeCachedEntity,
|
|
19
19
|
upsertSSREntity,
|
|
20
20
|
write
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-FW6YHHLI.js";
|
|
22
22
|
import {
|
|
23
23
|
isDevelopment
|
|
24
24
|
} from "./chunk-AGP3YSEC.js";
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
} from "./chunk-PXYBUFDB.js";
|
|
28
28
|
import {
|
|
29
29
|
buildBuiltinObjectSkillReference
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-EHGEOAHI.js";
|
|
31
31
|
import {
|
|
32
32
|
extractCustomId
|
|
33
33
|
} from "./chunk-M2EJHDJP.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
markdownToSlate
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-75XIDFBW.js";
|
|
4
4
|
import {
|
|
5
5
|
buildSkillSummaryMarker
|
|
6
6
|
} from "./chunk-VF4K2QE6.js";
|
|
@@ -14,16 +14,16 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
addContentToSpace,
|
|
16
16
|
resolveCreationSpaceId
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-7Y4YTDQF.js";
|
|
18
18
|
import {
|
|
19
19
|
runtime_default
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-ZXOUUDCG.js";
|
|
21
21
|
import {
|
|
22
22
|
getCurrentSpaceId
|
|
23
23
|
} from "./chunk-5XBUWM6I.js";
|
|
24
24
|
import {
|
|
25
25
|
write
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-FW6YHHLI.js";
|
|
27
27
|
import {
|
|
28
28
|
selectIdentityUserId
|
|
29
29
|
} from "./chunk-PXYBUFDB.js";
|