nolo-cli 0.35.0-alpha.1 → 0.36.0-alpha.2

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 (57) hide show
  1. package/{_executeModel-RV52PPE3.js → _executeModel-2S6HNTBF.js} +11 -11
  2. package/{agentDeleteCommand-FBBW3IIM.js → agentDeleteCommand-EJ6RRIGV.js} +2 -2
  3. package/{agentEmailCommands-7F4PCABZ.js → agentEmailCommands-APU6G6PK.js} +11 -11
  4. package/{agentListCommands-ZQXPSB6U.js → agentListCommands-HSWVSDLI.js} +2 -2
  5. package/{agentMachineCommands-E3NB67GM.js → agentMachineCommands-G7JQUUDC.js} +3 -3
  6. package/{agentRecordCommands-7PXWHCQM.js → agentRecordCommands-PUFDQBQ5.js} +11 -11
  7. package/{agentRunCommand-Z4654ONK.js → agentRunCommand-AS4N52UF.js} +11 -11
  8. package/{agentRuntimeLocal-OBKWKEKW.js → agentRuntimeLocal-GTNYV7LH.js} +2 -2
  9. package/{agentSlice-B2IMSPH5.js → agentSlice-LAILHBMM.js} +1 -1
  10. package/{appDeleteCommands-72BE7DSA.js → appDeleteCommands-YDXSR75I.js} +2 -2
  11. package/{appDeployCommands-XJBLKCYO.js → appDeployCommands-4X5SN3EF.js} +2 -2
  12. package/{appDeployStatusCommands-EC4HWCBQ.js → appDeployStatusCommands-TK3JKBHH.js} +2 -2
  13. package/{appGetCommands-62BAATPL.js → appGetCommands-ZKQHHJYB.js} +2 -2
  14. package/{appListCommands-5EZCONM7.js → appListCommands-JRDOEEGV.js} +2 -2
  15. package/{chatQueueReduxAdapter-SSF3DNBX.js → chatQueueReduxAdapter-DQWFZYNL.js} +2 -2
  16. package/{chunk-ZOEE4OVX.js → chunk-2BKJBSQ4.js} +9 -5
  17. package/{chunk-Z7D7MBWR.js → chunk-3SNGK3FB.js} +1 -1
  18. package/{chunk-7KY6U7MW.js → chunk-ARFXKWJH.js} +8 -8
  19. package/{chunk-55C3UZSC.js → chunk-CVXDBLYH.js} +3 -3
  20. package/{chunk-OCJNJUR4.js → chunk-D72M3G32.js} +2 -2
  21. package/{chunk-KPJYUEPE.js → chunk-EJAL5LSG.js} +1 -1
  22. package/{chunk-RUVWTAK7.js → chunk-FXZBSLFK.js} +4 -4
  23. package/{chunk-LFOILL6R.js → chunk-HRSIJO5A.js} +1 -1
  24. package/{chunk-5Q4DXT47.js → chunk-JK7UM3LT.js} +9 -9
  25. package/{chunk-INXNBCEY.js → chunk-KR74XLMV.js} +2 -2
  26. package/{chunk-EFN2AFWF.js → chunk-LBZHTQTD.js} +164 -10
  27. package/{chunk-P62APAXL.js → chunk-NT3QRCVS.js} +2 -2
  28. package/{chunk-OGPQ3AMC.js → chunk-RPPRK6EZ.js} +6 -6
  29. package/{chunk-M3JQWYBC.js → chunk-T2BZICLK.js} +3 -1
  30. package/chunk-T5HJEUQN.js +956 -0
  31. package/{chunk-SDAPQUSO.js → chunk-YNAGAUJT.js} +6 -6
  32. package/{chunk-ZZDWMZFU.js → chunk-ZQ3IDY66.js} +3 -3
  33. package/{clipboardy-PRUHGPGC.js → clipboardy-BX4NMYHE.js} +7 -5
  34. package/{createAgentAutomationAction-IDIY6K45.js → createAgentAutomationAction-767ZITQJ.js} +3 -3
  35. package/{createDialogAction-5LB4YBPS.js → createDialogAction-H75NDXYH.js} +4 -4
  36. package/{createPageAction-TJWVDPZD.js → createPageAction-KYJYZPLC.js} +3 -3
  37. package/{dialogCommands-44NGBPJJ.js → dialogCommands-VYH2BY5H.js} +2 -2
  38. package/{dialogSlice-62JC4ZMX.js → dialogSlice-YJV3AVFM.js} +2 -2
  39. package/{docCreateCommands-IOGYJ7F7.js → docCreateCommands-JS7A3OHQ.js} +2 -2
  40. package/{docDeleteCommands-RO4BZWFP.js → docDeleteCommands-HG5HNKZR.js} +2 -2
  41. package/{docReadCommands-F2KNOJFW.js → docReadCommands-BH4WN6HH.js} +2 -2
  42. package/{docStore-ZRNKZZXU.js → docStore-JOODSWDW.js} +4 -4
  43. package/{docUpdateCommands-2VG4AYOC.js → docUpdateCommands-TAXC7LHJ.js} +2 -2
  44. package/{handleSendMessageAction-YB64A32O.js → handleSendMessageAction-DGL6H4E4.js} +2 -2
  45. package/index.js +59 -46
  46. package/{machineCommands-6WPICTON.js → machineCommands-DSFTSYUL.js} +11 -11
  47. package/{machineWsRunDispatch-4OGEZTYG.js → machineWsRunDispatch-ZOAJQHTU.js} +11 -11
  48. package/package.json +1 -1
  49. package/{readlineWorkspace-BZAZ5YXM.js → readlineWorkspace-5G3UFHYG.js} +53 -30
  50. package/{runAgentClientLoop-SOZS3YTQ.js → runAgentClientLoop-B3TTKXIX.js} +9 -9
  51. package/{spaceCommands-WEASK3IV.js → spaceCommands-Y33JLAKF.js} +2 -2
  52. package/{spaceSlice-2QNUKRN6.js → spaceSlice-ZKUZSVYD.js} +3 -3
  53. package/{streamAgentChatTurn-BYI7UXAA.js → streamAgentChatTurn-PLTB7RMV.js} +10 -10
  54. package/{tools-E6FEUNZY.js → tools-KQXDW66A.js} +6 -6
  55. package/{updateCommands-MNDUIKN7.js → updateCommands-IYKLF3JX.js} +3 -1
  56. package/{updateDialogTitleAction-2A3BEXSP.js → updateDialogTitleAction-OTYEQJAK.js} +3 -3
  57. package/chunk-VFVCYIRQ.js +0 -407
@@ -2,13 +2,13 @@ import {
2
2
  buildMachinePermissionPromptBlock,
3
3
  handleConnectorRunMessage,
4
4
  resolveMachineRunPermissionPolicy
5
- } from "./chunk-ZZDWMZFU.js";
5
+ } from "./chunk-ZQ3IDY66.js";
6
6
  import {
7
7
  isConnectorWebSocketAuthError,
8
8
  isConnectorWebSocketRetryableError,
9
9
  resolveConnectorWebSocketTarget
10
10
  } from "./chunk-MQRZ5QUH.js";
11
- import "./chunk-ZOEE4OVX.js";
11
+ import "./chunk-2BKJBSQ4.js";
12
12
  import "./chunk-IZNJDUJ4.js";
13
13
  import "./chunk-6XG52ZQ6.js";
14
14
  import "./chunk-J5NMOM35.js";
@@ -21,10 +21,10 @@ import {
21
21
  import "./chunk-JBTJAPUF.js";
22
22
  import "./chunk-JI2TIPLP.js";
23
23
  import "./chunk-ATNTHIZI.js";
24
- import "./chunk-KPJYUEPE.js";
24
+ import "./chunk-EJAL5LSG.js";
25
25
  import "./chunk-HS7MLR74.js";
26
26
  import "./chunk-PV734VZX.js";
27
- import "./chunk-5Q4DXT47.js";
27
+ import "./chunk-JK7UM3LT.js";
28
28
  import {
29
29
  CORE_DRAIN_REASON
30
30
  } from "./chunk-RQSOAMPJ.js";
@@ -32,21 +32,21 @@ import "./chunk-GUYMR3JL.js";
32
32
  import "./chunk-KQHGZWSV.js";
33
33
  import "./chunk-IFS5CUEH.js";
34
34
  import "./chunk-KXKQO4Q6.js";
35
- import "./chunk-INXNBCEY.js";
35
+ import "./chunk-KR74XLMV.js";
36
36
  import "./chunk-BANYWEYY.js";
37
37
  import "./chunk-U6QQLXWI.js";
38
38
  import "./chunk-INZZJSQF.js";
39
39
  import "./chunk-MEYIRKDN.js";
40
40
  import "./chunk-63W5N6P3.js";
41
41
  import "./chunk-VF4K2QE6.js";
42
- import "./chunk-P62APAXL.js";
43
- import "./chunk-OCJNJUR4.js";
44
- import "./chunk-7KY6U7MW.js";
42
+ import "./chunk-NT3QRCVS.js";
43
+ import "./chunk-D72M3G32.js";
44
+ import "./chunk-ARFXKWJH.js";
45
45
  import "./chunk-RCFIB45Q.js";
46
46
  import "./chunk-JIADXJYU.js";
47
47
  import "./chunk-YYLHWIW6.js";
48
48
  import "./chunk-AGGIDPCZ.js";
49
- import "./chunk-55C3UZSC.js";
49
+ import "./chunk-CVXDBLYH.js";
50
50
  import "./chunk-MGIHZ5CJ.js";
51
51
  import "./chunk-5RGU3J7P.js";
52
52
  import "./chunk-M76ECQRD.js";
@@ -57,14 +57,14 @@ import "./chunk-2KO5QQFV.js";
57
57
  import "./chunk-IIOHYLIG.js";
58
58
  import "./chunk-AETZ7AD6.js";
59
59
  import "./chunk-KHCLMKZZ.js";
60
- import "./chunk-EFN2AFWF.js";
60
+ import "./chunk-LBZHTQTD.js";
61
61
  import "./chunk-OSCSEJJR.js";
62
62
  import "./chunk-ZNFJWEN4.js";
63
63
  import "./chunk-64KIQZA2.js";
64
64
  import "./chunk-T27IEBNQ.js";
65
65
  import "./chunk-P66M7LSQ.js";
66
66
  import "./chunk-N7J63Q6C.js";
67
- import "./chunk-M3JQWYBC.js";
67
+ import "./chunk-T2BZICLK.js";
68
68
  import "./chunk-BMB563Y6.js";
69
69
  import "./chunk-GKHV4UH5.js";
70
70
  import "./chunk-IZCHPD7T.js";
@@ -11,8 +11,8 @@ import {
11
11
  runtimeWorkspacePermissionPolicy,
12
12
  scopePermissionPolicyToRuntimeWorkspace,
13
13
  summarizeAgentConfigForLogs
14
- } from "./chunk-ZZDWMZFU.js";
15
- import "./chunk-ZOEE4OVX.js";
14
+ } from "./chunk-ZQ3IDY66.js";
15
+ import "./chunk-2BKJBSQ4.js";
16
16
  import "./chunk-IZNJDUJ4.js";
17
17
  import "./chunk-6XG52ZQ6.js";
18
18
  import "./chunk-J5NMOM35.js";
@@ -22,30 +22,30 @@ import "./chunk-E2OQ5N2F.js";
22
22
  import "./chunk-JBTJAPUF.js";
23
23
  import "./chunk-JI2TIPLP.js";
24
24
  import "./chunk-ATNTHIZI.js";
25
- import "./chunk-KPJYUEPE.js";
25
+ import "./chunk-EJAL5LSG.js";
26
26
  import "./chunk-HS7MLR74.js";
27
27
  import "./chunk-PV734VZX.js";
28
- import "./chunk-5Q4DXT47.js";
28
+ import "./chunk-JK7UM3LT.js";
29
29
  import "./chunk-RQSOAMPJ.js";
30
30
  import "./chunk-GUYMR3JL.js";
31
31
  import "./chunk-KQHGZWSV.js";
32
32
  import "./chunk-IFS5CUEH.js";
33
33
  import "./chunk-KXKQO4Q6.js";
34
- import "./chunk-INXNBCEY.js";
34
+ import "./chunk-KR74XLMV.js";
35
35
  import "./chunk-BANYWEYY.js";
36
36
  import "./chunk-U6QQLXWI.js";
37
37
  import "./chunk-INZZJSQF.js";
38
38
  import "./chunk-MEYIRKDN.js";
39
39
  import "./chunk-63W5N6P3.js";
40
40
  import "./chunk-VF4K2QE6.js";
41
- import "./chunk-P62APAXL.js";
42
- import "./chunk-OCJNJUR4.js";
43
- import "./chunk-7KY6U7MW.js";
41
+ import "./chunk-NT3QRCVS.js";
42
+ import "./chunk-D72M3G32.js";
43
+ import "./chunk-ARFXKWJH.js";
44
44
  import "./chunk-RCFIB45Q.js";
45
45
  import "./chunk-JIADXJYU.js";
46
46
  import "./chunk-YYLHWIW6.js";
47
47
  import "./chunk-AGGIDPCZ.js";
48
- import "./chunk-55C3UZSC.js";
48
+ import "./chunk-CVXDBLYH.js";
49
49
  import "./chunk-MGIHZ5CJ.js";
50
50
  import "./chunk-5RGU3J7P.js";
51
51
  import "./chunk-M76ECQRD.js";
@@ -56,14 +56,14 @@ import "./chunk-2KO5QQFV.js";
56
56
  import "./chunk-IIOHYLIG.js";
57
57
  import "./chunk-AETZ7AD6.js";
58
58
  import "./chunk-KHCLMKZZ.js";
59
- import "./chunk-EFN2AFWF.js";
59
+ import "./chunk-LBZHTQTD.js";
60
60
  import "./chunk-OSCSEJJR.js";
61
61
  import "./chunk-ZNFJWEN4.js";
62
62
  import "./chunk-64KIQZA2.js";
63
63
  import "./chunk-T27IEBNQ.js";
64
64
  import "./chunk-P66M7LSQ.js";
65
65
  import "./chunk-N7J63Q6C.js";
66
- import "./chunk-M3JQWYBC.js";
66
+ import "./chunk-T2BZICLK.js";
67
67
  import "./chunk-BMB563Y6.js";
68
68
  import "./chunk-GKHV4UH5.js";
69
69
  import "./chunk-IZCHPD7T.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nolo-cli",
3
- "version": "0.35.0-alpha.1",
3
+ "version": "0.36.0-alpha.2",
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-OGPQ3AMC.js";
79
+ } from "./chunk-RPPRK6EZ.js";
80
80
  import "./chunk-IMHO5LC6.js";
81
81
  import "./chunk-4AWH4LQA.js";
82
82
  import {
@@ -86,7 +86,7 @@ import {
86
86
  readTimestamp,
87
87
  setCliLocale,
88
88
  t
89
- } from "./chunk-ZOEE4OVX.js";
89
+ } from "./chunk-2BKJBSQ4.js";
90
90
  import "./chunk-IZNJDUJ4.js";
91
91
  import "./chunk-6XG52ZQ6.js";
92
92
  import {
@@ -116,10 +116,10 @@ import "./chunk-ATNTHIZI.js";
116
116
  import "./chunk-JEXVIMYZ.js";
117
117
  import {
118
118
  prepareTools
119
- } from "./chunk-KPJYUEPE.js";
119
+ } from "./chunk-EJAL5LSG.js";
120
120
  import "./chunk-HS7MLR74.js";
121
121
  import "./chunk-PV734VZX.js";
122
- import "./chunk-5Q4DXT47.js";
122
+ import "./chunk-JK7UM3LT.js";
123
123
  import "./chunk-RQSOAMPJ.js";
124
124
  import "./chunk-GUYMR3JL.js";
125
125
  import "./chunk-KQHGZWSV.js";
@@ -135,7 +135,7 @@ import {
135
135
  runShowsLogTail,
136
136
  shortRunId
137
137
  } from "./chunk-KXKQO4Q6.js";
138
- import "./chunk-INXNBCEY.js";
138
+ import "./chunk-KR74XLMV.js";
139
139
  import "./chunk-BANYWEYY.js";
140
140
  import "./chunk-U6QQLXWI.js";
141
141
  import "./chunk-INZZJSQF.js";
@@ -147,16 +147,16 @@ import {
147
147
  createTurnRequest,
148
148
  normalizeRunCompletionShape
149
149
  } from "./chunk-YPREESF4.js";
150
- import "./chunk-P62APAXL.js";
151
- import "./chunk-OCJNJUR4.js";
150
+ import "./chunk-NT3QRCVS.js";
151
+ import "./chunk-D72M3G32.js";
152
152
  import {
153
153
  extractReferenceKeysFromMessage
154
- } from "./chunk-7KY6U7MW.js";
154
+ } from "./chunk-ARFXKWJH.js";
155
155
  import "./chunk-RCFIB45Q.js";
156
156
  import "./chunk-JIADXJYU.js";
157
157
  import "./chunk-YYLHWIW6.js";
158
158
  import "./chunk-AGGIDPCZ.js";
159
- import "./chunk-55C3UZSC.js";
159
+ import "./chunk-CVXDBLYH.js";
160
160
  import "./chunk-MGIHZ5CJ.js";
161
161
  import "./chunk-5RGU3J7P.js";
162
162
  import "./chunk-M76ECQRD.js";
@@ -179,7 +179,7 @@ import {
179
179
  buildLocalWorkspaceToolset,
180
180
  getProcessRegistry,
181
181
  readCommandActionGatePayload
182
- } from "./chunk-EFN2AFWF.js";
182
+ } from "./chunk-LBZHTQTD.js";
183
183
  import "./chunk-OSCSEJJR.js";
184
184
  import "./chunk-ZNFJWEN4.js";
185
185
  import "./chunk-64KIQZA2.js";
@@ -191,7 +191,7 @@ import {
191
191
  buildIdentityBlock,
192
192
  buildRuntimeGuidanceBlocks,
193
193
  resolveToolGuidedSections
194
- } from "./chunk-M3JQWYBC.js";
194
+ } from "./chunk-T2BZICLK.js";
195
195
  import "./chunk-BMB563Y6.js";
196
196
  import {
197
197
  resolvePlatformAuthToken
@@ -243,8 +243,8 @@ import {
243
243
  import "./chunk-WRN7L5CS.js";
244
244
  import {
245
245
  checkForCliUpdate,
246
- runSelfUpdate
247
- } from "./chunk-VFVCYIRQ.js";
246
+ runSelfUpdateDetailed
247
+ } from "./chunk-T5HJEUQN.js";
248
248
  import {
249
249
  getAgentSelectionAuditPath,
250
250
  getDefaultProfileConfigPath,
@@ -1515,13 +1515,18 @@ function renderFooter(multiSelect, colorEnabled) {
1515
1515
  function otherRowPrefix(index) {
1516
1516
  return ` [${index + 1}] ${t("askChoiceOtherLabel")}: `;
1517
1517
  }
1518
- function renderAskChoiceFrame(state) {
1518
+ function renderAskChoiceFrame(state, options) {
1519
1519
  const colorEnabled = resolveCliColorEnabled();
1520
1520
  const q = state.questions[state.activeIndex];
1521
1521
  const qs = state.questionStates[state.activeIndex];
1522
1522
  const lines = [];
1523
1523
  let otherCursor = null;
1524
1524
  lines.push(renderDialogTitle(t("askChoiceTitle")));
1525
+ if (options?.bottomAnchored) {
1526
+ lines.push(
1527
+ colorEnabled ? themeText(` ${t("askChoiceScrollHint")}`, "muted", colorEnabled) : ` ${t("askChoiceScrollHint")}`
1528
+ );
1529
+ }
1525
1530
  lines.push("");
1526
1531
  if (state.questions.length > 1) {
1527
1532
  lines.push(renderTabBar(state.questions, state.activeIndex, colorEnabled));
@@ -1620,19 +1625,25 @@ async function runAskChoiceDialog(args) {
1620
1625
  unanchoredCursorLift = 0;
1621
1626
  };
1622
1627
  const paint = () => {
1623
- const frame = renderAskChoiceFrame(state);
1628
+ const frame = renderAskChoiceFrame(state, { bottomAnchored });
1624
1629
  const lines = frame.text.split("\n");
1625
1630
  const lineCount = lines.length;
1626
1631
  const canPosition = outputIsTty(output) && typeof output.write === "function";
1627
1632
  if (bottomAnchored && canPosition) {
1628
1633
  const anchorRow = resolveBottomRow();
1634
+ const ttyRows = typeof output === "object" && output !== null && "rows" in output && typeof output.rows === "number" ? output.rows : 24;
1629
1635
  if (!scrolledHeadroom) {
1630
- const ttyRows = typeof output === "object" && output !== null && "rows" in output && typeof output.rows === "number" ? output.rows : 24;
1631
1636
  const scrollN = Math.min(lineCount, Math.max(0, ttyRows - 1));
1632
1637
  if (scrollN > 0) {
1633
1638
  output.write(`\x1B[${scrollN}S`);
1634
1639
  }
1635
1640
  scrolledHeadroom = true;
1641
+ } else if (lineCount > renderedLineCount) {
1642
+ const delta = lineCount - renderedLineCount;
1643
+ const scrollN = Math.min(delta, Math.max(0, ttyRows - 1));
1644
+ if (scrollN > 0) {
1645
+ output.write(`\x1B[${scrollN}S`);
1646
+ }
1636
1647
  }
1637
1648
  clearAnchoredLines(
1638
1649
  output,
@@ -1660,6 +1671,11 @@ async function runAskChoiceDialog(args) {
1660
1671
  for (let i = 0; i < renderedLineCount; i++) {
1661
1672
  output.write("\x1B[1A\x1B[2K");
1662
1673
  }
1674
+ if (renderedLineCount > 0 && lineCount > renderedLineCount) {
1675
+ const delta = lineCount - renderedLineCount;
1676
+ output.write("\n".repeat(delta));
1677
+ output.write(`\x1B[${delta}A`);
1678
+ }
1663
1679
  output.write(`${frame.text}
1664
1680
  `);
1665
1681
  renderedLineCount = lineCount;
@@ -1713,12 +1729,12 @@ async function runAskChoiceDialog(args) {
1713
1729
  const qs = state.questionStates[state.activeIndex];
1714
1730
  const q = state.questions[state.activeIndex];
1715
1731
  const isOtherRow = qs.cursorIndex >= q.choices.length;
1716
- if (isCancel(sequence)) {
1717
- action = { type: "CANCEL" };
1732
+ if (sequence === CSI_SHIFT_TAB) {
1733
+ action = { type: "PREV_TAB" };
1718
1734
  } else if (sequence === CSI_TAB) {
1719
1735
  action = { type: "NEXT_TAB" };
1720
- } else if (sequence === CSI_SHIFT_TAB) {
1721
- action = { type: "PREV_TAB" };
1736
+ } else if (isCancel(sequence)) {
1737
+ action = { type: "CANCEL" };
1722
1738
  } else if (isArrowUp(sequence)) {
1723
1739
  action = { type: "MOVE_CURSOR", delta: -1 };
1724
1740
  } else if (isArrowDown(sequence)) {
@@ -4667,7 +4683,7 @@ function renderStatusLine(state) {
4667
4683
  colorEnabled
4668
4684
  );
4669
4685
  parts.push(tokenSegment);
4670
- const runningCount = getProcessRegistry().list().filter((p) => p.status === "running").length;
4686
+ const runningCount = getProcessRegistry().listBackground().filter((p) => p.status === "running").length;
4671
4687
  if (runningCount > 0) {
4672
4688
  parts.push(themeText(`\u2699 ${runningCount} running`, "info", colorEnabled));
4673
4689
  }
@@ -5387,7 +5403,7 @@ ${t("autoUsage")}`
5387
5403
  case "/jobs":
5388
5404
  case "/procs": {
5389
5405
  const registry = getProcessRegistry();
5390
- const all = registry.list();
5406
+ const all = registry.listBackground();
5391
5407
  const running = all.filter((p) => p.status === "running");
5392
5408
  const stopped = all.filter((p) => p.status !== "running");
5393
5409
  const lines = [];
@@ -5417,20 +5433,20 @@ ${t("autoUsage")}`
5417
5433
  return { nextState: state, output: t("stopUsage") };
5418
5434
  }
5419
5435
  if (argText === "all") {
5420
- const before = registry.list().filter((p) => p.status === "running").length;
5421
- registry.stopAll(void 0, { includePersist: true });
5436
+ const before = registry.listBackground().filter((p) => p.status === "running").length;
5437
+ registry.stopAll(void 0, { includePersist: true, backgroundOnly: true });
5422
5438
  return { nextState: state, output: t("stopAllDone", String(before)) };
5423
5439
  }
5424
5440
  if (/^\d+$/.test(argText)) {
5425
5441
  const pid = parseInt(argText, 10);
5426
5442
  const proc = registry.get(pid);
5427
- if (!proc || proc.status !== "running") {
5443
+ if (!proc || proc.status !== "running" || proc.transient) {
5428
5444
  return { nextState: state, output: t("stopNoPid", String(pid)) };
5429
5445
  }
5430
5446
  registry.kill(pid);
5431
5447
  return { nextState: state, output: t("stopPidDone", String(pid), proc.label) };
5432
5448
  }
5433
- const matches = registry.list().filter((p) => p.status === "running" && p.label === argText);
5449
+ const matches = registry.listBackground().filter((p) => p.status === "running" && p.label === argText);
5434
5450
  if (matches.length === 0) {
5435
5451
  return { nextState: state, output: t("stopNoLabel", argText) };
5436
5452
  }
@@ -7051,13 +7067,16 @@ async function runTuiWorkspace(options) {
7051
7067
  await options.clipboardWriter(text);
7052
7068
  } : (text) => writeClipboard(text, {
7053
7069
  systemWrite: async (t2) => {
7054
- const { default: clipboard } = await import("./clipboardy-PRUHGPGC.js");
7070
+ const { default: clipboard } = await import("./clipboardy-BX4NMYHE.js");
7055
7071
  await clipboard.write(t2);
7056
7072
  },
7057
7073
  output,
7058
7074
  sendOsc52: isInteractiveInput(input)
7059
7075
  });
7060
- const selfUpdater = options.selfUpdater ?? ((target) => runSelfUpdate({ output: target }));
7076
+ const selfUpdater = options.selfUpdater ?? ((target) => runSelfUpdateDetailed({
7077
+ output: target,
7078
+ env: options.env ?? process.env
7079
+ }));
7061
7080
  if (output.isTTY) {
7062
7081
  enterAltScreen(output);
7063
7082
  installAltScreenRestoreHandlers(output);
@@ -7685,8 +7704,12 @@ ${content}`);
7685
7704
  }
7686
7705
  if (result.action?.type === "self-update") {
7687
7706
  try {
7688
- const exitCode = await selfUpdater(output);
7689
- if (exitCode === 0) {
7707
+ const update = await selfUpdater(output);
7708
+ if (update.exitCode === 0 && update.disposition === "scheduled") {
7709
+ output.write("Update is ready. Nolo will now exit safely; installation starts after shutdown.\n");
7710
+ return true;
7711
+ }
7712
+ if (update.exitCode === 0) {
7690
7713
  output.write("Update finished. Restart nolo to use the new version.\n");
7691
7714
  } else {
7692
7715
  output.write("Update failed. Check the error above, then run /update again or use nolo update.\n");
@@ -1,40 +1,40 @@
1
1
  import {
2
2
  fetchAgentContexts
3
- } from "./chunk-LFOILL6R.js";
3
+ } from "./chunk-HRSIJO5A.js";
4
4
  import {
5
5
  generateRequestBody,
6
6
  mergeReferences,
7
7
  performFetchRequest,
8
8
  sanitizeOutboundBody
9
- } from "./chunk-RUVWTAK7.js";
9
+ } from "./chunk-FXZBSLFK.js";
10
10
  import "./chunk-HS7MLR74.js";
11
11
  import "./chunk-PV734VZX.js";
12
12
  import {
13
13
  findToolExecutor,
14
14
  getToolResultErrorData
15
- } from "./chunk-5Q4DXT47.js";
15
+ } from "./chunk-JK7UM3LT.js";
16
16
  import "./chunk-RQSOAMPJ.js";
17
17
  import "./chunk-GUYMR3JL.js";
18
18
  import "./chunk-KQHGZWSV.js";
19
19
  import "./chunk-IFS5CUEH.js";
20
20
  import "./chunk-KXKQO4Q6.js";
21
- import "./chunk-INXNBCEY.js";
21
+ import "./chunk-KR74XLMV.js";
22
22
  import "./chunk-BANYWEYY.js";
23
23
  import "./chunk-U6QQLXWI.js";
24
24
  import "./chunk-INZZJSQF.js";
25
25
  import "./chunk-MEYIRKDN.js";
26
26
  import "./chunk-63W5N6P3.js";
27
27
  import "./chunk-VF4K2QE6.js";
28
- import "./chunk-P62APAXL.js";
29
- import "./chunk-OCJNJUR4.js";
28
+ import "./chunk-NT3QRCVS.js";
29
+ import "./chunk-D72M3G32.js";
30
30
  import {
31
31
  updateTokensAction
32
- } from "./chunk-7KY6U7MW.js";
32
+ } from "./chunk-ARFXKWJH.js";
33
33
  import "./chunk-RCFIB45Q.js";
34
34
  import "./chunk-JIADXJYU.js";
35
35
  import "./chunk-YYLHWIW6.js";
36
36
  import "./chunk-AGGIDPCZ.js";
37
- import "./chunk-55C3UZSC.js";
37
+ import "./chunk-CVXDBLYH.js";
38
38
  import "./chunk-MGIHZ5CJ.js";
39
39
  import "./chunk-5RGU3J7P.js";
40
40
  import "./chunk-M76ECQRD.js";
@@ -43,7 +43,7 @@ import "./chunk-2KO5QQFV.js";
43
43
  import "./chunk-IIOHYLIG.js";
44
44
  import "./chunk-AETZ7AD6.js";
45
45
  import "./chunk-KHCLMKZZ.js";
46
- import "./chunk-M3JQWYBC.js";
46
+ import "./chunk-T2BZICLK.js";
47
47
  import "./chunk-BMB563Y6.js";
48
48
  import "./chunk-GKHV4UH5.js";
49
49
  import "./chunk-IZCHPD7T.js";
@@ -8,14 +8,14 @@ import {
8
8
  import "./chunk-J5NMOM35.js";
9
9
  import "./chunk-EKLRRZIN.js";
10
10
  import "./chunk-KQHGZWSV.js";
11
- import "./chunk-EFN2AFWF.js";
11
+ import "./chunk-LBZHTQTD.js";
12
12
  import "./chunk-OSCSEJJR.js";
13
13
  import "./chunk-ZNFJWEN4.js";
14
14
  import "./chunk-64KIQZA2.js";
15
15
  import "./chunk-T27IEBNQ.js";
16
16
  import "./chunk-P66M7LSQ.js";
17
17
  import "./chunk-N7J63Q6C.js";
18
- import "./chunk-M3JQWYBC.js";
18
+ import "./chunk-T2BZICLK.js";
19
19
  import "./chunk-BMB563Y6.js";
20
20
  import "./chunk-GKHV4UH5.js";
21
21
  import "./chunk-IZCHPD7T.js";
@@ -37,13 +37,13 @@ import {
37
37
  updateContentTitle,
38
38
  updateSpace,
39
39
  uploadAndAddFileToSpace
40
- } from "./chunk-OCJNJUR4.js";
41
- import "./chunk-7KY6U7MW.js";
40
+ } from "./chunk-D72M3G32.js";
41
+ import "./chunk-ARFXKWJH.js";
42
42
  import "./chunk-RCFIB45Q.js";
43
43
  import "./chunk-JIADXJYU.js";
44
44
  import "./chunk-YYLHWIW6.js";
45
45
  import "./chunk-AGGIDPCZ.js";
46
- import "./chunk-55C3UZSC.js";
46
+ import "./chunk-CVXDBLYH.js";
47
47
  import "./chunk-MGIHZ5CJ.js";
48
48
  import "./chunk-5RGU3J7P.js";
49
49
  import "./chunk-M76ECQRD.js";
@@ -16,11 +16,11 @@ import {
16
16
  readStreamChunk,
17
17
  sendOpenAICompletionsRequest,
18
18
  updateTotalUsage
19
- } from "./chunk-SDAPQUSO.js";
19
+ } from "./chunk-YNAGAUJT.js";
20
20
  import "./chunk-JEXVIMYZ.js";
21
21
  import {
22
22
  prepareTools
23
- } from "./chunk-KPJYUEPE.js";
23
+ } from "./chunk-EJAL5LSG.js";
24
24
  import {
25
25
  INVALID_TOOL_ARGS_REPLACEMENT,
26
26
  buildInvalidToolCallSelfHealResult,
@@ -38,7 +38,7 @@ import {
38
38
  sanitizeOutboundResponsesInput,
39
39
  selectResponsesConversationState,
40
40
  updateResponsesConversationState
41
- } from "./chunk-RUVWTAK7.js";
41
+ } from "./chunk-FXZBSLFK.js";
42
42
  import "./chunk-HS7MLR74.js";
43
43
  import "./chunk-PV734VZX.js";
44
44
  import {
@@ -48,7 +48,7 @@ import {
48
48
  resolveAgentRequiredPackIds,
49
49
  shouldBlockForGptPro,
50
50
  waitForAbortableDelay
51
- } from "./chunk-5Q4DXT47.js";
51
+ } from "./chunk-JK7UM3LT.js";
52
52
  import "./chunk-RQSOAMPJ.js";
53
53
  import "./chunk-GUYMR3JL.js";
54
54
  import "./chunk-KQHGZWSV.js";
@@ -56,7 +56,7 @@ import "./chunk-IFS5CUEH.js";
56
56
  import "./chunk-KXKQO4Q6.js";
57
57
  import {
58
58
  getDocState
59
- } from "./chunk-INXNBCEY.js";
59
+ } from "./chunk-KR74XLMV.js";
60
60
  import {
61
61
  getFinalPrice,
62
62
  getModelPricing,
@@ -77,14 +77,14 @@ import {
77
77
  } from "./chunk-MEYIRKDN.js";
78
78
  import "./chunk-63W5N6P3.js";
79
79
  import "./chunk-VF4K2QE6.js";
80
- import "./chunk-P62APAXL.js";
80
+ import "./chunk-NT3QRCVS.js";
81
81
  import {
82
82
  getCurrentSpaceId,
83
83
  getCurrentSpaceIdRaw,
84
84
  getViewMode,
85
85
  selectCurrentTable,
86
86
  selectTableRows
87
- } from "./chunk-OCJNJUR4.js";
87
+ } from "./chunk-D72M3G32.js";
88
88
  import {
89
89
  PERSONALIZATION_DIALOG_CATEGORY,
90
90
  addToolMessage,
@@ -102,12 +102,12 @@ import {
102
102
  selectCurrentDialogConfig,
103
103
  selectDialogConfigByKey,
104
104
  updateTokens
105
- } from "./chunk-7KY6U7MW.js";
105
+ } from "./chunk-ARFXKWJH.js";
106
106
  import "./chunk-RCFIB45Q.js";
107
107
  import "./chunk-JIADXJYU.js";
108
108
  import "./chunk-YYLHWIW6.js";
109
109
  import "./chunk-AGGIDPCZ.js";
110
- import "./chunk-55C3UZSC.js";
110
+ import "./chunk-CVXDBLYH.js";
111
111
  import {
112
112
  createCliChatTurnStream,
113
113
  getCliChatSession,
@@ -148,7 +148,7 @@ import {
148
148
  import "./chunk-T27IEBNQ.js";
149
149
  import "./chunk-P66M7LSQ.js";
150
150
  import "./chunk-N7J63Q6C.js";
151
- import "./chunk-M3JQWYBC.js";
151
+ import "./chunk-T2BZICLK.js";
152
152
  import {
153
153
  extractImagePartsFromResponseOutput,
154
154
  extractTextFromResponseOutput,
@@ -8,27 +8,27 @@ import {
8
8
  toolQueryFunc,
9
9
  toolQueryFunctionSchema,
10
10
  toolRegistry
11
- } from "./chunk-5Q4DXT47.js";
11
+ } from "./chunk-JK7UM3LT.js";
12
12
  import "./chunk-RQSOAMPJ.js";
13
13
  import "./chunk-GUYMR3JL.js";
14
14
  import "./chunk-KQHGZWSV.js";
15
15
  import "./chunk-IFS5CUEH.js";
16
16
  import "./chunk-KXKQO4Q6.js";
17
- import "./chunk-INXNBCEY.js";
17
+ import "./chunk-KR74XLMV.js";
18
18
  import "./chunk-BANYWEYY.js";
19
19
  import "./chunk-U6QQLXWI.js";
20
20
  import "./chunk-INZZJSQF.js";
21
21
  import "./chunk-MEYIRKDN.js";
22
22
  import "./chunk-63W5N6P3.js";
23
23
  import "./chunk-VF4K2QE6.js";
24
- import "./chunk-P62APAXL.js";
25
- import "./chunk-OCJNJUR4.js";
26
- import "./chunk-7KY6U7MW.js";
24
+ import "./chunk-NT3QRCVS.js";
25
+ import "./chunk-D72M3G32.js";
26
+ import "./chunk-ARFXKWJH.js";
27
27
  import "./chunk-RCFIB45Q.js";
28
28
  import "./chunk-JIADXJYU.js";
29
29
  import "./chunk-YYLHWIW6.js";
30
30
  import "./chunk-AGGIDPCZ.js";
31
- import "./chunk-55C3UZSC.js";
31
+ import "./chunk-CVXDBLYH.js";
32
32
  import "./chunk-MGIHZ5CJ.js";
33
33
  import "./chunk-5RGU3J7P.js";
34
34
  import "./chunk-M76ECQRD.js";
@@ -14,8 +14,9 @@ import {
14
14
  resolveStandaloneBundlePlatform,
15
15
  resolveStandaloneBundleRepoBase,
16
16
  runSelfUpdate,
17
+ runSelfUpdateDetailed,
17
18
  runStandaloneBundleUpdate
18
- } from "./chunk-VFVCYIRQ.js";
19
+ } from "./chunk-T5HJEUQN.js";
19
20
  import "./chunk-UNZDCI3O.js";
20
21
  import "./chunk-IDZTNRP2.js";
21
22
  import "./chunk-A7GB5UGH.js";
@@ -41,5 +42,6 @@ export {
41
42
  resolveStandaloneBundlePlatform,
42
43
  resolveStandaloneBundleRepoBase,
43
44
  runSelfUpdate,
45
+ runSelfUpdateDetailed,
44
46
  runStandaloneBundleUpdate
45
47
  };
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  updateContentTitle
3
- } from "./chunk-OCJNJUR4.js";
3
+ } from "./chunk-D72M3G32.js";
4
4
  import {
5
5
  isAssistantToolStub,
6
6
  selectAllMsgs
7
- } from "./chunk-7KY6U7MW.js";
7
+ } from "./chunk-ARFXKWJH.js";
8
8
  import {
9
9
  BUILTIN_TITLE_LLM_CONFIG
10
10
  } from "./chunk-RCFIB45Q.js";
@@ -13,7 +13,7 @@ import "./chunk-YYLHWIW6.js";
13
13
  import "./chunk-AGGIDPCZ.js";
14
14
  import {
15
15
  runLlm
16
- } from "./chunk-55C3UZSC.js";
16
+ } from "./chunk-CVXDBLYH.js";
17
17
  import "./chunk-MGIHZ5CJ.js";
18
18
  import "./chunk-5RGU3J7P.js";
19
19
  import {