@aiderdesk/aiderdesk 0.61.0 → 0.62.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/out/renderer/assets/{_baseUniq-BPF2Herp.js → _baseUniq-B7TxjYgy.js} +1 -1
  2. package/out/renderer/assets/abap-B7h4dtBh.js +7 -0
  3. package/out/renderer/assets/actionscript-3-DtnkuHN2.js +7 -0
  4. package/out/renderer/assets/ada-BZS802Se.js +7 -0
  5. package/out/renderer/assets/andromeeda-C847lm7Z.js +4 -0
  6. package/out/renderer/assets/angular-html-BYG42TJr.js +42 -0
  7. package/out/renderer/assets/angular-ts-BftcHvZ6.js +29 -0
  8. package/out/renderer/assets/apache-D4roVlsU.js +7 -0
  9. package/out/renderer/assets/apex-B-mI3Md2.js +7 -0
  10. package/out/renderer/assets/apl-CGZawg-A.js +18 -0
  11. package/out/renderer/assets/applescript-C43Knf0G.js +7 -0
  12. package/out/renderer/assets/ara-DRBH84ND.js +7 -0
  13. package/out/renderer/assets/{arc-DfPLteHF.js → arc-TuVjX2tH.js} +1 -1
  14. package/out/renderer/assets/{architectureDiagram-Q4EWVU46-Bw0u-sSH.js → architectureDiagram-Q4EWVU46-CnAcyRvO.js} +5 -5
  15. package/out/renderer/assets/asciidoc-CT8_dLUs.js +7 -0
  16. package/out/renderer/assets/asm-3tg4MVib.js +7 -0
  17. package/out/renderer/assets/astro-BxdWOZvM.js +19 -0
  18. package/out/renderer/assets/aurora-x-wJ4-eM2h.js +4 -0
  19. package/out/renderer/assets/awk-ChreaG-G.js +7 -0
  20. package/out/renderer/assets/ayu-dark-rtpbXCNg.js +4 -0
  21. package/out/renderer/assets/ayu-light-BCZDSyV8.js +4 -0
  22. package/out/renderer/assets/ayu-mirage-BVoH71sA.js +4 -0
  23. package/out/renderer/assets/ballerina-B0yt0TYU.js +7 -0
  24. package/out/renderer/assets/bat-BzNgQIA7.js +7 -0
  25. package/out/renderer/assets/beancount-aZWrE5WV.js +7 -0
  26. package/out/renderer/assets/berry--Qc8OslH.js +7 -0
  27. package/out/renderer/assets/bibtex-BLeFwAes.js +7 -0
  28. package/out/renderer/assets/bicep-DbBeGdXQ.js +7 -0
  29. package/out/renderer/assets/bird2-aXhIUHPg.js +7 -0
  30. package/out/renderer/assets/blade-BbH7YAUi.js +22 -0
  31. package/out/renderer/assets/{blockDiagram-DXYQGD6D-CkfB9if8.js → blockDiagram-DXYQGD6D-DBoJhGAM.js} +6 -6
  32. package/out/renderer/assets/bsl-DwPS0BId.js +9 -0
  33. package/out/renderer/assets/c-C4VtT7JA.js +7 -0
  34. package/out/renderer/assets/c3-CWHczQMq.js +7 -0
  35. package/out/renderer/assets/{c4Diagram-AHTNJAMY-DweK9Liz.js → c4Diagram-AHTNJAMY-BzW0gKwX.js} +2 -2
  36. package/out/renderer/assets/cadence-S_NtR5Dy.js +7 -0
  37. package/out/renderer/assets/cairo-BtYx2aM5.js +9 -0
  38. package/out/renderer/assets/catppuccin-frappe-C21OPQfC.js +4 -0
  39. package/out/renderer/assets/catppuccin-latte-0ZtXlsrX.js +4 -0
  40. package/out/renderer/assets/catppuccin-macchiato-BD_FR4sl.js +4 -0
  41. package/out/renderer/assets/catppuccin-mocha-C653csR5.js +4 -0
  42. package/out/renderer/assets/{channel-C5wwrRof.js → channel-CqR4FAVX.js} +1 -1
  43. package/out/renderer/assets/{chunk-4BX2VUAB-0KM14cFd.js → chunk-4BX2VUAB-DQjg_Naa.js} +1 -1
  44. package/out/renderer/assets/{chunk-4TB4RGXK-CmVtCVL4.js → chunk-4TB4RGXK-DkcI1yaW.js} +5 -5
  45. package/out/renderer/assets/{chunk-55IACEB6-BzVYZvBM.js → chunk-55IACEB6-pFPEMTmI.js} +1 -1
  46. package/out/renderer/assets/{chunk-EDXVE4YY-BryQl5Kv.js → chunk-EDXVE4YY-DRk838hn.js} +1 -1
  47. package/out/renderer/assets/{chunk-FMBD7UC4-CRiLea_e.js → chunk-FMBD7UC4-BagQdd5u.js} +1 -1
  48. package/out/renderer/assets/{chunk-OYMX7WX6-Cpi4N3NO.js → chunk-OYMX7WX6-DOGJ-XHp.js} +3 -3
  49. package/out/renderer/assets/{chunk-QZHKN3VN-BT8kABWC.js → chunk-QZHKN3VN-CdzjbbBk.js} +1 -1
  50. package/out/renderer/assets/{chunk-YZCP3GAM-OLZV_Sef.js → chunk-YZCP3GAM-BKZRTlUj.js} +1 -1
  51. package/out/renderer/assets/clarity-D2ViJC0i.js +7 -0
  52. package/out/renderer/assets/{classDiagram-6PBFFD2Q-VdE6G90i.js → classDiagram-6PBFFD2Q-CjVhmlxb.js} +6 -6
  53. package/out/renderer/assets/{classDiagram-v2-HSJHXN6E-VdE6G90i.js → classDiagram-v2-HSJHXN6E-CjVhmlxb.js} +6 -6
  54. package/out/renderer/assets/clojure-C_G4_w5x.js +7 -0
  55. package/out/renderer/assets/{clone-DwQZ86nS.js → clone-B-kqpcr4.js} +1 -1
  56. package/out/renderer/assets/cmake-CDfQILeU.js +7 -0
  57. package/out/renderer/assets/cobol-B8r1pfPr.js +13 -0
  58. package/out/renderer/assets/codeowners-awy7PWCD.js +7 -0
  59. package/out/renderer/assets/codeql-lfK8ppuq.js +7 -0
  60. package/out/renderer/assets/coffee-XLjtuEYs.js +9 -0
  61. package/out/renderer/assets/common-lisp-DAq1kaby.js +7 -0
  62. package/out/renderer/assets/coq-l_JvzFJl.js +7 -0
  63. package/out/renderer/assets/{cose-bilkent-S5V4N54A-BEcAKM9H.js → cose-bilkent-S5V4N54A-CZLRecVB.js} +1 -1
  64. package/out/renderer/assets/cpp-zh2ePAE_.js +22 -0
  65. package/out/renderer/assets/crystal-BqBRy7Ec.js +19 -0
  66. package/out/renderer/assets/csharp-DxX_6tHh.js +7 -0
  67. package/out/renderer/assets/css-BtVcDqlU.js +7 -0
  68. package/out/renderer/assets/csv-Ba84L8e5.js +7 -0
  69. package/out/renderer/assets/cue-BFSVLV6N.js +7 -0
  70. package/out/renderer/assets/cypher-DbUmWIxC.js +7 -0
  71. package/out/renderer/assets/d-9qSZPw74.js +7 -0
  72. package/out/renderer/assets/{dagre-KV5264BT-BcFQYL1M.js → dagre-KV5264BT-BUAzC7Um.js} +6 -6
  73. package/out/renderer/assets/dark-plus-DmZ1Dzd4.js +4 -0
  74. package/out/renderer/assets/dart-CCSsOg9l.js +7 -0
  75. package/out/renderer/assets/dax-CvsmLV-B.js +7 -0
  76. package/out/renderer/assets/desktop-_xiGZ9X1.js +7 -0
  77. package/out/renderer/assets/{diagram-5BDNPKRD-GrUNdC1u.js → diagram-5BDNPKRD-DNQEDszc.js} +6 -6
  78. package/out/renderer/assets/{diagram-G4DWMVQ6-CG4S-ov5.js → diagram-G4DWMVQ6-D9YY6W2O.js} +6 -6
  79. package/out/renderer/assets/{diagram-MMDJMWI5-9ogY3MRC.js → diagram-MMDJMWI5-B5H49OVD.js} +5 -5
  80. package/out/renderer/assets/{diagram-TYMM5635-Ck7mI1bS.js → diagram-TYMM5635-Bw7r467p.js} +5 -5
  81. package/out/renderer/assets/diff-BEdzuHlE.js +7 -0
  82. package/out/renderer/assets/docker-CUaLOm2I.js +7 -0
  83. package/out/renderer/assets/dotenv-Bb4iNxXK.js +7 -0
  84. package/out/renderer/assets/dracula-B8-AVrwI.js +4 -0
  85. package/out/renderer/assets/dracula-soft-BHeefow7.js +4 -0
  86. package/out/renderer/assets/dream-maker-CNLQpoF-.js +7 -0
  87. package/out/renderer/assets/edge-CnHxQ_FD.js +15 -0
  88. package/out/renderer/assets/elixir-B_LIBv5J.js +11 -0
  89. package/out/renderer/assets/elm-BlO7pcFp.js +10 -0
  90. package/out/renderer/assets/emacs-lisp-4gdXY_g3.js +7 -0
  91. package/out/renderer/assets/{erDiagram-SMLLAGMA-Dvf_c-7M.js → erDiagram-SMLLAGMA-Bz4ALNLp.js} +4 -4
  92. package/out/renderer/assets/erb-Bzn22wO6.js +28 -0
  93. package/out/renderer/assets/erlang-Ch5kuXHm.js +9 -0
  94. package/out/renderer/assets/everforest-dark-Cg1xdODP.js +4 -0
  95. package/out/renderer/assets/everforest-light-BmTD3bxe.js +4 -0
  96. package/out/renderer/assets/fennel-BTELNkeT.js +7 -0
  97. package/out/renderer/assets/fish-kGF2-4SL.js +7 -0
  98. package/out/renderer/assets/{flowDiagram-DWJPFMVM-CPDjOXYp.js → flowDiagram-DWJPFMVM-Uqg1ZeN2.js} +6 -6
  99. package/out/renderer/assets/fluent-YyC28MRr.js +7 -0
  100. package/out/renderer/assets/fortran-fixed-form-CpmOyvS5.js +9 -0
  101. package/out/renderer/assets/fortran-free-form-5X94ETMi.js +7 -0
  102. package/out/renderer/assets/fsharp-5vtGqRR9.js +9 -0
  103. package/out/renderer/assets/{ganttDiagram-T4ZO3ILL-B4dJrK-3.js → ganttDiagram-T4ZO3ILL-Dm0tRLCH.js} +1 -1
  104. package/out/renderer/assets/gdresource-B5TLWiFO.js +11 -0
  105. package/out/renderer/assets/gdscript-CNW3Aj-d.js +7 -0
  106. package/out/renderer/assets/gdshader-BEzE4j_3.js +7 -0
  107. package/out/renderer/assets/genie-BvhtM5Ga.js +7 -0
  108. package/out/renderer/assets/gherkin-xCNF9gh8.js +7 -0
  109. package/out/renderer/assets/git-commit-PP9xCApN.js +9 -0
  110. package/out/renderer/assets/git-rebase-D-XQSvDj.js +9 -0
  111. package/out/renderer/assets/{gitGraphDiagram-UUTBAWPF-De2eCfMN.js → gitGraphDiagram-UUTBAWPF-R8imfIrj.js} +6 -6
  112. package/out/renderer/assets/github-dark-O22yVQaY.js +4 -0
  113. package/out/renderer/assets/github-dark-default-DB2Hkvqn.js +4 -0
  114. package/out/renderer/assets/github-dark-dimmed-CMZ_OfqC.js +4 -0
  115. package/out/renderer/assets/github-dark-high-contrast-DmxWVmCU.js +4 -0
  116. package/out/renderer/assets/github-light-BTbR9xVK.js +4 -0
  117. package/out/renderer/assets/github-light-default-DWEonwFe.js +4 -0
  118. package/out/renderer/assets/github-light-high-contrast-WJ_cPDts.js +4 -0
  119. package/out/renderer/assets/gleam-LmNxrMsN.js +7 -0
  120. package/out/renderer/assets/glimmer-js-h2QNNiD7.js +15 -0
  121. package/out/renderer/assets/glimmer-ts-Bk3uX6Ae.js +15 -0
  122. package/out/renderer/assets/glsl-CGsiYPcu.js +9 -0
  123. package/out/renderer/assets/gn-OUMx7fqt.js +7 -0
  124. package/out/renderer/assets/gnuplot-tV8vezdE.js +7 -0
  125. package/out/renderer/assets/go-DRMr3iML.js +7 -0
  126. package/out/renderer/assets/{graph-BFn23kR_.js → graph-B5YWEnt0.js} +2 -2
  127. package/out/renderer/assets/graphql-CwmtR1ib.js +15 -0
  128. package/out/renderer/assets/groovy-Bn4MhXgW.js +7 -0
  129. package/out/renderer/assets/gruvbox-dark-hard-DVsRsETr.js +4 -0
  130. package/out/renderer/assets/gruvbox-dark-medium-B5JBrQdg.js +4 -0
  131. package/out/renderer/assets/gruvbox-dark-soft-Db-YOqRx.js +4 -0
  132. package/out/renderer/assets/gruvbox-light-hard-CXzJt7DI.js +4 -0
  133. package/out/renderer/assets/gruvbox-light-medium-B89RAI1Y.js +4 -0
  134. package/out/renderer/assets/gruvbox-light-soft-Cs0hTZYv.js +4 -0
  135. package/out/renderer/assets/hack-BTX3ICIE.js +13 -0
  136. package/out/renderer/assets/haml-DrIklt7F.js +11 -0
  137. package/out/renderer/assets/handlebars-yWFGGD2R.js +15 -0
  138. package/out/renderer/assets/haskell-CzPS7wjM.js +7 -0
  139. package/out/renderer/assets/haxe-BpobLYM9.js +7 -0
  140. package/out/renderer/assets/hcl-axoq0Ycu.js +7 -0
  141. package/out/renderer/assets/hjson-I7LcauIB.js +7 -0
  142. package/out/renderer/assets/hlsl-TRzjajlb.js +7 -0
  143. package/out/renderer/assets/horizon-DWzh3z5C.js +4 -0
  144. package/out/renderer/assets/horizon-bright-C1AFkPsv.js +4 -0
  145. package/out/renderer/assets/houston-CF_ws8Cq.js +4 -0
  146. package/out/renderer/assets/html-GC16tDh9.js +11 -0
  147. package/out/renderer/assets/html-derivative-HU9p64q4.js +11 -0
  148. package/out/renderer/assets/http-DjsOm9E4.js +20 -0
  149. package/out/renderer/assets/hurl-Am2cDU4f.js +18 -0
  150. package/out/renderer/assets/hxml-Jle7oGdm.js +9 -0
  151. package/out/renderer/assets/hy-B1k9U6S8.js +7 -0
  152. package/out/renderer/assets/imba-C4923lSV.js +7 -0
  153. package/out/renderer/assets/{index-BkntVzTm.css → index-B6Zj03wk.css} +82 -24
  154. package/out/renderer/assets/{index-BL-57WPa.js → index-D7Xi0GX5.js} +30034 -9238
  155. package/out/renderer/assets/{infoDiagram-42DDH7IO-BIt9B6mQ.js → infoDiagram-42DDH7IO-CWPYNP1k.js} +4 -4
  156. package/out/renderer/assets/ini-B84Ha1bx.js +7 -0
  157. package/out/renderer/assets/{ishikawaDiagram-UXIWVN3A-CXZs0KGV.js → ishikawaDiagram-UXIWVN3A-CFTrc-S6.js} +1 -1
  158. package/out/renderer/assets/java-BfXh-0uJ.js +7 -0
  159. package/out/renderer/assets/javascript-BsAkV7mL.js +7 -0
  160. package/out/renderer/assets/jinja-FkIlHBgj.js +16 -0
  161. package/out/renderer/assets/jison-BkdOIOd4.js +9 -0
  162. package/out/renderer/assets/{journeyDiagram-VCZTEJTY-B-EXuj5b.js → journeyDiagram-VCZTEJTY-Dfd-piIf.js} +4 -4
  163. package/out/renderer/assets/json-TjWBGEk1.js +7 -0
  164. package/out/renderer/assets/json5-DCGCKrmX.js +7 -0
  165. package/out/renderer/assets/jsonc-DLVLp8id.js +7 -0
  166. package/out/renderer/assets/jsonl-B-R_pDGg.js +7 -0
  167. package/out/renderer/assets/jsonnet-Cs8BnnC6.js +7 -0
  168. package/out/renderer/assets/jssm-DDuANZ2u.js +7 -0
  169. package/out/renderer/assets/jsx-BPmvoin2.js +7 -0
  170. package/out/renderer/assets/julia-CU_UwNb8.js +20 -0
  171. package/out/renderer/assets/just-tGFryTtU.js +34 -0
  172. package/out/renderer/assets/kanagawa-dragon-DU8n2NNT.js +4 -0
  173. package/out/renderer/assets/kanagawa-lotus-Byd0CDet.js +4 -0
  174. package/out/renderer/assets/kanagawa-wave-DExoagcR.js +4 -0
  175. package/out/renderer/assets/{kanban-definition-6JOO6SKY-ByvN0qaD.js → kanban-definition-6JOO6SKY-BocrfAtb.js} +2 -2
  176. package/out/renderer/assets/kdl-DzNQTDs7.js +7 -0
  177. package/out/renderer/assets/kotlin-BM2ZNTMh.js +7 -0
  178. package/out/renderer/assets/kusto-dtpuxMFE.js +7 -0
  179. package/out/renderer/assets/laserwave-DF03wMlf.js +4 -0
  180. package/out/renderer/assets/latex-B0gTO9uZ.js +10 -0
  181. package/out/renderer/assets/{layout-BpybWUv6.js → layout-DHzrXVin.js} +4 -4
  182. package/out/renderer/assets/lean-CTow-IzD.js +7 -0
  183. package/out/renderer/assets/less-BAzLMJNR.js +7 -0
  184. package/out/renderer/assets/light-plus-DS08Xg5J.js +4 -0
  185. package/out/renderer/assets/liquid-QmJ_LYTW.js +15 -0
  186. package/out/renderer/assets/llvm-CTKcAHbb.js +7 -0
  187. package/out/renderer/assets/log-BF22rfM9.js +7 -0
  188. package/out/renderer/assets/logo-D9l7oEJ8.js +7 -0
  189. package/out/renderer/assets/lua-BVbbqwZC.js +9 -0
  190. package/out/renderer/assets/luau-CdZ6BoEa.js +7 -0
  191. package/out/renderer/assets/make-DLtqaK4D.js +7 -0
  192. package/out/renderer/assets/markdown-F_EULe_G.js +7 -0
  193. package/out/renderer/assets/marko-BAWrmNIa.js +15 -0
  194. package/out/renderer/assets/material-theme-B8B2U48Q.js +4 -0
  195. package/out/renderer/assets/material-theme-darker-BV0iY_T3.js +4 -0
  196. package/out/renderer/assets/material-theme-lighter-DrzybSTF.js +4 -0
  197. package/out/renderer/assets/material-theme-ocean-BRPLVReX.js +4 -0
  198. package/out/renderer/assets/material-theme-palenight-DSJwsR_D.js +4 -0
  199. package/out/renderer/assets/matlab-7XHduepk.js +7 -0
  200. package/out/renderer/assets/mdc-Ca0ft0PS.js +16 -0
  201. package/out/renderer/assets/mdx-D5wExp-O.js +7 -0
  202. package/out/renderer/assets/mermaid-z_1ejSlp.js +7 -0
  203. package/out/renderer/assets/{min-DB8ixvoT.js → min-D6g96v7R.js} +2 -2
  204. package/out/renderer/assets/min-dark-BNaN9fWk.js +4 -0
  205. package/out/renderer/assets/min-light-CMrjentn.js +4 -0
  206. package/out/renderer/assets/{mindmap-definition-QFDTVHPH-Do-I-At8.js → mindmap-definition-QFDTVHPH-D9cyK1Gb.js} +3 -3
  207. package/out/renderer/assets/mipsasm-BQyyUrpa.js +7 -0
  208. package/out/renderer/assets/mojo-ByCRDvCf.js +7 -0
  209. package/out/renderer/assets/monokai-DelygWXa.js +4 -0
  210. package/out/renderer/assets/moonbit-CqjK87KZ.js +7 -0
  211. package/out/renderer/assets/move-DhTNmxqC.js +7 -0
  212. package/out/renderer/assets/narrat-CLjGcbCy.js +7 -0
  213. package/out/renderer/assets/nextflow-B166B-y1.js +9 -0
  214. package/out/renderer/assets/nextflow-groovy-BOO9s0iq.js +7 -0
  215. package/out/renderer/assets/nginx-BFAkI5_-.js +10 -0
  216. package/out/renderer/assets/night-owl-DSS199ra.js +4 -0
  217. package/out/renderer/assets/night-owl-light-gC6E-Eh2.js +4 -0
  218. package/out/renderer/assets/nim-B3PAIZ4D.js +22 -0
  219. package/out/renderer/assets/nix-ByWcmvXF.js +12 -0
  220. package/out/renderer/assets/nord-CvDbBq5M.js +4 -0
  221. package/out/renderer/assets/nushell-DB8ZUEbK.js +7 -0
  222. package/out/renderer/assets/objective-c-BRoNQF42.js +7 -0
  223. package/out/renderer/assets/objective-cpp-DEoN9Fe5.js +7 -0
  224. package/out/renderer/assets/ocaml-B1kfGk9Y.js +7 -0
  225. package/out/renderer/assets/odin-CNQ56Ay2.js +7 -0
  226. package/out/renderer/assets/one-dark-pro-CsMf0BoJ.js +4 -0
  227. package/out/renderer/assets/one-light-B0cTzZyr.js +4 -0
  228. package/out/renderer/assets/openscad-C_m7ehZF.js +7 -0
  229. package/out/renderer/assets/pascal-CU8Kjkr_.js +7 -0
  230. package/out/renderer/assets/perl-HITCDkgu.js +18 -0
  231. package/out/renderer/assets/php-C2HieitX.js +20 -0
  232. package/out/renderer/assets/{pieDiagram-DEJITSTG-Cnpf6Gt6.js → pieDiagram-DEJITSTG-LUWwVJA5.js} +6 -6
  233. package/out/renderer/assets/pierre-dark-DADY5eR0.js +4 -0
  234. package/out/renderer/assets/pierre-light-DUjirxKp.js +4 -0
  235. package/out/renderer/assets/pkl-BsByaYax.js +7 -0
  236. package/out/renderer/assets/plastic-BjwMpBc0.js +4 -0
  237. package/out/renderer/assets/plsql-B3Na24V4.js +7 -0
  238. package/out/renderer/assets/po-BajfNjc5.js +7 -0
  239. package/out/renderer/assets/poimandres-ChWyhPrn.js +4 -0
  240. package/out/renderer/assets/polar-BB-dlxnO.js +7 -0
  241. package/out/renderer/assets/postcss-kj1IbjVd.js +7 -0
  242. package/out/renderer/assets/powerquery-B-e1fO-k.js +7 -0
  243. package/out/renderer/assets/powershell-BcMVbGpk.js +7 -0
  244. package/out/renderer/assets/prisma-bmxcSDxq.js +7 -0
  245. package/out/renderer/assets/prolog-BT9GCzqD.js +7 -0
  246. package/out/renderer/assets/proto-Ds-m32NR.js +7 -0
  247. package/out/renderer/assets/pug-BwQB43qN.js +13 -0
  248. package/out/renderer/assets/puppet-N15G4Usj.js +7 -0
  249. package/out/renderer/assets/purescript-DrwsEYNH.js +7 -0
  250. package/out/renderer/assets/python-CrdIx4PZ.js +7 -0
  251. package/out/renderer/assets/qml-jtL8okyu.js +9 -0
  252. package/out/renderer/assets/qmldir-DuMSk0Oz.js +7 -0
  253. package/out/renderer/assets/qss-BFrB6p4y.js +7 -0
  254. package/out/renderer/assets/{quadrantDiagram-34T5L4WZ-VcOb1qLd.js → quadrantDiagram-34T5L4WZ-DdWTi9yW.js} +1 -1
  255. package/out/renderer/assets/r-Dpdc-Kyk.js +7 -0
  256. package/out/renderer/assets/racket-DbA06HL7.js +7 -0
  257. package/out/renderer/assets/raku-6v-Y17bs.js +7 -0
  258. package/out/renderer/assets/razor-gBXW6YBJ.js +13 -0
  259. package/out/renderer/assets/red-DByOl5N0.js +4 -0
  260. package/out/renderer/assets/reg-CULnG2WX.js +7 -0
  261. package/out/renderer/assets/regexp-BxWeO75u.js +7 -0
  262. package/out/renderer/assets/rel-CHRwzjd4.js +7 -0
  263. package/out/renderer/assets/{requirementDiagram-MS252O5E-VJs9Hpaw.js → requirementDiagram-MS252O5E-BoLT3tay.js} +3 -3
  264. package/out/renderer/assets/riscv-BNQ9cVpw.js +7 -0
  265. package/out/renderer/assets/ron-CUEPaFZU.js +7 -0
  266. package/out/renderer/assets/rose-pine-B-kZ4Z9q.js +4 -0
  267. package/out/renderer/assets/rose-pine-dawn-efeVGdSI.js +4 -0
  268. package/out/renderer/assets/rose-pine-moon-DmodZNzl.js +4 -0
  269. package/out/renderer/assets/rosmsg-Bfahr6vb.js +7 -0
  270. package/out/renderer/assets/rst-by6KAwTb.js +37 -0
  271. package/out/renderer/assets/ruby-C13Bjepi.js +37 -0
  272. package/out/renderer/assets/rust-CMNYZh5a.js +7 -0
  273. package/out/renderer/assets/{sankeyDiagram-XADWPNL6-BoXxgLvi.js → sankeyDiagram-XADWPNL6-B4gY_QI-.js} +1 -1
  274. package/out/renderer/assets/sas-BLBgC3TA.js +9 -0
  275. package/out/renderer/assets/sass-BheygBdF.js +7 -0
  276. package/out/renderer/assets/scala-B-_7vFVn.js +7 -0
  277. package/out/renderer/assets/scheme-BSHdPinv.js +7 -0
  278. package/out/renderer/assets/scss-Dq-LbI_c.js +9 -0
  279. package/out/renderer/assets/sdbl-BBUhycGU.js +7 -0
  280. package/out/renderer/assets/{sequenceDiagram-FGHM5R23-b69hQjSp.js → sequenceDiagram-FGHM5R23-B-JJvxQW.js} +3 -3
  281. package/out/renderer/assets/shaderlab-C07uO3dL.js +9 -0
  282. package/out/renderer/assets/shellscript-CQ8MXh-D.js +7 -0
  283. package/out/renderer/assets/shellsession-CkeTp4M1.js +9 -0
  284. package/out/renderer/assets/slack-dark-BEe10hxO.js +4 -0
  285. package/out/renderer/assets/slack-ochin-BKmu9pBc.js +4 -0
  286. package/out/renderer/assets/smalltalk-qxcGy4fT.js +7 -0
  287. package/out/renderer/assets/snazzy-light-Dcvd-ZyI.js +4 -0
  288. package/out/renderer/assets/solarized-dark-BBl5y5sR.js +4 -0
  289. package/out/renderer/assets/solarized-light-DW9b_AY8.js +4 -0
  290. package/out/renderer/assets/solidity-CSTQ0FCC.js +7 -0
  291. package/out/renderer/assets/soy-BHaHgMUy.js +11 -0
  292. package/out/renderer/assets/sparql-DswowMAp.js +9 -0
  293. package/out/renderer/assets/splunk-DcGJXIDa.js +7 -0
  294. package/out/renderer/assets/sql-DzUuSofg.js +7 -0
  295. package/out/renderer/assets/ssh-config-Bk_I5wDR.js +7 -0
  296. package/out/renderer/assets/stata-Dl7wDdBE.js +9 -0
  297. package/out/renderer/assets/{stateDiagram-FHFEXIEX-BK7E-REm.js → stateDiagram-FHFEXIEX-BntwOBUs.js} +8 -8
  298. package/out/renderer/assets/{stateDiagram-v2-QKLJ7IA2-Cd2wfCQu.js → stateDiagram-v2-QKLJ7IA2-C__eWVIe.js} +4 -4
  299. package/out/renderer/assets/stylus-DXFa_2Jl.js +7 -0
  300. package/out/renderer/assets/surrealql-Bs3vUeKA.js +9 -0
  301. package/out/renderer/assets/svelte-fC0HkEkx.js +15 -0
  302. package/out/renderer/assets/swift-Cohr-WZC.js +7 -0
  303. package/out/renderer/assets/synthwave-84-CoUef9sh.js +4 -0
  304. package/out/renderer/assets/system-verilog-BcESSvRn.js +7 -0
  305. package/out/renderer/assets/systemd-DJPFjU02.js +7 -0
  306. package/out/renderer/assets/talonscript-CEEMXJTH.js +7 -0
  307. package/out/renderer/assets/tasl-DfOr2qHi.js +7 -0
  308. package/out/renderer/assets/tcl-CTsc4-t7.js +7 -0
  309. package/out/renderer/assets/templ-CSEiQwNm.js +13 -0
  310. package/out/renderer/assets/terraform-CeztUfUr.js +7 -0
  311. package/out/renderer/assets/tex-CGVqF8nD.js +9 -0
  312. package/out/renderer/assets/{timeline-definition-GMOUNBTQ-Bl-MTfK5.js → timeline-definition-GMOUNBTQ-C7ch2INk.js} +2 -2
  313. package/out/renderer/assets/tokyo-night-DjtLpAEY.js +4 -0
  314. package/out/renderer/assets/toml-vHPzWDj6.js +7 -0
  315. package/out/renderer/assets/ts-tags-cG2hZuda.js +54 -0
  316. package/out/renderer/assets/tsv-ChRVFvMy.js +7 -0
  317. package/out/renderer/assets/tsx-CmGGo4Hm.js +7 -0
  318. package/out/renderer/assets/turtle-BnC7StHY.js +7 -0
  319. package/out/renderer/assets/twig-CwEEYIBf.js +36 -0
  320. package/out/renderer/assets/typescript-CP6ECzON.js +7 -0
  321. package/out/renderer/assets/typespec-CkDVVIcK.js +7 -0
  322. package/out/renderer/assets/typst-XYLFxYau.js +7 -0
  323. package/out/renderer/assets/v-BSYXvR4g.js +7 -0
  324. package/out/renderer/assets/vala-qJa5rry9.js +7 -0
  325. package/out/renderer/assets/vb-Bzg9rspf.js +7 -0
  326. package/out/renderer/assets/{vennDiagram-DHZGUBPP-DNmr1k2L.js → vennDiagram-DHZGUBPP-CQ__NSue.js} +1 -1
  327. package/out/renderer/assets/verilog-CCb_iTfF.js +7 -0
  328. package/out/renderer/assets/vesper-4Q1cEwPL.js +4 -0
  329. package/out/renderer/assets/vhdl-DMqk4T2s.js +7 -0
  330. package/out/renderer/assets/viml--FINbfoq.js +7 -0
  331. package/out/renderer/assets/vitesse-black-BqNLki8b.js +4 -0
  332. package/out/renderer/assets/vitesse-dark-jJ32WhwH.js +4 -0
  333. package/out/renderer/assets/vitesse-light-476zM4e6.js +4 -0
  334. package/out/renderer/assets/vue-K-7Ga-y8.js +40 -0
  335. package/out/renderer/assets/vue-html-DhreShjd.js +9 -0
  336. package/out/renderer/assets/vue-vine-rMIwOpFf.js +19 -0
  337. package/out/renderer/assets/vyper-DP4whl13.js +7 -0
  338. package/out/renderer/assets/{wardley-RL74JXVD-DTbxPMj9.js → wardley-RL74JXVD-Kh6mNiRV.js} +3 -3
  339. package/out/renderer/assets/{wardleyDiagram-NUSXRM2D-BWw08wtD.js → wardleyDiagram-NUSXRM2D-CfRYzJMU.js} +5 -5
  340. package/out/renderer/assets/wasm-BBh6f151.js +7 -0
  341. package/out/renderer/assets/wasm-DDgzZJey.js +10 -0
  342. package/out/renderer/assets/wenyan-BdqozpMZ.js +7 -0
  343. package/out/renderer/assets/wgsl-Vo-hHVWH.js +7 -0
  344. package/out/renderer/assets/wikitext-BDjE6pmL.js +7 -0
  345. package/out/renderer/assets/wit-C_nQzOkY.js +7 -0
  346. package/out/renderer/assets/wolfram-CRmjUoI4.js +7 -0
  347. package/out/renderer/assets/xml-BMzZeaqs.js +9 -0
  348. package/out/renderer/assets/xsl-CnwVr_6q.js +10 -0
  349. package/out/renderer/assets/{xychartDiagram-5P7HB3ND-EEYPnLDT.js → xychartDiagram-5P7HB3ND-BFq2zIne.js} +1 -1
  350. package/out/renderer/assets/yaml-B_vW5iTY.js +7 -0
  351. package/out/renderer/assets/zenscript-DFINJL6j.js +7 -0
  352. package/out/renderer/assets/zig-CS4FMAZp.js +7 -0
  353. package/out/renderer/index.html +2 -2
  354. package/out/resources/linux/probe +0 -0
  355. package/out/resources/linux-x64/probe +0 -0
  356. package/out/resources/mcp-server/aider-desk-mcp-server.js +16 -1
  357. package/out/resources/prompts/code-change-requests.hbs +21 -0
  358. package/out/resources/skills/extension-creator/SKILL.md +345 -0
  359. package/out/resources/skills/extension-creator/assets/templates/Component.jsx.template +76 -0
  360. package/out/resources/skills/extension-creator/assets/templates/ConfigComponent.jsx.template +38 -0
  361. package/out/resources/skills/extension-creator/assets/templates/folder-extension/config.ts.template +29 -0
  362. package/out/resources/skills/extension-creator/assets/templates/folder-extension/index.ts.template +42 -0
  363. package/out/resources/skills/extension-creator/assets/templates/folder-extension/package.json +12 -0
  364. package/out/resources/skills/extension-creator/assets/templates/folder-extension/tsconfig.json +23 -0
  365. package/out/resources/skills/extension-creator/assets/templates/folder-extension-with-config/index.ts.template +80 -0
  366. package/out/resources/skills/extension-creator/assets/templates/single-file.ts.template +30 -0
  367. package/out/resources/skills/extension-creator/assets/templates/ui-component-external.ts.template +91 -0
  368. package/out/resources/skills/extension-creator/assets/templates/ui-component.ts.template +79 -0
  369. package/out/resources/skills/extension-creator/references/command-definition.md +170 -0
  370. package/out/resources/skills/extension-creator/references/config-components.md +427 -0
  371. package/out/resources/skills/extension-creator/references/event-types.md +156 -0
  372. package/out/resources/skills/extension-creator/references/examples-gallery.md +583 -0
  373. package/out/resources/skills/extension-creator/references/extension-interface.md +306 -0
  374. package/out/resources/skills/extension-creator/references/extension-types.md +186 -0
  375. package/out/resources/skills/extension-creator/references/in-repo-flow.md +132 -0
  376. package/out/resources/skills/extension-creator/references/install-targets.md +96 -0
  377. package/out/resources/skills/extension-creator/references/project-global-flow.md +76 -0
  378. package/out/resources/skills/extension-creator/references/ui-components.md +663 -0
  379. package/out/runner.js +509 -164
  380. package/package.json +11 -9
  381. package/out/resources/prompts/code-inline-request.hbs +0 -16
  382. /package/patches/{ai+5.0.167.patch → ai+5.0.172.patch} +0 -0
@@ -0,0 +1,306 @@
1
+ # Extension Interface
2
+
3
+ Full TypeScript interface for AiderDesk extensions.
4
+
5
+ ## Extension Interface
6
+
7
+ ```typescript
8
+ interface Extension {
9
+ // Lifecycle
10
+ onLoad?(context: ExtensionContext): Promise<void> | void;
11
+ onUnload?(context: ExtensionContext): Promise<void> | void;
12
+
13
+ // Registration
14
+ getCommands?(context: ExtensionContext): CommandDefinition[];
15
+ getTools?(context: ExtensionContext, mode: string, agentProfile: AgentProfile): ToolDefinition[];
16
+ getAgents?(context: ExtensionContext): AgentProfile[];
17
+ getModes?(context: ExtensionContext): ModeDefinition[];
18
+ getUIComponents?(context: ExtensionContext): UIComponentDefinition[];
19
+
20
+ // UI Component support
21
+ getUIExtensionData?(componentId: string, context: ExtensionContext): Promise<unknown>;
22
+ executeUIExtensionAction?(componentId: string, action: string, args: unknown[], context: ExtensionContext): Promise<unknown>;
23
+
24
+ // Settings configuration (per-extension settings UI)
25
+ getConfigComponent?(context: ExtensionContext): string | undefined;
26
+ getConfigData?(context: ExtensionContext): Promise<unknown>;
27
+ saveConfigData?(configData: unknown, context: ExtensionContext): Promise<unknown>;
28
+
29
+ // Task Events
30
+ onTaskCreated?(event: TaskCreatedEvent, context: ExtensionContext): Promise<void | Partial<TaskCreatedEvent>>;
31
+ onTaskInitialized?(event: TaskInitializedEvent, context: ExtensionContext): Promise<void>;
32
+ onTaskClosed?(event: TaskClosedEvent, context: ExtensionContext): Promise<void>;
33
+
34
+ // Agent Events
35
+ onAgentStarted?(event: AgentStartedEvent, context: ExtensionContext): Promise<void | Partial<AgentStartedEvent>>;
36
+ onAgentFinished?(event: AgentFinishedEvent, context: ExtensionContext): Promise<void | Partial<AgentFinishedEvent>>;
37
+ onAgentStepFinished?(event: AgentStepFinishedEvent, context: ExtensionContext): Promise<void | Partial<AgentStepFinishedEvent>>;
38
+ onAgentProfileUpdated?(context: ExtensionContext, agentId: string, updatedProfile: AgentProfile): Promise<AgentProfile>;
39
+
40
+ // Tool Events
41
+ onToolApproval?(event: ToolApprovalEvent, context: ExtensionContext): Promise<void | Partial<ToolApprovalEvent>>;
42
+ onToolCalled?(event: ToolCalledEvent, context: ExtensionContext): Promise<void | Partial<ToolCalledEvent>>;
43
+ onToolFinished?(event: ToolFinishedEvent, context: ExtensionContext): Promise<void | Partial<ToolFinishedEvent>>;
44
+
45
+ // File Events
46
+ onFileAdded?(event: FileAddedEvent, context: ExtensionContext): Promise<void>;
47
+ onFileDropped?(event: FileDroppedEvent, context: ExtensionContext): Promise<void>;
48
+
49
+ // Prompt Events
50
+ onPromptSubmitted?(event: PromptSubmittedEvent, context: ExtensionContext): Promise<void | Partial<PromptSubmittedEvent>>;
51
+ onPromptStarted?(event: PromptStartedEvent, context: ExtensionContext): Promise<void>;
52
+ onPromptFinished?(event: PromptFinishedEvent, context: ExtensionContext): Promise<void>;
53
+
54
+ // Message Events
55
+ onResponseMessageProcessed?(event: ResponseMessageProcessedEvent, context: ExtensionContext): Promise<void | Partial<ResponseMessageProcessedEvent>>;
56
+
57
+ // Other Events
58
+ onProjectOpen?(context: ExtensionContext): Promise<void>;
59
+ onRuleFilesRetrieved?(context: ExtensionContext, ruleFiles: string[]): Promise<string[]>;
60
+ onSubagentStarted?(event: SubagentStartedEvent, context: ExtensionContext): Promise<void | Partial<SubagentStartedEvent>>;
61
+ onSubagentFinished?(event: SubagentFinishedEvent, context: ExtensionContext): Promise<void>;
62
+ onQuestionAsked?(event: QuestionAskedEvent, context: ExtensionContext): Promise<void>;
63
+ onQuestionAnswered?(event: QuestionAnsweredEvent, context: ExtensionContext): Promise<void>;
64
+ onCommandExecuted?(event: CommandExecutedEvent, context: ExtensionContext): Promise<void>;
65
+ }
66
+ ```
67
+
68
+ ## ExtensionContext
69
+
70
+ ```typescript
71
+ interface ExtensionContext {
72
+ // Logging (backend/dev console only — NOT visible to users in chat UI)
73
+ log(message: string, type: 'info' | 'error' | 'warn' | 'debug'): void;
74
+
75
+ // Project access
76
+ getProjectDir(): string;
77
+ getTaskContext(): TaskContext | null;
78
+ getProjectContext(): ProjectContext;
79
+
80
+ // Memory access
81
+ getMemoryContext(): MemoryContext;
82
+
83
+ // Settings
84
+ getSetting(key: string): Promise<unknown>;
85
+ updateSettings(updates: Record<string, unknown>): Promise<void>;
86
+
87
+ // Models
88
+ getModelConfigs(): Promise<Model[]>;
89
+
90
+ // UI updates
91
+ triggerUIDataRefresh(componentId?: string, taskId?: string): void;
92
+ triggerUIComponentsReload(): void;
93
+
94
+ // Navigation
95
+ openUrl(url: string, target?: 'external' | 'window' | 'modal-overlay'): Promise<void>;
96
+ openPath(path: string): Promise<boolean>;
97
+ }
98
+ ```
99
+
100
+ ## MemoryContext
101
+
102
+ Provides access to AiderDesk's memory system — the same underlying vector store used by the built-in memory tools. Available via `context.getMemoryContext()` in any extension method.
103
+
104
+ ```typescript
105
+ interface MemoryContext {
106
+ storeMemory(projectId: string, taskId: string, type: MemoryEntryType, content: string): Promise<string>;
107
+ retrieveMemories(projectId: string, query: string, limit?: number): Promise<MemoryEntry[]>;
108
+ getMemory(id: string): Promise<MemoryEntry | null>;
109
+ deleteMemory(id: string): Promise<boolean>;
110
+ updateMemory(id: string, content: string): Promise<boolean>;
111
+ getAllMemories(): Promise<MemoryEntry[]>;
112
+ isMemoryEnabled(): boolean;
113
+ setMemoryEnabled(enabled: boolean): void;
114
+ }
115
+ ```
116
+
117
+ ### MemoryEntryType
118
+
119
+ ```typescript
120
+ enum MemoryEntryType {
121
+ Task = 'task',
122
+ UserPreference = 'user-preference',
123
+ CodePattern = 'code-pattern',
124
+ }
125
+ ```
126
+
127
+ ### MemoryEntry
128
+
129
+ ```typescript
130
+ interface MemoryEntry {
131
+ id: string;
132
+ content: string;
133
+ type: MemoryEntryType;
134
+ taskId?: string;
135
+ projectId?: string;
136
+ timestamp: number;
137
+ }
138
+ ```
139
+
140
+ ### Usage example
141
+
142
+ ```typescript
143
+ async onAgentFinished(event: AgentFinishedEvent, context: ExtensionContext) {
144
+ const memory = context.getMemoryContext();
145
+ if (!memory.isMemoryEnabled()) return;
146
+
147
+ const projectId = context.getProjectDir();
148
+ const taskContext = context.getTaskContext();
149
+ const taskId = taskContext?.data.id ?? '';
150
+
151
+ await memory.storeMemory(
152
+ projectId,
153
+ taskId,
154
+ 'code-pattern',
155
+ 'Always use clsx for conditional class names in React components',
156
+ );
157
+
158
+ const memories = await memory.retrieveMemories(projectId, 'React class names');
159
+ context.log(`Found ${memories.length} relevant memories`, 'info');
160
+ }
161
+ ```
162
+
163
+ ## TaskContext
164
+
165
+ ```typescript
166
+ interface TaskContext {
167
+ // Logging to chat (visible to users in the task's chat UI)
168
+ addLogMessage(level: 'info' | 'error' | 'warning', message?: string): void;
169
+ addLoadingMessage(message?: string, finished?: boolean): void;
170
+
171
+ // Task operations
172
+ updateTask(updates: Partial<TaskData>): Promise<TaskData>;
173
+ runPrompt(prompt: string, mode?: string): Promise<void>;
174
+ runCustomCommand(name: string, args?: string[], mode?: string): Promise<void>;
175
+ runSubagent(agentProfile: AgentProfile, prompt: string): Promise<void>;
176
+ interruptResponse(): Promise<void>;
177
+
178
+ // File operations
179
+ getRepoMap(): string;
180
+ getContextFiles(): ContextFile[];
181
+ addContextFiles(files: ContextFile[]): Promise<void>;
182
+
183
+ // Questions
184
+ askQuestion(text: string, options?: QuestionOptions): Promise<string>;
185
+ }
186
+ ```
187
+
188
+ ## UIComponentDefinition
189
+
190
+ ```typescript
191
+ interface UIComponentDefinition {
192
+ /** Unique component identifier */
193
+ id: string;
194
+
195
+ /** Where in UI to render this component */
196
+ placement: UIComponentPlacement;
197
+
198
+ /** JSX/TSX component as string to be parsed */
199
+ jsx: string;
200
+
201
+ /** Optional flag to load data from extension (default: false) */
202
+ loadData?: boolean;
203
+
204
+ /** Optional flag to disable data caching (default: false) */
205
+ noDataCache?: boolean;
206
+ }
207
+
208
+ type UIComponentPlacement =
209
+ | 'task-status-bar-left'
210
+ | 'task-status-bar-right'
211
+ | 'task-usage-info-bottom'
212
+ | 'task-messages-top'
213
+ | 'task-messages-bottom'
214
+ | 'task-input-above'
215
+ | 'task-input-toolbar-left'
216
+ | 'task-input-toolbar-right'
217
+ | 'tasks-sidebar-header'
218
+ | 'tasks-sidebar-bottom'
219
+ | 'task-message-above'
220
+ | 'task-message-below'
221
+ | 'task-message-bar'
222
+ | 'task-top-bar-left'
223
+ | 'task-top-bar-right'
224
+ | 'task-state-actions'
225
+ | 'task-state-actions-all'
226
+ | 'header-left'
227
+ | 'header-right'
228
+ | 'welcome-page';
229
+ ```
230
+
231
+ ## UIComponentProps
232
+
233
+ Props available to UI components via the `data` prop (React is globally available, not a prop):
234
+
235
+ ```typescript
236
+ interface UIComponentProps {
237
+ // Context data
238
+ projectDir?: string;
239
+ task?: TaskData;
240
+ agentProfile?: AgentProfile;
241
+ models: Model[];
242
+ providers: ProviderProfile[];
243
+
244
+ // UI library
245
+ ui: UIComponents;
246
+
247
+ // Icons library (organized by icon set)
248
+ icons: Record<string, Record<string, IconComponent>>;
249
+
250
+ // Extension actions
251
+ executeExtensionAction: (action: string, ...args: unknown[]) => Promise<unknown>;
252
+
253
+ // Data from getUIExtensionData() (if loadData: true)
254
+ data?: unknown;
255
+
256
+ // Message-specific (for message placements)
257
+ message?: MessageData;
258
+ }
259
+
260
+ interface UIComponents {
261
+ Button: Component;
262
+ Checkbox: Component;
263
+ Input: Component;
264
+ Select: Component;
265
+ TextArea: Component;
266
+ IconButton: Component;
267
+ RadioButton: Component;
268
+ MultiSelect: Component;
269
+ Slider: Component;
270
+ DatePicker: Component;
271
+ Chip: Component;
272
+ ModelSelector: Component;
273
+ Tooltip: Component;
274
+ LoadingOverlay: Component;
275
+ ConfirmDialog: Component;
276
+ }
277
+ ```
278
+
279
+ ## Metadata
280
+
281
+ Metadata is defined as a **static property** on the extension class:
282
+
283
+ ```typescript
284
+ export default class MyExtension implements Extension {
285
+ static metadata = {
286
+ name: 'My Extension',
287
+ version: '1.0.0',
288
+ description: 'What this extension does',
289
+ author: 'Author Name',
290
+ capabilities: ['events', 'commands'],
291
+ };
292
+ }
293
+ ```
294
+
295
+ **Important:** Metadata must be a `static` property on the class. Do NOT use a separate `export const metadata = { ... }` — the extension loader reads it from `ExtensionClass.metadata`.
296
+
297
+ ```typescript
298
+ interface ExtensionMetadata {
299
+ name: string;
300
+ version: string;
301
+ description?: string;
302
+ author?: string;
303
+ capabilities?: string[];
304
+ iconUrl?: string;
305
+ }
306
+ ```
@@ -0,0 +1,186 @@
1
+ # Extension Types
2
+
3
+ AiderDesk supports two types of extensions: single-file and folder extensions.
4
+
5
+ ## Single-File Extensions
6
+
7
+ **When to use:** Simple extensions with no npm dependencies
8
+
9
+ **Location:** `packages/extensions/extensions/my-extension.ts`
10
+
11
+ **Structure:**
12
+ ```typescript
13
+ import type { Extension, ExtensionContext } from '@aiderdesk/extensions';
14
+
15
+ export default class MyExtension implements Extension {
16
+ static metadata = {
17
+ name: 'My Extension',
18
+ version: '1.0.0',
19
+ description: 'What this extension does',
20
+ author: 'Author Name',
21
+ capabilities: ['events', 'commands'],
22
+ };
23
+
24
+ async onLoad(context: ExtensionContext): Promise<void> {
25
+ context.log('Extension loaded', 'info');
26
+ }
27
+ }
28
+ ```
29
+
30
+ **Advantages:**
31
+ - Simple structure
32
+ - Easy to maintain
33
+ - No build step required
34
+
35
+ **Limitations:**
36
+ - Cannot use npm dependencies
37
+ - All code in one file
38
+ - No separate config or logger files
39
+
40
+ ## Folder Extensions
41
+
42
+ **When to use:** Complex extensions with npm dependencies or multiple files
43
+
44
+ **Location:** `packages/extensions/extensions/my-extension/`
45
+
46
+ **Structure:**
47
+ ```
48
+ packages/extensions/extensions/my-extension/
49
+ ├── index.ts # Main extension file (implements Extension)
50
+ ├── package.json # npm dependencies
51
+ ├── tsconfig.json # TypeScript config (module: ES2020+)
52
+ ├── README.md # Documentation
53
+ ├── config.ts # Optional: persistent config storage
54
+ ├── logger.ts # Optional: local logger
55
+ ├── constants.ts # Optional: extension constants
56
+ └── resources/ # Optional: WASM, queries, assets
57
+ ```
58
+
59
+ **package.json:**
60
+ ```json
61
+ {
62
+ "name": "my-extension",
63
+ "version": "1.0.0",
64
+ "main": "index.ts",
65
+ "dependencies": {
66
+ // Required packages
67
+ }
68
+ }
69
+ ```
70
+
71
+ **tsconfig.json:**
72
+ ```json
73
+ {
74
+ "compilerOptions": {
75
+ "target": "ES2020",
76
+ "module": "ES2020",
77
+ "moduleResolution": "node",
78
+ "esModuleInterop": true,
79
+ "strict": true
80
+ }
81
+ }
82
+ ```
83
+
84
+ **Advantages:**
85
+ - Can use npm dependencies
86
+ - Modular structure
87
+ - Separate config and logger files
88
+ - Can include resources (WASM, queries, assets)
89
+
90
+ **Requirements:**
91
+ - Must have package.json
92
+ - Must have tsconfig.json with ES2020+ module
93
+ - Must set `hasDependencies: true` in extensions.json
94
+
95
+ ## Choosing Extension Type
96
+
97
+ **When:** Extension needs npm packages
98
+
99
+ **Then:** Use folder extension
100
+
101
+ **When:** Extension is simple with no dependencies
102
+
103
+ **Then:** Use single-file extension
104
+
105
+ **When:** Extension needs multiple files
106
+
107
+ **Then:** Use folder extension
108
+
109
+ **When:** Extension needs resources (WASM, queries)
110
+
111
+ **Then:** Use folder extension
112
+
113
+ ## Common Patterns by Type
114
+
115
+ ### Single-File: Simple Event Handler
116
+
117
+ ```typescript
118
+ import type { Extension, ExtensionContext, AgentStartedEvent } from '@aiderdesk/extensions';
119
+
120
+ export default class SimpleExtension implements Extension {
121
+ static metadata = {
122
+ name: 'Simple Extension',
123
+ version: '1.0.0',
124
+ description: 'Simple event handler',
125
+ author: 'Author Name',
126
+ capabilities: ['events'],
127
+ };
128
+
129
+ async onLoad(context: ExtensionContext): Promise<void> {
130
+ context.log('Simple extension loaded', 'info');
131
+ }
132
+
133
+ async onAgentStarted(
134
+ event: AgentStartedEvent,
135
+ context: ExtensionContext
136
+ ): Promise<void | Partial<AgentStartedEvent>> {
137
+ context.log('Agent started', 'info');
138
+ return { contextMessages: [...event.contextMessages] };
139
+ }
140
+ }
141
+ ```
142
+
143
+ ### Folder: Extension with Config and Dependencies
144
+
145
+ ```
146
+ tree-sitter-repo-map/
147
+ ├── index.ts # Main extension with getTools()
148
+ ├── package.json # tree-sitter dependencies
149
+ ├── tsconfig.json # ES2020 module
150
+ ├── config.ts # Config storage
151
+ ├── logger.ts # Extension logger
152
+ ├── constants.ts # Extension constants
153
+ └── resources/
154
+ └── queries/ # Language queries
155
+ ```
156
+
157
+ ## Updating extensions.json
158
+
159
+ ### Single-File Entry
160
+
161
+ ```json
162
+ {
163
+ "id": "my-extension",
164
+ "name": "My Extension",
165
+ "description": "Description of what it does",
166
+ "file": "extensions/my-extension.ts",
167
+ "type": "single",
168
+ "capabilities": ["onLoad", "onAgentStarted"]
169
+ }
170
+ ```
171
+
172
+ ### Folder Entry
173
+
174
+ ```json
175
+ {
176
+ "id": "my-extension",
177
+ "name": "My Extension",
178
+ "description": "Description",
179
+ "folder": "extensions/my-extension",
180
+ "type": "folder",
181
+ "hasDependencies": true,
182
+ "capabilities": ["onLoad", "getCommands", "onAgentStarted"]
183
+ }
184
+ ```
185
+
186
+ **Note:** Always set `hasDependencies: true` for folder extensions, even if they don't have dependencies yet. This ensures proper loading.
@@ -0,0 +1,132 @@
1
+ # In-Repo Installation Flow
2
+
3
+ This flow covers developing extensions **inside the AiderDesk codebase** at `packages/extensions/extensions/`. These extensions ship with the application and are available to all users by default.
4
+
5
+ ## When to Use This Flow
6
+
7
+ Only when:
8
+ 1. The current working project **is** the AiderDesk repository itself
9
+ 2. The user explicitly chooses "In-Repo" as the installation target
10
+ 3. The extension is meant to be a built-in feature, not a personal or project-specific tool
11
+
12
+ ## Process
13
+
14
+ 1. **Determine extension type** — single-file or folder
15
+ 2. **Create extension file(s)** in `packages/extensions/extensions/`
16
+ 3. **Implement Extension interface methods**
17
+ 4. **Export metadata and default class**
18
+ 5. **Update `packages/extensions/extensions.json`** — register the extension
19
+ 6. **Update `docs-site/docs/extensions/examples.md`** — document it
20
+ 7. **Verify with type checking and code-checker**
21
+
22
+ ## Directory Structure
23
+
24
+ ### Single-File In-Repo Extension
25
+
26
+ ```
27
+ packages/extensions/extensions/
28
+ └── my-extension.ts # Everything in one file
29
+ ```
30
+
31
+ ### Folder In-Repo Extension
32
+
33
+ ```
34
+ packages/extensions/extensions/
35
+ └── my-extension/
36
+ ├── index.ts # Main extension file
37
+ ├── package.json # npm dependencies (must run npm install)
38
+ ├── tsconfig.json # TypeScript config (module: ES2020+)
39
+ ├── README.md # Documentation
40
+ ├── config.ts # Optional: persistent config storage
41
+ ├── logger.ts # Optional: local logger
42
+ ├── constants.ts # Optional: extension constants
43
+ └── resources/ # Optional: WASM, queries, assets
44
+ ```
45
+
46
+ ## Step-by-Step
47
+
48
+ ### Step 1: Determine type
49
+
50
+ - **Single-file**: No npm dependencies, simple logic
51
+ - **Folder**: Needs npm packages, multiple files, resources
52
+
53
+ ### Step 2: Create the extension
54
+
55
+ Use the templates:
56
+ - [single-file.ts.template](../assets/templates/single-file.ts.template)
57
+ - [folder-extension/](../assets/templates/folder-extension/)
58
+ - [folder-extension-with-config/index.ts.template](../assets/templates/folder-extension-with-config/index.ts.template)
59
+
60
+ Create files in `packages/extensions/extensions/{name}/` or `packages/extensions/extensions/{name}.ts`.
61
+
62
+ ### Step 3: Implement interface
63
+
64
+ Same as any extension — implement required methods, export metadata and class.
65
+
66
+ Reference: [extension-interface.md](extension-interface.md)
67
+
68
+ ### Step 4: Register in extensions.json
69
+
70
+ **This step is unique to In-Repo extensions.**
71
+
72
+ Add an entry to `packages/extensions/extensions.json`:
73
+
74
+ **Single-file entry:**
75
+ ```json
76
+ {
77
+ "id": "my-extension",
78
+ "name": "My Extension",
79
+ "description": "Description of what it does",
80
+ "file": "extensions/my-extension.ts",
81
+ "type": "single",
82
+ "capabilities": ["onLoad", "onAgentStarted"]
83
+ }
84
+ ```
85
+
86
+ **Folder entry:**
87
+ ```json
88
+ {
89
+ "id": "my-extension",
90
+ "name": "My Extension",
91
+ "description": "Description",
92
+ "folder": "extensions/my-extension",
93
+ "type": "folder",
94
+ "hasDependencies": true,
95
+ "capabilities": ["onLoad", "getCommands", "onAgentStarted"]
96
+ }
97
+ ```
98
+
99
+ **Important:** Always set `hasDependencies: true` for folder extensions, even if they don't have dependencies yet.
100
+
101
+ ### Step 5: Document in examples.md
102
+
103
+ Add an entry to the table in `docs-site/docs/extensions/examples.md`:
104
+
105
+ | Extension | Description | Capabilities | Type |
106
+ |-----------|-------------|-------------|------|
107
+ | My Extension | What it does | events, commands | folder |
108
+
109
+ Include extension name, description, capabilities, and type.
110
+
111
+ ### Step 6: Install dependencies (folder extensions only)
112
+
113
+ If this is a folder extension with npm dependencies:
114
+
115
+ ```bash
116
+ cd packages/extensions
117
+ npm install
118
+ ```
119
+
120
+ ### Step 7: Verify
121
+
122
+ - Run type checking: `npm run typecheck`
123
+ - Run tests if applicable: `npm run test`
124
+ - Verify extension loads without errors
125
+ - Check that extension appears in extensions list
126
+
127
+ ## What NOT to do (In-Repo)
128
+
129
+ - Do NOT use `@/` imports in extension files — use relative imports or `@aiderdesk/extensions` package imports only
130
+ - Do NOT forget to update `extensions.json` — the extension won't load without registration
131
+ - Do NOT forget to update `examples.md` — users won't know about the extension
132
+ - Do NOT place files outside `packages/extensions/extensions/` unless there's a specific reason (e.g., shared utilities should go in `packages/extensions/src/`)