@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.
- package/out/renderer/assets/{_baseUniq-BPF2Herp.js → _baseUniq-B7TxjYgy.js} +1 -1
- package/out/renderer/assets/abap-B7h4dtBh.js +7 -0
- package/out/renderer/assets/actionscript-3-DtnkuHN2.js +7 -0
- package/out/renderer/assets/ada-BZS802Se.js +7 -0
- package/out/renderer/assets/andromeeda-C847lm7Z.js +4 -0
- package/out/renderer/assets/angular-html-BYG42TJr.js +42 -0
- package/out/renderer/assets/angular-ts-BftcHvZ6.js +29 -0
- package/out/renderer/assets/apache-D4roVlsU.js +7 -0
- package/out/renderer/assets/apex-B-mI3Md2.js +7 -0
- package/out/renderer/assets/apl-CGZawg-A.js +18 -0
- package/out/renderer/assets/applescript-C43Knf0G.js +7 -0
- package/out/renderer/assets/ara-DRBH84ND.js +7 -0
- package/out/renderer/assets/{arc-DfPLteHF.js → arc-TuVjX2tH.js} +1 -1
- package/out/renderer/assets/{architectureDiagram-Q4EWVU46-Bw0u-sSH.js → architectureDiagram-Q4EWVU46-CnAcyRvO.js} +5 -5
- package/out/renderer/assets/asciidoc-CT8_dLUs.js +7 -0
- package/out/renderer/assets/asm-3tg4MVib.js +7 -0
- package/out/renderer/assets/astro-BxdWOZvM.js +19 -0
- package/out/renderer/assets/aurora-x-wJ4-eM2h.js +4 -0
- package/out/renderer/assets/awk-ChreaG-G.js +7 -0
- package/out/renderer/assets/ayu-dark-rtpbXCNg.js +4 -0
- package/out/renderer/assets/ayu-light-BCZDSyV8.js +4 -0
- package/out/renderer/assets/ayu-mirage-BVoH71sA.js +4 -0
- package/out/renderer/assets/ballerina-B0yt0TYU.js +7 -0
- package/out/renderer/assets/bat-BzNgQIA7.js +7 -0
- package/out/renderer/assets/beancount-aZWrE5WV.js +7 -0
- package/out/renderer/assets/berry--Qc8OslH.js +7 -0
- package/out/renderer/assets/bibtex-BLeFwAes.js +7 -0
- package/out/renderer/assets/bicep-DbBeGdXQ.js +7 -0
- package/out/renderer/assets/bird2-aXhIUHPg.js +7 -0
- package/out/renderer/assets/blade-BbH7YAUi.js +22 -0
- package/out/renderer/assets/{blockDiagram-DXYQGD6D-CkfB9if8.js → blockDiagram-DXYQGD6D-DBoJhGAM.js} +6 -6
- package/out/renderer/assets/bsl-DwPS0BId.js +9 -0
- package/out/renderer/assets/c-C4VtT7JA.js +7 -0
- package/out/renderer/assets/c3-CWHczQMq.js +7 -0
- package/out/renderer/assets/{c4Diagram-AHTNJAMY-DweK9Liz.js → c4Diagram-AHTNJAMY-BzW0gKwX.js} +2 -2
- package/out/renderer/assets/cadence-S_NtR5Dy.js +7 -0
- package/out/renderer/assets/cairo-BtYx2aM5.js +9 -0
- package/out/renderer/assets/catppuccin-frappe-C21OPQfC.js +4 -0
- package/out/renderer/assets/catppuccin-latte-0ZtXlsrX.js +4 -0
- package/out/renderer/assets/catppuccin-macchiato-BD_FR4sl.js +4 -0
- package/out/renderer/assets/catppuccin-mocha-C653csR5.js +4 -0
- package/out/renderer/assets/{channel-C5wwrRof.js → channel-CqR4FAVX.js} +1 -1
- package/out/renderer/assets/{chunk-4BX2VUAB-0KM14cFd.js → chunk-4BX2VUAB-DQjg_Naa.js} +1 -1
- package/out/renderer/assets/{chunk-4TB4RGXK-CmVtCVL4.js → chunk-4TB4RGXK-DkcI1yaW.js} +5 -5
- package/out/renderer/assets/{chunk-55IACEB6-BzVYZvBM.js → chunk-55IACEB6-pFPEMTmI.js} +1 -1
- package/out/renderer/assets/{chunk-EDXVE4YY-BryQl5Kv.js → chunk-EDXVE4YY-DRk838hn.js} +1 -1
- package/out/renderer/assets/{chunk-FMBD7UC4-CRiLea_e.js → chunk-FMBD7UC4-BagQdd5u.js} +1 -1
- package/out/renderer/assets/{chunk-OYMX7WX6-Cpi4N3NO.js → chunk-OYMX7WX6-DOGJ-XHp.js} +3 -3
- package/out/renderer/assets/{chunk-QZHKN3VN-BT8kABWC.js → chunk-QZHKN3VN-CdzjbbBk.js} +1 -1
- package/out/renderer/assets/{chunk-YZCP3GAM-OLZV_Sef.js → chunk-YZCP3GAM-BKZRTlUj.js} +1 -1
- package/out/renderer/assets/clarity-D2ViJC0i.js +7 -0
- package/out/renderer/assets/{classDiagram-6PBFFD2Q-VdE6G90i.js → classDiagram-6PBFFD2Q-CjVhmlxb.js} +6 -6
- package/out/renderer/assets/{classDiagram-v2-HSJHXN6E-VdE6G90i.js → classDiagram-v2-HSJHXN6E-CjVhmlxb.js} +6 -6
- package/out/renderer/assets/clojure-C_G4_w5x.js +7 -0
- package/out/renderer/assets/{clone-DwQZ86nS.js → clone-B-kqpcr4.js} +1 -1
- package/out/renderer/assets/cmake-CDfQILeU.js +7 -0
- package/out/renderer/assets/cobol-B8r1pfPr.js +13 -0
- package/out/renderer/assets/codeowners-awy7PWCD.js +7 -0
- package/out/renderer/assets/codeql-lfK8ppuq.js +7 -0
- package/out/renderer/assets/coffee-XLjtuEYs.js +9 -0
- package/out/renderer/assets/common-lisp-DAq1kaby.js +7 -0
- package/out/renderer/assets/coq-l_JvzFJl.js +7 -0
- package/out/renderer/assets/{cose-bilkent-S5V4N54A-BEcAKM9H.js → cose-bilkent-S5V4N54A-CZLRecVB.js} +1 -1
- package/out/renderer/assets/cpp-zh2ePAE_.js +22 -0
- package/out/renderer/assets/crystal-BqBRy7Ec.js +19 -0
- package/out/renderer/assets/csharp-DxX_6tHh.js +7 -0
- package/out/renderer/assets/css-BtVcDqlU.js +7 -0
- package/out/renderer/assets/csv-Ba84L8e5.js +7 -0
- package/out/renderer/assets/cue-BFSVLV6N.js +7 -0
- package/out/renderer/assets/cypher-DbUmWIxC.js +7 -0
- package/out/renderer/assets/d-9qSZPw74.js +7 -0
- package/out/renderer/assets/{dagre-KV5264BT-BcFQYL1M.js → dagre-KV5264BT-BUAzC7Um.js} +6 -6
- package/out/renderer/assets/dark-plus-DmZ1Dzd4.js +4 -0
- package/out/renderer/assets/dart-CCSsOg9l.js +7 -0
- package/out/renderer/assets/dax-CvsmLV-B.js +7 -0
- package/out/renderer/assets/desktop-_xiGZ9X1.js +7 -0
- package/out/renderer/assets/{diagram-5BDNPKRD-GrUNdC1u.js → diagram-5BDNPKRD-DNQEDszc.js} +6 -6
- package/out/renderer/assets/{diagram-G4DWMVQ6-CG4S-ov5.js → diagram-G4DWMVQ6-D9YY6W2O.js} +6 -6
- package/out/renderer/assets/{diagram-MMDJMWI5-9ogY3MRC.js → diagram-MMDJMWI5-B5H49OVD.js} +5 -5
- package/out/renderer/assets/{diagram-TYMM5635-Ck7mI1bS.js → diagram-TYMM5635-Bw7r467p.js} +5 -5
- package/out/renderer/assets/diff-BEdzuHlE.js +7 -0
- package/out/renderer/assets/docker-CUaLOm2I.js +7 -0
- package/out/renderer/assets/dotenv-Bb4iNxXK.js +7 -0
- package/out/renderer/assets/dracula-B8-AVrwI.js +4 -0
- package/out/renderer/assets/dracula-soft-BHeefow7.js +4 -0
- package/out/renderer/assets/dream-maker-CNLQpoF-.js +7 -0
- package/out/renderer/assets/edge-CnHxQ_FD.js +15 -0
- package/out/renderer/assets/elixir-B_LIBv5J.js +11 -0
- package/out/renderer/assets/elm-BlO7pcFp.js +10 -0
- package/out/renderer/assets/emacs-lisp-4gdXY_g3.js +7 -0
- package/out/renderer/assets/{erDiagram-SMLLAGMA-Dvf_c-7M.js → erDiagram-SMLLAGMA-Bz4ALNLp.js} +4 -4
- package/out/renderer/assets/erb-Bzn22wO6.js +28 -0
- package/out/renderer/assets/erlang-Ch5kuXHm.js +9 -0
- package/out/renderer/assets/everforest-dark-Cg1xdODP.js +4 -0
- package/out/renderer/assets/everforest-light-BmTD3bxe.js +4 -0
- package/out/renderer/assets/fennel-BTELNkeT.js +7 -0
- package/out/renderer/assets/fish-kGF2-4SL.js +7 -0
- package/out/renderer/assets/{flowDiagram-DWJPFMVM-CPDjOXYp.js → flowDiagram-DWJPFMVM-Uqg1ZeN2.js} +6 -6
- package/out/renderer/assets/fluent-YyC28MRr.js +7 -0
- package/out/renderer/assets/fortran-fixed-form-CpmOyvS5.js +9 -0
- package/out/renderer/assets/fortran-free-form-5X94ETMi.js +7 -0
- package/out/renderer/assets/fsharp-5vtGqRR9.js +9 -0
- package/out/renderer/assets/{ganttDiagram-T4ZO3ILL-B4dJrK-3.js → ganttDiagram-T4ZO3ILL-Dm0tRLCH.js} +1 -1
- package/out/renderer/assets/gdresource-B5TLWiFO.js +11 -0
- package/out/renderer/assets/gdscript-CNW3Aj-d.js +7 -0
- package/out/renderer/assets/gdshader-BEzE4j_3.js +7 -0
- package/out/renderer/assets/genie-BvhtM5Ga.js +7 -0
- package/out/renderer/assets/gherkin-xCNF9gh8.js +7 -0
- package/out/renderer/assets/git-commit-PP9xCApN.js +9 -0
- package/out/renderer/assets/git-rebase-D-XQSvDj.js +9 -0
- package/out/renderer/assets/{gitGraphDiagram-UUTBAWPF-De2eCfMN.js → gitGraphDiagram-UUTBAWPF-R8imfIrj.js} +6 -6
- package/out/renderer/assets/github-dark-O22yVQaY.js +4 -0
- package/out/renderer/assets/github-dark-default-DB2Hkvqn.js +4 -0
- package/out/renderer/assets/github-dark-dimmed-CMZ_OfqC.js +4 -0
- package/out/renderer/assets/github-dark-high-contrast-DmxWVmCU.js +4 -0
- package/out/renderer/assets/github-light-BTbR9xVK.js +4 -0
- package/out/renderer/assets/github-light-default-DWEonwFe.js +4 -0
- package/out/renderer/assets/github-light-high-contrast-WJ_cPDts.js +4 -0
- package/out/renderer/assets/gleam-LmNxrMsN.js +7 -0
- package/out/renderer/assets/glimmer-js-h2QNNiD7.js +15 -0
- package/out/renderer/assets/glimmer-ts-Bk3uX6Ae.js +15 -0
- package/out/renderer/assets/glsl-CGsiYPcu.js +9 -0
- package/out/renderer/assets/gn-OUMx7fqt.js +7 -0
- package/out/renderer/assets/gnuplot-tV8vezdE.js +7 -0
- package/out/renderer/assets/go-DRMr3iML.js +7 -0
- package/out/renderer/assets/{graph-BFn23kR_.js → graph-B5YWEnt0.js} +2 -2
- package/out/renderer/assets/graphql-CwmtR1ib.js +15 -0
- package/out/renderer/assets/groovy-Bn4MhXgW.js +7 -0
- package/out/renderer/assets/gruvbox-dark-hard-DVsRsETr.js +4 -0
- package/out/renderer/assets/gruvbox-dark-medium-B5JBrQdg.js +4 -0
- package/out/renderer/assets/gruvbox-dark-soft-Db-YOqRx.js +4 -0
- package/out/renderer/assets/gruvbox-light-hard-CXzJt7DI.js +4 -0
- package/out/renderer/assets/gruvbox-light-medium-B89RAI1Y.js +4 -0
- package/out/renderer/assets/gruvbox-light-soft-Cs0hTZYv.js +4 -0
- package/out/renderer/assets/hack-BTX3ICIE.js +13 -0
- package/out/renderer/assets/haml-DrIklt7F.js +11 -0
- package/out/renderer/assets/handlebars-yWFGGD2R.js +15 -0
- package/out/renderer/assets/haskell-CzPS7wjM.js +7 -0
- package/out/renderer/assets/haxe-BpobLYM9.js +7 -0
- package/out/renderer/assets/hcl-axoq0Ycu.js +7 -0
- package/out/renderer/assets/hjson-I7LcauIB.js +7 -0
- package/out/renderer/assets/hlsl-TRzjajlb.js +7 -0
- package/out/renderer/assets/horizon-DWzh3z5C.js +4 -0
- package/out/renderer/assets/horizon-bright-C1AFkPsv.js +4 -0
- package/out/renderer/assets/houston-CF_ws8Cq.js +4 -0
- package/out/renderer/assets/html-GC16tDh9.js +11 -0
- package/out/renderer/assets/html-derivative-HU9p64q4.js +11 -0
- package/out/renderer/assets/http-DjsOm9E4.js +20 -0
- package/out/renderer/assets/hurl-Am2cDU4f.js +18 -0
- package/out/renderer/assets/hxml-Jle7oGdm.js +9 -0
- package/out/renderer/assets/hy-B1k9U6S8.js +7 -0
- package/out/renderer/assets/imba-C4923lSV.js +7 -0
- package/out/renderer/assets/{index-BkntVzTm.css → index-B6Zj03wk.css} +82 -24
- package/out/renderer/assets/{index-BL-57WPa.js → index-D7Xi0GX5.js} +30034 -9238
- package/out/renderer/assets/{infoDiagram-42DDH7IO-BIt9B6mQ.js → infoDiagram-42DDH7IO-CWPYNP1k.js} +4 -4
- package/out/renderer/assets/ini-B84Ha1bx.js +7 -0
- package/out/renderer/assets/{ishikawaDiagram-UXIWVN3A-CXZs0KGV.js → ishikawaDiagram-UXIWVN3A-CFTrc-S6.js} +1 -1
- package/out/renderer/assets/java-BfXh-0uJ.js +7 -0
- package/out/renderer/assets/javascript-BsAkV7mL.js +7 -0
- package/out/renderer/assets/jinja-FkIlHBgj.js +16 -0
- package/out/renderer/assets/jison-BkdOIOd4.js +9 -0
- package/out/renderer/assets/{journeyDiagram-VCZTEJTY-B-EXuj5b.js → journeyDiagram-VCZTEJTY-Dfd-piIf.js} +4 -4
- package/out/renderer/assets/json-TjWBGEk1.js +7 -0
- package/out/renderer/assets/json5-DCGCKrmX.js +7 -0
- package/out/renderer/assets/jsonc-DLVLp8id.js +7 -0
- package/out/renderer/assets/jsonl-B-R_pDGg.js +7 -0
- package/out/renderer/assets/jsonnet-Cs8BnnC6.js +7 -0
- package/out/renderer/assets/jssm-DDuANZ2u.js +7 -0
- package/out/renderer/assets/jsx-BPmvoin2.js +7 -0
- package/out/renderer/assets/julia-CU_UwNb8.js +20 -0
- package/out/renderer/assets/just-tGFryTtU.js +34 -0
- package/out/renderer/assets/kanagawa-dragon-DU8n2NNT.js +4 -0
- package/out/renderer/assets/kanagawa-lotus-Byd0CDet.js +4 -0
- package/out/renderer/assets/kanagawa-wave-DExoagcR.js +4 -0
- package/out/renderer/assets/{kanban-definition-6JOO6SKY-ByvN0qaD.js → kanban-definition-6JOO6SKY-BocrfAtb.js} +2 -2
- package/out/renderer/assets/kdl-DzNQTDs7.js +7 -0
- package/out/renderer/assets/kotlin-BM2ZNTMh.js +7 -0
- package/out/renderer/assets/kusto-dtpuxMFE.js +7 -0
- package/out/renderer/assets/laserwave-DF03wMlf.js +4 -0
- package/out/renderer/assets/latex-B0gTO9uZ.js +10 -0
- package/out/renderer/assets/{layout-BpybWUv6.js → layout-DHzrXVin.js} +4 -4
- package/out/renderer/assets/lean-CTow-IzD.js +7 -0
- package/out/renderer/assets/less-BAzLMJNR.js +7 -0
- package/out/renderer/assets/light-plus-DS08Xg5J.js +4 -0
- package/out/renderer/assets/liquid-QmJ_LYTW.js +15 -0
- package/out/renderer/assets/llvm-CTKcAHbb.js +7 -0
- package/out/renderer/assets/log-BF22rfM9.js +7 -0
- package/out/renderer/assets/logo-D9l7oEJ8.js +7 -0
- package/out/renderer/assets/lua-BVbbqwZC.js +9 -0
- package/out/renderer/assets/luau-CdZ6BoEa.js +7 -0
- package/out/renderer/assets/make-DLtqaK4D.js +7 -0
- package/out/renderer/assets/markdown-F_EULe_G.js +7 -0
- package/out/renderer/assets/marko-BAWrmNIa.js +15 -0
- package/out/renderer/assets/material-theme-B8B2U48Q.js +4 -0
- package/out/renderer/assets/material-theme-darker-BV0iY_T3.js +4 -0
- package/out/renderer/assets/material-theme-lighter-DrzybSTF.js +4 -0
- package/out/renderer/assets/material-theme-ocean-BRPLVReX.js +4 -0
- package/out/renderer/assets/material-theme-palenight-DSJwsR_D.js +4 -0
- package/out/renderer/assets/matlab-7XHduepk.js +7 -0
- package/out/renderer/assets/mdc-Ca0ft0PS.js +16 -0
- package/out/renderer/assets/mdx-D5wExp-O.js +7 -0
- package/out/renderer/assets/mermaid-z_1ejSlp.js +7 -0
- package/out/renderer/assets/{min-DB8ixvoT.js → min-D6g96v7R.js} +2 -2
- package/out/renderer/assets/min-dark-BNaN9fWk.js +4 -0
- package/out/renderer/assets/min-light-CMrjentn.js +4 -0
- package/out/renderer/assets/{mindmap-definition-QFDTVHPH-Do-I-At8.js → mindmap-definition-QFDTVHPH-D9cyK1Gb.js} +3 -3
- package/out/renderer/assets/mipsasm-BQyyUrpa.js +7 -0
- package/out/renderer/assets/mojo-ByCRDvCf.js +7 -0
- package/out/renderer/assets/monokai-DelygWXa.js +4 -0
- package/out/renderer/assets/moonbit-CqjK87KZ.js +7 -0
- package/out/renderer/assets/move-DhTNmxqC.js +7 -0
- package/out/renderer/assets/narrat-CLjGcbCy.js +7 -0
- package/out/renderer/assets/nextflow-B166B-y1.js +9 -0
- package/out/renderer/assets/nextflow-groovy-BOO9s0iq.js +7 -0
- package/out/renderer/assets/nginx-BFAkI5_-.js +10 -0
- package/out/renderer/assets/night-owl-DSS199ra.js +4 -0
- package/out/renderer/assets/night-owl-light-gC6E-Eh2.js +4 -0
- package/out/renderer/assets/nim-B3PAIZ4D.js +22 -0
- package/out/renderer/assets/nix-ByWcmvXF.js +12 -0
- package/out/renderer/assets/nord-CvDbBq5M.js +4 -0
- package/out/renderer/assets/nushell-DB8ZUEbK.js +7 -0
- package/out/renderer/assets/objective-c-BRoNQF42.js +7 -0
- package/out/renderer/assets/objective-cpp-DEoN9Fe5.js +7 -0
- package/out/renderer/assets/ocaml-B1kfGk9Y.js +7 -0
- package/out/renderer/assets/odin-CNQ56Ay2.js +7 -0
- package/out/renderer/assets/one-dark-pro-CsMf0BoJ.js +4 -0
- package/out/renderer/assets/one-light-B0cTzZyr.js +4 -0
- package/out/renderer/assets/openscad-C_m7ehZF.js +7 -0
- package/out/renderer/assets/pascal-CU8Kjkr_.js +7 -0
- package/out/renderer/assets/perl-HITCDkgu.js +18 -0
- package/out/renderer/assets/php-C2HieitX.js +20 -0
- package/out/renderer/assets/{pieDiagram-DEJITSTG-Cnpf6Gt6.js → pieDiagram-DEJITSTG-LUWwVJA5.js} +6 -6
- package/out/renderer/assets/pierre-dark-DADY5eR0.js +4 -0
- package/out/renderer/assets/pierre-light-DUjirxKp.js +4 -0
- package/out/renderer/assets/pkl-BsByaYax.js +7 -0
- package/out/renderer/assets/plastic-BjwMpBc0.js +4 -0
- package/out/renderer/assets/plsql-B3Na24V4.js +7 -0
- package/out/renderer/assets/po-BajfNjc5.js +7 -0
- package/out/renderer/assets/poimandres-ChWyhPrn.js +4 -0
- package/out/renderer/assets/polar-BB-dlxnO.js +7 -0
- package/out/renderer/assets/postcss-kj1IbjVd.js +7 -0
- package/out/renderer/assets/powerquery-B-e1fO-k.js +7 -0
- package/out/renderer/assets/powershell-BcMVbGpk.js +7 -0
- package/out/renderer/assets/prisma-bmxcSDxq.js +7 -0
- package/out/renderer/assets/prolog-BT9GCzqD.js +7 -0
- package/out/renderer/assets/proto-Ds-m32NR.js +7 -0
- package/out/renderer/assets/pug-BwQB43qN.js +13 -0
- package/out/renderer/assets/puppet-N15G4Usj.js +7 -0
- package/out/renderer/assets/purescript-DrwsEYNH.js +7 -0
- package/out/renderer/assets/python-CrdIx4PZ.js +7 -0
- package/out/renderer/assets/qml-jtL8okyu.js +9 -0
- package/out/renderer/assets/qmldir-DuMSk0Oz.js +7 -0
- package/out/renderer/assets/qss-BFrB6p4y.js +7 -0
- package/out/renderer/assets/{quadrantDiagram-34T5L4WZ-VcOb1qLd.js → quadrantDiagram-34T5L4WZ-DdWTi9yW.js} +1 -1
- package/out/renderer/assets/r-Dpdc-Kyk.js +7 -0
- package/out/renderer/assets/racket-DbA06HL7.js +7 -0
- package/out/renderer/assets/raku-6v-Y17bs.js +7 -0
- package/out/renderer/assets/razor-gBXW6YBJ.js +13 -0
- package/out/renderer/assets/red-DByOl5N0.js +4 -0
- package/out/renderer/assets/reg-CULnG2WX.js +7 -0
- package/out/renderer/assets/regexp-BxWeO75u.js +7 -0
- package/out/renderer/assets/rel-CHRwzjd4.js +7 -0
- package/out/renderer/assets/{requirementDiagram-MS252O5E-VJs9Hpaw.js → requirementDiagram-MS252O5E-BoLT3tay.js} +3 -3
- package/out/renderer/assets/riscv-BNQ9cVpw.js +7 -0
- package/out/renderer/assets/ron-CUEPaFZU.js +7 -0
- package/out/renderer/assets/rose-pine-B-kZ4Z9q.js +4 -0
- package/out/renderer/assets/rose-pine-dawn-efeVGdSI.js +4 -0
- package/out/renderer/assets/rose-pine-moon-DmodZNzl.js +4 -0
- package/out/renderer/assets/rosmsg-Bfahr6vb.js +7 -0
- package/out/renderer/assets/rst-by6KAwTb.js +37 -0
- package/out/renderer/assets/ruby-C13Bjepi.js +37 -0
- package/out/renderer/assets/rust-CMNYZh5a.js +7 -0
- package/out/renderer/assets/{sankeyDiagram-XADWPNL6-BoXxgLvi.js → sankeyDiagram-XADWPNL6-B4gY_QI-.js} +1 -1
- package/out/renderer/assets/sas-BLBgC3TA.js +9 -0
- package/out/renderer/assets/sass-BheygBdF.js +7 -0
- package/out/renderer/assets/scala-B-_7vFVn.js +7 -0
- package/out/renderer/assets/scheme-BSHdPinv.js +7 -0
- package/out/renderer/assets/scss-Dq-LbI_c.js +9 -0
- package/out/renderer/assets/sdbl-BBUhycGU.js +7 -0
- package/out/renderer/assets/{sequenceDiagram-FGHM5R23-b69hQjSp.js → sequenceDiagram-FGHM5R23-B-JJvxQW.js} +3 -3
- package/out/renderer/assets/shaderlab-C07uO3dL.js +9 -0
- package/out/renderer/assets/shellscript-CQ8MXh-D.js +7 -0
- package/out/renderer/assets/shellsession-CkeTp4M1.js +9 -0
- package/out/renderer/assets/slack-dark-BEe10hxO.js +4 -0
- package/out/renderer/assets/slack-ochin-BKmu9pBc.js +4 -0
- package/out/renderer/assets/smalltalk-qxcGy4fT.js +7 -0
- package/out/renderer/assets/snazzy-light-Dcvd-ZyI.js +4 -0
- package/out/renderer/assets/solarized-dark-BBl5y5sR.js +4 -0
- package/out/renderer/assets/solarized-light-DW9b_AY8.js +4 -0
- package/out/renderer/assets/solidity-CSTQ0FCC.js +7 -0
- package/out/renderer/assets/soy-BHaHgMUy.js +11 -0
- package/out/renderer/assets/sparql-DswowMAp.js +9 -0
- package/out/renderer/assets/splunk-DcGJXIDa.js +7 -0
- package/out/renderer/assets/sql-DzUuSofg.js +7 -0
- package/out/renderer/assets/ssh-config-Bk_I5wDR.js +7 -0
- package/out/renderer/assets/stata-Dl7wDdBE.js +9 -0
- package/out/renderer/assets/{stateDiagram-FHFEXIEX-BK7E-REm.js → stateDiagram-FHFEXIEX-BntwOBUs.js} +8 -8
- package/out/renderer/assets/{stateDiagram-v2-QKLJ7IA2-Cd2wfCQu.js → stateDiagram-v2-QKLJ7IA2-C__eWVIe.js} +4 -4
- package/out/renderer/assets/stylus-DXFa_2Jl.js +7 -0
- package/out/renderer/assets/surrealql-Bs3vUeKA.js +9 -0
- package/out/renderer/assets/svelte-fC0HkEkx.js +15 -0
- package/out/renderer/assets/swift-Cohr-WZC.js +7 -0
- package/out/renderer/assets/synthwave-84-CoUef9sh.js +4 -0
- package/out/renderer/assets/system-verilog-BcESSvRn.js +7 -0
- package/out/renderer/assets/systemd-DJPFjU02.js +7 -0
- package/out/renderer/assets/talonscript-CEEMXJTH.js +7 -0
- package/out/renderer/assets/tasl-DfOr2qHi.js +7 -0
- package/out/renderer/assets/tcl-CTsc4-t7.js +7 -0
- package/out/renderer/assets/templ-CSEiQwNm.js +13 -0
- package/out/renderer/assets/terraform-CeztUfUr.js +7 -0
- package/out/renderer/assets/tex-CGVqF8nD.js +9 -0
- package/out/renderer/assets/{timeline-definition-GMOUNBTQ-Bl-MTfK5.js → timeline-definition-GMOUNBTQ-C7ch2INk.js} +2 -2
- package/out/renderer/assets/tokyo-night-DjtLpAEY.js +4 -0
- package/out/renderer/assets/toml-vHPzWDj6.js +7 -0
- package/out/renderer/assets/ts-tags-cG2hZuda.js +54 -0
- package/out/renderer/assets/tsv-ChRVFvMy.js +7 -0
- package/out/renderer/assets/tsx-CmGGo4Hm.js +7 -0
- package/out/renderer/assets/turtle-BnC7StHY.js +7 -0
- package/out/renderer/assets/twig-CwEEYIBf.js +36 -0
- package/out/renderer/assets/typescript-CP6ECzON.js +7 -0
- package/out/renderer/assets/typespec-CkDVVIcK.js +7 -0
- package/out/renderer/assets/typst-XYLFxYau.js +7 -0
- package/out/renderer/assets/v-BSYXvR4g.js +7 -0
- package/out/renderer/assets/vala-qJa5rry9.js +7 -0
- package/out/renderer/assets/vb-Bzg9rspf.js +7 -0
- package/out/renderer/assets/{vennDiagram-DHZGUBPP-DNmr1k2L.js → vennDiagram-DHZGUBPP-CQ__NSue.js} +1 -1
- package/out/renderer/assets/verilog-CCb_iTfF.js +7 -0
- package/out/renderer/assets/vesper-4Q1cEwPL.js +4 -0
- package/out/renderer/assets/vhdl-DMqk4T2s.js +7 -0
- package/out/renderer/assets/viml--FINbfoq.js +7 -0
- package/out/renderer/assets/vitesse-black-BqNLki8b.js +4 -0
- package/out/renderer/assets/vitesse-dark-jJ32WhwH.js +4 -0
- package/out/renderer/assets/vitesse-light-476zM4e6.js +4 -0
- package/out/renderer/assets/vue-K-7Ga-y8.js +40 -0
- package/out/renderer/assets/vue-html-DhreShjd.js +9 -0
- package/out/renderer/assets/vue-vine-rMIwOpFf.js +19 -0
- package/out/renderer/assets/vyper-DP4whl13.js +7 -0
- package/out/renderer/assets/{wardley-RL74JXVD-DTbxPMj9.js → wardley-RL74JXVD-Kh6mNiRV.js} +3 -3
- package/out/renderer/assets/{wardleyDiagram-NUSXRM2D-BWw08wtD.js → wardleyDiagram-NUSXRM2D-CfRYzJMU.js} +5 -5
- package/out/renderer/assets/wasm-BBh6f151.js +7 -0
- package/out/renderer/assets/wasm-DDgzZJey.js +10 -0
- package/out/renderer/assets/wenyan-BdqozpMZ.js +7 -0
- package/out/renderer/assets/wgsl-Vo-hHVWH.js +7 -0
- package/out/renderer/assets/wikitext-BDjE6pmL.js +7 -0
- package/out/renderer/assets/wit-C_nQzOkY.js +7 -0
- package/out/renderer/assets/wolfram-CRmjUoI4.js +7 -0
- package/out/renderer/assets/xml-BMzZeaqs.js +9 -0
- package/out/renderer/assets/xsl-CnwVr_6q.js +10 -0
- package/out/renderer/assets/{xychartDiagram-5P7HB3ND-EEYPnLDT.js → xychartDiagram-5P7HB3ND-BFq2zIne.js} +1 -1
- package/out/renderer/assets/yaml-B_vW5iTY.js +7 -0
- package/out/renderer/assets/zenscript-DFINJL6j.js +7 -0
- package/out/renderer/assets/zig-CS4FMAZp.js +7 -0
- package/out/renderer/index.html +2 -2
- package/out/resources/linux/probe +0 -0
- package/out/resources/linux-x64/probe +0 -0
- package/out/resources/mcp-server/aider-desk-mcp-server.js +16 -1
- package/out/resources/prompts/code-change-requests.hbs +21 -0
- package/out/resources/skills/extension-creator/SKILL.md +345 -0
- package/out/resources/skills/extension-creator/assets/templates/Component.jsx.template +76 -0
- package/out/resources/skills/extension-creator/assets/templates/ConfigComponent.jsx.template +38 -0
- package/out/resources/skills/extension-creator/assets/templates/folder-extension/config.ts.template +29 -0
- package/out/resources/skills/extension-creator/assets/templates/folder-extension/index.ts.template +42 -0
- package/out/resources/skills/extension-creator/assets/templates/folder-extension/package.json +12 -0
- package/out/resources/skills/extension-creator/assets/templates/folder-extension/tsconfig.json +23 -0
- package/out/resources/skills/extension-creator/assets/templates/folder-extension-with-config/index.ts.template +80 -0
- package/out/resources/skills/extension-creator/assets/templates/single-file.ts.template +30 -0
- package/out/resources/skills/extension-creator/assets/templates/ui-component-external.ts.template +91 -0
- package/out/resources/skills/extension-creator/assets/templates/ui-component.ts.template +79 -0
- package/out/resources/skills/extension-creator/references/command-definition.md +170 -0
- package/out/resources/skills/extension-creator/references/config-components.md +427 -0
- package/out/resources/skills/extension-creator/references/event-types.md +156 -0
- package/out/resources/skills/extension-creator/references/examples-gallery.md +583 -0
- package/out/resources/skills/extension-creator/references/extension-interface.md +306 -0
- package/out/resources/skills/extension-creator/references/extension-types.md +186 -0
- package/out/resources/skills/extension-creator/references/in-repo-flow.md +132 -0
- package/out/resources/skills/extension-creator/references/install-targets.md +96 -0
- package/out/resources/skills/extension-creator/references/project-global-flow.md +76 -0
- package/out/resources/skills/extension-creator/references/ui-components.md +663 -0
- package/out/runner.js +509 -164
- package/package.json +11 -9
- package/out/resources/prompts/code-inline-request.hbs +0 -16
- /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/`)
|