nolo-cli 0.146.0-alpha.2 → 0.146.0-alpha.4

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 (38) hide show
  1. package/{_executeModel-VI2ZFXGF.js → _executeModel-KCOBSFWR.js} +10 -10
  2. package/{agentEmailCommands-SKDSR6TX.js → agentEmailCommands-JWAAVWK5.js} +9 -9
  3. package/{agentMachineCommands-JVHHRKJC.js → agentMachineCommands-GL4TIGRD.js} +1 -1
  4. package/{agentRecordCommands-RXABVKRC.js → agentRecordCommands-ZPVDMPWS.js} +9 -9
  5. package/{agentRunCommand-4XJ3OGJ4.js → agentRunCommand-UF3OUWWS.js} +9 -9
  6. package/{agentSlice-BBCMHUDH.js → agentSlice-VWIBQKC5.js} +1 -1
  7. package/{chatQueueReduxAdapter-JUUUM7BM.js → chatQueueReduxAdapter-MBIUZKDL.js} +2 -2
  8. package/{chunk-IBHS2SAO.js → chunk-2Q7IUN6P.js} +3 -3
  9. package/{chunk-YB4IKYNP.js → chunk-3KYLP2QO.js} +1 -1
  10. package/{chunk-XTHMLDFS.js → chunk-45RDJCWY.js} +8 -8
  11. package/{chunk-UE6THNRN.js → chunk-ARJISZLY.js} +10 -8
  12. package/{chunk-YCHTTOE6.js → chunk-C22W3XQ5.js} +2 -2
  13. package/{chunk-6ECICFUL.js → chunk-I2NACKOX.js} +2 -2
  14. package/{chunk-27MYPW3V.js → chunk-LL75KBOF.js} +4 -4
  15. package/{chunk-HMYLUSAO.js → chunk-LSEP3JEV.js} +3 -3
  16. package/{chunk-OY5MN3QW.js → chunk-MTS4CSGW.js} +2 -2
  17. package/{chunk-JGMAQ6M4.js → chunk-NAQIJEFD.js} +2 -2
  18. package/{chunk-UUMOPF47.js → chunk-RS4EE3CY.js} +4 -4
  19. package/{chunk-SX3H5GRF.js → chunk-S4DLQ5OR.js} +5 -5
  20. package/{chunk-QE6WT54C.js → chunk-XCMPF226.js} +1 -1
  21. package/{chunk-ECN5PIJP.js → chunk-YFIEJTJP.js} +1 -1
  22. package/{commandRegistry-4OQNLR7J.js → commandRegistry-VKPZIDKP.js} +14 -14
  23. package/{contentThunks-UG5OLLTF.js → contentThunks-XVHPJRVX.js} +3 -3
  24. package/{createAgentAutomationAction-NJD2PYVZ.js → createAgentAutomationAction-QY3TENYN.js} +3 -3
  25. package/{createDialogAction-JURO7UNI.js → createDialogAction-ETRYMHLA.js} +4 -4
  26. package/{createPageAction-66GF24KF.js → createPageAction-5VX64XOW.js} +3 -3
  27. package/{dialogSlice-ZUS3SSM7.js → dialogSlice-Z7CEY2WY.js} +2 -2
  28. package/{docStore-D7PX4CZE.js → docStore-IZ6XRQCW.js} +1 -1
  29. package/{handleSendMessageAction-H3UDWSRC.js → handleSendMessageAction-6XVOLKPH.js} +112 -26
  30. package/index.js +2 -2
  31. package/{machineCommands-6D7JZBWS.js → machineCommands-VVSQOM5V.js} +9 -9
  32. package/{machineWsRunDispatch-YKFGCPFL.js → machineWsRunDispatch-LKBI7AMM.js} +9 -9
  33. package/package.json +1 -1
  34. package/{readlineWorkspace-HZWPJELZ.js → readlineWorkspace-A6I3TDOI.js} +9 -9
  35. package/{runAgentClientLoop-EX3DZPKM.js → runAgentClientLoop-SU23IDMY.js} +8 -8
  36. package/{streamAgentChatTurn-AWIN7723.js → streamAgentChatTurn-KJMIQEDI.js} +9 -9
  37. package/{tools-6AILTEFE.js → tools-M2HTAI6K.js} +6 -6
  38. package/{updateDialogTitleAction-FX6HJK4R.js → updateDialogTitleAction-KZZ26EZU.js} +3 -3
@@ -103,7 +103,7 @@ function createDaemonShortcutCommand(path, description, command) {
103
103
  // packages/cli/agentInternalCommandEntries.ts
104
104
  function getAgentInternalCommandEntries() {
105
105
  const createAgentRunCommand = (path, description) => createContextCommand(path, description, async (args, ctx) => {
106
- const { runAgentRunCommand } = await import("./agentRunCommand-4XJ3OGJ4.js");
106
+ const { runAgentRunCommand } = await import("./agentRunCommand-UF3OUWWS.js");
107
107
  return runAgentRunCommand(args, {
108
108
  env: ctx.env,
109
109
  scriptDir: ctx.scriptDir,
@@ -119,7 +119,7 @@ function getAgentInternalCommandEntries() {
119
119
  return runAgentListCommand(args, deps);
120
120
  }),
121
121
  createEnvCommand(["agent", "create"], "Create a new agent", async (args, deps) => {
122
- const { runAgentCreateCommand } = await import("./agentRecordCommands-RXABVKRC.js");
122
+ const { runAgentCreateCommand } = await import("./agentRecordCommands-ZPVDMPWS.js");
123
123
  return runAgentCreateCommand(args, deps);
124
124
  }),
125
125
  createEnvCommand(["agent", "models"], "List models available on an OpenAI-compatible provider", async (args, deps) => {
@@ -135,7 +135,7 @@ function getAgentInternalCommandEntries() {
135
135
  return runAgentPullCommand(args, deps);
136
136
  }),
137
137
  createEnvCommand(["agent", "read"], "Read a single agent", async (args, deps) => {
138
- const { runAgentReadCommand } = await import("./agentRecordCommands-RXABVKRC.js");
138
+ const { runAgentReadCommand } = await import("./agentRecordCommands-ZPVDMPWS.js");
139
139
  return runAgentReadCommand(args, deps);
140
140
  }),
141
141
  createAgentRunCommand(["agent", "run"], "Run an agent"),
@@ -164,26 +164,26 @@ function getAgentInternalCommandEntries() {
164
164
  return runSetupOfflineMarxistsAgentCommand(args, deps);
165
165
  }),
166
166
  createEnvCommand(["agent", "update"], "Update agent fields", async (args, deps) => {
167
- const { runAgentUpdateCommand } = await import("./agentRecordCommands-RXABVKRC.js");
167
+ const { runAgentUpdateCommand } = await import("./agentRecordCommands-ZPVDMPWS.js");
168
168
  return runAgentUpdateCommand(args, deps);
169
169
  }),
170
170
  createEnvCommand(["agent", "email", "provision"], "Provision a controlled inbox for an agent", async (args, deps) => {
171
- const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-SKDSR6TX.js");
171
+ const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-JWAAVWK5.js");
172
172
  return runAgentEmailProvisionCommand(args, deps);
173
173
  }),
174
174
  createEnvCommand(["agent", "email", "bind"], "Bind an existing email address to an agent", async (args, deps) => {
175
- const { runAgentEmailBindCommand } = await import("./agentEmailCommands-SKDSR6TX.js");
175
+ const { runAgentEmailBindCommand } = await import("./agentEmailCommands-JWAAVWK5.js");
176
176
  return runAgentEmailBindCommand(args, deps);
177
177
  }),
178
178
  createEnvCommand(["agent", "email", "transfer"], "Transfer an email identity from one agent to another (cross-account)", async (args, deps) => {
179
- const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-SKDSR6TX.js");
179
+ const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-JWAAVWK5.js");
180
180
  return runAgentEmailTransferCommand(args, deps);
181
181
  }),
182
182
  createEnvCommand(
183
183
  ["agent", "email", "create-and-provision"],
184
184
  "Create an agent and provision its controlled inbox",
185
185
  async (args, deps) => {
186
- const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-SKDSR6TX.js");
186
+ const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-JWAAVWK5.js");
187
187
  return runAgentEmailCreateAndProvisionCommand(args, deps);
188
188
  }
189
189
  ),
@@ -204,15 +204,15 @@ function getAgentInternalCommandEntries() {
204
204
  return runAgentRevokeGrantCommand(args, deps);
205
205
  }),
206
206
  createEnvCommand(["agent", "bind-current"], "Bind an agent to this machine", async (args, deps) => {
207
- const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-JVHHRKJC.js");
207
+ const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-GL4TIGRD.js");
208
208
  return runAgentBindCurrentCommand(args, deps);
209
209
  }),
210
210
  createEnvCommand(["agent", "smoke-current"], "Smoke test a bound agent through this machine", async (args, deps) => {
211
- const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-JVHHRKJC.js");
211
+ const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-GL4TIGRD.js");
212
212
  return runAgentSmokeCurrentCommand(args, deps);
213
213
  }),
214
214
  createEnvCommand(["agent", "runtime-doctor"], "Diagnose current machine runtime compatibility", async (args, deps) => {
215
- const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-JVHHRKJC.js");
215
+ const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-GL4TIGRD.js");
216
216
  return runAgentRuntimeDoctorCommand(args, deps);
217
217
  }),
218
218
  createAgentRunCommand(["agent", "chat"], "Chat with an agent")
@@ -473,15 +473,15 @@ function getSystemInternalCommandEntries(renderHelpText2) {
473
473
  return runWhoamiCommand({ args, env: ctx.env });
474
474
  }),
475
475
  createEntrypointEnvCommand(["connect"], "Send machine heartbeats or hold a connector websocket", async (args, deps) => {
476
- const { runMachineConnectCommand } = await import("./machineCommands-6D7JZBWS.js");
476
+ const { runMachineConnectCommand } = await import("./machineCommands-VVSQOM5V.js");
477
477
  return runMachineConnectCommand(args, deps);
478
478
  }),
479
479
  createDaemonShortcutCommand(["daemon"], "Run the connector daemon shortcut", async (args, deps) => {
480
- const { runMachineConnectCommand } = await import("./machineCommands-6D7JZBWS.js");
480
+ const { runMachineConnectCommand } = await import("./machineCommands-VVSQOM5V.js");
481
481
  return runMachineConnectCommand(args, deps);
482
482
  }),
483
483
  createEnvCommand(["machine", "status"], "List machines registered to the current profile", async (args, deps) => {
484
- const { runMachineStatusCommand } = await import("./machineCommands-6D7JZBWS.js");
484
+ const { runMachineStatusCommand } = await import("./machineCommands-VVSQOM5V.js");
485
485
  return runMachineStatusCommand(args, deps);
486
486
  }),
487
487
  createEnvCommand(["doctor", "runtime"], "Diagnose local-first agent runtime selection", async (args, deps) => {
@@ -7,13 +7,13 @@ import {
7
7
  updateContentPinned,
8
8
  updateContentTitle,
9
9
  uploadAndAddFileToSpace
10
- } from "./chunk-ECN5PIJP.js";
10
+ } from "./chunk-YFIEJTJP.js";
11
11
  import "./chunk-ZJ7UHBJS.js";
12
- import "./chunk-UE6THNRN.js";
12
+ import "./chunk-ARJISZLY.js";
13
13
  import "./chunk-523DITKR.js";
14
14
  import "./chunk-YYLHWIW6.js";
15
15
  import "./chunk-6O4IK4V2.js";
16
- import "./chunk-HMYLUSAO.js";
16
+ import "./chunk-LSEP3JEV.js";
17
17
  import "./chunk-D76D3RTR.js";
18
18
  import "./chunk-5RGU3J7P.js";
19
19
  import "./chunk-M76ECQRD.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-ECN5PIJP.js";
3
+ } from "./chunk-YFIEJTJP.js";
4
4
  import "./chunk-ZJ7UHBJS.js";
5
- import "./chunk-UE6THNRN.js";
5
+ import "./chunk-ARJISZLY.js";
6
6
  import "./chunk-523DITKR.js";
7
7
  import "./chunk-YYLHWIW6.js";
8
8
  import "./chunk-6O4IK4V2.js";
9
- import "./chunk-HMYLUSAO.js";
9
+ import "./chunk-LSEP3JEV.js";
10
10
  import "./chunk-D76D3RTR.js";
11
11
  import "./chunk-5RGU3J7P.js";
12
12
  import "./chunk-M76ECQRD.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  createDialogAction,
3
3
  isLocalOwnerDialogAgents
4
- } from "./chunk-6ECICFUL.js";
5
- import "./chunk-ECN5PIJP.js";
4
+ } from "./chunk-I2NACKOX.js";
5
+ import "./chunk-YFIEJTJP.js";
6
6
  import "./chunk-ZJ7UHBJS.js";
7
- import "./chunk-UE6THNRN.js";
7
+ import "./chunk-ARJISZLY.js";
8
8
  import "./chunk-523DITKR.js";
9
9
  import "./chunk-YYLHWIW6.js";
10
10
  import "./chunk-6O4IK4V2.js";
11
- import "./chunk-HMYLUSAO.js";
11
+ import "./chunk-LSEP3JEV.js";
12
12
  import "./chunk-D76D3RTR.js";
13
13
  import "./chunk-5RGU3J7P.js";
14
14
  import "./chunk-M76ECQRD.js";
@@ -14,15 +14,15 @@ import {
14
14
  import {
15
15
  addContentToSpace,
16
16
  client_default
17
- } from "./chunk-ECN5PIJP.js";
17
+ } from "./chunk-YFIEJTJP.js";
18
18
  import {
19
19
  getCurrentSpaceId
20
20
  } from "./chunk-ZJ7UHBJS.js";
21
- import "./chunk-UE6THNRN.js";
21
+ import "./chunk-ARJISZLY.js";
22
22
  import "./chunk-523DITKR.js";
23
23
  import "./chunk-YYLHWIW6.js";
24
24
  import "./chunk-6O4IK4V2.js";
25
- import "./chunk-HMYLUSAO.js";
25
+ import "./chunk-LSEP3JEV.js";
26
26
  import "./chunk-D76D3RTR.js";
27
27
  import "./chunk-5RGU3J7P.js";
28
28
  import "./chunk-M76ECQRD.js";
@@ -20,11 +20,11 @@ import {
20
20
  switchDialogAgent,
21
21
  updateDialogTitle,
22
22
  updateTokens
23
- } from "./chunk-UE6THNRN.js";
23
+ } from "./chunk-ARJISZLY.js";
24
24
  import "./chunk-523DITKR.js";
25
25
  import "./chunk-YYLHWIW6.js";
26
26
  import "./chunk-6O4IK4V2.js";
27
- import "./chunk-HMYLUSAO.js";
27
+ import "./chunk-LSEP3JEV.js";
28
28
  import "./chunk-D76D3RTR.js";
29
29
  import {
30
30
  getActiveDialogAgentId
@@ -24,7 +24,7 @@ import {
24
24
  updateTitleDoc,
25
25
  useDocField,
26
26
  useDocState
27
- } from "./chunk-OY5MN3QW.js";
27
+ } from "./chunk-MTS4CSGW.js";
28
28
  import "./chunk-M76ECQRD.js";
29
29
  import "./chunk-YDH3FDFQ.js";
30
30
  import "./chunk-HNMXYYJR.js";
@@ -26,14 +26,16 @@ import {
26
26
  prepareAndPersistUserMessage,
27
27
  removeTransientMessage,
28
28
  resolveHandleSendMessageContext,
29
- selectAllMsgs
30
- } from "./chunk-UE6THNRN.js";
29
+ selectAllMsgs,
30
+ setMessages,
31
+ setStreamingMessageId
32
+ } from "./chunk-ARJISZLY.js";
31
33
  import "./chunk-523DITKR.js";
32
34
  import "./chunk-YYLHWIW6.js";
33
35
  import "./chunk-6O4IK4V2.js";
34
36
  import {
35
37
  streamAgentChatTurn
36
- } from "./chunk-HMYLUSAO.js";
38
+ } from "./chunk-LSEP3JEV.js";
37
39
  import "./chunk-D76D3RTR.js";
38
40
  import "./chunk-5RGU3J7P.js";
39
41
  import "./chunk-M76ECQRD.js";
@@ -150,6 +152,7 @@ function hasSupportedDurableToolSurface(agent) {
150
152
  return names.length === 0 || names.every((name) => name === FIRST_DURABLE_WEB_TOOL);
151
153
  }
152
154
  function shouldUseServerOwnedWebForegroundTurn(input) {
155
+ if (input.surface !== "web") return false;
153
156
  if (input.isDesktopApp) return false;
154
157
  if (!input.currentServer?.trim() || !input.token?.trim()) return false;
155
158
  if (typeof input.userInput !== "string" || !input.userInput.trim()) return false;
@@ -251,31 +254,77 @@ function createServerOwnedAskUserProjection(args) {
251
254
  return { handlePayload, cleanup, transientByCallId };
252
255
  }
253
256
 
257
+ // packages/ai/agent/serverOwnedWebForegroundHandoff.ts
258
+ function assistantText(message) {
259
+ return typeof message.content === "string" ? message.content : "";
260
+ }
261
+ function findNewCanonicalAssistant(messages, initialMessageIds, transientId, expectedText) {
262
+ const transient = messages.find((message) => message?.id === transientId);
263
+ const completedText = expectedText || (transient ? assistantText(transient) : "");
264
+ for (const message of messages) {
265
+ if (!message?.id || message.id === transientId) continue;
266
+ if (initialMessageIds.has(message.id)) continue;
267
+ if (message.role !== "assistant") continue;
268
+ if (message.isStreaming) continue;
269
+ if (completedText && assistantText(message) !== completedText) continue;
270
+ return message;
271
+ }
272
+ return null;
273
+ }
274
+ async function waitForNewCanonicalAssistant(args) {
275
+ const timeoutMs = Math.max(0, args.timeoutMs ?? 5e3);
276
+ const pollMs = Math.max(1, args.pollMs ?? 25);
277
+ const deadline = Date.now() + timeoutMs;
278
+ while (true) {
279
+ const canonical = findNewCanonicalAssistant(
280
+ args.readMessages(),
281
+ args.initialMessageIds,
282
+ args.transientId,
283
+ args.expectedText
284
+ );
285
+ if (canonical) return canonical;
286
+ if (Date.now() >= deadline) return null;
287
+ await new Promise((resolve) => setTimeout(resolve, pollMs));
288
+ }
289
+ }
290
+
254
291
  // packages/ai/agent/serverOwnedWebForegroundTurn.ts
255
292
  async function canRunServerOwnedWebForegroundTurn(args, thunk) {
256
- let agentConfig = args.agentConfig ?? void 0;
257
- if (!agentConfig) {
293
+ try {
294
+ let currentServer;
295
+ let token;
258
296
  try {
259
- const { readAndWait: readAndWait2 } = await import("./dbSlice-HFPIJT5P.js");
260
- agentConfig = await thunk.dispatch(readAndWait2(args.agentKey)).unwrap();
297
+ const state = thunk.getState();
298
+ currentServer = selectCurrentServer(state);
299
+ token = selectIdentityToken(state);
261
300
  } catch {
262
301
  return { eligible: false };
263
302
  }
303
+ if (!currentServer?.trim() || !token?.trim()) return { eligible: false };
304
+ let agentConfig = args.agentConfig ?? void 0;
305
+ if (!agentConfig) {
306
+ try {
307
+ const { readAndWait: readAndWait2 } = await import("./dbSlice-HFPIJT5P.js");
308
+ agentConfig = await thunk.dispatch(readAndWait2(args.agentKey)).unwrap();
309
+ } catch {
310
+ return { eligible: false };
311
+ }
312
+ }
313
+ return {
314
+ eligible: shouldUseServerOwnedWebForegroundTurn({
315
+ surface: "web",
316
+ agentConfig,
317
+ userInput: args.userInput,
318
+ runtimeOptions: args.runtimeOptions,
319
+ currentServer,
320
+ token,
321
+ isDesktopApp: getIsDesktopApp()
322
+ }),
323
+ agentConfig
324
+ };
325
+ } catch {
326
+ return { eligible: false };
264
327
  }
265
- const state = thunk.getState();
266
- const currentServer = selectCurrentServer(state);
267
- const token = selectIdentityToken(state);
268
- return {
269
- eligible: shouldUseServerOwnedWebForegroundTurn({
270
- agentConfig,
271
- userInput: args.userInput,
272
- runtimeOptions: args.runtimeOptions,
273
- currentServer,
274
- token,
275
- isDesktopApp: getIsDesktopApp()
276
- }),
277
- agentConfig
278
- };
279
328
  }
280
329
  async function runServerOwnedWebForegroundTurn(args, thunk) {
281
330
  const state = thunk.getState();
@@ -293,11 +342,15 @@ async function runServerOwnedWebForegroundTurn(args, thunk) {
293
342
  if (!userInput.trim()) {
294
343
  throw new Error("Server-owned foreground turn requires text input");
295
344
  }
345
+ const initialMessageIds = new Set(
346
+ selectAllMsgs(thunk.getState(), dialogId).map((message) => message?.id).filter((id) => typeof id === "string" && id.length > 0)
347
+ );
296
348
  const userId = selectIdentityUserId(thunk.getState());
297
349
  const { key: transientKey, messageId: transientId } = createDialogMessageKeyAndId(dialogId);
298
350
  const controller = new AbortController();
299
351
  const loopKey = `server-owned:${dialogId}:${transientId}`;
300
352
  let accumulated = "";
353
+ let sawDone = false;
301
354
  const askUserProjection = createServerOwnedAskUserProjection({
302
355
  dialogId,
303
356
  dispatch: thunk.dispatch,
@@ -428,9 +481,40 @@ async function runServerOwnedWebForegroundTurn(args, thunk) {
428
481
  if (!outcome.sawDone) {
429
482
  return { serverOwned: true, detached: true };
430
483
  }
431
- askUserProjection.cleanup();
432
- thunk.dispatch(removeTransientMessage({ id: transientId, dialogId }));
433
- await thunk.dispatch(initMsgs({ dialogId })).unwrap();
484
+ sawDone = true;
485
+ let canonicalVisible = false;
486
+ try {
487
+ await thunk.dispatch(initMsgs({ dialogId })).unwrap();
488
+ canonicalVisible = !!await waitForNewCanonicalAssistant({
489
+ readMessages: () => selectAllMsgs(thunk.getState(), dialogId),
490
+ initialMessageIds,
491
+ transientId
492
+ });
493
+ } catch (error) {
494
+ console.warn("[chat] server-owned canonical handoff refresh failed", {
495
+ dialogId,
496
+ error
497
+ });
498
+ }
499
+ if (canonicalVisible) {
500
+ askUserProjection.cleanup();
501
+ thunk.dispatch(removeTransientMessage({ id: transientId, dialogId }));
502
+ } else {
503
+ const transient = selectAllMsgs(thunk.getState(), dialogId).find((message) => message?.id === transientId);
504
+ if (transient) {
505
+ thunk.dispatch(
506
+ setMessages({
507
+ dialogId,
508
+ messages: [{ ...transient, isStreaming: false }]
509
+ })
510
+ );
511
+ }
512
+ setStreamingMessageId(dialogId, null);
513
+ console.warn(
514
+ "[chat] server-owned canonical message not visible after done; keeping transient projection",
515
+ { dialogId, transientId }
516
+ );
517
+ }
434
518
  return { serverOwned: true };
435
519
  } finally {
436
520
  thunk.dispatch(
@@ -439,8 +523,10 @@ async function runServerOwnedWebForegroundTurn(args, thunk) {
439
523
  dialogKey
440
524
  })
441
525
  );
442
- askUserProjection.cleanup();
443
- thunk.dispatch(removeTransientMessage({ id: transientId, dialogId }));
526
+ if (!sawDone) {
527
+ askUserProjection.cleanup();
528
+ thunk.dispatch(removeTransientMessage({ id: transientId, dialogId }));
529
+ }
444
530
  }
445
531
  }
446
532
 
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-HZWPJELZ.js");
74
+ const { startTuiWorkspace } = await import("./readlineWorkspace-A6I3TDOI.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-4OQNLR7J.js");
84
+ const { createCliRuntimeContext, looksLikeDaemonShortcut, renderHelpText, resolveCommand, runResolvedCommand } = await import("./commandRegistry-VKPZIDKP.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-YCHTTOE6.js";
5
+ } from "./chunk-C22W3XQ5.js";
6
6
  import {
7
7
  isConnectorWebSocketAuthError,
8
8
  isConnectorWebSocketRetryableError,
9
9
  resolveConnectorWebSocketTarget
10
10
  } from "./chunk-ALXHV7NK.js";
11
- import "./chunk-27MYPW3V.js";
11
+ import "./chunk-LL75KBOF.js";
12
12
  import "./chunk-I4OPU5TK.js";
13
13
  import "./chunk-YUNJN43V.js";
14
14
  import "./chunk-62IL3KQV.js";
@@ -25,9 +25,9 @@ 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-JGMAQ6M4.js";
28
+ import "./chunk-NAQIJEFD.js";
29
29
  import "./chunk-HS7MLR74.js";
30
- import "./chunk-XTHMLDFS.js";
30
+ import "./chunk-45RDJCWY.js";
31
31
  import "./chunk-2EE5UD3N.js";
32
32
  import "./chunk-5UTFL4QJ.js";
33
33
  import "./chunk-KQHGZWSV.js";
@@ -37,23 +37,23 @@ import {
37
37
  CORE_DRAIN_REASON
38
38
  } from "./chunk-3L2WKC3W.js";
39
39
  import "./chunk-4JMDLJAD.js";
40
- import "./chunk-6ECICFUL.js";
40
+ import "./chunk-I2NACKOX.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-OY5MN3QW.js";
45
+ import "./chunk-MTS4CSGW.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-ECN5PIJP.js";
50
+ import "./chunk-YFIEJTJP.js";
51
51
  import "./chunk-ZJ7UHBJS.js";
52
- import "./chunk-UE6THNRN.js";
52
+ import "./chunk-ARJISZLY.js";
53
53
  import "./chunk-523DITKR.js";
54
54
  import "./chunk-YYLHWIW6.js";
55
55
  import "./chunk-6O4IK4V2.js";
56
- import "./chunk-HMYLUSAO.js";
56
+ import "./chunk-LSEP3JEV.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-YCHTTOE6.js";
15
- import "./chunk-27MYPW3V.js";
14
+ } from "./chunk-C22W3XQ5.js";
15
+ import "./chunk-LL75KBOF.js";
16
16
  import "./chunk-I4OPU5TK.js";
17
17
  import "./chunk-YUNJN43V.js";
18
18
  import "./chunk-62IL3KQV.js";
@@ -26,9 +26,9 @@ 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-JGMAQ6M4.js";
29
+ import "./chunk-NAQIJEFD.js";
30
30
  import "./chunk-HS7MLR74.js";
31
- import "./chunk-XTHMLDFS.js";
31
+ import "./chunk-45RDJCWY.js";
32
32
  import "./chunk-2EE5UD3N.js";
33
33
  import "./chunk-5UTFL4QJ.js";
34
34
  import "./chunk-KQHGZWSV.js";
@@ -36,23 +36,23 @@ import "./chunk-GOMR6S5Z.js";
36
36
  import "./chunk-NF64D32W.js";
37
37
  import "./chunk-3L2WKC3W.js";
38
38
  import "./chunk-4JMDLJAD.js";
39
- import "./chunk-6ECICFUL.js";
39
+ import "./chunk-I2NACKOX.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-OY5MN3QW.js";
44
+ import "./chunk-MTS4CSGW.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-ECN5PIJP.js";
49
+ import "./chunk-YFIEJTJP.js";
50
50
  import "./chunk-ZJ7UHBJS.js";
51
- import "./chunk-UE6THNRN.js";
51
+ import "./chunk-ARJISZLY.js";
52
52
  import "./chunk-523DITKR.js";
53
53
  import "./chunk-YYLHWIW6.js";
54
54
  import "./chunk-6O4IK4V2.js";
55
- import "./chunk-HMYLUSAO.js";
55
+ import "./chunk-LSEP3JEV.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.2",
3
+ "version": "0.146.0-alpha.4",
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-UUMOPF47.js";
79
+ } from "./chunk-RS4EE3CY.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-27MYPW3V.js";
91
+ } from "./chunk-LL75KBOF.js";
92
92
  import "./chunk-I4OPU5TK.js";
93
93
  import "./chunk-YUNJN43V.js";
94
94
  import "./chunk-62IL3KQV.js";
@@ -142,12 +142,12 @@ import "./chunk-ATNTHIZI.js";
142
142
  import "./chunk-JEXVIMYZ.js";
143
143
  import {
144
144
  prepareTools
145
- } from "./chunk-JGMAQ6M4.js";
145
+ } from "./chunk-NAQIJEFD.js";
146
146
  import {
147
147
  buildResponseGuidelines
148
148
  } from "./chunk-EOARMOVD.js";
149
149
  import "./chunk-HS7MLR74.js";
150
- import "./chunk-XTHMLDFS.js";
150
+ import "./chunk-45RDJCWY.js";
151
151
  import "./chunk-2EE5UD3N.js";
152
152
  import "./chunk-5UTFL4QJ.js";
153
153
  import "./chunk-KQHGZWSV.js";
@@ -164,12 +164,12 @@ import {
164
164
  resolveRunLabel,
165
165
  shortRunId
166
166
  } from "./chunk-4JMDLJAD.js";
167
- import "./chunk-6ECICFUL.js";
167
+ import "./chunk-I2NACKOX.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-OY5MN3QW.js";
172
+ import "./chunk-MTS4CSGW.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-ECN5PIJP.js";
182
+ import "./chunk-YFIEJTJP.js";
183
183
  import "./chunk-ZJ7UHBJS.js";
184
184
  import {
185
185
  extractReferenceKeysFromMessage
186
- } from "./chunk-UE6THNRN.js";
186
+ } from "./chunk-ARJISZLY.js";
187
187
  import "./chunk-523DITKR.js";
188
188
  import "./chunk-YYLHWIW6.js";
189
189
  import "./chunk-6O4IK4V2.js";
190
- import "./chunk-HMYLUSAO.js";
190
+ import "./chunk-LSEP3JEV.js";
191
191
  import "./chunk-D76D3RTR.js";
192
192
  import "./chunk-5RGU3J7P.js";
193
193
  import "./chunk-M76ECQRD.js";
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  fetchAgentContexts
3
- } from "./chunk-QE6WT54C.js";
3
+ } from "./chunk-XCMPF226.js";
4
4
  import {
5
5
  generateRequestBody,
6
6
  mergeReferences,
7
7
  performFetchRequest,
8
8
  sanitizeOutboundBody
9
- } from "./chunk-IBHS2SAO.js";
9
+ } from "./chunk-2Q7IUN6P.js";
10
10
  import "./chunk-EOARMOVD.js";
11
11
  import "./chunk-HS7MLR74.js";
12
12
  import "./chunk-6OTOA5MH.js";
13
13
  import {
14
14
  findToolExecutor,
15
15
  getToolResultErrorData
16
- } from "./chunk-XTHMLDFS.js";
16
+ } from "./chunk-45RDJCWY.js";
17
17
  import "./chunk-2EE5UD3N.js";
18
18
  import "./chunk-5UTFL4QJ.js";
19
19
  import "./chunk-KQHGZWSV.js";
@@ -21,25 +21,25 @@ import "./chunk-GOMR6S5Z.js";
21
21
  import "./chunk-NF64D32W.js";
22
22
  import "./chunk-3L2WKC3W.js";
23
23
  import "./chunk-4JMDLJAD.js";
24
- import "./chunk-6ECICFUL.js";
24
+ import "./chunk-I2NACKOX.js";
25
25
  import "./chunk-HNRASX3X.js";
26
26
  import "./chunk-YRRASA5Q.js";
27
27
  import "./chunk-63W5N6P3.js";
28
28
  import "./chunk-VF4K2QE6.js";
29
- import "./chunk-OY5MN3QW.js";
29
+ import "./chunk-MTS4CSGW.js";
30
30
  import "./chunk-Z7IZQF56.js";
31
31
  import "./chunk-XPRWFQQK.js";
32
32
  import "./chunk-BJUDYFV5.js";
33
33
  import "./chunk-MEYIRKDN.js";
34
- import "./chunk-ECN5PIJP.js";
34
+ import "./chunk-YFIEJTJP.js";
35
35
  import "./chunk-ZJ7UHBJS.js";
36
36
  import {
37
37
  updateTokensAction
38
- } from "./chunk-UE6THNRN.js";
38
+ } from "./chunk-ARJISZLY.js";
39
39
  import "./chunk-523DITKR.js";
40
40
  import "./chunk-YYLHWIW6.js";
41
41
  import "./chunk-6O4IK4V2.js";
42
- import "./chunk-HMYLUSAO.js";
42
+ import "./chunk-LSEP3JEV.js";
43
43
  import "./chunk-D76D3RTR.js";
44
44
  import "./chunk-5RGU3J7P.js";
45
45
  import "./chunk-M76ECQRD.js";