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

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 (114) hide show
  1. package/{_executeModel-YXTTYRXS.js → _executeModel-IYPAOWQQ.js} +48 -48
  2. package/{action-QM2ONPYZ.js → action-UAHWPMZB.js} +7 -8
  3. package/{addContentAction-UXY3GM53.js → addContentAction-PFIP76LT.js} +6 -8
  4. package/{addDialogAgentAction-MUBYOG65.js → addDialogAgentAction-LWDAIDEU.js} +8 -9
  5. package/{agentDeleteCommand-4NO7Y6UI.js → agentDeleteCommand-M6KIV6ZZ.js} +36 -27
  6. package/{agentEmailCommands-NPP5TGZV.js → agentEmailCommands-JGAZ26N2.js} +60 -59
  7. package/{agentListCommands-IP5BNB5W.js → agentListCommands-3TQWUC4W.js} +120 -28
  8. package/{agentMachineCommands-24NFTIKY.js → agentMachineCommands-EBCDKO4T.js} +36 -26
  9. package/{agentRecordCommands-7AWSR46F.js → agentRecordCommands-ZKOLGEMX.js} +53 -52
  10. package/{agentRunCommand-P46WCJ6P.js → agentRunCommand-L6A3DKTB.js} +56 -57
  11. package/{agentRuntimeLocal-V5UV7S4R.js → agentRuntimeLocal-6Q4CEFXY.js} +27 -14
  12. package/{agentSlice-3CVAZZOP.js → agentSlice-XRG5ODYW.js} +7 -8
  13. package/{authCommand-B6P2XYLN.js → authCommand-ELPMOABY.js} +13 -13
  14. package/{authCommands-4YKA4GTU.js → authCommands-PUQRVHHW.js} +5 -5
  15. package/{chunk-AFON4QUU.js → chunk-3QKO4EHV.js} +3 -3
  16. package/{chunk-D55DXHXL.js → chunk-4GBNEA5B.js} +1 -1
  17. package/{chunk-PXZAAB4L.js → chunk-4LG74DRG.js} +4 -4
  18. package/{chunk-RBCNBU2A.js → chunk-524BDL33.js} +1 -0
  19. package/{chunk-HAC6GPRE.js → chunk-5EUAXXSV.js} +2 -2
  20. package/{chunk-P7GAHW32.js → chunk-5LDYVJXY.js} +191 -40
  21. package/{chunk-DSNLHTP3.js → chunk-66DXKPRS.js} +9 -2
  22. package/{chunk-5NYGMN4O.js → chunk-67Z375LK.js} +17 -17
  23. package/{chunk-6OHYC4BY.js → chunk-6PXKSN2M.js} +4 -3
  24. package/{chunk-LFFATN2M.js → chunk-ALEDPZVP.js} +94 -54
  25. package/{chunk-ZAUDEKML.js → chunk-DW75SYWV.js} +95 -2327
  26. package/{chunk-A4MYG3TR.js → chunk-EEUWELOX.js} +15 -15
  27. package/chunk-GVQT3FIB.js +2286 -0
  28. package/chunk-I2HCZWJU.js +144 -0
  29. package/{chunk-LBUTKV7S.js → chunk-IG2EZS3N.js} +67 -20
  30. package/chunk-IKXL2HZ3.js +70 -0
  31. package/{chunk-2CVZSC5L.js → chunk-IVAOVLM7.js} +1 -1
  32. package/{chunk-L3KWEH3V.js → chunk-KPFGD3YA.js} +43 -12
  33. package/{chunk-4VA3UQRF.js → chunk-KRMH46UV.js} +10 -10
  34. package/{chunk-MIQOUMSN.js → chunk-LFETMU66.js} +8 -8
  35. package/{chunk-RBB43B5W.js → chunk-LWYCA4ZT.js} +307 -43
  36. package/{chunk-EUN3SYY7.js → chunk-MMCDCZM4.js} +6 -6
  37. package/{chunk-YOCHZD7D.js → chunk-NCGFB7NN.js} +5 -3
  38. package/{chunk-KLOCUWKZ.js → chunk-OCDEWRE2.js} +1 -1
  39. package/{chunk-LJCH34R2.js → chunk-OOOKLEJ7.js} +6 -6
  40. package/{chunk-C4FTUXVF.js → chunk-QLUFR47U.js} +11 -1
  41. package/{chunk-RYMUT5JO.js → chunk-RB43SIIG.js} +32 -26
  42. package/{chunk-RQPZX6KP.js → chunk-S37OTGU7.js} +2 -2
  43. package/{chunk-AOKWJZ5N.js → chunk-S3UTETIC.js} +3 -2
  44. package/{chunk-ZJS64PZJ.js → chunk-SCBYSC74.js} +1 -1
  45. package/{chunk-AWY2AFHN.js → chunk-TSKWE74T.js} +53 -7
  46. package/{chunk-UBSKX3LP.js → chunk-UZZCXRHF.js} +6 -6
  47. package/{chunk-Q2WC4KGQ.js → chunk-V6ICY2YU.js} +5 -5
  48. package/{chunk-6KRA6AWI.js → chunk-VNGCTQ32.js} +1 -1
  49. package/{chunk-BB2PII22.js → chunk-WKWEV6K4.js} +1 -1
  50. package/{chunk-LW6FJFCT.js → chunk-WO6IG6YT.js} +146 -50
  51. package/{chunk-JTINRTBT.js → chunk-WPHL6ALY.js} +1 -1
  52. package/{chunk-KTHLAJEY.js → chunk-WZF7M6GX.js} +1 -1
  53. package/{chunk-LTH6AVG7.js → chunk-XDXO65DS.js} +3 -3
  54. package/{chunk-BFDWXLFF.js → chunk-XGMCGPEA.js} +64 -5
  55. package/{chunk-WESWWEVA.js → chunk-XGOTQ6ZG.js} +1 -1
  56. package/{chunk-VBKJTOAW.js → chunk-XHQWJUW4.js} +2 -2
  57. package/{chunk-O7VS7JLJ.js → chunk-XIZIRGXB.js} +15 -15
  58. package/{chunk-PTT6KSYQ.js → chunk-Y7QCVJ73.js} +239 -90
  59. package/{chunk-6UUD2WES.js → chunk-ZR4VHQ5D.js} +14 -13
  60. package/{createAgentAutomationAction-DYQOGAVE.js → createAgentAutomationAction-HZJ4LPCW.js} +23 -25
  61. package/{createDialogAction-ETB3KQQE.js → createDialogAction-KICYAHEQ.js} +25 -27
  62. package/{createPageAction-UF2RHA63.js → createPageAction-VWBZOQPP.js} +25 -27
  63. package/{dbSlice-R5EJKZBW.js → dbSlice-V4H2JFNB.js} +5 -6
  64. package/{deleteFile-WPWVZE4B.js → deleteFile-M7UNIUOO.js} +3 -3
  65. package/{dialogCommands-LYYC7XHF.js → dialogCommands-UMT7AOOR.js} +31 -22
  66. package/{dialogSlice-IFBZ4IT2.js → dialogSlice-G3WPGLY5.js} +23 -25
  67. package/{docCreateCommands-I66OI374.js → docCreateCommands-MAZSFQQ5.js} +34 -25
  68. package/{docDeleteCommands-OVRBCHMF.js → docDeleteCommands-DOTLD7HA.js} +34 -26
  69. package/{docReadCommands-YLWUMEH7.js → docReadCommands-PH255AKZ.js} +34 -25
  70. package/{docStore-65WO7U36.js → docStore-K7U47JYV.js} +22 -24
  71. package/{docUpdateCommands-NSICS4IN.js → docUpdateCommands-RLRID2K7.js} +34 -25
  72. package/fetchMessages-KTNM7QAR.js +1 -1
  73. package/{getPricing-7PUT44ZS.js → getPricing-6TOZXPAU.js} +4 -4
  74. package/{handleSendMessageAction-T76HEDOP.js → handleSendMessageAction-UAI2ZOGG.js} +27 -29
  75. package/index.js +62 -62
  76. package/{localDialogRead-YSKFFRTT.js → localDialogRead-2VRI24F4.js} +1 -1
  77. package/{machineCommands-4HQY6UVZ.js → machineCommands-FE5HOJWR.js} +58 -57
  78. package/{machineWsRunDispatch-7YW2M4FS.js → machineWsRunDispatch-J56M67NJ.js} +52 -51
  79. package/{models-MFXNI3TF.js → models-LSCRJJ6P.js} +2 -2
  80. package/package.json +1 -1
  81. package/{read-5ZMY7FKP.js → read-2MIMRBZ2.js} +3 -3
  82. package/{readDocTool-2NXDK32S.js → readDocTool-QHVGQHUJ.js} +1 -1
  83. package/{readlineWorkspace-FLQWOAUR.js → readlineWorkspace-GK33VXX2.js} +196 -123
  84. package/{removeDialogAgentAction-KOLQ2R5W.js → removeDialogAgentAction-7GO2PRVQ.js} +12 -13
  85. package/{runAgentClientLoop-IUV2TR3X.js → runAgentClientLoop-EEC3BHWI.js} +45 -46
  86. package/{setDialogExtraReferencesAction-OMTEO7X6.js → setDialogExtraReferencesAction-ZIDAVJSZ.js} +8 -9
  87. package/{setPrimaryDialogAgentAction-DOCIS6V4.js → setPrimaryDialogAgentAction-LK35C2D7.js} +12 -13
  88. package/{settingSlice-UWZJYDOA.js → settingSlice-PRRC6IJ7.js} +6 -7
  89. package/{skillDiscovery-UGSQGX2U.js → skillDiscovery-ZYHSX7VD.js} +3 -3
  90. package/{spaceCommands-BDDAT4VU.js → spaceCommands-XE4PS24W.js} +36 -29
  91. package/{spaceSlice-HH633ZA4.js → spaceSlice-OE57MB22.js} +21 -23
  92. package/{streamAgentChatTurn-UBZOVFKV.js → streamAgentChatTurn-CI6VMD2Y.js} +208 -101
  93. package/{toolApiClient-C7P7YSE4.js → toolApiClient-QI3YBNWB.js} +2 -2
  94. package/{tools-OQZ34KCU.js → tools-I5VPDJHG.js} +32 -33
  95. package/{tuiSummaryLlmCaller-42AEL3LL.js → tuiSummaryLlmCaller-TXLF4MEI.js} +5 -5
  96. package/{updateDialogTitleAction-A3OOMSDO.js → updateDialogTitleAction-BKXHTAYL.js} +27 -28
  97. package/chunk-5MMAK75Q.js +0 -15
  98. package/chunk-AZPCASRE.js +0 -36
  99. package/chunk-RBCENBG7.js +0 -36
  100. package/chunk-UAD2WT54.js +0 -64
  101. package/{agentPullCommand-N6UWRTVL.js → agentPullCommand-LHFBA5EI.js} +6 -6
  102. package/{chunk-JK7VW2FN.js → chunk-5MIDPSSK.js} +3 -3
  103. package/{chunk-VC6OZXO5.js → chunk-6WWHKODG.js} +4 -4
  104. package/{chunk-BT37DVDA.js → chunk-7VKWMOSI.js} +9 -9
  105. package/{chunk-3QAF2LTL.js → chunk-DZ3XJVET.js} +3 -3
  106. package/{chunk-5CS33IBL.js → chunk-PDL2AV3E.js} +3 -3
  107. package/{chunk-5MMZUWSG.js → chunk-TOILAPLH.js} +5 -5
  108. package/{chunk-DVRHHFEA.js → chunk-TSUJOM6N.js} +3 -3
  109. package/{db-6QED3ZVO.js → db-HCJ5PRB5.js} +3 -3
  110. package/{memoryCommands-HG4WKTU7.js → memoryCommands-HGNEENIN.js} +3 -3
  111. package/{offlineMarxistsAgentCommand-BCPJITJL.js → offlineMarxistsAgentCommand-5OOWZLJI.js} +3 -3
  112. package/{runtimeDoctorCommands-UWR5UDSM.js → runtimeDoctorCommands-4YVMXBQP.js} +5 -5
  113. package/{tableCommands-M3DJUETS.js → tableCommands-LV2PPHNY.js} +6 -6
  114. package/{understanding-ZOESBLF3.js → understanding-3CUQQ6SV.js} +3 -3
@@ -3,9 +3,10 @@ import {
3
3
  normalizeDialogRecord,
4
4
  readDialogSnapshot,
5
5
  sortDialogs
6
- } from "./chunk-O7VS7JLJ.js";
6
+ } from "./chunk-XIZIRGXB.js";
7
7
  import {
8
8
  ANSI_ESCAPE_REGEX,
9
+ CLI_AUTO_TIER_AGENT_KEYS,
9
10
  CLI_AUTO_TIER_AGENT_KEY_TABLE,
10
11
  CLI_IMAGE_AGENT_KEY,
11
12
  COLLAPSED_PASTE_PLACEHOLDER_RE,
@@ -39,6 +40,7 @@ import {
39
40
  renderTokenStatus,
40
41
  replaceCollapsedPastesWithReferences,
41
42
  resolveAgentContextWindow,
43
+ resolveCliAutoFallbackTier,
42
44
  resolveCliColorEnabled,
43
45
  resolveSkillReference,
44
46
  resolveTuiBrightness,
@@ -59,23 +61,23 @@ import {
59
61
  visibleWidth,
60
62
  wrapTextToLines,
61
63
  wrapTranscriptLine
62
- } from "./chunk-LFFATN2M.js";
64
+ } from "./chunk-ALEDPZVP.js";
63
65
  import "./chunk-6HYVJV7B.js";
64
66
  import {
65
67
  listFavoriteAgentIdsAcrossServers,
66
68
  listLocalCachedAgents,
67
69
  listRemoteAgents,
68
70
  listRemoteAgentsAcrossServers
69
- } from "./chunk-DSNLHTP3.js";
71
+ } from "./chunk-66DXKPRS.js";
70
72
  import "./chunk-ID4G2MAR.js";
71
73
  import {
72
74
  listUserRecordsFromServers
73
- } from "./chunk-BB2PII22.js";
74
- import "./chunk-3QAF2LTL.js";
75
+ } from "./chunk-WKWEV6K4.js";
76
+ import "./chunk-DZ3XJVET.js";
75
77
  import {
76
78
  createCliLocalRuntimeAdapter
77
- } from "./chunk-P7GAHW32.js";
78
- import "./chunk-5MMZUWSG.js";
79
+ } from "./chunk-5LDYVJXY.js";
80
+ import "./chunk-TOILAPLH.js";
79
81
  import "./chunk-CMKUBIGW.js";
80
82
  import "./chunk-JBTJAPUF.js";
81
83
  import {
@@ -84,126 +86,109 @@ import {
84
86
  import {
85
87
  queryUserRecords,
86
88
  readDbRecord
87
- } from "./chunk-EUN3SYY7.js";
88
- import "./chunk-ZJS64PZJ.js";
89
+ } from "./chunk-MMCDCZM4.js";
90
+ import "./chunk-SCBYSC74.js";
89
91
  import {
90
92
  resolveCliAgentKeyInput
91
93
  } from "./chunk-VHBWHNVT.js";
92
94
  import "./chunk-LTRXGFMS.js";
93
- import "./chunk-KTHLAJEY.js";
95
+ import "./chunk-WZF7M6GX.js";
94
96
  import "./chunk-ATNTHIZI.js";
95
97
  import "./chunk-JEXVIMYZ.js";
96
98
  import {
97
99
  prepareTools
98
- } from "./chunk-HAC6GPRE.js";
99
- import "./chunk-D55DXHXL.js";
100
+ } from "./chunk-5EUAXXSV.js";
101
+ import "./chunk-4GBNEA5B.js";
100
102
  import {
101
103
  expandEnabledPacks
102
- } from "./chunk-PTT6KSYQ.js";
104
+ } from "./chunk-Y7QCVJ73.js";
103
105
  import "./chunk-GAKEBQD6.js";
106
+ import "./chunk-I2HCZWJU.js";
104
107
  import "./chunk-KQHGZWSV.js";
105
- import "./chunk-2CVZSC5L.js";
108
+ import "./chunk-IVAOVLM7.js";
106
109
  import "./chunk-3LY4F7SV.js";
107
110
  import "./chunk-VP4WJWKW.js";
108
111
  import "./chunk-63W5N6P3.js";
109
112
  import "./chunk-VF4K2QE6.js";
110
- import "./chunk-LJCH34R2.js";
111
- import "./chunk-A4MYG3TR.js";
112
- import "./chunk-VC6OZXO5.js";
113
+ import "./chunk-OOOKLEJ7.js";
114
+ import "./chunk-EEUWELOX.js";
115
+ import "./chunk-6WWHKODG.js";
113
116
  import "./chunk-OWOHNGCN.js";
114
117
  import {
115
- DEFAULT_CONTEXT_WINDOW,
116
- estimateTokenCount,
117
- extractReferenceKeysFromMessage,
118
- getModelContextWindow,
119
- planCompression,
120
- serializeMessageContent
121
- } from "./chunk-ZAUDEKML.js";
118
+ extractReferenceKeysFromMessage
119
+ } from "./chunk-DW75SYWV.js";
122
120
  import {
123
121
  buildBuiltinSummaryContent
124
122
  } from "./chunk-V2J635L5.js";
125
123
  import "./chunk-MRC4Q34M.js";
126
124
  import "./chunk-MTU75CZ2.js";
127
125
  import "./chunk-CWMSB67P.js";
128
- import "./chunk-4VA3UQRF.js";
129
- import "./chunk-LTH6AVG7.js";
126
+ import "./chunk-KRMH46UV.js";
127
+ import "./chunk-XDXO65DS.js";
130
128
  import "./chunk-Z4NR32XR.js";
131
129
  import "./chunk-M76ECQRD.js";
132
- import "./chunk-RQPZX6KP.js";
133
- import "./chunk-UBSKX3LP.js";
134
- import "./chunk-Y5GCAMGP.js";
135
- import "./chunk-SOTZ6RDN.js";
136
- import "./chunk-BFDWXLFF.js";
137
- import "./chunk-UAD2WT54.js";
138
- import "./chunk-L3KWEH3V.js";
139
- import "./chunk-AZPCASRE.js";
140
- import "./chunk-RBCENBG7.js";
141
- import "./chunk-HNW7IJSK.js";
142
- import "./chunk-XENYHRUE.js";
143
- import "./chunk-JTINRTBT.js";
144
- import {
145
- runSelfUpdate
146
- } from "./chunk-JEMATI63.js";
147
- import {
148
- saveProfileAgentSelection,
149
- saveProfileLocale
150
- } from "./chunk-ROWQEJRP.js";
151
- import {
152
- readPipeText,
153
- spawnProcess
154
- } from "./chunk-IDZTNRP2.js";
155
- import {
156
- buildSkillDiscoveryContextBlock
157
- } from "./chunk-AFON4QUU.js";
158
- import "./chunk-C4FTUXVF.js";
159
- import "./chunk-KKY4B2Q2.js";
160
- import "./chunk-WZSRQNQG.js";
161
130
  import {
162
131
  buildLocalWorkspaceOpenAiTools,
163
132
  buildLocalWorkspaceToolset,
164
133
  getProcessRegistry
165
- } from "./chunk-LBUTKV7S.js";
166
- import "./chunk-6UUD2WES.js";
134
+ } from "./chunk-IG2EZS3N.js";
135
+ import "./chunk-ZR4VHQ5D.js";
167
136
  import "./chunk-ZNFJWEN4.js";
168
- import "./chunk-YOCHZD7D.js";
137
+ import "./chunk-NCGFB7NN.js";
169
138
  import {
170
139
  readCommandActionGatePayload,
171
140
  resolveAgentImageInputSupport
172
- } from "./chunk-RBB43B5W.js";
141
+ } from "./chunk-LWYCA4ZT.js";
173
142
  import "./chunk-OPZYGHUC.js";
174
143
  import {
175
144
  buildCurrentTimeBlock,
176
145
  buildIdentityBlock,
177
146
  buildRuntimeGuidanceBlocks
178
- } from "./chunk-6KRA6AWI.js";
179
- import "./chunk-AWY2AFHN.js";
147
+ } from "./chunk-VNGCTQ32.js";
148
+ import "./chunk-TSKWE74T.js";
180
149
  import {
181
150
  canonicalizeToolNames
182
- } from "./chunk-6OHYC4BY.js";
151
+ } from "./chunk-6PXKSN2M.js";
183
152
  import {
184
- clipCompactText
185
- } from "./chunk-5MMAK75Q.js";
186
- import "./chunk-AOKWJZ5N.js";
187
- import "./chunk-5CS33IBL.js";
153
+ DEFAULT_CONTEXT_WINDOW,
154
+ clipCompactText,
155
+ estimateTokenCount,
156
+ getModelContextWindow,
157
+ planCompression,
158
+ serializeMessageContent
159
+ } from "./chunk-GVQT3FIB.js";
160
+ import "./chunk-S3UTETIC.js";
161
+ import "./chunk-PDL2AV3E.js";
188
162
  import "./chunk-JZPBVBIY.js";
189
163
  import "./chunk-BYXBJQAS.js";
190
- import "./chunk-KX6YBIHG.js";
191
- import "./chunk-RBCNBU2A.js";
192
- import "./chunk-O4BU24WZ.js";
193
- import "./chunk-I42VC5KR.js";
194
- import "./chunk-WWC7I6TA.js";
195
- import "./chunk-JK7VW2FN.js";
164
+ import "./chunk-5MIDPSSK.js";
196
165
  import {
197
166
  extractCustomId
198
167
  } from "./chunk-DFFIZ25G.js";
199
168
  import "./chunk-3ASDTTEI.js";
169
+ import "./chunk-AMJ7LA5D.js";
200
170
  import {
201
- asTrimmedLowercaseString
202
- } from "./chunk-QSJ3HFEF.js";
171
+ toErrorMessage
172
+ } from "./chunk-HNMXYYJR.js";
173
+ import "./chunk-H33743XH.js";
174
+ import "./chunk-LM6IYQ3F.js";
175
+ import "./chunk-SOTZ6RDN.js";
176
+ import "./chunk-HNW7IJSK.js";
177
+ import "./chunk-XENYHRUE.js";
203
178
  import {
204
179
  compactWhitespace
205
180
  } from "./chunk-DWLEOOGR.js";
206
- import "./chunk-AMJ7LA5D.js";
181
+ import {
182
+ runSelfUpdate
183
+ } from "./chunk-JEMATI63.js";
184
+ import {
185
+ saveProfileAgentSelection,
186
+ saveProfileLocale
187
+ } from "./chunk-ROWQEJRP.js";
188
+ import {
189
+ readPipeText,
190
+ spawnProcess
191
+ } from "./chunk-IDZTNRP2.js";
207
192
  import {
208
193
  parseUserIdFromAuthToken,
209
194
  resolveAuthToken,
@@ -213,24 +198,40 @@ import {
213
198
  import {
214
199
  DEFAULT_NOLO_SERVER_URL
215
200
  } from "./chunk-OLZBQWZU.js";
201
+ import "./chunk-IKXL2HZ3.js";
202
+ import "./chunk-524BDL33.js";
203
+ import "./chunk-S37OTGU7.js";
204
+ import "./chunk-UZZCXRHF.js";
205
+ import "./chunk-Y5GCAMGP.js";
206
+ import "./chunk-KX6YBIHG.js";
207
+ import "./chunk-XGMCGPEA.js";
208
+ import "./chunk-KPFGD3YA.js";
209
+ import "./chunk-O4BU24WZ.js";
210
+ import "./chunk-I42VC5KR.js";
211
+ import "./chunk-WWC7I6TA.js";
212
+ import "./chunk-WPHL6ALY.js";
216
213
  import {
217
- toErrorMessage
218
- } from "./chunk-HNMXYYJR.js";
219
- import "./chunk-H33743XH.js";
220
- import "./chunk-LM6IYQ3F.js";
221
- import "./chunk-VBKJTOAW.js";
222
- import "./chunk-DVRHHFEA.js";
214
+ asTrimmedLowercaseString
215
+ } from "./chunk-QSJ3HFEF.js";
216
+ import "./chunk-XHQWJUW4.js";
217
+ import "./chunk-TSUJOM6N.js";
223
218
  import "./chunk-OOSFSFMA.js";
224
219
  import "./chunk-GBRG75BQ.js";
220
+ import "./chunk-KUG52IAP.js";
225
221
  import "./chunk-3EUW3WEO.js";
226
222
  import "./chunk-U6VC4MU4.js";
227
- import "./chunk-KUG52IAP.js";
228
223
  import "./chunk-LCBAMY2M.js";
229
224
  import "./chunk-4SN6J65J.js";
230
225
  import "./chunk-CF7PE763.js";
231
226
  import {
232
227
  asOptionalTrimmedString
233
228
  } from "./chunk-G3SUCT4W.js";
229
+ import {
230
+ buildSkillDiscoveryContextBlock
231
+ } from "./chunk-3QKO4EHV.js";
232
+ import "./chunk-WZSRQNQG.js";
233
+ import "./chunk-QLUFR47U.js";
234
+ import "./chunk-KKY4B2Q2.js";
234
235
  import "./chunk-4VNS5WPM.js";
235
236
 
236
237
  // packages/cli/tui/readlineWorkspace.ts
@@ -242,7 +243,7 @@ import { join as join2 } from "node:path";
242
243
  // packages/cli/client/estimateCliContext.ts
243
244
  import { existsSync, readFileSync } from "node:fs";
244
245
  import { join } from "node:path";
245
- var DEFAULT_CLI_PACKS = ["code", "agent-orchestration"];
246
+ var DEFAULT_CLI_PACKS = ["code", "agent-orchestration", "skills"];
246
247
  var DEFAULT_CLI_PLATFORM_TOOLS = [
247
248
  "ui_ask_choice",
248
249
  "exa_search",
@@ -977,9 +978,15 @@ async function runConfirmDialog(args) {
977
978
  value: false
978
979
  }
979
980
  ];
980
- const isDestructiveShell = args.request.action === "destructive_shell_command";
981
- const titleText = isDestructiveShell ? t("dialogConfirmTitle") : args.request.title;
982
- const bodyText = isDestructiveShell ? t("dialogConfirmBody") : args.request.body;
981
+ let titleText = args.request.title;
982
+ let bodyText = args.request.body;
983
+ if (args.request.action === "destructive_shell_command") {
984
+ titleText = t("dialogConfirmTitle");
985
+ bodyText = t("dialogConfirmBody");
986
+ } else if (args.request.action === "external_file_access") {
987
+ titleText = t("dialogConfirmExternalFileTitle");
988
+ bodyText = t("dialogConfirmExternalFileBody");
989
+ }
983
990
  const terminalWidth = typeof output.columns === "number" && output.columns > 0 ? output.columns : FALLBACK_TERMINAL_WIDTH;
984
991
  const titleLines = [
985
992
  renderDialogTitle(`${titleText} ${t("dialogConfirmHint")}`)
@@ -1707,12 +1714,12 @@ function sortAgentsFavoriteOwnedPublic(items) {
1707
1714
  // packages/cli/tui/agentCatalog.ts
1708
1715
  var DEFAULT_TUI_AGENT_KEY = "agent-pub-01NOLOAPPBLD000000019KCKT0";
1709
1716
  function formatAgentSourceLabel(entry) {
1710
- if (entry.kind === "platform" || entry.apiSource === "platform") return "\u5E73\u53F0";
1717
+ if (entry.kind === "platform" || entry.apiSource === "platform") return t("agentSourcePlatform");
1711
1718
  if (entry.apiSource === "cli") {
1712
- return entry.cliProvider ? `\u8BA2\u9605(${entry.cliProvider})` : "\u8BA2\u9605";
1719
+ return entry.cliProvider ? `${t("agentSourceSubscription")}(${entry.cliProvider})` : t("agentSourceSubscription");
1713
1720
  }
1714
- if (entry.apiSource === "custom") return "API";
1715
- return "\u5E73\u53F0";
1721
+ if (entry.apiSource === "custom") return t("agentSourceApi");
1722
+ return t("agentSourcePlatform");
1716
1723
  }
1717
1724
  var PLATFORM_AGENTS = [
1718
1725
  {
@@ -1896,14 +1903,24 @@ function findAgentCatalogEntry(entries, rawTarget) {
1896
1903
  if (!target) return null;
1897
1904
  if (/^\d+$/.test(target)) {
1898
1905
  const entry = entries[Number(target) - 1];
1899
- return entry ? { name: entry.name, key: entry.key, model: entry.model } : null;
1906
+ return entry ? {
1907
+ name: entry.name,
1908
+ key: entry.key,
1909
+ model: entry.model,
1910
+ ...entry.apiSource ? { apiSource: entry.apiSource } : entry.kind === "platform" ? { apiSource: "platform" } : {}
1911
+ } : null;
1900
1912
  }
1901
1913
  const lower = target.toLowerCase();
1902
1914
  const byName = entries.find(
1903
1915
  (entry) => entry.name.toLowerCase() === lower || entry.key.toLowerCase() === lower || entry.key.toLowerCase().endsWith(`-${lower}`)
1904
1916
  );
1905
1917
  if (byName) {
1906
- return { name: byName.name, key: byName.key, model: byName.model };
1918
+ return {
1919
+ name: byName.name,
1920
+ key: byName.key,
1921
+ model: byName.model,
1922
+ ...byName.apiSource ? { apiSource: byName.apiSource } : byName.kind === "platform" ? { apiSource: "platform" } : {}
1923
+ };
1907
1924
  }
1908
1925
  if (target.startsWith("agent-") || target.startsWith("agent-pub-")) {
1909
1926
  return { name: target, key: target };
@@ -1964,6 +1981,7 @@ async function runAgentPicker(args) {
1964
1981
  name: selected.name,
1965
1982
  key: selected.key,
1966
1983
  model: selected.model,
1984
+ apiSource: selected.apiSource ?? (selected.kind === "platform" ? "platform" : void 0),
1967
1985
  entries
1968
1986
  };
1969
1987
  }
@@ -1974,7 +1992,10 @@ function resolveAgentSwitchTarget(rawTarget, catalogEntries = []) {
1974
1992
  return {
1975
1993
  name: aliasEntry?.name ?? asTrimmedLowercaseString(rawTarget),
1976
1994
  key: resolvedKey,
1977
- ...aliasEntry?.model ? { model: aliasEntry.model } : {}
1995
+ ...aliasEntry?.model ? { model: aliasEntry.model } : {},
1996
+ ...aliasEntry ? {
1997
+ ...aliasEntry.apiSource ? { apiSource: aliasEntry.apiSource } : aliasEntry.kind === "platform" ? { apiSource: "platform" } : {}
1998
+ } : {}
1978
1999
  };
1979
2000
  }
1980
2001
  return findAgentCatalogEntry(catalogEntries, rawTarget);
@@ -2408,12 +2429,14 @@ function renderStatusLine(state) {
2408
2429
  const untrackedText = untracked > 0 ? ` ${themeText(`?${untracked}`, "muted", colorEnabled)}` : "";
2409
2430
  parts.push(`${branchText}${modifiedText}${untrackedText}`);
2410
2431
  }
2432
+ const credits = state.apiSource === "platform" ? state.turnTokens?.credits : void 0;
2433
+ const creditsSuffix = credits !== void 0 && credits > 0 ? ` \xB7 \u26A1 ${credits.toFixed(2)} \u79EF\u5206` : "";
2411
2434
  const tokenSegment = themeText(
2412
2435
  renderComposerTokenChip(
2413
2436
  state.turnTokens,
2414
2437
  state.contextWindow,
2415
2438
  state.estimatedContextTokens
2416
- ),
2439
+ ) + creditsSuffix,
2417
2440
  "muted",
2418
2441
  colorEnabled
2419
2442
  );
@@ -2926,7 +2949,8 @@ function createInitialTuiState(env = process.env) {
2926
2949
  agentKey,
2927
2950
  agentName: autoRouteDefault ? "DeepSeek V4 Flash" : agentName,
2928
2951
  model: autoRouteDefault ? "deepseek-v4-flash" : void 0
2929
- })
2952
+ }),
2953
+ apiSource: PLATFORM_AGENTS.some((entry) => entry.key === agentKey) ? "platform" : void 0
2930
2954
  };
2931
2955
  }
2932
2956
  function applyAgentSwitch(state, target, opts) {
@@ -2948,7 +2972,8 @@ function applyAgentSwitch(state, target, opts) {
2948
2972
  agentKey: target.key,
2949
2973
  agentName: target.name,
2950
2974
  model: target.model
2951
- })
2975
+ }),
2976
+ apiSource: target.apiSource
2952
2977
  },
2953
2978
  output: `Switched to ${target.name}. ${state.dialogId ? `Dialog kept: ${state.dialogId}` : "Dialog kept: new"}`
2954
2979
  };
@@ -4485,10 +4510,14 @@ async function runAgentChat(scriptDir, state, message, env, output, agentRunner
4485
4510
  effectiveAgentName = cachedRoute.agentName;
4486
4511
  } else if (!continueId && env.NOLO_AUTO_ROUTE !== "0" && state.agentKey === DEFAULT_TUI_AGENT_KEY) {
4487
4512
  const authToken = env.AUTH_TOKEN ?? env.AUTH ?? env.BENCHMARK_AUTH_TOKEN ?? "";
4488
- const route = await classifyCliAutoRoute(message, {
4513
+ const route = authToken ? await classifyCliAutoRoute(message, {
4489
4514
  serverUrl: state.serverUrl,
4490
4515
  authToken
4491
- });
4516
+ }) : {
4517
+ agentKey: CLI_AUTO_TIER_AGENT_KEYS[resolveCliAutoFallbackTier(message)],
4518
+ tier: resolveCliAutoFallbackTier(message),
4519
+ classified: false
4520
+ };
4492
4521
  effectiveAgentKey = route.agentKey;
4493
4522
  effectiveAgentName = `auto\u2192${route.tier}`;
4494
4523
  if (effectiveAgentKey !== state.agentKey) {
@@ -4638,14 +4667,20 @@ async function runAgentChat(scriptDir, state, message, env, output, agentRunner
4638
4667
  function waitForActionGate(rl, input, output, gate, spawnRunner) {
4639
4668
  const commandPayload = gate.kind === "handoff" ? readCommandActionGatePayload(gate.payload) : null;
4640
4669
  const displayCommand = commandPayload?.displayCommand ?? commandPayload?.command.join(" ") ?? gate.title;
4641
- output.write("\n[nolo] Action needed in your terminal\n");
4642
- output.write(`[nolo] ${gate.title}
4670
+ const isInteractiveHandoff = gate.kind === "handoff" && gate.title === "This command requires an interactive terminal.";
4671
+ const title = isInteractiveHandoff ? t("actionGateInteractiveTitle") : gate.title;
4672
+ const body = isInteractiveHandoff ? t("actionGateInteractiveBody") : gate.body;
4673
+ output.write(`
4674
+ [nolo] ${t("actionGateNeeded")}
4643
4675
  `);
4644
- if (gate.body) output.write(`[nolo] ${gate.body}
4676
+ output.write(`[nolo] ${title}
4677
+ `);
4678
+ if (body) output.write(`[nolo] ${body}
4645
4679
  `);
4646
4680
  output.write(` ${displayCommand}
4647
4681
  `);
4648
- output.write("[nolo] Press Enter to run it now. Follow any prompts below, or Ctrl+C to cancel.\n");
4682
+ output.write(`[nolo] ${t("actionGateEnterHint")}
4683
+ `);
4649
4684
  return new Promise((resolve2) => {
4650
4685
  let settled = false;
4651
4686
  const finish = (result) => {
@@ -4735,17 +4770,28 @@ function isInteractiveInput(input) {
4735
4770
  function waitForRawActionGate(input, output, gate, spawnRunner, hooks) {
4736
4771
  const commandPayload = gate.kind === "handoff" ? readCommandActionGatePayload(gate.payload) : null;
4737
4772
  const displayCommand = commandPayload?.displayCommand ?? commandPayload?.command.join(" ") ?? gate.title;
4738
- output.write("\n[nolo] Action needed in your terminal\n");
4739
- output.write(`[nolo] ${gate.title}
4773
+ const isInteractiveHandoff = gate.kind === "handoff" && gate.title === "This command requires an interactive terminal.";
4774
+ const title = isInteractiveHandoff ? t("actionGateInteractiveTitle") : gate.title;
4775
+ const body = isInteractiveHandoff ? t("actionGateInteractiveBody") : gate.body;
4776
+ output.write(`
4777
+ [nolo] ${t("actionGateNeeded")}
4740
4778
  `);
4741
- if (gate.body) output.write(`[nolo] ${gate.body}
4779
+ output.write(`[nolo] ${title}
4780
+ `);
4781
+ if (body) output.write(`[nolo] ${body}
4742
4782
  `);
4743
4783
  output.write(` ${displayCommand}
4744
4784
  `);
4745
- output.write("[nolo] Press Enter to run it now. Follow any prompts below, or Ctrl+C to cancel.\n");
4785
+ output.write(`[nolo] ${t("actionGateEnterHint")}
4786
+ `);
4746
4787
  return new Promise((resolve2) => {
4747
4788
  const rawInput = input;
4789
+ let settled = false;
4790
+ let commandRunning = false;
4748
4791
  const finish = (result) => {
4792
+ if (settled) return;
4793
+ settled = true;
4794
+ hooks?.registerToken?.(null);
4749
4795
  input.off("data", onData);
4750
4796
  resolve2(result);
4751
4797
  };
@@ -4763,13 +4809,9 @@ function waitForRawActionGate(input, output, gate, spawnRunner, hooks) {
4763
4809
  actionGateResult: { gateId: gate.id, status: "failed", output: message }
4764
4810
  }
4765
4811
  });
4766
- const onData = async (chunk) => {
4767
- const text = String(chunk);
4768
- if (text.includes("")) {
4769
- cancel("interrupted");
4770
- return;
4771
- }
4772
- if (!text.includes("\r") && !text.includes("\n")) return;
4812
+ const runCommand = async () => {
4813
+ if (settled || commandRunning) return;
4814
+ commandRunning = true;
4773
4815
  if (!commandPayload) {
4774
4816
  fail("unsupported gate payload");
4775
4817
  return;
@@ -4807,7 +4849,25 @@ function waitForRawActionGate(input, output, gate, spawnRunner, hooks) {
4807
4849
  }
4808
4850
  });
4809
4851
  };
4810
- input.on("data", onData);
4852
+ const handleToken = (text) => {
4853
+ if (settled || commandRunning) return;
4854
+ if (text.includes("")) {
4855
+ cancel("interrupted");
4856
+ return;
4857
+ }
4858
+ if (text.includes("\r") || text.includes("\n")) {
4859
+ void runCommand();
4860
+ }
4861
+ };
4862
+ const onData = (chunk) => {
4863
+ const text = String(chunk);
4864
+ handleToken(text);
4865
+ };
4866
+ if (hooks?.registerToken) {
4867
+ hooks.registerToken(handleToken);
4868
+ } else {
4869
+ input.on("data", onData);
4870
+ }
4811
4871
  });
4812
4872
  }
4813
4873
  async function startTuiWorkspace(options) {
@@ -4952,6 +5012,7 @@ ${t("copyViewHint")}
4952
5012
  return true;
4953
5013
  };
4954
5014
  let modalOwnsKeyboard = false;
5015
+ let rawActionGateTokenHandler = null;
4955
5016
  const runOneAgentTurn = async (message, imageUrls, actionGateHandler, confirmDestructiveAction) => {
4956
5017
  forcedStop = false;
4957
5018
  turnEpoch += 1;
@@ -5195,7 +5256,8 @@ ${t("copyViewHint")}
5195
5256
  agentKey: pickResult.key,
5196
5257
  agentName: pickResult.name,
5197
5258
  model: pickResult.model
5198
- })
5259
+ }),
5260
+ ...pickResult.apiSource ? { apiSource: pickResult.apiSource } : {}
5199
5261
  };
5200
5262
  if (state.dialogId) autoRouteByDialog.delete(state.dialogId);
5201
5263
  explicitAgentSwitch = true;
@@ -5497,7 +5559,10 @@ ${err.message}` : ""}`
5497
5559
  }
5498
5560
  return;
5499
5561
  }
5500
- if (modalOwnsKeyboard) return;
5562
+ if (modalOwnsKeyboard) {
5563
+ rawActionGateTokenHandler?.(sequence);
5564
+ return;
5565
+ }
5501
5566
  const busyLock = busy;
5502
5567
  const scrollAction = parseScrollAction(sequence);
5503
5568
  if (scrollAction) {
@@ -5533,10 +5598,7 @@ ${err.message}` : ""}`
5533
5598
  pasteStore
5534
5599
  });
5535
5600
  if (result.copyView) {
5536
- if (busyLock) return;
5537
- busy = true;
5538
5601
  const opened = await openCopyView();
5539
- busy = false;
5540
5602
  if (!opened) {
5541
5603
  history.followBottom = true;
5542
5604
  startTurn(history, "assistant");
@@ -5556,6 +5618,8 @@ ${err.message}` : ""}`
5556
5618
  result.submit,
5557
5619
  pasteStore
5558
5620
  );
5621
+ const submittedTrimmed = submittedText.trim();
5622
+ const startsChatTurn = submittedTrimmed.length > 0 && !submittedTrimmed.startsWith("/") && !submittedTrimmed.startsWith("!");
5559
5623
  if (busyLock) {
5560
5624
  const trimmedText = submittedText.trim();
5561
5625
  const busySlashCommand = trimmedText.split(/\s+/)[0]?.toLowerCase();
@@ -5592,7 +5656,10 @@ ${hint}` : hint;
5592
5656
  try {
5593
5657
  return await waitForRawActionGate(input, output, gate, spawnRunner, {
5594
5658
  beforeSubprocess: () => fixedInput.pause(),
5595
- afterSubprocess: () => fixedInput.resumeFromSubprocess()
5659
+ afterSubprocess: () => fixedInput.resumeFromSubprocess(),
5660
+ registerToken: (handler) => {
5661
+ rawActionGateTokenHandler = handler;
5662
+ }
5596
5663
  });
5597
5664
  } finally {
5598
5665
  modalOwnsKeyboard = false;
@@ -5639,7 +5706,10 @@ ${hint}` : hint;
5639
5706
  try {
5640
5707
  return await waitForRawActionGate(input, output, gate, spawnRunner, {
5641
5708
  beforeSubprocess: () => fixedInput.pause(),
5642
- afterSubprocess: () => fixedInput.resumeFromSubprocess()
5709
+ afterSubprocess: () => fixedInput.resumeFromSubprocess(),
5710
+ registerToken: (handler) => {
5711
+ rawActionGateTokenHandler = handler;
5712
+ }
5643
5713
  });
5644
5714
  } finally {
5645
5715
  modalOwnsKeyboard = false;
@@ -5693,7 +5763,7 @@ ${err.message}` : ""}`
5693
5763
  return;
5694
5764
  }
5695
5765
  }
5696
- busy = true;
5766
+ busy = startsChatTurn;
5697
5767
  buffer = "";
5698
5768
  cursorPos2 = 0;
5699
5769
  fixedInput.enterOutputMode(submittedText);
@@ -5706,7 +5776,10 @@ ${err.message}` : ""}`
5706
5776
  try {
5707
5777
  return await waitForRawActionGate(input, output, gate, spawnRunner, {
5708
5778
  beforeSubprocess: () => fixedInput.pause(),
5709
- afterSubprocess: () => fixedInput.resumeFromSubprocess()
5779
+ afterSubprocess: () => fixedInput.resumeFromSubprocess(),
5780
+ registerToken: (handler) => {
5781
+ rawActionGateTokenHandler = handler;
5782
+ }
5710
5783
  });
5711
5784
  } finally {
5712
5785
  modalOwnsKeyboard = false;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  cleanupCliSessionForDialog
3
- } from "./chunk-LTH6AVG7.js";
3
+ } from "./chunk-XDXO65DS.js";
4
4
  import {
5
5
  getPrimaryDialogAgentId,
6
6
  removeDialogAgentId
@@ -8,30 +8,29 @@ import {
8
8
  import {
9
9
  require_date_fns
10
10
  } from "./chunk-M76ECQRD.js";
11
- import "./chunk-UBSKX3LP.js";
11
+ import "./chunk-BYXBJQAS.js";
12
+ import {
13
+ getActiveDialogKey
14
+ } from "./chunk-3ASDTTEI.js";
15
+ import "./chunk-UZZCXRHF.js";
12
16
  import "./chunk-Y5GCAMGP.js";
17
+ import "./chunk-KX6YBIHG.js";
13
18
  import {
14
19
  patch,
15
20
  selectById
16
- } from "./chunk-L3KWEH3V.js";
17
- import "./chunk-AZPCASRE.js";
18
- import "./chunk-JTINRTBT.js";
19
- import "./chunk-BYXBJQAS.js";
20
- import "./chunk-KX6YBIHG.js";
21
+ } from "./chunk-KPFGD3YA.js";
21
22
  import "./chunk-O4BU24WZ.js";
22
23
  import "./chunk-I42VC5KR.js";
23
24
  import "./chunk-WWC7I6TA.js";
24
- import {
25
- getActiveDialogKey
26
- } from "./chunk-3ASDTTEI.js";
25
+ import "./chunk-WPHL6ALY.js";
27
26
  import "./chunk-QSJ3HFEF.js";
28
- import "./chunk-VBKJTOAW.js";
29
- import "./chunk-DVRHHFEA.js";
27
+ import "./chunk-XHQWJUW4.js";
28
+ import "./chunk-TSUJOM6N.js";
30
29
  import "./chunk-OOSFSFMA.js";
31
30
  import "./chunk-GBRG75BQ.js";
31
+ import "./chunk-KUG52IAP.js";
32
32
  import "./chunk-3EUW3WEO.js";
33
33
  import "./chunk-U6VC4MU4.js";
34
- import "./chunk-KUG52IAP.js";
35
34
  import "./chunk-LCBAMY2M.js";
36
35
  import "./chunk-4SN6J65J.js";
37
36
  import "./chunk-CF7PE763.js";