nolo-cli 0.75.0-alpha.6 → 0.75.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 (134) hide show
  1. package/{_executeModel-MONX3AUM.js → _executeModel-I3XRMAJ2.js} +42 -42
  2. package/{action-D22U6CTH.js → action-7GHFPDSQ.js} +10 -10
  3. package/{addContentAction-XAPUTGL4.js → addContentAction-ZNVB2NOV.js} +8 -8
  4. package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-CIDFWATM.js} +7 -7
  5. package/{agentDeleteCommand-UAMLWTPS.js → agentDeleteCommand-DCTG26JW.js} +27 -26
  6. package/{agentEmailCommands-QRVMJZ4C.js → agentEmailCommands-MRRHBLDQ.js} +54 -53
  7. package/{agentListCommands-63DOSBY7.js → agentListCommands-CUE46CSP.js} +29 -28
  8. package/{agentMachineCommands-BLILYHBN.js → agentMachineCommands-FYDEKBIO.js} +27 -26
  9. package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-X3FA6BUM.js} +87 -0
  10. package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-U73W5IBM.js} +1 -1
  11. package/{agentRecordCommands-4RQKVPNP.js → agentRecordCommands-P2MSNP7R.js} +52 -51
  12. package/{agentRunCommand-CDRQIDLW.js → agentRunCommand-QJGP7JEN.js} +52 -51
  13. package/{agentRuntimeLocal-XG3IDNOC.js → agentRuntimeLocal-T43UNWAY.js} +26 -25
  14. package/{agentSlice-BLCUNM5V.js → agentSlice-7GDS5Q2S.js} +9 -9
  15. package/{appDeleteCommands-TJXDMOYT.js → appDeleteCommands-YBKY3VEI.js} +27 -26
  16. package/{appDeployCommands-ECZJQAAL.js → appDeployCommands-EBC76HO4.js} +27 -26
  17. package/{appDeployStatusCommands-DZKVFG3Y.js → appDeployStatusCommands-WXRC5KEK.js} +27 -26
  18. package/{appGetCommands-JIT4OPUD.js → appGetCommands-VZZQEDOV.js} +27 -26
  19. package/{appListCommands-NR2HRMDY.js → appListCommands-HYSPVQ77.js} +27 -26
  20. package/{authCommand-EVGFLAHO.js → authCommand-E4GDVKMW.js} +91 -17
  21. package/{authCommands-ILTBI6JV.js → authCommands-VOTT6XWX.js} +3 -4
  22. package/builtinSkillRegistry-5SYVTS6Z.js +33 -0
  23. package/{chatQueueReduxAdapter-ROFM5SW7.js → chatQueueReduxAdapter-CXEWIDFZ.js} +22 -22
  24. package/{chunk-NG4UT4K4.js → chunk-23RQKXP6.js} +1 -1
  25. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  26. package/{chunk-3QPYFHAH.js → chunk-2XEVK4BT.js} +1 -1
  27. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  28. package/{chunk-AFIWC5NH.js → chunk-3T4PRBHV.js} +1 -1
  29. package/{chunk-ZDONXM5U.js → chunk-4FRNB4ZG.js} +7 -7
  30. package/{chunk-YFADVSZE.js → chunk-5EJZGJS2.js} +6 -6
  31. package/{chunk-UJ63UXGE.js → chunk-6H7GN3JL.js} +1064 -752
  32. package/{chunk-BGIWMGSP.js → chunk-6RCZYDDC.js} +10 -172
  33. package/{chunk-RL5PTRUQ.js → chunk-6ZC5KPXV.js} +319 -29
  34. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  35. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  36. package/{chunk-MQ25G6VQ.js → chunk-AYT2OKNM.js} +3 -3
  37. package/{chunk-ERD7UXVL.js → chunk-BNMZ7QUV.js} +1 -1
  38. package/{chunk-PGSKWZCB.js → chunk-DS3SQTDT.js} +1 -1
  39. package/{chunk-QC5LGHYP.js → chunk-EXWOCYCR.js} +3 -3
  40. package/chunk-FMODTASJ.js +109 -0
  41. package/{chunk-SZLVDREM.js → chunk-GIG262ZG.js} +3 -3
  42. package/{chunk-FPTQQSS6.js → chunk-GRJTR4PU.js} +25 -4
  43. package/{chunk-PZM3EENV.js → chunk-GXWEF4IZ.js} +1 -1
  44. package/chunk-HJKGQPYF.js +266 -0
  45. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  46. package/{chunk-CIHSMPAW.js → chunk-IMDA4FW4.js} +102 -34
  47. package/{chunk-L2Y24GRM.js → chunk-IO7DYRPW.js} +3 -3
  48. package/{chunk-UZ6XXCVR.js → chunk-IZAWJCG7.js} +15 -2
  49. package/{chunk-2SFNAHL6.js → chunk-JC2WQS66.js} +34 -22
  50. package/{chunk-XWNRAIUL.js → chunk-JITSBA52.js} +6 -16
  51. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  52. package/{chunk-E36HZARC.js → chunk-KT6LENVP.js} +3 -3
  53. package/{chunk-N7DNNV6J.js → chunk-L2VNQQ7M.js} +78 -74
  54. package/{chunk-Q2DNZQEZ.js → chunk-LEYH5NOH.js} +5 -5
  55. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  56. package/{chunk-4EJ5QYB5.js → chunk-LSV2BOJL.js} +1 -1
  57. package/{chunk-AFIKMMGC.js → chunk-MFW4BGJS.js} +1 -1
  58. package/{chunk-QH6NK22I.js → chunk-NVHJWYUO.js} +60 -788
  59. package/{chunk-Q6FF2MCK.js → chunk-OAJRZ35U.js} +1 -1
  60. package/{chunk-DSRXPQWA.js → chunk-OCL2YCAU.js} +7 -7
  61. package/{chunk-5J7W2VWW.js → chunk-OHUU52T3.js} +6 -265
  62. package/{chunk-V3ZKNK5D.js → chunk-OKCTLCKS.js} +9 -9
  63. package/chunk-P3AS5IPM.js +1624 -0
  64. package/{chunk-ZZCJUXUI.js → chunk-PHDKTASK.js} +2 -2
  65. package/{chunk-JFXQDXYJ.js → chunk-Q246OUG5.js} +9 -9
  66. package/{chunk-ZLPA7K55.js → chunk-Q4KVAB6L.js} +4 -4
  67. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  68. package/{chunk-CGRJWXTE.js → chunk-S6STPUMG.js} +19 -15
  69. package/{chunk-K7AG465Q.js → chunk-T4F2EQGN.js} +4 -2
  70. package/{chunk-PYXL2CJL.js → chunk-TGRQUFLU.js} +1 -1
  71. package/{chunk-E6RGHPDR.js → chunk-UINEAQ2R.js} +3 -5
  72. package/{chunk-EXMHJN7C.js → chunk-UO66QKGI.js} +2 -2
  73. package/{chunk-BJCWNHVU.js → chunk-US463UAD.js} +2 -2
  74. package/{chunk-AJHEFRGJ.js → chunk-UWMQ6FPM.js} +4 -0
  75. package/{chunk-FSFQ3A7S.js → chunk-VARZWSKW.js} +9 -9
  76. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  77. package/{chunk-3SPWIDHH.js → chunk-VQD6BTML.js} +3 -3
  78. package/{chunk-CUQ6PG2C.js → chunk-VW3YGKWR.js} +656 -98
  79. package/{chunk-G3O3PD6Q.js → chunk-W7PGACND.js} +14 -14
  80. package/{chunk-KIS76A2P.js → chunk-WSOMSDQB.js} +4 -4
  81. package/{chunk-CMH2SYHX.js → chunk-X77EN2BJ.js} +2 -2
  82. package/{chunk-MYU3MJCF.js → chunk-XCSSFPTB.js} +175 -7
  83. package/{chunk-QA6YKM3H.js → chunk-Y2IFJ7VM.js} +31 -3
  84. package/{chunk-UDQWGU7F.js → chunk-YZHP76TR.js} +1 -1
  85. package/{chunk-GBPZKFYK.js → chunk-ZIHJVHFH.js} +4 -4
  86. package/{chunk-DWPNOYMB.js → chunk-ZKGIAM7I.js} +1 -1
  87. package/chunk-ZSG2AQU4.js +626 -0
  88. package/{contentThunks-3BFZJFHI.js → contentThunks-Y2ACIFDB.js} +23 -23
  89. package/{createAgentAutomationAction-YCWUKLMK.js → createAgentAutomationAction-TNE3QMJR.js} +23 -23
  90. package/{createDialogAction-VULS2PKA.js → createDialogAction-BMGHBTQB.js} +26 -26
  91. package/{createPageAction-MZZLQPFE.js → createPageAction-FFNIZPIS.js} +24 -24
  92. package/{dbSlice-GKGGFNOB.js → dbSlice-4CUQE35F.js} +7 -7
  93. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  94. package/{dialogCommands-CJCAMML3.js → dialogCommands-3JC3BIXC.js} +28 -27
  95. package/{dialogSlice-NQO5ZETL.js → dialogSlice-3E7Z7HZV.js} +22 -22
  96. package/{docCreateCommands-H65RSKT4.js → docCreateCommands-6LNQLCTA.js} +28 -27
  97. package/{docDeleteCommands-PBYGJ6CZ.js → docDeleteCommands-ZJOAPWZS.js} +29 -28
  98. package/{docReadCommands-4VRYN5R5.js → docReadCommands-LJTRSBG6.js} +28 -27
  99. package/{docStore-AEJONTM4.js → docStore-R47ABXBB.js} +8 -8
  100. package/{docUpdateCommands-COZG3ZDB.js → docUpdateCommands-7P3QF3N2.js} +28 -27
  101. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  102. package/{getPricing-HRMSOF3E.js → getPricing-TV6ZB7ES.js} +4 -4
  103. package/{handleSendMessageAction-WIUO466V.js → handleSendMessageAction-FFYOGXAO.js} +22 -22
  104. package/index.js +61 -53
  105. package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
  106. package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
  107. package/{machineCommands-BR3OIZHN.js → machineCommands-FN5GGQV3.js} +52 -51
  108. package/{machineWsRunDispatch-43YGAXOP.js → machineWsRunDispatch-H47IA7ZT.js} +50 -49
  109. package/{memberThunks-KATHH3F4.js → memberThunks-N35XAOC6.js} +8 -8
  110. package/{models-GS72DVJS.js → models-CMXFDBQH.js} +2 -2
  111. package/package.json +1 -1
  112. package/providerPresetApply-D2GGHPI7.js +214 -0
  113. package/providerRegistry-MU6C4ABD.js +31 -0
  114. package/{read-LC6HVYBN.js → read-2PV4PN2E.js} +4 -3
  115. package/{readDocTool-N3ERJHHF.js → readDocTool-FGK5XGAW.js} +1 -1
  116. package/{readlineWorkspace-RFSDCOKK.js → readlineWorkspace-NXKHYZEU.js} +263 -90
  117. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-O2POGBOE.js} +10 -10
  118. package/{runAgentClientLoop-QHL2HNAI.js → runAgentClientLoop-CEBV5UPD.js} +41 -41
  119. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  120. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-KPSVVY3C.js} +8 -8
  121. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-RMJETONI.js} +10 -10
  122. package/{settingSlice-OEJA4NQO.js → settingSlice-I6MTTNDX.js} +9 -9
  123. package/{spaceCommands-WGXHETMT.js → spaceCommands-JHT4ALCQ.js} +26 -25
  124. package/{streamAgentChatTurn-CE2H23VD.js → streamAgentChatTurn-SFCZP4GY.js} +49 -50
  125. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-OQSGWVQQ.js} +7 -7
  126. package/{tools-F25QG6XS.js → tools-K3YOTESV.js} +37 -35
  127. package/{tuiSummaryLlmCaller-3Z24VUWM.js → tuiSummaryLlmCaller-T2OA5ZVB.js} +14 -14
  128. package/{updateDialogTitleAction-Z333XUN4.js → updateDialogTitleAction-CSPKYQRO.js} +23 -23
  129. package/chunk-3IT2PFHL.js +0 -611
  130. package/chunk-I42VC5KR.js +0 -15
  131. package/codingSkills-E6KSDNSJ.js +0 -48
  132. package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
  133. package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
  134. package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
@@ -1,14 +1,14 @@
1
- import "./chunk-M3JEW6N6.js";
2
1
  import {
3
2
  defaultOpenBrowser,
4
3
  saveTokenLogin
5
- } from "./chunk-E6RGHPDR.js";
4
+ } from "./chunk-UINEAQ2R.js";
6
5
  import {
7
6
  isScheduledDialog,
8
7
  normalizeDialogRecord,
9
8
  readDialogSnapshot,
10
9
  sortDialogs
11
- } from "./chunk-FSFQ3A7S.js";
10
+ } from "./chunk-VARZWSKW.js";
11
+ import "./chunk-M3JEW6N6.js";
12
12
  import {
13
13
  ANSI_ESCAPE_REGEX,
14
14
  COLLAPSED_PASTE_PLACEHOLDER_RE,
@@ -72,21 +72,21 @@ import {
72
72
  wrapTextToLines,
73
73
  wrapTranscriptLine,
74
74
  wrapTranscriptLineWithLayout
75
- } from "./chunk-RL5PTRUQ.js";
75
+ } from "./chunk-6ZC5KPXV.js";
76
76
  import "./chunk-S7Z2HMCN.js";
77
+ import "./chunk-JYYZCK2Z.js";
77
78
  import {
78
79
  listFavoriteAgentIdsAcrossServers,
79
80
  listLocalCachedAgents,
80
81
  listRemoteAgents,
81
82
  listRemoteAgentsAcrossServers,
82
83
  normalizeListedAgent
83
- } from "./chunk-L2Y24GRM.js";
84
+ } from "./chunk-IO7DYRPW.js";
84
85
  import "./chunk-ID4G2MAR.js";
85
86
  import {
86
87
  listUserRecordsFromServers,
87
88
  readLiveDbRecordAfterTombstoneMerge
88
- } from "./chunk-AFIWC5NH.js";
89
- import "./chunk-JYYZCK2Z.js";
89
+ } from "./chunk-3T4PRBHV.js";
90
90
  import {
91
91
  RUN_WAKE_CHANNEL_ENV,
92
92
  createCliLocalRuntimeAdapter,
@@ -96,10 +96,10 @@ import {
96
96
  readTimestamp,
97
97
  setCliLocale,
98
98
  t
99
- } from "./chunk-CIHSMPAW.js";
100
- import "./chunk-GBPZKFYK.js";
101
- import "./chunk-QCZX4FTW.js";
99
+ } from "./chunk-IMDA4FW4.js";
100
+ import "./chunk-ZIHJVHFH.js";
102
101
  import "./chunk-EADNWBAZ.js";
102
+ import "./chunk-QCZX4FTW.js";
103
103
  import {
104
104
  backfillRunRecordParentDialog,
105
105
  checkStaleRun,
@@ -110,13 +110,13 @@ import {
110
110
  import "./chunk-DWUCB2A3.js";
111
111
  import {
112
112
  getReadableCliDb
113
- } from "./chunk-RXX4GDIH.js";
113
+ } from "./chunk-LS2ZANRJ.js";
114
114
  import {
115
115
  deleteDbRecord,
116
116
  queryUserRecords,
117
117
  readDbRecord
118
- } from "./chunk-QA6YKM3H.js";
119
- import "./chunk-Q6FF2MCK.js";
118
+ } from "./chunk-Y2IFJ7VM.js";
119
+ import "./chunk-OAJRZ35U.js";
120
120
  import {
121
121
  NOLO_DEFAULT_AGENT_KEY,
122
122
  resolveCliAgentKeyInput
@@ -130,17 +130,17 @@ import "./chunk-MP64VFGD.js";
130
130
  import "./chunk-ESHYE7WU.js";
131
131
  import "./chunk-JBTJAPUF.js";
132
132
  import "./chunk-LTRXGFMS.js";
133
- import "./chunk-3QPYFHAH.js";
133
+ import "./chunk-2XEVK4BT.js";
134
134
  import "./chunk-ATNTHIZI.js";
135
135
  import "./chunk-JEXVIMYZ.js";
136
136
  import {
137
137
  prepareTools
138
- } from "./chunk-3SPWIDHH.js";
138
+ } from "./chunk-VQD6BTML.js";
139
139
  import {
140
140
  buildResponseGuidelines
141
141
  } from "./chunk-EOARMOVD.js";
142
142
  import "./chunk-HS7MLR74.js";
143
- import "./chunk-QH6NK22I.js";
143
+ import "./chunk-NVHJWYUO.js";
144
144
  import "./chunk-5XTOKQLW.js";
145
145
  import "./chunk-NF64D32W.js";
146
146
  import "./chunk-3L2WKC3W.js";
@@ -155,79 +155,81 @@ import {
155
155
  runShowsLogTail,
156
156
  shortRunId
157
157
  } from "./chunk-NTW5GWDM.js";
158
- import "./chunk-FPTQQSS6.js";
158
+ import "./chunk-GRJTR4PU.js";
159
159
  import "./chunk-KQHGZWSV.js";
160
- import "./chunk-UDQWGU7F.js";
161
- import "./chunk-PZM3EENV.js";
160
+ import "./chunk-YZHP76TR.js";
161
+ import "./chunk-GXWEF4IZ.js";
162
162
  import "./chunk-OZX2IPKM.js";
163
- import "./chunk-4EJ5QYB5.js";
163
+ import "./chunk-LSV2BOJL.js";
164
164
  import "./chunk-N4G4PKQ6.js";
165
165
  import "./chunk-FZGV4FGK.js";
166
166
  import "./chunk-MEYIRKDN.js";
167
167
  import "./chunk-63W5N6P3.js";
168
168
  import "./chunk-VF4K2QE6.js";
169
- import "./chunk-MQ25G6VQ.js";
170
- import "./chunk-BGIWMGSP.js";
171
- import "./chunk-CGRJWXTE.js";
169
+ import "./chunk-AYT2OKNM.js";
170
+ import "./chunk-6RCZYDDC.js";
171
+ import "./chunk-S6STPUMG.js";
172
172
  import "./chunk-ZJ7UHBJS.js";
173
173
  import {
174
174
  extractReferenceKeysFromMessage
175
- } from "./chunk-N7DNNV6J.js";
175
+ } from "./chunk-L2VNQQ7M.js";
176
176
  import "./chunk-EVBFYPDC.js";
177
- import "./chunk-HQUORJTM.js";
177
+ import "./chunk-3BMYXEUW.js";
178
178
  import "./chunk-YYLHWIW6.js";
179
179
  import "./chunk-AGGIDPCZ.js";
180
- import "./chunk-ZDONXM5U.js";
181
- import "./chunk-BJCWNHVU.js";
180
+ import "./chunk-4FRNB4ZG.js";
181
+ import "./chunk-US463UAD.js";
182
182
  import "./chunk-5RGU3J7P.js";
183
183
  import "./chunk-6YTOJY35.js";
184
184
  import "./chunk-M76ECQRD.js";
185
185
  import "./chunk-YDH3FDFQ.js";
186
186
  import "./chunk-URMS4XY2.js";
187
187
  import "./chunk-TRV2MIDW.js";
188
- import "./chunk-C3FZR5EC.js";
188
+ import "./chunk-2F7RJC6L.js";
189
189
  import "./chunk-GLKOYSRU.js";
190
190
  import {
191
191
  buildSkillDiscoveryContextBlock,
192
192
  buildSkillDiscoveryContextLayer
193
193
  } from "./chunk-E4MARS3Q.js";
194
- import "./chunk-3IT2PFHL.js";
194
+ import "./chunk-P3AS5IPM.js";
195
195
  import {
196
196
  expandEnabledPacks
197
- } from "./chunk-MYU3MJCF.js";
198
- import "./chunk-AETZ7AD6.js";
197
+ } from "./chunk-XCSSFPTB.js";
198
+ import "./chunk-Q554LLSI.js";
199
199
  import "./chunk-KHCLMKZZ.js";
200
200
  import {
201
201
  buildLocalWorkspaceOpenAiTools,
202
202
  buildLocalWorkspaceToolset,
203
+ formatToolOverflowMarker,
203
204
  getProcessRegistry,
204
205
  readCommandActionGatePayload
205
- } from "./chunk-CUQ6PG2C.js";
206
+ } from "./chunk-VW3YGKWR.js";
207
+ import "./chunk-EXWOCYCR.js";
208
+ import "./chunk-FMODTASJ.js";
206
209
  import "./chunk-ZNFJWEN4.js";
207
- import "./chunk-QC5LGHYP.js";
208
- import "./chunk-KIS76A2P.js";
210
+ import "./chunk-WSOMSDQB.js";
209
211
  import "./chunk-CQ3WA2NE.js";
210
212
  import "./chunk-N7J63Q6C.js";
211
213
  import {
212
214
  buildIdentityBlock,
213
215
  buildRuntimeGuidanceBlocks,
214
216
  resolveToolGuidedSections
215
- } from "./chunk-ZLPA7K55.js";
217
+ } from "./chunk-Q4KVAB6L.js";
216
218
  import "./chunk-PUOC4YRO.js";
217
- import "./chunk-PGSKWZCB.js";
218
- import {
219
- resolvePlatformAuthToken
220
- } from "./chunk-CMH2SYHX.js";
221
- import "./chunk-V3ZKNK5D.js";
219
+ import "./chunk-OKCTLCKS.js";
222
220
  import {
223
221
  isQuotaExhaustedError
224
222
  } from "./chunk-CJCJF5XB.js";
223
+ import "./chunk-DS3SQTDT.js";
224
+ import {
225
+ resolvePlatformAuthToken
226
+ } from "./chunk-X77EN2BJ.js";
225
227
  import "./chunk-2MBTWINN.js";
226
228
  import {
227
229
  DEFAULT_CONTEXT_WINDOW,
228
230
  getModelContextWindow,
229
231
  normalizeUsage
230
- } from "./chunk-DSRXPQWA.js";
232
+ } from "./chunk-OCL2YCAU.js";
231
233
  import {
232
234
  buildCompactionMetricsFromPlan,
233
235
  buildCompactionUserContent,
@@ -237,17 +239,17 @@ import {
237
239
  formatMessagesForSummaryWithTruncation,
238
240
  planCompression,
239
241
  serializeMessageContent
240
- } from "./chunk-E36HZARC.js";
241
- import "./chunk-K7AG465Q.js";
242
+ } from "./chunk-KT6LENVP.js";
242
243
  import {
243
244
  estimateTokenCount
244
245
  } from "./chunk-PSCNXBYA.js";
246
+ import "./chunk-T4F2EQGN.js";
245
247
  import "./chunk-BYXBJQAS.js";
246
- import "./chunk-UJ63UXGE.js";
248
+ import "./chunk-6H7GN3JL.js";
247
249
  import {
248
250
  compactWhitespace
249
251
  } from "./chunk-DWLEOOGR.js";
250
- import "./chunk-3JQ2NRYU.js";
252
+ import "./chunk-HVURBGF3.js";
251
253
  import "./chunk-ONXOABJR.js";
252
254
  import "./chunk-W7XHHYWM.js";
253
255
  import {
@@ -265,7 +267,7 @@ import {
265
267
  import {
266
268
  canonicalizeToolNames
267
269
  } from "./chunk-O6OSWFZQ.js";
268
- import "./chunk-BYEJ7K2Z.js";
270
+ import "./chunk-7S4YWN7P.js";
269
271
  import {
270
272
  checkForCliUpdate,
271
273
  runSelfUpdateDetailed
@@ -293,41 +295,41 @@ import {
293
295
  import {
294
296
  DEFAULT_NOLO_SERVER_URL
295
297
  } from "./chunk-OLZBQWZU.js";
296
- import "./chunk-NG4UT4K4.js";
297
- import "./chunk-AJHEFRGJ.js";
298
- import "./chunk-SZLVDREM.js";
299
- import "./chunk-XWNRAIUL.js";
298
+ import "./chunk-23RQKXP6.js";
299
+ import "./chunk-UWMQ6FPM.js";
300
+ import "./chunk-GIG262ZG.js";
301
+ import "./chunk-JITSBA52.js";
300
302
  import "./chunk-Y5GCAMGP.js";
301
- import "./chunk-UZ6XXCVR.js";
303
+ import "./chunk-IZAWJCG7.js";
302
304
  import "./chunk-KX6YBIHG.js";
303
- import "./chunk-ZZCJUXUI.js";
305
+ import "./chunk-PHDKTASK.js";
304
306
  import "./chunk-UAD2WT54.js";
305
- import "./chunk-YFADVSZE.js";
306
- import "./chunk-NHRQCXIQ.js";
307
+ import "./chunk-5EJZGJS2.js";
308
+ import "./chunk-VMFTFOWF.js";
307
309
  import "./chunk-WWC7I6TA.js";
308
- import "./chunk-I42VC5KR.js";
309
- import "./chunk-SREASRV5.js";
310
+ import "./chunk-ABQYVJBJ.js";
310
311
  import {
311
312
  asTrimmedLowercaseString
312
313
  } from "./chunk-QSJ3HFEF.js";
314
+ import "./chunk-OHUU52T3.js";
313
315
  import {
314
316
  BUILTIN_NOLO_AGENT_KEY,
315
317
  BUILTIN_NOLO_AGENT_MODEL,
316
318
  BUILTIN_NOLO_AGENT_NAME,
317
319
  builtinAgentCatalogEntryById
318
- } from "./chunk-5J7W2VWW.js";
320
+ } from "./chunk-HJKGQPYF.js";
319
321
  import {
320
322
  extractCustomId,
321
323
  parsePublicAgentId
322
324
  } from "./chunk-BJIRLHJR.js";
323
- import "./chunk-3RAG2NAD.js";
325
+ import "./chunk-UKWGR5SS.js";
324
326
  import "./chunk-QOKAKDPE.js";
325
327
  import "./chunk-OW765XBU.js";
326
328
  import "./chunk-SEJ5OS6F.js";
327
329
  import "./chunk-GBRG75BQ.js";
330
+ import "./chunk-KUG52IAP.js";
328
331
  import "./chunk-3EUW3WEO.js";
329
332
  import "./chunk-U6VC4MU4.js";
330
- import "./chunk-KUG52IAP.js";
331
333
  import "./chunk-LCBAMY2M.js";
332
334
  import "./chunk-4SN6J65J.js";
333
335
  import {
@@ -347,7 +349,7 @@ import { stdin as defaultInput, stdout as defaultOutput } from "node:process";
347
349
  import nacl from "tweetnacl";
348
350
 
349
351
  // node_modules/js-base64/base64.mjs
350
- var version = "3.9.3";
352
+ var version = "3.9.4";
351
353
  var VERSION = version;
352
354
  var _TD = typeof TextDecoder === "function" ? new TextDecoder("utf-8", { ignoreBOM: true }) : void 0;
353
355
  var _TE = typeof TextEncoder === "function" ? new TextEncoder() : void 0;
@@ -1656,13 +1658,14 @@ function layoutTurnRows(role, content, contentWidth, colorEnabled, command) {
1656
1658
  const surfaceSeq = colorEnabled ? userSurfaceBackgroundSequence() : "";
1657
1659
  const boldOn = colorEnabled ? "\x1B[1m" : "";
1658
1660
  const boldOff = colorEnabled ? "\x1B[22m" : "";
1661
+ const fgOff = colorEnabled ? "\x1B[39m" : "";
1659
1662
  const prefixWidth = 3;
1660
1663
  let lineSourceStart = 0;
1661
1664
  const rows2 = [];
1662
1665
  for (let i = 0; i < logicalLines.length; i++) {
1663
1666
  const line = logicalLines[i];
1664
1667
  const prefix = i === 0 ? firstPrefix : multilinePrefix;
1665
- const styledLine = `${prefix}${boldOn}${line}${boldOff}`;
1668
+ const styledLine = `${prefix}${accentSeq}${boldOn}${line}${boldOff}${fgOff}`;
1666
1669
  const prefixCharCount = prefix.length;
1667
1670
  const wrappedRows = wrapTranscriptLineWithLayout(
1668
1671
  styledLine,
@@ -1855,9 +1858,10 @@ function renderTailTurnBlock(role, content, contentWidth, colorEnabled) {
1855
1858
  const hangingIndent = colorEnabled ? `${accentSeq}\x1B[1m\u2503 \x1B[0m` : "\u2503 ";
1856
1859
  const boldOn = colorEnabled ? "\x1B[1m" : "";
1857
1860
  const boldOff = colorEnabled ? "\x1B[22m" : "";
1861
+ const fgOff = colorEnabled ? "\x1B[39m" : "";
1858
1862
  const lines = [];
1859
1863
  for (const rawLine of content.split("\n")) {
1860
- const styledLine = `${multilinePrefix}${boldOn}${rawLine}${boldOff}`;
1864
+ const styledLine = `${multilinePrefix}${accentSeq}${boldOn}${rawLine}${boldOff}${fgOff}`;
1861
1865
  const rows = wrapTranscriptLine(styledLine, contentWidth, hangingIndent);
1862
1866
  lines.push(
1863
1867
  ...surfaceSeq ? rows.map((row) => fillUserBubbleRow(row, surfaceSeq, contentWidth)) : rows
@@ -5087,16 +5091,17 @@ function osc52SetClipboard(text, output) {
5087
5091
  output.write(`\x1B]52;c;${payload}\x07`);
5088
5092
  }
5089
5093
  async function writeClipboard(text, target) {
5090
- try {
5094
+ if (target.transport === "system") {
5091
5095
  await target.systemWrite(text);
5092
- } catch {
5096
+ return;
5093
5097
  }
5094
- if (target.sendOsc52 !== false) {
5095
- try {
5096
- osc52SetClipboard(text, target.output);
5097
- } catch {
5098
- }
5098
+ if (target.transport === "osc52") {
5099
+ osc52SetClipboard(text, target.output);
5100
+ return;
5099
5101
  }
5102
+ throw new Error(
5103
+ "Client clipboard is unavailable in a non-interactive remote session."
5104
+ );
5100
5105
  }
5101
5106
 
5102
5107
  // packages/cli/tui/gitStatus.ts
@@ -6748,11 +6753,41 @@ function createTurnInjectionInbox() {
6748
6753
  function formatProcessTerminalWakeMessage(notices) {
6749
6754
  return [
6750
6755
  `<background_task_completion count="${notices.length}">`,
6751
- ...notices.map(formatProcessTerminalNoticeLine),
6752
- `\u9700\u8981\u8F93\u51FA/\u8BE6\u60C5\u65F6: taskLogs(taskId) \u6216 tasks`,
6756
+ ...notices.flatMap((notice) => [
6757
+ formatProcessTerminalNoticeLine(notice),
6758
+ ...notice.resultCapsule ? formatProcessResultCapsuleLines(notice.resultCapsule) : []
6759
+ ]),
6753
6760
  `</background_task_completion>`
6754
6761
  ].join("\n");
6755
6762
  }
6763
+ function formatProcessResultCapsuleLines(capsule) {
6764
+ const meta = [];
6765
+ if (capsule.durationMs !== void 0) meta.push(`duration=${capsule.durationMs}ms`);
6766
+ meta.push(capsule.truncated ? "tail-only" : "full");
6767
+ const stream = (name, value) => [
6768
+ `--- ${name} ---`,
6769
+ ...value.trim() ? value.replace(/\n+$/, "").split("\n") : ["(empty)"]
6770
+ ];
6771
+ const omittedChars = capsule.spill ? Math.max(0, capsule.spill.totalChars - capsule.stdout.length - capsule.stderr.length) : 0;
6772
+ return [
6773
+ `result capsule (${meta.join(", ")}):`,
6774
+ ...capsule.captureError ? [`capture error: ${capsule.captureError}`] : [],
6775
+ ...stream("stdout", capsule.stdout),
6776
+ ...stream("stderr", capsule.stderr),
6777
+ // Retrieval pointer reuses the tool-overflow convention: the model learns
6778
+ // one marker for "the tail above is not the whole story, full text lives
6779
+ // here", whether the truncation happened in a foreground tool result or in
6780
+ // a detached task capsule.
6781
+ ...capsule.spill ? [
6782
+ formatToolOverflowMarker({
6783
+ spillRef: capsule.spill.displayPath,
6784
+ totalChars: capsule.spill.totalChars,
6785
+ totalLines: capsule.spill.totalLines,
6786
+ omittedChars
6787
+ }).trim()
6788
+ ] : []
6789
+ ];
6790
+ }
6756
6791
  function formatProcessTerminalNoticeLine(notice) {
6757
6792
  const informative = notice.label && notice.label.trim() !== "" && notice.label !== notice.command;
6758
6793
  const label = informative ? ` (label: "${notice.label.replace(/(["\\])/g, "\\$1")}")` : "";
@@ -6763,7 +6798,30 @@ function buildProcessTerminalTurnMessage(notices) {
6763
6798
  if (notices.length === 0) return "";
6764
6799
  return formatProcessTerminalWakeMessage(notices);
6765
6800
  }
6801
+ function buildProcessTaskCompletedTurnEvent(notice) {
6802
+ return {
6803
+ kind: "background-task-completed",
6804
+ taskId: notice.taskId,
6805
+ status: notice.status,
6806
+ ...notice.exitCode !== void 0 ? { exitCode: notice.exitCode } : {},
6807
+ text: buildProcessTerminalTurnMessage([notice]),
6808
+ displayText: formatProcessTerminalNoticeLine(notice)
6809
+ };
6810
+ }
6811
+ var PENDING_NOTICE_PREFIX = "process-notice-v1:";
6812
+ function serializePendingProcessNotice(notice) {
6813
+ return notice.resultCapsule ? `${PENDING_NOTICE_PREFIX}${JSON.stringify(notice)}` : formatProcessTerminalNoticeLine(notice);
6814
+ }
6766
6815
  function parsePendingProcessNoticeLine(line) {
6816
+ if (line.startsWith(PENDING_NOTICE_PREFIX)) {
6817
+ try {
6818
+ const parsed = JSON.parse(line.slice(PENDING_NOTICE_PREFIX.length));
6819
+ if (parsed && typeof parsed.taskId === "string" && parsed.resultCapsule) {
6820
+ return parsed;
6821
+ }
6822
+ } catch {
6823
+ }
6824
+ }
6767
6825
  const taskMatch = line.match(
6768
6826
  /^\[Background task ([^ \]]+?)(?:\s+\(label: "((?:[^"\\]|\\.)*)"\))? finished: status=(\w+)(?: exitCode=(-?\d+))?\]$/
6769
6827
  );
@@ -6795,6 +6853,80 @@ function normalizeStatus(raw) {
6795
6853
  return "failed";
6796
6854
  }
6797
6855
 
6856
+ // packages/agent-runtime/processTerminalResume.ts
6857
+ var DEFAULT_MAX_CHAINED_COMPLETION_TURNS = 3;
6858
+ function createProcessTerminalResumeState() {
6859
+ const claimedTaskIds = /* @__PURE__ */ new Set();
6860
+ const chainDepthByDialog = /* @__PURE__ */ new Map();
6861
+ return {
6862
+ claimedTaskIds,
6863
+ chainDepthByDialog,
6864
+ noteUserTurn() {
6865
+ chainDepthByDialog.clear();
6866
+ }
6867
+ };
6868
+ }
6869
+ var resolveCap = (value) => {
6870
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 1) {
6871
+ return DEFAULT_MAX_CHAINED_COMPLETION_TURNS;
6872
+ }
6873
+ return Math.floor(value);
6874
+ };
6875
+ function decideProcessTerminalResume(input) {
6876
+ const taskId = input.notice.taskId;
6877
+ if (input.canDeliver === false) {
6878
+ return { kind: "notice-only", reason: "no-channel", taskId };
6879
+ }
6880
+ const dialogId = input.owner?.dialogId;
6881
+ if (!input.owner || !dialogId) {
6882
+ return { kind: "notice-only", reason: "unowned", taskId };
6883
+ }
6884
+ if (!input.notice.promoted) {
6885
+ return { kind: "notice-only", reason: "not-promoted", taskId };
6886
+ }
6887
+ if (input.state.claimedTaskIds.has(taskId)) {
6888
+ return { kind: "notice-only", reason: "duplicate", taskId };
6889
+ }
6890
+ const currentDialogId = input.currentDialogId ?? null;
6891
+ if (currentDialogId !== dialogId) {
6892
+ return { kind: "notice-only", reason: "dialog-mismatch", taskId };
6893
+ }
6894
+ if (input.turnActive) {
6895
+ input.state.claimedTaskIds.add(taskId);
6896
+ return { kind: "inject-turn", taskId, owner: input.owner, notice: input.notice };
6897
+ }
6898
+ const cap = resolveCap(input.maxChainedCompletionTurns);
6899
+ const depth = input.state.chainDepthByDialog.get(dialogId) ?? 0;
6900
+ if (depth >= cap) {
6901
+ return { kind: "notice-only", reason: "chain-cap", taskId };
6902
+ }
6903
+ input.state.claimedTaskIds.add(taskId);
6904
+ input.state.chainDepthByDialog.set(dialogId, depth + 1);
6905
+ return { kind: "completion-turn", taskId, owner: input.owner, notice: input.notice };
6906
+ }
6907
+ function createProcessTerminalAutoResumer(deps) {
6908
+ const state = createProcessTerminalResumeState();
6909
+ return {
6910
+ state,
6911
+ noteUserTurn: () => state.noteUserTurn(),
6912
+ decide: (notice) => {
6913
+ const promoted = notice.promoted ?? deps.isPromoted?.(notice.taskId) ?? false;
6914
+ const effectiveNotice = notice.promoted === promoted ? notice : { ...notice, promoted };
6915
+ const decision = decideProcessTerminalResume({
6916
+ notice: effectiveNotice,
6917
+ owner: deps.readOwner(notice.taskId),
6918
+ currentDialogId: deps.getCurrentDialogId(),
6919
+ turnActive: deps.isTurnActive(),
6920
+ state,
6921
+ ...deps.canDeliver ? { canDeliver: deps.canDeliver() } : {},
6922
+ ...deps.maxChainedCompletionTurns === void 0 ? {} : { maxChainedCompletionTurns: deps.maxChainedCompletionTurns }
6923
+ });
6924
+ deps.onDecision?.(decision);
6925
+ return decision;
6926
+ }
6927
+ };
6928
+ }
6929
+
6798
6930
  // packages/cli/client/turnBillingAudit.ts
6799
6931
  import { appendFileSync, mkdirSync as mkdirSync2 } from "node:fs";
6800
6932
  import { homedir as homedir4 } from "node:os";
@@ -7597,6 +7729,8 @@ async function runAskChoiceDialog(args) {
7597
7729
  // packages/chat/messages/contextualFragment.ts
7598
7730
  var BACKGROUND_RUN_OPEN = "<background_run_completion";
7599
7731
  var BACKGROUND_RUN_CLOSE = "</background_run_completion>";
7732
+ var BACKGROUND_TASK_OPEN = "<background_task_completion";
7733
+ var BACKGROUND_TASK_CLOSE = "</background_task_completion>";
7600
7734
  var SERVER_LEGACY_PREFIX = "--- \u540E\u53F0 run \u7EC8\u6001\u4E8B\u4EF6 ---";
7601
7735
  var TUI_LEGACY_PREFIX = "\u3010\u540E\u53F0 run \u7EC8\u6001\u901A\u77E5\u3011";
7602
7736
  var TIME_BLOCK_PREFIX = "--- \u5F53\u524D\u65F6\u95F4 ---";
@@ -7611,6 +7745,13 @@ var registry = [
7611
7745
  return trimmed.startsWith(BACKGROUND_RUN_OPEN) && trimmed.endsWith(BACKGROUND_RUN_CLOSE);
7612
7746
  }
7613
7747
  },
7748
+ {
7749
+ kind: "background_task_completion",
7750
+ match: (text) => {
7751
+ const trimmed = text.trim();
7752
+ return trimmed.startsWith(BACKGROUND_TASK_OPEN) && trimmed.endsWith(BACKGROUND_TASK_CLOSE);
7753
+ }
7754
+ },
7614
7755
  {
7615
7756
  kind: "server_legacy_wake",
7616
7757
  match: (text) => {
@@ -8310,6 +8451,7 @@ async function runOneAgentTurn(ctx, inputMsg, imageUrls, actionGateHandler, conf
8310
8451
  }
8311
8452
  }
8312
8453
  const message = req.text;
8454
+ if (req.event.kind === "user") ctx.noteUserTurn?.();
8313
8455
  ctx.forcedStop = false;
8314
8456
  ctx.turnEpoch += 1;
8315
8457
  const myEpoch = ctx.turnEpoch;
@@ -8317,7 +8459,7 @@ async function runOneAgentTurn(ctx, inputMsg, imageUrls, actionGateHandler, conf
8317
8459
  ctx.history.followBottom = true;
8318
8460
  const isInternalEvent = req.event.kind !== "user";
8319
8461
  const isContextualFragment = matchContextualFragment(message) !== null;
8320
- const transcriptText = isContextualFragment && req.event.kind === "child-run-completed" ? req.event.displayText ?? req.event.text : message;
8462
+ const transcriptText = isContextualFragment && (req.event.kind === "child-run-completed" || req.event.kind === "background-task-completed") ? req.event.displayText ?? req.event.text : message;
8321
8463
  startTurn(ctx.history, isInternalEvent ? "assistant" : "user");
8322
8464
  appendToCurrentTurn(
8323
8465
  ctx.history,
@@ -10473,7 +10615,12 @@ async function runTuiWorkspace(options) {
10473
10615
  await clipboard.write(t2);
10474
10616
  },
10475
10617
  output,
10476
- sendOsc52: isInteractiveInput(input)
10618
+ // Local sessions have direct access to the user's OS clipboard and
10619
+ // must not enqueue a redundant OSC 52 write behind it: that late
10620
+ // terminal-side write can overwrite a newer browser copy. Over SSH,
10621
+ // OSC 52 remains the only path to the client clipboard; a pipe/non-
10622
+ // interactive remote session has no valid client clipboard channel.
10623
+ transport: isRemoteSession(runtimeEnv) ? isInteractiveInput(input) ? "osc52" : "unavailable" : "system"
10477
10624
  });
10478
10625
  const readClipboardText = options.clipboardReader ?? (async () => {
10479
10626
  const { default: clipboard } = await import("./clipboardy-BX4NMYHE.js");
@@ -10560,16 +10707,17 @@ async function runTuiWorkspace(options) {
10560
10707
  });
10561
10708
  const pushPendingProcessNotice = (notice) => {
10562
10709
  if (sessionEnded) return;
10563
- const line = formatProcessTerminalNoticeLine(notice);
10710
+ const line = serializePendingProcessNotice(notice);
10564
10711
  state = {
10565
10712
  ...state,
10566
10713
  pendingProcessNotices: [...state.pendingProcessNotices ?? [], line]
10567
10714
  };
10568
10715
  scheduleRender();
10569
10716
  };
10570
- const unsubscribeProcessTerminal = getProcessRegistry().onProcessTerminal(
10571
- pushPendingProcessNotice
10572
- );
10717
+ let deliverProcessTerminalNotice = pushPendingProcessNotice;
10718
+ const unsubscribeProcessTerminal = getProcessRegistry().onProcessTerminal((notice) => {
10719
+ deliverProcessTerminalNotice(notice);
10720
+ });
10573
10721
  const effectiveEnv = options.env ? { ...process.env, ...options.env } : process.env;
10574
10722
  const runRegistryPoller = createRunRegistryPoller({
10575
10723
  getDockedRuns: () => activityIndicator.getAgentRuns(),
@@ -10834,6 +10982,7 @@ async function runTuiWorkspace(options) {
10834
10982
  };
10835
10983
  let chatQueueBinding = null;
10836
10984
  let turnInjectionInbox = null;
10985
+ let noteUserTurnHook = null;
10837
10986
  const turnCtx = {
10838
10987
  get state() {
10839
10988
  return state;
@@ -10883,6 +11032,7 @@ async function runTuiWorkspace(options) {
10883
11032
  set turnInjectionInbox(v) {
10884
11033
  turnInjectionInbox = v;
10885
11034
  },
11035
+ noteUserTurn: () => noteUserTurnHook?.(),
10886
11036
  get sessionEnded() {
10887
11037
  return sessionEnded;
10888
11038
  },
@@ -11102,6 +11252,14 @@ async function runTuiWorkspace(options) {
11102
11252
  };
11103
11253
  return { actionGateHandler, confirmDestructiveAction };
11104
11254
  };
11255
+ const processTerminalResumer = createProcessTerminalAutoResumer({
11256
+ readOwner: (taskId) => getProcessRegistry().getByTaskId(taskId)?.owner ?? null,
11257
+ isPromoted: (taskId) => getProcessRegistry().getByTaskId(taskId)?.promoted ?? false,
11258
+ getCurrentDialogId: () => state.dialogId ?? null,
11259
+ isTurnActive: () => busy || fixedInput.isPaused(),
11260
+ canDeliver: () => !sessionEnded && !done && runWakeHandler !== null
11261
+ });
11262
+ noteUserTurnHook = () => processTerminalResumer.noteUserTurn();
11105
11263
  const runIdleTextTurn = async (inputMsg) => {
11106
11264
  const req = createTurnRequest(inputMsg);
11107
11265
  const { actionGateHandler, confirmDestructiveAction } = buildInteractiveTurnHandlers();
@@ -11132,25 +11290,28 @@ ${err.message}` : ""}`
11132
11290
  fixedInput.exitOutputMode(buffer, cursorPos);
11133
11291
  };
11134
11292
  (options.env ?? process.env)[RUN_WAKE_CHANNEL_ENV] = "1";
11293
+ const printInternalEventLine = (displayText) => {
11294
+ const noticeLine = dimCliText(displayText, resolveCliColorEnabled());
11295
+ if (!isInteractiveInput(input)) {
11296
+ output.write(`${noticeLine}
11297
+ `);
11298
+ return;
11299
+ }
11300
+ history.followBottom = true;
11301
+ appendStreamSafeNotice(history, noticeLine, {
11302
+ appendLocalTurn,
11303
+ startTurn
11304
+ });
11305
+ renderHistoryToOutput();
11306
+ };
11135
11307
  runWakeHandler = (event) => {
11136
11308
  if (done) return;
11137
11309
  if (busy || fixedInput.isPaused()) {
11138
11310
  const text = typeof event === "string" ? event : event.text;
11139
11311
  const injected = !!turnInjectionInbox && turnInjectionInbox.push({ text, fallback: event });
11140
11312
  if (injected) {
11141
- const displayText = typeof event !== "string" && event.kind === "child-run-completed" ? event.displayText ?? event.text : text;
11142
- const noticeLine = dimCliText(displayText, resolveCliColorEnabled());
11143
- if (!isInteractiveInput(input)) {
11144
- output.write(`${noticeLine}
11145
- `);
11146
- } else {
11147
- history.followBottom = true;
11148
- appendStreamSafeNotice(history, noticeLine, {
11149
- appendLocalTurn,
11150
- startTurn
11151
- });
11152
- renderHistoryToOutput();
11153
- }
11313
+ const displayText = typeof event === "string" ? event : event.kind === "user" ? event.text : event.displayText ?? event.text;
11314
+ printInternalEventLine(displayText);
11154
11315
  } else {
11155
11316
  const { actionGateHandler, confirmDestructiveAction } = buildInteractiveTurnHandlers();
11156
11317
  ensureChatQueueBinding(turnCtx, actionGateHandler, confirmDestructiveAction).enqueue(event);
@@ -11167,6 +11328,18 @@ ${err.message}` : ""}`
11167
11328
  );
11168
11329
  });
11169
11330
  };
11331
+ deliverProcessTerminalNotice = (notice) => {
11332
+ if (done || sessionEnded) return;
11333
+ const decision = processTerminalResumer.decide(notice);
11334
+ if (decision.kind === "notice-only") {
11335
+ pushPendingProcessNotice(notice);
11336
+ return;
11337
+ }
11338
+ runWakeHandler?.(buildProcessTaskCompletedTurnEvent(notice));
11339
+ if (fixedInput.active && !fixedInput.isPaused()) {
11340
+ fixedInput.repaint(buffer, cursorPos);
11341
+ }
11342
+ };
11170
11343
  let autoScrollDirection = "up";
11171
11344
  const autoScrollStep = () => autoScrollStepForTicks(++autoScrollTicks);
11172
11345
  const startAutoScroll = (direction, mouseX) => {