nolo-cli 0.8.0-alpha.25 → 0.8.0-alpha.26

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 (37) hide show
  1. package/{_executeModel-IYPAOWQQ.js → _executeModel-HM7KOYQX.js} +10 -10
  2. package/{agentEmailCommands-JGAZ26N2.js → agentEmailCommands-X24B32EE.js} +9 -9
  3. package/{agentMachineCommands-EBCDKO4T.js → agentMachineCommands-AHOFELNN.js} +3 -3
  4. package/{agentRecordCommands-ZKOLGEMX.js → agentRecordCommands-GCX4YO5J.js} +9 -9
  5. package/{agentRunCommand-L6A3DKTB.js → agentRunCommand-6Z73OBXZ.js} +9 -9
  6. package/{agentSlice-XRG5ODYW.js → agentSlice-73367RQ3.js} +1 -1
  7. package/{chunk-V6ICY2YU.js → chunk-2H4I6KR4.js} +1 -1
  8. package/{chunk-OOOKLEJ7.js → chunk-3WSPFJ7B.js} +2 -2
  9. package/{chunk-XGOTQ6ZG.js → chunk-6L2PIG7I.js} +1 -1
  10. package/{chunk-GAKEBQD6.js → chunk-D6OQHXVG.js} +11 -7
  11. package/{chunk-DW75SYWV.js → chunk-DXLC3MIQ.js} +8 -8
  12. package/{chunk-KRMH46UV.js → chunk-EUELM55L.js} +3 -3
  13. package/{chunk-EEUWELOX.js → chunk-GK7YFA5J.js} +1 -1
  14. package/{chunk-67Z375LK.js → chunk-HUHOMATY.js} +2 -2
  15. package/{chunk-5EUAXXSV.js → chunk-IB65MC33.js} +1 -1
  16. package/{chunk-AVMKZHBC.js → chunk-L53FGHA4.js} +3 -2
  17. package/{chunk-Y7QCVJ73.js → chunk-QXZ4YDXW.js} +19 -12
  18. package/{chunk-ALEDPZVP.js → chunk-TUIH56DJ.js} +4 -4
  19. package/{chunk-WO6IG6YT.js → chunk-VAHPL4CG.js} +35 -14
  20. package/{chunk-5LDYVJXY.js → chunk-VDS3NXE5.js} +32 -10
  21. package/{chunk-RB43SIIG.js → chunk-XW6CFB3M.js} +5 -5
  22. package/{createAgentAutomationAction-HZJ4LPCW.js → createAgentAutomationAction-MYQ7Z7VA.js} +2 -2
  23. package/{createDialogAction-KICYAHEQ.js → createDialogAction-PIV7Z7ZQ.js} +3 -3
  24. package/{createPageAction-VWBZOQPP.js → createPageAction-7ZAEDSUY.js} +2 -2
  25. package/{dialogSlice-G3WPGLY5.js → dialogSlice-4PYFGN7J.js} +2 -2
  26. package/{docStore-K7U47JYV.js → docStore-P7PG4YDJ.js} +3 -3
  27. package/{handleSendMessageAction-UAI2ZOGG.js → handleSendMessageAction-BHUXTQHK.js} +2 -2
  28. package/index.js +15 -15
  29. package/{machineCommands-FE5HOJWR.js → machineCommands-GD46ZUZC.js} +14 -12
  30. package/{machineWsRunDispatch-J56M67NJ.js → machineWsRunDispatch-5SF5RE7E.js} +9 -9
  31. package/package.json +1 -1
  32. package/{readlineWorkspace-GK33VXX2.js → readlineWorkspace-IKXTXTYB.js} +9 -9
  33. package/{runAgentClientLoop-EEC3BHWI.js → runAgentClientLoop-CRIQXO42.js} +8 -8
  34. package/{spaceSlice-OE57MB22.js → spaceSlice-NYR6BQDL.js} +2 -2
  35. package/{streamAgentChatTurn-CI6VMD2Y.js → streamAgentChatTurn-CYEFWT4D.js} +9 -9
  36. package/{tools-I5VPDJHG.js → tools-4YAV2HQH.js} +6 -6
  37. package/{updateDialogTitleAction-BKXHTAYL.js → updateDialogTitleAction-FEEBVBNP.js} +2 -2
@@ -5,11 +5,13 @@ import {
5
5
  import {
6
6
  clipMultilineText,
7
7
  fetchAndSerializeTable
8
- } from "./chunk-Y7QCVJ73.js";
8
+ } from "./chunk-QXZ4YDXW.js";
9
9
  import {
10
+ CORE_DRAIN_REASON,
11
+ isGatewayHttpStatus,
10
12
  normalizeNonNegativeMs,
11
13
  parseRetryAfterHeaderMs
12
- } from "./chunk-GAKEBQD6.js";
14
+ } from "./chunk-D6OQHXVG.js";
13
15
  import {
14
16
  slateToSimplifiedMarkdown
15
17
  } from "./chunk-IVAOVLM7.js";
@@ -22,10 +24,10 @@ import {
22
24
  import {
23
25
  fetchAndCacheMessages,
24
26
  shouldUseServerProxy
25
- } from "./chunk-DW75SYWV.js";
27
+ } from "./chunk-DXLC3MIQ.js";
26
28
  import {
27
29
  fetchServerSyncedCredential
28
- } from "./chunk-KRMH46UV.js";
30
+ } from "./chunk-EUELM55L.js";
29
31
  import {
30
32
  buildCurrentTimeBlock,
31
33
  buildIdentityBlock,
@@ -1457,11 +1459,21 @@ var generateRequestBody = ({
1457
1459
  };
1458
1460
 
1459
1461
  // packages/ai/chat/serverProxyRetry.ts
1460
- var RETRYABLE_SERVER_PROXY_STATUSES = /* @__PURE__ */ new Set([502, 503, 504]);
1461
1462
  var DEFAULT_SERVER_PROXY_RETRY_AFTER_MS = 1500;
1462
1463
  var MAX_SERVER_PROXY_RETRIES = 2;
1463
1464
  var MAX_STATUS_RETRIES = 1;
1464
- var resolveServerProxyRetryAfterMs = (response) => parseRetryAfterHeaderMs(response.headers.get("Retry-After")) ?? DEFAULT_SERVER_PROXY_RETRY_AFTER_MS;
1465
+ var MAX_SERVER_DRAIN_STATUS_RETRIES = 30;
1466
+ var readRetryableResponseBody = async (response) => {
1467
+ try {
1468
+ return await response.clone().json();
1469
+ } catch {
1470
+ return null;
1471
+ }
1472
+ };
1473
+ var resolveServerProxyRetryAfterMs = (response, body) => parseRetryAfterHeaderMs(response.headers.get("Retry-After")) ?? normalizeNonNegativeMs(
1474
+ body?.retryAfterMs,
1475
+ DEFAULT_SERVER_PROXY_RETRY_AFTER_MS
1476
+ );
1465
1477
  var isRetryableServerProxyFetchError = (error) => {
1466
1478
  if (!error || isAbortError(error)) return false;
1467
1479
  const message = typeof error?.message === "string" ? error.message : String(error);
@@ -1496,23 +1508,33 @@ var performServerProxyFetchWithRetry = async ({
1496
1508
  signal,
1497
1509
  logPrefix = "[fetchWithServerProxy]"
1498
1510
  }) => {
1499
- for (let attempt = 0; attempt <= MAX_SERVER_PROXY_RETRIES; attempt += 1) {
1511
+ let networkRetries = 0;
1512
+ let statusRetries = 0;
1513
+ while (true) {
1500
1514
  try {
1501
1515
  const response = await execute();
1502
- if (attempt < MAX_STATUS_RETRIES && RETRYABLE_SERVER_PROXY_STATUSES.has(response.status)) {
1503
- const retryAfterMs = resolveServerProxyRetryAfterMs(response);
1516
+ const responseBody = response.status === 503 ? await readRetryableResponseBody(response) : null;
1517
+ const isCoreDraining = response.status === 503 && responseBody?.reason === CORE_DRAIN_REASON;
1518
+ const maxStatusRetries = isCoreDraining ? MAX_SERVER_DRAIN_STATUS_RETRIES : MAX_STATUS_RETRIES;
1519
+ if (statusRetries < maxStatusRetries && isGatewayHttpStatus(response.status)) {
1520
+ statusRetries += 1;
1521
+ const retryAfterMs = resolveServerProxyRetryAfterMs(
1522
+ response,
1523
+ responseBody
1524
+ );
1504
1525
  console.warn(
1505
- `${logPrefix} \u68C0\u6D4B\u5230${response.status}\u72B6\u6001\uFF0C${retryAfterMs}ms\u540E\u91CD\u8BD5\u4E00\u6B21...`
1526
+ `${logPrefix} \u68C0\u6D4B\u5230${response.status}\u72B6\u6001\uFF0C${retryAfterMs}ms\u540E\u91CD\u8BD5...`
1506
1527
  );
1507
1528
  await waitForServerProxyRetry(retryAfterMs, signal);
1508
1529
  continue;
1509
1530
  }
1510
1531
  return response;
1511
1532
  } catch (error) {
1512
- if (attempt < MAX_SERVER_PROXY_RETRIES && isRetryableServerProxyFetchError(error)) {
1513
- const retryDelay = (attempt + 1) * 1e3;
1533
+ if (networkRetries < MAX_SERVER_PROXY_RETRIES && isRetryableServerProxyFetchError(error)) {
1534
+ networkRetries += 1;
1535
+ const retryDelay = networkRetries * 1e3;
1514
1536
  console.warn(
1515
- `${logPrefix} \u68C0\u6D4B\u5230\u7F51\u7EDC\u77AC\u65AD\uFF0C${retryDelay}ms\u540E\u91CD\u8BD5(\u7B2C${attempt + 1}\u6B21)...`,
1537
+ `${logPrefix} \u68C0\u6D4B\u5230\u7F51\u7EDC\u77AC\u65AD\uFF0C${retryDelay}ms\u540E\u91CD\u8BD5(\u7B2C${networkRetries}\u6B21)...`,
1516
1538
  error
1517
1539
  );
1518
1540
  await waitForServerProxyRetry(retryDelay, signal);
@@ -1521,7 +1543,6 @@ var performServerProxyFetchWithRetry = async ({
1521
1543
  throw error;
1522
1544
  }
1523
1545
  }
1524
- throw new Error("server proxy retry exhausted unexpectedly");
1525
1546
  };
1526
1547
 
1527
1548
  // packages/ai/chat/resolveDirectRequestApiKey.ts
@@ -27,7 +27,7 @@ import {
27
27
  } from "./chunk-ATNTHIZI.js";
28
28
  import {
29
29
  prepareTools
30
- } from "./chunk-5EUAXXSV.js";
30
+ } from "./chunk-IB65MC33.js";
31
31
  import {
32
32
  getAntigravityUserAgent,
33
33
  isAntigravityOAuthAgent,
@@ -44,19 +44,22 @@ import {
44
44
  readXPostFunctionSchema,
45
45
  readXhsProfileFunc,
46
46
  readXhsProfileFunctionSchema
47
- } from "./chunk-Y7QCVJ73.js";
47
+ } from "./chunk-QXZ4YDXW.js";
48
+ import {
49
+ CORE_DRAIN_REASON
50
+ } from "./chunk-D6OQHXVG.js";
48
51
  import {
49
52
  normalizeDialogTitle
50
53
  } from "./chunk-OWOHNGCN.js";
51
54
  import {
52
55
  prepareTokenUsageData
53
- } from "./chunk-DW75SYWV.js";
56
+ } from "./chunk-DXLC3MIQ.js";
54
57
  import {
55
58
  BUILTIN_TITLE_LLM_CONFIG
56
59
  } from "./chunk-V2J635L5.js";
57
60
  import {
58
61
  fetchServerSyncedCredential
59
- } from "./chunk-KRMH46UV.js";
62
+ } from "./chunk-EUELM55L.js";
60
63
  import {
61
64
  buildAgentRuntimeDialogWritePlan,
62
65
  buildLocalWorkspaceOpenAiTools,
@@ -203,6 +206,7 @@ import { request as httpRequest } from "node:http";
203
206
  import { request as httpsRequest } from "node:https";
204
207
  var TRANSIENT_FETCH_MAX_ATTEMPTS = 3;
205
208
  var TRANSIENT_FETCH_RETRY_BASE_DELAY_MS = 250;
209
+ var CORE_DRAINING_MAX_ATTEMPTS = 30;
206
210
  var RETRYABLE_HTTP_STATUSES = /* @__PURE__ */ new Set([429, 503]);
207
211
  function isTransientFetchError(error) {
208
212
  const message = toErrorMessage(error);
@@ -293,26 +297,44 @@ async function defaultLoopbackRequest(input, init) {
293
297
  req.end();
294
298
  });
295
299
  }
300
+ async function isCoreDrainingResponse(response) {
301
+ if (response.status !== 503) return false;
302
+ try {
303
+ const body = await response.clone().json();
304
+ return body?.reason === CORE_DRAIN_REASON;
305
+ } catch {
306
+ return false;
307
+ }
308
+ }
296
309
  async function fetchWithTransientRetry(fetchImpl, input, init, options = {}) {
297
310
  const retryableStatuses = options.retryableStatuses ?? RETRYABLE_HTTP_STATUSES;
311
+ const requestedMaxAttempts = Number(options.maxAttempts);
312
+ const maxAttempts = Number.isFinite(requestedMaxAttempts) ? Math.min(100, Math.max(1, Math.floor(requestedMaxAttempts))) : TRANSIENT_FETCH_MAX_ATTEMPTS;
313
+ const requestedCoreDrainingMaxAttempts = Number(options.coreDrainingMaxAttempts);
314
+ const coreDrainingMaxAttempts = Number.isFinite(requestedCoreDrainingMaxAttempts) ? Math.min(100, Math.max(1, Math.floor(requestedCoreDrainingMaxAttempts))) : CORE_DRAINING_MAX_ATTEMPTS;
315
+ const loopMaxAttempts = Math.max(maxAttempts, coreDrainingMaxAttempts);
298
316
  let lastError;
299
- for (let attempt = 1; attempt <= TRANSIENT_FETCH_MAX_ATTEMPTS; attempt += 1) {
317
+ for (let attempt = 1; attempt <= loopMaxAttempts; attempt += 1) {
300
318
  try {
301
319
  if (options.loopbackRequest && isLoopbackUrl(input)) {
302
320
  return await options.loopbackRequest(input, init);
303
321
  }
304
322
  const response = await fetchImpl(input, init);
305
- if (retryableStatuses.has(response.status) && attempt < TRANSIENT_FETCH_MAX_ATTEMPTS && !init?.signal?.aborted) {
306
- const delayMs = await resolveRetryAfterMs(response, attempt);
307
- await (options.sleep ?? defaultSleep)(delayMs);
308
- continue;
323
+ if (retryableStatuses.has(response.status) && !init?.signal?.aborted) {
324
+ const coreDraining = await isCoreDrainingResponse(response);
325
+ const attemptBudget = coreDraining ? coreDrainingMaxAttempts : maxAttempts;
326
+ if (attempt < attemptBudget) {
327
+ const delayMs = await resolveRetryAfterMs(response, attempt);
328
+ await (options.sleep ?? defaultSleep)(delayMs);
329
+ continue;
330
+ }
309
331
  }
310
332
  return response;
311
333
  } catch (error) {
312
334
  if (init?.signal?.aborted) throw error;
313
335
  if (!isTransientFetchError(error)) throw error;
314
336
  lastError = error;
315
- if (attempt < TRANSIENT_FETCH_MAX_ATTEMPTS) {
337
+ if (attempt < maxAttempts) {
316
338
  await (options.sleep ?? defaultSleep)(transientFetchRetryDelayMs(attempt));
317
339
  }
318
340
  }
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-JEXVIMYZ.js";
4
4
  import {
5
5
  prepareTools
6
- } from "./chunk-5EUAXXSV.js";
6
+ } from "./chunk-IB65MC33.js";
7
7
  import {
8
8
  performFetchRequest
9
- } from "./chunk-WO6IG6YT.js";
9
+ } from "./chunk-VAHPL4CG.js";
10
10
  import {
11
11
  getPublicImageAgentMode
12
12
  } from "./chunk-VIDPVFP3.js";
@@ -20,17 +20,17 @@ import {
20
20
  toolRunSetPending,
21
21
  toolRunStarted,
22
22
  toolRunSucceeded
23
- } from "./chunk-Y7QCVJ73.js";
23
+ } from "./chunk-QXZ4YDXW.js";
24
24
  import {
25
25
  addToolMessage,
26
26
  messageStreamEnd,
27
27
  messageStreaming,
28
28
  selectCurrentSpaceId,
29
29
  updateToolMessage
30
- } from "./chunk-DW75SYWV.js";
30
+ } from "./chunk-DXLC3MIQ.js";
31
31
  import {
32
32
  streamAgentChatTurn
33
- } from "./chunk-KRMH46UV.js";
33
+ } from "./chunk-EUELM55L.js";
34
34
  import {
35
35
  EMPTY_ASSISTANT_REPAIR_PROMPT
36
36
  } from "./chunk-LWYCA4ZT.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-DW75SYWV.js";
3
+ } from "./chunk-DXLC3MIQ.js";
4
4
  import "./chunk-V2J635L5.js";
5
5
  import "./chunk-MRC4Q34M.js";
6
6
  import "./chunk-MTU75CZ2.js";
7
7
  import "./chunk-CWMSB67P.js";
8
- import "./chunk-KRMH46UV.js";
8
+ import "./chunk-EUELM55L.js";
9
9
  import "./chunk-XDXO65DS.js";
10
10
  import "./chunk-Z4NR32XR.js";
11
11
  import "./chunk-M76ECQRD.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  createDialogAction,
3
3
  isLocalOwnerDialogAgents
4
- } from "./chunk-EEUWELOX.js";
4
+ } from "./chunk-GK7YFA5J.js";
5
5
  import "./chunk-6WWHKODG.js";
6
- import "./chunk-DW75SYWV.js";
6
+ import "./chunk-DXLC3MIQ.js";
7
7
  import "./chunk-V2J635L5.js";
8
8
  import "./chunk-MRC4Q34M.js";
9
9
  import "./chunk-MTU75CZ2.js";
10
10
  import "./chunk-CWMSB67P.js";
11
- import "./chunk-KRMH46UV.js";
11
+ import "./chunk-EUELM55L.js";
12
12
  import "./chunk-XDXO65DS.js";
13
13
  import "./chunk-Z4NR32XR.js";
14
14
  import "./chunk-M76ECQRD.js";
@@ -18,12 +18,12 @@ import {
18
18
  addContentToSpace,
19
19
  client_default,
20
20
  selectCurrentSpaceId
21
- } from "./chunk-DW75SYWV.js";
21
+ } from "./chunk-DXLC3MIQ.js";
22
22
  import "./chunk-V2J635L5.js";
23
23
  import "./chunk-MRC4Q34M.js";
24
24
  import "./chunk-MTU75CZ2.js";
25
25
  import "./chunk-CWMSB67P.js";
26
- import "./chunk-KRMH46UV.js";
26
+ import "./chunk-EUELM55L.js";
27
27
  import "./chunk-XDXO65DS.js";
28
28
  import "./chunk-Z4NR32XR.js";
29
29
  import "./chunk-M76ECQRD.js";
@@ -19,12 +19,12 @@ import {
19
19
  setPrimaryDialogAgent,
20
20
  updateDialogTitle,
21
21
  updateTokens
22
- } from "./chunk-DW75SYWV.js";
22
+ } from "./chunk-DXLC3MIQ.js";
23
23
  import "./chunk-V2J635L5.js";
24
24
  import "./chunk-MRC4Q34M.js";
25
25
  import "./chunk-MTU75CZ2.js";
26
26
  import "./chunk-CWMSB67P.js";
27
- import "./chunk-KRMH46UV.js";
27
+ import "./chunk-EUELM55L.js";
28
28
  import "./chunk-XDXO65DS.js";
29
29
  import "./chunk-Z4NR32XR.js";
30
30
  import "./chunk-M76ECQRD.js";
@@ -24,13 +24,13 @@ import {
24
24
  updateTitleDoc,
25
25
  useDocField,
26
26
  useDocState
27
- } from "./chunk-OOOKLEJ7.js";
28
- import "./chunk-DW75SYWV.js";
27
+ } from "./chunk-3WSPFJ7B.js";
28
+ import "./chunk-DXLC3MIQ.js";
29
29
  import "./chunk-V2J635L5.js";
30
30
  import "./chunk-MRC4Q34M.js";
31
31
  import "./chunk-MTU75CZ2.js";
32
32
  import "./chunk-CWMSB67P.js";
33
- import "./chunk-KRMH46UV.js";
33
+ import "./chunk-EUELM55L.js";
34
34
  import "./chunk-XDXO65DS.js";
35
35
  import "./chunk-Z4NR32XR.js";
36
36
  import "./chunk-M76ECQRD.js";
@@ -2,14 +2,14 @@ import {
2
2
  messageStreamEnd,
3
3
  prepareAndPersistUserMessage,
4
4
  resolveHandleSendMessageContext
5
- } from "./chunk-DW75SYWV.js";
5
+ } from "./chunk-DXLC3MIQ.js";
6
6
  import "./chunk-V2J635L5.js";
7
7
  import "./chunk-MRC4Q34M.js";
8
8
  import "./chunk-MTU75CZ2.js";
9
9
  import "./chunk-CWMSB67P.js";
10
10
  import {
11
11
  streamAgentChatTurn
12
- } from "./chunk-KRMH46UV.js";
12
+ } from "./chunk-EUELM55L.js";
13
13
  import "./chunk-XDXO65DS.js";
14
14
  import "./chunk-Z4NR32XR.js";
15
15
  import "./chunk-M76ECQRD.js";
package/index.js CHANGED
@@ -126,7 +126,7 @@ function createDaemonShortcutCommand(path, description, command2) {
126
126
  // packages/cli/agentInternalCommandEntries.ts
127
127
  function getAgentInternalCommandEntries() {
128
128
  const createAgentRunCommand = (path, description) => createContextCommand(path, description, async (args2, ctx) => {
129
- const { runAgentRunCommand } = await import("./agentRunCommand-L6A3DKTB.js");
129
+ const { runAgentRunCommand } = await import("./agentRunCommand-6Z73OBXZ.js");
130
130
  return runAgentRunCommand(args2, {
131
131
  env: ctx.env,
132
132
  scriptDir: ctx.scriptDir,
@@ -142,7 +142,7 @@ function getAgentInternalCommandEntries() {
142
142
  return runAgentListCommand(args2, deps);
143
143
  }),
144
144
  createEnvCommand(["agent", "create"], "Create a new agent", async (args2, deps) => {
145
- const { runAgentCreateCommand } = await import("./agentRecordCommands-ZKOLGEMX.js");
145
+ const { runAgentCreateCommand } = await import("./agentRecordCommands-GCX4YO5J.js");
146
146
  return runAgentCreateCommand(args2, deps);
147
147
  }),
148
148
  createEnvCommand(["agent", "pull"], "Cache an agent for local runs", async (args2, deps) => {
@@ -150,7 +150,7 @@ function getAgentInternalCommandEntries() {
150
150
  return runAgentPullCommand(args2, deps);
151
151
  }),
152
152
  createEnvCommand(["agent", "read"], "Read a single agent", async (args2, deps) => {
153
- const { runAgentReadCommand } = await import("./agentRecordCommands-ZKOLGEMX.js");
153
+ const { runAgentReadCommand } = await import("./agentRecordCommands-GCX4YO5J.js");
154
154
  return runAgentReadCommand(args2, deps);
155
155
  }),
156
156
  createAgentRunCommand(["agent", "run"], "Run an agent"),
@@ -179,26 +179,26 @@ function getAgentInternalCommandEntries() {
179
179
  return runSetupOfflineMarxistsAgentCommand(args2, deps);
180
180
  }),
181
181
  createEnvCommand(["agent", "update"], "Update agent fields", async (args2, deps) => {
182
- const { runAgentUpdateCommand } = await import("./agentRecordCommands-ZKOLGEMX.js");
182
+ const { runAgentUpdateCommand } = await import("./agentRecordCommands-GCX4YO5J.js");
183
183
  return runAgentUpdateCommand(args2, deps);
184
184
  }),
185
185
  createEnvCommand(["agent", "email", "provision"], "Provision a controlled inbox for an agent", async (args2, deps) => {
186
- const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-JGAZ26N2.js");
186
+ const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-X24B32EE.js");
187
187
  return runAgentEmailProvisionCommand(args2, deps);
188
188
  }),
189
189
  createEnvCommand(["agent", "email", "bind"], "Bind an existing email address to an agent", async (args2, deps) => {
190
- const { runAgentEmailBindCommand } = await import("./agentEmailCommands-JGAZ26N2.js");
190
+ const { runAgentEmailBindCommand } = await import("./agentEmailCommands-X24B32EE.js");
191
191
  return runAgentEmailBindCommand(args2, deps);
192
192
  }),
193
193
  createEnvCommand(["agent", "email", "transfer"], "Transfer an email identity from one agent to another (cross-account)", async (args2, deps) => {
194
- const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-JGAZ26N2.js");
194
+ const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-X24B32EE.js");
195
195
  return runAgentEmailTransferCommand(args2, deps);
196
196
  }),
197
197
  createEnvCommand(
198
198
  ["agent", "email", "create-and-provision"],
199
199
  "Create an agent and provision its controlled inbox",
200
200
  async (args2, deps) => {
201
- const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-JGAZ26N2.js");
201
+ const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-X24B32EE.js");
202
202
  return runAgentEmailCreateAndProvisionCommand(args2, deps);
203
203
  }
204
204
  ),
@@ -207,15 +207,15 @@ function getAgentInternalCommandEntries() {
207
207
  return runAgentDeleteCommand(args2, deps);
208
208
  }),
209
209
  createEnvCommand(["agent", "bind-current"], "Bind an agent to this machine", async (args2, deps) => {
210
- const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-EBCDKO4T.js");
210
+ const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-AHOFELNN.js");
211
211
  return runAgentBindCurrentCommand(args2, deps);
212
212
  }),
213
213
  createEnvCommand(["agent", "smoke-current"], "Smoke test a bound agent through this machine", async (args2, deps) => {
214
- const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-EBCDKO4T.js");
214
+ const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-AHOFELNN.js");
215
215
  return runAgentSmokeCurrentCommand(args2, deps);
216
216
  }),
217
217
  createEnvCommand(["agent", "runtime-doctor"], "Diagnose current machine runtime compatibility", async (args2, deps) => {
218
- const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-EBCDKO4T.js");
218
+ const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-AHOFELNN.js");
219
219
  return runAgentRuntimeDoctorCommand(args2, deps);
220
220
  }),
221
221
  createAgentRunCommand(["agent", "chat"], "Chat with an agent")
@@ -370,15 +370,15 @@ function getSystemInternalCommandEntries(renderHelpText2) {
370
370
  return runWhoamiCommand({ args: args2, env: ctx.env });
371
371
  }),
372
372
  createEntrypointEnvCommand(["connect"], "Send machine heartbeats or hold a connector websocket", async (args2, deps) => {
373
- const { runMachineConnectCommand } = await import("./machineCommands-FE5HOJWR.js");
373
+ const { runMachineConnectCommand } = await import("./machineCommands-GD46ZUZC.js");
374
374
  return runMachineConnectCommand(args2, deps);
375
375
  }),
376
376
  createDaemonShortcutCommand(["daemon"], "Run the connector daemon shortcut", async (args2, deps) => {
377
- const { runMachineConnectCommand } = await import("./machineCommands-FE5HOJWR.js");
377
+ const { runMachineConnectCommand } = await import("./machineCommands-GD46ZUZC.js");
378
378
  return runMachineConnectCommand(args2, deps);
379
379
  }),
380
380
  createEnvCommand(["machine", "status"], "List machines registered to the current profile", async (args2, deps) => {
381
- const { runMachineStatusCommand } = await import("./machineCommands-FE5HOJWR.js");
381
+ const { runMachineStatusCommand } = await import("./machineCommands-GD46ZUZC.js");
382
382
  return runMachineStatusCommand(args2, deps);
383
383
  }),
384
384
  createEnvCommand(["doctor", "runtime"], "Diagnose local-first agent runtime selection", async (args2, deps) => {
@@ -752,7 +752,7 @@ async function runScript(script, forwardedArgs, env) {
752
752
  return proc.exited;
753
753
  }
754
754
  async function launchTuiWorkspace(args2) {
755
- const { startTuiWorkspace } = await import("./readlineWorkspace-GK33VXX2.js");
755
+ const { startTuiWorkspace } = await import("./readlineWorkspace-IKXTXTYB.js");
756
756
  const { createTuiSummaryLlmCaller } = await import("./tuiSummaryLlmCaller-TXLF4MEI.js");
757
757
  return startTuiWorkspace({
758
758
  ...args2,
@@ -2,16 +2,16 @@ import {
2
2
  buildMachinePermissionPromptBlock,
3
3
  handleConnectorRunMessage,
4
4
  resolveMachineRunPermissionPolicy
5
- } from "./chunk-67Z375LK.js";
5
+ } from "./chunk-HUHOMATY.js";
6
6
  import {
7
7
  isConnectorWebSocketAuthError,
8
8
  isConnectorWebSocketRetryableError,
9
9
  resolveConnectorWebSocketTarget
10
- } from "./chunk-AVMKZHBC.js";
10
+ } from "./chunk-L53FGHA4.js";
11
11
  import {
12
12
  detectMachineInfo
13
13
  } from "./chunk-6HYVJV7B.js";
14
- import "./chunk-5LDYVJXY.js";
14
+ import "./chunk-VDS3NXE5.js";
15
15
  import "./chunk-TOILAPLH.js";
16
16
  import "./chunk-CMKUBIGW.js";
17
17
  import "./chunk-JBTJAPUF.js";
@@ -19,10 +19,12 @@ import "./chunk-SCBYSC74.js";
19
19
  import "./chunk-VHBWHNVT.js";
20
20
  import "./chunk-WZF7M6GX.js";
21
21
  import "./chunk-ATNTHIZI.js";
22
- import "./chunk-5EUAXXSV.js";
22
+ import "./chunk-IB65MC33.js";
23
23
  import "./chunk-4GBNEA5B.js";
24
- import "./chunk-Y7QCVJ73.js";
25
- import "./chunk-GAKEBQD6.js";
24
+ import "./chunk-QXZ4YDXW.js";
25
+ import {
26
+ CORE_DRAIN_REASON
27
+ } from "./chunk-D6OQHXVG.js";
26
28
  import "./chunk-I2HCZWJU.js";
27
29
  import "./chunk-KQHGZWSV.js";
28
30
  import "./chunk-IVAOVLM7.js";
@@ -30,16 +32,16 @@ import "./chunk-3LY4F7SV.js";
30
32
  import "./chunk-VP4WJWKW.js";
31
33
  import "./chunk-63W5N6P3.js";
32
34
  import "./chunk-VF4K2QE6.js";
33
- import "./chunk-OOOKLEJ7.js";
34
- import "./chunk-EEUWELOX.js";
35
+ import "./chunk-3WSPFJ7B.js";
36
+ import "./chunk-GK7YFA5J.js";
35
37
  import "./chunk-6WWHKODG.js";
36
38
  import "./chunk-OWOHNGCN.js";
37
- import "./chunk-DW75SYWV.js";
39
+ import "./chunk-DXLC3MIQ.js";
38
40
  import "./chunk-V2J635L5.js";
39
41
  import "./chunk-MRC4Q34M.js";
40
42
  import "./chunk-MTU75CZ2.js";
41
43
  import "./chunk-CWMSB67P.js";
42
- import "./chunk-KRMH46UV.js";
44
+ import "./chunk-EUELM55L.js";
43
45
  import "./chunk-XDXO65DS.js";
44
46
  import "./chunk-Z4NR32XR.js";
45
47
  import "./chunk-M76ECQRD.js";
@@ -478,7 +480,7 @@ async function runMachineWsSession(options) {
478
480
  return { exitCode: 2 };
479
481
  }
480
482
  if (isConnectorWebSocketRetryableError(error)) {
481
- const description = error.reason === "core_draining" ? "core draining" : error.reason;
483
+ const description = error.reason === CORE_DRAIN_REASON ? "core draining" : error.reason;
482
484
  options.output.write(
483
485
  `[nolo] Connector websocket unavailable: ${description} (${error.message}).
484
486
  `
@@ -753,7 +755,7 @@ ${text}`);
753
755
  }
754
756
  if (attempt >= maxAttempts) return exitCode;
755
757
  const retryDelayMs = sessionResult.retryAfterMs ?? reconnectDelayMs;
756
- const reconnectContext = sessionResult.reconnectReason === "core_draining" ? " during core draining" : "";
758
+ const reconnectContext = sessionResult.reconnectReason === CORE_DRAIN_REASON ? " during core draining" : "";
757
759
  output.write(
758
760
  `[nolo] Connector websocket disconnected${reconnectContext}. Reconnecting in ${retryDelayMs}ms.
759
761
  `
@@ -11,8 +11,8 @@ import {
11
11
  runtimeWorkspacePermissionPolicy,
12
12
  scopePermissionPolicyToRuntimeWorkspace,
13
13
  summarizeAgentConfigForLogs
14
- } from "./chunk-67Z375LK.js";
15
- import "./chunk-5LDYVJXY.js";
14
+ } from "./chunk-HUHOMATY.js";
15
+ import "./chunk-VDS3NXE5.js";
16
16
  import "./chunk-TOILAPLH.js";
17
17
  import "./chunk-CMKUBIGW.js";
18
18
  import "./chunk-JBTJAPUF.js";
@@ -20,10 +20,10 @@ import "./chunk-SCBYSC74.js";
20
20
  import "./chunk-VHBWHNVT.js";
21
21
  import "./chunk-WZF7M6GX.js";
22
22
  import "./chunk-ATNTHIZI.js";
23
- import "./chunk-5EUAXXSV.js";
23
+ import "./chunk-IB65MC33.js";
24
24
  import "./chunk-4GBNEA5B.js";
25
- import "./chunk-Y7QCVJ73.js";
26
- import "./chunk-GAKEBQD6.js";
25
+ import "./chunk-QXZ4YDXW.js";
26
+ import "./chunk-D6OQHXVG.js";
27
27
  import "./chunk-I2HCZWJU.js";
28
28
  import "./chunk-KQHGZWSV.js";
29
29
  import "./chunk-IVAOVLM7.js";
@@ -31,16 +31,16 @@ import "./chunk-3LY4F7SV.js";
31
31
  import "./chunk-VP4WJWKW.js";
32
32
  import "./chunk-63W5N6P3.js";
33
33
  import "./chunk-VF4K2QE6.js";
34
- import "./chunk-OOOKLEJ7.js";
35
- import "./chunk-EEUWELOX.js";
34
+ import "./chunk-3WSPFJ7B.js";
35
+ import "./chunk-GK7YFA5J.js";
36
36
  import "./chunk-6WWHKODG.js";
37
37
  import "./chunk-OWOHNGCN.js";
38
- import "./chunk-DW75SYWV.js";
38
+ import "./chunk-DXLC3MIQ.js";
39
39
  import "./chunk-V2J635L5.js";
40
40
  import "./chunk-MRC4Q34M.js";
41
41
  import "./chunk-MTU75CZ2.js";
42
42
  import "./chunk-CWMSB67P.js";
43
- import "./chunk-KRMH46UV.js";
43
+ import "./chunk-EUELM55L.js";
44
44
  import "./chunk-XDXO65DS.js";
45
45
  import "./chunk-Z4NR32XR.js";
46
46
  import "./chunk-M76ECQRD.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nolo-cli",
3
- "version": "0.8.0-alpha.25",
3
+ "version": "0.8.0-alpha.26",
4
4
  "type": "module",
5
5
  "description": "Agent-first terminal workspace for Nolo",
6
6
  "bin": {
@@ -61,7 +61,7 @@ import {
61
61
  visibleWidth,
62
62
  wrapTextToLines,
63
63
  wrapTranscriptLine
64
- } from "./chunk-ALEDPZVP.js";
64
+ } from "./chunk-TUIH56DJ.js";
65
65
  import "./chunk-6HYVJV7B.js";
66
66
  import {
67
67
  listFavoriteAgentIdsAcrossServers,
@@ -76,7 +76,7 @@ import {
76
76
  import "./chunk-DZ3XJVET.js";
77
77
  import {
78
78
  createCliLocalRuntimeAdapter
79
- } from "./chunk-5LDYVJXY.js";
79
+ } from "./chunk-VDS3NXE5.js";
80
80
  import "./chunk-TOILAPLH.js";
81
81
  import "./chunk-CMKUBIGW.js";
82
82
  import "./chunk-JBTJAPUF.js";
@@ -97,12 +97,12 @@ import "./chunk-ATNTHIZI.js";
97
97
  import "./chunk-JEXVIMYZ.js";
98
98
  import {
99
99
  prepareTools
100
- } from "./chunk-5EUAXXSV.js";
100
+ } from "./chunk-IB65MC33.js";
101
101
  import "./chunk-4GBNEA5B.js";
102
102
  import {
103
103
  expandEnabledPacks
104
- } from "./chunk-Y7QCVJ73.js";
105
- import "./chunk-GAKEBQD6.js";
104
+ } from "./chunk-QXZ4YDXW.js";
105
+ import "./chunk-D6OQHXVG.js";
106
106
  import "./chunk-I2HCZWJU.js";
107
107
  import "./chunk-KQHGZWSV.js";
108
108
  import "./chunk-IVAOVLM7.js";
@@ -110,20 +110,20 @@ import "./chunk-3LY4F7SV.js";
110
110
  import "./chunk-VP4WJWKW.js";
111
111
  import "./chunk-63W5N6P3.js";
112
112
  import "./chunk-VF4K2QE6.js";
113
- import "./chunk-OOOKLEJ7.js";
114
- import "./chunk-EEUWELOX.js";
113
+ import "./chunk-3WSPFJ7B.js";
114
+ import "./chunk-GK7YFA5J.js";
115
115
  import "./chunk-6WWHKODG.js";
116
116
  import "./chunk-OWOHNGCN.js";
117
117
  import {
118
118
  extractReferenceKeysFromMessage
119
- } from "./chunk-DW75SYWV.js";
119
+ } from "./chunk-DXLC3MIQ.js";
120
120
  import {
121
121
  buildBuiltinSummaryContent
122
122
  } from "./chunk-V2J635L5.js";
123
123
  import "./chunk-MRC4Q34M.js";
124
124
  import "./chunk-MTU75CZ2.js";
125
125
  import "./chunk-CWMSB67P.js";
126
- import "./chunk-KRMH46UV.js";
126
+ import "./chunk-EUELM55L.js";
127
127
  import "./chunk-XDXO65DS.js";
128
128
  import "./chunk-Z4NR32XR.js";
129
129
  import "./chunk-M76ECQRD.js";