nolo-cli 0.201.0-alpha.2 → 0.202.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{_executeModel-BNYZLAN6.js → _executeModel-IPRTPSW7.js} +34 -33
- package/{agentDeleteCommand-4V4YSAXS.js → agentDeleteCommand-6HFA37FH.js} +49 -47
- package/{agentEmailCommands-EYIQEH6Z.js → agentEmailCommands-TDBNVIAT.js} +51 -49
- package/{agentListCommands-2KGUT7UB.js → agentListCommands-YSQSDQM3.js} +81 -45
- package/{agentMachineCommands-WUN47ILO.js → agentMachineCommands-5W23BLFR.js} +28 -26
- package/{agentProviderCommands-T6E3JCR6.js → agentProviderCommands-5ALOQLE5.js} +2 -2
- package/{agentRecordCommands-XL2CON36.js → agentRecordCommands-SRIMZZFK.js} +47 -45
- package/{agentRunCommand-R237ZGMQ.js → agentRunCommand-BLYHIN6S.js} +49 -47
- package/{agentRunControl-6HHESKDB.js → agentRunControl-ABDUPJLX.js} +10 -5
- package/{agentRuntimeLocal-XLLWFAVI.js → agentRuntimeLocal-FE66EBRC.js} +24 -22
- package/{agentSlice-Z5NKGMB7.js → agentSlice-BFDKYW6H.js} +4 -3
- package/{appDeleteCommands-IPF2VI3W.js → appDeleteCommands-BEVZGCAG.js} +29 -27
- package/{appDeployCommands-IBQ7GUXO.js → appDeployCommands-E7TFCHSP.js} +29 -27
- package/{appDeployStatusCommands-6ESVU6XE.js → appDeployStatusCommands-MYY5Z5G3.js} +29 -27
- package/{appGetCommands-VTSYTM4V.js → appGetCommands-HNED5JUU.js} +29 -27
- package/{appListCommands-VCP5TUX7.js → appListCommands-MSBFWPIY.js} +29 -27
- package/{authCommand-RV5MQDWN.js → authCommand-W34UWJGR.js} +14 -13
- package/{builtinSkillRegistry-7RAJP7FD.js → builtinSkillRegistry-NJVHQIKY.js} +1 -1
- package/{chromeOpsCommands-BA6CS4DI.js → chromeOpsCommands-USKE4B4K.js} +15 -4
- package/{chunk-RE3B2OCC.js → chunk-266E37EL.js} +69 -14
- package/chunk-2BMURXSB.js +1863 -0
- package/{chunk-NABJEYPJ.js → chunk-2Q3LOAFE.js} +38 -3
- package/{chunk-EOLPKHSB.js → chunk-326HCB6L.js} +28 -24
- package/{chunk-4CEAZRZ4.js → chunk-33W4IFUU.js} +1 -1
- package/{chunk-V3MGT3RF.js → chunk-3CWF2EUZ.js} +8 -8
- package/{chunk-G6OOUQWJ.js → chunk-4KB6WQUL.js} +2 -0
- package/{chunk-DYQXB46J.js → chunk-4KPB3KWX.js} +2 -2
- package/{chunk-WAZ6BTSC.js → chunk-5E4FSR4J.js} +1 -1
- package/{chunk-PVD7CRYV.js → chunk-6I7ZP7KJ.js} +3 -3
- package/chunk-6UBGXX2W.js +12 -0
- package/{chunk-ZBCBFOWC.js → chunk-A2ZMIRLN.js} +2 -2
- package/{chunk-Z646E5YH.js → chunk-ASG7VWPK.js} +3 -3
- package/{chunk-QWVGFBOQ.js → chunk-BLFZULEQ.js} +3 -3
- package/{chunk-RRHJJUA3.js → chunk-BRZTSZBG.js} +174 -100
- package/{chunk-JIFYXQRD.js → chunk-BTYQAODF.js} +26 -8
- package/{chunk-KORCRPLO.js → chunk-C7PKPHK6.js} +334 -12
- package/{chunk-6WZQGT5X.js → chunk-CJ37ZMCQ.js} +6 -2
- package/{chunk-VHGD6FHV.js → chunk-CKAHAVMK.js} +40 -10
- package/{chunk-UNOILAZP.js → chunk-CLTGWJVT.js} +76 -4
- package/{chunk-Q6RMLYSA.js → chunk-CMLBKYEI.js} +4 -2
- package/{chunk-NVOYW6H4.js → chunk-CQHMBWZH.js} +12 -8
- package/{chunk-7KWPNGVJ.js → chunk-CTZ4O3XD.js} +1 -1
- package/{chunk-OHRDHS4N.js → chunk-CVCRAO6Q.js} +9 -4
- package/{chunk-26CRLZFD.js → chunk-D57YYGMD.js} +2 -2
- package/{chunk-TEC5UHQK.js → chunk-DHJXDGC3.js} +2 -2
- package/{chunk-QYOB7RVA.js → chunk-DKZJJ2NQ.js} +3 -2
- package/{chunk-4YX7VQOC.js → chunk-E2FC5RMU.js} +17 -14
- package/{chunk-EH4MNUMF.js → chunk-ETTDZBK5.js} +4 -4
- package/{chunk-ZWQUWF6W.js → chunk-G7Y4GXTY.js} +8 -14
- package/{chunk-5KTQVMCX.js → chunk-GOO6G4PY.js} +85 -0
- package/{chunk-FMOZ57LN.js → chunk-H7HWWNJB.js} +1 -1
- package/{chunk-SW5AAI5D.js → chunk-HKMPGHFZ.js} +5 -5
- package/{chunk-H44LQSZ2.js → chunk-HKWGI3TM.js} +178 -311
- package/{chunk-BBGYSMUE.js → chunk-JH7KMNGT.js} +143 -19
- package/{chunk-YXMZHGNA.js → chunk-KDUYNEJ5.js} +33 -16
- package/{chunk-FEKMTBKJ.js → chunk-LAYFVGS4.js} +192 -55
- package/{chunk-O5V7QQAF.js → chunk-LEX6DEH4.js} +114 -2
- package/{chunk-BTBT2566.js → chunk-MNUOMXJH.js} +412 -9
- package/{chunk-N7E3LQ4A.js → chunk-MZXWSY4E.js} +1 -1
- package/{chunk-ZQ3EAOY3.js → chunk-NTLJGRAT.js} +1 -1
- package/{chunk-BUXH3H5M.js → chunk-OIB4GARE.js} +3743 -4848
- package/{chunk-WFUIXNKC.js → chunk-P4YLK2OD.js} +3 -3
- package/chunk-PRJ473FK.js +63 -0
- package/{chunk-2SHLT6JB.js → chunk-Q7GNBUT4.js} +2 -2
- package/{chunk-C2UXCAMB.js → chunk-RIKSN62L.js} +3 -3
- package/{chunk-GTP6VNWH.js → chunk-RQ22OZD7.js} +3 -3
- package/{chunk-H7NIQGTU.js → chunk-RS66RJLA.js} +2 -2
- package/{chunk-GC64WGMD.js → chunk-SM3NSZJV.js} +16 -5
- package/{chunk-QKDMI22S.js → chunk-SSK4WNJA.js} +1 -1
- package/{chunk-6MAFLMAO.js → chunk-SUBNV2JH.js} +3 -3
- package/{chunk-HLAL63BZ.js → chunk-T43B7LB2.js} +1 -1
- package/{chunk-HTLIKE5U.js → chunk-TWVVTUNG.js} +2 -2
- package/{chunk-X3RWBJDQ.js → chunk-U7HTU2S7.js} +1 -1
- package/{chunk-76YUTLOT.js → chunk-UIOEHFF6.js} +1 -1
- package/{chunk-IIX6VWLW.js → chunk-VCFU3BO5.js} +224 -38
- package/{chunk-QU3TLYBR.js → chunk-VEUSD6OF.js} +35 -11
- package/{chunk-4YMD7B4Y.js → chunk-WPOKOKZA.js} +2 -2
- package/{chunk-A5VR65AE.js → chunk-WPQGLJHU.js} +4 -4
- package/{chunk-K6TZSON4.js → chunk-WTKYP6QO.js} +19 -5
- package/{chunk-ZSO5B6SW.js → chunk-Y2WUYX4I.js} +9 -0
- package/{chunk-A3SXTJDE.js → chunk-YAGFPXOX.js} +14 -14
- package/{chunk-TVGX5QIN.js → chunk-YUA6OAH5.js} +2 -2
- package/{chunk-NYE2INIO.js → chunk-YV2RSLM4.js} +13 -13
- package/{chunk-MJWUBTK7.js → chunk-YZGNKHUM.js} +2 -2
- package/{commandRegistry-YFXWA5SF.js → commandRegistry-ZU3RX7A2.js} +87 -67
- package/{contentThunks-2BV7CFUP.js → contentThunks-I4IHSDTM.js} +14 -13
- package/{cooldownCommands-KRILPXOZ.js → cooldownCommands-5SJ74DNP.js} +1 -1
- package/{createAgentAutomationAction-T6CGXCSO.js → createAgentAutomationAction-WQCH5HR2.js} +14 -13
- package/{createDialogAction-X27IA3G2.js → createDialogAction-CKMZK5JQ.js} +15 -14
- package/{createPageAction-EHDHNW5P.js → createPageAction-QAZHQGY7.js} +14 -13
- package/{dialogCommands-XZXH3HSQ.js → dialogCommands-NEQ6NW5H.js} +30 -28
- package/{dialogSlice-AZNPVOCU.js → dialogSlice-GEGACCH2.js} +13 -12
- package/{docCreateCommands-Z64V5BFZ.js → docCreateCommands-EXV267FP.js} +28 -26
- package/{docDeleteCommands-7UFHIM4C.js → docDeleteCommands-TSBILA2Z.js} +29 -27
- package/{docReadCommands-NLU7Y67R.js → docReadCommands-AKVYHITD.js} +28 -26
- package/{docStore-M37Q6JFO.js → docStore-B4EFT53J.js} +1 -1
- package/{docUpdateCommands-S2KGBEG3.js → docUpdateCommands-G6GULDGZ.js} +28 -26
- package/{fetchMessages-HWBVATSE.js → fetchMessages-YY4SATNR.js} +1 -1
- package/{getPricing-E2PLNWCR.js → getPricing-3PQY3TGI.js} +3 -3
- package/{handleSendMessageAction-KUJQZ6B6.js → handleSendMessageAction-4BACQWOG.js} +70 -29
- package/index.js +7 -7
- package/{lib-4YTWAGY7.js → lib-5KKIBFIT.js} +439 -272
- package/{localDialogRead-CT5HGDMC.js → localDialogRead-FUXGZ57B.js} +1 -1
- package/{localRuntimeAdapter-5BNHO6JZ.js → localRuntimeAdapter-MTDULOUZ.js} +45 -43
- package/{machineCommands-2KDROAVV.js → machineCommands-OGHHBRV3.js} +48 -46
- package/{machineWsRunDispatch-4NP5M574.js → machineWsRunDispatch-R6DNC3H7.js} +46 -44
- package/{models-UUNO6DOL.js → models-PJBE6JDV.js} +2 -2
- package/{oauthTokenStore-PADKLNOC.js → oauthTokenStore-OEERZFUC.js} +2 -1
- package/package.json +1 -1
- package/{providerPresetApply-JGNMO2KX.js → providerPresetApply-HBBUUVJD.js} +6 -6
- package/{providerRegistry-33J3ZYFJ.js → providerRegistry-5LK2NXYE.js} +6 -6
- package/{readlineWorkspace-MKUSR6HA.js → readlineWorkspace-NC2O4DQP.js} +290 -121
- package/{runAgentClientLoop-J32KRVN7.js → runAgentClientLoop-QKV66PX5.js} +31 -30
- package/{runtimeDoctorCommands-NYBOTA6D.js → runtimeDoctorCommands-3VFVTGPI.js} +8 -7
- package/{secretCommands-N6CMCJDZ.js → secretCommands-MKU25CDP.js} +311 -3
- package/{settingThunks-YRYNPWJM.js → settingThunks-4WU7YE62.js} +2 -2
- package/{skillDiscovery-F3TMVQOJ.js → skillDiscovery-BKLWW2EZ.js} +2 -2
- package/{spaceCommands-VV4K7TGI.js → spaceCommands-J7BRTTM3.js} +27 -25
- package/{streamAgentChatTurn-S2Q7STXS.js → streamAgentChatTurn-GM3UNSLS.js} +46 -43
- package/{tools-KOIPW4ZA.js → tools-UJLEQBKI.js} +25 -24
- package/{tuiSummaryLlmCaller-FSOADMXK.js → tuiSummaryLlmCaller-73QO3HAD.js} +12 -12
- package/{updateCommands-KE6LP3QX.js → updateCommands-RVDAFHBT.js} +3 -3
- package/{updateDialogTitleAction-ILS5OIXF.js → updateDialogTitleAction-24QO27NT.js} +14 -13
- package/{windowsSelfUpdate-26TSFXEZ.js → windowsSelfUpdate-N2VH2OBW.js} +2 -2
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveAuthGuidanceState
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YZGNKHUM.js";
|
|
4
4
|
import {
|
|
5
5
|
fetchCiStatus,
|
|
6
6
|
summarizeLatest
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-CKAHAVMK.js";
|
|
8
8
|
import "./chunk-M3JEW6N6.js";
|
|
9
9
|
import {
|
|
10
10
|
isHiddenFromDialogList,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
normalizeDialogRecord,
|
|
13
13
|
readDialogSnapshot,
|
|
14
14
|
sortDialogs
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-3CWF2EUZ.js";
|
|
16
16
|
import {
|
|
17
17
|
formatQuotaSummary,
|
|
18
18
|
listFavoriteAgentIdsAcrossServers,
|
|
@@ -20,12 +20,12 @@ import {
|
|
|
20
20
|
listRemoteAgents,
|
|
21
21
|
listRemoteAgentsAcrossServers,
|
|
22
22
|
normalizeListedAgent
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-266E37EL.js";
|
|
24
24
|
import "./chunk-ID4G2MAR.js";
|
|
25
25
|
import {
|
|
26
26
|
listUserRecordsFromServers,
|
|
27
27
|
readLiveDbRecordAfterTombstoneMerge
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-H7HWWNJB.js";
|
|
29
29
|
import {
|
|
30
30
|
refreshSubscriptionQuotas
|
|
31
31
|
} from "./chunk-YGILMZ7N.js";
|
|
@@ -102,9 +102,9 @@ import {
|
|
|
102
102
|
wrapTextToLines,
|
|
103
103
|
wrapTranscriptLine,
|
|
104
104
|
wrapTranscriptLineWithLayout
|
|
105
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-LAYFVGS4.js";
|
|
106
106
|
import "./chunk-6QDYSCPW.js";
|
|
107
|
-
import "./chunk-
|
|
107
|
+
import "./chunk-RS66RJLA.js";
|
|
108
108
|
import "./chunk-Y5GCAMGP.js";
|
|
109
109
|
import {
|
|
110
110
|
getReadableCliDb
|
|
@@ -113,7 +113,7 @@ import {
|
|
|
113
113
|
deleteDbRecord,
|
|
114
114
|
queryUserRecords,
|
|
115
115
|
readDbRecord
|
|
116
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-CJ37ZMCQ.js";
|
|
117
117
|
import {
|
|
118
118
|
RUN_WAKE_CHANNEL_ENV,
|
|
119
119
|
clearCliLocalRuntimePreparedAgentCache,
|
|
@@ -123,12 +123,12 @@ import {
|
|
|
123
123
|
formatApprovalRemaining,
|
|
124
124
|
readTimestamp,
|
|
125
125
|
registerHostApprovalRenderer
|
|
126
|
-
} from "./chunk-
|
|
127
|
-
import "./chunk-
|
|
126
|
+
} from "./chunk-BRZTSZBG.js";
|
|
127
|
+
import "./chunk-4KPB3KWX.js";
|
|
128
128
|
import "./chunk-VP3BINY7.js";
|
|
129
129
|
import "./chunk-HAB2UDLT.js";
|
|
130
130
|
import "./chunk-LKZPX6YH.js";
|
|
131
|
-
import "./chunk-
|
|
131
|
+
import "./chunk-U7HTU2S7.js";
|
|
132
132
|
import {
|
|
133
133
|
NOLO_DEFAULT_AGENT_KEY,
|
|
134
134
|
resolveCliAgentKeyInput
|
|
@@ -142,47 +142,52 @@ import {
|
|
|
142
142
|
} from "./chunk-UGCQKKXW.js";
|
|
143
143
|
import "./chunk-TY3TIUJK.js";
|
|
144
144
|
import "./chunk-S73EPYNC.js";
|
|
145
|
-
import "./chunk-
|
|
145
|
+
import "./chunk-RQ22OZD7.js";
|
|
146
146
|
import "./chunk-VL5KOY2C.js";
|
|
147
147
|
import "./chunk-ZEZC7IIM.js";
|
|
148
148
|
import "./chunk-ATNTHIZI.js";
|
|
149
|
+
import {
|
|
150
|
+
formatSkillSlashReference,
|
|
151
|
+
parseSkillSlashReference,
|
|
152
|
+
resolveSkillSlashUserPrompt
|
|
153
|
+
} from "./chunk-PRJ473FK.js";
|
|
149
154
|
import "./chunk-BMQ2MJUK.js";
|
|
150
|
-
import "./chunk-
|
|
155
|
+
import "./chunk-Q7GNBUT4.js";
|
|
151
156
|
import "./chunk-JEXVIMYZ.js";
|
|
152
157
|
import {
|
|
153
158
|
prepareTools
|
|
154
|
-
} from "./chunk-
|
|
159
|
+
} from "./chunk-BLFZULEQ.js";
|
|
155
160
|
import "./chunk-HS7MLR74.js";
|
|
156
|
-
import "./chunk-
|
|
161
|
+
import "./chunk-HKWGI3TM.js";
|
|
157
162
|
import "./chunk-KFHREHUQ.js";
|
|
158
|
-
import "./chunk-
|
|
163
|
+
import "./chunk-JH7KMNGT.js";
|
|
159
164
|
import "./chunk-OXME3PEE.js";
|
|
160
165
|
import "./chunk-KSTEXKL6.js";
|
|
161
|
-
import "./chunk-VF4K2QE6.js";
|
|
162
166
|
import "./chunk-Z3MQYKRN.js";
|
|
163
|
-
import "./chunk-
|
|
167
|
+
import "./chunk-C7PKPHK6.js";
|
|
164
168
|
import "./chunk-NF64D32W.js";
|
|
165
169
|
import "./chunk-3L2WKC3W.js";
|
|
166
|
-
import "./chunk-
|
|
167
|
-
import "./chunk-
|
|
170
|
+
import "./chunk-DKZJJ2NQ.js";
|
|
171
|
+
import "./chunk-VF4K2QE6.js";
|
|
172
|
+
import "./chunk-D57YYGMD.js";
|
|
168
173
|
import "./chunk-MYOH447Z.js";
|
|
169
174
|
import "./chunk-RXUKDHS5.js";
|
|
170
175
|
import "./chunk-WYKMOZTW.js";
|
|
171
176
|
import "./chunk-AGIM7IMJ.js";
|
|
172
|
-
import "./chunk-
|
|
177
|
+
import "./chunk-A2ZMIRLN.js";
|
|
173
178
|
import "./chunk-VIDPVFP3.js";
|
|
174
179
|
import "./chunk-63W5N6P3.js";
|
|
175
|
-
import "./chunk-
|
|
176
|
-
import "./chunk-
|
|
180
|
+
import "./chunk-ASG7VWPK.js";
|
|
181
|
+
import "./chunk-SSK4WNJA.js";
|
|
177
182
|
import "./chunk-5XBUWM6I.js";
|
|
178
183
|
import {
|
|
179
184
|
estimateMessagesTokens,
|
|
180
185
|
historyTokensBeforeLatestAssistant
|
|
181
|
-
} from "./chunk-
|
|
186
|
+
} from "./chunk-326HCB6L.js";
|
|
182
187
|
import "./chunk-TZXPT53C.js";
|
|
183
188
|
import "./chunk-LEC5ALIN.js";
|
|
184
189
|
import "./chunk-523DITKR.js";
|
|
185
|
-
import "./chunk-
|
|
190
|
+
import "./chunk-ETTDZBK5.js";
|
|
186
191
|
import "./chunk-BYXBJQAS.js";
|
|
187
192
|
import "./chunk-QYPE3TS3.js";
|
|
188
193
|
import "./chunk-T3U2KQF4.js";
|
|
@@ -213,37 +218,41 @@ import "./chunk-6Q7UTJKR.js";
|
|
|
213
218
|
import "./chunk-QQ56R7KS.js";
|
|
214
219
|
import "./chunk-OW765XBU.js";
|
|
215
220
|
import "./chunk-PXYBUFDB.js";
|
|
216
|
-
import "./chunk-
|
|
221
|
+
import "./chunk-Y2WUYX4I.js";
|
|
217
222
|
import "./chunk-D2MDMY2M.js";
|
|
218
223
|
import {
|
|
219
224
|
buildSkillDiscoveryContextBlock,
|
|
220
|
-
buildSkillDiscoveryContextLayer
|
|
221
|
-
|
|
222
|
-
|
|
225
|
+
buildSkillDiscoveryContextLayer,
|
|
226
|
+
discoverSkills
|
|
227
|
+
} from "./chunk-CTZ4O3XD.js";
|
|
228
|
+
import {
|
|
229
|
+
listBuiltinSkills
|
|
230
|
+
} from "./chunk-LEX6DEH4.js";
|
|
223
231
|
import {
|
|
224
232
|
expandEnabledPacks
|
|
225
233
|
} from "./chunk-6OEPWZV7.js";
|
|
226
|
-
import
|
|
234
|
+
import {
|
|
235
|
+
parseExternalSkillMarkdown
|
|
236
|
+
} from "./chunk-AETZ7AD6.js";
|
|
227
237
|
import "./chunk-Y6ORVLSS.js";
|
|
228
238
|
import "./chunk-KHCLMKZZ.js";
|
|
229
239
|
import {
|
|
240
|
+
buildLoadSkillExecutor,
|
|
230
241
|
buildLocalWorkspaceOpenAiTools,
|
|
231
242
|
buildLocalWorkspaceToolset,
|
|
232
|
-
formatToolOverflowMarker,
|
|
233
|
-
getProcessRegistry,
|
|
234
243
|
readCommandActionGatePayload
|
|
235
|
-
} from "./chunk-
|
|
244
|
+
} from "./chunk-OIB4GARE.js";
|
|
236
245
|
import "./chunk-ZNFJWEN4.js";
|
|
237
|
-
import "./chunk-
|
|
238
|
-
import "./chunk-
|
|
246
|
+
import "./chunk-VCFU3BO5.js";
|
|
247
|
+
import "./chunk-CQHMBWZH.js";
|
|
239
248
|
import "./chunk-HNUWUO75.js";
|
|
240
249
|
import "./chunk-CHOZJMJS.js";
|
|
241
250
|
import "./chunk-PWTNI4N7.js";
|
|
242
251
|
import "./chunk-HIVDQPQR.js";
|
|
243
|
-
import "./chunk-
|
|
252
|
+
import "./chunk-MZXWSY4E.js";
|
|
244
253
|
import "./chunk-2WZXXAQD.js";
|
|
245
|
-
import "./chunk-
|
|
246
|
-
import "./chunk-
|
|
254
|
+
import "./chunk-6I7ZP7KJ.js";
|
|
255
|
+
import "./chunk-4KB6WQUL.js";
|
|
247
256
|
import "./chunk-56GBUMO5.js";
|
|
248
257
|
import {
|
|
249
258
|
CREDENTIAL_HYGIENE_RULE,
|
|
@@ -256,20 +265,20 @@ import {
|
|
|
256
265
|
buildRuntimeGuidanceBlocks,
|
|
257
266
|
resolveResponseGuidelines,
|
|
258
267
|
resolveToolGuidedSections
|
|
259
|
-
} from "./chunk-
|
|
260
|
-
import "./chunk-
|
|
268
|
+
} from "./chunk-KDUYNEJ5.js";
|
|
269
|
+
import "./chunk-CVCRAO6Q.js";
|
|
261
270
|
import "./chunk-E2BESSAW.js";
|
|
262
|
-
import "./chunk-
|
|
271
|
+
import "./chunk-2Q3LOAFE.js";
|
|
263
272
|
import {
|
|
264
273
|
isQuotaExhaustedError
|
|
265
274
|
} from "./chunk-RXX262QX.js";
|
|
266
275
|
import "./chunk-WJZOQR2J.js";
|
|
267
|
-
import "./chunk-
|
|
276
|
+
import "./chunk-P4YLK2OD.js";
|
|
268
277
|
import "./chunk-2MBTWINN.js";
|
|
269
278
|
import {
|
|
270
279
|
extractReferenceKeysFromMessage,
|
|
271
280
|
normalizeUsage
|
|
272
|
-
} from "./chunk-
|
|
281
|
+
} from "./chunk-WTKYP6QO.js";
|
|
273
282
|
import "./chunk-5ZUL4CUO.js";
|
|
274
283
|
import {
|
|
275
284
|
DEFAULT_CONTEXT_WINDOW,
|
|
@@ -282,26 +291,26 @@ import {
|
|
|
282
291
|
getModelContextWindow,
|
|
283
292
|
planCompression,
|
|
284
293
|
serializeMessageContent
|
|
285
|
-
} from "./chunk-
|
|
294
|
+
} from "./chunk-BTYQAODF.js";
|
|
286
295
|
import "./chunk-H57T64RA.js";
|
|
287
296
|
import "./chunk-UKZX3NHN.js";
|
|
288
297
|
import {
|
|
289
298
|
clipCompactText
|
|
290
299
|
} from "./chunk-5MMAK75Q.js";
|
|
291
300
|
import "./chunk-TRZP7JZ7.js";
|
|
292
|
-
import "./chunk-
|
|
301
|
+
import "./chunk-UIOEHFF6.js";
|
|
293
302
|
import "./chunk-KX6YBIHG.js";
|
|
294
303
|
import {
|
|
295
304
|
compactWhitespace
|
|
296
305
|
} from "./chunk-DWLEOOGR.js";
|
|
297
306
|
import "./chunk-7DPNBQSV.js";
|
|
298
|
-
import "./chunk-
|
|
307
|
+
import "./chunk-G7Y4GXTY.js";
|
|
299
308
|
import {
|
|
300
309
|
buildMemoryOverlayLayer,
|
|
301
310
|
buildMemoryUseGuidanceLayer,
|
|
302
311
|
partitionScopedBlocks,
|
|
303
312
|
renderTurnContextBlocksWithScope
|
|
304
|
-
} from "./chunk-
|
|
313
|
+
} from "./chunk-CMLBKYEI.js";
|
|
305
314
|
import {
|
|
306
315
|
buildUserResponseLanguageContext
|
|
307
316
|
} from "./chunk-4VJAC32I.js";
|
|
@@ -320,17 +329,15 @@ import {
|
|
|
320
329
|
extractCustomId,
|
|
321
330
|
parsePublicAgentId
|
|
322
331
|
} from "./chunk-M2EJHDJP.js";
|
|
323
|
-
import "./chunk-
|
|
324
|
-
import {
|
|
325
|
-
toErrorMessage
|
|
326
|
-
} from "./chunk-HNMXYYJR.js";
|
|
332
|
+
import "./chunk-VEUSD6OF.js";
|
|
327
333
|
import {
|
|
334
|
+
TAIL_LINES_MAX,
|
|
328
335
|
backfillRunRecordParentDialog,
|
|
329
336
|
checkStaleRun,
|
|
330
337
|
isRunRecordClaimed,
|
|
331
338
|
listRunRecords,
|
|
332
339
|
readRunRecord
|
|
333
|
-
} from "./chunk-
|
|
340
|
+
} from "./chunk-MNUOMXJH.js";
|
|
334
341
|
import {
|
|
335
342
|
clipText,
|
|
336
343
|
formatDuration,
|
|
@@ -341,15 +348,23 @@ import {
|
|
|
341
348
|
resolveRunLabel,
|
|
342
349
|
shortRunId
|
|
343
350
|
} from "./chunk-PJNFNEJE.js";
|
|
351
|
+
import {
|
|
352
|
+
formatToolOverflowMarker,
|
|
353
|
+
getProcessRegistry
|
|
354
|
+
} from "./chunk-2BMURXSB.js";
|
|
344
355
|
import {
|
|
345
356
|
estimateTokenCount
|
|
346
357
|
} from "./chunk-PSCNXBYA.js";
|
|
358
|
+
import "./chunk-6UBGXX2W.js";
|
|
347
359
|
import {
|
|
348
360
|
resolvePlatformAuthToken
|
|
349
|
-
} from "./chunk-
|
|
350
|
-
import "./chunk-
|
|
351
|
-
import "./chunk-
|
|
361
|
+
} from "./chunk-WPOKOKZA.js";
|
|
362
|
+
import "./chunk-YUA6OAH5.js";
|
|
363
|
+
import "./chunk-SM3NSZJV.js";
|
|
352
364
|
import "./chunk-5BHQICF2.js";
|
|
365
|
+
import {
|
|
366
|
+
toErrorMessage
|
|
367
|
+
} from "./chunk-HNMXYYJR.js";
|
|
353
368
|
import {
|
|
354
369
|
isRecord
|
|
355
370
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -361,7 +376,7 @@ import {
|
|
|
361
376
|
import {
|
|
362
377
|
checkForCliUpdate,
|
|
363
378
|
runSelfUpdateDetailed
|
|
364
|
-
} from "./chunk-
|
|
379
|
+
} from "./chunk-TWVVTUNG.js";
|
|
365
380
|
import {
|
|
366
381
|
parseUserIdFromAuthToken,
|
|
367
382
|
resolveAuthToken,
|
|
@@ -394,14 +409,14 @@ import {
|
|
|
394
409
|
resolveDefaultSpawn,
|
|
395
410
|
spawnProcess
|
|
396
411
|
} from "./chunk-Y6ROFCZO.js";
|
|
397
|
-
import "./chunk-
|
|
412
|
+
import "./chunk-5E4FSR4J.js";
|
|
398
413
|
import {
|
|
399
414
|
dailyWelcomeTip,
|
|
400
415
|
initCliLocale,
|
|
401
416
|
parseCliLocale,
|
|
402
417
|
setCliLocale,
|
|
403
418
|
t
|
|
404
|
-
} from "./chunk-
|
|
419
|
+
} from "./chunk-CLTGWJVT.js";
|
|
405
420
|
import "./chunk-ECX3NKRD.js";
|
|
406
421
|
import "./chunk-XJWWBO34.js";
|
|
407
422
|
import "./chunk-I42VC5KR.js";
|
|
@@ -411,8 +426,8 @@ import "./chunk-3EUW3WEO.js";
|
|
|
411
426
|
import {
|
|
412
427
|
asOptionalTrimmedString
|
|
413
428
|
} from "./chunk-G3SUCT4W.js";
|
|
414
|
-
import "./chunk-
|
|
415
|
-
import "./chunk-
|
|
429
|
+
import "./chunk-T43B7LB2.js";
|
|
430
|
+
import "./chunk-GOO6G4PY.js";
|
|
416
431
|
import {
|
|
417
432
|
asTrimmedLowercaseString
|
|
418
433
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -507,7 +522,7 @@ function createSnapshotGuardedApproval(kind, getGrants, approve) {
|
|
|
507
522
|
import nacl from "tweetnacl";
|
|
508
523
|
|
|
509
524
|
// node_modules/js-base64/base64.mjs
|
|
510
|
-
var version = "3.9.
|
|
525
|
+
var version = "3.9.6";
|
|
511
526
|
var VERSION = version;
|
|
512
527
|
var _TD = typeof TextDecoder === "function" ? new TextDecoder("utf-8", { ignoreBOM: true }) : void 0;
|
|
513
528
|
var _TE = typeof TextEncoder === "function" ? new TextEncoder() : void 0;
|
|
@@ -600,6 +615,8 @@ var isValid = (src) => {
|
|
|
600
615
|
if (typeof src !== "string")
|
|
601
616
|
return false;
|
|
602
617
|
const s = src.replace(/\s+/g, "").replace(/={0,2}$/, "");
|
|
618
|
+
if (s.length % 4 === 1)
|
|
619
|
+
return false;
|
|
603
620
|
return !/[^\s0-9a-zA-Z\+/]/.test(s) || !/[^\s0-9a-zA-Z\-_]/.test(s);
|
|
604
621
|
};
|
|
605
622
|
var _noEnum = (v) => {
|
|
@@ -4570,52 +4587,6 @@ function createActivityIndicator(deps) {
|
|
|
4570
4587
|
};
|
|
4571
4588
|
}
|
|
4572
4589
|
|
|
4573
|
-
// packages/core/redactLogLines.ts
|
|
4574
|
-
var TAIL_LINES_MAX = 500;
|
|
4575
|
-
var REDACTED_TOKEN = "[REDACTED_TOKEN]";
|
|
4576
|
-
var REDACTED_CREDENTIAL = "[REDACTED_CREDENTIAL]";
|
|
4577
|
-
var REDACTED_PATH = "[REDACTED_PATH]";
|
|
4578
|
-
var SECRET_RULES = [
|
|
4579
|
-
// Authorization: Bearer <token>
|
|
4580
|
-
{
|
|
4581
|
-
re: /\bBearer\s+[A-Za-z0-9_\-.\~+/=]{8,}/gi,
|
|
4582
|
-
replacement: `Bearer ${REDACTED_TOKEN}`
|
|
4583
|
-
},
|
|
4584
|
-
// GitHub 家族前缀 token(ghp_/gho_/ghu_/ghs_/ghr_)
|
|
4585
|
-
{
|
|
4586
|
-
re: /\b(?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9]{20,}\b/g,
|
|
4587
|
-
replacement: REDACTED_TOKEN
|
|
4588
|
-
},
|
|
4589
|
-
// key=value / key: value。key 名自带凭据关键词才脱敏,避免把普通日志打花。
|
|
4590
|
-
// key 字符类含 `-`/`_`,故 `NOLO_WORKER_TOKEN=`(env 前缀)、
|
|
4591
|
-
// `x-nolo-machine-lease:`、`x-worker-token:` 都在命中面内。
|
|
4592
|
-
// 同时支持带闭合双/单引号的 JSON 键,如 {"apiKey":"..."} 或 {"token": "..."}。
|
|
4593
|
-
{
|
|
4594
|
-
re: /(["']?)\b([A-Za-z0-9_-]*(?:token|secret|password|passwd|credential|api[_-]?key|machine[_-]lease|workspace[_-]lease)[A-Za-z0-9_-]*)\1(\s*[:=]\s*)(["']?)[^\s"',;}{]{4,}\4/gi,
|
|
4595
|
-
replacement: `$1$2$1$3$4${REDACTED_CREDENTIAL}$4`
|
|
4596
|
-
}
|
|
4597
|
-
];
|
|
4598
|
-
var PATH_RULES = [
|
|
4599
|
-
{
|
|
4600
|
-
re: /(^|[\s"'`(=:])\/(?:home|Users|var|tmp|app|etc|root|usr|opt|mnt|srv|private|storage|workspace)\/[^\s"'`),;:]+/g,
|
|
4601
|
-
replacement: `$1${REDACTED_PATH}`
|
|
4602
|
-
},
|
|
4603
|
-
{
|
|
4604
|
-
re: /(^|[\s"'`(=:])[A-Za-z]:\\[^\s"'`),;:]+/g,
|
|
4605
|
-
replacement: `$1${REDACTED_PATH}`
|
|
4606
|
-
},
|
|
4607
|
-
// `~/.nolo` / `/home/x/.nolo`(凭据与机器身份落点)
|
|
4608
|
-
{
|
|
4609
|
-
re: /~?\/\.nolo(\/[^\s"'`),;:]*)?/g,
|
|
4610
|
-
replacement: REDACTED_PATH
|
|
4611
|
-
},
|
|
4612
|
-
// process.execPath / bunPath / BUN_PATH
|
|
4613
|
-
{
|
|
4614
|
-
re: /\b((?:process\.execPath|bunPath|execPath|BUN_PATH)\s*[:=]\s*)(["']?)[^\s"']+\2/gi,
|
|
4615
|
-
replacement: `$1$2${REDACTED_PATH}$2`
|
|
4616
|
-
}
|
|
4617
|
-
];
|
|
4618
|
-
|
|
4619
4590
|
// packages/core/remoteTaskView.ts
|
|
4620
4591
|
var PROCESS_STATUS_SET = /* @__PURE__ */ new Set([
|
|
4621
4592
|
"running",
|
|
@@ -4872,6 +4843,7 @@ function snapshotFromRunRecord(record, now) {
|
|
|
4872
4843
|
...startedAt !== void 0 ? { startedAt } : {},
|
|
4873
4844
|
...endedAt !== void 0 ? { finishedAt: endedAt } : {},
|
|
4874
4845
|
...typeof counters?.toolCalls === "number" ? { toolCallCount: counters.toolCalls } : {},
|
|
4846
|
+
...Array.isArray(activity?.lastToolNames) && activity.lastToolNames.length > 0 ? { lastToolNames: activity.lastToolNames } : {},
|
|
4875
4847
|
// 纯推理 run(0 次工具调用)的心跳:模型调用次数 + 最后一次事件时刻。
|
|
4876
4848
|
// 两者都来自记录里已有的字段,不新增任何采集。
|
|
4877
4849
|
...typeof counters?.llmCalls === "number" ? { llmCallCount: counters.llmCalls } : {},
|
|
@@ -4946,7 +4918,12 @@ function createRunRegistryPoller(deps) {
|
|
|
4946
4918
|
const currentDialogId = deps.getCurrentDialogId?.() ?? null;
|
|
4947
4919
|
const scopeActive = Boolean(deps.getCurrentDialogId) && currentDialogId !== null;
|
|
4948
4920
|
if (!scopeActive) scopedOut.clear();
|
|
4949
|
-
const belongsToCurrentDialog = (record) => !deps.getCurrentDialogId || currentDialogId !== null && record.parentDialogId === currentDialogId
|
|
4921
|
+
const belongsToCurrentDialog = (record) => !deps.getCurrentDialogId || currentDialogId !== null && (record.parentDialogId === currentDialogId || // 另一个会话用 continueDialogId 往「本条对话」续写时,子 run 自己的
|
|
4922
|
+
// dialogId 就是当前对话,而 parentDialogId 指的是发起方的对话。
|
|
4923
|
+
// 这类 run 也必须进 dock——否则用户在 TUI 里完全看不到「另一边正在
|
|
4924
|
+
// 这条对话上干活」。fresh run 的 dialogId 是瞬时 id 或 undefined,
|
|
4925
|
+
// 不会误命中。
|
|
4926
|
+
record.dialogId === currentDialogId);
|
|
4950
4927
|
const discoveredActive = discovered.filter(
|
|
4951
4928
|
(record) => record.runId && !dockedIds.has(record.runId) && !retiredRunIds.has(record.runId) && !isAgentRunTerminalStatus(record.status) && belongsToCurrentDialog(record)
|
|
4952
4929
|
);
|
|
@@ -6289,16 +6266,44 @@ function applyTuiInputKey(buffer, sequence, key = {}, cursorPos, options) {
|
|
|
6289
6266
|
}
|
|
6290
6267
|
return { buffer, cursorPos: curPos };
|
|
6291
6268
|
}
|
|
6292
|
-
|
|
6293
|
-
|
|
6294
|
-
|
|
6295
|
-
|
|
6296
|
-
|
|
6297
|
-
|
|
6269
|
+
const isBackTab = seq === "\x1B[Z" || key.name === "backtab" || Boolean(key.shift) && (seq === " " || key.name === "tab");
|
|
6270
|
+
const isTab = !isBackTab && (seq === " " || key.name === "tab");
|
|
6271
|
+
if (isTab || isBackTab) {
|
|
6272
|
+
const isReverse = isBackTab;
|
|
6273
|
+
let candidates = completeSlashCandidates(buffer, options?.cwd);
|
|
6274
|
+
if (options?.cwd && buffer.startsWith("/cd ") && buffer.endsWith("/")) {
|
|
6275
|
+
const prefix = buffer.slice("/cd ".length);
|
|
6276
|
+
const trimmedSlash = prefix.slice(0, -1);
|
|
6277
|
+
const lastSlash = trimmedSlash.lastIndexOf("/");
|
|
6278
|
+
const parentPrefix = lastSlash >= 0 ? trimmedSlash.slice(0, lastSlash + 1) : "";
|
|
6279
|
+
const parentCandidates = completeSlashCandidates(`/cd ${parentPrefix}`, options.cwd);
|
|
6280
|
+
const parentIdx = parentCandidates.findIndex(
|
|
6281
|
+
(c) => buffer === c.insertText || buffer === c.insertText.trimEnd()
|
|
6282
|
+
);
|
|
6283
|
+
if (parentIdx >= 0 && parentCandidates.length > 1) {
|
|
6284
|
+
candidates = parentCandidates;
|
|
6285
|
+
}
|
|
6286
|
+
}
|
|
6287
|
+
if (candidates.length === 1) {
|
|
6288
|
+
const [only] = candidates;
|
|
6289
|
+
return { buffer: only.insertText, cursorPos: only.insertText.length };
|
|
6290
|
+
}
|
|
6291
|
+
if (candidates.length > 1) {
|
|
6292
|
+
const currentIndex = candidates.findIndex(
|
|
6293
|
+
(c) => buffer === c.insertText || buffer === c.insertText.trimEnd()
|
|
6294
|
+
);
|
|
6295
|
+
if (currentIndex >= 0) {
|
|
6296
|
+
const step = isReverse ? -1 : 1;
|
|
6297
|
+
const nextIndex = (currentIndex + step + candidates.length) % candidates.length;
|
|
6298
|
+
const next = candidates[nextIndex];
|
|
6299
|
+
return { buffer: next.insertText, cursorPos: next.insertText.length };
|
|
6298
6300
|
}
|
|
6299
|
-
|
|
6300
|
-
|
|
6301
|
+
const common = findCommonPrefix(candidates.map((c) => c.insertText));
|
|
6302
|
+
if (common.length > buffer.length) {
|
|
6303
|
+
return { buffer: common, cursorPos: common.length };
|
|
6301
6304
|
}
|
|
6305
|
+
const chosen = isReverse ? candidates[candidates.length - 1] : candidates[0];
|
|
6306
|
+
return { buffer: chosen.insertText, cursorPos: chosen.insertText.length };
|
|
6302
6307
|
}
|
|
6303
6308
|
const completed = completeSlashPrefix(buffer) ?? buffer;
|
|
6304
6309
|
return { buffer: completed, cursorPos: completed.length };
|
|
@@ -6455,15 +6460,78 @@ function completeSlashPrefix(buffer) {
|
|
|
6455
6460
|
}
|
|
6456
6461
|
return prefix.length > buffer.length ? prefix : null;
|
|
6457
6462
|
}
|
|
6458
|
-
function
|
|
6463
|
+
function findCommonPrefix(strings) {
|
|
6464
|
+
if (strings.length === 0) return "";
|
|
6465
|
+
let prefix = strings[0] ?? "";
|
|
6466
|
+
for (let i = 1; i < strings.length; i++) {
|
|
6467
|
+
while (!strings[i].startsWith(prefix)) {
|
|
6468
|
+
prefix = prefix.slice(0, -1);
|
|
6469
|
+
if (prefix === "") return "";
|
|
6470
|
+
}
|
|
6471
|
+
}
|
|
6472
|
+
return prefix;
|
|
6473
|
+
}
|
|
6474
|
+
function completeSlashCandidates(buffer, cwd) {
|
|
6459
6475
|
if (!buffer.startsWith("/")) return [];
|
|
6460
6476
|
const trimmed = buffer.trim();
|
|
6461
6477
|
if (cwd && buffer.startsWith("/cd ")) {
|
|
6462
6478
|
const prefix = buffer.slice("/cd ".length);
|
|
6463
|
-
|
|
6479
|
+
const pathLines = completeCdPathCandidates(prefix, cwd);
|
|
6480
|
+
return pathLines.map((line) => ({
|
|
6481
|
+
label: line,
|
|
6482
|
+
insertText: line,
|
|
6483
|
+
source: "path"
|
|
6484
|
+
}));
|
|
6464
6485
|
}
|
|
6465
6486
|
if (trimmed.includes(" ")) return [];
|
|
6466
|
-
|
|
6487
|
+
const candidates = [];
|
|
6488
|
+
for (const cmd of SLASH_COMMANDS) {
|
|
6489
|
+
if (cmd.startsWith(trimmed) && cmd !== trimmed) {
|
|
6490
|
+
candidates.push({
|
|
6491
|
+
label: cmd,
|
|
6492
|
+
insertText: `${cmd} `,
|
|
6493
|
+
source: "builtin"
|
|
6494
|
+
});
|
|
6495
|
+
}
|
|
6496
|
+
}
|
|
6497
|
+
const slashQuery = trimmed.slice(1).toLowerCase();
|
|
6498
|
+
for (const skill of listBuiltinSkills()) {
|
|
6499
|
+
const slug = skill.slug;
|
|
6500
|
+
if (slashQuery !== "" && !slug.toLowerCase().startsWith(slashQuery)) continue;
|
|
6501
|
+
candidates.push({
|
|
6502
|
+
label: `/${slug} (builtin)`,
|
|
6503
|
+
insertText: `${formatSkillSlashReference({
|
|
6504
|
+
source: "builtin",
|
|
6505
|
+
id: slug
|
|
6506
|
+
})} `,
|
|
6507
|
+
source: "builtin",
|
|
6508
|
+
description: skill.title || "Builtin skill"
|
|
6509
|
+
});
|
|
6510
|
+
}
|
|
6511
|
+
if (cwd) {
|
|
6512
|
+
try {
|
|
6513
|
+
const skills = discoverSkills(cwd);
|
|
6514
|
+
const query = trimmed.slice(1).toLowerCase();
|
|
6515
|
+
for (const skill of skills) {
|
|
6516
|
+
const nameLower = skill.name.toLowerCase();
|
|
6517
|
+
if (query === "" || nameLower.startsWith(query)) {
|
|
6518
|
+
const insertText = `${formatSkillSlashReference({
|
|
6519
|
+
source: "project",
|
|
6520
|
+
projectBinding: cwd,
|
|
6521
|
+
relativePath: skill.relativePath
|
|
6522
|
+
})} `;
|
|
6523
|
+
candidates.push({
|
|
6524
|
+
label: `/${skill.name} (project)`,
|
|
6525
|
+
insertText,
|
|
6526
|
+
source: "project",
|
|
6527
|
+
description: skill.description || "Project skill"
|
|
6528
|
+
});
|
|
6529
|
+
}
|
|
6530
|
+
}
|
|
6531
|
+
} catch {
|
|
6532
|
+
}
|
|
6533
|
+
}
|
|
6534
|
+
return candidates;
|
|
6467
6535
|
}
|
|
6468
6536
|
function completeCdPathCandidates(prefix, cwd) {
|
|
6469
6537
|
const lastSlash = prefix.lastIndexOf("/");
|
|
@@ -11514,10 +11582,33 @@ function createFixedInput(output, config) {
|
|
|
11514
11582
|
const renderInputArea = (buffer, cursorPos) => {
|
|
11515
11583
|
const colorEnabled = resolveCliColorEnabled();
|
|
11516
11584
|
const cols = Math.max(1, getColumns());
|
|
11517
|
-
|
|
11585
|
+
let completions = completeSlashCandidates(buffer, config.getCwd?.());
|
|
11586
|
+
const cwd = config.getCwd?.();
|
|
11587
|
+
if (cwd && buffer.startsWith("/cd ") && buffer.endsWith("/")) {
|
|
11588
|
+
const prefix = buffer.slice("/cd ".length);
|
|
11589
|
+
const trimmedSlash = prefix.slice(0, -1);
|
|
11590
|
+
const lastSlash = trimmedSlash.lastIndexOf("/");
|
|
11591
|
+
const parentPrefix = lastSlash >= 0 ? trimmedSlash.slice(0, lastSlash + 1) : "";
|
|
11592
|
+
const parentCompletions = completeSlashCandidates(`/cd ${parentPrefix}`, cwd);
|
|
11593
|
+
const parentIdx = parentCompletions.findIndex(
|
|
11594
|
+
(c) => buffer === c.insertText || buffer === c.insertText.trimEnd()
|
|
11595
|
+
);
|
|
11596
|
+
if (parentIdx >= 0 && parentCompletions.length > 1) {
|
|
11597
|
+
completions = parentCompletions;
|
|
11598
|
+
}
|
|
11599
|
+
}
|
|
11518
11600
|
const sections = [];
|
|
11519
11601
|
if (completions.length > 0) {
|
|
11520
|
-
|
|
11602
|
+
const selectedIndex = completions.findIndex(
|
|
11603
|
+
(c) => buffer === c.insertText || buffer === c.insertText.trimEnd()
|
|
11604
|
+
);
|
|
11605
|
+
const labels = completions.map((c, idx) => {
|
|
11606
|
+
if (idx === selectedIndex && colorEnabled) {
|
|
11607
|
+
return `\x1B[1;7m${c.label}\x1B[0m`;
|
|
11608
|
+
}
|
|
11609
|
+
return c.label;
|
|
11610
|
+
});
|
|
11611
|
+
sections.push(fitAnsiLine(dimCliText(labels.join(" "), colorEnabled), cols));
|
|
11521
11612
|
}
|
|
11522
11613
|
const rawActivity = config.getActivityLines ? config.getActivityLines({ columns: cols, rows: getRows() }) : config.getActivityLine ? config.getActivityLine() : null;
|
|
11523
11614
|
const activityLines = Array.isArray(rawActivity) ? rawActivity.filter((line) => line !== null && line !== void 0) : typeof rawActivity === "string" && rawActivity.length > 0 ? [rawActivity] : [];
|
|
@@ -12006,6 +12097,63 @@ async function runAgentChat(scriptDir, state, message, env, output, agentRunner
|
|
|
12006
12097
|
let effectiveMessage = message;
|
|
12007
12098
|
let skillAllowedTools;
|
|
12008
12099
|
let skillContextBlocks;
|
|
12100
|
+
const parsedSlashSkill = parseSkillSlashReference(message);
|
|
12101
|
+
let slashSkillPreloadResult;
|
|
12102
|
+
if (parsedSlashSkill) {
|
|
12103
|
+
const executor = buildLoadSkillExecutor({ cwd: state.cwd });
|
|
12104
|
+
let loadArgs;
|
|
12105
|
+
if (parsedSlashSkill.reference.source === "builtin") {
|
|
12106
|
+
loadArgs = { source: "builtin", slug: parsedSlashSkill.reference.id };
|
|
12107
|
+
} else if (parsedSlashSkill.reference.source === "project") {
|
|
12108
|
+
loadArgs = {
|
|
12109
|
+
source: "project",
|
|
12110
|
+
projectBinding: parsedSlashSkill.reference.projectBinding,
|
|
12111
|
+
relativePath: parsedSlashSkill.reference.relativePath
|
|
12112
|
+
};
|
|
12113
|
+
} else {
|
|
12114
|
+
loadArgs = {
|
|
12115
|
+
source: "space",
|
|
12116
|
+
dbKey: parsedSlashSkill.reference.dbKey
|
|
12117
|
+
};
|
|
12118
|
+
}
|
|
12119
|
+
const loadResult = await executor({
|
|
12120
|
+
name: "loadSkill",
|
|
12121
|
+
arguments: JSON.stringify(loadArgs)
|
|
12122
|
+
});
|
|
12123
|
+
if (!loadResult.metadata?.resolved) {
|
|
12124
|
+
output.write(`[nolo] skill preload failed: ${loadResult.content}
|
|
12125
|
+
`);
|
|
12126
|
+
throw new Error(`Skill preload failed: ${loadResult.content}`);
|
|
12127
|
+
}
|
|
12128
|
+
effectiveMessage = resolveSkillSlashUserPrompt(parsedSlashSkill.args);
|
|
12129
|
+
let preloadTools;
|
|
12130
|
+
if (Array.isArray(loadResult.metadata?.toolNames) && loadResult.metadata.toolNames.length > 0) {
|
|
12131
|
+
preloadTools = loadResult.metadata.toolNames.filter(
|
|
12132
|
+
(t2) => typeof t2 === "string" && t2.length > 0
|
|
12133
|
+
);
|
|
12134
|
+
}
|
|
12135
|
+
let skillMarkdown = loadResult.content;
|
|
12136
|
+
const inlinePrefix = /^Skill\s+"[^"]*"\s+loaded inline\.\s+Follow its instructions\.\s*\n+/i;
|
|
12137
|
+
if (inlinePrefix.test(skillMarkdown)) {
|
|
12138
|
+
skillMarkdown = skillMarkdown.replace(inlinePrefix, "");
|
|
12139
|
+
} else {
|
|
12140
|
+
const frontmatterIndex = skillMarkdown.search(/(?:^|\n)---\s*\n/);
|
|
12141
|
+
if (frontmatterIndex !== -1) {
|
|
12142
|
+
const dashIndex = skillMarkdown.indexOf("---", frontmatterIndex);
|
|
12143
|
+
if (dashIndex !== -1) {
|
|
12144
|
+
skillMarkdown = skillMarkdown.slice(dashIndex);
|
|
12145
|
+
}
|
|
12146
|
+
}
|
|
12147
|
+
}
|
|
12148
|
+
const external = parseExternalSkillMarkdown(skillMarkdown);
|
|
12149
|
+
if (external.allowedTools && external.allowedTools.length > 0) {
|
|
12150
|
+
preloadTools = preloadTools ? preloadTools.filter((t2) => external.allowedTools.includes(t2)) : external.allowedTools;
|
|
12151
|
+
}
|
|
12152
|
+
slashSkillPreloadResult = {
|
|
12153
|
+
content: loadResult.content,
|
|
12154
|
+
allowedTools: preloadTools
|
|
12155
|
+
};
|
|
12156
|
+
}
|
|
12009
12157
|
const memoryPromptOutcomePromise = state.cachedMemoryOverlay === void 0 ? resolveCliMemory({
|
|
12010
12158
|
serverUrl: state.serverUrl,
|
|
12011
12159
|
authToken: resolvePlatformAuthToken(env),
|
|
@@ -12053,6 +12201,27 @@ async function runAgentChat(scriptDir, state, message, env, output, agentRunner
|
|
|
12053
12201
|
}
|
|
12054
12202
|
}
|
|
12055
12203
|
}
|
|
12204
|
+
if (slashSkillPreloadResult) {
|
|
12205
|
+
skillContextBlocks = [
|
|
12206
|
+
...skillContextBlocks ?? [],
|
|
12207
|
+
slashSkillPreloadResult.content
|
|
12208
|
+
];
|
|
12209
|
+
if (slashSkillPreloadResult.allowedTools && slashSkillPreloadResult.allowedTools.length > 0) {
|
|
12210
|
+
if (skillAllowedTools !== void 0) {
|
|
12211
|
+
const intersected = skillAllowedTools.filter(
|
|
12212
|
+
(t2) => slashSkillPreloadResult.allowedTools.includes(t2)
|
|
12213
|
+
);
|
|
12214
|
+
if (intersected.length === 0) {
|
|
12215
|
+
throw new Error(
|
|
12216
|
+
"Cannot preserve skill tool authorization: incompatible tool restrictions"
|
|
12217
|
+
);
|
|
12218
|
+
}
|
|
12219
|
+
skillAllowedTools = intersected;
|
|
12220
|
+
} else {
|
|
12221
|
+
skillAllowedTools = slashSkillPreloadResult.allowedTools;
|
|
12222
|
+
}
|
|
12223
|
+
}
|
|
12224
|
+
}
|
|
12056
12225
|
const layers = [
|
|
12057
12226
|
readAgentsMdLayerFromDisk(state.cwd),
|
|
12058
12227
|
// Skill discovery: scan conventional skill dirs for SKILL.md and inject an
|