nolo-cli 0.146.0-alpha.4 → 0.147.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-KCOBSFWR.js → _executeModel-MQFQCXIE.js} +12 -12
- package/{agentEmailCommands-JWAAVWK5.js → agentEmailCommands-SV276XHA.js} +10 -10
- package/{agentMachineCommands-GL4TIGRD.js → agentMachineCommands-IB2WMF3X.js} +1 -1
- package/{agentRecordCommands-ZPVDMPWS.js → agentRecordCommands-D5FUBTKU.js} +10 -10
- package/{agentRunCommand-UF3OUWWS.js → agentRunCommand-TNW4RJ6W.js} +10 -10
- package/{agentSlice-VWIBQKC5.js → agentSlice-L6ILXYZ3.js} +1 -1
- package/{chatQueueReduxAdapter-MBIUZKDL.js → chatQueueReduxAdapter-OUCL4GQF.js} +2 -2
- package/{chunk-I2NACKOX.js → chunk-5ROO623H.js} +2 -2
- package/{chunk-MTS4CSGW.js → chunk-67QZSNVD.js} +2 -2
- package/{chunk-YFIEJTJP.js → chunk-6HWONTC6.js} +1 -1
- package/{chunk-RS4EE3CY.js → chunk-6RO37MST.js} +4 -4
- package/{chunk-LL75KBOF.js → chunk-7V2HN64K.js} +7 -5
- package/{chunk-2Q7IUN6P.js → chunk-A7WFQXNK.js} +4 -4
- package/{chunk-GOMR6S5Z.js → chunk-BJ3KD73I.js} +72 -0
- package/{chunk-ARJISZLY.js → chunk-C4YCNZFV.js} +8 -8
- package/{chunk-XCMPF226.js → chunk-DSY37Y5Z.js} +1 -1
- package/{chunk-45RDJCWY.js → chunk-GP4TSLAB.js} +11 -75
- package/{chunk-6OTOA5MH.js → chunk-JK5XW3NO.js} +1 -1
- package/{chunk-LSEP3JEV.js → chunk-NLBUI6IU.js} +3 -3
- package/{chunk-NAQIJEFD.js → chunk-QWYHDF4G.js} +2 -2
- package/{chunk-3KYLP2QO.js → chunk-WSGZ4I7M.js} +1 -1
- package/{chunk-S4DLQ5OR.js → chunk-XA4RT4LC.js} +6 -6
- package/{chunk-C22W3XQ5.js → chunk-YAE5DQ5C.js} +2 -2
- package/{chunk-PWOXYPE6.js → chunk-YYKMFBK7.js} +112 -0
- package/{commandRegistry-VKPZIDKP.js → commandRegistry-OIUSLAJG.js} +14 -14
- package/{contentThunks-XVHPJRVX.js → contentThunks-5QTQNUD2.js} +3 -3
- package/{createAgentAutomationAction-QY3TENYN.js → createAgentAutomationAction-YQKECXJV.js} +3 -3
- package/{createDialogAction-ETRYMHLA.js → createDialogAction-3NGUXFB7.js} +4 -4
- package/{createPageAction-5VX64XOW.js → createPageAction-6MIKNYUH.js} +3 -3
- package/{dialogSlice-Z7CEY2WY.js → dialogSlice-UGWF2KW6.js} +2 -2
- package/{docStore-IZ6XRQCW.js → docStore-MOM2DHF5.js} +1 -1
- package/{handleSendMessageAction-6XVOLKPH.js → handleSendMessageAction-QD6DK7XX.js} +142 -80
- package/index.js +2 -2
- package/{machineCommands-VVSQOM5V.js → machineCommands-42EQE5E2.js} +10 -10
- package/{machineWsRunDispatch-LKBI7AMM.js → machineWsRunDispatch-QTUFQTZ5.js} +10 -10
- package/package.json +1 -1
- package/{readlineWorkspace-A6I3TDOI.js → readlineWorkspace-2QJL7CU4.js} +10 -10
- package/{runAgentClientLoop-SU23IDMY.js → runAgentClientLoop-2EFDJHKS.js} +10 -10
- package/{streamAgentChatTurn-KJMIQEDI.js → streamAgentChatTurn-IUFYM3LS.js} +18 -121
- package/{tools-M2HTAI6K.js → tools-G7AM5SXM.js} +7 -7
- package/{updateDialogTitleAction-KZZ26EZU.js → updateDialogTitleAction-56P5NFOI.js} +3 -3
|
@@ -3,8 +3,9 @@ import {
|
|
|
3
3
|
} from "./chunk-BMQ2MJUK.js";
|
|
4
4
|
import {
|
|
5
5
|
buildForegroundTurnAdmissionFetchInit,
|
|
6
|
-
consumeAgentRunStream
|
|
7
|
-
|
|
6
|
+
consumeAgentRunStream,
|
|
7
|
+
projectDesktopToolUiContent
|
|
8
|
+
} from "./chunk-YYKMFBK7.js";
|
|
8
9
|
import {
|
|
9
10
|
CONTEXT_OVERFLOW_ACTIONS,
|
|
10
11
|
CONTEXT_TOO_LARGE_ACTIONS,
|
|
@@ -12,11 +13,12 @@ import {
|
|
|
12
13
|
} from "./chunk-OCZKATRC.js";
|
|
13
14
|
import {
|
|
14
15
|
performServerProxyFetchWithRetry
|
|
15
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-JK5XW3NO.js";
|
|
16
17
|
import {
|
|
17
18
|
createSSEParser,
|
|
19
|
+
resolveAgentRequiredPackIds,
|
|
18
20
|
waitForAbortableDelay
|
|
19
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-BJ3KD73I.js";
|
|
20
22
|
import "./chunk-NF64D32W.js";
|
|
21
23
|
import "./chunk-3L2WKC3W.js";
|
|
22
24
|
import {
|
|
@@ -28,14 +30,15 @@ import {
|
|
|
28
30
|
resolveHandleSendMessageContext,
|
|
29
31
|
selectAllMsgs,
|
|
30
32
|
setMessages,
|
|
31
|
-
setStreamingMessageId
|
|
32
|
-
|
|
33
|
+
setStreamingMessageId,
|
|
34
|
+
updateToolMessage
|
|
35
|
+
} from "./chunk-C4YCNZFV.js";
|
|
33
36
|
import "./chunk-523DITKR.js";
|
|
34
37
|
import "./chunk-YYLHWIW6.js";
|
|
35
38
|
import "./chunk-6O4IK4V2.js";
|
|
36
39
|
import {
|
|
37
40
|
streamAgentChatTurn
|
|
38
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-NLBUI6IU.js";
|
|
39
42
|
import "./chunk-D76D3RTR.js";
|
|
40
43
|
import "./chunk-5RGU3J7P.js";
|
|
41
44
|
import "./chunk-M76ECQRD.js";
|
|
@@ -47,6 +50,12 @@ import {
|
|
|
47
50
|
import "./chunk-YDH3FDFQ.js";
|
|
48
51
|
import "./chunk-MX574M24.js";
|
|
49
52
|
import "./chunk-AGGIDPCZ.js";
|
|
53
|
+
import "./chunk-B2XUQXQX.js";
|
|
54
|
+
import {
|
|
55
|
+
expandEnabledPacks
|
|
56
|
+
} from "./chunk-6TPOEJMQ.js";
|
|
57
|
+
import "./chunk-AUDNYVRC.js";
|
|
58
|
+
import "./chunk-KHCLMKZZ.js";
|
|
50
59
|
import "./chunk-ZSPC3ZTC.js";
|
|
51
60
|
import "./chunk-ELYEQNUI.js";
|
|
52
61
|
import "./chunk-PSCNXBYA.js";
|
|
@@ -109,22 +118,28 @@ import "./chunk-G3SUCT4W.js";
|
|
|
109
118
|
import "./chunk-4VNS5WPM.js";
|
|
110
119
|
|
|
111
120
|
// packages/ai/agent/serverOwnedWebForegroundEligibility.ts
|
|
112
|
-
var
|
|
121
|
+
var DURABLE_WEB_FOREGROUND_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
122
|
+
"ask_user",
|
|
123
|
+
"exa_search",
|
|
124
|
+
"fetchWebpage"
|
|
125
|
+
]);
|
|
113
126
|
function readToolName(value) {
|
|
114
127
|
if (typeof value === "string") {
|
|
115
|
-
const name2 = value.trim();
|
|
128
|
+
const name2 = canonicalizeToolName(value.trim());
|
|
116
129
|
return name2 || null;
|
|
117
130
|
}
|
|
118
131
|
if (!value || typeof value !== "object") return null;
|
|
119
132
|
const record = value;
|
|
120
133
|
const candidate = typeof record.name === "string" && record.name || typeof record.toolName === "string" && record.toolName || typeof record.function?.name === "string" && record.function.name || "";
|
|
121
|
-
const name = candidate.trim();
|
|
134
|
+
const name = canonicalizeToolName(candidate.trim());
|
|
122
135
|
return name || null;
|
|
123
136
|
}
|
|
124
137
|
function configuredToolNames(agent) {
|
|
125
138
|
const values = [];
|
|
126
139
|
if (Array.isArray(agent.tools)) values.push(...agent.tools);
|
|
127
140
|
if (Array.isArray(agent.toolNames)) values.push(...agent.toolNames);
|
|
141
|
+
const requiredPackIds = resolveAgentRequiredPackIds(agent);
|
|
142
|
+
values.push(...expandEnabledPacks(requiredPackIds));
|
|
128
143
|
const policies = [
|
|
129
144
|
agent.runtimeToolPolicy,
|
|
130
145
|
agent.runtimeBinding?.runtimeToolPolicy,
|
|
@@ -149,7 +164,7 @@ function hasSupportedDurableToolSurface(agent) {
|
|
|
149
164
|
return false;
|
|
150
165
|
}
|
|
151
166
|
const names = configuredToolNames(agent);
|
|
152
|
-
return names.length === 0 || names.every((name) => name
|
|
167
|
+
return names.length === 0 || names.every((name) => DURABLE_WEB_FOREGROUND_TOOL_NAMES.has(name));
|
|
153
168
|
}
|
|
154
169
|
function shouldUseServerOwnedWebForegroundTurn(input) {
|
|
155
170
|
if (input.surface !== "web") return false;
|
|
@@ -173,7 +188,7 @@ function shouldUseServerOwnedWebForegroundTurn(input) {
|
|
|
173
188
|
return true;
|
|
174
189
|
}
|
|
175
190
|
|
|
176
|
-
// packages/ai/agent/
|
|
191
|
+
// packages/ai/agent/serverOwnedToolProjection.ts
|
|
177
192
|
function parseToolArgs(raw) {
|
|
178
193
|
if (typeof raw !== "string" || !raw.trim()) return {};
|
|
179
194
|
try {
|
|
@@ -183,34 +198,50 @@ function parseToolArgs(raw) {
|
|
|
183
198
|
return {};
|
|
184
199
|
}
|
|
185
200
|
}
|
|
186
|
-
function
|
|
201
|
+
function normalizeToolSet(values) {
|
|
202
|
+
return new Set(
|
|
203
|
+
[...values].map((value) => canonicalizeToolName(value)).filter(Boolean)
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
function isToolResultFailure(content, metadata) {
|
|
207
|
+
if (metadata?.error) return true;
|
|
208
|
+
if (typeof content !== "string" || !content.trim()) return false;
|
|
209
|
+
try {
|
|
210
|
+
const parsed = JSON.parse(content);
|
|
211
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return false;
|
|
212
|
+
const record = parsed;
|
|
213
|
+
return Boolean(record.error) || record.ok === false || record.success === false || record.status === "error";
|
|
214
|
+
} catch {
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
function createServerOwnedToolProjection(args) {
|
|
219
|
+
const supported = normalizeToolSet(args.supportedToolNames);
|
|
220
|
+
const keepReadOnly = normalizeToolSet(args.keepReadOnlyUntilCanonical ?? []);
|
|
187
221
|
const transientByCallId = /* @__PURE__ */ new Map();
|
|
188
222
|
const handlePayload = (payload) => {
|
|
189
223
|
if (!payload || typeof payload !== "object") return;
|
|
190
224
|
if (payload.type === "assistant_tool_calls") {
|
|
191
225
|
const calls = Array.isArray(payload.tool_calls) ? payload.tool_calls : [];
|
|
192
226
|
for (const call of calls) {
|
|
193
|
-
const
|
|
194
|
-
const
|
|
195
|
-
if (!
|
|
196
|
-
if (transientByCallId.has(
|
|
227
|
+
const callId2 = typeof call?.id === "string" ? call.id : "";
|
|
228
|
+
const toolName2 = canonicalizeToolName(call?.function?.name ?? "");
|
|
229
|
+
if (!callId2 || !toolName2 || !supported.has(toolName2)) continue;
|
|
230
|
+
if (transientByCallId.has(callId2)) continue;
|
|
197
231
|
const { key, messageId } = createDialogMessageKeyAndId(args.dialogId);
|
|
198
232
|
const input = parseToolArgs(call?.function?.arguments);
|
|
199
|
-
const
|
|
233
|
+
const content2 = toolName2 === "ask_user" ? JSON.stringify({ type: "ask_user", ...input }) : "";
|
|
234
|
+
const message2 = {
|
|
200
235
|
id: messageId,
|
|
201
236
|
dialogId: args.dialogId,
|
|
202
237
|
dbKey: key,
|
|
203
238
|
role: "tool",
|
|
204
|
-
|
|
205
|
-
// from `content`, so a single-question call (question + choices, no
|
|
206
|
-
// `questions`) would otherwise render as an empty row until the
|
|
207
|
-
// tool_result arrives. The canonical payload replaces this on done.
|
|
208
|
-
content: JSON.stringify({ type: "ask_user", ...input }),
|
|
239
|
+
content: content2,
|
|
209
240
|
isStreaming: true,
|
|
210
|
-
toolName:
|
|
211
|
-
toolCallId:
|
|
241
|
+
toolName: toolName2,
|
|
242
|
+
toolCallId: callId2,
|
|
212
243
|
toolPayload: {
|
|
213
|
-
toolName:
|
|
244
|
+
toolName: toolName2,
|
|
214
245
|
status: "running",
|
|
215
246
|
input,
|
|
216
247
|
rawToolCall: call,
|
|
@@ -218,36 +249,81 @@ function createServerOwnedAskUserProjection(args) {
|
|
|
218
249
|
},
|
|
219
250
|
...args.messageMetadata
|
|
220
251
|
};
|
|
221
|
-
transientByCallId.set(
|
|
222
|
-
args.dispatch(messageStreaming(
|
|
252
|
+
transientByCallId.set(callId2, message2);
|
|
253
|
+
args.dispatch(messageStreaming(message2));
|
|
223
254
|
}
|
|
224
255
|
return;
|
|
225
256
|
}
|
|
226
|
-
if (payload.type
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
257
|
+
if (payload.type !== "tool_result") return;
|
|
258
|
+
const callId = typeof payload.toolCallId === "string" ? payload.toolCallId : "";
|
|
259
|
+
if (!callId) return;
|
|
260
|
+
const existing = transientByCallId.get(callId);
|
|
261
|
+
const toolName = canonicalizeToolName(payload.toolName ?? existing?.toolName ?? "");
|
|
262
|
+
if (!toolName || !supported.has(toolName)) return;
|
|
263
|
+
const metadata = payload.metadata && typeof payload.metadata === "object" && !Array.isArray(payload.metadata) ? payload.metadata : void 0;
|
|
264
|
+
const failed = isToolResultFailure(payload.content, metadata);
|
|
265
|
+
const content = toolName === "ask_user" ? typeof payload.content === "string" ? payload.content : "" : projectDesktopToolUiContent({
|
|
266
|
+
toolName,
|
|
267
|
+
content: payload.content,
|
|
268
|
+
metadata
|
|
269
|
+
});
|
|
270
|
+
const base = existing ?? (() => {
|
|
271
|
+
const { key, messageId } = createDialogMessageKeyAndId(args.dialogId);
|
|
272
|
+
return {
|
|
273
|
+
id: messageId,
|
|
274
|
+
dialogId: args.dialogId,
|
|
275
|
+
dbKey: key,
|
|
276
|
+
role: "tool",
|
|
277
|
+
content: "",
|
|
236
278
|
isStreaming: true,
|
|
279
|
+
toolName,
|
|
280
|
+
toolCallId: callId,
|
|
237
281
|
toolPayload: {
|
|
238
|
-
|
|
239
|
-
status: "running"
|
|
240
|
-
|
|
282
|
+
toolName,
|
|
283
|
+
status: "running",
|
|
284
|
+
input: {},
|
|
285
|
+
summary: ""
|
|
286
|
+
},
|
|
287
|
+
...args.messageMetadata
|
|
241
288
|
};
|
|
242
|
-
|
|
289
|
+
})();
|
|
290
|
+
const staysReadOnly = keepReadOnly.has(toolName);
|
|
291
|
+
const toolPayload = {
|
|
292
|
+
...base.toolPayload ?? {},
|
|
293
|
+
toolName,
|
|
294
|
+
status: staysReadOnly ? "running" : failed ? "failed" : "succeeded"
|
|
295
|
+
};
|
|
296
|
+
const message = {
|
|
297
|
+
...base,
|
|
298
|
+
content,
|
|
299
|
+
isStreaming: staysReadOnly,
|
|
300
|
+
toolName,
|
|
301
|
+
toolPayload
|
|
302
|
+
};
|
|
303
|
+
transientByCallId.set(callId, message);
|
|
304
|
+
if (staysReadOnly) {
|
|
243
305
|
args.dispatch(messageStreaming(message));
|
|
306
|
+
return;
|
|
244
307
|
}
|
|
308
|
+
if (!existing) {
|
|
309
|
+
args.dispatch(messageStreaming(base));
|
|
310
|
+
}
|
|
311
|
+
args.dispatch(
|
|
312
|
+
updateToolMessage({
|
|
313
|
+
id: base.id,
|
|
314
|
+
dialogId: args.dialogId,
|
|
315
|
+
changes: {
|
|
316
|
+
content,
|
|
317
|
+
isStreaming: false,
|
|
318
|
+
toolName,
|
|
319
|
+
toolPayload
|
|
320
|
+
}
|
|
321
|
+
})
|
|
322
|
+
);
|
|
245
323
|
};
|
|
246
324
|
const cleanup = () => {
|
|
247
325
|
for (const message of transientByCallId.values()) {
|
|
248
|
-
args.dispatch(
|
|
249
|
-
removeTransientMessage({ id: message.id, dialogId: args.dialogId })
|
|
250
|
-
);
|
|
326
|
+
args.dispatch(removeTransientMessage({ id: message.id, dialogId: args.dialogId }));
|
|
251
327
|
}
|
|
252
328
|
transientByCallId.clear();
|
|
253
329
|
};
|
|
@@ -289,6 +365,9 @@ async function waitForNewCanonicalAssistant(args) {
|
|
|
289
365
|
}
|
|
290
366
|
|
|
291
367
|
// packages/ai/agent/serverOwnedWebForegroundTurn.ts
|
|
368
|
+
function detectServerOwnedCandidateSurface() {
|
|
369
|
+
return typeof window !== "undefined" && typeof document !== "undefined" ? "web" : "non-web";
|
|
370
|
+
}
|
|
292
371
|
async function canRunServerOwnedWebForegroundTurn(args, thunk) {
|
|
293
372
|
try {
|
|
294
373
|
let currentServer;
|
|
@@ -312,7 +391,7 @@ async function canRunServerOwnedWebForegroundTurn(args, thunk) {
|
|
|
312
391
|
}
|
|
313
392
|
return {
|
|
314
393
|
eligible: shouldUseServerOwnedWebForegroundTurn({
|
|
315
|
-
surface:
|
|
394
|
+
surface: detectServerOwnedCandidateSurface(),
|
|
316
395
|
agentConfig,
|
|
317
396
|
userInput: args.userInput,
|
|
318
397
|
runtimeOptions: args.runtimeOptions,
|
|
@@ -351,22 +430,18 @@ async function runServerOwnedWebForegroundTurn(args, thunk) {
|
|
|
351
430
|
const loopKey = `server-owned:${dialogId}:${transientId}`;
|
|
352
431
|
let accumulated = "";
|
|
353
432
|
let sawDone = false;
|
|
354
|
-
const
|
|
433
|
+
const toolProjection = createServerOwnedToolProjection({
|
|
355
434
|
dialogId,
|
|
356
435
|
dispatch: thunk.dispatch,
|
|
357
436
|
messageMetadata: {
|
|
358
437
|
cybotKey: args.agentKey,
|
|
359
438
|
agentKey: args.agentKey,
|
|
360
439
|
userId
|
|
361
|
-
}
|
|
440
|
+
},
|
|
441
|
+
supportedToolNames: DURABLE_WEB_FOREGROUND_TOOL_NAMES,
|
|
442
|
+
keepReadOnlyUntilCanonical: ["ask_user"]
|
|
362
443
|
});
|
|
363
|
-
thunk.dispatch(
|
|
364
|
-
addActiveController({
|
|
365
|
-
messageId: loopKey,
|
|
366
|
-
controller,
|
|
367
|
-
dialogKey
|
|
368
|
-
})
|
|
369
|
-
);
|
|
444
|
+
thunk.dispatch(addActiveController({ messageId: loopKey, controller, dialogKey }));
|
|
370
445
|
thunk.dispatch(
|
|
371
446
|
messageStreaming({
|
|
372
447
|
id: transientId,
|
|
@@ -395,7 +470,7 @@ async function runServerOwnedWebForegroundTurn(args, thunk) {
|
|
|
395
470
|
"dialog-ui",
|
|
396
471
|
"durable-foreground",
|
|
397
472
|
"client-user-prepersisted",
|
|
398
|
-
"
|
|
473
|
+
"durable-tool-cards"
|
|
399
474
|
],
|
|
400
475
|
...args.dialogConfig.agentMode === "auto" ? { dialogAgentMode: "auto" } : { dialogAgentMode: "fixed" }
|
|
401
476
|
},
|
|
@@ -418,8 +493,6 @@ async function runServerOwnedWebForegroundTurn(args, thunk) {
|
|
|
418
493
|
response = await performServerProxyFetchWithRetry({
|
|
419
494
|
execute: () => fetch(`${currentServer}/api/agent/run`, init),
|
|
420
495
|
signal: controller.signal,
|
|
421
|
-
// This is an at-most-once foreground admission. A network error is
|
|
422
|
-
// ambiguous: the server may already own the execution, so never POST it again.
|
|
423
496
|
retryNetworkErrors: false,
|
|
424
497
|
logPrefix: "[serverOwnedWebForegroundTurn]"
|
|
425
498
|
});
|
|
@@ -436,9 +509,7 @@ async function runServerOwnedWebForegroundTurn(args, thunk) {
|
|
|
436
509
|
throw new Error(text || `Agent run failed (${response.status})`);
|
|
437
510
|
}
|
|
438
511
|
const reader = response.body?.getReader();
|
|
439
|
-
if (!reader) {
|
|
440
|
-
return { serverOwned: true, detached: true };
|
|
441
|
-
}
|
|
512
|
+
if (!reader) return { serverOwned: true, detached: true };
|
|
442
513
|
const parseSSE = createSSEParser();
|
|
443
514
|
const decoder = new TextDecoder();
|
|
444
515
|
const outcome = await consumeAgentRunStream({
|
|
@@ -454,7 +525,7 @@ async function runServerOwnedWebForegroundTurn(args, thunk) {
|
|
|
454
525
|
if (payload?.type === "error") {
|
|
455
526
|
return { reject: payload.message || "Agent execution failed" };
|
|
456
527
|
}
|
|
457
|
-
|
|
528
|
+
toolProjection.handlePayload(payload);
|
|
458
529
|
if (payload?.type === "text" && typeof payload.content === "string") {
|
|
459
530
|
accumulated += payload.content;
|
|
460
531
|
thunk.dispatch(
|
|
@@ -472,15 +543,9 @@ async function runServerOwnedWebForegroundTurn(args, thunk) {
|
|
|
472
543
|
}
|
|
473
544
|
}
|
|
474
545
|
});
|
|
475
|
-
if (outcome.outcome === "aborted") {
|
|
476
|
-
|
|
477
|
-
}
|
|
478
|
-
if (outcome.outcome === "rejected") {
|
|
479
|
-
throw new Error(outcome.message);
|
|
480
|
-
}
|
|
481
|
-
if (!outcome.sawDone) {
|
|
482
|
-
return { serverOwned: true, detached: true };
|
|
483
|
-
}
|
|
546
|
+
if (outcome.outcome === "aborted") return { serverOwned: true, aborted: true };
|
|
547
|
+
if (outcome.outcome === "rejected") throw new Error(outcome.message);
|
|
548
|
+
if (!outcome.sawDone) return { serverOwned: true, detached: true };
|
|
484
549
|
sawDone = true;
|
|
485
550
|
let canonicalVisible = false;
|
|
486
551
|
try {
|
|
@@ -488,7 +553,8 @@ async function runServerOwnedWebForegroundTurn(args, thunk) {
|
|
|
488
553
|
canonicalVisible = !!await waitForNewCanonicalAssistant({
|
|
489
554
|
readMessages: () => selectAllMsgs(thunk.getState(), dialogId),
|
|
490
555
|
initialMessageIds,
|
|
491
|
-
transientId
|
|
556
|
+
transientId,
|
|
557
|
+
expectedText: accumulated
|
|
492
558
|
});
|
|
493
559
|
} catch (error) {
|
|
494
560
|
console.warn("[chat] server-owned canonical handoff refresh failed", {
|
|
@@ -497,9 +563,10 @@ async function runServerOwnedWebForegroundTurn(args, thunk) {
|
|
|
497
563
|
});
|
|
498
564
|
}
|
|
499
565
|
if (canonicalVisible) {
|
|
500
|
-
|
|
566
|
+
toolProjection.cleanup();
|
|
501
567
|
thunk.dispatch(removeTransientMessage({ id: transientId, dialogId }));
|
|
502
568
|
} else {
|
|
569
|
+
toolProjection.cleanup();
|
|
503
570
|
const transient = selectAllMsgs(thunk.getState(), dialogId).find((message) => message?.id === transientId);
|
|
504
571
|
if (transient) {
|
|
505
572
|
thunk.dispatch(
|
|
@@ -517,14 +584,9 @@ async function runServerOwnedWebForegroundTurn(args, thunk) {
|
|
|
517
584
|
}
|
|
518
585
|
return { serverOwned: true };
|
|
519
586
|
} finally {
|
|
520
|
-
thunk.dispatch(
|
|
521
|
-
removeActiveController({
|
|
522
|
-
messageId: loopKey,
|
|
523
|
-
dialogKey
|
|
524
|
-
})
|
|
525
|
-
);
|
|
587
|
+
thunk.dispatch(removeActiveController({ messageId: loopKey, dialogKey }));
|
|
526
588
|
if (!sawDone) {
|
|
527
|
-
|
|
589
|
+
toolProjection.cleanup();
|
|
528
590
|
thunk.dispatch(removeTransientMessage({ id: transientId, dialogId }));
|
|
529
591
|
}
|
|
530
592
|
}
|
package/index.js
CHANGED
|
@@ -71,7 +71,7 @@ async function runScript(script, forwardedArgs, env) {
|
|
|
71
71
|
return proc.exited;
|
|
72
72
|
}
|
|
73
73
|
async function launchTuiWorkspace(args2) {
|
|
74
|
-
const { startTuiWorkspace } = await import("./readlineWorkspace-
|
|
74
|
+
const { startTuiWorkspace } = await import("./readlineWorkspace-2QJL7CU4.js");
|
|
75
75
|
const { createTuiSummaryLlmCaller } = await import("./tuiSummaryLlmCaller-RVW6CJSK.js");
|
|
76
76
|
return startTuiWorkspace({
|
|
77
77
|
...args2,
|
|
@@ -81,7 +81,7 @@ async function launchTuiWorkspace(args2) {
|
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
async function main() {
|
|
84
|
-
const { createCliRuntimeContext, looksLikeDaemonShortcut, renderHelpText, resolveCommand, runResolvedCommand } = await import("./commandRegistry-
|
|
84
|
+
const { createCliRuntimeContext, looksLikeDaemonShortcut, renderHelpText, resolveCommand, runResolvedCommand } = await import("./commandRegistry-OIUSLAJG.js");
|
|
85
85
|
const { buildCliRuntimeEnv, loadProfileConfig } = await import("./profileConfig-ZGOFORWV.js");
|
|
86
86
|
const { resolveTuiLaunchMode } = await import("./runtimeModeArgs-2Y7BALTO.js");
|
|
87
87
|
const runtimeEnv = {
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
buildMachinePermissionPromptBlock,
|
|
3
3
|
handleConnectorRunMessage,
|
|
4
4
|
resolveMachineRunPermissionPolicy
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-YAE5DQ5C.js";
|
|
6
6
|
import {
|
|
7
7
|
isConnectorWebSocketAuthError,
|
|
8
8
|
isConnectorWebSocketRetryableError,
|
|
9
9
|
resolveConnectorWebSocketTarget
|
|
10
10
|
} from "./chunk-ALXHV7NK.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-7V2HN64K.js";
|
|
12
12
|
import "./chunk-I4OPU5TK.js";
|
|
13
13
|
import "./chunk-YUNJN43V.js";
|
|
14
14
|
import "./chunk-62IL3KQV.js";
|
|
@@ -25,35 +25,35 @@ import "./chunk-4XEYAFLY.js";
|
|
|
25
25
|
import "./chunk-JBTJAPUF.js";
|
|
26
26
|
import "./chunk-QJLEMM2V.js";
|
|
27
27
|
import "./chunk-ATNTHIZI.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-QWYHDF4G.js";
|
|
29
29
|
import "./chunk-HS7MLR74.js";
|
|
30
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-GP4TSLAB.js";
|
|
31
31
|
import "./chunk-2EE5UD3N.js";
|
|
32
32
|
import "./chunk-5UTFL4QJ.js";
|
|
33
33
|
import "./chunk-KQHGZWSV.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-BJ3KD73I.js";
|
|
35
35
|
import "./chunk-NF64D32W.js";
|
|
36
36
|
import {
|
|
37
37
|
CORE_DRAIN_REASON
|
|
38
38
|
} from "./chunk-3L2WKC3W.js";
|
|
39
39
|
import "./chunk-4JMDLJAD.js";
|
|
40
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-5ROO623H.js";
|
|
41
41
|
import "./chunk-HNRASX3X.js";
|
|
42
42
|
import "./chunk-YRRASA5Q.js";
|
|
43
43
|
import "./chunk-63W5N6P3.js";
|
|
44
44
|
import "./chunk-VF4K2QE6.js";
|
|
45
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-67QZSNVD.js";
|
|
46
46
|
import "./chunk-Z7IZQF56.js";
|
|
47
47
|
import "./chunk-XPRWFQQK.js";
|
|
48
48
|
import "./chunk-BJUDYFV5.js";
|
|
49
49
|
import "./chunk-MEYIRKDN.js";
|
|
50
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-6HWONTC6.js";
|
|
51
51
|
import "./chunk-ZJ7UHBJS.js";
|
|
52
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-C4YCNZFV.js";
|
|
53
53
|
import "./chunk-523DITKR.js";
|
|
54
54
|
import "./chunk-YYLHWIW6.js";
|
|
55
55
|
import "./chunk-6O4IK4V2.js";
|
|
56
|
-
import "./chunk-
|
|
56
|
+
import "./chunk-NLBUI6IU.js";
|
|
57
57
|
import "./chunk-D76D3RTR.js";
|
|
58
58
|
import "./chunk-5RGU3J7P.js";
|
|
59
59
|
import "./chunk-M76ECQRD.js";
|
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
runtimeWorkspacePermissionPolicy,
|
|
12
12
|
scopePermissionPolicyToRuntimeWorkspace,
|
|
13
13
|
summarizeAgentConfigForLogs
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-YAE5DQ5C.js";
|
|
15
|
+
import "./chunk-7V2HN64K.js";
|
|
16
16
|
import "./chunk-I4OPU5TK.js";
|
|
17
17
|
import "./chunk-YUNJN43V.js";
|
|
18
18
|
import "./chunk-62IL3KQV.js";
|
|
@@ -26,33 +26,33 @@ import "./chunk-4XEYAFLY.js";
|
|
|
26
26
|
import "./chunk-JBTJAPUF.js";
|
|
27
27
|
import "./chunk-QJLEMM2V.js";
|
|
28
28
|
import "./chunk-ATNTHIZI.js";
|
|
29
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-QWYHDF4G.js";
|
|
30
30
|
import "./chunk-HS7MLR74.js";
|
|
31
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-GP4TSLAB.js";
|
|
32
32
|
import "./chunk-2EE5UD3N.js";
|
|
33
33
|
import "./chunk-5UTFL4QJ.js";
|
|
34
34
|
import "./chunk-KQHGZWSV.js";
|
|
35
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-BJ3KD73I.js";
|
|
36
36
|
import "./chunk-NF64D32W.js";
|
|
37
37
|
import "./chunk-3L2WKC3W.js";
|
|
38
38
|
import "./chunk-4JMDLJAD.js";
|
|
39
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-5ROO623H.js";
|
|
40
40
|
import "./chunk-HNRASX3X.js";
|
|
41
41
|
import "./chunk-YRRASA5Q.js";
|
|
42
42
|
import "./chunk-63W5N6P3.js";
|
|
43
43
|
import "./chunk-VF4K2QE6.js";
|
|
44
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-67QZSNVD.js";
|
|
45
45
|
import "./chunk-Z7IZQF56.js";
|
|
46
46
|
import "./chunk-XPRWFQQK.js";
|
|
47
47
|
import "./chunk-BJUDYFV5.js";
|
|
48
48
|
import "./chunk-MEYIRKDN.js";
|
|
49
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-6HWONTC6.js";
|
|
50
50
|
import "./chunk-ZJ7UHBJS.js";
|
|
51
|
-
import "./chunk-
|
|
51
|
+
import "./chunk-C4YCNZFV.js";
|
|
52
52
|
import "./chunk-523DITKR.js";
|
|
53
53
|
import "./chunk-YYLHWIW6.js";
|
|
54
54
|
import "./chunk-6O4IK4V2.js";
|
|
55
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-NLBUI6IU.js";
|
|
56
56
|
import "./chunk-D76D3RTR.js";
|
|
57
57
|
import "./chunk-5RGU3J7P.js";
|
|
58
58
|
import "./chunk-M76ECQRD.js";
|
package/package.json
CHANGED
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
wrapTextToLines,
|
|
77
77
|
wrapTranscriptLine,
|
|
78
78
|
wrapTranscriptLineWithLayout
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-6RO37MST.js";
|
|
80
80
|
import "./chunk-VJVNU77E.js";
|
|
81
81
|
import "./chunk-BIDGLJQ3.js";
|
|
82
82
|
import {
|
|
@@ -88,7 +88,7 @@ import {
|
|
|
88
88
|
readTimestamp,
|
|
89
89
|
setCliLocale,
|
|
90
90
|
t
|
|
91
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-7V2HN64K.js";
|
|
92
92
|
import "./chunk-I4OPU5TK.js";
|
|
93
93
|
import "./chunk-YUNJN43V.js";
|
|
94
94
|
import "./chunk-62IL3KQV.js";
|
|
@@ -142,16 +142,16 @@ import "./chunk-ATNTHIZI.js";
|
|
|
142
142
|
import "./chunk-JEXVIMYZ.js";
|
|
143
143
|
import {
|
|
144
144
|
prepareTools
|
|
145
|
-
} from "./chunk-
|
|
145
|
+
} from "./chunk-QWYHDF4G.js";
|
|
146
146
|
import {
|
|
147
147
|
buildResponseGuidelines
|
|
148
148
|
} from "./chunk-EOARMOVD.js";
|
|
149
149
|
import "./chunk-HS7MLR74.js";
|
|
150
|
-
import "./chunk-
|
|
150
|
+
import "./chunk-GP4TSLAB.js";
|
|
151
151
|
import "./chunk-2EE5UD3N.js";
|
|
152
152
|
import "./chunk-5UTFL4QJ.js";
|
|
153
153
|
import "./chunk-KQHGZWSV.js";
|
|
154
|
-
import "./chunk-
|
|
154
|
+
import "./chunk-BJ3KD73I.js";
|
|
155
155
|
import "./chunk-NF64D32W.js";
|
|
156
156
|
import "./chunk-3L2WKC3W.js";
|
|
157
157
|
import {
|
|
@@ -164,12 +164,12 @@ import {
|
|
|
164
164
|
resolveRunLabel,
|
|
165
165
|
shortRunId
|
|
166
166
|
} from "./chunk-4JMDLJAD.js";
|
|
167
|
-
import "./chunk-
|
|
167
|
+
import "./chunk-5ROO623H.js";
|
|
168
168
|
import "./chunk-HNRASX3X.js";
|
|
169
169
|
import "./chunk-YRRASA5Q.js";
|
|
170
170
|
import "./chunk-63W5N6P3.js";
|
|
171
171
|
import "./chunk-VF4K2QE6.js";
|
|
172
|
-
import "./chunk-
|
|
172
|
+
import "./chunk-67QZSNVD.js";
|
|
173
173
|
import "./chunk-Z7IZQF56.js";
|
|
174
174
|
import "./chunk-XPRWFQQK.js";
|
|
175
175
|
import {
|
|
@@ -179,15 +179,15 @@ import {
|
|
|
179
179
|
} from "./chunk-YPREESF4.js";
|
|
180
180
|
import "./chunk-BJUDYFV5.js";
|
|
181
181
|
import "./chunk-MEYIRKDN.js";
|
|
182
|
-
import "./chunk-
|
|
182
|
+
import "./chunk-6HWONTC6.js";
|
|
183
183
|
import "./chunk-ZJ7UHBJS.js";
|
|
184
184
|
import {
|
|
185
185
|
extractReferenceKeysFromMessage
|
|
186
|
-
} from "./chunk-
|
|
186
|
+
} from "./chunk-C4YCNZFV.js";
|
|
187
187
|
import "./chunk-523DITKR.js";
|
|
188
188
|
import "./chunk-YYLHWIW6.js";
|
|
189
189
|
import "./chunk-6O4IK4V2.js";
|
|
190
|
-
import "./chunk-
|
|
190
|
+
import "./chunk-NLBUI6IU.js";
|
|
191
191
|
import "./chunk-D76D3RTR.js";
|
|
192
192
|
import "./chunk-5RGU3J7P.js";
|
|
193
193
|
import "./chunk-M76ECQRD.js";
|