@mars_ai/marscli 2.0.12 → 2.0.14

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 (1187) hide show
  1. package/CHANGELOG.md +6515 -0
  2. package/README.md +71 -22
  3. package/dist/bun/cli.d.ts +5 -0
  4. package/dist/bun/cli.d.ts.map +1 -0
  5. package/dist/bun/cli.js +5 -0
  6. package/dist/bun/cli.js.map +1 -0
  7. package/dist/bun/restore-sandbox-env.d.ts +17 -0
  8. package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
  9. package/dist/bun/restore-sandbox-env.js +36 -0
  10. package/dist/bun/restore-sandbox-env.js.map +1 -0
  11. package/dist/bun/runtime-setup.d.ts +2 -0
  12. package/dist/bun/runtime-setup.d.ts.map +1 -0
  13. package/dist/bun/runtime-setup.js +12 -0
  14. package/dist/bun/runtime-setup.js.map +1 -0
  15. package/dist/bun/sandbox-env-setup.d.ts +2 -0
  16. package/dist/bun/sandbox-env-setup.d.ts.map +1 -0
  17. package/dist/bun/sandbox-env-setup.js +4 -0
  18. package/dist/bun/sandbox-env-setup.js.map +1 -0
  19. package/dist/bundle/chunks/anthropic-messages-QCK7M7VG.js +6 -0
  20. package/dist/bundle/chunks/anthropic.js +75 -0
  21. package/dist/bundle/chunks/azure-openai-responses-LMBPTTDE.js +2 -0
  22. package/dist/bundle/chunks/bedrock-converse-stream.js +89 -0
  23. package/dist/bundle/chunks/chunk-45GGYWI5.js +2 -0
  24. package/dist/bundle/chunks/chunk-5AGIVGSV.js +6 -0
  25. package/dist/bundle/chunks/chunk-5ZIVIB55.js +8 -0
  26. package/dist/bundle/chunks/chunk-6QGV3IWD.js +6 -0
  27. package/dist/bundle/chunks/chunk-7CBJINYJ.js +20 -0
  28. package/dist/bundle/chunks/chunk-7DDKXS2Q.js +2 -0
  29. package/dist/bundle/chunks/chunk-7ZC4UXSL.js +2 -0
  30. package/dist/bundle/chunks/chunk-AZEKCFSR.js +82 -0
  31. package/dist/bundle/chunks/chunk-BUEFMMN7.js +1261 -0
  32. package/dist/bundle/chunks/chunk-CF5GWZHW.js +31 -0
  33. package/dist/bundle/chunks/chunk-FFMDRXC4.js +10 -0
  34. package/dist/bundle/chunks/chunk-FR2OJIAF.js +2 -0
  35. package/dist/bundle/chunks/chunk-G4QXDUQL.js +30 -0
  36. package/dist/bundle/chunks/chunk-GFUN2N5K.js +2 -0
  37. package/dist/bundle/chunks/chunk-GXW3X65X.js +4 -0
  38. package/dist/bundle/chunks/chunk-ICLDQMTM.js +129 -0
  39. package/dist/bundle/chunks/chunk-IEBK4HQA.js +2 -0
  40. package/dist/bundle/chunks/chunk-JEIXS66U.js +2 -0
  41. package/dist/bundle/chunks/chunk-JK44MIUX.js +44 -0
  42. package/dist/bundle/chunks/chunk-JXUDILQJ.js +16 -0
  43. package/dist/bundle/chunks/chunk-JXWJOIH4.js +2 -0
  44. package/dist/bundle/chunks/chunk-K5TQM7UY.js +2 -0
  45. package/dist/bundle/chunks/chunk-L2ZPNLYD.js +2 -0
  46. package/dist/bundle/chunks/chunk-LPXNMA2W.js +2 -0
  47. package/dist/bundle/chunks/chunk-LVVZS2NO.js +12 -0
  48. package/dist/bundle/chunks/chunk-MTY47RPT.js +19 -0
  49. package/dist/bundle/chunks/chunk-OLNSR6Z3.js +13 -0
  50. package/dist/bundle/chunks/chunk-P7FPUEYA.js +2 -0
  51. package/dist/bundle/chunks/chunk-PGXDEOVV.js +2 -0
  52. package/dist/bundle/chunks/chunk-PJACZCIR.js +2 -0
  53. package/dist/bundle/chunks/chunk-PMRZO46Y.js +2 -0
  54. package/dist/bundle/chunks/chunk-PRRNXB7S.js +2 -0
  55. package/dist/bundle/chunks/chunk-RDZVAGPR.js +2 -0
  56. package/dist/bundle/chunks/chunk-TVDA4NZP.js +55 -0
  57. package/dist/bundle/chunks/chunk-UNAPBUIX.js +2 -0
  58. package/dist/bundle/chunks/chunk-UTB4DTYQ.js +2 -0
  59. package/dist/bundle/chunks/chunk-V6KH5QG4.js +9 -0
  60. package/dist/bundle/chunks/chunk-ZG74NES2.js +2 -0
  61. package/dist/bundle/chunks/cli-CI7EFTTK.js +53 -0
  62. package/dist/bundle/chunks/codemode-worker.js +478 -0
  63. package/dist/bundle/chunks/easter-egg-3d-P2D4BQR7.js +2 -0
  64. package/dist/bundle/chunks/execute-PRYDOFWM.js +505 -0
  65. package/dist/bundle/chunks/github-copilot.js +2 -0
  66. package/dist/bundle/chunks/google-generative-ai-WFLFMJYT.js +2 -0
  67. package/dist/bundle/chunks/google-vertex-3VJ5WJYY.js +2 -0
  68. package/dist/bundle/chunks/https-proxy-agent-LVOO5TPL.js +13 -0
  69. package/dist/bundle/chunks/image-resize-worker.js +2 -0
  70. package/dist/bundle/chunks/jiti-loader-GL4HJFAD.js +21 -0
  71. package/dist/bundle/chunks/jiti-static-loader-2RCDI6B4.js +2 -0
  72. package/dist/bundle/chunks/kimi-coding.js +2 -0
  73. package/dist/bundle/chunks/lib-4AVRLBHM.js +9 -0
  74. package/dist/bundle/chunks/meta.js +2 -0
  75. package/dist/bundle/chunks/mistral-conversations-G22LGLWM.js +5 -0
  76. package/dist/bundle/chunks/multipart-parser-FMGQ7342.js +3 -0
  77. package/dist/bundle/chunks/node-AUOGOBCN.js +2 -0
  78. package/dist/bundle/chunks/node-KCMANYC2.js +16 -0
  79. package/dist/bundle/chunks/openai-chatgpt.js +75 -0
  80. package/dist/bundle/chunks/openai-codex-responses-CDQVKDUO.js +10 -0
  81. package/dist/bundle/chunks/openai-codex.js +75 -0
  82. package/dist/bundle/chunks/openai-completions-RAU4DJDG.js +7 -0
  83. package/dist/bundle/chunks/openai-responses-4IZEGS2C.js +4 -0
  84. package/dist/bundle/chunks/openrouter-images-EXXX2XDD.js +2 -0
  85. package/dist/bundle/chunks/openrouter.js +75 -0
  86. package/dist/bundle/chunks/pi-messages-YPAWD2FK.js +8 -0
  87. package/dist/bundle/chunks/radius.js +75 -0
  88. package/dist/bundle/chunks/runtime-4K2RC6HQ.js +2 -0
  89. package/dist/bundle/chunks/src-QKGKDFSU.js +4 -0
  90. package/dist/bundle/chunks/typesafe-system-one-2F7KHMWD.js +2 -0
  91. package/dist/bundle/chunks/virtual-modules-XDTMJGCH.js +2 -0
  92. package/dist/bundle/chunks/xai.js +2 -0
  93. package/dist/bundle/cli-runtime.js +3 -0
  94. package/dist/bundle/cli.js +5 -0
  95. package/dist/bundle/index.js +2 -0
  96. package/dist/bundle/rpc-entry.js +3 -0
  97. package/dist/cli/args.d.ts +62 -0
  98. package/dist/cli/args.d.ts.map +1 -0
  99. package/dist/cli/args.js +474 -0
  100. package/dist/cli/args.js.map +1 -0
  101. package/dist/cli/auth-check.d.ts +19 -0
  102. package/dist/cli/auth-check.d.ts.map +1 -0
  103. package/dist/cli/auth-check.js +50 -0
  104. package/dist/cli/auth-check.js.map +1 -0
  105. package/dist/cli/auth-command.d.ts +24 -0
  106. package/dist/cli/auth-command.d.ts.map +1 -0
  107. package/dist/cli/auth-command.js +103 -0
  108. package/dist/cli/auth-command.js.map +1 -0
  109. package/dist/cli/config-selector.d.ts +16 -0
  110. package/dist/cli/config-selector.d.ts.map +1 -0
  111. package/dist/cli/config-selector.js +34 -0
  112. package/dist/cli/config-selector.js.map +1 -0
  113. package/dist/cli/credential-print.d.ts +13 -0
  114. package/dist/cli/credential-print.d.ts.map +1 -0
  115. package/dist/cli/credential-print.js +76 -0
  116. package/dist/cli/credential-print.js.map +1 -0
  117. package/dist/cli/file-processor.d.ts +15 -0
  118. package/dist/cli/file-processor.d.ts.map +1 -0
  119. package/dist/cli/file-processor.js +71 -0
  120. package/dist/cli/file-processor.js.map +1 -0
  121. package/dist/cli/initial-message.d.ts +18 -0
  122. package/dist/cli/initial-message.d.ts.map +1 -0
  123. package/dist/cli/initial-message.js +22 -0
  124. package/dist/cli/initial-message.js.map +1 -0
  125. package/dist/cli/list-models.d.ts +9 -0
  126. package/dist/cli/list-models.d.ts.map +1 -0
  127. package/dist/cli/list-models.js +98 -0
  128. package/dist/cli/list-models.js.map +1 -0
  129. package/dist/cli/project-trust.d.ts +10 -0
  130. package/dist/cli/project-trust.d.ts.map +1 -0
  131. package/dist/cli/project-trust.js +48 -0
  132. package/dist/cli/project-trust.js.map +1 -0
  133. package/dist/cli/session-picker.d.ts +10 -0
  134. package/dist/cli/session-picker.d.ts.map +1 -0
  135. package/dist/cli/session-picker.js +36 -0
  136. package/dist/cli/session-picker.js.map +1 -0
  137. package/dist/cli/setup.d.ts +2 -0
  138. package/dist/cli/setup.d.ts.map +1 -0
  139. package/dist/cli/setup.js +12 -0
  140. package/dist/cli/setup.js.map +1 -0
  141. package/dist/cli/startup-ui.d.ts +20 -0
  142. package/dist/cli/startup-ui.d.ts.map +1 -0
  143. package/dist/cli/startup-ui.js +175 -0
  144. package/dist/cli/startup-ui.js.map +1 -0
  145. package/dist/cli.d.ts +3 -0
  146. package/dist/cli.d.ts.map +1 -0
  147. package/dist/cli.js +6 -0
  148. package/dist/cli.js.map +1 -0
  149. package/dist/config.d.ts +136 -0
  150. package/dist/config.d.ts.map +1 -0
  151. package/dist/config.js +554 -0
  152. package/dist/config.js.map +1 -0
  153. package/dist/core/agent-session-runtime.d.ts +124 -0
  154. package/dist/core/agent-session-runtime.d.ts.map +1 -0
  155. package/dist/core/agent-session-runtime.js +324 -0
  156. package/dist/core/agent-session-runtime.js.map +1 -0
  157. package/dist/core/agent-session-services.d.ts +86 -0
  158. package/dist/core/agent-session-services.d.ts.map +1 -0
  159. package/dist/core/agent-session-services.js +147 -0
  160. package/dist/core/agent-session-services.js.map +1 -0
  161. package/dist/core/agent-session.d.ts +950 -0
  162. package/dist/core/agent-session.d.ts.map +1 -0
  163. package/dist/core/agent-session.js +3710 -0
  164. package/dist/core/agent-session.js.map +1 -0
  165. package/dist/core/auth-guidance.d.ts +5 -0
  166. package/dist/core/auth-guidance.d.ts.map +1 -0
  167. package/dist/core/auth-guidance.js +21 -0
  168. package/dist/core/auth-guidance.js.map +1 -0
  169. package/dist/core/auth-storage.d.ts +72 -0
  170. package/dist/core/auth-storage.d.ts.map +1 -0
  171. package/dist/core/auth-storage.js +434 -0
  172. package/dist/core/auth-storage.js.map +1 -0
  173. package/dist/core/bash-executor.d.ts +32 -0
  174. package/dist/core/bash-executor.d.ts.map +1 -0
  175. package/dist/core/bash-executor.js +103 -0
  176. package/dist/core/bash-executor.js.map +1 -0
  177. package/dist/core/bug-report-upload.d.ts +12 -0
  178. package/dist/core/bug-report-upload.d.ts.map +1 -0
  179. package/dist/core/bug-report-upload.js +22 -0
  180. package/dist/core/bug-report-upload.js.map +1 -0
  181. package/dist/core/bug-report.d.ts +184 -0
  182. package/dist/core/bug-report.d.ts.map +1 -0
  183. package/dist/core/bug-report.js +292 -0
  184. package/dist/core/bug-report.js.map +1 -0
  185. package/dist/core/cache-stats.d.ts +49 -0
  186. package/dist/core/cache-stats.d.ts.map +1 -0
  187. package/dist/core/cache-stats.js +112 -0
  188. package/dist/core/cache-stats.js.map +1 -0
  189. package/dist/core/cache-warmer.d.ts +103 -0
  190. package/dist/core/cache-warmer.d.ts.map +1 -0
  191. package/dist/core/cache-warmer.js +358 -0
  192. package/dist/core/cache-warmer.js.map +1 -0
  193. package/dist/core/client-identity.d.ts +8 -0
  194. package/dist/core/client-identity.d.ts.map +1 -0
  195. package/dist/core/client-identity.js +15 -0
  196. package/dist/core/client-identity.js.map +1 -0
  197. package/dist/core/compaction/branch-summarization.d.ts +100 -0
  198. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  199. package/dist/core/compaction/branch-summarization.js +262 -0
  200. package/dist/core/compaction/branch-summarization.js.map +1 -0
  201. package/dist/core/compaction/compaction.d.ts +145 -0
  202. package/dist/core/compaction/compaction.d.ts.map +1 -0
  203. package/dist/core/compaction/compaction.js +749 -0
  204. package/dist/core/compaction/compaction.js.map +1 -0
  205. package/dist/core/compaction/index.d.ts +7 -0
  206. package/dist/core/compaction/index.d.ts.map +1 -0
  207. package/dist/core/compaction/index.js +7 -0
  208. package/dist/core/compaction/index.js.map +1 -0
  209. package/dist/core/compaction/utils.d.ts +45 -0
  210. package/dist/core/compaction/utils.d.ts.map +1 -0
  211. package/dist/core/compaction/utils.js +149 -0
  212. package/dist/core/compaction/utils.js.map +1 -0
  213. package/dist/core/crash-log.d.ts +27 -0
  214. package/dist/core/crash-log.d.ts.map +1 -0
  215. package/dist/core/crash-log.js +140 -0
  216. package/dist/core/crash-log.js.map +1 -0
  217. package/dist/core/defaults.d.ts +4 -0
  218. package/dist/core/defaults.d.ts.map +1 -0
  219. package/dist/core/defaults.js +11 -0
  220. package/dist/core/defaults.js.map +1 -0
  221. package/dist/core/diagnostics.d.ts +15 -0
  222. package/dist/core/diagnostics.d.ts.map +1 -0
  223. package/dist/core/diagnostics.js +2 -0
  224. package/dist/core/diagnostics.js.map +1 -0
  225. package/dist/core/event-bus.d.ts +9 -0
  226. package/dist/core/event-bus.d.ts.map +1 -0
  227. package/dist/core/event-bus.js +25 -0
  228. package/dist/core/event-bus.js.map +1 -0
  229. package/dist/core/exec.d.ts +37 -0
  230. package/dist/core/exec.d.ts.map +1 -0
  231. package/dist/core/exec.js +119 -0
  232. package/dist/core/exec.js.map +1 -0
  233. package/dist/core/experimental.d.ts +2 -0
  234. package/dist/core/experimental.d.ts.map +1 -0
  235. package/dist/core/experimental.js +4 -0
  236. package/dist/core/experimental.js.map +1 -0
  237. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  238. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  239. package/dist/core/export-html/ansi-to-html.js +249 -0
  240. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  241. package/dist/core/export-html/index.d.ts +37 -0
  242. package/dist/core/export-html/index.d.ts.map +1 -0
  243. package/dist/core/export-html/index.js +228 -0
  244. package/dist/core/export-html/index.js.map +1 -0
  245. package/dist/core/export-html/template.css +1085 -0
  246. package/dist/core/export-html/template.html +56 -0
  247. package/dist/core/export-html/template.js +2044 -0
  248. package/dist/core/export-html/tool-renderer.d.ts +34 -0
  249. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  250. package/dist/core/export-html/tool-renderer.js +113 -0
  251. package/dist/core/export-html/tool-renderer.js.map +1 -0
  252. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  253. package/dist/core/export-html/vendor/marked-cjk-friendly.min.js +6 -0
  254. package/dist/core/export-html/vendor/marked.min.js +79 -0
  255. package/dist/core/extensions/index.d.ts +12 -0
  256. package/dist/core/extensions/index.d.ts.map +1 -0
  257. package/dist/core/extensions/index.js +9 -0
  258. package/dist/core/extensions/index.js.map +1 -0
  259. package/dist/core/extensions/jiti-loader.d.ts +2 -0
  260. package/dist/core/extensions/jiti-loader.d.ts.map +1 -0
  261. package/dist/core/extensions/jiti-loader.js +4 -0
  262. package/dist/core/extensions/jiti-loader.js.map +1 -0
  263. package/dist/core/extensions/jiti-static-loader.d.ts +2 -0
  264. package/dist/core/extensions/jiti-static-loader.d.ts.map +1 -0
  265. package/dist/core/extensions/jiti-static-loader.js +4 -0
  266. package/dist/core/extensions/jiti-static-loader.js.map +1 -0
  267. package/dist/core/extensions/loader.d.ts +23 -0
  268. package/dist/core/extensions/loader.d.ts.map +1 -0
  269. package/dist/core/extensions/loader.js +710 -0
  270. package/dist/core/extensions/loader.js.map +1 -0
  271. package/dist/core/extensions/pi-ai-extension-view.d.ts +19 -0
  272. package/dist/core/extensions/pi-ai-extension-view.d.ts.map +1 -0
  273. package/dist/core/extensions/pi-ai-extension-view.js +22 -0
  274. package/dist/core/extensions/pi-ai-extension-view.js.map +1 -0
  275. package/dist/core/extensions/runner.d.ts +216 -0
  276. package/dist/core/extensions/runner.d.ts.map +1 -0
  277. package/dist/core/extensions/runner.js +1246 -0
  278. package/dist/core/extensions/runner.js.map +1 -0
  279. package/dist/core/extensions/types.d.ts +1801 -0
  280. package/dist/core/extensions/types.d.ts.map +1 -0
  281. package/dist/core/extensions/types.js +48 -0
  282. package/dist/core/extensions/types.js.map +1 -0
  283. package/dist/core/extensions/virtual-modules.d.ts +3 -0
  284. package/dist/core/extensions/virtual-modules.d.ts.map +1 -0
  285. package/dist/core/extensions/virtual-modules.js +42 -0
  286. package/dist/core/extensions/virtual-modules.js.map +1 -0
  287. package/dist/core/extensions/wrapper.d.ts +20 -0
  288. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  289. package/dist/core/extensions/wrapper.js +22 -0
  290. package/dist/core/extensions/wrapper.js.map +1 -0
  291. package/dist/core/footer-data-provider.d.ts +64 -0
  292. package/dist/core/footer-data-provider.d.ts.map +1 -0
  293. package/dist/core/footer-data-provider.js +338 -0
  294. package/dist/core/footer-data-provider.js.map +1 -0
  295. package/dist/core/http-dispatcher.d.ts +22 -0
  296. package/dist/core/http-dispatcher.d.ts.map +1 -0
  297. package/dist/core/http-dispatcher.js +98 -0
  298. package/dist/core/http-dispatcher.js.map +1 -0
  299. package/dist/core/index.d.ts +14 -0
  300. package/dist/core/index.d.ts.map +1 -0
  301. package/dist/core/index.js +13 -0
  302. package/dist/core/index.js.map +1 -0
  303. package/dist/core/key-id-schema.d.ts +6 -0
  304. package/dist/core/key-id-schema.d.ts.map +1 -0
  305. package/dist/core/key-id-schema.js +16 -0
  306. package/dist/core/key-id-schema.js.map +1 -0
  307. package/dist/core/keybindings-schema.d.ts +4 -0
  308. package/dist/core/keybindings-schema.d.ts.map +1 -0
  309. package/dist/core/keybindings-schema.js +16 -0
  310. package/dist/core/keybindings-schema.js.map +1 -0
  311. package/dist/core/keybindings.d.ts +560 -0
  312. package/dist/core/keybindings.d.ts.map +1 -0
  313. package/dist/core/keybindings.js +324 -0
  314. package/dist/core/keybindings.js.map +1 -0
  315. package/dist/core/mcp-servers.d.ts +121 -0
  316. package/dist/core/mcp-servers.d.ts.map +1 -0
  317. package/dist/core/mcp-servers.js +163 -0
  318. package/dist/core/mcp-servers.js.map +1 -0
  319. package/dist/core/messages.d.ts +77 -0
  320. package/dist/core/messages.d.ts.map +1 -0
  321. package/dist/core/messages.js +124 -0
  322. package/dist/core/messages.js.map +1 -0
  323. package/dist/core/model-config.d.ts +2000 -0
  324. package/dist/core/model-config.d.ts.map +1 -0
  325. package/dist/core/model-config.js +167 -0
  326. package/dist/core/model-config.js.map +1 -0
  327. package/dist/core/model-registry.d.ts +63 -0
  328. package/dist/core/model-registry.d.ts.map +1 -0
  329. package/dist/core/model-registry.js +144 -0
  330. package/dist/core/model-registry.js.map +1 -0
  331. package/dist/core/model-resolver.d.ts +139 -0
  332. package/dist/core/model-resolver.d.ts.map +1 -0
  333. package/dist/core/model-resolver.js +495 -0
  334. package/dist/core/model-resolver.js.map +1 -0
  335. package/dist/core/model-runtime.d.ts +150 -0
  336. package/dist/core/model-runtime.d.ts.map +1 -0
  337. package/dist/core/model-runtime.js +774 -0
  338. package/dist/core/model-runtime.js.map +1 -0
  339. package/dist/core/models-store.d.ts +22 -0
  340. package/dist/core/models-store.d.ts.map +1 -0
  341. package/dist/core/models-store.js +115 -0
  342. package/dist/core/models-store.js.map +1 -0
  343. package/dist/core/nested-tool-calls.d.ts +103 -0
  344. package/dist/core/nested-tool-calls.d.ts.map +1 -0
  345. package/dist/core/nested-tool-calls.js +179 -0
  346. package/dist/core/nested-tool-calls.js.map +1 -0
  347. package/dist/core/output-guard.d.ts +7 -0
  348. package/dist/core/output-guard.d.ts.map +1 -0
  349. package/dist/core/output-guard.js +89 -0
  350. package/dist/core/output-guard.js.map +1 -0
  351. package/dist/core/package-manager.d.ts +240 -0
  352. package/dist/core/package-manager.d.ts.map +1 -0
  353. package/dist/core/package-manager.js +2383 -0
  354. package/dist/core/package-manager.js.map +1 -0
  355. package/dist/core/pi-ai-schemas.d.ts +166 -0
  356. package/dist/core/pi-ai-schemas.d.ts.map +1 -0
  357. package/dist/core/pi-ai-schemas.js +21 -0
  358. package/dist/core/pi-ai-schemas.js.map +1 -0
  359. package/dist/core/pi-manifest.d.ts +9 -0
  360. package/dist/core/pi-manifest.d.ts.map +1 -0
  361. package/dist/core/pi-manifest.js +30 -0
  362. package/dist/core/pi-manifest.js.map +1 -0
  363. package/dist/core/project-trust.d.ts +15 -0
  364. package/dist/core/project-trust.d.ts.map +1 -0
  365. package/dist/core/project-trust.js +60 -0
  366. package/dist/core/project-trust.js.map +1 -0
  367. package/dist/core/prompt-templates.d.ts +59 -0
  368. package/dist/core/prompt-templates.d.ts.map +1 -0
  369. package/dist/core/prompt-templates.js +267 -0
  370. package/dist/core/prompt-templates.js.map +1 -0
  371. package/dist/core/provider-composer.d.ts +81 -0
  372. package/dist/core/provider-composer.d.ts.map +1 -0
  373. package/dist/core/provider-composer.js +492 -0
  374. package/dist/core/provider-composer.js.map +1 -0
  375. package/dist/core/radius.d.ts +7 -0
  376. package/dist/core/radius.d.ts.map +1 -0
  377. package/dist/core/radius.js +10 -0
  378. package/dist/core/radius.js.map +1 -0
  379. package/dist/core/remote-catalog-provider.d.ts +23 -0
  380. package/dist/core/remote-catalog-provider.d.ts.map +1 -0
  381. package/dist/core/remote-catalog-provider.js +190 -0
  382. package/dist/core/remote-catalog-provider.js.map +1 -0
  383. package/dist/core/resolve-config-value.d.ts +30 -0
  384. package/dist/core/resolve-config-value.d.ts.map +1 -0
  385. package/dist/core/resolve-config-value.js +247 -0
  386. package/dist/core/resolve-config-value.js.map +1 -0
  387. package/dist/core/resource-loader.d.ts +233 -0
  388. package/dist/core/resource-loader.d.ts.map +1 -0
  389. package/dist/core/resource-loader.js +1025 -0
  390. package/dist/core/resource-loader.js.map +1 -0
  391. package/dist/core/runtime-credentials.d.ts +23 -0
  392. package/dist/core/runtime-credentials.d.ts.map +1 -0
  393. package/dist/core/runtime-credentials.js +53 -0
  394. package/dist/core/runtime-credentials.js.map +1 -0
  395. package/dist/core/sdk.d.ts +117 -0
  396. package/dist/core/sdk.d.ts.map +1 -0
  397. package/dist/core/sdk.js +329 -0
  398. package/dist/core/sdk.js.map +1 -0
  399. package/dist/core/session-cwd.d.ts +19 -0
  400. package/dist/core/session-cwd.d.ts.map +1 -0
  401. package/dist/core/session-cwd.js +38 -0
  402. package/dist/core/session-cwd.js.map +1 -0
  403. package/dist/core/session-export.d.ts +8 -0
  404. package/dist/core/session-export.d.ts.map +1 -0
  405. package/dist/core/session-export.js +33 -0
  406. package/dist/core/session-export.js.map +1 -0
  407. package/dist/core/session-manager.d.ts +423 -0
  408. package/dist/core/session-manager.d.ts.map +1 -0
  409. package/dist/core/session-manager.js +1542 -0
  410. package/dist/core/session-manager.js.map +1 -0
  411. package/dist/core/settings-defaults.d.ts +66 -0
  412. package/dist/core/settings-defaults.d.ts.map +1 -0
  413. package/dist/core/settings-defaults.js +69 -0
  414. package/dist/core/settings-defaults.js.map +1 -0
  415. package/dist/core/settings-diagnostics.d.ts +9 -0
  416. package/dist/core/settings-diagnostics.d.ts.map +1 -0
  417. package/dist/core/settings-diagnostics.js +21 -0
  418. package/dist/core/settings-diagnostics.js.map +1 -0
  419. package/dist/core/settings-manager.d.ts +253 -0
  420. package/dist/core/settings-manager.d.ts.map +1 -0
  421. package/dist/core/settings-manager.js +1154 -0
  422. package/dist/core/settings-manager.js.map +1 -0
  423. package/dist/core/settings-schema.d.ts +232 -0
  424. package/dist/core/settings-schema.d.ts.map +1 -0
  425. package/dist/core/settings-schema.js +301 -0
  426. package/dist/core/settings-schema.js.map +1 -0
  427. package/dist/core/skills.d.ts +63 -0
  428. package/dist/core/skills.d.ts.map +1 -0
  429. package/dist/core/skills.js +404 -0
  430. package/dist/core/skills.js.map +1 -0
  431. package/dist/core/slash-commands.d.ts +15 -0
  432. package/dist/core/slash-commands.d.ts.map +1 -0
  433. package/dist/core/slash-commands.js +32 -0
  434. package/dist/core/slash-commands.js.map +1 -0
  435. package/dist/core/source-info.d.ts +35 -0
  436. package/dist/core/source-info.d.ts.map +1 -0
  437. package/dist/core/source-info.js +48 -0
  438. package/dist/core/source-info.js.map +1 -0
  439. package/dist/core/system-prompt.d.ts +77 -0
  440. package/dist/core/system-prompt.d.ts.map +1 -0
  441. package/dist/core/system-prompt.js +150 -0
  442. package/dist/core/system-prompt.js.map +1 -0
  443. package/dist/core/telemetry.d.ts +3 -0
  444. package/dist/core/telemetry.d.ts.map +1 -0
  445. package/dist/core/telemetry.js +9 -0
  446. package/dist/core/telemetry.js.map +1 -0
  447. package/dist/core/timings.d.ts +10 -0
  448. package/dist/core/timings.d.ts.map +1 -0
  449. package/dist/core/timings.js +41 -0
  450. package/dist/core/timings.js.map +1 -0
  451. package/dist/core/tools/bash.d.ts +100 -0
  452. package/dist/core/tools/bash.d.ts.map +1 -0
  453. package/dist/core/tools/bash.js +363 -0
  454. package/dist/core/tools/bash.js.map +1 -0
  455. package/dist/core/tools/edit-diff.d.ts +101 -0
  456. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  457. package/dist/core/tools/edit-diff.js +421 -0
  458. package/dist/core/tools/edit-diff.js.map +1 -0
  459. package/dist/core/tools/edit.d.ts +44 -0
  460. package/dist/core/tools/edit.d.ts.map +1 -0
  461. package/dist/core/tools/edit.js +145 -0
  462. package/dist/core/tools/edit.js.map +1 -0
  463. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  464. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  465. package/dist/core/tools/file-mutation-queue.js +52 -0
  466. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  467. package/dist/core/tools/find.d.ts +42 -0
  468. package/dist/core/tools/find.d.ts.map +1 -0
  469. package/dist/core/tools/find.js +267 -0
  470. package/dist/core/tools/find.js.map +1 -0
  471. package/dist/core/tools/grep.d.ts +39 -0
  472. package/dist/core/tools/grep.d.ts.map +1 -0
  473. package/dist/core/tools/grep.js +257 -0
  474. package/dist/core/tools/grep.js.map +1 -0
  475. package/dist/core/tools/index.d.ts +43 -0
  476. package/dist/core/tools/index.d.ts.map +1 -0
  477. package/dist/core/tools/index.js +129 -0
  478. package/dist/core/tools/index.js.map +1 -0
  479. package/dist/core/tools/ls.d.ts +41 -0
  480. package/dist/core/tools/ls.d.ts.map +1 -0
  481. package/dist/core/tools/ls.js +127 -0
  482. package/dist/core/tools/ls.js.map +1 -0
  483. package/dist/core/tools/output-accumulator.d.ts +63 -0
  484. package/dist/core/tools/output-accumulator.d.ts.map +1 -0
  485. package/dist/core/tools/output-accumulator.js +214 -0
  486. package/dist/core/tools/output-accumulator.js.map +1 -0
  487. package/dist/core/tools/path-utils.d.ts +10 -0
  488. package/dist/core/tools/path-utils.d.ts.map +1 -0
  489. package/dist/core/tools/path-utils.js +99 -0
  490. package/dist/core/tools/path-utils.js.map +1 -0
  491. package/dist/core/tools/powershell.d.ts +16 -0
  492. package/dist/core/tools/powershell.d.ts.map +1 -0
  493. package/dist/core/tools/powershell.js +39 -0
  494. package/dist/core/tools/powershell.js.map +1 -0
  495. package/dist/core/tools/read.d.ts +63 -0
  496. package/dist/core/tools/read.d.ts.map +1 -0
  497. package/dist/core/tools/read.js +302 -0
  498. package/dist/core/tools/read.js.map +1 -0
  499. package/dist/core/tools/render-utils.d.ts +50 -0
  500. package/dist/core/tools/render-utils.d.ts.map +1 -0
  501. package/dist/core/tools/render-utils.js +153 -0
  502. package/dist/core/tools/render-utils.js.map +1 -0
  503. package/dist/core/tools/renderers/bash.d.ts +12 -0
  504. package/dist/core/tools/renderers/bash.d.ts.map +1 -0
  505. package/dist/core/tools/renderers/bash.js +89 -0
  506. package/dist/core/tools/renderers/bash.js.map +1 -0
  507. package/dist/core/tools/renderers/edit.d.ts +23 -0
  508. package/dist/core/tools/renderers/edit.d.ts.map +1 -0
  509. package/dist/core/tools/renderers/edit.js +168 -0
  510. package/dist/core/tools/renderers/edit.js.map +1 -0
  511. package/dist/core/tools/renderers/find.d.ts +10 -0
  512. package/dist/core/tools/renderers/find.d.ts.map +1 -0
  513. package/dist/core/tools/renderers/find.js +64 -0
  514. package/dist/core/tools/renderers/find.js.map +1 -0
  515. package/dist/core/tools/renderers/grep.d.ts +10 -0
  516. package/dist/core/tools/renderers/grep.d.ts.map +1 -0
  517. package/dist/core/tools/renderers/grep.js +69 -0
  518. package/dist/core/tools/renderers/grep.js.map +1 -0
  519. package/dist/core/tools/renderers/index.d.ts +28 -0
  520. package/dist/core/tools/renderers/index.d.ts.map +1 -0
  521. package/dist/core/tools/renderers/index.js +47 -0
  522. package/dist/core/tools/renderers/index.js.map +1 -0
  523. package/dist/core/tools/renderers/ls.d.ts +10 -0
  524. package/dist/core/tools/renderers/ls.d.ts.map +1 -0
  525. package/dist/core/tools/renderers/ls.js +58 -0
  526. package/dist/core/tools/renderers/ls.js.map +1 -0
  527. package/dist/core/tools/renderers/read.d.ts +11 -0
  528. package/dist/core/tools/renderers/read.d.ts.map +1 -0
  529. package/dist/core/tools/renderers/read.js +126 -0
  530. package/dist/core/tools/renderers/read.js.map +1 -0
  531. package/dist/core/tools/renderers/write.d.ts +10 -0
  532. package/dist/core/tools/renderers/write.d.ts.map +1 -0
  533. package/dist/core/tools/renderers/write.js +153 -0
  534. package/dist/core/tools/renderers/write.js.map +1 -0
  535. package/dist/core/tools/tool-definition-wrapper.d.ts +26 -0
  536. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  537. package/dist/core/tools/tool-definition-wrapper.js +38 -0
  538. package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
  539. package/dist/core/tools/truncate.d.ts +74 -0
  540. package/dist/core/tools/truncate.d.ts.map +1 -0
  541. package/dist/core/tools/truncate.js +238 -0
  542. package/dist/core/tools/truncate.js.map +1 -0
  543. package/dist/core/tools/write.d.ts +30 -0
  544. package/dist/core/tools/write.d.ts.map +1 -0
  545. package/dist/core/tools/write.js +61 -0
  546. package/dist/core/tools/write.js.map +1 -0
  547. package/dist/core/trust-manager.d.ts +36 -0
  548. package/dist/core/trust-manager.d.ts.map +1 -0
  549. package/dist/core/trust-manager.js +210 -0
  550. package/dist/core/trust-manager.js.map +1 -0
  551. package/dist/core/usage-totals.d.ts +21 -0
  552. package/dist/core/usage-totals.d.ts.map +1 -0
  553. package/dist/core/usage-totals.js +81 -0
  554. package/dist/core/usage-totals.js.map +1 -0
  555. package/dist/core/virtual-models.d.ts +117 -0
  556. package/dist/core/virtual-models.d.ts.map +1 -0
  557. package/dist/core/virtual-models.js +124 -0
  558. package/dist/core/virtual-models.js.map +1 -0
  559. package/dist/extensions/codemode/execute.d.ts +16 -0
  560. package/dist/extensions/codemode/execute.d.ts.map +1 -0
  561. package/dist/extensions/codemode/execute.js +740 -0
  562. package/dist/extensions/codemode/execute.js.map +1 -0
  563. package/dist/extensions/codemode/execute.lazy.d.ts +3 -0
  564. package/dist/extensions/codemode/execute.lazy.d.ts.map +1 -0
  565. package/dist/extensions/codemode/execute.lazy.js +3 -0
  566. package/dist/extensions/codemode/execute.lazy.js.map +1 -0
  567. package/dist/extensions/codemode/index.d.ts +21 -0
  568. package/dist/extensions/codemode/index.d.ts.map +1 -0
  569. package/dist/extensions/codemode/index.js +33 -0
  570. package/dist/extensions/codemode/index.js.map +1 -0
  571. package/dist/extensions/codemode/renderer.d.ts +12 -0
  572. package/dist/extensions/codemode/renderer.d.ts.map +1 -0
  573. package/dist/extensions/codemode/renderer.js +147 -0
  574. package/dist/extensions/codemode/renderer.js.map +1 -0
  575. package/dist/extensions/codemode/tool.d.ts +125 -0
  576. package/dist/extensions/codemode/tool.d.ts.map +1 -0
  577. package/dist/extensions/codemode/tool.js +313 -0
  578. package/dist/extensions/codemode/tool.js.map +1 -0
  579. package/dist/extensions/codemode/worker.d.ts +7 -0
  580. package/dist/extensions/codemode/worker.d.ts.map +1 -0
  581. package/dist/extensions/codemode/worker.js +7 -0
  582. package/dist/extensions/codemode/worker.js.map +1 -0
  583. package/dist/extensions/index.d.ts +3 -0
  584. package/dist/extensions/index.d.ts.map +1 -0
  585. package/dist/extensions/index.js +19 -0
  586. package/dist/extensions/index.js.map +1 -0
  587. package/dist/extensions/llama/client.d.ts +71 -0
  588. package/dist/extensions/llama/client.d.ts.map +1 -0
  589. package/dist/extensions/llama/client.js +334 -0
  590. package/dist/extensions/llama/client.js.map +1 -0
  591. package/dist/extensions/llama/huggingface.d.ts +23 -0
  592. package/dist/extensions/llama/huggingface.d.ts.map +1 -0
  593. package/dist/extensions/llama/huggingface.js +141 -0
  594. package/dist/extensions/llama/huggingface.js.map +1 -0
  595. package/dist/extensions/llama/index.d.ts +3 -0
  596. package/dist/extensions/llama/index.d.ts.map +1 -0
  597. package/dist/extensions/llama/index.js +219 -0
  598. package/dist/extensions/llama/index.js.map +1 -0
  599. package/dist/extensions/llama/provider.d.ts +12 -0
  600. package/dist/extensions/llama/provider.d.ts.map +1 -0
  601. package/dist/extensions/llama/provider.js +236 -0
  602. package/dist/extensions/llama/provider.js.map +1 -0
  603. package/dist/extensions/llama/ui.d.ts +42 -0
  604. package/dist/extensions/llama/ui.d.ts.map +1 -0
  605. package/dist/extensions/llama/ui.js +440 -0
  606. package/dist/extensions/llama/ui.js.map +1 -0
  607. package/dist/extensions/marsai/index.d.ts +18 -0
  608. package/dist/extensions/marsai/index.d.ts.map +1 -0
  609. package/dist/extensions/marsai/index.js +179 -0
  610. package/dist/extensions/marsai/index.js.map +1 -0
  611. package/dist/extensions/marsai/oauth.d.ts +49 -0
  612. package/dist/extensions/marsai/oauth.d.ts.map +1 -0
  613. package/dist/extensions/marsai/oauth.js +291 -0
  614. package/dist/extensions/marsai/oauth.js.map +1 -0
  615. package/dist/extensions/marsai/web-tools.d.ts +31 -0
  616. package/dist/extensions/marsai/web-tools.d.ts.map +1 -0
  617. package/dist/extensions/marsai/web-tools.js +298 -0
  618. package/dist/extensions/marsai/web-tools.js.map +1 -0
  619. package/dist/extensions/mcp/cli.d.ts +23 -0
  620. package/dist/extensions/mcp/cli.d.ts.map +1 -0
  621. package/dist/extensions/mcp/cli.js +558 -0
  622. package/dist/extensions/mcp/cli.js.map +1 -0
  623. package/dist/extensions/mcp/cli.lazy.d.ts +3 -0
  624. package/dist/extensions/mcp/cli.lazy.d.ts.map +1 -0
  625. package/dist/extensions/mcp/cli.lazy.js +3 -0
  626. package/dist/extensions/mcp/cli.lazy.js.map +1 -0
  627. package/dist/extensions/mcp/config.d.ts +84 -0
  628. package/dist/extensions/mcp/config.d.ts.map +1 -0
  629. package/dist/extensions/mcp/config.js +192 -0
  630. package/dist/extensions/mcp/config.js.map +1 -0
  631. package/dist/extensions/mcp/index.d.ts +79 -0
  632. package/dist/extensions/mcp/index.d.ts.map +1 -0
  633. package/dist/extensions/mcp/index.js +1206 -0
  634. package/dist/extensions/mcp/index.js.map +1 -0
  635. package/dist/extensions/mcp/log.d.ts +16 -0
  636. package/dist/extensions/mcp/log.d.ts.map +1 -0
  637. package/dist/extensions/mcp/log.js +66 -0
  638. package/dist/extensions/mcp/log.js.map +1 -0
  639. package/dist/extensions/mcp/oauth.d.ts +64 -0
  640. package/dist/extensions/mcp/oauth.d.ts.map +1 -0
  641. package/dist/extensions/mcp/oauth.js +188 -0
  642. package/dist/extensions/mcp/oauth.js.map +1 -0
  643. package/dist/extensions/mcp/resources.d.ts +36 -0
  644. package/dist/extensions/mcp/resources.d.ts.map +1 -0
  645. package/dist/extensions/mcp/resources.js +262 -0
  646. package/dist/extensions/mcp/resources.js.map +1 -0
  647. package/dist/extensions/mcp/runtime.d.ts +99 -0
  648. package/dist/extensions/mcp/runtime.d.ts.map +1 -0
  649. package/dist/extensions/mcp/runtime.js +380 -0
  650. package/dist/extensions/mcp/runtime.js.map +1 -0
  651. package/dist/extensions/mcp/runtime.lazy.d.ts +3 -0
  652. package/dist/extensions/mcp/runtime.lazy.d.ts.map +1 -0
  653. package/dist/extensions/mcp/runtime.lazy.js +3 -0
  654. package/dist/extensions/mcp/runtime.lazy.js.map +1 -0
  655. package/dist/extensions/mcp/tools.d.ts +65 -0
  656. package/dist/extensions/mcp/tools.d.ts.map +1 -0
  657. package/dist/extensions/mcp/tools.js +257 -0
  658. package/dist/extensions/mcp/tools.js.map +1 -0
  659. package/dist/extensions/mcp/ui.d.ts +61 -0
  660. package/dist/extensions/mcp/ui.d.ts.map +1 -0
  661. package/dist/extensions/mcp/ui.js +195 -0
  662. package/dist/extensions/mcp/ui.js.map +1 -0
  663. package/dist/extensions/subagent/agents.d.ts +23 -0
  664. package/dist/extensions/subagent/agents.d.ts.map +1 -0
  665. package/dist/extensions/subagent/agents.js +121 -0
  666. package/dist/extensions/subagent/agents.js.map +1 -0
  667. package/dist/extensions/subagent/index.d.ts +16 -0
  668. package/dist/extensions/subagent/index.d.ts.map +1 -0
  669. package/dist/extensions/subagent/index.js +1080 -0
  670. package/dist/extensions/subagent/index.js.map +1 -0
  671. package/dist/extensions/subagent/recon-child.d.ts +9 -0
  672. package/dist/extensions/subagent/recon-child.d.ts.map +1 -0
  673. package/dist/extensions/subagent/recon-child.js +80 -0
  674. package/dist/extensions/subagent/recon-child.js.map +1 -0
  675. package/dist/extensions/subagent/recon.d.ts +17 -0
  676. package/dist/extensions/subagent/recon.d.ts.map +1 -0
  677. package/dist/extensions/subagent/recon.js +56 -0
  678. package/dist/extensions/subagent/recon.js.map +1 -0
  679. package/dist/extensions/tool-search/index.d.ts +12 -0
  680. package/dist/extensions/tool-search/index.d.ts.map +1 -0
  681. package/dist/extensions/tool-search/index.js +15 -0
  682. package/dist/extensions/tool-search/index.js.map +1 -0
  683. package/dist/extensions/tool-search/tool.d.ts +86 -0
  684. package/dist/extensions/tool-search/tool.d.ts.map +1 -0
  685. package/dist/extensions/tool-search/tool.js +255 -0
  686. package/dist/extensions/tool-search/tool.js.map +1 -0
  687. package/dist/index.d.ts +45 -0
  688. package/dist/index.d.ts.map +1 -0
  689. package/dist/index.js +54 -0
  690. package/dist/index.js.map +1 -0
  691. package/dist/main.d.ts +16 -0
  692. package/dist/main.d.ts.map +1 -0
  693. package/dist/main.js +835 -0
  694. package/dist/main.js.map +1 -0
  695. package/dist/migrations.d.ts +33 -0
  696. package/dist/migrations.d.ts.map +1 -0
  697. package/dist/migrations.js +282 -0
  698. package/dist/migrations.js.map +1 -0
  699. package/dist/modes/index.d.ts +10 -0
  700. package/dist/modes/index.d.ts.map +1 -0
  701. package/dist/modes/index.js +8 -0
  702. package/dist/modes/index.js.map +1 -0
  703. package/dist/modes/interactive/assets/clankolas.png +0 -0
  704. package/dist/modes/interactive/bug-report.d.ts +16 -0
  705. package/dist/modes/interactive/bug-report.d.ts.map +1 -0
  706. package/dist/modes/interactive/bug-report.js +210 -0
  707. package/dist/modes/interactive/bug-report.js.map +1 -0
  708. package/dist/modes/interactive/chat-viewport.d.ts +20 -0
  709. package/dist/modes/interactive/chat-viewport.d.ts.map +1 -0
  710. package/dist/modes/interactive/chat-viewport.js +28 -0
  711. package/dist/modes/interactive/chat-viewport.js.map +1 -0
  712. package/dist/modes/interactive/components/armin.d.ts +37 -0
  713. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  714. package/dist/modes/interactive/components/armin.js +335 -0
  715. package/dist/modes/interactive/components/armin.js.map +1 -0
  716. package/dist/modes/interactive/components/assistant-message.d.ts +29 -0
  717. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  718. package/dist/modes/interactive/components/assistant-message.js +182 -0
  719. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  720. package/dist/modes/interactive/components/auth-url.d.ts +14 -0
  721. package/dist/modes/interactive/components/auth-url.d.ts.map +1 -0
  722. package/dist/modes/interactive/components/auth-url.js +37 -0
  723. package/dist/modes/interactive/components/auth-url.js.map +1 -0
  724. package/dist/modes/interactive/components/bash-execution.d.ts +38 -0
  725. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  726. package/dist/modes/interactive/components/bash-execution.js +178 -0
  727. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  728. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  729. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  730. package/dist/modes/interactive/components/bordered-loader.js +54 -0
  731. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  732. package/dist/modes/interactive/components/branch-summary-message.d.ts +21 -0
  733. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  734. package/dist/modes/interactive/components/branch-summary-message.js +62 -0
  735. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  736. package/dist/modes/interactive/components/compaction-summary-message.d.ts +21 -0
  737. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  738. package/dist/modes/interactive/components/compaction-summary-message.js +63 -0
  739. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  740. package/dist/modes/interactive/components/config-selector.d.ts +102 -0
  741. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  742. package/dist/modes/interactive/components/config-selector.js +758 -0
  743. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  744. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  745. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  746. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  747. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  748. package/dist/modes/interactive/components/custom-editor.d.ts +30 -0
  749. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  750. package/dist/modes/interactive/components/custom-editor.js +122 -0
  751. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  752. package/dist/modes/interactive/components/custom-entry.d.ts +21 -0
  753. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
  754. package/dist/modes/interactive/components/custom-entry.js +59 -0
  755. package/dist/modes/interactive/components/custom-entry.js.map +1 -0
  756. package/dist/modes/interactive/components/custom-message.d.ts +25 -0
  757. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  758. package/dist/modes/interactive/components/custom-message.js +96 -0
  759. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  760. package/dist/modes/interactive/components/diff.d.ts +12 -0
  761. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  762. package/dist/modes/interactive/components/diff.js +139 -0
  763. package/dist/modes/interactive/components/diff.js.map +1 -0
  764. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  765. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  766. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  767. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  768. package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  769. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  770. package/dist/modes/interactive/components/earendil-announcement.js +40 -0
  771. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
  772. package/dist/modes/interactive/components/easter-egg-3d.d.ts +104 -0
  773. package/dist/modes/interactive/components/easter-egg-3d.d.ts.map +1 -0
  774. package/dist/modes/interactive/components/easter-egg-3d.js +1139 -0
  775. package/dist/modes/interactive/components/easter-egg-3d.js.map +1 -0
  776. package/dist/modes/interactive/components/easter-egg-3d.lazy.d.ts +6 -0
  777. package/dist/modes/interactive/components/easter-egg-3d.lazy.d.ts.map +1 -0
  778. package/dist/modes/interactive/components/easter-egg-3d.lazy.js +23 -0
  779. package/dist/modes/interactive/components/easter-egg-3d.lazy.js.map +1 -0
  780. package/dist/modes/interactive/components/extension-editor.d.ts +26 -0
  781. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  782. package/dist/modes/interactive/components/extension-editor.js +107 -0
  783. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  784. package/dist/modes/interactive/components/extension-input.d.ts +25 -0
  785. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  786. package/dist/modes/interactive/components/extension-input.js +67 -0
  787. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  788. package/dist/modes/interactive/components/extension-selector.d.ts +27 -0
  789. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  790. package/dist/modes/interactive/components/extension-selector.js +95 -0
  791. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  792. package/dist/modes/interactive/components/first-time-setup.d.ts +26 -0
  793. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  794. package/dist/modes/interactive/components/first-time-setup.js +118 -0
  795. package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
  796. package/dist/modes/interactive/components/footer.d.ts +39 -0
  797. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  798. package/dist/modes/interactive/components/footer.js +265 -0
  799. package/dist/modes/interactive/components/footer.js.map +1 -0
  800. package/dist/modes/interactive/components/index.d.ts +33 -0
  801. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  802. package/dist/modes/interactive/components/index.js +34 -0
  803. package/dist/modes/interactive/components/index.js.map +1 -0
  804. package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  805. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  806. package/dist/modes/interactive/components/keybinding-hints.js +36 -0
  807. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  808. package/dist/modes/interactive/components/login-dialog.d.ts +59 -0
  809. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  810. package/dist/modes/interactive/components/login-dialog.js +289 -0
  811. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  812. package/dist/modes/interactive/components/markdown-transform.d.ts +4 -0
  813. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
  814. package/dist/modes/interactive/components/markdown-transform.js +20 -0
  815. package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
  816. package/dist/modes/interactive/components/mermaid.d.ts +12 -0
  817. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
  818. package/dist/modes/interactive/components/mermaid.js +80 -0
  819. package/dist/modes/interactive/components/mermaid.js.map +1 -0
  820. package/dist/modes/interactive/components/model-selector.d.ts +61 -0
  821. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  822. package/dist/modes/interactive/components/model-selector.js +380 -0
  823. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  824. package/dist/modes/interactive/components/oauth-selector.d.ts +40 -0
  825. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  826. package/dist/modes/interactive/components/oauth-selector.js +175 -0
  827. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  828. package/dist/modes/interactive/components/pi-logo.d.ts +20 -0
  829. package/dist/modes/interactive/components/pi-logo.d.ts.map +1 -0
  830. package/dist/modes/interactive/components/pi-logo.js +41 -0
  831. package/dist/modes/interactive/components/pi-logo.js.map +1 -0
  832. package/dist/modes/interactive/components/radius-login-selector.d.ts +15 -0
  833. package/dist/modes/interactive/components/radius-login-selector.d.ts.map +1 -0
  834. package/dist/modes/interactive/components/radius-login-selector.js +85 -0
  835. package/dist/modes/interactive/components/radius-login-selector.js.map +1 -0
  836. package/dist/modes/interactive/components/scoped-models-selector.d.ts +47 -0
  837. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  838. package/dist/modes/interactive/components/scoped-models-selector.js +337 -0
  839. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  840. package/dist/modes/interactive/components/session-selector-search.d.ts +27 -0
  841. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  842. package/dist/modes/interactive/components/session-selector-search.js +219 -0
  843. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  844. package/dist/modes/interactive/components/session-selector.d.ts +96 -0
  845. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  846. package/dist/modes/interactive/components/session-selector.js +885 -0
  847. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  848. package/dist/modes/interactive/components/settings-selector.d.ts +98 -0
  849. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  850. package/dist/modes/interactive/components/settings-selector.js +753 -0
  851. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  852. package/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
  853. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
  854. package/dist/modes/interactive/components/settings-submenu.js +167 -0
  855. package/dist/modes/interactive/components/settings-submenu.js.map +1 -0
  856. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  857. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  858. package/dist/modes/interactive/components/show-images-selector.js +39 -0
  859. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  860. package/dist/modes/interactive/components/skill-invocation-message.d.ts +22 -0
  861. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  862. package/dist/modes/interactive/components/skill-invocation-message.js +65 -0
  863. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  864. package/dist/modes/interactive/components/status-indicator.d.ts +32 -0
  865. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
  866. package/dist/modes/interactive/components/status-indicator.js +88 -0
  867. package/dist/modes/interactive/components/status-indicator.js.map +1 -0
  868. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  869. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  870. package/dist/modes/interactive/components/theme-selector.js +50 -0
  871. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  872. package/dist/modes/interactive/components/themed-text.d.ts +17 -0
  873. package/dist/modes/interactive/components/themed-text.d.ts.map +1 -0
  874. package/dist/modes/interactive/components/themed-text.js +29 -0
  875. package/dist/modes/interactive/components/themed-text.js.map +1 -0
  876. package/dist/modes/interactive/components/thinking-selector.d.ts +23 -0
  877. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  878. package/dist/modes/interactive/components/thinking-selector.js +109 -0
  879. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  880. package/dist/modes/interactive/components/tool-execution.d.ts +79 -0
  881. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  882. package/dist/modes/interactive/components/tool-execution.js +336 -0
  883. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  884. package/dist/modes/interactive/components/tree-selector.d.ts +96 -0
  885. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  886. package/dist/modes/interactive/components/tree-selector.js +1255 -0
  887. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  888. package/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  889. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
  890. package/dist/modes/interactive/components/trust-selector.js +91 -0
  891. package/dist/modes/interactive/components/trust-selector.js.map +1 -0
  892. package/dist/modes/interactive/components/user-message-selector.d.ts +31 -0
  893. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  894. package/dist/modes/interactive/components/user-message-selector.js +122 -0
  895. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  896. package/dist/modes/interactive/components/user-message.d.ts +18 -0
  897. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  898. package/dist/modes/interactive/components/user-message.js +54 -0
  899. package/dist/modes/interactive/components/user-message.js.map +1 -0
  900. package/dist/modes/interactive/components/visual-truncate.d.ts +48 -0
  901. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  902. package/dist/modes/interactive/components/visual-truncate.js +66 -0
  903. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  904. package/dist/modes/interactive/external-editor.d.ts +13 -0
  905. package/dist/modes/interactive/external-editor.d.ts.map +1 -0
  906. package/dist/modes/interactive/external-editor.js +50 -0
  907. package/dist/modes/interactive/external-editor.js.map +1 -0
  908. package/dist/modes/interactive/interactive-mode.d.ts +528 -0
  909. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  910. package/dist/modes/interactive/interactive-mode.js +6347 -0
  911. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  912. package/dist/modes/interactive/model-catalog-refresh.d.ts +7 -0
  913. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -0
  914. package/dist/modes/interactive/model-catalog-refresh.js +34 -0
  915. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -0
  916. package/dist/modes/interactive/model-search.d.ts +22 -0
  917. package/dist/modes/interactive/model-search.d.ts.map +1 -0
  918. package/dist/modes/interactive/model-search.js +36 -0
  919. package/dist/modes/interactive/model-search.js.map +1 -0
  920. package/dist/modes/interactive/program-status-reporter.d.ts +34 -0
  921. package/dist/modes/interactive/program-status-reporter.d.ts.map +1 -0
  922. package/dist/modes/interactive/program-status-reporter.js +110 -0
  923. package/dist/modes/interactive/program-status-reporter.js.map +1 -0
  924. package/dist/modes/interactive/session-share.d.ts +18 -0
  925. package/dist/modes/interactive/session-share.d.ts.map +1 -0
  926. package/dist/modes/interactive/session-share.js +195 -0
  927. package/dist/modes/interactive/session-share.js.map +1 -0
  928. package/dist/modes/interactive/theme/dark.json +78 -0
  929. package/dist/modes/interactive/theme/light.json +78 -0
  930. package/dist/modes/interactive/theme/system-theme.d.ts +55 -0
  931. package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
  932. package/dist/modes/interactive/theme/system-theme.js +546 -0
  933. package/dist/modes/interactive/theme/system-theme.js.map +1 -0
  934. package/dist/modes/interactive/theme/theme-controller.d.ts +81 -0
  935. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -0
  936. package/dist/modes/interactive/theme/theme-controller.js +210 -0
  937. package/dist/modes/interactive/theme/theme-controller.js.map +1 -0
  938. package/dist/modes/interactive/theme/theme-schema.d.ts +28 -0
  939. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -0
  940. package/dist/modes/interactive/theme/theme-schema.js +105 -0
  941. package/dist/modes/interactive/theme/theme-schema.js.map +1 -0
  942. package/dist/modes/interactive/theme/theme-tokens.d.ts +257 -0
  943. package/dist/modes/interactive/theme/theme-tokens.d.ts.map +1 -0
  944. package/dist/modes/interactive/theme/theme-tokens.js +94 -0
  945. package/dist/modes/interactive/theme/theme-tokens.js.map +1 -0
  946. package/dist/modes/interactive/theme/theme.d.ts +165 -0
  947. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  948. package/dist/modes/interactive/theme/theme.js +917 -0
  949. package/dist/modes/interactive/theme/theme.js.map +1 -0
  950. package/dist/modes/interactive/tui-renderer.d.ts +22 -0
  951. package/dist/modes/interactive/tui-renderer.d.ts.map +1 -0
  952. package/dist/modes/interactive/tui-renderer.js +67 -0
  953. package/dist/modes/interactive/tui-renderer.js.map +1 -0
  954. package/dist/modes/json-event.d.ts +34 -0
  955. package/dist/modes/json-event.d.ts.map +1 -0
  956. package/dist/modes/json-event.js +29 -0
  957. package/dist/modes/json-event.js.map +1 -0
  958. package/dist/modes/print-mode.d.ts +28 -0
  959. package/dist/modes/print-mode.d.ts.map +1 -0
  960. package/dist/modes/print-mode.js +155 -0
  961. package/dist/modes/print-mode.js.map +1 -0
  962. package/dist/modes/rpc/jsonl.d.ts +17 -0
  963. package/dist/modes/rpc/jsonl.d.ts.map +1 -0
  964. package/dist/modes/rpc/jsonl.js +49 -0
  965. package/dist/modes/rpc/jsonl.js.map +1 -0
  966. package/dist/modes/rpc/rpc-client.d.ts +254 -0
  967. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  968. package/dist/modes/rpc/rpc-client.js +499 -0
  969. package/dist/modes/rpc/rpc-client.js.map +1 -0
  970. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  971. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  972. package/dist/modes/rpc/rpc-mode.js +685 -0
  973. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  974. package/dist/modes/rpc/rpc-types.d.ts +478 -0
  975. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  976. package/dist/modes/rpc/rpc-types.js +8 -0
  977. package/dist/modes/rpc/rpc-types.js.map +1 -0
  978. package/dist/package-manager-cli.d.ts +9 -0
  979. package/dist/package-manager-cli.d.ts.map +1 -0
  980. package/dist/package-manager-cli.js +1076 -0
  981. package/dist/package-manager-cli.js.map +1 -0
  982. package/dist/rpc-entry.d.ts +3 -0
  983. package/dist/rpc-entry.d.ts.map +1 -0
  984. package/dist/rpc-entry.js +11 -0
  985. package/dist/rpc-entry.js.map +1 -0
  986. package/dist/utils/abort.d.ts +5 -0
  987. package/dist/utils/abort.d.ts.map +1 -0
  988. package/dist/utils/abort.js +48 -0
  989. package/dist/utils/abort.js.map +1 -0
  990. package/dist/utils/ansi.d.ts +10 -0
  991. package/dist/utils/ansi.d.ts.map +1 -0
  992. package/dist/utils/ansi.js +74 -0
  993. package/dist/utils/ansi.js.map +1 -0
  994. package/dist/utils/changelog.d.ts +22 -0
  995. package/dist/utils/changelog.d.ts.map +1 -0
  996. package/dist/utils/changelog.js +171 -0
  997. package/dist/utils/changelog.js.map +1 -0
  998. package/dist/utils/child-process.d.ts +18 -0
  999. package/dist/utils/child-process.d.ts.map +1 -0
  1000. package/dist/utils/child-process.js +106 -0
  1001. package/dist/utils/child-process.js.map +1 -0
  1002. package/dist/utils/cli-invocation.d.ts +11 -0
  1003. package/dist/utils/cli-invocation.d.ts.map +1 -0
  1004. package/dist/utils/cli-invocation.js +23 -0
  1005. package/dist/utils/cli-invocation.js.map +1 -0
  1006. package/dist/utils/clipboard-command.d.ts +7 -0
  1007. package/dist/utils/clipboard-command.d.ts.map +1 -0
  1008. package/dist/utils/clipboard-command.js +52 -0
  1009. package/dist/utils/clipboard-command.js.map +1 -0
  1010. package/dist/utils/clipboard-image.d.ts +11 -0
  1011. package/dist/utils/clipboard-image.d.ts.map +1 -0
  1012. package/dist/utils/clipboard-image.js +214 -0
  1013. package/dist/utils/clipboard-image.js.map +1 -0
  1014. package/dist/utils/clipboard.d.ts +6 -0
  1015. package/dist/utils/clipboard.d.ts.map +1 -0
  1016. package/dist/utils/clipboard.js +162 -0
  1017. package/dist/utils/clipboard.js.map +1 -0
  1018. package/dist/utils/deprecation.d.ts +4 -0
  1019. package/dist/utils/deprecation.d.ts.map +1 -0
  1020. package/dist/utils/deprecation.js +13 -0
  1021. package/dist/utils/deprecation.js.map +1 -0
  1022. package/dist/utils/exif-orientation.d.ts +5 -0
  1023. package/dist/utils/exif-orientation.d.ts.map +1 -0
  1024. package/dist/utils/exif-orientation.js +157 -0
  1025. package/dist/utils/exif-orientation.js.map +1 -0
  1026. package/dist/utils/frontmatter.d.ts +8 -0
  1027. package/dist/utils/frontmatter.d.ts.map +1 -0
  1028. package/dist/utils/frontmatter.js +27 -0
  1029. package/dist/utils/frontmatter.js.map +1 -0
  1030. package/dist/utils/fs-watch.d.ts +5 -0
  1031. package/dist/utils/fs-watch.d.ts.map +1 -0
  1032. package/dist/utils/fs-watch.js +25 -0
  1033. package/dist/utils/fs-watch.js.map +1 -0
  1034. package/dist/utils/git.d.ts +26 -0
  1035. package/dist/utils/git.d.ts.map +1 -0
  1036. package/dist/utils/git.js +195 -0
  1037. package/dist/utils/git.js.map +1 -0
  1038. package/dist/utils/html.d.ts +7 -0
  1039. package/dist/utils/html.d.ts.map +1 -0
  1040. package/dist/utils/html.js +40 -0
  1041. package/dist/utils/html.js.map +1 -0
  1042. package/dist/utils/image-convert.d.ts +22 -0
  1043. package/dist/utils/image-convert.d.ts.map +1 -0
  1044. package/dist/utils/image-convert.js +84 -0
  1045. package/dist/utils/image-convert.js.map +1 -0
  1046. package/dist/utils/image-process.d.ts +18 -0
  1047. package/dist/utils/image-process.d.ts.map +1 -0
  1048. package/dist/utils/image-process.js +83 -0
  1049. package/dist/utils/image-process.js.map +1 -0
  1050. package/dist/utils/image-resize-core.d.ts +42 -0
  1051. package/dist/utils/image-resize-core.d.ts.map +1 -0
  1052. package/dist/utils/image-resize-core.js +131 -0
  1053. package/dist/utils/image-resize-core.js.map +1 -0
  1054. package/dist/utils/image-resize-worker.d.ts +2 -0
  1055. package/dist/utils/image-resize-worker.d.ts.map +1 -0
  1056. package/dist/utils/image-resize-worker.js +32 -0
  1057. package/dist/utils/image-resize-worker.js.map +1 -0
  1058. package/dist/utils/image-resize.d.ts +16 -0
  1059. package/dist/utils/image-resize.d.ts.map +1 -0
  1060. package/dist/utils/image-resize.js +96 -0
  1061. package/dist/utils/image-resize.js.map +1 -0
  1062. package/dist/utils/json.d.ts +3 -0
  1063. package/dist/utils/json.d.ts.map +1 -0
  1064. package/dist/utils/json.js +7 -0
  1065. package/dist/utils/json.js.map +1 -0
  1066. package/dist/utils/management-http.d.ts +25 -0
  1067. package/dist/utils/management-http.d.ts.map +1 -0
  1068. package/dist/utils/management-http.js +54 -0
  1069. package/dist/utils/management-http.js.map +1 -0
  1070. package/dist/utils/mime.d.ts +3 -0
  1071. package/dist/utils/mime.d.ts.map +1 -0
  1072. package/dist/utils/mime.js +110 -0
  1073. package/dist/utils/mime.js.map +1 -0
  1074. package/dist/utils/open-browser.d.ts +9 -0
  1075. package/dist/utils/open-browser.d.ts.map +1 -0
  1076. package/dist/utils/open-browser.js +25 -0
  1077. package/dist/utils/open-browser.js.map +1 -0
  1078. package/dist/utils/output-files.d.ts +15 -0
  1079. package/dist/utils/output-files.d.ts.map +1 -0
  1080. package/dist/utils/output-files.js +30 -0
  1081. package/dist/utils/output-files.js.map +1 -0
  1082. package/dist/utils/paths.d.ts +51 -0
  1083. package/dist/utils/paths.d.ts.map +1 -0
  1084. package/dist/utils/paths.js +156 -0
  1085. package/dist/utils/paths.js.map +1 -0
  1086. package/dist/utils/photon.d.ts +21 -0
  1087. package/dist/utils/photon.d.ts.map +1 -0
  1088. package/dist/utils/photon.js +121 -0
  1089. package/dist/utils/photon.js.map +1 -0
  1090. package/dist/utils/pi-user-agent.d.ts +3 -0
  1091. package/dist/utils/pi-user-agent.d.ts.map +1 -0
  1092. package/dist/utils/pi-user-agent.js +6 -0
  1093. package/dist/utils/pi-user-agent.js.map +1 -0
  1094. package/dist/utils/shell.d.ts +32 -0
  1095. package/dist/utils/shell.d.ts.map +1 -0
  1096. package/dist/utils/shell.js +235 -0
  1097. package/dist/utils/shell.js.map +1 -0
  1098. package/dist/utils/sleep.d.ts +5 -0
  1099. package/dist/utils/sleep.d.ts.map +1 -0
  1100. package/dist/utils/sleep.js +17 -0
  1101. package/dist/utils/sleep.js.map +1 -0
  1102. package/dist/utils/syntax-highlight.d.ts +18 -0
  1103. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  1104. package/dist/utils/syntax-highlight.js +191 -0
  1105. package/dist/utils/syntax-highlight.js.map +1 -0
  1106. package/dist/utils/text.d.ts +8 -0
  1107. package/dist/utils/text.d.ts.map +1 -0
  1108. package/dist/utils/text.js +9 -0
  1109. package/dist/utils/text.js.map +1 -0
  1110. package/dist/utils/tool-result-images.d.ts +21 -0
  1111. package/dist/utils/tool-result-images.d.ts.map +1 -0
  1112. package/dist/utils/tool-result-images.js +48 -0
  1113. package/dist/utils/tool-result-images.js.map +1 -0
  1114. package/dist/utils/tools-manager.d.ts +13 -0
  1115. package/dist/utils/tools-manager.d.ts.map +1 -0
  1116. package/dist/utils/tools-manager.js +339 -0
  1117. package/dist/utils/tools-manager.js.map +1 -0
  1118. package/dist/utils/version-check.d.ts +19 -0
  1119. package/dist/utils/version-check.d.ts.map +1 -0
  1120. package/dist/utils/version-check.js +81 -0
  1121. package/dist/utils/version-check.js.map +1 -0
  1122. package/dist/utils/windows-self-update.d.ts +3 -0
  1123. package/dist/utils/windows-self-update.d.ts.map +1 -0
  1124. package/dist/utils/windows-self-update.js +77 -0
  1125. package/dist/utils/windows-self-update.js.map +1 -0
  1126. package/dist/utils/wsl.d.ts +3 -0
  1127. package/dist/utils/wsl.d.ts.map +1 -0
  1128. package/dist/utils/wsl.js +15 -0
  1129. package/dist/utils/wsl.js.map +1 -0
  1130. package/dist/utils/zip.d.ts +7 -0
  1131. package/dist/utils/zip.d.ts.map +1 -0
  1132. package/dist/utils/zip.js +60 -0
  1133. package/dist/utils/zip.js.map +1 -0
  1134. package/docs/cli-integration.md +106 -0
  1135. package/docs/cli.md +343 -0
  1136. package/docs/codemode.md +230 -0
  1137. package/docs/compaction.md +463 -0
  1138. package/docs/configuration.md +47 -0
  1139. package/docs/containerization.md +183 -0
  1140. package/docs/custom-provider.md +227 -0
  1141. package/docs/docs.json +220 -0
  1142. package/docs/environment-variables.md +103 -0
  1143. package/docs/extensions.md +3366 -0
  1144. package/docs/how-pi-works.md +49 -0
  1145. package/docs/images/doom-extension.png +0 -0
  1146. package/docs/images/exy.png +0 -0
  1147. package/docs/images/interactive-mode.png +0 -0
  1148. package/docs/images/tree-view.png +0 -0
  1149. package/docs/index.md +39 -0
  1150. package/docs/json.md +226 -0
  1151. package/docs/keybindings.md +195 -0
  1152. package/docs/llama-cpp.md +129 -0
  1153. package/docs/mcp.md +274 -0
  1154. package/docs/message-types.md +279 -0
  1155. package/docs/models-configuration.md +200 -0
  1156. package/docs/models.md +226 -0
  1157. package/docs/nvidia-rtx-llama-cpp.md +96 -0
  1158. package/docs/packages.md +153 -0
  1159. package/docs/prompt-templates.md +59 -0
  1160. package/docs/providers.md +247 -0
  1161. package/docs/quickstart.md +140 -0
  1162. package/docs/rpc-commands.md +860 -0
  1163. package/docs/rpc-extension-ui.md +200 -0
  1164. package/docs/rpc.md +195 -0
  1165. package/docs/sdk.md +147 -0
  1166. package/docs/security.md +99 -0
  1167. package/docs/session-format.md +293 -0
  1168. package/docs/sessions.md +74 -0
  1169. package/docs/settings.md +173 -0
  1170. package/docs/shell-aliases.md +93 -0
  1171. package/docs/skills.md +93 -0
  1172. package/docs/slash-commands.md +61 -0
  1173. package/docs/terminal-setup.md +235 -0
  1174. package/docs/termux.md +117 -0
  1175. package/docs/themes.md +138 -0
  1176. package/docs/tmux.md +61 -0
  1177. package/docs/tui.md +197 -0
  1178. package/docs/usage.md +94 -0
  1179. package/docs/virtual-models.md +114 -0
  1180. package/docs/windows.md +108 -0
  1181. package/package.json +37 -37
  1182. package/schemas/keybindings.schema.json +393 -0
  1183. package/schemas/models.schema.json +1236 -0
  1184. package/schemas/settings.schema.json +800 -0
  1185. package/schemas/theme.schema.json +365 -0
  1186. package/LICENSE +0 -21
  1187. package/bin/mars.cjs +0 -133
@@ -0,0 +1,404 @@
1
+ import { existsSync, readdirSync, readFileSync, statSync } from "fs";
2
+ import ignore from "ignore";
3
+ import { basename, dirname, join, relative, resolve, sep } from "path";
4
+ import { CONFIG_DIR_NAME, getAgentDir } from "../config.js";
5
+ import { parseFrontmatter } from "../utils/frontmatter.js";
6
+ import { isPathWithin, resolvePath } from "../utils/paths.js";
7
+ import { createSyntheticSourceInfo, getResourcePathKey } from "./source-info.js";
8
+ /** Max name length per spec */
9
+ const MAX_NAME_LENGTH = 64;
10
+ /** Max description length per spec */
11
+ const MAX_DESCRIPTION_LENGTH = 1024;
12
+ const IGNORE_FILE_NAMES = [".gitignore", ".ignore", ".fdignore"];
13
+ function toPosixPath(p) {
14
+ return p.split(sep).join("/");
15
+ }
16
+ function prefixIgnorePattern(line, prefix) {
17
+ const trimmed = line.trim();
18
+ if (!trimmed)
19
+ return null;
20
+ if (trimmed.startsWith("#") && !trimmed.startsWith("\\#"))
21
+ return null;
22
+ let pattern = line;
23
+ let negated = false;
24
+ if (pattern.startsWith("!")) {
25
+ negated = true;
26
+ pattern = pattern.slice(1);
27
+ }
28
+ else if (pattern.startsWith("\\!")) {
29
+ pattern = pattern.slice(1);
30
+ }
31
+ if (pattern.startsWith("/")) {
32
+ pattern = pattern.slice(1);
33
+ }
34
+ const prefixed = prefix ? `${prefix}${pattern}` : pattern;
35
+ return negated ? `!${prefixed}` : prefixed;
36
+ }
37
+ function addIgnoreRules(ig, dir, rootDir) {
38
+ const relativeDir = relative(rootDir, dir);
39
+ const prefix = relativeDir ? `${toPosixPath(relativeDir)}/` : "";
40
+ for (const filename of IGNORE_FILE_NAMES) {
41
+ const ignorePath = join(dir, filename);
42
+ if (!existsSync(ignorePath))
43
+ continue;
44
+ try {
45
+ const content = readFileSync(ignorePath, "utf-8");
46
+ const patterns = content
47
+ .split(/\r?\n/)
48
+ .map((line) => prefixIgnorePattern(line, prefix))
49
+ .filter((line) => Boolean(line));
50
+ if (patterns.length > 0) {
51
+ ig.add(patterns);
52
+ }
53
+ }
54
+ catch { }
55
+ }
56
+ }
57
+ /**
58
+ * Validate skill name per Agent Skills spec.
59
+ * Returns array of validation error messages (empty if valid).
60
+ */
61
+ function validateName(name) {
62
+ const errors = [];
63
+ if (name.length > MAX_NAME_LENGTH) {
64
+ errors.push(`name exceeds ${MAX_NAME_LENGTH} characters (${name.length})`);
65
+ }
66
+ if (!/^[a-z0-9-]+$/.test(name)) {
67
+ errors.push(`name contains invalid characters (must be lowercase a-z, 0-9, hyphens only)`);
68
+ }
69
+ if (name.startsWith("-") || name.endsWith("-")) {
70
+ errors.push(`name must not start or end with a hyphen`);
71
+ }
72
+ if (name.includes("--")) {
73
+ errors.push(`name must not contain consecutive hyphens`);
74
+ }
75
+ return errors;
76
+ }
77
+ /**
78
+ * Validate description per Agent Skills spec.
79
+ */
80
+ function validateDescription(description) {
81
+ const errors = [];
82
+ if (typeof description !== "string" || description.trim() === "") {
83
+ errors.push("description is required");
84
+ }
85
+ else if (description.length > MAX_DESCRIPTION_LENGTH) {
86
+ errors.push(`description exceeds ${MAX_DESCRIPTION_LENGTH} characters (${description.length})`);
87
+ }
88
+ return errors;
89
+ }
90
+ function createSkillSourceInfo(filePath, baseDir, source) {
91
+ switch (source) {
92
+ case "user":
93
+ return createSyntheticSourceInfo(filePath, {
94
+ source: "local",
95
+ scope: "user",
96
+ baseDir,
97
+ });
98
+ case "project":
99
+ return createSyntheticSourceInfo(filePath, {
100
+ source: "local",
101
+ scope: "project",
102
+ baseDir,
103
+ });
104
+ case "path":
105
+ return createSyntheticSourceInfo(filePath, {
106
+ source: "local",
107
+ baseDir,
108
+ });
109
+ default:
110
+ return createSyntheticSourceInfo(filePath, { source, baseDir });
111
+ }
112
+ }
113
+ /**
114
+ * Load skills from a directory.
115
+ *
116
+ * Discovery rules:
117
+ * - if a directory contains SKILL.md, treat it as a skill root and do not recurse further
118
+ * - otherwise, load direct .md children in the root
119
+ * - recurse into subdirectories to find SKILL.md
120
+ */
121
+ export function loadSkillsFromDir(options) {
122
+ const { dir, source } = options;
123
+ return loadSkillsFromDirInternal(dir, source, true);
124
+ }
125
+ function loadSkillsFromDirInternal(dir, source, includeRootFiles, ignoreMatcher, rootDir) {
126
+ const skills = [];
127
+ const diagnostics = [];
128
+ if (!existsSync(dir)) {
129
+ return { skills, diagnostics };
130
+ }
131
+ const root = rootDir ?? dir;
132
+ const ig = ignoreMatcher ?? ignore();
133
+ addIgnoreRules(ig, dir, root);
134
+ try {
135
+ const entries = readdirSync(dir, { withFileTypes: true });
136
+ for (const entry of entries) {
137
+ if (entry.name !== "SKILL.md") {
138
+ continue;
139
+ }
140
+ const fullPath = join(dir, entry.name);
141
+ let isFile = entry.isFile();
142
+ if (entry.isSymbolicLink()) {
143
+ try {
144
+ isFile = statSync(fullPath).isFile();
145
+ }
146
+ catch {
147
+ continue;
148
+ }
149
+ }
150
+ const relPath = toPosixPath(relative(root, fullPath));
151
+ if (!isFile || ig.ignores(relPath)) {
152
+ continue;
153
+ }
154
+ const result = loadSkillFromFile(fullPath, source);
155
+ if (result.skill) {
156
+ skills.push(result.skill);
157
+ }
158
+ diagnostics.push(...result.diagnostics);
159
+ return { skills, diagnostics };
160
+ }
161
+ for (const entry of entries) {
162
+ if (entry.name.startsWith(".")) {
163
+ continue;
164
+ }
165
+ // Skip node_modules to avoid scanning dependencies
166
+ if (entry.name === "node_modules") {
167
+ continue;
168
+ }
169
+ const fullPath = join(dir, entry.name);
170
+ // For symlinks, check if they point to a directory and follow them
171
+ let isDirectory = entry.isDirectory();
172
+ let isFile = entry.isFile();
173
+ if (entry.isSymbolicLink()) {
174
+ try {
175
+ const stats = statSync(fullPath);
176
+ isDirectory = stats.isDirectory();
177
+ isFile = stats.isFile();
178
+ }
179
+ catch {
180
+ // Broken symlink, skip it
181
+ continue;
182
+ }
183
+ }
184
+ const relPath = toPosixPath(relative(root, fullPath));
185
+ const ignorePath = isDirectory ? `${relPath}/` : relPath;
186
+ if (ig.ignores(ignorePath)) {
187
+ continue;
188
+ }
189
+ if (isDirectory) {
190
+ const subResult = loadSkillsFromDirInternal(fullPath, source, false, ig, root);
191
+ skills.push(...subResult.skills);
192
+ diagnostics.push(...subResult.diagnostics);
193
+ continue;
194
+ }
195
+ if (!isFile || !includeRootFiles || !entry.name.endsWith(".md")) {
196
+ continue;
197
+ }
198
+ const result = loadSkillFromFile(fullPath, source);
199
+ if (result.skill) {
200
+ skills.push(result.skill);
201
+ }
202
+ diagnostics.push(...result.diagnostics);
203
+ }
204
+ }
205
+ catch { }
206
+ return { skills, diagnostics };
207
+ }
208
+ function loadSkillFromFile(filePath, source) {
209
+ const diagnostics = [];
210
+ const isDeclaredSkill = basename(filePath) === "SKILL.md";
211
+ let rawContent;
212
+ try {
213
+ rawContent = readFileSync(filePath, "utf-8");
214
+ }
215
+ catch (error) {
216
+ const message = error instanceof Error ? error.message : "failed to read skill file";
217
+ diagnostics.push({ type: "warning", message, path: filePath });
218
+ return { skill: null, diagnostics };
219
+ }
220
+ let frontmatter;
221
+ try {
222
+ ({ frontmatter } = parseFrontmatter(rawContent));
223
+ }
224
+ catch (error) {
225
+ if (isDeclaredSkill) {
226
+ const message = error instanceof Error ? error.message : "failed to parse skill file";
227
+ diagnostics.push({ type: "warning", message, path: filePath });
228
+ }
229
+ return { skill: null, diagnostics };
230
+ }
231
+ const description = frontmatter.description;
232
+ const hasDescription = typeof description === "string" && description.trim() !== "";
233
+ if (!isDeclaredSkill && !hasDescription) {
234
+ return { skill: null, diagnostics };
235
+ }
236
+ const skillDir = dirname(filePath);
237
+ const parentDirName = basename(skillDir);
238
+ // Validate description
239
+ const descErrors = validateDescription(description);
240
+ for (const error of descErrors) {
241
+ diagnostics.push({ type: "warning", message: error, path: filePath });
242
+ }
243
+ // Use name from frontmatter, or fall back to parent directory name
244
+ const frontmatterName = typeof frontmatter.name === "string" ? frontmatter.name : undefined;
245
+ const name = frontmatterName || parentDirName;
246
+ // Validate name
247
+ const nameErrors = validateName(name);
248
+ for (const error of nameErrors) {
249
+ diagnostics.push({ type: "warning", message: error, path: filePath });
250
+ }
251
+ // Still load the skill even with warnings, unless description is missing or empty.
252
+ if (!hasDescription) {
253
+ return { skill: null, diagnostics };
254
+ }
255
+ return {
256
+ skill: {
257
+ name,
258
+ description,
259
+ filePath,
260
+ baseDir: skillDir,
261
+ sourceInfo: createSkillSourceInfo(filePath, skillDir, source),
262
+ disableModelInvocation: frontmatter["disable-model-invocation"] === true,
263
+ },
264
+ diagnostics,
265
+ };
266
+ }
267
+ /**
268
+ * Format skills for inclusion in a system prompt.
269
+ * Uses XML format per Agent Skills standard.
270
+ * See: https://agentskills.io/integrate-skills
271
+ *
272
+ * Skills with disableModelInvocation=true are excluded from the prompt
273
+ * (they can only be invoked explicitly via /skill:name commands).
274
+ *
275
+ * `fileReadTool` names the tool that loads skill files; `indirect` names none, for a reader that
276
+ * is reachable only through another tool.
277
+ */
278
+ export function formatSkillsForPrompt(skills, fileReadTool = "read") {
279
+ const visibleSkills = skills.filter((s) => !s.disableModelInvocation);
280
+ if (visibleSkills.length === 0) {
281
+ return "";
282
+ }
283
+ const lines = [
284
+ "\n\nThe following skills provide specialized instructions for specific tasks.",
285
+ fileReadTool === "read"
286
+ ? "Use the read tool to load a skill's file when the task matches its description."
287
+ : fileReadTool === "bash"
288
+ ? "Use bash to load a skill's file when the task matches its description."
289
+ : "Load a skill's file when the task matches its description.",
290
+ "Resolve relative paths against the skill's directory (parent of SKILL.md). Use absolute paths in tool calls.",
291
+ "",
292
+ "<available_skills>",
293
+ ];
294
+ for (const skill of visibleSkills) {
295
+ lines.push(" <skill>");
296
+ lines.push(` <name>${escapeXml(skill.name)}</name>`);
297
+ lines.push(` <description>${escapeXml(skill.description)}</description>`);
298
+ lines.push(` <location>${escapeXml(skill.filePath)}</location>`);
299
+ lines.push(" </skill>");
300
+ }
301
+ lines.push("</available_skills>");
302
+ return lines.join("\n");
303
+ }
304
+ function escapeXml(str) {
305
+ return str
306
+ .replace(/&/g, "&amp;")
307
+ .replace(/</g, "&lt;")
308
+ .replace(/>/g, "&gt;")
309
+ .replace(/"/g, "&quot;")
310
+ .replace(/'/g, "&apos;");
311
+ }
312
+ /**
313
+ * Load skills from all configured locations.
314
+ * Returns skills and any validation diagnostics.
315
+ */
316
+ export function loadSkills(options) {
317
+ const { agentDir, skillPaths, includeDefaults } = options;
318
+ // Resolve agentDir - if not provided, use default from config
319
+ const resolvedCwd = resolvePath(options.cwd);
320
+ const resolvedAgentDir = resolvePath(agentDir ?? getAgentDir());
321
+ const skillMap = new Map();
322
+ const realPathSet = new Set();
323
+ const allDiagnostics = [];
324
+ const collisionDiagnostics = [];
325
+ function addSkills(result) {
326
+ allDiagnostics.push(...result.diagnostics);
327
+ for (const skill of result.skills) {
328
+ // Resolve symlinks to detect duplicate files
329
+ const realPath = getResourcePathKey(skill.filePath);
330
+ // Skip silently if we've already loaded this exact file (via symlink)
331
+ if (realPathSet.has(realPath)) {
332
+ continue;
333
+ }
334
+ const existing = skillMap.get(skill.name);
335
+ if (existing) {
336
+ collisionDiagnostics.push({
337
+ type: "collision",
338
+ message: `name "${skill.name}" collision`,
339
+ path: skill.filePath,
340
+ collision: {
341
+ resourceType: "skill",
342
+ name: skill.name,
343
+ winnerPath: existing.filePath,
344
+ loserPath: skill.filePath,
345
+ },
346
+ });
347
+ }
348
+ else {
349
+ skillMap.set(skill.name, skill);
350
+ realPathSet.add(realPath);
351
+ }
352
+ }
353
+ }
354
+ if (includeDefaults) {
355
+ addSkills(loadSkillsFromDirInternal(join(resolvedAgentDir, "skills"), "user", true));
356
+ addSkills(loadSkillsFromDirInternal(resolve(resolvedCwd, CONFIG_DIR_NAME, "skills"), "project", true));
357
+ }
358
+ const userSkillsDir = join(resolvedAgentDir, "skills");
359
+ const projectSkillsDir = resolve(resolvedCwd, CONFIG_DIR_NAME, "skills");
360
+ const getSource = (resolvedPath) => {
361
+ if (!includeDefaults) {
362
+ if (isPathWithin(userSkillsDir, resolvedPath))
363
+ return "user";
364
+ if (isPathWithin(projectSkillsDir, resolvedPath))
365
+ return "project";
366
+ }
367
+ return "path";
368
+ };
369
+ for (const rawPath of skillPaths) {
370
+ const resolvedPath = resolvePath(rawPath, resolvedCwd, { trim: true });
371
+ if (!existsSync(resolvedPath)) {
372
+ allDiagnostics.push({ type: "warning", message: "skill path does not exist", path: resolvedPath });
373
+ continue;
374
+ }
375
+ try {
376
+ const stats = statSync(resolvedPath);
377
+ const source = getSource(resolvedPath);
378
+ if (stats.isDirectory()) {
379
+ addSkills(loadSkillsFromDirInternal(resolvedPath, source, true));
380
+ }
381
+ else if (stats.isFile() && resolvedPath.endsWith(".md")) {
382
+ const result = loadSkillFromFile(resolvedPath, source);
383
+ if (result.skill) {
384
+ addSkills({ skills: [result.skill], diagnostics: result.diagnostics });
385
+ }
386
+ else {
387
+ allDiagnostics.push(...result.diagnostics);
388
+ }
389
+ }
390
+ else {
391
+ allDiagnostics.push({ type: "warning", message: "skill path is not a markdown file", path: resolvedPath });
392
+ }
393
+ }
394
+ catch (error) {
395
+ const message = error instanceof Error ? error.message : "failed to read skill path";
396
+ allDiagnostics.push({ type: "warning", message, path: resolvedPath });
397
+ }
398
+ }
399
+ return {
400
+ skills: Array.from(skillMap.values()),
401
+ diagnostics: [...allDiagnostics, ...collisionDiagnostics],
402
+ };
403
+ }
404
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAmB,MAAM,kBAAkB,CAAC;AAElG,+BAA+B;AAC/B,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,sCAAsC;AACtC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAEpC,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAIjE,SAAS,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,MAAc;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvE,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1D,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC5C,CAAC;AAED,SAAS,cAAc,CAAC,EAAiB,EAAE,GAAW,EAAE,OAAe;IACtE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,OAAO;iBACtB,KAAK,CAAC,OAAO,CAAC;iBACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;iBAChD,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACX,CAAC;AACF,CAAC;AAuBD;;;GAGG;AACH,SAAS,YAAY,CAAC,IAAY;IACjC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,IAAI,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,gBAAgB,eAAe,gBAAgB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,WAAoB;IAChD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,uBAAuB,sBAAsB,gBAAgB,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACjG,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AASD,SAAS,qBAAqB,CAAC,QAAgB,EAAE,OAAe,EAAE,MAAc;IAC/E,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,MAAM;YACV,OAAO,yBAAyB,CAAC,QAAQ,EAAE;gBAC1C,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,MAAM;gBACb,OAAO;aACP,CAAC,CAAC;QACJ,KAAK,SAAS;YACb,OAAO,yBAAyB,CAAC,QAAQ,EAAE;gBAC1C,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,SAAS;gBAChB,OAAO;aACP,CAAC,CAAC;QACJ,KAAK,MAAM;YACV,OAAO,yBAAyB,CAAC,QAAQ,EAAE;gBAC1C,MAAM,EAAE,OAAO;gBACf,OAAO;aACP,CAAC,CAAC;QACJ;YACC,OAAO,yBAAyB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiC;IAClE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAChC,OAAO,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,yBAAyB,CACjC,GAAW,EACX,MAAc,EACd,gBAAyB,EACzB,aAA6B,EAC7B,OAAgB;IAEhB,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAyB,EAAE,CAAC;IAE7C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,IAAI,GAAG,CAAC;IAC5B,MAAM,EAAE,GAAG,aAAa,IAAI,MAAM,EAAE,CAAC;IACrC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAE9B,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,SAAS;YACV,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAEvC,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACJ,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;gBACtC,CAAC;gBAAC,MAAM,CAAC;oBACR,SAAS;gBACV,CAAC;YACF,CAAC;YAED,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,SAAS;YACV,CAAC;YAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YACxC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAChC,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,SAAS;YACV,CAAC;YAED,mDAAmD;YACnD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACnC,SAAS;YACV,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAEvC,mEAAmE;YACnE,IAAI,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACJ,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACjC,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBAClC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACR,0BAA0B;oBAC1B,SAAS;gBACV,CAAC;YACF,CAAC;YAED,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YACzD,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,SAAS;YACV,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBACjC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC3C,SAAS;YACV,CAAC;YAED,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,SAAS;YACV,CAAC;YAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,iBAAiB,CACzB,QAAgB,EAChB,MAAc;IAEd,MAAM,WAAW,GAAyB,EAAE,CAAC;IAC7C,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC;IAE1D,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACJ,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC;QACrF,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,WAA6B,CAAC;IAClC,IAAI,CAAC;QACJ,CAAC,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAmB,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,eAAe,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC;YACtF,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IAC5C,MAAM,cAAc,GAAG,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IACpF,IAAI,CAAC,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEzC,uBAAuB;IACvB,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAChC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,mEAAmE;IACnE,MAAM,eAAe,GAAG,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,MAAM,IAAI,GAAG,eAAe,IAAI,aAAa,CAAC;IAE9C,gBAAgB;IAChB,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAChC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,mFAAmF;IACnF,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACrC,CAAC;IAED,OAAO;QACN,KAAK,EAAE;YACN,IAAI;YACJ,WAAW;YACX,QAAQ;YACR,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;YAC7D,sBAAsB,EAAE,WAAW,CAAC,0BAA0B,CAAC,KAAK,IAAI;SACxE;QACD,WAAW;KACX,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAe,EAAE,YAAY,GAAiC,MAAM;IACzG,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAEtE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG;QACb,+EAA+E;QAC/E,YAAY,KAAK,MAAM;YACtB,CAAC,CAAC,iFAAiF;YACnF,CAAC,CAAC,YAAY,KAAK,MAAM;gBACxB,CAAC,CAAC,wEAAwE;gBAC1E,CAAC,CAAC,4DAA4D;QAChE,8GAA8G;QAC9G,EAAE;QACF,oBAAoB;KACpB,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,oBAAoB,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAElC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC7B,OAAO,GAAG;SACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAaD;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,OAA0B;IACpD,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAE1D,8DAA8D;IAC9D,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,IAAI,WAAW,EAAE,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,cAAc,GAAyB,EAAE,CAAC;IAChD,MAAM,oBAAoB,GAAyB,EAAE,CAAC;IAEtD,SAAS,SAAS,CAAC,MAAwB;QAC1C,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,6CAA6C;YAC7C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpD,sEAAsE;YACtE,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,SAAS;YACV,CAAC;YAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,QAAQ,EAAE,CAAC;gBACd,oBAAoB,CAAC,IAAI,CAAC;oBACzB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,SAAS,KAAK,CAAC,IAAI,aAAa;oBACzC,IAAI,EAAE,KAAK,CAAC,QAAQ;oBACpB,SAAS,EAAE;wBACV,YAAY,EAAE,OAAO;wBACrB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,UAAU,EAAE,QAAQ,CAAC,QAAQ;wBAC7B,SAAS,EAAE,KAAK,CAAC,QAAQ;qBACzB;iBACD,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACP,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAChC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACrB,SAAS,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACrF,SAAS,CAAC,yBAAyB,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAEzE,MAAM,SAAS,GAAG,CAAC,YAAoB,EAA+B,EAAE;QACvE,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,YAAY,CAAC,aAAa,EAAE,YAAY,CAAC;gBAAE,OAAO,MAAM,CAAC;YAC7D,IAAI,YAAY,CAAC,gBAAgB,EAAE,YAAY,CAAC;gBAAE,OAAO,SAAS,CAAC;QACpE,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,2BAA2B,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YACnG,SAAS;QACV,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,SAAS,CAAC,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YAClE,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3D,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBACvD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACxE,CAAC;qBAAM,CAAC;oBACP,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC5C,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,mCAAmC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YAC5G,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC;YACrF,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACvE,CAAC;IACF,CAAC;IAED,OAAO;QACN,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrC,WAAW,EAAE,CAAC,GAAG,cAAc,EAAE,GAAG,oBAAoB,CAAC;KACzD,CAAC;AACH,CAAC","sourcesContent":["import { existsSync, readdirSync, readFileSync, statSync } from \"fs\";\nimport ignore from \"ignore\";\nimport { basename, dirname, join, relative, resolve, sep } from \"path\";\nimport { CONFIG_DIR_NAME, getAgentDir } from \"../config.ts\";\nimport { parseFrontmatter } from \"../utils/frontmatter.ts\";\nimport { isPathWithin, resolvePath } from \"../utils/paths.ts\";\nimport type { ResourceDiagnostic } from \"./diagnostics.ts\";\nimport { createSyntheticSourceInfo, getResourcePathKey, type SourceInfo } from \"./source-info.ts\";\n\n/** Max name length per spec */\nconst MAX_NAME_LENGTH = 64;\n\n/** Max description length per spec */\nconst MAX_DESCRIPTION_LENGTH = 1024;\n\nconst IGNORE_FILE_NAMES = [\".gitignore\", \".ignore\", \".fdignore\"];\n\ntype IgnoreMatcher = ReturnType<typeof ignore>;\n\nfunction toPosixPath(p: string): string {\n\treturn p.split(sep).join(\"/\");\n}\n\nfunction prefixIgnorePattern(line: string, prefix: string): string | null {\n\tconst trimmed = line.trim();\n\tif (!trimmed) return null;\n\tif (trimmed.startsWith(\"#\") && !trimmed.startsWith(\"\\\\#\")) return null;\n\n\tlet pattern = line;\n\tlet negated = false;\n\n\tif (pattern.startsWith(\"!\")) {\n\t\tnegated = true;\n\t\tpattern = pattern.slice(1);\n\t} else if (pattern.startsWith(\"\\\\!\")) {\n\t\tpattern = pattern.slice(1);\n\t}\n\n\tif (pattern.startsWith(\"/\")) {\n\t\tpattern = pattern.slice(1);\n\t}\n\n\tconst prefixed = prefix ? `${prefix}${pattern}` : pattern;\n\treturn negated ? `!${prefixed}` : prefixed;\n}\n\nfunction addIgnoreRules(ig: IgnoreMatcher, dir: string, rootDir: string): void {\n\tconst relativeDir = relative(rootDir, dir);\n\tconst prefix = relativeDir ? `${toPosixPath(relativeDir)}/` : \"\";\n\n\tfor (const filename of IGNORE_FILE_NAMES) {\n\t\tconst ignorePath = join(dir, filename);\n\t\tif (!existsSync(ignorePath)) continue;\n\t\ttry {\n\t\t\tconst content = readFileSync(ignorePath, \"utf-8\");\n\t\t\tconst patterns = content\n\t\t\t\t.split(/\\r?\\n/)\n\t\t\t\t.map((line) => prefixIgnorePattern(line, prefix))\n\t\t\t\t.filter((line): line is string => Boolean(line));\n\t\t\tif (patterns.length > 0) {\n\t\t\t\tig.add(patterns);\n\t\t\t}\n\t\t} catch {}\n\t}\n}\n\nexport interface SkillFrontmatter {\n\tname?: string;\n\tdescription?: string;\n\t\"disable-model-invocation\"?: boolean;\n\t[key: string]: unknown;\n}\n\nexport interface Skill {\n\tname: string;\n\tdescription: string;\n\tfilePath: string;\n\tbaseDir: string;\n\tsourceInfo: SourceInfo;\n\tdisableModelInvocation: boolean;\n}\n\nexport interface LoadSkillsResult {\n\tskills: Skill[];\n\tdiagnostics: ResourceDiagnostic[];\n}\n\n/**\n * Validate skill name per Agent Skills spec.\n * Returns array of validation error messages (empty if valid).\n */\nfunction validateName(name: string): string[] {\n\tconst errors: string[] = [];\n\n\tif (name.length > MAX_NAME_LENGTH) {\n\t\terrors.push(`name exceeds ${MAX_NAME_LENGTH} characters (${name.length})`);\n\t}\n\n\tif (!/^[a-z0-9-]+$/.test(name)) {\n\t\terrors.push(`name contains invalid characters (must be lowercase a-z, 0-9, hyphens only)`);\n\t}\n\n\tif (name.startsWith(\"-\") || name.endsWith(\"-\")) {\n\t\terrors.push(`name must not start or end with a hyphen`);\n\t}\n\n\tif (name.includes(\"--\")) {\n\t\terrors.push(`name must not contain consecutive hyphens`);\n\t}\n\n\treturn errors;\n}\n\n/**\n * Validate description per Agent Skills spec.\n */\nfunction validateDescription(description: unknown): string[] {\n\tconst errors: string[] = [];\n\n\tif (typeof description !== \"string\" || description.trim() === \"\") {\n\t\terrors.push(\"description is required\");\n\t} else if (description.length > MAX_DESCRIPTION_LENGTH) {\n\t\terrors.push(`description exceeds ${MAX_DESCRIPTION_LENGTH} characters (${description.length})`);\n\t}\n\n\treturn errors;\n}\n\nexport interface LoadSkillsFromDirOptions {\n\t/** Directory to scan for skills */\n\tdir: string;\n\t/** Source identifier for these skills */\n\tsource: string;\n}\n\nfunction createSkillSourceInfo(filePath: string, baseDir: string, source: string): SourceInfo {\n\tswitch (source) {\n\t\tcase \"user\":\n\t\t\treturn createSyntheticSourceInfo(filePath, {\n\t\t\t\tsource: \"local\",\n\t\t\t\tscope: \"user\",\n\t\t\t\tbaseDir,\n\t\t\t});\n\t\tcase \"project\":\n\t\t\treturn createSyntheticSourceInfo(filePath, {\n\t\t\t\tsource: \"local\",\n\t\t\t\tscope: \"project\",\n\t\t\t\tbaseDir,\n\t\t\t});\n\t\tcase \"path\":\n\t\t\treturn createSyntheticSourceInfo(filePath, {\n\t\t\t\tsource: \"local\",\n\t\t\t\tbaseDir,\n\t\t\t});\n\t\tdefault:\n\t\t\treturn createSyntheticSourceInfo(filePath, { source, baseDir });\n\t}\n}\n\n/**\n * Load skills from a directory.\n *\n * Discovery rules:\n * - if a directory contains SKILL.md, treat it as a skill root and do not recurse further\n * - otherwise, load direct .md children in the root\n * - recurse into subdirectories to find SKILL.md\n */\nexport function loadSkillsFromDir(options: LoadSkillsFromDirOptions): LoadSkillsResult {\n\tconst { dir, source } = options;\n\treturn loadSkillsFromDirInternal(dir, source, true);\n}\n\nfunction loadSkillsFromDirInternal(\n\tdir: string,\n\tsource: string,\n\tincludeRootFiles: boolean,\n\tignoreMatcher?: IgnoreMatcher,\n\trootDir?: string,\n): LoadSkillsResult {\n\tconst skills: Skill[] = [];\n\tconst diagnostics: ResourceDiagnostic[] = [];\n\n\tif (!existsSync(dir)) {\n\t\treturn { skills, diagnostics };\n\t}\n\n\tconst root = rootDir ?? dir;\n\tconst ig = ignoreMatcher ?? ignore();\n\taddIgnoreRules(ig, dir, root);\n\n\ttry {\n\t\tconst entries = readdirSync(dir, { withFileTypes: true });\n\n\t\tfor (const entry of entries) {\n\t\t\tif (entry.name !== \"SKILL.md\") {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst fullPath = join(dir, entry.name);\n\n\t\t\tlet isFile = entry.isFile();\n\t\t\tif (entry.isSymbolicLink()) {\n\t\t\t\ttry {\n\t\t\t\t\tisFile = statSync(fullPath).isFile();\n\t\t\t\t} catch {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst relPath = toPosixPath(relative(root, fullPath));\n\t\t\tif (!isFile || ig.ignores(relPath)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst result = loadSkillFromFile(fullPath, source);\n\t\t\tif (result.skill) {\n\t\t\t\tskills.push(result.skill);\n\t\t\t}\n\t\t\tdiagnostics.push(...result.diagnostics);\n\t\t\treturn { skills, diagnostics };\n\t\t}\n\n\t\tfor (const entry of entries) {\n\t\t\tif (entry.name.startsWith(\".\")) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Skip node_modules to avoid scanning dependencies\n\t\t\tif (entry.name === \"node_modules\") {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst fullPath = join(dir, entry.name);\n\n\t\t\t// For symlinks, check if they point to a directory and follow them\n\t\t\tlet isDirectory = entry.isDirectory();\n\t\t\tlet isFile = entry.isFile();\n\t\t\tif (entry.isSymbolicLink()) {\n\t\t\t\ttry {\n\t\t\t\t\tconst stats = statSync(fullPath);\n\t\t\t\t\tisDirectory = stats.isDirectory();\n\t\t\t\t\tisFile = stats.isFile();\n\t\t\t\t} catch {\n\t\t\t\t\t// Broken symlink, skip it\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst relPath = toPosixPath(relative(root, fullPath));\n\t\t\tconst ignorePath = isDirectory ? `${relPath}/` : relPath;\n\t\t\tif (ig.ignores(ignorePath)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (isDirectory) {\n\t\t\t\tconst subResult = loadSkillsFromDirInternal(fullPath, source, false, ig, root);\n\t\t\t\tskills.push(...subResult.skills);\n\t\t\t\tdiagnostics.push(...subResult.diagnostics);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!isFile || !includeRootFiles || !entry.name.endsWith(\".md\")) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst result = loadSkillFromFile(fullPath, source);\n\t\t\tif (result.skill) {\n\t\t\t\tskills.push(result.skill);\n\t\t\t}\n\t\t\tdiagnostics.push(...result.diagnostics);\n\t\t}\n\t} catch {}\n\n\treturn { skills, diagnostics };\n}\n\nfunction loadSkillFromFile(\n\tfilePath: string,\n\tsource: string,\n): { skill: Skill | null; diagnostics: ResourceDiagnostic[] } {\n\tconst diagnostics: ResourceDiagnostic[] = [];\n\tconst isDeclaredSkill = basename(filePath) === \"SKILL.md\";\n\n\tlet rawContent: string;\n\ttry {\n\t\trawContent = readFileSync(filePath, \"utf-8\");\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : \"failed to read skill file\";\n\t\tdiagnostics.push({ type: \"warning\", message, path: filePath });\n\t\treturn { skill: null, diagnostics };\n\t}\n\n\tlet frontmatter: SkillFrontmatter;\n\ttry {\n\t\t({ frontmatter } = parseFrontmatter<SkillFrontmatter>(rawContent));\n\t} catch (error) {\n\t\tif (isDeclaredSkill) {\n\t\t\tconst message = error instanceof Error ? error.message : \"failed to parse skill file\";\n\t\t\tdiagnostics.push({ type: \"warning\", message, path: filePath });\n\t\t}\n\t\treturn { skill: null, diagnostics };\n\t}\n\n\tconst description = frontmatter.description;\n\tconst hasDescription = typeof description === \"string\" && description.trim() !== \"\";\n\tif (!isDeclaredSkill && !hasDescription) {\n\t\treturn { skill: null, diagnostics };\n\t}\n\n\tconst skillDir = dirname(filePath);\n\tconst parentDirName = basename(skillDir);\n\n\t// Validate description\n\tconst descErrors = validateDescription(description);\n\tfor (const error of descErrors) {\n\t\tdiagnostics.push({ type: \"warning\", message: error, path: filePath });\n\t}\n\n\t// Use name from frontmatter, or fall back to parent directory name\n\tconst frontmatterName = typeof frontmatter.name === \"string\" ? frontmatter.name : undefined;\n\tconst name = frontmatterName || parentDirName;\n\n\t// Validate name\n\tconst nameErrors = validateName(name);\n\tfor (const error of nameErrors) {\n\t\tdiagnostics.push({ type: \"warning\", message: error, path: filePath });\n\t}\n\n\t// Still load the skill even with warnings, unless description is missing or empty.\n\tif (!hasDescription) {\n\t\treturn { skill: null, diagnostics };\n\t}\n\n\treturn {\n\t\tskill: {\n\t\t\tname,\n\t\t\tdescription,\n\t\t\tfilePath,\n\t\t\tbaseDir: skillDir,\n\t\t\tsourceInfo: createSkillSourceInfo(filePath, skillDir, source),\n\t\t\tdisableModelInvocation: frontmatter[\"disable-model-invocation\"] === true,\n\t\t},\n\t\tdiagnostics,\n\t};\n}\n\n/**\n * Format skills for inclusion in a system prompt.\n * Uses XML format per Agent Skills standard.\n * See: https://agentskills.io/integrate-skills\n *\n * Skills with disableModelInvocation=true are excluded from the prompt\n * (they can only be invoked explicitly via /skill:name commands).\n *\n * `fileReadTool` names the tool that loads skill files; `indirect` names none, for a reader that\n * is reachable only through another tool.\n */\nexport function formatSkillsForPrompt(skills: Skill[], fileReadTool: \"read\" | \"bash\" | \"indirect\" = \"read\"): string {\n\tconst visibleSkills = skills.filter((s) => !s.disableModelInvocation);\n\n\tif (visibleSkills.length === 0) {\n\t\treturn \"\";\n\t}\n\n\tconst lines = [\n\t\t\"\\n\\nThe following skills provide specialized instructions for specific tasks.\",\n\t\tfileReadTool === \"read\"\n\t\t\t? \"Use the read tool to load a skill's file when the task matches its description.\"\n\t\t\t: fileReadTool === \"bash\"\n\t\t\t\t? \"Use bash to load a skill's file when the task matches its description.\"\n\t\t\t\t: \"Load a skill's file when the task matches its description.\",\n\t\t\"Resolve relative paths against the skill's directory (parent of SKILL.md). Use absolute paths in tool calls.\",\n\t\t\"\",\n\t\t\"<available_skills>\",\n\t];\n\n\tfor (const skill of visibleSkills) {\n\t\tlines.push(\" <skill>\");\n\t\tlines.push(` <name>${escapeXml(skill.name)}</name>`);\n\t\tlines.push(` <description>${escapeXml(skill.description)}</description>`);\n\t\tlines.push(` <location>${escapeXml(skill.filePath)}</location>`);\n\t\tlines.push(\" </skill>\");\n\t}\n\n\tlines.push(\"</available_skills>\");\n\n\treturn lines.join(\"\\n\");\n}\n\nfunction escapeXml(str: string): string {\n\treturn str\n\t\t.replace(/&/g, \"&amp;\")\n\t\t.replace(/</g, \"&lt;\")\n\t\t.replace(/>/g, \"&gt;\")\n\t\t.replace(/\"/g, \"&quot;\")\n\t\t.replace(/'/g, \"&apos;\");\n}\n\nexport interface LoadSkillsOptions {\n\t/** Working directory for project-local skills. */\n\tcwd: string;\n\t/** Agent config directory for global skills. */\n\tagentDir: string;\n\t/** Explicit skill paths (files or directories) */\n\tskillPaths: string[];\n\t/** Include default skills directories. */\n\tincludeDefaults: boolean;\n}\n\n/**\n * Load skills from all configured locations.\n * Returns skills and any validation diagnostics.\n */\nexport function loadSkills(options: LoadSkillsOptions): LoadSkillsResult {\n\tconst { agentDir, skillPaths, includeDefaults } = options;\n\n\t// Resolve agentDir - if not provided, use default from config\n\tconst resolvedCwd = resolvePath(options.cwd);\n\tconst resolvedAgentDir = resolvePath(agentDir ?? getAgentDir());\n\n\tconst skillMap = new Map<string, Skill>();\n\tconst realPathSet = new Set<string>();\n\tconst allDiagnostics: ResourceDiagnostic[] = [];\n\tconst collisionDiagnostics: ResourceDiagnostic[] = [];\n\n\tfunction addSkills(result: LoadSkillsResult) {\n\t\tallDiagnostics.push(...result.diagnostics);\n\t\tfor (const skill of result.skills) {\n\t\t\t// Resolve symlinks to detect duplicate files\n\t\t\tconst realPath = getResourcePathKey(skill.filePath);\n\n\t\t\t// Skip silently if we've already loaded this exact file (via symlink)\n\t\t\tif (realPathSet.has(realPath)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst existing = skillMap.get(skill.name);\n\t\t\tif (existing) {\n\t\t\t\tcollisionDiagnostics.push({\n\t\t\t\t\ttype: \"collision\",\n\t\t\t\t\tmessage: `name \"${skill.name}\" collision`,\n\t\t\t\t\tpath: skill.filePath,\n\t\t\t\t\tcollision: {\n\t\t\t\t\t\tresourceType: \"skill\",\n\t\t\t\t\t\tname: skill.name,\n\t\t\t\t\t\twinnerPath: existing.filePath,\n\t\t\t\t\t\tloserPath: skill.filePath,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tskillMap.set(skill.name, skill);\n\t\t\t\trealPathSet.add(realPath);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (includeDefaults) {\n\t\taddSkills(loadSkillsFromDirInternal(join(resolvedAgentDir, \"skills\"), \"user\", true));\n\t\taddSkills(loadSkillsFromDirInternal(resolve(resolvedCwd, CONFIG_DIR_NAME, \"skills\"), \"project\", true));\n\t}\n\n\tconst userSkillsDir = join(resolvedAgentDir, \"skills\");\n\tconst projectSkillsDir = resolve(resolvedCwd, CONFIG_DIR_NAME, \"skills\");\n\n\tconst getSource = (resolvedPath: string): \"user\" | \"project\" | \"path\" => {\n\t\tif (!includeDefaults) {\n\t\t\tif (isPathWithin(userSkillsDir, resolvedPath)) return \"user\";\n\t\t\tif (isPathWithin(projectSkillsDir, resolvedPath)) return \"project\";\n\t\t}\n\t\treturn \"path\";\n\t};\n\n\tfor (const rawPath of skillPaths) {\n\t\tconst resolvedPath = resolvePath(rawPath, resolvedCwd, { trim: true });\n\t\tif (!existsSync(resolvedPath)) {\n\t\t\tallDiagnostics.push({ type: \"warning\", message: \"skill path does not exist\", path: resolvedPath });\n\t\t\tcontinue;\n\t\t}\n\n\t\ttry {\n\t\t\tconst stats = statSync(resolvedPath);\n\t\t\tconst source = getSource(resolvedPath);\n\t\t\tif (stats.isDirectory()) {\n\t\t\t\taddSkills(loadSkillsFromDirInternal(resolvedPath, source, true));\n\t\t\t} else if (stats.isFile() && resolvedPath.endsWith(\".md\")) {\n\t\t\t\tconst result = loadSkillFromFile(resolvedPath, source);\n\t\t\t\tif (result.skill) {\n\t\t\t\t\taddSkills({ skills: [result.skill], diagnostics: result.diagnostics });\n\t\t\t\t} else {\n\t\t\t\t\tallDiagnostics.push(...result.diagnostics);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tallDiagnostics.push({ type: \"warning\", message: \"skill path is not a markdown file\", path: resolvedPath });\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : \"failed to read skill path\";\n\t\t\tallDiagnostics.push({ type: \"warning\", message, path: resolvedPath });\n\t\t}\n\t}\n\n\treturn {\n\t\tskills: Array.from(skillMap.values()),\n\t\tdiagnostics: [...allDiagnostics, ...collisionDiagnostics],\n\t};\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import type { SourceInfo } from "./source-info.ts";
2
+ export type SlashCommandSource = "extension" | "prompt" | "skill";
3
+ export interface SlashCommandInfo {
4
+ name: string;
5
+ description?: string;
6
+ source: SlashCommandSource;
7
+ sourceInfo: SourceInfo;
8
+ }
9
+ export interface BuiltinSlashCommand {
10
+ name: string;
11
+ description: string;
12
+ argumentHint?: string;
13
+ }
14
+ export declare const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand>;
15
+ //# sourceMappingURL=slash-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,mBAAmB,CA6BrE,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { APP_NAME } from "../config.js";
2
+ export const BUILTIN_SLASH_COMMANDS = [
3
+ { name: "settings", description: "Open settings menu" },
4
+ { name: "model", description: "Select model (opens selector UI)", argumentHint: "<provider/model>" },
5
+ { name: "tree", description: "Navigate session tree (switch branches)" },
6
+ { name: "thinking", description: "Set thinking level", argumentHint: "<level>" },
7
+ { name: "scoped-models", description: "Enable/disable models for Ctrl+P cycling" },
8
+ { name: "export", description: "Export session (HTML default, or specify path: .html/.jsonl)" },
9
+ { name: "import", description: "Import a JSONL session, preserving its ID and working directory" },
10
+ { name: "handoff", description: "Export session as JSONL for another machine", argumentHint: "[path]" },
11
+ { name: "ghost", description: "Replay last prompt on the free model for comparison" },
12
+ { name: "share", description: "Share session via a Radius artifact or a GitHub gist" },
13
+ { name: "bug", description: "Report a bug to the MarsAI team", argumentHint: "<description>" },
14
+ { name: "copy", description: "Copy last agent message to clipboard" },
15
+ { name: "name", description: "Set session display name" },
16
+ { name: "session", description: "Show session info and stats" },
17
+ { name: "changelog", description: "Show changelog entries" },
18
+ { name: "update", description: "Check for a new version and self-update" },
19
+ { name: "hotkeys", description: "Show all keyboard shortcuts" },
20
+ { name: "fork", description: "Create a new fork from a previous user message" },
21
+ { name: "clone", description: "Duplicate the current session at the current position" },
22
+ { name: "trust", description: "Save project trust decision for future sessions" },
23
+ { name: "budget", description: "Switch to a free-tier model (/budget off restores)", argumentHint: "[off]" },
24
+ { name: "login", description: "Configure provider authentication", argumentHint: "<provider>" },
25
+ { name: "logout", description: "Remove provider authentication" },
26
+ { name: "new", description: "Start a new session" },
27
+ { name: "compact", description: "Manually compact the session context" },
28
+ { name: "resume", description: "Resume another session" },
29
+ { name: "reload", description: "Reload keybindings, extensions, skills, prompts, themes, and context files" },
30
+ { name: "quit", description: `Quit ${APP_NAME}` },
31
+ ];
32
+ //# sourceMappingURL=slash-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/core/slash-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAkBxC,MAAM,CAAC,MAAM,sBAAsB,GAAuC;IACzE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE;IACvD,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,kCAAkC,EAAE,YAAY,EAAE,kBAAkB,EAAE;IACpG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,yCAAyC,EAAE;IACxE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,SAAS,EAAE;IAChF,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,0CAA0C,EAAE;IAClF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8DAA8D,EAAE;IAC/F,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iEAAiE,EAAE;IAClG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6CAA6C,EAAE,YAAY,EAAE,QAAQ,EAAE;IACvG,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,qDAAqD,EAAE;IACrF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,sDAAsD,EAAE;IACtF,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,iCAAiC,EAAE,YAAY,EAAE,eAAe,EAAE;IAC9F,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,sCAAsC,EAAE;IACrE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B,EAAE;IACzD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE;IAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB,EAAE;IAC5D,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;IAC1E,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE;IAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,gDAAgD,EAAE;IAC/E,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,uDAAuD,EAAE;IACvF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,iDAAiD,EAAE;IACjF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oDAAoD,EAAE,YAAY,EAAE,OAAO,EAAE;IAC5G,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,mCAAmC,EAAE,YAAY,EAAE,YAAY,EAAE;IAC/F,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;IACjE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE;IACnD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sCAAsC,EAAE;IACxE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;IACzD,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4EAA4E,EAAE;IAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,QAAQ,EAAE,EAAE;CACjD,CAAC","sourcesContent":["import { APP_NAME } from \"../config.ts\";\nimport type { SourceInfo } from \"./source-info.ts\";\n\nexport type SlashCommandSource = \"extension\" | \"prompt\" | \"skill\";\n\nexport interface SlashCommandInfo {\n\tname: string;\n\tdescription?: string;\n\tsource: SlashCommandSource;\n\tsourceInfo: SourceInfo;\n}\n\nexport interface BuiltinSlashCommand {\n\tname: string;\n\tdescription: string;\n\targumentHint?: string;\n}\n\nexport const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [\n\t{ name: \"settings\", description: \"Open settings menu\" },\n\t{ name: \"model\", description: \"Select model (opens selector UI)\", argumentHint: \"<provider/model>\" },\n\t{ name: \"tree\", description: \"Navigate session tree (switch branches)\" },\n\t{ name: \"thinking\", description: \"Set thinking level\", argumentHint: \"<level>\" },\n\t{ name: \"scoped-models\", description: \"Enable/disable models for Ctrl+P cycling\" },\n\t{ name: \"export\", description: \"Export session (HTML default, or specify path: .html/.jsonl)\" },\n\t{ name: \"import\", description: \"Import a JSONL session, preserving its ID and working directory\" },\n\t{ name: \"handoff\", description: \"Export session as JSONL for another machine\", argumentHint: \"[path]\" },\n\t{ name: \"ghost\", description: \"Replay last prompt on the free model for comparison\" },\n\t{ name: \"share\", description: \"Share session via a Radius artifact or a GitHub gist\" },\n\t{ name: \"bug\", description: \"Report a bug to the MarsAI team\", argumentHint: \"<description>\" },\n\t{ name: \"copy\", description: \"Copy last agent message to clipboard\" },\n\t{ name: \"name\", description: \"Set session display name\" },\n\t{ name: \"session\", description: \"Show session info and stats\" },\n\t{ name: \"changelog\", description: \"Show changelog entries\" },\n\t{ name: \"update\", description: \"Check for a new version and self-update\" },\n\t{ name: \"hotkeys\", description: \"Show all keyboard shortcuts\" },\n\t{ name: \"fork\", description: \"Create a new fork from a previous user message\" },\n\t{ name: \"clone\", description: \"Duplicate the current session at the current position\" },\n\t{ name: \"trust\", description: \"Save project trust decision for future sessions\" },\n\t{ name: \"budget\", description: \"Switch to a free-tier model (/budget off restores)\", argumentHint: \"[off]\" },\n\t{ name: \"login\", description: \"Configure provider authentication\", argumentHint: \"<provider>\" },\n\t{ name: \"logout\", description: \"Remove provider authentication\" },\n\t{ name: \"new\", description: \"Start a new session\" },\n\t{ name: \"compact\", description: \"Manually compact the session context\" },\n\t{ name: \"resume\", description: \"Resume another session\" },\n\t{ name: \"reload\", description: \"Reload keybindings, extensions, skills, prompts, themes, and context files\" },\n\t{ name: \"quit\", description: `Quit ${APP_NAME}` },\n];\n"]}
@@ -0,0 +1,35 @@
1
+ import type { PathMetadata } from "./package-manager.ts";
2
+ export type SourceScope = "user" | "project" | "temporary";
3
+ export type SourceOrigin = "package" | "top-level";
4
+ export interface SourceInfo {
5
+ path: string;
6
+ source: string;
7
+ scope: SourceScope;
8
+ origin: SourceOrigin;
9
+ baseDir?: string;
10
+ changelogPath?: string;
11
+ }
12
+ export interface SourcePackageIdentity {
13
+ source: string;
14
+ scope: SourceScope;
15
+ }
16
+ export declare function getSourcePackageKey(identity: SourcePackageIdentity): string;
17
+ /** Prefix of built-in tool and extension paths, such as `builtin:read` or `builtin:mcp`. */
18
+ export declare const BUILTIN_PATH_PREFIX = "builtin:";
19
+ /**
20
+ * Source of a path that names no file: `builtin` for `builtin:<name>`, or the prefix of an
21
+ * angle-bracket path such as `inline` for `<inline:name>`. Undefined for file paths.
22
+ */
23
+ export declare function getSyntheticPathSource(path: string): string | undefined;
24
+ export declare function isSyntheticPath(path: string): boolean;
25
+ /** Key for deduplicating resource paths: synthetic paths as-is, file paths via realpath and platform casing. */
26
+ export declare function getResourcePathKey(path: string): string;
27
+ export declare function createSourceInfo(path: string, metadata: PathMetadata): SourceInfo;
28
+ export declare function createSyntheticSourceInfo(path: string, options: {
29
+ source: string;
30
+ scope?: SourceScope;
31
+ origin?: SourceOrigin;
32
+ baseDir?: string;
33
+ changelogPath?: string;
34
+ }): SourceInfo;
35
+ //# sourceMappingURL=source-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-info.d.ts","sourceRoot":"","sources":["../../src/core/source-info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;AAC3D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnD,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;CACnB;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,CAK3E;AAED,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIvE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,gHAAgH;AAChH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU,CASjF;AAED,wBAAgB,yBAAyB,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACR,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,GACC,UAAU,CASZ"}
@@ -0,0 +1,48 @@
1
+ import { canonicalizePath, getPathComparisonKey } from "../utils/paths.js";
2
+ export function getSourcePackageKey(identity) {
3
+ return JSON.stringify({
4
+ source: identity.source,
5
+ scope: identity.scope,
6
+ });
7
+ }
8
+ /** Prefix of built-in tool and extension paths, such as `builtin:read` or `builtin:mcp`. */
9
+ export const BUILTIN_PATH_PREFIX = "builtin:";
10
+ /**
11
+ * Source of a path that names no file: `builtin` for `builtin:<name>`, or the prefix of an
12
+ * angle-bracket path such as `inline` for `<inline:name>`. Undefined for file paths.
13
+ */
14
+ export function getSyntheticPathSource(path) {
15
+ if (path.startsWith(BUILTIN_PATH_PREFIX))
16
+ return "builtin";
17
+ if (path.startsWith("<") && path.endsWith(">"))
18
+ return path.slice(1, -1).split(":")[0] || "temporary";
19
+ return undefined;
20
+ }
21
+ export function isSyntheticPath(path) {
22
+ return path.startsWith(BUILTIN_PATH_PREFIX) || path.startsWith("<");
23
+ }
24
+ /** Key for deduplicating resource paths: synthetic paths as-is, file paths via realpath and platform casing. */
25
+ export function getResourcePathKey(path) {
26
+ return isSyntheticPath(path) ? path : getPathComparisonKey(canonicalizePath(path));
27
+ }
28
+ export function createSourceInfo(path, metadata) {
29
+ return {
30
+ path,
31
+ source: metadata.source,
32
+ scope: metadata.scope,
33
+ origin: metadata.origin,
34
+ baseDir: metadata.baseDir,
35
+ ...(metadata.changelogPath ? { changelogPath: metadata.changelogPath } : {}),
36
+ };
37
+ }
38
+ export function createSyntheticSourceInfo(path, options) {
39
+ return {
40
+ path,
41
+ source: options.source,
42
+ scope: options.scope ?? "temporary",
43
+ origin: options.origin ?? "top-level",
44
+ baseDir: options.baseDir,
45
+ ...(options.changelogPath ? { changelogPath: options.changelogPath } : {}),
46
+ };
47
+ }
48
+ //# sourceMappingURL=source-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-info.js","sourceRoot":"","sources":["../../src/core/source-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAoB3E,MAAM,UAAU,mBAAmB,CAAC,QAA+B;IAClE,OAAO,IAAI,CAAC,SAAS,CAAC;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;KACrB,CAAC,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IAClD,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;IACtG,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC;AAED,gHAAgH;AAChH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC9C,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAsB;IACpE,OAAO;QACN,IAAI;QACJ,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CACxC,IAAY,EACZ,OAMC;IAED,OAAO;QACN,IAAI;QACJ,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,WAAW;QACnC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,WAAW;QACrC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;AACH,CAAC","sourcesContent":["import { canonicalizePath, getPathComparisonKey } from \"../utils/paths.ts\";\nimport type { PathMetadata } from \"./package-manager.ts\";\n\nexport type SourceScope = \"user\" | \"project\" | \"temporary\";\nexport type SourceOrigin = \"package\" | \"top-level\";\n\nexport interface SourceInfo {\n\tpath: string;\n\tsource: string;\n\tscope: SourceScope;\n\torigin: SourceOrigin;\n\tbaseDir?: string;\n\tchangelogPath?: string;\n}\n\nexport interface SourcePackageIdentity {\n\tsource: string;\n\tscope: SourceScope;\n}\n\nexport function getSourcePackageKey(identity: SourcePackageIdentity): string {\n\treturn JSON.stringify({\n\t\tsource: identity.source,\n\t\tscope: identity.scope,\n\t});\n}\n\n/** Prefix of built-in tool and extension paths, such as `builtin:read` or `builtin:mcp`. */\nexport const BUILTIN_PATH_PREFIX = \"builtin:\";\n\n/**\n * Source of a path that names no file: `builtin` for `builtin:<name>`, or the prefix of an\n * angle-bracket path such as `inline` for `<inline:name>`. Undefined for file paths.\n */\nexport function getSyntheticPathSource(path: string): string | undefined {\n\tif (path.startsWith(BUILTIN_PATH_PREFIX)) return \"builtin\";\n\tif (path.startsWith(\"<\") && path.endsWith(\">\")) return path.slice(1, -1).split(\":\")[0] || \"temporary\";\n\treturn undefined;\n}\n\nexport function isSyntheticPath(path: string): boolean {\n\treturn path.startsWith(BUILTIN_PATH_PREFIX) || path.startsWith(\"<\");\n}\n\n/** Key for deduplicating resource paths: synthetic paths as-is, file paths via realpath and platform casing. */\nexport function getResourcePathKey(path: string): string {\n\treturn isSyntheticPath(path) ? path : getPathComparisonKey(canonicalizePath(path));\n}\n\nexport function createSourceInfo(path: string, metadata: PathMetadata): SourceInfo {\n\treturn {\n\t\tpath,\n\t\tsource: metadata.source,\n\t\tscope: metadata.scope,\n\t\torigin: metadata.origin,\n\t\tbaseDir: metadata.baseDir,\n\t\t...(metadata.changelogPath ? { changelogPath: metadata.changelogPath } : {}),\n\t};\n}\n\nexport function createSyntheticSourceInfo(\n\tpath: string,\n\toptions: {\n\t\tsource: string;\n\t\tscope?: SourceScope;\n\t\torigin?: SourceOrigin;\n\t\tbaseDir?: string;\n\t\tchangelogPath?: string;\n\t},\n): SourceInfo {\n\treturn {\n\t\tpath,\n\t\tsource: options.source,\n\t\tscope: options.scope ?? \"temporary\",\n\t\torigin: options.origin ?? \"top-level\",\n\t\tbaseDir: options.baseDir,\n\t\t...(options.changelogPath ? { changelogPath: options.changelogPath } : {}),\n\t};\n}\n"]}