nolo-cli 0.191.0-alpha.3 → 0.191.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 (149) hide show
  1. package/{_executeModel-WQ2D4ZRH.js → _executeModel-4HQQXPN4.js} +44 -46
  2. package/{action-BHWB4MOK.js → action-HNG2JKWK.js} +3 -3
  3. package/{addContentAction-BY375D35.js → addContentAction-FEN3H2EE.js} +6 -6
  4. package/{addDialogAgentAction-HOZYOCWC.js → addDialogAgentAction-DDA6S3WS.js} +5 -5
  5. package/{agentDeleteCommand-TTCVC74A.js → agentDeleteCommand-HZFWSKED.js} +57 -59
  6. package/{agentEmailCommands-PTG35KER.js → agentEmailCommands-HRYMVHC7.js} +59 -61
  7. package/{agentListCommands-MAG736RU.js → agentListCommands-HE2CCZEW.js} +33 -31
  8. package/{agentMachineCommands-ATOZK3R5.js → agentMachineCommands-ISSULCRR.js} +23 -23
  9. package/{agentProviderCommands-XSZUCNIR.js → agentProviderCommands-4EAYN3ZY.js} +3 -3
  10. package/{agentRecordCommands-KGRPIJN5.js → agentRecordCommands-WGAMWQLA.js} +57 -59
  11. package/{agentRunCommand-75VVJTNU.js → agentRunCommand-7EQ64FIB.js} +59 -61
  12. package/{agentRunControl-6HHESKDB.js → agentRunControl-EJPBPVLU.js} +5 -5
  13. package/{agentRuntimeLocal-NAAYNHCW.js → agentRuntimeLocal-ONSIOOQB.js} +20 -20
  14. package/{agentSlice-UJPIKKKP.js → agentSlice-CHWNVAS5.js} +6 -6
  15. package/{appDeleteCommands-VDHCDVBF.js → appDeleteCommands-RNAF4V5C.js} +25 -25
  16. package/{appDeployCommands-V6UTKVXR.js → appDeployCommands-LTIZ4QH7.js} +25 -25
  17. package/{appDeployStatusCommands-4UIFSEPC.js → appDeployStatusCommands-OJJR4LDK.js} +25 -25
  18. package/{appGetCommands-XKDXLC3C.js → appGetCommands-UJZF6U4V.js} +25 -25
  19. package/{appListCommands-BELRVX2Y.js → appListCommands-M5C5BIDY.js} +25 -25
  20. package/{authCommand-RV5MQDWN.js → authCommand-RMUBRAXF.js} +11 -11
  21. package/{builtinSkillRegistry-7MBUY5EY.js → builtinSkillRegistry-XDBPVNY6.js} +3 -5
  22. package/{chromeOpsCommands-C46BXHEE.js → chromeOpsCommands-P4PFQDT7.js} +19 -4
  23. package/{chunk-7UODCAWW.js → chunk-32GANJHJ.js} +1 -1
  24. package/{chunk-G6OOUQWJ.js → chunk-4KB6WQUL.js} +2 -0
  25. package/{chunk-LHOR5MC2.js → chunk-4KYV2TAI.js} +164 -323
  26. package/{chunk-5EFNSNAV.js → chunk-6CFXWUYE.js} +7 -7
  27. package/{chunk-6XIE5ZGI.js → chunk-6HIGYUBQ.js} +1 -1
  28. package/{chunk-LBXUNNDS.js → chunk-6K2AKJAD.js} +1 -1
  29. package/{chunk-U5ZHUOLT.js → chunk-6OBTQSJ2.js} +2 -2
  30. package/{chunk-XPL63OIC.js → chunk-7SUYSFPG.js} +140 -66
  31. package/{chunk-53RSTB7T.js → chunk-7TMVGMM3.js} +26 -31
  32. package/{chunk-ZBCBFOWC.js → chunk-A2ZMIRLN.js} +2 -2
  33. package/{chunk-MJWUBTK7.js → chunk-AOYR4XOA.js} +1 -1
  34. package/{chunk-IIX6VWLW.js → chunk-AV6IE6NM.js} +224 -38
  35. package/{chunk-WFUIXNKC.js → chunk-BMXR7CFX.js} +3 -3
  36. package/{chunk-JIFYXQRD.js → chunk-BTYQAODF.js} +26 -8
  37. package/{chunk-VHGD6FHV.js → chunk-BZKBX5BO.js} +28 -5
  38. package/{chunk-Q6RMLYSA.js → chunk-CMLBKYEI.js} +4 -2
  39. package/chunk-CMTTXP5Y.js +291 -0
  40. package/{chunk-OHRDHS4N.js → chunk-CVCRAO6Q.js} +9 -4
  41. package/{chunk-SM56M7N7.js → chunk-DBRXPVWY.js} +39 -5
  42. package/{chunk-2KBNF477.js → chunk-DSVR6ZAV.js} +30 -21
  43. package/{chunk-ADTJJVDJ.js → chunk-DXDG4XLD.js} +2838 -2255
  44. package/{chunk-R5LJWMZE.js → chunk-EMXVOJDB.js} +3 -3
  45. package/{chunk-KHCLMKZZ.js → chunk-EY7V7REW.js} +280 -6
  46. package/{chunk-KGP7UTNN.js → chunk-FNXSQ7A3.js} +15 -15
  47. package/{chunk-BTBT2566.js → chunk-FSEGCTZQ.js} +1 -1
  48. package/{chunk-CNMQATUF.js → chunk-GL7W7TTR.js} +2 -2
  49. package/{chunk-5KTQVMCX.js → chunk-GOO6G4PY.js} +85 -0
  50. package/{chunk-HTLIKE5U.js → chunk-GVMF62PR.js} +2 -2
  51. package/{chunk-UZHYRBUB.js → chunk-H4CFODT7.js} +137 -61
  52. package/{chunk-R4BMKAR5.js → chunk-HAB2UDLT.js} +1 -1
  53. package/{chunk-3NPXGNSK.js → chunk-HVXL4VOO.js} +348 -87
  54. package/{chunk-32ZKZET7.js → chunk-HWZT5DKX.js} +1 -1
  55. package/{chunk-GYVLAHA4.js → chunk-IY7DGZSY.js} +10 -4
  56. package/{chunk-FEDJHD5X.js → chunk-J5Z2SSIY.js} +6 -6
  57. package/{chunk-UVWBGWBO.js → chunk-JA6WCCDO.js} +3 -3
  58. package/{chunk-YE6A72XL.js → chunk-JI5MQU5B.js} +35 -31
  59. package/{chunk-TFSMPRAY.js → chunk-JLOCKFSI.js} +4 -4
  60. package/{chunk-UBLITLAZ.js → chunk-K2GL335R.js} +13 -3
  61. package/{chunk-DS5DAOIY.js → chunk-KYQXW7DL.js} +3 -3
  62. package/{chunk-5HAPEKNH.js → chunk-LFJRTOUV.js} +158 -43
  63. package/{chunk-N7E3LQ4A.js → chunk-LGW6A7GK.js} +1 -1
  64. package/{chunk-UNOILAZP.js → chunk-M6AGLVV4.js} +74 -2
  65. package/{chunk-BA2FHPS4.js → chunk-MOCY5LJI.js} +1 -1
  66. package/{chunk-INFHX73M.js → chunk-MR6L6U46.js} +55 -3
  67. package/{chunk-CTPFBJAF.js → chunk-N7IBYQEC.js} +182 -91
  68. package/{chunk-QU3TLYBR.js → chunk-NHI3JZP4.js} +32 -8
  69. package/{chunk-B2N5GZBU.js → chunk-OHYCQKPW.js} +6 -6
  70. package/{chunk-WAZ6BTSC.js → chunk-OOERQPG5.js} +1 -1
  71. package/{chunk-EHB4CKUI.js → chunk-OTKNEZE3.js} +9 -9
  72. package/chunk-OVBUUU7L.js +2648 -0
  73. package/{chunk-PVD7CRYV.js → chunk-P7SUBTGZ.js} +3 -3
  74. package/{chunk-RJ3EYB5G.js → chunk-PRIROPK4.js} +1 -1
  75. package/chunk-PRJ473FK.js +63 -0
  76. package/{chunk-K6TZSON4.js → chunk-PXERKNSJ.js} +1 -1
  77. package/{chunk-B6EZB6DW.js → chunk-QAYCF4CH.js} +2 -2
  78. package/{chunk-5DPVRMSY.js → chunk-RBJASUX4.js} +1 -1
  79. package/{chunk-NVOYW6H4.js → chunk-RDKNGJ5M.js} +12 -8
  80. package/{chunk-GTP6VNWH.js → chunk-RQ22OZD7.js} +3 -3
  81. package/{chunk-2E5M3JVS.js → chunk-RWGIVUH3.js} +11 -5
  82. package/{chunk-DFF6B7P7.js → chunk-RXUKDHS5.js} +1 -1
  83. package/{chunk-JLR5NWP2.js → chunk-RXX262QX.js} +17 -3
  84. package/{chunk-GC64WGMD.js → chunk-SM3NSZJV.js} +16 -5
  85. package/{chunk-A5BLRE3G.js → chunk-T3U2KQF4.js} +2 -2
  86. package/{chunk-HLAL63BZ.js → chunk-T43B7LB2.js} +1 -1
  87. package/{chunk-LCSAJ5TJ.js → chunk-UDKNC3CV.js} +3 -3
  88. package/{chunk-VE3FEZIT.js → chunk-WKGOIXFV.js} +5 -5
  89. package/{chunk-4YMD7B4Y.js → chunk-WPOKOKZA.js} +2 -2
  90. package/{chunk-YIRADHSY.js → chunk-WYKMOZTW.js} +1 -1
  91. package/{chunk-WRCZXJ4N.js → chunk-X4F26D5K.js} +2 -0
  92. package/{chunk-4MYCKDSI.js → chunk-XUOF4MA7.js} +2 -2
  93. package/{chunk-PD2YRFAI.js → chunk-Y5ZEHS3F.js} +1 -1
  94. package/{chunk-4CEAZRZ4.js → chunk-YU2DGFKG.js} +1 -1
  95. package/{chunk-TVGX5QIN.js → chunk-YUA6OAH5.js} +2 -2
  96. package/{chunk-53PBXLID.js → chunk-Z3MQYKRN.js} +17 -17
  97. package/{chunk-I3HWJODB.js → chunk-ZHOKF4MY.js} +31 -26
  98. package/{chunk-2XUOREKD.js → chunk-ZI5MFQ42.js} +5 -4
  99. package/{chunk-DYQXB46J.js → chunk-ZSCIGIJS.js} +1 -1
  100. package/{commandRegistry-4JHVRMW7.js → commandRegistry-O2657YC7.js} +86 -66
  101. package/{contentThunks-HQBAAXNW.js → contentThunks-THWDEBJU.js} +17 -17
  102. package/{cooldownCommands-4XKJFEBW.js → cooldownCommands-V4EEBD55.js} +3 -3
  103. package/{createAgentAutomationAction-KELPOVMP.js → createAgentAutomationAction-2ZZTFGWG.js} +17 -17
  104. package/{createDialogAction-Z3SASMTM.js → createDialogAction-FCRKPKIT.js} +20 -22
  105. package/{createPageAction-PNHOIG44.js → createPageAction-EC25JTKW.js} +18 -19
  106. package/{dbSlice-QAUXABCC.js → dbSlice-JK7LWBDO.js} +5 -5
  107. package/{deleteFile-R5OBP7OM.js → deleteFile-CE24BROO.js} +3 -3
  108. package/{dialogCommands-4BGV6DPD.js → dialogCommands-QH7BJ3DJ.js} +26 -26
  109. package/{dialogSlice-QHV6I3OQ.js → dialogSlice-Z5E7POEN.js} +16 -16
  110. package/{docCreateCommands-3CW75UF2.js → docCreateCommands-KP42NGIF.js} +26 -27
  111. package/{docDeleteCommands-NL4ZYMN5.js → docDeleteCommands-7YOCX5GC.js} +27 -28
  112. package/{docReadCommands-HXCNVDPQ.js → docReadCommands-EJEIAOKQ.js} +26 -27
  113. package/{docStore-LVMUSECS.js → docStore-6MHLMMWO.js} +6 -6
  114. package/{docUpdateCommands-RMVBAMDE.js → docUpdateCommands-ACJLISGA.js} +26 -27
  115. package/{getPricing-E2PLNWCR.js → getPricing-3PQY3TGI.js} +3 -3
  116. package/{handleSendMessageAction-7TONIXHY.js → handleSendMessageAction-MTOPN4D3.js} +86 -42
  117. package/index.js +7 -7
  118. package/{lib-4YTWAGY7.js → lib-5KKIBFIT.js} +439 -272
  119. package/{localRuntimeAdapter-HRAB7P5E.js → localRuntimeAdapter-4USQ3EP7.js} +55 -57
  120. package/{machineCommands-OTXFRTDA.js → machineCommands-CJMSDSOO.js} +56 -58
  121. package/{machineWsRunDispatch-KWVWOHHG.js → machineWsRunDispatch-YIPO76QH.js} +56 -58
  122. package/{memberThunks-ZAE52VIP.js → memberThunks-WT2KVRP4.js} +158 -55
  123. package/{models-UUNO6DOL.js → models-PJBE6JDV.js} +2 -2
  124. package/package.json +1 -1
  125. package/{providerPresetApply-JGNMO2KX.js → providerPresetApply-ISA35424.js} +5 -5
  126. package/{providerRegistry-33J3ZYFJ.js → providerRegistry-QIQCHVNP.js} +5 -5
  127. package/{read-D6NEWSGG.js → read-ILTT75DW.js} +3 -3
  128. package/{readDocTool-NTAXO7SX.js → readDocTool-374CFJYO.js} +1 -1
  129. package/{readlineWorkspace-CEX5TXGM.js → readlineWorkspace-RORGDWZN.js} +291 -99
  130. package/{removeDialogAgentAction-YEPO5AYI.js → removeDialogAgentAction-BDLO7UC2.js} +7 -7
  131. package/{runAgentClientLoop-DCV4BD2W.js → runAgentClientLoop-CDCBSUWW.js} +41 -43
  132. package/{runtimeDoctorCommands-NYBOTA6D.js → runtimeDoctorCommands-AM2V5YVH.js} +5 -5
  133. package/{secretCommands-N6CMCJDZ.js → secretCommands-G5XYCXZB.js} +308 -1
  134. package/{setDialogExtraReferencesAction-EH5GWDAJ.js → setDialogExtraReferencesAction-GBIT7WAG.js} +6 -6
  135. package/{setPrimaryDialogAgentAction-PNWRK6IY.js → setPrimaryDialogAgentAction-PGBTR247.js} +7 -7
  136. package/{settingThunks-7VCWB6P7.js → settingThunks-XQJZVA4D.js} +38 -7
  137. package/{skillDiscovery-F3TMVQOJ.js → skillDiscovery-DO5372J5.js} +2 -3
  138. package/{spaceCommands-ZUI4CTSO.js → spaceCommands-BTSANKDH.js} +23 -23
  139. package/{streamAgentChatTurn-NKFKMFQ2.js → streamAgentChatTurn-VUF3EUMS.js} +66 -59
  140. package/{switchDialogAgentAction-23BFWJMV.js → switchDialogAgentAction-O7WTPLKG.js} +5 -5
  141. package/{tools-626VXEY7.js → tools-GAAYAIEW.js} +35 -37
  142. package/{tuiSummaryLlmCaller-FSOADMXK.js → tuiSummaryLlmCaller-MKOLOSH3.js} +11 -11
  143. package/{updateCommands-KE6LP3QX.js → updateCommands-W7TXEV7N.js} +3 -3
  144. package/{updateDialogTitleAction-RNNQAMXG.js → updateDialogTitleAction-LE2DBQDS.js} +17 -17
  145. package/{windowsSelfUpdate-26TSFXEZ.js → windowsSelfUpdate-575VQ6QO.js} +2 -2
  146. package/chunk-7KWPNGVJ.js +0 -150
  147. package/chunk-AETZ7AD6.js +0 -274
  148. package/chunk-EUGTFFO6.js +0 -42
  149. package/chunk-VYNMQ6HW.js +0 -138
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  resolveAuthGuidanceState
3
- } from "./chunk-MJWUBTK7.js";
3
+ } from "./chunk-AOYR4XOA.js";
4
4
  import {
5
5
  fetchCiStatus,
6
6
  summarizeLatest
7
- } from "./chunk-VHGD6FHV.js";
7
+ } from "./chunk-BZKBX5BO.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-TFSMPRAY.js";
15
+ } from "./chunk-JLOCKFSI.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-UVWBGWBO.js";
23
+ } from "./chunk-JA6WCCDO.js";
24
24
  import "./chunk-ID4G2MAR.js";
25
25
  import {
26
26
  listUserRecordsFromServers,
27
27
  readLiveDbRecordAfterTombstoneMerge
28
- } from "./chunk-5DPVRMSY.js";
28
+ } from "./chunk-RBJASUX4.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-UZHYRBUB.js";
105
+ } from "./chunk-H4CFODT7.js";
106
106
  import "./chunk-6QDYSCPW.js";
107
- import "./chunk-U5ZHUOLT.js";
107
+ import "./chunk-6OBTQSJ2.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-GYVLAHA4.js";
116
+ } from "./chunk-IY7DGZSY.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-XPL63OIC.js";
127
- import "./chunk-DYQXB46J.js";
126
+ } from "./chunk-7SUYSFPG.js";
127
+ import "./chunk-ZSCIGIJS.js";
128
128
  import "./chunk-VP3BINY7.js";
129
- import "./chunk-R4BMKAR5.js";
129
+ import "./chunk-HAB2UDLT.js";
130
130
  import "./chunk-LKZPX6YH.js";
131
- import "./chunk-RJ3EYB5G.js";
131
+ import "./chunk-PRIROPK4.js";
132
132
  import {
133
133
  NOLO_DEFAULT_AGENT_KEY,
134
134
  resolveCliAgentKeyInput
@@ -142,52 +142,57 @@ import {
142
142
  } from "./chunk-UGCQKKXW.js";
143
143
  import "./chunk-TY3TIUJK.js";
144
144
  import "./chunk-S73EPYNC.js";
145
- import "./chunk-GTP6VNWH.js";
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-INFHX73M.js";
155
+ import "./chunk-MR6L6U46.js";
151
156
  import "./chunk-JEXVIMYZ.js";
152
157
  import {
153
158
  prepareTools
154
- } from "./chunk-LCSAJ5TJ.js";
159
+ } from "./chunk-UDKNC3CV.js";
155
160
  import "./chunk-HS7MLR74.js";
156
- import "./chunk-LHOR5MC2.js";
161
+ import "./chunk-4KYV2TAI.js";
157
162
  import "./chunk-KFHREHUQ.js";
158
- import "./chunk-53RSTB7T.js";
163
+ import "./chunk-7TMVGMM3.js";
159
164
  import "./chunk-OXME3PEE.js";
160
165
  import "./chunk-KSTEXKL6.js";
161
- import "./chunk-VF4K2QE6.js";
162
- import "./chunk-53PBXLID.js";
163
- import "./chunk-3NPXGNSK.js";
166
+ import "./chunk-Z3MQYKRN.js";
167
+ import "./chunk-HVXL4VOO.js";
164
168
  import "./chunk-NF64D32W.js";
165
169
  import "./chunk-3L2WKC3W.js";
166
- import "./chunk-VYNMQ6HW.js";
167
- import "./chunk-DS5DAOIY.js";
170
+ import "./chunk-CMTTXP5Y.js";
171
+ import "./chunk-VF4K2QE6.js";
172
+ import "./chunk-KYQXW7DL.js";
168
173
  import "./chunk-MYOH447Z.js";
169
- import "./chunk-DFF6B7P7.js";
170
- import "./chunk-YIRADHSY.js";
174
+ import "./chunk-RXUKDHS5.js";
175
+ import "./chunk-WYKMOZTW.js";
171
176
  import "./chunk-AGIM7IMJ.js";
172
- import "./chunk-ZBCBFOWC.js";
177
+ import "./chunk-A2ZMIRLN.js";
173
178
  import "./chunk-VIDPVFP3.js";
174
179
  import "./chunk-63W5N6P3.js";
175
- import "./chunk-2E5M3JVS.js";
176
- import "./chunk-5EFNSNAV.js";
180
+ import "./chunk-RWGIVUH3.js";
181
+ import "./chunk-6CFXWUYE.js";
177
182
  import "./chunk-5XBUWM6I.js";
178
183
  import {
179
184
  estimateMessagesTokens,
180
185
  historyTokensBeforeLatestAssistant
181
- } from "./chunk-YE6A72XL.js";
186
+ } from "./chunk-JI5MQU5B.js";
182
187
  import "./chunk-TZXPT53C.js";
183
188
  import "./chunk-LEC5ALIN.js";
184
189
  import "./chunk-523DITKR.js";
185
- import "./chunk-CTPFBJAF.js";
190
+ import "./chunk-N7IBYQEC.js";
186
191
  import "./chunk-BYXBJQAS.js";
187
192
  import "./chunk-QYPE3TS3.js";
188
- import "./chunk-A5BLRE3G.js";
193
+ import "./chunk-T3U2KQF4.js";
189
194
  import "./chunk-4JH2UMJR.js";
190
- import "./chunk-B6EZB6DW.js";
195
+ import "./chunk-QAYCF4CH.js";
191
196
  import "./chunk-UAD2WT54.js";
192
197
  import "./chunk-5RGU3J7P.js";
193
198
  import "./chunk-ZRAU6T47.js";
@@ -200,15 +205,15 @@ import "./chunk-5ZMIIR23.js";
200
205
  import "./chunk-CVMMWN6P.js";
201
206
  import "./chunk-P64WRQYV.js";
202
207
  import "./chunk-GLKOYSRU.js";
203
- import "./chunk-CNMQATUF.js";
204
- import "./chunk-32ZKZET7.js";
205
- import "./chunk-B2N5GZBU.js";
208
+ import "./chunk-GL7W7TTR.js";
209
+ import "./chunk-HWZT5DKX.js";
210
+ import "./chunk-OHYCQKPW.js";
206
211
  import "./chunk-3PVYUPXK.js";
207
- import "./chunk-BA2FHPS4.js";
208
- import "./chunk-LBXUNNDS.js";
209
- import "./chunk-7UODCAWW.js";
212
+ import "./chunk-MOCY5LJI.js";
213
+ import "./chunk-6K2AKJAD.js";
214
+ import "./chunk-32GANJHJ.js";
210
215
  import "./chunk-UEILX4EV.js";
211
- import "./chunk-WRCZXJ4N.js";
216
+ import "./chunk-X4F26D5K.js";
212
217
  import "./chunk-6Q7UTJKR.js";
213
218
  import "./chunk-QQ56R7KS.js";
214
219
  import "./chunk-OW765XBU.js";
@@ -217,34 +222,38 @@ import "./chunk-ZSO5B6SW.js";
217
222
  import "./chunk-D2MDMY2M.js";
218
223
  import {
219
224
  buildSkillDiscoveryContextBlock,
220
- buildSkillDiscoveryContextLayer
221
- } from "./chunk-7KWPNGVJ.js";
222
- import "./chunk-5HAPEKNH.js";
225
+ buildSkillDiscoveryContextLayer,
226
+ discoverSkills
227
+ } from "./chunk-OVBUUU7L.js";
228
+ import {
229
+ listBuiltinSkills
230
+ } from "./chunk-LFJRTOUV.js";
223
231
  import {
224
232
  expandEnabledPacks
225
- } from "./chunk-SM56M7N7.js";
226
- import "./chunk-EUGTFFO6.js";
227
- import "./chunk-AETZ7AD6.js";
233
+ } from "./chunk-DBRXPVWY.js";
234
+ import {
235
+ parseExternalSkillMarkdown
236
+ } from "./chunk-EY7V7REW.js";
228
237
  import "./chunk-Y6ORVLSS.js";
229
- import "./chunk-KHCLMKZZ.js";
230
238
  import {
239
+ buildLoadSkillExecutor,
231
240
  buildLocalWorkspaceOpenAiTools,
232
241
  buildLocalWorkspaceToolset,
233
242
  formatToolOverflowMarker,
234
243
  getProcessRegistry,
235
244
  readCommandActionGatePayload
236
- } from "./chunk-ADTJJVDJ.js";
245
+ } from "./chunk-DXDG4XLD.js";
237
246
  import "./chunk-ZNFJWEN4.js";
238
- import "./chunk-IIX6VWLW.js";
239
- import "./chunk-NVOYW6H4.js";
247
+ import "./chunk-AV6IE6NM.js";
248
+ import "./chunk-RDKNGJ5M.js";
240
249
  import "./chunk-HNUWUO75.js";
241
250
  import "./chunk-CHOZJMJS.js";
242
251
  import "./chunk-PWTNI4N7.js";
243
252
  import "./chunk-HIVDQPQR.js";
244
- import "./chunk-N7E3LQ4A.js";
253
+ import "./chunk-LGW6A7GK.js";
245
254
  import "./chunk-2WZXXAQD.js";
246
- import "./chunk-PVD7CRYV.js";
247
- import "./chunk-G6OOUQWJ.js";
255
+ import "./chunk-P7SUBTGZ.js";
256
+ import "./chunk-4KB6WQUL.js";
248
257
  import "./chunk-56GBUMO5.js";
249
258
  import {
250
259
  CREDENTIAL_HYGIENE_RULE,
@@ -257,20 +266,20 @@ import {
257
266
  buildRuntimeGuidanceBlocks,
258
267
  resolveResponseGuidelines,
259
268
  resolveToolGuidedSections
260
- } from "./chunk-I3HWJODB.js";
261
- import "./chunk-OHRDHS4N.js";
269
+ } from "./chunk-ZHOKF4MY.js";
270
+ import "./chunk-CVCRAO6Q.js";
262
271
  import "./chunk-E2BESSAW.js";
263
- import "./chunk-UBLITLAZ.js";
272
+ import "./chunk-K2GL335R.js";
264
273
  import {
265
274
  isQuotaExhaustedError
266
- } from "./chunk-JLR5NWP2.js";
275
+ } from "./chunk-RXX262QX.js";
267
276
  import "./chunk-WJZOQR2J.js";
268
- import "./chunk-WFUIXNKC.js";
277
+ import "./chunk-BMXR7CFX.js";
269
278
  import "./chunk-2MBTWINN.js";
270
279
  import {
271
280
  extractReferenceKeysFromMessage,
272
281
  normalizeUsage
273
- } from "./chunk-K6TZSON4.js";
282
+ } from "./chunk-PXERKNSJ.js";
274
283
  import "./chunk-5ZUL4CUO.js";
275
284
  import {
276
285
  DEFAULT_CONTEXT_WINDOW,
@@ -283,7 +292,7 @@ import {
283
292
  getModelContextWindow,
284
293
  planCompression,
285
294
  serializeMessageContent
286
- } from "./chunk-JIFYXQRD.js";
295
+ } from "./chunk-BTYQAODF.js";
287
296
  import "./chunk-H57T64RA.js";
288
297
  import "./chunk-UKZX3NHN.js";
289
298
  import {
@@ -302,7 +311,7 @@ import {
302
311
  buildMemoryUseGuidanceLayer,
303
312
  partitionScopedBlocks,
304
313
  renderTurnContextBlocksWithScope
305
- } from "./chunk-Q6RMLYSA.js";
314
+ } from "./chunk-CMLBKYEI.js";
306
315
  import {
307
316
  buildUserResponseLanguageContext
308
317
  } from "./chunk-4VJAC32I.js";
@@ -321,7 +330,7 @@ import {
321
330
  extractCustomId,
322
331
  parsePublicAgentId
323
332
  } from "./chunk-M2EJHDJP.js";
324
- import "./chunk-QU3TLYBR.js";
333
+ import "./chunk-NHI3JZP4.js";
325
334
  import {
326
335
  toErrorMessage
327
336
  } from "./chunk-HNMXYYJR.js";
@@ -331,7 +340,7 @@ import {
331
340
  isRunRecordClaimed,
332
341
  listRunRecords,
333
342
  readRunRecord
334
- } from "./chunk-BTBT2566.js";
343
+ } from "./chunk-FSEGCTZQ.js";
335
344
  import {
336
345
  clipText,
337
346
  formatDuration,
@@ -347,9 +356,9 @@ import {
347
356
  } from "./chunk-PSCNXBYA.js";
348
357
  import {
349
358
  resolvePlatformAuthToken
350
- } from "./chunk-4YMD7B4Y.js";
351
- import "./chunk-TVGX5QIN.js";
352
- import "./chunk-GC64WGMD.js";
359
+ } from "./chunk-WPOKOKZA.js";
360
+ import "./chunk-YUA6OAH5.js";
361
+ import "./chunk-SM3NSZJV.js";
353
362
  import "./chunk-5BHQICF2.js";
354
363
  import {
355
364
  isRecord
@@ -362,7 +371,7 @@ import {
362
371
  import {
363
372
  checkForCliUpdate,
364
373
  runSelfUpdateDetailed
365
- } from "./chunk-HTLIKE5U.js";
374
+ } from "./chunk-GVMF62PR.js";
366
375
  import {
367
376
  parseUserIdFromAuthToken,
368
377
  resolveAuthToken,
@@ -395,14 +404,14 @@ import {
395
404
  resolveDefaultSpawn,
396
405
  spawnProcess
397
406
  } from "./chunk-Y6ROFCZO.js";
398
- import "./chunk-WAZ6BTSC.js";
407
+ import "./chunk-OOERQPG5.js";
399
408
  import {
400
409
  dailyWelcomeTip,
401
410
  initCliLocale,
402
411
  parseCliLocale,
403
412
  setCliLocale,
404
413
  t
405
- } from "./chunk-UNOILAZP.js";
414
+ } from "./chunk-M6AGLVV4.js";
406
415
  import "./chunk-ECX3NKRD.js";
407
416
  import "./chunk-XJWWBO34.js";
408
417
  import "./chunk-I42VC5KR.js";
@@ -412,8 +421,8 @@ import "./chunk-3EUW3WEO.js";
412
421
  import {
413
422
  asOptionalTrimmedString
414
423
  } from "./chunk-G3SUCT4W.js";
415
- import "./chunk-HLAL63BZ.js";
416
- import "./chunk-5KTQVMCX.js";
424
+ import "./chunk-T43B7LB2.js";
425
+ import "./chunk-GOO6G4PY.js";
417
426
  import {
418
427
  asTrimmedLowercaseString
419
428
  } from "./chunk-QSJ3HFEF.js";
@@ -508,7 +517,7 @@ function createSnapshotGuardedApproval(kind, getGrants, approve) {
508
517
  import nacl from "tweetnacl";
509
518
 
510
519
  // node_modules/js-base64/base64.mjs
511
- var version = "3.9.5";
520
+ var version = "3.9.6";
512
521
  var VERSION = version;
513
522
  var _TD = typeof TextDecoder === "function" ? new TextDecoder("utf-8", { ignoreBOM: true }) : void 0;
514
523
  var _TE = typeof TextEncoder === "function" ? new TextEncoder() : void 0;
@@ -601,6 +610,8 @@ var isValid = (src) => {
601
610
  if (typeof src !== "string")
602
611
  return false;
603
612
  const s = src.replace(/\s+/g, "").replace(/={0,2}$/, "");
613
+ if (s.length % 4 === 1)
614
+ return false;
604
615
  return !/[^\s0-9a-zA-Z\+/]/.test(s) || !/[^\s0-9a-zA-Z\-_]/.test(s);
605
616
  };
606
617
  var _noEnum = (v) => {
@@ -6290,16 +6301,44 @@ function applyTuiInputKey(buffer, sequence, key = {}, cursorPos, options) {
6290
6301
  }
6291
6302
  return { buffer, cursorPos: curPos };
6292
6303
  }
6293
- if (seq === " " || key.name === "tab") {
6294
- if (options?.cwd) {
6295
- const pathCandidates = completeSlashCommand(buffer, options.cwd);
6296
- if (pathCandidates.length === 1) {
6297
- const [only] = pathCandidates;
6298
- return { buffer: only, cursorPos: only.length };
6304
+ const isBackTab = seq === "\x1B[Z" || key.name === "backtab" || Boolean(key.shift) && (seq === " " || key.name === "tab");
6305
+ const isTab = !isBackTab && (seq === " " || key.name === "tab");
6306
+ if (isTab || isBackTab) {
6307
+ const isReverse = isBackTab;
6308
+ let candidates = completeSlashCandidates(buffer, options?.cwd);
6309
+ if (options?.cwd && buffer.startsWith("/cd ") && buffer.endsWith("/")) {
6310
+ const prefix = buffer.slice("/cd ".length);
6311
+ const trimmedSlash = prefix.slice(0, -1);
6312
+ const lastSlash = trimmedSlash.lastIndexOf("/");
6313
+ const parentPrefix = lastSlash >= 0 ? trimmedSlash.slice(0, lastSlash + 1) : "";
6314
+ const parentCandidates = completeSlashCandidates(`/cd ${parentPrefix}`, options.cwd);
6315
+ const parentIdx = parentCandidates.findIndex(
6316
+ (c) => buffer === c.insertText || buffer === c.insertText.trimEnd()
6317
+ );
6318
+ if (parentIdx >= 0 && parentCandidates.length > 1) {
6319
+ candidates = parentCandidates;
6320
+ }
6321
+ }
6322
+ if (candidates.length === 1) {
6323
+ const [only] = candidates;
6324
+ return { buffer: only.insertText, cursorPos: only.insertText.length };
6325
+ }
6326
+ if (candidates.length > 1) {
6327
+ const currentIndex = candidates.findIndex(
6328
+ (c) => buffer === c.insertText || buffer === c.insertText.trimEnd()
6329
+ );
6330
+ if (currentIndex >= 0) {
6331
+ const step = isReverse ? -1 : 1;
6332
+ const nextIndex = (currentIndex + step + candidates.length) % candidates.length;
6333
+ const next = candidates[nextIndex];
6334
+ return { buffer: next.insertText, cursorPos: next.insertText.length };
6299
6335
  }
6300
- if (pathCandidates.length > 1) {
6301
- return { buffer, cursorPos: curPos };
6336
+ const common = findCommonPrefix(candidates.map((c) => c.insertText));
6337
+ if (common.length > buffer.length) {
6338
+ return { buffer: common, cursorPos: common.length };
6302
6339
  }
6340
+ const chosen = isReverse ? candidates[candidates.length - 1] : candidates[0];
6341
+ return { buffer: chosen.insertText, cursorPos: chosen.insertText.length };
6303
6342
  }
6304
6343
  const completed = completeSlashPrefix(buffer) ?? buffer;
6305
6344
  return { buffer: completed, cursorPos: completed.length };
@@ -6456,15 +6495,78 @@ function completeSlashPrefix(buffer) {
6456
6495
  }
6457
6496
  return prefix.length > buffer.length ? prefix : null;
6458
6497
  }
6459
- function completeSlashCommand(buffer, cwd) {
6498
+ function findCommonPrefix(strings) {
6499
+ if (strings.length === 0) return "";
6500
+ let prefix = strings[0] ?? "";
6501
+ for (let i = 1; i < strings.length; i++) {
6502
+ while (!strings[i].startsWith(prefix)) {
6503
+ prefix = prefix.slice(0, -1);
6504
+ if (prefix === "") return "";
6505
+ }
6506
+ }
6507
+ return prefix;
6508
+ }
6509
+ function completeSlashCandidates(buffer, cwd) {
6460
6510
  if (!buffer.startsWith("/")) return [];
6461
6511
  const trimmed = buffer.trim();
6462
6512
  if (cwd && buffer.startsWith("/cd ")) {
6463
6513
  const prefix = buffer.slice("/cd ".length);
6464
- return completeCdPathCandidates(prefix, cwd);
6514
+ const pathLines = completeCdPathCandidates(prefix, cwd);
6515
+ return pathLines.map((line) => ({
6516
+ label: line,
6517
+ insertText: line,
6518
+ source: "path"
6519
+ }));
6465
6520
  }
6466
6521
  if (trimmed.includes(" ")) return [];
6467
- return SLASH_COMMANDS.filter((cmd) => cmd.startsWith(trimmed) && cmd !== trimmed);
6522
+ const candidates = [];
6523
+ for (const cmd of SLASH_COMMANDS) {
6524
+ if (cmd.startsWith(trimmed) && cmd !== trimmed) {
6525
+ candidates.push({
6526
+ label: cmd,
6527
+ insertText: `${cmd} `,
6528
+ source: "builtin"
6529
+ });
6530
+ }
6531
+ }
6532
+ const slashQuery = trimmed.slice(1).toLowerCase();
6533
+ for (const skill of listBuiltinSkills()) {
6534
+ const slug = skill.slug;
6535
+ if (slashQuery !== "" && !slug.toLowerCase().startsWith(slashQuery)) continue;
6536
+ candidates.push({
6537
+ label: `/${slug} (builtin)`,
6538
+ insertText: `${formatSkillSlashReference({
6539
+ source: "builtin",
6540
+ id: slug
6541
+ })} `,
6542
+ source: "builtin",
6543
+ description: skill.title || "Builtin skill"
6544
+ });
6545
+ }
6546
+ if (cwd) {
6547
+ try {
6548
+ const skills = discoverSkills(cwd);
6549
+ const query = trimmed.slice(1).toLowerCase();
6550
+ for (const skill of skills) {
6551
+ const nameLower = skill.name.toLowerCase();
6552
+ if (query === "" || nameLower.startsWith(query)) {
6553
+ const insertText = `${formatSkillSlashReference({
6554
+ source: "project",
6555
+ projectBinding: cwd,
6556
+ relativePath: skill.relativePath
6557
+ })} `;
6558
+ candidates.push({
6559
+ label: `/${skill.name} (project)`,
6560
+ insertText,
6561
+ source: "project",
6562
+ description: skill.description || "Project skill"
6563
+ });
6564
+ }
6565
+ }
6566
+ } catch {
6567
+ }
6568
+ }
6569
+ return candidates;
6468
6570
  }
6469
6571
  function completeCdPathCandidates(prefix, cwd) {
6470
6572
  const lastSlash = prefix.lastIndexOf("/");
@@ -8022,8 +8124,6 @@ function renderRecentDiagnostics(env, events = getProcessRingBuffer()?.drain() ?
8022
8124
  }
8023
8125
 
8024
8126
  // packages/cli/client/estimateCliContext.ts
8025
- import { existsSync as existsSync3, readFileSync as readFileSync2 } from "node:fs";
8026
- import { join as join2 } from "node:path";
8027
8127
  var DEFAULT_CLI_PACKS = ["code", "agent-orchestration", "skills"];
8028
8128
  var DEFAULT_CLI_PLATFORM_TOOLS = [
8029
8129
  "exa_search",
@@ -8031,16 +8131,7 @@ var DEFAULT_CLI_PLATFORM_TOOLS = [
8031
8131
  ];
8032
8132
  var DEFAULT_PROMPT_ESTIMATE_BASELINE = "\u4F60\u662F\u5171\u4EAB\u7A7A\u95F4\u91CC\u7684\u9AD8\u6027\u4EF7\u6BD4\u901A\u7528 AI \u52A9\u624B\u3002\u4F18\u5148\u5FEB\u901F\u3001\u76F4\u63A5\u3001\u7A33\u5B9A\u5730\u5B8C\u6210\u4EFB\u52A1\uFF1B\u9700\u8981\u63A8\u7406\u65F6\u4FDD\u6301\u6B65\u9AA4\u6E05\u6670\u3002";
8033
8133
  function readAgentsMd(cwd) {
8034
- for (const name of ["AGENTS.md", "agents.md"]) {
8035
- const path3 = join2(cwd, name);
8036
- if (!existsSync3(path3)) continue;
8037
- try {
8038
- return readFileSync2(path3, "utf8");
8039
- } catch {
8040
- return "";
8041
- }
8042
- }
8043
- return "";
8134
+ return readAgentsMdLayerFromDisk(cwd)?.content ?? "";
8044
8135
  }
8045
8136
  function estimateToolSchemas(toolNames) {
8046
8137
  const toolset = buildLocalWorkspaceToolset({
@@ -9903,7 +9994,7 @@ function createProcessTerminalAutoResumer(deps) {
9903
9994
  // packages/cli/client/turnBillingAudit.ts
9904
9995
  import { appendFileSync, mkdirSync as mkdirSync3 } from "node:fs";
9905
9996
  import { homedir as homedir5 } from "node:os";
9906
- import { join as join3 } from "node:path";
9997
+ import { join as join2 } from "node:path";
9907
9998
  function projectUsageForAudit(usage) {
9908
9999
  if (!usage || typeof usage !== "object") return null;
9909
10000
  const normalized = normalizeUsage(usage);
@@ -9966,8 +10057,8 @@ function projectTelemetryForAudit(record) {
9966
10057
  return out;
9967
10058
  }
9968
10059
  function resolveTurnBillingAuditLogPath(env = process.env) {
9969
- const noloHome = env.NOLO_HOME?.trim() || join3(homedir5(), ".nolo");
9970
- return join3(noloHome, "logs", "turn-billing.jsonl");
10060
+ const noloHome = env.NOLO_HOME?.trim() || join2(homedir5(), ".nolo");
10061
+ return join2(noloHome, "logs", "turn-billing.jsonl");
9971
10062
  }
9972
10063
  function appendTurnBillingAudit(input) {
9973
10064
  try {
@@ -9995,7 +10086,7 @@ function appendTurnBillingAudit(input) {
9995
10086
  calls
9996
10087
  };
9997
10088
  const logPath = resolveTurnBillingAuditLogPath();
9998
- mkdirSync3(join3(logPath, ".."), { recursive: true });
10089
+ mkdirSync3(join2(logPath, ".."), { recursive: true });
9999
10090
  appendFileSync(logPath, `${JSON.stringify(row)}
10000
10091
  `);
10001
10092
  } catch {
@@ -11526,10 +11617,33 @@ function createFixedInput(output, config) {
11526
11617
  const renderInputArea = (buffer, cursorPos) => {
11527
11618
  const colorEnabled = resolveCliColorEnabled();
11528
11619
  const cols = Math.max(1, getColumns());
11529
- const completions = completeSlashCommand(buffer, config.getCwd?.());
11620
+ let completions = completeSlashCandidates(buffer, config.getCwd?.());
11621
+ const cwd = config.getCwd?.();
11622
+ if (cwd && buffer.startsWith("/cd ") && buffer.endsWith("/")) {
11623
+ const prefix = buffer.slice("/cd ".length);
11624
+ const trimmedSlash = prefix.slice(0, -1);
11625
+ const lastSlash = trimmedSlash.lastIndexOf("/");
11626
+ const parentPrefix = lastSlash >= 0 ? trimmedSlash.slice(0, lastSlash + 1) : "";
11627
+ const parentCompletions = completeSlashCandidates(`/cd ${parentPrefix}`, cwd);
11628
+ const parentIdx = parentCompletions.findIndex(
11629
+ (c) => buffer === c.insertText || buffer === c.insertText.trimEnd()
11630
+ );
11631
+ if (parentIdx >= 0 && parentCompletions.length > 1) {
11632
+ completions = parentCompletions;
11633
+ }
11634
+ }
11530
11635
  const sections = [];
11531
11636
  if (completions.length > 0) {
11532
- sections.push(fitAnsiLine(dimCliText(completions.join(" "), colorEnabled), cols));
11637
+ const selectedIndex = completions.findIndex(
11638
+ (c) => buffer === c.insertText || buffer === c.insertText.trimEnd()
11639
+ );
11640
+ const labels = completions.map((c, idx) => {
11641
+ if (idx === selectedIndex && colorEnabled) {
11642
+ return `\x1B[1;7m${c.label}\x1B[0m`;
11643
+ }
11644
+ return c.label;
11645
+ });
11646
+ sections.push(fitAnsiLine(dimCliText(labels.join(" "), colorEnabled), cols));
11533
11647
  }
11534
11648
  const rawActivity = config.getActivityLines ? config.getActivityLines({ columns: cols, rows: getRows() }) : config.getActivityLine ? config.getActivityLine() : null;
11535
11649
  const activityLines = Array.isArray(rawActivity) ? rawActivity.filter((line) => line !== null && line !== void 0) : typeof rawActivity === "string" && rawActivity.length > 0 ? [rawActivity] : [];
@@ -12018,6 +12132,63 @@ async function runAgentChat(scriptDir, state, message, env, output, agentRunner
12018
12132
  let effectiveMessage = message;
12019
12133
  let skillAllowedTools;
12020
12134
  let skillContextBlocks;
12135
+ const parsedSlashSkill = parseSkillSlashReference(message);
12136
+ let slashSkillPreloadResult;
12137
+ if (parsedSlashSkill) {
12138
+ const executor = buildLoadSkillExecutor({ cwd: state.cwd });
12139
+ let loadArgs;
12140
+ if (parsedSlashSkill.reference.source === "builtin") {
12141
+ loadArgs = { source: "builtin", slug: parsedSlashSkill.reference.id };
12142
+ } else if (parsedSlashSkill.reference.source === "project") {
12143
+ loadArgs = {
12144
+ source: "project",
12145
+ projectBinding: parsedSlashSkill.reference.projectBinding,
12146
+ relativePath: parsedSlashSkill.reference.relativePath
12147
+ };
12148
+ } else {
12149
+ loadArgs = {
12150
+ source: "space",
12151
+ dbKey: parsedSlashSkill.reference.dbKey
12152
+ };
12153
+ }
12154
+ const loadResult = await executor({
12155
+ name: "loadSkill",
12156
+ arguments: JSON.stringify(loadArgs)
12157
+ });
12158
+ if (!loadResult.metadata?.resolved) {
12159
+ output.write(`[nolo] skill preload failed: ${loadResult.content}
12160
+ `);
12161
+ throw new Error(`Skill preload failed: ${loadResult.content}`);
12162
+ }
12163
+ effectiveMessage = resolveSkillSlashUserPrompt(parsedSlashSkill.args);
12164
+ let preloadTools;
12165
+ if (Array.isArray(loadResult.metadata?.toolNames) && loadResult.metadata.toolNames.length > 0) {
12166
+ preloadTools = loadResult.metadata.toolNames.filter(
12167
+ (t2) => typeof t2 === "string" && t2.length > 0
12168
+ );
12169
+ }
12170
+ let skillMarkdown = loadResult.content;
12171
+ const inlinePrefix = /^Skill\s+"[^"]*"\s+loaded inline\.\s+Follow its instructions\.\s*\n+/i;
12172
+ if (inlinePrefix.test(skillMarkdown)) {
12173
+ skillMarkdown = skillMarkdown.replace(inlinePrefix, "");
12174
+ } else {
12175
+ const frontmatterIndex = skillMarkdown.search(/(?:^|\n)---\s*\n/);
12176
+ if (frontmatterIndex !== -1) {
12177
+ const dashIndex = skillMarkdown.indexOf("---", frontmatterIndex);
12178
+ if (dashIndex !== -1) {
12179
+ skillMarkdown = skillMarkdown.slice(dashIndex);
12180
+ }
12181
+ }
12182
+ }
12183
+ const external = parseExternalSkillMarkdown(skillMarkdown);
12184
+ if (external.allowedTools && external.allowedTools.length > 0) {
12185
+ preloadTools = preloadTools ? preloadTools.filter((t2) => external.allowedTools.includes(t2)) : external.allowedTools;
12186
+ }
12187
+ slashSkillPreloadResult = {
12188
+ content: loadResult.content,
12189
+ allowedTools: preloadTools
12190
+ };
12191
+ }
12021
12192
  const memoryPromptOutcomePromise = state.cachedMemoryOverlay === void 0 ? resolveCliMemory({
12022
12193
  serverUrl: state.serverUrl,
12023
12194
  authToken: resolvePlatformAuthToken(env),
@@ -12065,6 +12236,27 @@ async function runAgentChat(scriptDir, state, message, env, output, agentRunner
12065
12236
  }
12066
12237
  }
12067
12238
  }
12239
+ if (slashSkillPreloadResult) {
12240
+ skillContextBlocks = [
12241
+ ...skillContextBlocks ?? [],
12242
+ slashSkillPreloadResult.content
12243
+ ];
12244
+ if (slashSkillPreloadResult.allowedTools && slashSkillPreloadResult.allowedTools.length > 0) {
12245
+ if (skillAllowedTools !== void 0) {
12246
+ const intersected = skillAllowedTools.filter(
12247
+ (t2) => slashSkillPreloadResult.allowedTools.includes(t2)
12248
+ );
12249
+ if (intersected.length === 0) {
12250
+ throw new Error(
12251
+ "Cannot preserve skill tool authorization: incompatible tool restrictions"
12252
+ );
12253
+ }
12254
+ skillAllowedTools = intersected;
12255
+ } else {
12256
+ skillAllowedTools = slashSkillPreloadResult.allowedTools;
12257
+ }
12258
+ }
12259
+ }
12068
12260
  const layers = [
12069
12261
  readAgentsMdLayerFromDisk(state.cwd),
12070
12262
  // Skill discovery: scan conventional skill dirs for SKILL.md and inject an