nolo-cli 0.16.0-alpha.9 → 0.17.0

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 (127) hide show
  1. package/{_executeModel-ABTND4KZ.js → _executeModel-WPNX5DH4.js} +46 -41
  2. package/{action-F5JACQBG.js → action-LT7BRFLK.js} +10 -9
  3. package/{addContentAction-AQXEYRBE.js → addContentAction-PL3KKBDH.js} +9 -8
  4. package/{addDialogAgentAction-EJHHJZWW.js → addDialogAgentAction-FCMSKYAF.js} +8 -7
  5. package/{agentDeleteCommand-ARMAV46L.js → agentDeleteCommand-L3357EFL.js} +28 -26
  6. package/{agentEmailCommands-BKPZP4UP.js → agentEmailCommands-N65AVLEI.js} +58 -53
  7. package/{agentListCommands-5J7RRXUO.js → agentListCommands-CH27FTI2.js} +27 -25
  8. package/{agentMachineCommands-VXWJXXPF.js → agentMachineCommands-PPK5HJZB.js} +26 -24
  9. package/{agentPullCommand-6HWUT3SW.js → agentPullCommand-ZZGU5KOY.js} +4 -4
  10. package/{agentRecordCommands-INDJINPN.js → agentRecordCommands-HTVXD4TT.js} +53 -48
  11. package/{agentRunCommand-KBN6HBY4.js → agentRunCommand-MGLVJUA5.js} +59 -51
  12. package/{agentRunControl-6ADXVYMR.js → agentRunControl-P75VPTGS.js} +24 -1
  13. package/{agentRuntimeLocal-AH2RYWGP.js → agentRuntimeLocal-QUTBSY3I.js} +22 -20
  14. package/{agentSlice-R4PELU57.js → agentSlice-DOGRCMWK.js} +9 -8
  15. package/{appDeleteCommands-FRWMPQNS.js → appDeleteCommands-FEEVXUBG.js} +25 -23
  16. package/{appDeployCommands-IRF3T35Z.js → appDeployCommands-C4HCGC4B.js} +25 -23
  17. package/{appDeployStatusCommands-ADFERYPU.js → appDeployStatusCommands-IR5ZUZBQ.js} +25 -23
  18. package/{appGetCommands-FTEOXWMS.js → appGetCommands-6RJGZ66Z.js} +25 -23
  19. package/{appListCommands-WBY7UWYD.js → appListCommands-VMTF5YZF.js} +25 -23
  20. package/{authCommand-QU5BXRBH.js → authCommand-WJZPOLSS.js} +13 -12
  21. package/{authCommands-YXGOXNBZ.js → authCommands-XTBV7OFZ.js} +6 -5
  22. package/{chunk-XPC5C7BK.js → chunk-3ND52WIL.js} +2 -2
  23. package/{chunk-SOTZ6RDN.js → chunk-3Q7WHGCB.js} +1 -1
  24. package/{chunk-WVDAUR2S.js → chunk-45BY7RLP.js} +2 -8
  25. package/{chunk-KKY4B2Q2.js → chunk-4PWB7JRR.js} +4 -1
  26. package/{chunk-6N4KODMN.js → chunk-4T5F7YZQ.js} +1 -1
  27. package/chunk-7BUYEZ6U.js +671 -0
  28. package/{chunk-AS3ZQ3O2.js → chunk-7OBMZCRD.js} +1 -1
  29. package/{chunk-4N7QA72L.js → chunk-AAODAAUQ.js} +1 -1
  30. package/{chunk-QLUFR47U.js → chunk-AL2V7U3E.js} +1 -1
  31. package/{chunk-MTU75CZ2.js → chunk-B5TOXZAK.js} +1 -1
  32. package/{chunk-VK2HVKAO.js → chunk-BT6K76S7.js} +192 -249
  33. package/{chunk-G63IH3ZK.js → chunk-CEFXYF66.js} +1 -1
  34. package/{chunk-RLCXU7A5.js → chunk-D3HVJJIA.js} +1 -1
  35. package/{chunk-B4KT7RN2.js → chunk-DKZFOK24.js} +18 -89
  36. package/chunk-DL6EPNIK.js +50 -0
  37. package/{chunk-OELQ67TN.js → chunk-EGPCU42M.js} +57 -7
  38. package/{chunk-IWLUTMYX.js → chunk-ELT65PZW.js} +2 -2
  39. package/chunk-FKXFCYVO.js +221 -0
  40. package/{chunk-5Y5KEB7V.js → chunk-FPKLD4KB.js} +4 -4
  41. package/{chunk-FMYTM25W.js → chunk-FVIPEIVX.js} +10 -3
  42. package/{chunk-66X4VSRC.js → chunk-HQPG2PIV.js} +41 -1
  43. package/{chunk-ZPPTWRPT.js → chunk-HV2A3B4W.js} +1 -1
  44. package/{chunk-ASZ2C44S.js → chunk-IOOMJJ4Z.js} +1 -1
  45. package/{setDialogExtraReferencesAction-LR6MSIXO.js → chunk-JLA4FXYC.js} +2 -17
  46. package/{chunk-IFPY2BIE.js → chunk-JP7REMYP.js} +18 -0
  47. package/{chunk-R6ALN5F5.js → chunk-L2MLZQXU.js} +3 -3
  48. package/{chunk-HSLJ7QER.js → chunk-L6NVTGI7.js} +1 -1
  49. package/{chunk-BHVBFI6B.js → chunk-MD3V54DA.js} +6 -6
  50. package/{chunk-ZVDRAEZL.js → chunk-MUCU6ATG.js} +1 -1
  51. package/{chunk-KFHN5NGJ.js → chunk-MVQ4TBSD.js} +1 -1
  52. package/{chunk-7HECYFOI.js → chunk-NEKFSXOP.js} +316 -212
  53. package/{chunk-LSHKV3S7.js → chunk-NVB267BZ.js} +397 -324
  54. package/{chunk-SGRDLYRZ.js → chunk-NYUXSXLY.js} +33 -14
  55. package/{chunk-PEDT43JF.js → chunk-PZCBZO4J.js} +2 -2
  56. package/{chunk-LZYEWFPK.js → chunk-QCJITMYO.js} +16 -10
  57. package/{chunk-OOSFSFMA.js → chunk-R5V5G73M.js} +2 -0
  58. package/{chunk-QLWU2KOT.js → chunk-RG2U2MTJ.js} +1 -1
  59. package/{chunk-2XA3QGOH.js → chunk-RRGVDPH3.js} +3 -3
  60. package/{chunk-EABWT43X.js → chunk-RVOUXDFU.js} +5 -5
  61. package/{chunk-JTINRTBT.js → chunk-SKDNBYZK.js} +2 -2
  62. package/{chunk-BG7AP3Q7.js → chunk-SNZV4QCE.js} +34 -18
  63. package/{chunk-KMQPSTMJ.js → chunk-TRT4I4UD.js} +2 -2
  64. package/{chunk-MYMMNKYL.js → chunk-TSIYZBTH.js} +156 -6
  65. package/{chunk-J3VQSU5W.js → chunk-UB4RYYNQ.js} +1 -1
  66. package/{chunk-YJKXGHJ6.js → chunk-UGUW3FHG.js} +4 -4
  67. package/{chunk-XECKIDGJ.js → chunk-UZY4BEBR.js} +938 -91
  68. package/chunk-V5R4NZP2.js +78 -0
  69. package/{chunk-GWESD7AS.js → chunk-VDNQF5VI.js} +6 -6
  70. package/{chunk-ZVC2PCZN.js → chunk-VGMJ6PDJ.js} +5 -5
  71. package/{chunk-W4NVOSFF.js → chunk-WFHXMLHZ.js} +1 -1
  72. package/{chunk-H33743XH.js → chunk-WJRJDX2W.js} +1 -1
  73. package/chunk-X4Q4UZEY.js +26 -0
  74. package/{chunk-RPDGJO4D.js → chunk-XHG22OEX.js} +4 -4
  75. package/{chunk-DVRHHFEA.js → chunk-XMLRJUU5.js} +1 -1
  76. package/{chunk-3S2VOMIF.js → chunk-XRZJGPFI.js} +7 -7
  77. package/{chunk-AFNJWHKL.js → chunk-YLRTBX4Y.js} +26 -14
  78. package/{chunk-4EME3YTO.js → chunk-YXTRNO5W.js} +3 -3
  79. package/{chunk-VAT72PDP.js → chunk-ZJZCMKOR.js} +103 -174
  80. package/{chunk-F6JSVFHX.js → chunk-ZVOZH2HW.js} +1 -1
  81. package/chunk-ZZ2MH7LE.js +84 -0
  82. package/{cliExecutor-K3F7DMRO.js → cliExecutor-DNE7TCC4.js} +2 -2
  83. package/codingSkills-36KN5NQT.js +48 -0
  84. package/{createAgentAutomationAction-3KKRAYGE.js → createAgentAutomationAction-PMOLEPGJ.js} +18 -17
  85. package/{createDialogAction-S7NMQ4TZ.js → createDialogAction-DPRTYNAK.js} +20 -19
  86. package/{createPageAction-2EFBT4LQ.js → createPageAction-JGZK3WAM.js} +24 -23
  87. package/{dbSlice-7KQH6GOU.js → dbSlice-CGSRFJN3.js} +8 -7
  88. package/{deleteFile-WPWVZE4B.js → deleteFile-WDZ3VM7B.js} +3 -3
  89. package/{dialogCommands-J7XFIQRD.js → dialogCommands-XED6DKLV.js} +26 -24
  90. package/{dialogSlice-LNRRBUIC.js → dialogSlice-KO4NRNKC.js} +18 -17
  91. package/{docCreateCommands-MKO5WB34.js → docCreateCommands-P6DYWHH3.js} +24 -22
  92. package/{docDeleteCommands-RCBHRKUE.js → docDeleteCommands-KUWXAMSN.js} +25 -23
  93. package/{docReadCommands-66527P4G.js → docReadCommands-ECW55TKB.js} +24 -22
  94. package/{docStore-67MYPX7P.js → docStore-6KMERNUY.js} +19 -18
  95. package/{docUpdateCommands-UT5HSLOJ.js → docUpdateCommands-5J4BTJQN.js} +24 -22
  96. package/{fetchMessages-KTNM7QAR.js → fetchMessages-BMGVZVSE.js} +4 -3
  97. package/{getPricing-P4XRJRZB.js → getPricing-RYY6OBA4.js} +2 -2
  98. package/{handleSendMessageAction-VZ7226PB.js → handleSendMessageAction-R3ZHTVU4.js} +19 -18
  99. package/index.js +68 -68
  100. package/{localDialogRead-2VRI24F4.js → localDialogRead-HQZPVIE3.js} +1 -1
  101. package/{localRuntimeDb-LGDF6FQP.js → localRuntimeDb-THJZGAOJ.js} +1 -1
  102. package/{machineCommands-ATA7OSBJ.js → machineCommands-JF2YL34J.js} +59 -54
  103. package/{machineWsRunDispatch-ZDCZ645H.js → machineWsRunDispatch-ON4AEOJL.js} +51 -46
  104. package/package.json +1 -1
  105. package/queryRunOverlay-O4LOMMPO.js +161 -0
  106. package/{read-CN3TNXIP.js → read-3FMPZPER.js} +3 -3
  107. package/{readDocTool-WF3675ED.js → readDocTool-VSYHKK3V.js} +1 -1
  108. package/{readlineWorkspace-UUNABTLB.js → readlineWorkspace-SUCINTL7.js} +302 -134
  109. package/{removeDialogAgentAction-YDHBFEGI.js → removeDialogAgentAction-OAGA2G3U.js} +10 -9
  110. package/{runAgentClientLoop-2A577WBM.js → runAgentClientLoop-OBD2AVEL.js} +41 -36
  111. package/runOverlayPresentation-ZO4VCWEU.js +11 -0
  112. package/{runtimeDoctorCommands-THIHX2SY.js → runtimeDoctorCommands-E2OUORHK.js} +6 -6
  113. package/setDialogExtraReferencesAction-JZEXA5SL.js +27 -0
  114. package/{setPrimaryDialogAgentAction-IIVDCY5C.js → setPrimaryDialogAgentAction-4ZUQQKDG.js} +26 -17
  115. package/{settingSlice-O23YDK2O.js → settingSlice-7MNKHZ6R.js} +9 -8
  116. package/{skillDiscovery-6M2BZUFN.js → skillDiscovery-KJWT7JBU.js} +3 -3
  117. package/{spaceCommands-UNZVR2OS.js → spaceCommands-32NTNLHS.js} +27 -25
  118. package/{spaceSlice-MC7FYPMZ.js → spaceSlice-P7VOXLY6.js} +18 -17
  119. package/{streamAgentChatTurn-IEKPNM33.js → streamAgentChatTurn-UHEMNI3X.js} +91 -48
  120. package/{tableCommands-3P7MJ3PF.js → tableCommands-BEQAGE4I.js} +1 -1
  121. package/{tools-E6FHKTCF.js → tools-BMXIXHMB.js} +31 -26
  122. package/{tuiSummaryLlmCaller-QHPDD4WP.js → tuiSummaryLlmCaller-VUNVBRX3.js} +3 -3
  123. package/types-ZSTJ7MPR.js +7 -0
  124. package/{updateDialogTitleAction-SQJEEW2K.js → updateDialogTitleAction-LJBDYZLH.js} +21 -20
  125. package/{chunk-O4BU24WZ.js → chunk-6Y7A3OQQ.js} +3 -3
  126. package/{chunk-CMKUBIGW.js → chunk-X7W4TNB4.js} +3 -3
  127. package/{localRuntimeAuthority-TEGCOWX4.js → localRuntimeAuthority-4IXJCHZ7.js} +3 -3
@@ -3,7 +3,20 @@ import {
3
3
  normalizeDialogRecord,
4
4
  readDialogSnapshot,
5
5
  sortDialogs
6
- } from "./chunk-R6ALN5F5.js";
6
+ } from "./chunk-L2MLZQXU.js";
7
+ import {
8
+ listFavoriteAgentIdsAcrossServers,
9
+ listLocalCachedAgents,
10
+ listRemoteAgents,
11
+ listRemoteAgentsAcrossServers
12
+ } from "./chunk-RRGVDPH3.js";
13
+ import "./chunk-ID4G2MAR.js";
14
+ import {
15
+ listUserRecordsFromServers
16
+ } from "./chunk-ZVOZH2HW.js";
17
+ import {
18
+ buildOverlayPresentation
19
+ } from "./chunk-V5R4NZP2.js";
7
20
  import {
8
21
  ANSI_ESCAPE_REGEX,
9
22
  CLI_AUTO_TIER_AGENT_KEYS,
@@ -19,6 +32,7 @@ import {
19
32
  clearCollapsedPasteStore,
20
33
  countPhysicalLines,
21
34
  createCollapsedPasteStore,
35
+ detectSystemBrightnessFromEnv,
22
36
  dimCliText,
23
37
  displayWidth,
24
38
  expandRangeToCollapsedPasteChips,
@@ -30,7 +44,6 @@ import {
30
44
  getActiveDensity,
31
45
  getActiveThemeName,
32
46
  isBalanceExhaustedError,
33
- isQuotaExhaustedError,
34
47
  normalizeToolDisplayMode,
35
48
  padOrTruncateToWidth,
36
49
  releaseCollapsedPaste,
@@ -57,120 +70,124 @@ import {
57
70
  visibleWidth,
58
71
  wrapTextToLines,
59
72
  wrapTranscriptLine
60
- } from "./chunk-VK2HVKAO.js";
73
+ } from "./chunk-BT6K76S7.js";
61
74
  import "./chunk-DZ3XJVET.js";
62
- import "./chunk-6HYVJV7B.js";
63
75
  import {
64
- listFavoriteAgentIdsAcrossServers,
65
- listLocalCachedAgents,
66
- listRemoteAgents,
67
- listRemoteAgentsAcrossServers
68
- } from "./chunk-2XA3QGOH.js";
69
- import "./chunk-ID4G2MAR.js";
76
+ getReadableCliDb
77
+ } from "./chunk-WFHXMLHZ.js";
70
78
  import {
71
- listUserRecordsFromServers
72
- } from "./chunk-F6JSVFHX.js";
79
+ deleteDbRecord,
80
+ queryUserRecords,
81
+ readDbRecord
82
+ } from "./chunk-FVIPEIVX.js";
73
83
  import {
74
84
  createCliLocalRuntimeAdapter,
75
85
  initCliLocale,
86
+ isQuotaExhaustedError,
76
87
  parseCliLocale,
77
88
  setCliLocale,
78
89
  t
79
- } from "./chunk-XECKIDGJ.js";
80
- import "./chunk-J3VQSU5W.js";
81
- import {
82
- getReadableCliDb
83
- } from "./chunk-W4NVOSFF.js";
84
- import {
85
- deleteDbRecord,
86
- queryUserRecords,
87
- readDbRecord
88
- } from "./chunk-FMYTM25W.js";
89
- import "./chunk-WVDAUR2S.js";
90
+ } from "./chunk-UZY4BEBR.js";
91
+ import "./chunk-UB4RYYNQ.js";
92
+ import "./chunk-45BY7RLP.js";
90
93
  import {
91
94
  resolveCliAgentKeyInput
92
95
  } from "./chunk-VHBWHNVT.js";
93
96
  import "./chunk-LTRXGFMS.js";
94
- import "./chunk-KFHN5NGJ.js";
97
+ import "./chunk-MVQ4TBSD.js";
98
+ import "./chunk-6HYVJV7B.js";
95
99
  import "./chunk-JEXVIMYZ.js";
96
100
  import {
97
101
  prepareTools
98
- } from "./chunk-PEDT43JF.js";
99
- import "./chunk-HSLJ7QER.js";
102
+ } from "./chunk-PZCBZO4J.js";
103
+ import "./chunk-L6NVTGI7.js";
100
104
  import {
101
105
  expandEnabledPacks
102
- } from "./chunk-7HECYFOI.js";
106
+ } from "./chunk-NEKFSXOP.js";
103
107
  import "./chunk-RQSOAMPJ.js";
104
- import "./chunk-IFPY2BIE.js";
108
+ import "./chunk-JP7REMYP.js";
105
109
  import "./chunk-KQHGZWSV.js";
106
- import "./chunk-GWESD7AS.js";
107
- import "./chunk-6N4KODMN.js";
110
+ import "./chunk-4T5F7YZQ.js";
108
111
  import "./chunk-3LY4F7SV.js";
109
- import "./chunk-VP4WJWKW.js";
110
- import "./chunk-63W5N6P3.js";
111
112
  import "./chunk-VF4K2QE6.js";
112
- import "./chunk-SGRDLYRZ.js";
113
- import "./chunk-VC6OZXO5.js";
113
+ import "./chunk-VDNQF5VI.js";
114
+ import {
115
+ initialRunOverlayState,
116
+ reduceRunOverlay
117
+ } from "./chunk-DL6EPNIK.js";
114
118
  import "./chunk-OWOHNGCN.js";
119
+ import "./chunk-JLA4FXYC.js";
120
+ import "./chunk-VP4WJWKW.js";
121
+ import "./chunk-63W5N6P3.js";
122
+ import "./chunk-WJRJDX2W.js";
123
+ import "./chunk-LM6IYQ3F.js";
124
+ import "./chunk-NYUXSXLY.js";
115
125
  import {
116
126
  extractReferenceKeysFromMessage
117
- } from "./chunk-LSHKV3S7.js";
127
+ } from "./chunk-NVB267BZ.js";
118
128
  import {
119
129
  buildBuiltinSummaryContent
120
130
  } from "./chunk-XOIF2TNF.js";
131
+ import "./chunk-B5TOXZAK.js";
121
132
  import "./chunk-MRC4Q34M.js";
122
- import "./chunk-MTU75CZ2.js";
133
+ import "./chunk-MD3V54DA.js";
123
134
  import "./chunk-CWMSB67P.js";
124
- import "./chunk-BHVBFI6B.js";
125
- import "./chunk-RPDGJO4D.js";
126
- import "./chunk-SOTZ6RDN.js";
135
+ import "./chunk-XHG22OEX.js";
127
136
  import "./chunk-Z4NR32XR.js";
128
137
  import "./chunk-M76ECQRD.js";
138
+ import "./chunk-3Q7WHGCB.js";
129
139
  import {
130
140
  buildSkillDiscoveryContextBlock
131
- } from "./chunk-AS3ZQ3O2.js";
141
+ } from "./chunk-7OBMZCRD.js";
142
+ import "./chunk-7BUYEZ6U.js";
143
+ import "./chunk-VC6OZXO5.js";
132
144
  import "./chunk-WZSRQNQG.js";
133
145
  import {
134
146
  buildLocalWorkspaceOpenAiTools,
135
147
  buildLocalWorkspaceToolset,
136
148
  getProcessRegistry
137
- } from "./chunk-AFNJWHKL.js";
138
- import "./chunk-4N7QA72L.js";
149
+ } from "./chunk-YLRTBX4Y.js";
139
150
  import "./chunk-ZNFJWEN4.js";
151
+ import "./chunk-AAODAAUQ.js";
140
152
  import "./chunk-OIQPORYI.js";
141
153
  import {
142
154
  readCommandActionGatePayload,
143
155
  resolveAgentImageInputSupport
144
- } from "./chunk-LZYEWFPK.js";
156
+ } from "./chunk-QCJITMYO.js";
145
157
  import "./chunk-LSFAWXKC.js";
146
158
  import {
147
159
  buildCurrentTimeBlock,
148
160
  buildIdentityBlock,
149
161
  buildRuntimeGuidanceBlocks
150
- } from "./chunk-ASZ2C44S.js";
162
+ } from "./chunk-IOOMJJ4Z.js";
151
163
  import "./chunk-KFEVY3ST.js";
152
164
  import {
153
165
  resolvePlatformAuthToken
154
- } from "./chunk-ZVDRAEZL.js";
155
- import {
156
- canonicalizeToolNames
157
- } from "./chunk-B4KT7RN2.js";
166
+ } from "./chunk-MUCU6ATG.js";
167
+ import "./chunk-DKZFOK24.js";
158
168
  import {
159
169
  DEFAULT_CONTEXT_WINDOW,
160
170
  estimateTokenCount,
161
171
  getModelContextWindow,
162
172
  planCompression,
163
173
  serializeMessageContent
164
- } from "./chunk-OELQ67TN.js";
174
+ } from "./chunk-EGPCU42M.js";
165
175
  import {
166
176
  clipCompactText
167
177
  } from "./chunk-5MMAK75Q.js";
168
- import "./chunk-66X4VSRC.js";
169
178
  import "./chunk-5CS33IBL.js";
170
179
  import "./chunk-JZPBVBIY.js";
180
+ import "./chunk-HQPG2PIV.js";
171
181
  import "./chunk-ZHXJ6M7T.js";
172
- import "./chunk-QLUFR47U.js";
173
- import "./chunk-KKY4B2Q2.js";
182
+ import {
183
+ toErrorMessage
184
+ } from "./chunk-HNMXYYJR.js";
185
+ import "./chunk-ELT65PZW.js";
186
+ import "./chunk-AL2V7U3E.js";
187
+ import "./chunk-4PWB7JRR.js";
188
+ import {
189
+ canonicalizeToolNames
190
+ } from "./chunk-ZZ2MH7LE.js";
174
191
  import "./chunk-5MIDPSSK.js";
175
192
  import {
176
193
  extractCustomId
@@ -179,15 +196,19 @@ import "./chunk-3ASDTTEI.js";
179
196
  import {
180
197
  compactWhitespace
181
198
  } from "./chunk-DWLEOOGR.js";
182
- import "./chunk-MYMMNKYL.js";
183
- import "./chunk-CMKUBIGW.js";
184
- import "./chunk-JBTJAPUF.js";
185
- import "./chunk-ATNTHIZI.js";
186
199
  import {
187
- toErrorMessage
188
- } from "./chunk-HNMXYYJR.js";
189
- import "./chunk-H33743XH.js";
190
- import "./chunk-LM6IYQ3F.js";
200
+ queryRunRecords
201
+ } from "./chunk-TSIYZBTH.js";
202
+ import {
203
+ formatRunAge,
204
+ getAgentRunStatusIcon,
205
+ isAgentRunTerminalStatus,
206
+ runShowsLogTail,
207
+ shortRunId
208
+ } from "./chunk-FKXFCYVO.js";
209
+ import "./chunk-X7W4TNB4.js";
210
+ import "./chunk-ATNTHIZI.js";
211
+ import "./chunk-JBTJAPUF.js";
191
212
  import {
192
213
  runSelfUpdate
193
214
  } from "./chunk-K6EUAOW3.js";
@@ -210,22 +231,22 @@ import {
210
231
  } from "./chunk-OLZBQWZU.js";
211
232
  import "./chunk-RK5NYQEL.js";
212
233
  import "./chunk-O6W2O2DA.js";
213
- import "./chunk-YJKXGHJ6.js";
214
- import "./chunk-EABWT43X.js";
234
+ import "./chunk-UGUW3FHG.js";
235
+ import "./chunk-RVOUXDFU.js";
215
236
  import "./chunk-Y5GCAMGP.js";
216
237
  import "./chunk-KX6YBIHG.js";
217
- import "./chunk-IWLUTMYX.js";
218
- import "./chunk-3S2VOMIF.js";
219
- import "./chunk-O4BU24WZ.js";
220
- import "./chunk-I42VC5KR.js";
238
+ import "./chunk-XRZJGPFI.js";
239
+ import "./chunk-6Y7A3OQQ.js";
221
240
  import "./chunk-WWC7I6TA.js";
222
- import "./chunk-JTINRTBT.js";
241
+ import "./chunk-SKDNBYZK.js";
242
+ import "./chunk-I42VC5KR.js";
223
243
  import {
224
244
  asTrimmedLowercaseString
225
245
  } from "./chunk-QSJ3HFEF.js";
226
- import "./chunk-XPC5C7BK.js";
227
- import "./chunk-DVRHHFEA.js";
228
- import "./chunk-OOSFSFMA.js";
246
+ import "./chunk-X4Q4UZEY.js";
247
+ import "./chunk-3ND52WIL.js";
248
+ import "./chunk-XMLRJUU5.js";
249
+ import "./chunk-R5V5G73M.js";
229
250
  import "./chunk-GBRG75BQ.js";
230
251
  import "./chunk-3EUW3WEO.js";
231
252
  import "./chunk-U6VC4MU4.js";
@@ -249,7 +270,7 @@ import { existsSync, readFileSync } from "node:fs";
249
270
  import { join } from "node:path";
250
271
  var DEFAULT_CLI_PACKS = ["code", "agent-orchestration", "skills"];
251
272
  var DEFAULT_CLI_PLATFORM_TOOLS = [
252
- "ui_ask_choice",
273
+ "ask_user",
253
274
  "exa_search",
254
275
  "fetchWebpage"
255
276
  ];
@@ -757,7 +778,7 @@ function createRawKeyReader(input) {
757
778
  let buffer = "";
758
779
  const tryParseSequence = () => {
759
780
  if (!buffer) return null;
760
- if (isSubmit(buffer) || isCancel(buffer)) {
781
+ if (isSubmit(buffer)) {
761
782
  const sequence2 = buffer;
762
783
  buffer = "";
763
784
  return sequence2;
@@ -780,6 +801,7 @@ function createRawKeyReader(input) {
780
801
  return candidate;
781
802
  }
782
803
  }
804
+ if (buffer === "\x1B") return void 0;
783
805
  if (buffer.length >= 8) {
784
806
  buffer = "";
785
807
  return null;
@@ -791,16 +813,38 @@ function createRawKeyReader(input) {
791
813
  return sequence;
792
814
  };
793
815
  let waiter = null;
816
+ let escTimer = null;
794
817
  const tryDeliver = () => {
795
818
  if (!waiter || !buffer) return;
796
819
  const parsed = tryParseSequence();
797
- if (parsed === void 0) return;
820
+ if (parsed === void 0) {
821
+ if (buffer === "\x1B" && !escTimer) {
822
+ escTimer = setTimeout(() => {
823
+ escTimer = null;
824
+ if (waiter && buffer === "\x1B") {
825
+ const resolve3 = waiter;
826
+ waiter = null;
827
+ buffer = "";
828
+ resolve3("\x1B");
829
+ }
830
+ }, 30);
831
+ }
832
+ return;
833
+ }
834
+ if (escTimer) {
835
+ clearTimeout(escTimer);
836
+ escTimer = null;
837
+ }
798
838
  const resolve2 = waiter;
799
839
  waiter = null;
800
840
  resolve2(parsed);
801
841
  };
802
842
  const onData = (chunk) => {
803
843
  buffer += typeof chunk === "string" ? chunk : Buffer.from(chunk).toString("utf8");
844
+ if (escTimer) {
845
+ clearTimeout(escTimer);
846
+ escTimer = null;
847
+ }
804
848
  tryDeliver();
805
849
  };
806
850
  input.on("data", onData);
@@ -810,6 +854,10 @@ function createRawKeyReader(input) {
810
854
  tryDeliver();
811
855
  });
812
856
  reader.dispose = () => {
857
+ if (escTimer) {
858
+ clearTimeout(escTimer);
859
+ escTimer = null;
860
+ }
813
861
  waiter = null;
814
862
  input.off("data", onData);
815
863
  };
@@ -832,7 +880,6 @@ async function runSelectDialog(args) {
832
880
  const output = args.output ?? process.stdout;
833
881
  const input = args.input ?? process.stdin;
834
882
  const readKey = args.readKey ?? createRawKeyReader(input);
835
- output.write("\x1B[?1006h\x1B[?1000h");
836
883
  const wasRaw = Boolean(input.isTTY && input.isRaw);
837
884
  let renderedLineCount = 0;
838
885
  const bottomAnchored = Boolean(args.bottomAnchored && args.bottomRow);
@@ -883,14 +930,15 @@ async function runSelectDialog(args) {
883
930
  };
884
931
  const resizeTarget = output;
885
932
  const onOutputResize = () => paint();
886
- if (input.isTTY && !wasRaw) {
887
- input.setRawMode?.(true);
888
- }
889
- if (bottomAnchored && outputIsTty(output)) {
890
- resizeTarget.on?.("resize", onOutputResize);
891
- }
892
- paint();
893
933
  try {
934
+ output.write("\x1B[?1006h\x1B[?1000h");
935
+ if (input.isTTY && !wasRaw) {
936
+ input.setRawMode?.(true);
937
+ }
938
+ if (bottomAnchored && outputIsTty(output)) {
939
+ resizeTarget.on?.("resize", onOutputResize);
940
+ }
941
+ paint();
894
942
  while (true) {
895
943
  const sequence = await readKey();
896
944
  if (sequence == null) {
@@ -898,6 +946,9 @@ async function runSelectDialog(args) {
898
946
  }
899
947
  const scrollAction = parseScrollAction(sequence);
900
948
  if (scrollAction === "wheel-up" || scrollAction === "wheel-down") {
949
+ if (args.wheelPolicy === "ignore") {
950
+ continue;
951
+ }
901
952
  selectedIndex = Math.min(
902
953
  Math.max(
903
954
  selectedIndex + (scrollAction === "wheel-up" ? -1 : 1),
@@ -1013,6 +1064,11 @@ async function runConfirmDialog(args) {
1013
1064
  titleLines,
1014
1065
  input,
1015
1066
  output,
1067
+ // confirm is a non-list modal: a wheel scroll must do nothing at all — no
1068
+ // highlight move, no repaint, no cancel (spec). Without this it would
1069
+ // inherit runSelectDialog's default "move" and let the wheel flip
1070
+ // Allow/Deny, which is the opposite of the intended silent-swallow.
1071
+ wheelPolicy: "ignore",
1016
1072
  ...args.readKey ? { readKey: args.readKey } : {},
1017
1073
  ...args.bottomAnchored ? { bottomAnchored: args.bottomAnchored } : {},
1018
1074
  ...args.bottomRow ? { bottomRow: args.bottomRow } : {}
@@ -1366,7 +1422,6 @@ async function runAskChoiceDialog(args) {
1366
1422
  const output = args.output ?? process.stdout;
1367
1423
  const input = args.input ?? process.stdin;
1368
1424
  const readKey = args.readKey ?? createRawKeyReader(input);
1369
- output.write("\x1B[?1006h\x1B[?1000h");
1370
1425
  const wasRaw = Boolean(input.isTTY && input.isRaw);
1371
1426
  let renderedLineCount = 0;
1372
1427
  const bottomAnchored = Boolean(args.bottomAnchored && args.bottomRow);
@@ -1443,14 +1498,15 @@ async function runAskChoiceDialog(args) {
1443
1498
  };
1444
1499
  const resizeTarget = output;
1445
1500
  const onOutputResize = () => paint();
1446
- if (input.isTTY && !wasRaw) {
1447
- input.setRawMode?.(true);
1448
- }
1449
- if (bottomAnchored && outputIsTty(output)) {
1450
- resizeTarget.on?.("resize", onOutputResize);
1451
- }
1452
- paint();
1453
1501
  try {
1502
+ output.write("\x1B[?1006h\x1B[?1000h");
1503
+ if (input.isTTY && !wasRaw) {
1504
+ input.setRawMode?.(true);
1505
+ }
1506
+ if (bottomAnchored && outputIsTty(output)) {
1507
+ resizeTarget.on?.("resize", onOutputResize);
1508
+ }
1509
+ paint();
1454
1510
  while (state.phase === "active") {
1455
1511
  const sequence = await readKey();
1456
1512
  if (sequence == null) {
@@ -1466,6 +1522,9 @@ async function runAskChoiceDialog(args) {
1466
1522
  paint();
1467
1523
  continue;
1468
1524
  }
1525
+ if (SGR_MOUSE_REGEX.test(sequence)) {
1526
+ continue;
1527
+ }
1469
1528
  let action = null;
1470
1529
  const qs = state.questionStates[state.activeIndex];
1471
1530
  const q = state.questions[state.activeIndex];
@@ -1718,7 +1777,7 @@ function createActivityIndicator(deps) {
1718
1777
  }
1719
1778
  }
1720
1779
  if (agentRunSnapshot) {
1721
- lines.push(...formatAgentRunPanelLines(agentRunSnapshot, colorEnabled));
1780
+ lines.push(...formatAgentRunPanelLines(agentRunSnapshot, colorEnabled, now()));
1722
1781
  }
1723
1782
  return lines.length > 0 ? lines : null;
1724
1783
  };
@@ -1747,52 +1806,56 @@ function createActivityIndicator(deps) {
1747
1806
  stop
1748
1807
  };
1749
1808
  }
1750
- function formatAgentRunPanelLines(snapshot, colorEnabled) {
1809
+ function formatPanelProgress(snapshot) {
1810
+ const parts = [];
1811
+ if (typeof snapshot.toolCallCount === "number" && Number.isFinite(snapshot.toolCallCount)) {
1812
+ parts.push(`${snapshot.toolCallCount} tools`);
1813
+ }
1814
+ if (snapshot.lastToolNames && snapshot.lastToolNames.length > 0) {
1815
+ parts.push(snapshot.lastToolNames.join(", "));
1816
+ }
1817
+ return parts.length > 0 ? ` \xB7 ${parts.join(" \xB7 ")}` : "";
1818
+ }
1819
+ function formatPanelDetail(snapshot) {
1820
+ const note = snapshot.lastAssistantText?.trim();
1821
+ if (note) return note;
1822
+ if (!runShowsLogTail(snapshot.status)) return "";
1823
+ const lines = snapshot.logLines;
1824
+ if (!lines || lines.length === 0) return "";
1825
+ return lines[lines.length - 1]?.trim() ?? "";
1826
+ }
1827
+ function formatAgentRunPanelLines(snapshot, colorEnabled, now = Date.now()) {
1751
1828
  const lines = [];
1752
1829
  const name = snapshot.agentName || "sub-agent";
1753
- const runId = snapshot.runId ? ` (${snapshot.runId.slice(0, 8)})` : "";
1830
+ const short = shortRunId(snapshot.runId);
1831
+ const runId = short ? ` (${short})` : "";
1754
1832
  const status = snapshot.status || "running";
1755
- let statusSymbol = "\u231B";
1756
- let statusColor = "warning";
1757
- if (status === "completed" || status === "finished" || status === "success") {
1758
- statusSymbol = "\u2713";
1759
- statusColor = "success";
1760
- } else if (status === "killed" || status === "cancelled" || status === "failed" || status === "stopped") {
1761
- statusSymbol = "\u{1F534}";
1762
- statusColor = "danger";
1763
- }
1764
- const pollPart = snapshot.polls !== void 0 ? ` (polls: ${snapshot.polls})` : "";
1833
+ const statusSymbol = getAgentRunStatusIcon(status);
1834
+ const statusColor = !isAgentRunTerminalStatus(status) ? "warning" : status === "done" ? "success" : "danger";
1765
1835
  const errPart = snapshot.errorMessage ? ` \xB7 ${snapshot.errorMessage}` : "";
1836
+ const progressPart = formatPanelProgress(snapshot);
1837
+ const age = formatRunAge(snapshot, now);
1838
+ const agePart = age ? ` \xB7 ${age}` : "";
1766
1839
  if (!colorEnabled) {
1767
- lines.push(`\u{1F916} Sub-Agent: ${name}${runId} \xB7 ${statusSymbol} ${status}${pollPart}${errPart}`);
1840
+ lines.push(
1841
+ `\u{1F916} Sub-Agent: ${name}${runId} \xB7 ${statusSymbol} ${status}${agePart}${progressPart}${errPart}`
1842
+ );
1768
1843
  } else {
1769
1844
  const botIcon = themeText("\u{1F916}", "accent", true);
1770
1845
  const labelText = themeText(" Sub-Agent: ", "muted", true);
1771
1846
  const nameText = themeText(`${name}${runId}`, "chrome", true);
1772
1847
  const statusText = themeText(` \xB7 ${statusSymbol} ${status}`, statusColor, true);
1773
- const pollsText = pollPart ? themeText(pollPart, "chrome") : "";
1848
+ const ageText = agePart ? themeText(agePart, "chrome") : "";
1849
+ const progressText = progressPart ? themeText(progressPart, "chrome") : "";
1774
1850
  const errorText = errPart ? themeText(errPart, "danger") : "";
1775
- lines.push(`${botIcon}${labelText}${nameText}${statusText}${pollsText}${errorText}`);
1776
- }
1777
- let logLine;
1778
- if (snapshot.logTail) {
1779
- const trimmed = snapshot.logTail.trim();
1780
- if (trimmed) {
1781
- const parts = trimmed.split(/\r?\n/);
1782
- logLine = parts[parts.length - 1];
1783
- }
1784
- } else if (snapshot.logLines && snapshot.logLines.length > 0) {
1785
- logLine = snapshot.logLines[snapshot.logLines.length - 1];
1851
+ lines.push(`${botIcon}${labelText}${nameText}${statusText}${ageText}${progressText}${errorText}`);
1786
1852
  }
1787
- if (logLine && logLine.trim()) {
1788
- const cleanLog = logLine.trim();
1853
+ const detail = formatPanelDetail(snapshot);
1854
+ if (detail) {
1789
1855
  if (!colorEnabled) {
1790
- lines.push(` \u2514 Log: ${cleanLog}`);
1856
+ lines.push(` \u2514 ${detail}`);
1791
1857
  } else {
1792
- const branchChar = themeText(" \u2514 ", "muted");
1793
- const logTag = themeText("Log: ", "muted");
1794
- const logContent = themeText(cleanLog, "chrome");
1795
- lines.push(`${branchChar}${logTag}${logContent}`);
1858
+ lines.push(`${themeText(" \u2514 ", "muted")}${themeText(detail, "chrome")}`);
1796
1859
  }
1797
1860
  }
1798
1861
  return lines;
@@ -3601,6 +3664,7 @@ function handleTuiInput(input, state) {
3601
3664
  }
3602
3665
 
3603
3666
  // packages/cli/tui/detectBackground.ts
3667
+ import { execFileSync } from "node:child_process";
3604
3668
  import { ReadStream } from "node:tty";
3605
3669
  var OSC11_QUERY = "\x1B]11;?\x07";
3606
3670
  var OSC11_REPLY_RE = /\x1b\]11;rgb:([0-9a-f]+)\/([0-9a-f]+)\/([0-9a-f]+)/i;
@@ -3629,7 +3693,7 @@ function parseOsc11Background(reply) {
3629
3693
  function isTerminalDevice(stream) {
3630
3694
  return stream instanceof ReadStream;
3631
3695
  }
3632
- async function detectTerminalBackground(args = {}) {
3696
+ async function probeTerminalBackground(args = {}) {
3633
3697
  const stdin = args.stdin ?? process.stdin;
3634
3698
  const stdout = args.stdout ?? process.stdout;
3635
3699
  const timeoutMs = args.timeoutMs ?? 100;
@@ -3672,6 +3736,48 @@ async function detectTerminalBackground(args = {}) {
3672
3736
  timer = setTimeout(() => finish(null), timeoutMs);
3673
3737
  });
3674
3738
  }
3739
+ async function detectTerminalBackground(args = {}) {
3740
+ const r = await probeTerminalBackground(args);
3741
+ if (r || !args.allowSystemFallback) return r;
3742
+ const brightness = detectSystemBrightness(process.env, { allowSubprocess: true });
3743
+ return brightness ? { brightness, hex: "" } : null;
3744
+ }
3745
+ function detectSystemBrightness(env = process.env, options = {}) {
3746
+ const envResult = detectSystemBrightnessFromEnv(env);
3747
+ if (envResult) return envResult;
3748
+ const allowSubprocess = options.allowSubprocess ?? false;
3749
+ if (!allowSubprocess) {
3750
+ return null;
3751
+ }
3752
+ if (process.platform === "darwin") {
3753
+ try {
3754
+ const out = execFileSync("defaults", ["read", "-g", "AppleInterfaceStyle"], {
3755
+ encoding: "utf8",
3756
+ stdio: ["ignore", "pipe", "ignore"],
3757
+ timeout: 200
3758
+ }).trim();
3759
+ if (out.toLowerCase() === "dark") return "dark";
3760
+ } catch {
3761
+ }
3762
+ } else if (process.platform === "linux") {
3763
+ try {
3764
+ const out = execFileSync(
3765
+ "gsettings",
3766
+ ["get", "org.gnome.desktop.interface", "color-scheme"],
3767
+ {
3768
+ encoding: "utf8",
3769
+ stdio: ["ignore", "pipe", "ignore"],
3770
+ timeout: 200
3771
+ }
3772
+ ).trim();
3773
+ const val = out.toLowerCase();
3774
+ if (/(?:^|[\s\-_:])dark(?:$|[\s\-_:])/i.test(val)) return "dark";
3775
+ if (/(?:^|[\s\-_:])light(?:$|[\s\-_:])/i.test(val)) return "light";
3776
+ } catch {
3777
+ }
3778
+ }
3779
+ return null;
3780
+ }
3675
3781
 
3676
3782
  // packages/core/chat/chatQueueMachine.ts
3677
3783
  var initialChatQueueState = {
@@ -4767,6 +4873,47 @@ ${content}`;
4767
4873
  return null;
4768
4874
  }
4769
4875
  var autoRouteByDialog = /* @__PURE__ */ new Map();
4876
+ function toOverlayStatus(status) {
4877
+ switch (status) {
4878
+ case "running":
4879
+ return "running";
4880
+ case "done":
4881
+ return "done";
4882
+ case "failed":
4883
+ case "timeout":
4884
+ case "killed":
4885
+ return "failed";
4886
+ case "orphaned":
4887
+ return "orphaned";
4888
+ default:
4889
+ return "running";
4890
+ }
4891
+ }
4892
+ function buildTuiRunOverlay(parentDialogId) {
4893
+ if (!parentDialogId) return null;
4894
+ let runs;
4895
+ try {
4896
+ runs = queryRunRecords({ parentDialogId }, { env: process.env }).runs;
4897
+ } catch {
4898
+ return null;
4899
+ }
4900
+ if (runs.length === 0) return null;
4901
+ let overlay = initialRunOverlayState;
4902
+ for (const run of runs) {
4903
+ overlay = reduceRunOverlay(overlay, {
4904
+ type: "run-state-chg",
4905
+ runId: run.runId,
4906
+ info: {
4907
+ name: run.agentName ?? run.agentKey ?? run.runId,
4908
+ status: toOverlayStatus(run.status),
4909
+ batchId: run.batchId,
4910
+ parentDialogId: run.parentDialogId,
4911
+ ...run.status === "failed" && run.note ? { errorMessage: run.note } : {}
4912
+ }
4913
+ });
4914
+ }
4915
+ return buildOverlayPresentation(overlay);
4916
+ }
4770
4917
  async function runAgentChat(scriptDir, state, message, env, output, agentRunner = runAgentTurn, options = {}) {
4771
4918
  let effectiveAgentKey = state.agentKey;
4772
4919
  let effectiveAgentName = state.agentName;
@@ -4890,6 +5037,7 @@ async function runAgentChat(scriptDir, state, message, env, output, agentRunner
4890
5037
  serverUrl: state.serverUrl,
4891
5038
  message: effectiveMessage,
4892
5039
  continueDialogId: state.dialogId,
5040
+ ...state.agentKey === DEFAULT_TUI_AGENT_KEY && env.NOLO_AUTO_ROUTE !== "0" ? { dialogAgentMode: "auto" } : { dialogAgentMode: "fixed" },
4893
5041
  runtimeMode: state.runtimeMode,
4894
5042
  localRuntimeCwd: process.cwd(),
4895
5043
  scriptDir,
@@ -4903,14 +5051,21 @@ async function runAgentChat(scriptDir, state, message, env, output, agentRunner
4903
5051
  ...options.confirmDestructiveAction ? { confirmDestructiveAction: options.confirmDestructiveAction } : {},
4904
5052
  ...options.requestUserChoice ? { requestUserChoice: options.requestUserChoice } : {},
4905
5053
  ...options.abortSignal ? { abortSignal: options.abortSignal } : {},
4906
- ...options.pastedTextStore?.items.size ? {
4907
- pastedTextStore: options.pastedTextStore,
4908
- localRuntimeAdapterFactory: (factoryEnv, factoryOptions) => createCliLocalRuntimeAdapter({
4909
- env: factoryEnv,
4910
- cwd: factoryOptions?.cwd ?? state.cwd,
4911
- pastedTextStore: options.pastedTextStore
4912
- })
4913
- } : {},
5054
+ // Always inject a local adapter factory so background run delegations from
5055
+ // inside a TUI turn are stamped with the current conversation. Previously
5056
+ // this factory only existed when pasted text was present, which meant a
5057
+ // plain (no-paste) turn had no injection point for parentDialogId and the
5058
+ // run-overlay could never see runs spawned this turn.
5059
+ ...options.pastedTextStore?.items.size ? { pastedTextStore: options.pastedTextStore } : {},
5060
+ localRuntimeAdapterFactory: (factoryEnv, factoryOptions) => createCliLocalRuntimeAdapter({
5061
+ env: factoryEnv,
5062
+ cwd: factoryOptions?.cwd ?? state.cwd,
5063
+ ...options.pastedTextStore ? { pastedTextStore: options.pastedTextStore } : {},
5064
+ // Stamp spawned background runs with the current TUI dialog so the
5065
+ // run-overlay can filter runs belonging to this conversation.
5066
+ ...state.dialogId ? { parentDialogId: state.dialogId } : {},
5067
+ ...options.activityReporter ? { activityReporter: options.activityReporter } : {}
5068
+ }),
4914
5069
  ...options.activityReporter ? { activityReporter: options.activityReporter } : {},
4915
5070
  ...skillAllowedTools !== void 0 ? { allowedToolNames: skillAllowedTools } : {},
4916
5071
  ...contextBlockScopes.length > 0 ? { contextBlockScopes } : {}
@@ -5152,7 +5307,8 @@ async function startTuiWorkspace(options) {
5152
5307
  }
5153
5308
  const detected = await detectTerminalBackground({
5154
5309
  stdin: input,
5155
- stdout: output
5310
+ stdout: output,
5311
+ allowSystemFallback: true
5156
5312
  });
5157
5313
  if (detected) {
5158
5314
  setActiveBrightness(detected.brightness);
@@ -5318,7 +5474,8 @@ async function startTuiWorkspace(options) {
5318
5474
  if (!isInteractiveInput(input)) return;
5319
5475
  const detected2 = await detectTerminalBackground({
5320
5476
  stdin: input,
5321
- stdout: output
5477
+ stdout: output,
5478
+ allowSystemFallback: true
5322
5479
  });
5323
5480
  if (sessionEnded) return;
5324
5481
  if (!detected2) {
@@ -5349,6 +5506,7 @@ async function startTuiWorkspace(options) {
5349
5506
  forcedStop = false;
5350
5507
  turnEpoch += 1;
5351
5508
  const myEpoch = turnEpoch;
5509
+ const turnParentDialogId = state.dialogId;
5352
5510
  history.followBottom = true;
5353
5511
  startTurn(history, "user");
5354
5512
  appendToCurrentTurn(history, message);
@@ -5464,6 +5622,14 @@ async function startTuiWorkspace(options) {
5464
5622
  emitCommandOutput(t("dialogNotSavedHint"));
5465
5623
  }
5466
5624
  }
5625
+ if (!wasAborted) {
5626
+ const overlayText = buildTuiRunOverlay(turnParentDialogId);
5627
+ if (overlayText) {
5628
+ emitCommandOutput(`
5629
+ \u4F60\u7684 run \u8FDB\u5C55\uFF1A
5630
+ ${overlayText}`);
5631
+ }
5632
+ }
5467
5633
  return { ok: !wasAborted, aborted: wasAborted };
5468
5634
  } finally {
5469
5635
  activityIndicator.stop();
@@ -5614,7 +5780,8 @@ async function startTuiWorkspace(options) {
5614
5780
  if (result.action?.type === "theme-refresh") {
5615
5781
  const detected2 = await detectTerminalBackground({
5616
5782
  stdin: input,
5617
- stdout: output
5783
+ stdout: output,
5784
+ allowSystemFallback: true
5618
5785
  });
5619
5786
  if (detected2 && applyDetectedBackground(detected2)) {
5620
5787
  emitCommandOutput(t("themeRefreshed", detected2.brightness));
@@ -6330,6 +6497,7 @@ export {
6330
6497
  applyOutputChunkToCurrentTurn,
6331
6498
  applyScrollAction,
6332
6499
  applyTerminalOutputToText,
6500
+ buildTuiRunOverlay,
6333
6501
  countPhysicalLines,
6334
6502
  createFixedInput,
6335
6503
  createHistoryOutputStream,