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.
Files changed (41) hide show
  1. package/{_executeModel-KCOBSFWR.js → _executeModel-MQFQCXIE.js} +12 -12
  2. package/{agentEmailCommands-JWAAVWK5.js → agentEmailCommands-SV276XHA.js} +10 -10
  3. package/{agentMachineCommands-GL4TIGRD.js → agentMachineCommands-IB2WMF3X.js} +1 -1
  4. package/{agentRecordCommands-ZPVDMPWS.js → agentRecordCommands-D5FUBTKU.js} +10 -10
  5. package/{agentRunCommand-UF3OUWWS.js → agentRunCommand-TNW4RJ6W.js} +10 -10
  6. package/{agentSlice-VWIBQKC5.js → agentSlice-L6ILXYZ3.js} +1 -1
  7. package/{chatQueueReduxAdapter-MBIUZKDL.js → chatQueueReduxAdapter-OUCL4GQF.js} +2 -2
  8. package/{chunk-I2NACKOX.js → chunk-5ROO623H.js} +2 -2
  9. package/{chunk-MTS4CSGW.js → chunk-67QZSNVD.js} +2 -2
  10. package/{chunk-YFIEJTJP.js → chunk-6HWONTC6.js} +1 -1
  11. package/{chunk-RS4EE3CY.js → chunk-6RO37MST.js} +4 -4
  12. package/{chunk-LL75KBOF.js → chunk-7V2HN64K.js} +7 -5
  13. package/{chunk-2Q7IUN6P.js → chunk-A7WFQXNK.js} +4 -4
  14. package/{chunk-GOMR6S5Z.js → chunk-BJ3KD73I.js} +72 -0
  15. package/{chunk-ARJISZLY.js → chunk-C4YCNZFV.js} +8 -8
  16. package/{chunk-XCMPF226.js → chunk-DSY37Y5Z.js} +1 -1
  17. package/{chunk-45RDJCWY.js → chunk-GP4TSLAB.js} +11 -75
  18. package/{chunk-6OTOA5MH.js → chunk-JK5XW3NO.js} +1 -1
  19. package/{chunk-LSEP3JEV.js → chunk-NLBUI6IU.js} +3 -3
  20. package/{chunk-NAQIJEFD.js → chunk-QWYHDF4G.js} +2 -2
  21. package/{chunk-3KYLP2QO.js → chunk-WSGZ4I7M.js} +1 -1
  22. package/{chunk-S4DLQ5OR.js → chunk-XA4RT4LC.js} +6 -6
  23. package/{chunk-C22W3XQ5.js → chunk-YAE5DQ5C.js} +2 -2
  24. package/{chunk-PWOXYPE6.js → chunk-YYKMFBK7.js} +112 -0
  25. package/{commandRegistry-VKPZIDKP.js → commandRegistry-OIUSLAJG.js} +14 -14
  26. package/{contentThunks-XVHPJRVX.js → contentThunks-5QTQNUD2.js} +3 -3
  27. package/{createAgentAutomationAction-QY3TENYN.js → createAgentAutomationAction-YQKECXJV.js} +3 -3
  28. package/{createDialogAction-ETRYMHLA.js → createDialogAction-3NGUXFB7.js} +4 -4
  29. package/{createPageAction-5VX64XOW.js → createPageAction-6MIKNYUH.js} +3 -3
  30. package/{dialogSlice-Z7CEY2WY.js → dialogSlice-UGWF2KW6.js} +2 -2
  31. package/{docStore-IZ6XRQCW.js → docStore-MOM2DHF5.js} +1 -1
  32. package/{handleSendMessageAction-6XVOLKPH.js → handleSendMessageAction-QD6DK7XX.js} +142 -80
  33. package/index.js +2 -2
  34. package/{machineCommands-VVSQOM5V.js → machineCommands-42EQE5E2.js} +10 -10
  35. package/{machineWsRunDispatch-LKBI7AMM.js → machineWsRunDispatch-QTUFQTZ5.js} +10 -10
  36. package/package.json +1 -1
  37. package/{readlineWorkspace-A6I3TDOI.js → readlineWorkspace-2QJL7CU4.js} +10 -10
  38. package/{runAgentClientLoop-SU23IDMY.js → runAgentClientLoop-2EFDJHKS.js} +10 -10
  39. package/{streamAgentChatTurn-KJMIQEDI.js → streamAgentChatTurn-IUFYM3LS.js} +18 -121
  40. package/{tools-M2HTAI6K.js → tools-G7AM5SXM.js} +7 -7
  41. 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
- } from "./chunk-PWOXYPE6.js";
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-6OTOA5MH.js";
16
+ } from "./chunk-JK5XW3NO.js";
16
17
  import {
17
18
  createSSEParser,
19
+ resolveAgentRequiredPackIds,
18
20
  waitForAbortableDelay
19
- } from "./chunk-GOMR6S5Z.js";
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
- } from "./chunk-ARJISZLY.js";
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-LSEP3JEV.js";
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 FIRST_DURABLE_WEB_TOOL = "ask_user";
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 === FIRST_DURABLE_WEB_TOOL);
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/serverOwnedAskUserProjection.ts
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 createServerOwnedAskUserProjection(args) {
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 callId = typeof call?.id === "string" ? call.id : "";
194
- const toolName = canonicalizeToolName(call?.function?.name ?? "");
195
- if (!callId || toolName !== "ask_user") continue;
196
- if (transientByCallId.has(callId)) continue;
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 message = {
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
- // Pending args, not a tool result: the panel renders the question card
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: "ask_user",
211
- toolCallId: callId,
241
+ toolName: toolName2,
242
+ toolCallId: callId2,
212
243
  toolPayload: {
213
- toolName: "ask_user",
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(callId, message);
222
- args.dispatch(messageStreaming(message));
252
+ transientByCallId.set(callId2, message2);
253
+ args.dispatch(messageStreaming(message2));
223
254
  }
224
255
  return;
225
256
  }
226
- if (payload.type === "tool_result") {
227
- const callId = typeof payload.toolCallId === "string" ? payload.toolCallId : "";
228
- const existing = transientByCallId.get(callId);
229
- if (!existing || canonicalizeToolName(payload.toolName ?? existing.toolName) !== "ask_user") {
230
- return;
231
- }
232
- const message = {
233
- ...existing,
234
- content: typeof payload.content === "string" ? payload.content : "",
235
- // Keep read-only until canonical server persistence is reloaded.
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
- ...existing.toolPayload ?? {},
239
- status: "running"
240
- }
282
+ toolName,
283
+ status: "running",
284
+ input: {},
285
+ summary: ""
286
+ },
287
+ ...args.messageMetadata
241
288
  };
242
- transientByCallId.set(callId, message);
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: "web",
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 askUserProjection = createServerOwnedAskUserProjection({
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
- "ask-user-tool-card"
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
- askUserProjection.handlePayload(payload);
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
- return { serverOwned: true, aborted: true };
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
- askUserProjection.cleanup();
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
- askUserProjection.cleanup();
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-A6I3TDOI.js");
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-VKPZIDKP.js");
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-C22W3XQ5.js";
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-LL75KBOF.js";
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-NAQIJEFD.js";
28
+ import "./chunk-QWYHDF4G.js";
29
29
  import "./chunk-HS7MLR74.js";
30
- import "./chunk-45RDJCWY.js";
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-GOMR6S5Z.js";
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-I2NACKOX.js";
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-MTS4CSGW.js";
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-YFIEJTJP.js";
50
+ import "./chunk-6HWONTC6.js";
51
51
  import "./chunk-ZJ7UHBJS.js";
52
- import "./chunk-ARJISZLY.js";
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-LSEP3JEV.js";
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-C22W3XQ5.js";
15
- import "./chunk-LL75KBOF.js";
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-NAQIJEFD.js";
29
+ import "./chunk-QWYHDF4G.js";
30
30
  import "./chunk-HS7MLR74.js";
31
- import "./chunk-45RDJCWY.js";
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-GOMR6S5Z.js";
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-I2NACKOX.js";
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-MTS4CSGW.js";
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-YFIEJTJP.js";
49
+ import "./chunk-6HWONTC6.js";
50
50
  import "./chunk-ZJ7UHBJS.js";
51
- import "./chunk-ARJISZLY.js";
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-LSEP3JEV.js";
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nolo-cli",
3
- "version": "0.146.0-alpha.4",
3
+ "version": "0.147.0-alpha.1",
4
4
  "type": "module",
5
5
  "description": "Agent-first terminal workspace for Nolo",
6
6
  "bin": {
@@ -76,7 +76,7 @@ import {
76
76
  wrapTextToLines,
77
77
  wrapTranscriptLine,
78
78
  wrapTranscriptLineWithLayout
79
- } from "./chunk-RS4EE3CY.js";
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-LL75KBOF.js";
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-NAQIJEFD.js";
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-45RDJCWY.js";
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-GOMR6S5Z.js";
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-I2NACKOX.js";
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-MTS4CSGW.js";
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-YFIEJTJP.js";
182
+ import "./chunk-6HWONTC6.js";
183
183
  import "./chunk-ZJ7UHBJS.js";
184
184
  import {
185
185
  extractReferenceKeysFromMessage
186
- } from "./chunk-ARJISZLY.js";
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-LSEP3JEV.js";
190
+ import "./chunk-NLBUI6IU.js";
191
191
  import "./chunk-D76D3RTR.js";
192
192
  import "./chunk-5RGU3J7P.js";
193
193
  import "./chunk-M76ECQRD.js";