@ai-projector/ide 0.0.0-stage → 0.11.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/LICENSE +21 -0
- package/README.md +35 -2
- package/bin/install-desktop +17 -0
- package/bin/install-desktop.cmd +11 -0
- package/bin/projector +22 -0
- package/bin/projector.cmd +11 -0
- package/dist/assets/CodeViewer-BAgvP3Yx.js +1 -0
- package/dist/assets/CodeViewer-QIU6uQDH.css +1 -0
- package/dist/assets/DiscussionView-83kZBzfq.js +2 -0
- package/dist/assets/DiscussionView-kEJZ0OhC.css +1 -0
- package/dist/assets/EditorSettings-CPklwfT-.js +13 -0
- package/dist/assets/EditorSettings-DVhn0sGg.css +1 -0
- package/dist/assets/HtmlViewer-C3Mf1IEK.css +1 -0
- package/dist/assets/HtmlViewer-CGHhO9bM.js +2 -0
- package/dist/assets/ImageViewport-BXN_-Ztv.css +1 -0
- package/dist/assets/ImageViewport-lPITcKgO.js +1 -0
- package/dist/assets/IssueView-CfdeTTKs.js +1 -0
- package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/assets/MarkdownViewer-3VG5ygRT.css +1 -0
- package/dist/assets/MarkdownViewer-DKZvt6XG.js +2 -0
- package/dist/assets/PullRequestView-Bce3nQML.js +3 -0
- package/dist/assets/PullRequestView-F_M37BOq.css +1 -0
- package/dist/assets/ReleaseView-BKH8Kb3T.css +1 -0
- package/dist/assets/ReleaseView-DO-R7ktE.js +2 -0
- package/dist/assets/SplitPanes-BJR26w00.css +1 -0
- package/dist/assets/SplitPanes-DR126xV8.js +1 -0
- package/dist/assets/SvgViewer-CEIl2Ob2.js +2 -0
- package/dist/assets/SvgViewer-DyAp20sd.css +1 -0
- package/dist/assets/TerminalView-CDAJ5gmT.js +16 -0
- package/dist/assets/TerminalView-DnkOpsvR.css +1 -0
- package/dist/assets/TrackerDetail-CV0Qqzx3.js +1 -0
- package/dist/assets/TrackerDetail-OFp4ONUm.css +1 -0
- package/dist/assets/UiPanel-CND7Qs_n.js +1 -0
- package/dist/assets/UiPanel-CS77nWcC.css +1 -0
- package/dist/assets/UiViewerPage-BOvnLith.css +1 -0
- package/dist/assets/UiViewerPage-z_s1uFHO.js +2 -0
- package/dist/assets/VisualMarkdownEditor-CcbKSvtd.css +1 -0
- package/dist/assets/VisualMarkdownEditor-CwwWF0eb.js +1069 -0
- package/dist/assets/_plugin-vue_export-helper-C4wFX7Eq.js +24 -0
- package/dist/assets/apl-gfMMiTNf.js +1 -0
- package/dist/assets/asciiarmor-C_eisQCp.js +1 -0
- package/dist/assets/asn1-DCl_8MCW.js +1 -0
- package/dist/assets/asterisk-BEn0Cwpx.js +1 -0
- package/dist/assets/brainfuck-D5EjA2JK.js +1 -0
- package/dist/assets/clike-xvONpD0Z.js +1 -0
- package/dist/assets/clojure-BflJGmDX.js +1 -0
- package/dist/assets/cmake-84nbDH0I.js +1 -0
- package/dist/assets/cobol-DHLQUbN7.js +1 -0
- package/dist/assets/coffeescript-De_zI4J0.js +1 -0
- package/dist/assets/commonlisp-DgAKBe0r.js +1 -0
- package/dist/assets/compiler-dom.esm-bundler-B0iuTsih.js +9 -0
- package/dist/assets/crystal-Bl6YKCG_.js +1 -0
- package/dist/assets/css-CnaYoQib.js +1 -0
- package/dist/assets/cypher-p9eYesGn.js +1 -0
- package/dist/assets/d-DWkQyNnU.js +1 -0
- package/dist/assets/diff-ChtP43wD.js +1 -0
- package/dist/assets/dist-23D313r2.js +13 -0
- package/dist/assets/dist-9YLT-RM-.js +11 -0
- package/dist/assets/dist-9guQ6tUS.js +1 -0
- package/dist/assets/dist-B1XyTjRF.js +1 -0
- package/dist/assets/dist-BA_HKdx1.js +2 -0
- package/dist/assets/dist-BVEl6uFx.js +1 -0
- package/dist/assets/dist-B_hKnsNE.js +1 -0
- package/dist/assets/dist-BnsBZm0f.js +1 -0
- package/dist/assets/dist-Br4AY_oy.js +1 -0
- package/dist/assets/dist-BuiJgwGF.js +9 -0
- package/dist/assets/dist-C-1XYtJO.js +1 -0
- package/dist/assets/dist-C1mn-4rn.js +1 -0
- package/dist/assets/dist-CRLdLpSX.js +2 -0
- package/dist/assets/dist-CpgyHBvu.js +1 -0
- package/dist/assets/dist-CrRIwgTS.js +1 -0
- package/dist/assets/dist-CxoUUhWx.js +1 -0
- package/dist/assets/dist-CyRvGpIP.js +1 -0
- package/dist/assets/dist-Dqsd8MyB.js +1 -0
- package/dist/assets/dist-DrZek4TY.js +1 -0
- package/dist/assets/dist-DzAS050M.js +23 -0
- package/dist/assets/dist-NMUsQt1c.js +1 -0
- package/dist/assets/dist-b78ZWHZy.js +1 -0
- package/dist/assets/dist-dwBOnDaY.js +2 -0
- package/dist/assets/dist-gPzXCSJV.js +6 -0
- package/dist/assets/dist-p1Xy77w3.js +1 -0
- package/dist/assets/dist-tNJpR9Y1.js +1 -0
- package/dist/assets/dockerfile-DJkHQgkl.js +1 -0
- package/dist/assets/dtd-DTF72YNO.js +1 -0
- package/dist/assets/dylan-S7ucR4pR.js +1 -0
- package/dist/assets/ebnf-D4c0_ac3.js +1 -0
- package/dist/assets/ecl-BVIeWmwY.js +1 -0
- package/dist/assets/editor-theme-DuQQ8n56.js +1 -0
- package/dist/assets/eiffel-BEjRio4Q.js +1 -0
- package/dist/assets/elm-Cshzl8qu.js +1 -0
- package/dist/assets/erlang-BV0c4Hdn.js +1 -0
- package/dist/assets/events.worker-C2Opu9Sc.js +1 -0
- package/dist/assets/external-link-BFTqPI03.js +1 -0
- package/dist/assets/factor-LKH5gN8L.js +1 -0
- package/dist/assets/fcl-ClOhbFR7.js +1 -0
- package/dist/assets/forth-D6RzAl64.js +1 -0
- package/dist/assets/fortran-Bt6PBEDR.js +1 -0
- package/dist/assets/gas-BHEdbvp9.js +1 -0
- package/dist/assets/gherkin-oBAE_ms0.js +1 -0
- package/dist/assets/github-emoji-C2UmmDoA.js +169 -0
- package/dist/assets/github-emoji-qJihbtN6.css +1 -0
- package/dist/assets/groovy-CUrWKPia.js +1 -0
- package/dist/assets/haskell-BRsoo5mP.js +1 -0
- package/dist/assets/haxe-DjVOVvNP.js +1 -0
- package/dist/assets/http-CLVgA2GD.js +1 -0
- package/dist/assets/hub-rvbmNftk.js +1 -0
- package/dist/assets/idl-BUZw3wgd.js +1 -0
- package/dist/assets/javascript-lS2r2ifg.js +1 -0
- package/dist/assets/julia-CQfgDRfP.js +1 -0
- package/dist/assets/livescript-BXxG0Yva.js +1 -0
- package/dist/assets/lua-DPCEkfD_.js +1 -0
- package/dist/assets/main-CgMl4Qjs.css +1 -0
- package/dist/assets/main-DEEGhxlk.js +186 -0
- package/dist/assets/mathematica-u8YMmbU0.js +1 -0
- package/dist/assets/mbox-BEMVcqjs.js +1 -0
- package/dist/assets/mirc-C9zpzAZU.js +1 -0
- package/dist/assets/mllike-B45xgp2S.js +1 -0
- package/dist/assets/modelica-CqHI_q-D.js +1 -0
- package/dist/assets/mscgen-qgSLujhx.js +1 -0
- package/dist/assets/mumps-BSzj6Xyz.js +1 -0
- package/dist/assets/nginx-C-ORUuei.js +1 -0
- package/dist/assets/nsis-viPvXFiq.js +1 -0
- package/dist/assets/ntriples-CzMBulkp.js +1 -0
- package/dist/assets/octave-D2Q8cUp1.js +1 -0
- package/dist/assets/oz-BwTct_5T.js +1 -0
- package/dist/assets/pascal-Dp_KdFgX.js +1 -0
- package/dist/assets/perl-BkSkiI9m.js +1 -0
- package/dist/assets/pig-AF4Hwhju.js +1 -0
- package/dist/assets/powershell-D8WpQPaX.js +1 -0
- package/dist/assets/preload-helper-BLdHbfdN.js +1 -0
- package/dist/assets/properties-C357ku5U.js +1 -0
- package/dist/assets/protobuf-D1ij_kNL.js +1 -0
- package/dist/assets/pug-BqCHZ5xT.js +1 -0
- package/dist/assets/puppet-BZyAS7I4.js +1 -0
- package/dist/assets/python-B_1Jd8HM.js +1 -0
- package/dist/assets/q-B9NhS7L_.js +1 -0
- package/dist/assets/r-CxDmU1I4.js +1 -0
- package/dist/assets/rpm-gpDK5sbt.js +1 -0
- package/dist/assets/ruby-ChfNwlCY.js +1 -0
- package/dist/assets/sas-C2OyD2Y6.js +1 -0
- package/dist/assets/scheme-D9qYN0V5.js +1 -0
- package/dist/assets/shared.esm-bundler-EUzHGNqQ.js +2 -0
- package/dist/assets/shared.worker-DpKROrNH.js +1 -0
- package/dist/assets/shell-DwuoZtxw.js +1 -0
- package/dist/assets/sieve-tLWDfEkZ.js +1 -0
- package/dist/assets/simple-mode-DXiLM1-G.js +1 -0
- package/dist/assets/smalltalk-BLp5-jwC.js +1 -0
- package/dist/assets/solr-B78wSQJQ.js +1 -0
- package/dist/assets/sparql-Dz-mlCAC.js +1 -0
- package/dist/assets/spreadsheet-CTIncYxj.js +1 -0
- package/dist/assets/sql-DuQMFDvy.js +1 -0
- package/dist/assets/stex-DNzd62Q_.js +1 -0
- package/dist/assets/styles-C07CLvbW.js +2 -0
- package/dist/assets/styles-CX3Ni7dk.css +1 -0
- package/dist/assets/stylus-BOVgKnng.js +1 -0
- package/dist/assets/swift-DKB6_1j6.js +1 -0
- package/dist/assets/tcl-BGfruO1u.js +1 -0
- package/dist/assets/textile-C4jVoHG1.js +1 -0
- package/dist/assets/tiddlywiki-VlUiK86J.js +1 -0
- package/dist/assets/tiki-CvUEFusT.js +1 -0
- package/dist/assets/toml-BPTmHmyx.js +1 -0
- package/dist/assets/troff-C2dAgh7P.js +1 -0
- package/dist/assets/ttcn-PPSTk1ow.js +1 -0
- package/dist/assets/ttcn-cfg-2b4Gb5sE.js +1 -0
- package/dist/assets/turtle-Cx3rYX2g.js +1 -0
- package/dist/assets/vb-BthdM_4N.js +1 -0
- package/dist/assets/vbscript-D9f6rSsU.js +1 -0
- package/dist/assets/velocity-CqftRsjg.js +1 -0
- package/dist/assets/verilog-CjI9Y6RI.js +1 -0
- package/dist/assets/vhdl-kS471soi.js +1 -0
- package/dist/assets/webidl-D5jiJvOU.js +1 -0
- package/dist/assets/xquery-BKJx4mf9.js +1 -0
- package/dist/assets/yacas-CXXgtw0p.js +1 -0
- package/dist/assets/z80-Co3PbHdE.js +1 -0
- package/dist/favicon.svg +5 -0
- package/dist/file-icons/LICENSE-lucide.txt +43 -0
- package/dist/file-icons/NOTICE.md +8 -0
- package/dist/file-icons/icons/archive.svg +1 -0
- package/dist/file-icons/icons/assets.svg +1 -0
- package/dist/file-icons/icons/audio.svg +1 -0
- package/dist/file-icons/icons/c.svg +1 -0
- package/dist/file-icons/icons/components.svg +1 -0
- package/dist/file-icons/icons/config.svg +1 -0
- package/dist/file-icons/icons/cpp.svg +1 -0
- package/dist/file-icons/icons/css.svg +1 -0
- package/dist/file-icons/icons/database.svg +1 -0
- package/dist/file-icons/icons/docker.svg +1 -0
- package/dist/file-icons/icons/env.svg +1 -0
- package/dist/file-icons/icons/executable.svg +1 -0
- package/dist/file-icons/icons/file.svg +1 -0
- package/dist/file-icons/icons/folder-open.svg +1 -0
- package/dist/file-icons/icons/folder.svg +1 -0
- package/dist/file-icons/icons/font.svg +1 -0
- package/dist/file-icons/icons/git.svg +1 -0
- package/dist/file-icons/icons/go.svg +1 -0
- package/dist/file-icons/icons/graphql.svg +1 -0
- package/dist/file-icons/icons/html.svg +1 -0
- package/dist/file-icons/icons/ignore.svg +1 -0
- package/dist/file-icons/icons/image.svg +1 -0
- package/dist/file-icons/icons/java.svg +1 -0
- package/dist/file-icons/icons/javascript.svg +1 -0
- package/dist/file-icons/icons/json.svg +1 -0
- package/dist/file-icons/icons/kotlin.svg +1 -0
- package/dist/file-icons/icons/license.svg +1 -0
- package/dist/file-icons/icons/lock.svg +1 -0
- package/dist/file-icons/icons/markdown.svg +1 -0
- package/dist/file-icons/icons/package.svg +1 -0
- package/dist/file-icons/icons/php.svg +1 -0
- package/dist/file-icons/icons/python.svg +1 -0
- package/dist/file-icons/icons/react.svg +1 -0
- package/dist/file-icons/icons/ruby.svg +1 -0
- package/dist/file-icons/icons/rust.svg +1 -0
- package/dist/file-icons/icons/sass.svg +1 -0
- package/dist/file-icons/icons/shell.svg +1 -0
- package/dist/file-icons/icons/source.svg +1 -0
- package/dist/file-icons/icons/svelte.svg +1 -0
- package/dist/file-icons/icons/swift.svg +1 -0
- package/dist/file-icons/icons/tests.svg +1 -0
- package/dist/file-icons/icons/toml.svg +1 -0
- package/dist/file-icons/icons/typescript.svg +1 -0
- package/dist/file-icons/icons/video.svg +1 -0
- package/dist/file-icons/icons/vite.svg +1 -0
- package/dist/file-icons/icons/vue.svg +1 -0
- package/dist/file-icons/icons/yaml.svg +1 -0
- package/dist/file-icons/theme.json +572 -0
- package/dist/file-icons/theme.schema.json +137 -0
- package/dist/github.svg +1 -0
- package/dist/gitlab.svg +1 -0
- package/dist/hub.html +19 -0
- package/dist/icons/apple-touch-icon.png +0 -0
- package/dist/icons/icon-192.png +0 -0
- package/dist/icons/icon-512.png +0 -0
- package/dist/icons/maskable-512.png +0 -0
- package/dist/index.html +39 -0
- package/dist/manifest.webmanifest +37 -0
- package/dist/sw.js +81 -0
- package/package.json +61 -3
- package/packages/cli/app/agent-host.js +163 -0
- package/packages/cli/app/desktop.js +77 -0
- package/packages/cli/app/fix-node-pty.js +52 -0
- package/packages/cli/app/import-companion-key.js +57 -0
- package/packages/cli/app/install-desktop.js +4 -0
- package/packages/cli/app/launch.js +134 -0
- package/packages/cli/app/restart.js +32 -0
- package/packages/cli/commands/logs.js +10 -0
- package/packages/cli/commands/open.js +49 -0
- package/packages/cli/commands/projects.js +18 -0
- package/packages/cli/commands/run.js +39 -0
- package/packages/cli/commands/search.js +19 -0
- package/packages/cli/commands/server.js +32 -0
- package/packages/cli/commands/status.js +42 -0
- package/packages/cli/common/output.js +13 -0
- package/packages/cli/modules/api/index.js +60 -0
- package/packages/cli/modules/arguments/index.js +188 -0
- package/packages/cli/modules/command-runtime/index.js +24 -0
- package/packages/cli/modules/projects/index.js +118 -0
- package/packages/cli/modules/server/index.js +226 -0
- package/packages/cli/modules/server-process/index.js +204 -0
- package/packages/core/modules/agent-features/index.js +8 -0
- package/packages/core/modules/agent-judge/index.js +73 -0
- package/packages/core/modules/agent-read/index.js +25 -0
- package/packages/core/modules/agent-role/index.js +187 -0
- package/packages/core/modules/agent-task/contract.js +34 -0
- package/packages/core/modules/agent-task/index.js +1 -0
- package/packages/core/modules/agent-widgets/bars/index.js +11 -0
- package/packages/core/modules/agent-widgets/button/index.js +19 -0
- package/packages/core/modules/agent-widgets/card/index.js +13 -0
- package/packages/core/modules/agent-widgets/checks/index.js +19 -0
- package/packages/core/modules/agent-widgets/chips/index.js +15 -0
- package/packages/core/modules/agent-widgets/columns/index.js +12 -0
- package/packages/core/modules/agent-widgets/donut/index.js +11 -0
- package/packages/core/modules/agent-widgets/field/index.js +39 -0
- package/packages/core/modules/agent-widgets/form/index.js +18 -0
- package/packages/core/modules/agent-widgets/git-info/index.js +29 -0
- package/packages/core/modules/agent-widgets/image/index.js +22 -0
- package/packages/core/modules/agent-widgets/inline-icon/index.js +45 -0
- package/packages/core/modules/agent-widgets/input/index.js +16 -0
- package/packages/core/modules/agent-widgets/intelligent-form/index.js +32 -0
- package/packages/core/modules/agent-widgets/line/index.js +12 -0
- package/packages/core/modules/agent-widgets/row/index.js +11 -0
- package/packages/core/modules/agent-widgets/safe-secret-show/index.js +21 -0
- package/packages/core/modules/agent-widgets/slider/index.js +18 -0
- package/packages/core/modules/agent-widgets/stat/index.js +16 -0
- package/packages/core/modules/agent-widgets/steps/index.js +14 -0
- package/packages/core/modules/agent-widgets/tab/index.js +12 -0
- package/packages/core/modules/agent-widgets/tabs/index.js +24 -0
- package/packages/core/modules/agents-integration/claude/index.js +1 -0
- package/packages/core/modules/agents-integration/codex/index.js +1 -0
- package/packages/core/modules/agents-integration/cursor/index.js +1 -0
- package/packages/core/modules/agents-integration/kimi/index.js +1 -0
- package/packages/core/modules/agents-integration/opencode/index.js +1 -0
- package/packages/core/modules/app-paths/index.js +14 -0
- package/packages/core/modules/app-paths/logs.js +194 -0
- package/packages/core/modules/app-paths/network-mode.js +24 -0
- package/packages/core/modules/app-paths/paths.js +40 -0
- package/packages/core/modules/app-paths/server-mode.js +18 -0
- package/packages/core/modules/appearance/index.js +35 -0
- package/packages/core/modules/browser/index.js +86 -0
- package/packages/core/modules/devcontainer/classify.js +101 -0
- package/packages/core/modules/devcontainer/contract.js +1 -0
- package/packages/core/modules/devcontainer/index.js +1 -0
- package/packages/core/modules/directories/contract.js +1 -0
- package/packages/core/modules/directories/index.js +1 -0
- package/packages/core/modules/docker/contract.js +1 -0
- package/packages/core/modules/docker/index.js +1 -0
- package/packages/core/modules/editor-themes/index.js +17 -0
- package/packages/core/modules/environment/index.js +1 -0
- package/packages/core/modules/file-icons/contract.js +177 -0
- package/packages/core/modules/file-icons/index.js +1 -0
- package/packages/core/modules/github/index.js +23 -0
- package/packages/core/modules/gitlab/index.js +164 -0
- package/packages/core/modules/hub/index.js +1 -0
- package/packages/core/modules/hub/protocol.js +19 -0
- package/packages/core/modules/ide/agent-command.js +48 -0
- package/packages/core/modules/ide/command-help.js +73 -0
- package/packages/core/modules/ide/commands.js +191 -0
- package/packages/core/modules/ide/index.js +6 -0
- package/packages/core/modules/ide/keybinding-editor.js +34 -0
- package/packages/core/modules/ide/keybindings.js +45 -0
- package/packages/core/modules/ide/palette.js +33 -0
- package/packages/core/modules/ide/safety.js +10 -0
- package/packages/core/modules/launcher/actions.js +5 -0
- package/packages/core/modules/launcher/index.js +5 -0
- package/packages/core/modules/launcher/launcher-model.js +236 -0
- package/packages/core/modules/launcher/launcher.js +76 -0
- package/packages/core/modules/launcher/query.js +42 -0
- package/packages/core/modules/network-mode/index.js +3 -0
- package/packages/core/modules/network-mode/network-mode.js +8 -0
- package/packages/core/modules/os/bash.js +11 -0
- package/packages/core/modules/os/contract.js +1 -0
- package/packages/core/modules/os/index.js +3 -0
- package/packages/core/modules/os/modules/darwin/catalog.js +108 -0
- package/packages/core/modules/os/modules/darwin/directories.js +40 -0
- package/packages/core/modules/os/modules/darwin/docker.js +15 -0
- package/packages/core/modules/os/modules/darwin/gtk.js +6 -0
- package/packages/core/modules/os/modules/darwin/helper.swift +172 -0
- package/packages/core/modules/os/modules/darwin/index.js +12 -0
- package/packages/core/modules/os/modules/darwin/install-desktop.js +135 -0
- package/packages/core/modules/os/modules/darwin/processes.js +97 -0
- package/packages/core/modules/os/modules/darwin/resident.js +235 -0
- package/packages/core/modules/os/modules/darwin/secrets.js +53 -0
- package/packages/core/modules/os/modules/darwin/shell.js +105 -0
- package/packages/core/modules/os/modules/darwin/shortcut.js +61 -0
- package/packages/core/modules/os/modules/darwin/tools.js +52 -0
- package/packages/core/modules/os/modules/darwin/windows.js +135 -0
- package/packages/core/modules/os/modules/linux/bus.js +48 -0
- package/packages/core/modules/os/modules/linux/catalog.js +47 -0
- package/packages/core/modules/os/modules/linux/directories.js +49 -0
- package/packages/core/modules/os/modules/linux/docker.js +48 -0
- package/packages/core/modules/os/modules/linux/index.js +53 -0
- package/packages/core/modules/os/modules/linux/install-desktop.js +66 -0
- package/packages/core/modules/os/modules/linux/processes.js +85 -0
- package/packages/core/modules/os/modules/linux/resident.js +139 -0
- package/packages/core/modules/os/modules/linux/secrets.js +118 -0
- package/packages/core/modules/os/modules/linux/shortcut.js +124 -0
- package/packages/core/modules/os/modules/linux/tools.js +14 -0
- package/packages/core/modules/os/modules/linux/tray.js +190 -0
- package/packages/core/modules/os/modules/linux/windows.js +187 -0
- package/packages/core/modules/os/modules/windows/agent-process.js +60 -0
- package/packages/core/modules/os/modules/windows/alert.js +20 -0
- package/packages/core/modules/os/modules/windows/catalog.js +91 -0
- package/packages/core/modules/os/modules/windows/color-scheme.js +26 -0
- package/packages/core/modules/os/modules/windows/directories.js +101 -0
- package/packages/core/modules/os/modules/windows/docker.js +17 -0
- package/packages/core/modules/os/modules/windows/git.js +42 -0
- package/packages/core/modules/os/modules/windows/hwnd.js +275 -0
- package/packages/core/modules/os/modules/windows/index.js +28 -0
- package/packages/core/modules/os/modules/windows/install-desktop.js +140 -0
- package/packages/core/modules/os/modules/windows/kill-tree.js +26 -0
- package/packages/core/modules/os/modules/windows/processes.js +300 -0
- package/packages/core/modules/os/modules/windows/ps.js +73 -0
- package/packages/core/modules/os/modules/windows/resident-pipe.js +206 -0
- package/packages/core/modules/os/modules/windows/resident.js +286 -0
- package/packages/core/modules/os/modules/windows/secrets.js +110 -0
- package/packages/core/modules/os/modules/windows/shell.js +288 -0
- package/packages/core/modules/os/modules/windows/shortcut.js +82 -0
- package/packages/core/modules/os/modules/windows/tools.js +273 -0
- package/packages/core/modules/os/modules/windows/windows.js +133 -0
- package/packages/core/modules/os/os.js +175 -0
- package/packages/core/modules/os/session-env.js +11 -0
- package/packages/core/modules/os-posix/agent-process.js +105 -0
- package/packages/core/modules/os-posix/contract.js +1 -0
- package/packages/core/modules/os-posix/git.js +26 -0
- package/packages/core/modules/os-posix/index.js +4 -0
- package/packages/core/modules/os-posix/tools.js +258 -0
- package/packages/core/modules/os-posix/xdg.js +8 -0
- package/packages/core/modules/project/contract.js +1 -0
- package/packages/core/modules/project/index.js +1 -0
- package/packages/core/modules/project/ref.js +126 -0
- package/packages/core/modules/server-mode/index.js +3 -0
- package/packages/core/modules/server-mode/server-mode.js +13 -0
- package/packages/core/modules/terminal/contract.js +1 -0
- package/packages/core/modules/terminal/index.js +1 -0
- package/packages/core/modules/usage-analytics/index.js +80 -0
- package/packages/core/modules/widget-catalog/guide.js +76 -0
- package/packages/core/modules/widget-catalog/index.js +219 -0
- package/packages/core/modules/workspace/changes.js +114 -0
- package/packages/core/modules/workspace/contract.js +1 -0
- package/packages/core/modules/workspace/file-size.js +12 -0
- package/packages/core/modules/workspace/files-exclude.js +119 -0
- package/packages/core/modules/workspace/git-decorations.js +4 -0
- package/packages/core/modules/workspace/git-graph.js +35 -0
- package/packages/core/modules/workspace/index.js +11 -0
- package/packages/core/modules/workspace/paths.js +16 -0
- package/packages/core/modules/workspace/pipeline-status.js +86 -0
- package/packages/core/modules/workspace/pull-requests.js +1 -0
- package/packages/core/modules/workspace/pull-status.js +56 -0
- package/packages/core/modules/workspace/scope.js +34 -0
- package/packages/core/modules/workspace/search.js +28 -0
- package/packages/core/modules/workspace/tree-page.js +25 -0
- package/packages/server/app/agents.js +30 -0
- package/packages/server/app/api.js +159 -0
- package/packages/server/app/claude-runner.js +17 -0
- package/packages/server/app/dev-plugin.js +76 -0
- package/packages/server/app/dev-runtime.js +119 -0
- package/packages/server/app/features.js +35 -0
- package/packages/server/app/plugin.js +140 -0
- package/packages/server/app/projector-runner.js +15 -0
- package/packages/server/app/runtime-contract.js +1 -0
- package/packages/server/app/standalone.js +42 -0
- package/packages/server/app/static.js +57 -0
- package/packages/server/app/widgets-mcp.js +36 -0
- package/packages/server/app/widgets.js +54 -0
- package/packages/server/middlewares/local-origin.js +4 -0
- package/packages/server/modules/access/access.js +118 -0
- package/packages/server/modules/access/connections.js +36 -0
- package/packages/server/modules/access/http.js +93 -0
- package/packages/server/modules/access/hub.js +19 -0
- package/packages/server/modules/access/index.js +6 -0
- package/packages/server/modules/access/lan-url.js +21 -0
- package/packages/server/modules/access/password.js +68 -0
- package/packages/server/modules/access/session.js +38 -0
- package/packages/server/modules/agent/agent-host.js +46 -0
- package/packages/server/modules/agent/agent-runs.js +162 -0
- package/packages/server/modules/agent/attachments.js +88 -0
- package/packages/server/modules/agent/backend.js +1 -0
- package/packages/server/modules/agent/chat-archive.js +67 -0
- package/packages/server/modules/agent/command-bridge.js +94 -0
- package/packages/server/modules/agent/controls.js +10 -0
- package/packages/server/modules/agent/event-streams.js +40 -0
- package/packages/server/modules/agent/history-store.js +320 -0
- package/packages/server/modules/agent/history.js +160 -0
- package/packages/server/modules/agent/hosted-process.js +279 -0
- package/packages/server/modules/agent/hosted-run.js +85 -0
- package/packages/server/modules/agent/hosted-runner.js +126 -0
- package/packages/server/modules/agent/index.js +35 -0
- package/packages/server/modules/agent/injection.js +14 -0
- package/packages/server/modules/agent/jobs-diff.js +114 -0
- package/packages/server/modules/agent/jobs-files.js +65 -0
- package/packages/server/modules/agent/jobs-followup.js +66 -0
- package/packages/server/modules/agent/jobs-live.js +180 -0
- package/packages/server/modules/agent/jobs-store.js +59 -0
- package/packages/server/modules/agent/jobs-worktree.js +161 -0
- package/packages/server/modules/agent/jobs.js +316 -0
- package/packages/server/modules/agent/judge-store.js +21 -0
- package/packages/server/modules/agent/lens-request.js +34 -0
- package/packages/server/modules/agent/queue-store.js +21 -0
- package/packages/server/modules/agent/recent-chats.js +63 -0
- package/packages/server/modules/agent/registry.js +108 -0
- package/packages/server/modules/agent/replay.js +84 -0
- package/packages/server/modules/agent/request.js +132 -0
- package/packages/server/modules/agent/role-store.js +21 -0
- package/packages/server/modules/agent/run-hub.js +105 -0
- package/packages/server/modules/agent/run-request.js +208 -0
- package/packages/server/modules/agent/secret-show.js +108 -0
- package/packages/server/modules/agent/side-request.js +142 -0
- package/packages/server/modules/agent/usage-history.js +62 -0
- package/packages/server/modules/agent/worktrees.js +136 -0
- package/packages/server/modules/agent-features/catalog.js +18 -0
- package/packages/server/modules/agent-features/index.js +2 -0
- package/packages/server/modules/agent-features/store.js +172 -0
- package/packages/server/modules/agent-mcp/index.js +106 -0
- package/packages/server/modules/agent-roles/index.js +3 -0
- package/packages/server/modules/agent-roles/project.js +231 -0
- package/packages/server/modules/agent-roles/runtime.js +68 -0
- package/packages/server/modules/agent-roles/store.js +190 -0
- package/packages/server/modules/agents/acp/acp-backend.js +320 -0
- package/packages/server/modules/agents/acp/acp-client.js +153 -0
- package/packages/server/modules/agents/acp/acp-controls.js +179 -0
- package/packages/server/modules/agents/acp/acp-dialect.js +82 -0
- package/packages/server/modules/agents/acp/acp-elicitation.js +135 -0
- package/packages/server/modules/agents/acp/acp-events.js +340 -0
- package/packages/server/modules/agents/acp/acp-process.js +78 -0
- package/packages/server/modules/agents/acp/acp-programs.js +11 -0
- package/packages/server/modules/agents/acp/acp-tools.js +208 -0
- package/packages/server/modules/agents/acp/index.js +4 -0
- package/packages/server/modules/agents/acp/mcp-config.js +100 -0
- package/packages/server/modules/agents/claude-code/claude-code-backend.js +342 -0
- package/packages/server/modules/agents/claude-code/claude-code-checkpoints.js +97 -0
- package/packages/server/modules/agents/claude-code/claude-code-env.js +46 -0
- package/packages/server/modules/agents/claude-code/claude-code-events.js +299 -0
- package/packages/server/modules/agents/claude-code/claude-code-input.js +97 -0
- package/packages/server/modules/agents/claude-code/claude-code-replay.js +71 -0
- package/packages/server/modules/agents/claude-code/claude-code-sessions.js +207 -0
- package/packages/server/modules/agents/claude-code/claude-code-times.js +42 -0
- package/packages/server/modules/agents/claude-code/index.js +2 -0
- package/packages/server/modules/agents/claude-code/questions.js +51 -0
- package/packages/server/modules/agents/codex/dialect.js +130 -0
- package/packages/server/modules/agents/codex/forms.js +24 -0
- package/packages/server/modules/agents/codex/index.js +17 -0
- package/packages/server/modules/agents/cursor/dialect.js +66 -0
- package/packages/server/modules/agents/cursor/images.js +12 -0
- package/packages/server/modules/agents/cursor/index.js +30 -0
- package/packages/server/modules/agents/cursor/plan.js +44 -0
- package/packages/server/modules/agents/cursor/questions.js +37 -0
- package/packages/server/modules/agents/cursor/selection.js +29 -0
- package/packages/server/modules/agents/cursor/task.js +32 -0
- package/packages/server/modules/agents/cursor/todos.js +69 -0
- package/packages/server/modules/agents/ide-mcp/config.js +40 -0
- package/packages/server/modules/agents/ide-mcp/index.js +1 -0
- package/packages/server/modules/agents/ide-mcp/server.js +154 -0
- package/packages/server/modules/agents/kimi/dialect.js +18 -0
- package/packages/server/modules/agents/kimi/index.js +11 -0
- package/packages/server/modules/agents/opencode/dialect.js +232 -0
- package/packages/server/modules/agents/opencode/index.js +21 -0
- package/packages/server/modules/agents/opencode/read.js +46 -0
- package/packages/server/modules/agents/opencode/sessions.js +69 -0
- package/packages/server/modules/agents/projector/agent-lens.js +110 -0
- package/packages/server/modules/agents/projector/agent-tools.js +290 -0
- package/packages/server/modules/agents/projector/answer-doctor.js +32 -0
- package/packages/server/modules/agents/projector/form-doctor.js +33 -0
- package/packages/server/modules/agents/projector/index.js +12 -0
- package/packages/server/modules/agents/projector/project-instructions.js +34 -0
- package/packages/server/modules/agents/projector/projector-backend.js +350 -0
- package/packages/server/modules/agents/projector/projector-budget.js +70 -0
- package/packages/server/modules/agents/projector/projector-compaction.js +128 -0
- package/packages/server/modules/agents/projector/projector-controls.js +70 -0
- package/packages/server/modules/agents/projector/projector-guard.js +196 -0
- package/packages/server/modules/agents/projector/projector-history.js +87 -0
- package/packages/server/modules/agents/projector/projector-hooks.js +201 -0
- package/packages/server/modules/agents/projector/projector-input.js +40 -0
- package/packages/server/modules/agents/projector/projector-mcp-config.js +1 -0
- package/packages/server/modules/agents/projector/projector-mcp.js +119 -0
- package/packages/server/modules/agents/projector/projector-memory.js +92 -0
- package/packages/server/modules/agents/projector/projector-retry.js +52 -0
- package/packages/server/modules/agents/projector/projector-review.js +40 -0
- package/packages/server/modules/agents/projector/projector-side.js +56 -0
- package/packages/server/modules/agents/projector/projector-skills.js +143 -0
- package/packages/server/modules/agents/projector/projector-task.js +235 -0
- package/packages/server/modules/agents/projector/projector-usage.js +19 -0
- package/packages/server/modules/agents/projector/projector-web-search.js +76 -0
- package/packages/server/modules/agents/projector/projector-web.js +172 -0
- package/packages/server/modules/agents/projector/prompts.js +46 -0
- package/packages/server/modules/agents/projector/secrets/secret-destination.js +226 -0
- package/packages/server/modules/agents/projector/secrets/secret-show.js +23 -0
- package/packages/server/modules/agents/projector/secrets/secret-tools.js +124 -0
- package/packages/server/modules/agents/projector/tool-spec.js +4 -0
- package/packages/server/modules/agents/projector/tool-specs.js +167 -0
- package/packages/server/modules/agents/projector/widgets.js +4 -0
- package/packages/server/modules/agents/widgets-mcp/config.js +34 -0
- package/packages/server/modules/agents/widgets-mcp/index.js +1 -0
- package/packages/server/modules/agents-integration/_/usage-cache.js +19 -0
- package/packages/server/modules/agents-integration/claude/client.js +33 -0
- package/packages/server/modules/agents-integration/claude/index.js +1 -0
- package/packages/server/modules/agents-integration/claude/usage.js +49 -0
- package/packages/server/modules/agents-integration/codex/cli.js +86 -0
- package/packages/server/modules/agents-integration/codex/index.js +1 -0
- package/packages/server/modules/agents-integration/codex/usage.js +45 -0
- package/packages/server/modules/agents-integration/cursor/client.js +40 -0
- package/packages/server/modules/agents-integration/cursor/credentials.js +34 -0
- package/packages/server/modules/agents-integration/cursor/index.js +1 -0
- package/packages/server/modules/agents-integration/cursor/usage.js +59 -0
- package/packages/server/modules/agents-integration/kimi/client.js +48 -0
- package/packages/server/modules/agents-integration/kimi/credential-config.js +167 -0
- package/packages/server/modules/agents-integration/kimi/credentials.js +261 -0
- package/packages/server/modules/agents-integration/kimi/index.js +1 -0
- package/packages/server/modules/agents-integration/kimi/usage.js +149 -0
- package/packages/server/modules/agents-integration/opencode/client.js +30 -0
- package/packages/server/modules/agents-integration/opencode/credentials.js +36 -0
- package/packages/server/modules/agents-integration/opencode/index.js +1 -0
- package/packages/server/modules/agents-integration/opencode/usage.js +47 -0
- package/packages/server/modules/appearance/index.js +38 -0
- package/packages/server/modules/browser/cookies.js +112 -0
- package/packages/server/modules/browser/guard.js +55 -0
- package/packages/server/modules/browser/index.js +2 -0
- package/packages/server/modules/browser/key.js +34 -0
- package/packages/server/modules/browser/proxy.js +255 -0
- package/packages/server/modules/browser/rewrite.js +82 -0
- package/packages/server/modules/devcontainer/discovery.js +85 -0
- package/packages/server/modules/devcontainer/exec.js +81 -0
- package/packages/server/modules/devcontainer/index.js +4 -0
- package/packages/server/modules/devcontainer/launch.js +51 -0
- package/packages/server/modules/devcontainer/state.js +68 -0
- package/packages/server/modules/devcontainer/trust.js +41 -0
- package/packages/server/modules/directories/directories.js +34 -0
- package/packages/server/modules/directories/index.js +1 -0
- package/packages/server/modules/docker/actions.js +121 -0
- package/packages/server/modules/docker/daemon.js +72 -0
- package/packages/server/modules/docker/index.js +4 -0
- package/packages/server/modules/docker/settings.js +127 -0
- package/packages/server/modules/docker/snapshot.js +105 -0
- package/packages/server/modules/environments/execution.js +125 -0
- package/packages/server/modules/environments/index.js +3 -0
- package/packages/server/modules/environments/reconcile.js +62 -0
- package/packages/server/modules/environments/settings.js +58 -0
- package/packages/server/modules/events/implementation.js +85 -0
- package/packages/server/modules/events/index.js +1 -0
- package/packages/server/modules/folder-picker/index.js +1 -0
- package/packages/server/modules/folder-picker/pick-folder.js +2 -0
- package/packages/server/modules/git-import/clone.js +47 -0
- package/packages/server/modules/git-import/container.js +57 -0
- package/packages/server/modules/git-import/import.js +82 -0
- package/packages/server/modules/git-import/index.js +4 -0
- package/packages/server/modules/git-import/jobs.js +68 -0
- package/packages/server/modules/github/api.js +260 -0
- package/packages/server/modules/github/browser.js +185 -0
- package/packages/server/modules/github/clone.js +55 -0
- package/packages/server/modules/github/container.js +15 -0
- package/packages/server/modules/github/discussions.js +141 -0
- package/packages/server/modules/github/emojis.js +14 -0
- package/packages/server/modules/github/history.js +205 -0
- package/packages/server/modules/github/index.js +11 -0
- package/packages/server/modules/github/issues.js +81 -0
- package/packages/server/modules/github/navigation.js +35 -0
- package/packages/server/modules/github/pipelines.js +266 -0
- package/packages/server/modules/github/pulls.js +111 -0
- package/packages/server/modules/github/releases.js +241 -0
- package/packages/server/modules/gitlab/api.js +257 -0
- package/packages/server/modules/gitlab/base.js +24 -0
- package/packages/server/modules/gitlab/blob-search.js +110 -0
- package/packages/server/modules/gitlab/browser.js +296 -0
- package/packages/server/modules/gitlab/clone.js +78 -0
- package/packages/server/modules/gitlab/compare.js +68 -0
- package/packages/server/modules/gitlab/connection.js +55 -0
- package/packages/server/modules/gitlab/container.js +15 -0
- package/packages/server/modules/gitlab/history.js +127 -0
- package/packages/server/modules/gitlab/icon.js +67 -0
- package/packages/server/modules/gitlab/index.js +14 -0
- package/packages/server/modules/gitlab/issues.js +61 -0
- package/packages/server/modules/gitlab/merge-requests.js +287 -0
- package/packages/server/modules/gitlab/navigation.js +187 -0
- package/packages/server/modules/gitlab/oauth.js +250 -0
- package/packages/server/modules/gitlab/pipelines.js +240 -0
- package/packages/server/modules/gitlab/releases.js +226 -0
- package/packages/server/modules/gitlab/search.js +75 -0
- package/packages/server/modules/gitlab/trackers.js +96 -0
- package/packages/server/modules/http/download.js +50 -0
- package/packages/server/modules/http/http.js +8 -0
- package/packages/server/modules/http/index.js +2 -0
- package/packages/server/modules/hub/connector.js +114 -0
- package/packages/server/modules/hub/hub.js +142 -0
- package/packages/server/modules/hub/index.js +1 -0
- package/packages/server/modules/ide/editor-settings.js +37 -0
- package/packages/server/modules/ide/index.js +3 -0
- package/packages/server/modules/ide/keybindings.js +37 -0
- package/packages/server/modules/ide/mcp-bridge.js +150 -0
- package/packages/server/modules/instance/index.js +2 -0
- package/packages/server/modules/instance/instance.js +50 -0
- package/packages/server/modules/integration-store/index.js +2 -0
- package/packages/server/modules/integration-store/list.js +12 -0
- package/packages/server/modules/integration-store/store.js +141 -0
- package/packages/server/modules/judge/approval.js +35 -0
- package/packages/server/modules/judge/index.js +3 -0
- package/packages/server/modules/judge/settings.js +35 -0
- package/packages/server/modules/judge/verdict.js +141 -0
- package/packages/server/modules/launcher/browse.js +29 -0
- package/packages/server/modules/launcher/folders.js +138 -0
- package/packages/server/modules/launcher/hosted-search.js +43 -0
- package/packages/server/modules/launcher/index.js +12 -0
- package/packages/server/modules/launcher/launcher.js +352 -0
- package/packages/server/modules/launcher/potential.js +70 -0
- package/packages/server/modules/launcher/project-entries.js +165 -0
- package/packages/server/modules/network/eu-context.js +29 -0
- package/packages/server/modules/network/index.js +1 -0
- package/packages/server/modules/openai-gateway/config.js +125 -0
- package/packages/server/modules/openai-gateway/gateway.js +178 -0
- package/packages/server/modules/openai-gateway/index.js +7 -0
- package/packages/server/modules/preferences/index.js +7 -0
- package/packages/server/modules/preferences/preferences.js +142 -0
- package/packages/server/modules/processes/index.js +6 -0
- package/packages/server/modules/processes/processes.js +174 -0
- package/packages/server/modules/project-presentation/implementation.js +130 -0
- package/packages/server/modules/project-presentation/index.js +1 -0
- package/packages/server/modules/project-widgets/index.js +210 -0
- package/packages/server/modules/projects/discovery.js +179 -0
- package/packages/server/modules/projects/favicon.js +180 -0
- package/packages/server/modules/projects/index.js +11 -0
- package/packages/server/modules/projects/inspect.js +148 -0
- package/packages/server/modules/projects/remote-icon.js +39 -0
- package/packages/server/modules/projects/store.js +41 -0
- package/packages/server/modules/projects/types.js +1 -0
- package/packages/server/modules/providers/atomic-file.js +29 -0
- package/packages/server/modules/providers/balance.js +125 -0
- package/packages/server/modules/providers/index.js +15 -0
- package/packages/server/modules/providers/kinds.js +24 -0
- package/packages/server/modules/providers/model-list.js +16 -0
- package/packages/server/modules/providers/models.js +124 -0
- package/packages/server/modules/providers/openai-client.js +40 -0
- package/packages/server/modules/providers/provider-seeds.js +39 -0
- package/packages/server/modules/providers/provider-store.js +317 -0
- package/packages/server/modules/providers/quiet-model.js +36 -0
- package/packages/server/modules/providers/secret-obfuscation.js +48 -0
- package/packages/server/modules/providers/thinking.js +105 -0
- package/packages/server/modules/providers/types.js +1 -0
- package/packages/server/modules/restart/index.js +1 -0
- package/packages/server/modules/restart/restart.js +56 -0
- package/packages/server/modules/secrets/index.js +1 -0
- package/packages/server/modules/secrets/vault.js +51 -0
- package/packages/server/modules/spend/index.js +2 -0
- package/packages/server/modules/spend/ledger.js +82 -0
- package/packages/server/modules/spend/store.js +92 -0
- package/packages/server/modules/terminal/drop-files.js +42 -0
- package/packages/server/modules/terminal/index.js +15 -0
- package/packages/server/modules/terminal/link-files.js +44 -0
- package/packages/server/modules/terminal/scenario-folder.js +20 -0
- package/packages/server/modules/terminal/session-state.js +85 -0
- package/packages/server/modules/terminal/socket.js +159 -0
- package/packages/server/modules/terminal/terminal-activity.js +56 -0
- package/packages/server/modules/terminal/terminal-file.js +32 -0
- package/packages/server/modules/terminal/terminal-mouse.js +29 -0
- package/packages/server/modules/terminal/terminal.js +308 -0
- package/packages/server/modules/terminal/terminate.js +68 -0
- package/packages/server/modules/terminal-control/control.js +75 -0
- package/packages/server/modules/terminal-control/handlers.js +10 -0
- package/packages/server/modules/terminal-control/index.js +3 -0
- package/packages/server/modules/terminal-control/shared-socket.js +319 -0
- package/packages/server/modules/terminal-control/socket.js +153 -0
- package/packages/server/modules/transport/implementation.js +24 -0
- package/packages/server/modules/transport/index.js +2 -0
- package/packages/server/modules/transport/router.js +16 -0
- package/packages/server/modules/transport/types.js +1 -0
- package/packages/server/modules/usage-analytics/index.js +4 -0
- package/packages/server/modules/usage-analytics/limits.js +144 -0
- package/packages/server/modules/usage-analytics/overview.js +117 -0
- package/packages/server/modules/usage-analytics/providers.js +120 -0
- package/packages/server/modules/usage-analytics/store.js +152 -0
- package/packages/server/modules/window/desktop.js +24 -0
- package/packages/server/modules/window/index.js +8 -0
- package/packages/server/modules/window/window.js +86 -0
- package/packages/server/modules/workspace/archive.py +109 -0
- package/packages/server/modules/workspace/external-files.js +22 -0
- package/packages/server/modules/workspace/files-exclude.js +73 -0
- package/packages/server/modules/workspace/files.js +332 -0
- package/packages/server/modules/workspace/find-paths.js +92 -0
- package/packages/server/modules/workspace/git-branches.js +159 -0
- package/packages/server/modules/workspace/git-compare.js +121 -0
- package/packages/server/modules/workspace/git-history.js +182 -0
- package/packages/server/modules/workspace/git-sync.js +245 -0
- package/packages/server/modules/workspace/git-tree.js +126 -0
- package/packages/server/modules/workspace/git.js +276 -0
- package/packages/server/modules/workspace/ignored.js +23 -0
- package/packages/server/modules/workspace/import.js +190 -0
- package/packages/server/modules/workspace/index.js +15 -0
- package/packages/server/modules/workspace/paths.js +38 -0
- package/packages/server/modules/workspace/reveal.js +14 -0
- package/packages/server/modules/workspace/search.js +136 -0
- package/packages/server/modules/workspace/site.js +62 -0
- package/packages/server/modules/workspace/watcher.js +176 -0
- package/packages/server/routes/api/agent-answer-repair.js +35 -0
- package/packages/server/routes/api/agent-chats.js +77 -0
- package/packages/server/routes/api/agent-features.js +36 -0
- package/packages/server/routes/api/agent-form-repair.js +35 -0
- package/packages/server/routes/api/agent-hooks.js +35 -0
- package/packages/server/routes/api/agent-jobs.js +322 -0
- package/packages/server/routes/api/agent-judge.js +33 -0
- package/packages/server/routes/api/agent-lens.js +27 -0
- package/packages/server/routes/api/agent-mcp.js +41 -0
- package/packages/server/routes/api/agent-memory.js +33 -0
- package/packages/server/routes/api/agent-project-roles.js +112 -0
- package/packages/server/routes/api/agent-project-widgets.js +67 -0
- package/packages/server/routes/api/agent-roles.js +106 -0
- package/packages/server/routes/api/agent-secret-show.js +87 -0
- package/packages/server/routes/api/agent-side.js +70 -0
- package/packages/server/routes/api/agent-skills.js +31 -0
- package/packages/server/routes/api/agent-web.js +27 -0
- package/packages/server/routes/api/agent-worktrees.js +49 -0
- package/packages/server/routes/api/agent.js +269 -0
- package/packages/server/routes/api/analytics.js +21 -0
- package/packages/server/routes/api/app/hide.js +12 -0
- package/packages/server/routes/api/app/mode.js +49 -0
- package/packages/server/routes/api/app/network.js +54 -0
- package/packages/server/routes/api/app/open.js +33 -0
- package/packages/server/routes/api/app/quit.js +14 -0
- package/packages/server/routes/api/app/restart.js +18 -0
- package/packages/server/routes/api/appearance.js +70 -0
- package/packages/server/routes/api/browser.js +27 -0
- package/packages/server/routes/api/claude.js +15 -0
- package/packages/server/routes/api/codex.js +15 -0
- package/packages/server/routes/api/cursor.js +15 -0
- package/packages/server/routes/api/directories.js +16 -0
- package/packages/server/routes/api/docker.js +74 -0
- package/packages/server/routes/api/events.js +25 -0
- package/packages/server/routes/api/health.js +20 -0
- package/packages/server/routes/api/hub.js +26 -0
- package/packages/server/routes/api/ide/commands.js +72 -0
- package/packages/server/routes/api/ide/editor.js +37 -0
- package/packages/server/routes/api/ide/files-exclude.js +37 -0
- package/packages/server/routes/api/ide/keybindings.js +37 -0
- package/packages/server/routes/api/inspect.js +21 -0
- package/packages/server/routes/api/integrations/[...action].js +201 -0
- package/packages/server/routes/api/integrations/github-browse.js +190 -0
- package/packages/server/routes/api/kimi.js +15 -0
- package/packages/server/routes/api/launcher/icon.js +16 -0
- package/packages/server/routes/api/launcher/launch.js +27 -0
- package/packages/server/routes/api/launcher/search.js +20 -0
- package/packages/server/routes/api/launcher/settings.js +68 -0
- package/packages/server/routes/api/openai.js +94 -0
- package/packages/server/routes/api/opencode.js +15 -0
- package/packages/server/routes/api/pick-folder.js +12 -0
- package/packages/server/routes/api/preview-icon.js +21 -0
- package/packages/server/routes/api/projects/[id]/index.js +240 -0
- package/packages/server/routes/api/projects/[id]/site.js +59 -0
- package/packages/server/routes/api/projects/[id]/terminals.js +38 -0
- package/packages/server/routes/api/projects/[id]/workspace-read.js +126 -0
- package/packages/server/routes/api/projects/[id]/workspace.js +147 -0
- package/packages/server/routes/api/projects/index.js +62 -0
- package/packages/server/routes/api/providers/active.js +12 -0
- package/packages/server/routes/api/providers/balance.js +15 -0
- package/packages/server/routes/api/providers/models.js +19 -0
- package/packages/server/routes/api/providers.js +23 -0
- package/packages/server/routes/api/status.js +11 -0
- package/resources/icons/128.png +0 -0
- package/resources/icons/16.png +0 -0
- package/resources/icons/256.png +0 -0
- package/resources/icons/32.png +0 -0
- package/resources/icons/48.png +0 -0
- package/resources/icons/512.png +0 -0
- package/resources/icons/64.png +0 -0
- package/resources/icons/projector.svg +5 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
export const SERVICE_AGENT = "projector";
|
|
2
|
+
export const SERVICE_ROLE_IDS = ["doctor", "lens", "judge"];
|
|
3
|
+
/** The roles Projector runs without a chat: a fixed prompt, no tools and one model call. */
|
|
4
|
+
export const BUILTIN_SERVICE_ROLES = [
|
|
5
|
+
{
|
|
6
|
+
id: "doctor",
|
|
7
|
+
name: "Доктор",
|
|
8
|
+
description: "Чинит сломанную Vue-разметку форм и готовых ответов.",
|
|
9
|
+
kind: "service",
|
|
10
|
+
agent: SERVICE_AGENT,
|
|
11
|
+
selection: {},
|
|
12
|
+
builtin: true,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
id: "lens",
|
|
16
|
+
name: "Lens",
|
|
17
|
+
description: "Пишет короткую подпись о том, чем занят агент сейчас.",
|
|
18
|
+
kind: "service",
|
|
19
|
+
agent: SERVICE_AGENT,
|
|
20
|
+
selection: {},
|
|
21
|
+
builtin: true,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: "judge",
|
|
25
|
+
name: "Судья",
|
|
26
|
+
description: "Оценивает риск действия перед подтверждением.",
|
|
27
|
+
kind: "service",
|
|
28
|
+
agent: SERVICE_AGENT,
|
|
29
|
+
selection: {},
|
|
30
|
+
builtin: true,
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
export function isServiceRoleId(value) {
|
|
34
|
+
return typeof value === "string" && SERVICE_ROLE_IDS.includes(value);
|
|
35
|
+
}
|
|
36
|
+
export function isBuiltinServiceRole(value) {
|
|
37
|
+
return isServiceRoleId(value);
|
|
38
|
+
}
|
|
39
|
+
export const ROLE_ID = /^[a-z][a-z0-9-]{1,39}$/;
|
|
40
|
+
export const ROLE_LIMITS = {
|
|
41
|
+
name: 80,
|
|
42
|
+
description: 400,
|
|
43
|
+
agent: 40,
|
|
44
|
+
selection: 24,
|
|
45
|
+
key: 100,
|
|
46
|
+
value: 300,
|
|
47
|
+
prompt: 8_000,
|
|
48
|
+
resources: 40,
|
|
49
|
+
resource: 80,
|
|
50
|
+
};
|
|
51
|
+
/** Skill, command and MCP server names: ordered, unique and bounded. `[]` is a real choice. */
|
|
52
|
+
export function normalizeRoleResources(value) {
|
|
53
|
+
if (!Array.isArray(value))
|
|
54
|
+
return undefined;
|
|
55
|
+
const names = [];
|
|
56
|
+
for (const item of value.slice(0, ROLE_LIMITS.resources)) {
|
|
57
|
+
if (typeof item !== "string")
|
|
58
|
+
continue;
|
|
59
|
+
const name = item.trim();
|
|
60
|
+
if (!name || name.length > ROLE_LIMITS.resource || names.includes(name))
|
|
61
|
+
continue;
|
|
62
|
+
names.push(name);
|
|
63
|
+
}
|
|
64
|
+
return names;
|
|
65
|
+
}
|
|
66
|
+
/** The role's own instructions; an empty prompt means the role adds none. */
|
|
67
|
+
export function normalizeRolePrompt(value) {
|
|
68
|
+
if (typeof value !== "string")
|
|
69
|
+
return undefined;
|
|
70
|
+
const prompt = value.trim().slice(0, ROLE_LIMITS.prompt);
|
|
71
|
+
return prompt ? prompt : undefined;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Keeps only the entries a control can use. A damaged settings file must not make the whole role
|
|
75
|
+
* unreadable: an unknown value is dropped and the control keeps its default.
|
|
76
|
+
*/
|
|
77
|
+
export function normalizeRoleSelection(value) {
|
|
78
|
+
const selection = {};
|
|
79
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
80
|
+
return selection;
|
|
81
|
+
for (const [key, item] of Object.entries(value).slice(0, ROLE_LIMITS.selection)) {
|
|
82
|
+
if (typeof item !== "string")
|
|
83
|
+
continue;
|
|
84
|
+
const cleanKey = key.trim();
|
|
85
|
+
const clean = item.trim();
|
|
86
|
+
if (!cleanKey || cleanKey.length > ROLE_LIMITS.key || !clean)
|
|
87
|
+
continue;
|
|
88
|
+
if (clean.length > ROLE_LIMITS.value)
|
|
89
|
+
continue;
|
|
90
|
+
selection[cleanKey] = clean;
|
|
91
|
+
}
|
|
92
|
+
return selection;
|
|
93
|
+
}
|
|
94
|
+
/** Validates a role from a file or an API request; anything ambiguous is rejected, not guessed. */
|
|
95
|
+
export function normalizeAgentRole(value) {
|
|
96
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
97
|
+
return undefined;
|
|
98
|
+
const row = value;
|
|
99
|
+
const id = typeof row.id === "string" ? row.id.trim() : "";
|
|
100
|
+
if (!ROLE_ID.test(id))
|
|
101
|
+
return undefined;
|
|
102
|
+
const name = typeof row.name === "string" ? row.name.trim().slice(0, ROLE_LIMITS.name) : "";
|
|
103
|
+
if (!name)
|
|
104
|
+
return undefined;
|
|
105
|
+
const kind = row.kind === "chat" || row.kind === "service" ? row.kind : undefined;
|
|
106
|
+
if (!kind)
|
|
107
|
+
return undefined;
|
|
108
|
+
const agent = typeof row.agent === "string" ? row.agent.trim().slice(0, ROLE_LIMITS.agent) : "";
|
|
109
|
+
if (!agent)
|
|
110
|
+
return undefined;
|
|
111
|
+
if (kind === "service" && agent !== SERVICE_AGENT)
|
|
112
|
+
return undefined;
|
|
113
|
+
const permissionMode = kind === "chat" &&
|
|
114
|
+
(row.permissionMode === "default" ||
|
|
115
|
+
row.permissionMode === "auto" ||
|
|
116
|
+
row.permissionMode === "bypassPermissions")
|
|
117
|
+
? row.permissionMode
|
|
118
|
+
: undefined;
|
|
119
|
+
const description = typeof row.description === "string"
|
|
120
|
+
? row.description.trim().slice(0, ROLE_LIMITS.description)
|
|
121
|
+
: "";
|
|
122
|
+
const prompt = normalizeRolePrompt(row.prompt);
|
|
123
|
+
const skills = normalizeRoleResources(row.skills);
|
|
124
|
+
const mcp = normalizeRoleResources(row.mcp);
|
|
125
|
+
return {
|
|
126
|
+
id,
|
|
127
|
+
name,
|
|
128
|
+
kind,
|
|
129
|
+
agent,
|
|
130
|
+
selection: normalizeRoleSelection(row.selection),
|
|
131
|
+
...(description ? { description } : {}),
|
|
132
|
+
...(permissionMode ? { permissionMode } : {}),
|
|
133
|
+
...(row.isolate === true ? { isolate: true } : {}),
|
|
134
|
+
...(prompt ? { prompt } : {}),
|
|
135
|
+
...(skills !== undefined ? { skills } : {}),
|
|
136
|
+
...(mcp !== undefined ? { mcp } : {}),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/** The settings a call should use: the role's own values over the chat's fallback. */
|
|
140
|
+
export function resolveRoleSelection(role, fallback) {
|
|
141
|
+
return { ...fallback, ...role?.selection };
|
|
142
|
+
}
|
|
143
|
+
/** A service role follows the chat when it names no Projector provider of its own. */
|
|
144
|
+
export function serviceRoleInheritsModel(role) {
|
|
145
|
+
return !role.selection.provider;
|
|
146
|
+
}
|
|
147
|
+
/** The values a chat keeps from its role; the role id and name stay readable after deletion. */
|
|
148
|
+
export function snapshotOfRole(role) {
|
|
149
|
+
return {
|
|
150
|
+
roleId: role.id,
|
|
151
|
+
name: role.name,
|
|
152
|
+
selection: { ...role.selection },
|
|
153
|
+
...(role.permissionMode ? { permissionMode: role.permissionMode } : {}),
|
|
154
|
+
...(role.prompt ? { prompt: role.prompt } : {}),
|
|
155
|
+
...(role.skills !== undefined ? { skills: [...role.skills] } : {}),
|
|
156
|
+
...(role.mcp !== undefined ? { mcp: [...role.mcp] } : {}),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/** Validates a snapshot from history or a tab; a damaged one is ignored instead of guessed. */
|
|
160
|
+
export function normalizeRoleSnapshot(value) {
|
|
161
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
162
|
+
return undefined;
|
|
163
|
+
const row = value;
|
|
164
|
+
const roleId = typeof row.roleId === "string" ? row.roleId.trim() : "";
|
|
165
|
+
if (!ROLE_ID.test(roleId))
|
|
166
|
+
return undefined;
|
|
167
|
+
const name = typeof row.name === "string" ? row.name.trim().slice(0, ROLE_LIMITS.name) : "";
|
|
168
|
+
if (!name)
|
|
169
|
+
return undefined;
|
|
170
|
+
const permissionMode = row.permissionMode === "default" ||
|
|
171
|
+
row.permissionMode === "auto" ||
|
|
172
|
+
row.permissionMode === "bypassPermissions"
|
|
173
|
+
? row.permissionMode
|
|
174
|
+
: undefined;
|
|
175
|
+
const prompt = normalizeRolePrompt(row.prompt);
|
|
176
|
+
const skills = normalizeRoleResources(row.skills);
|
|
177
|
+
const mcp = normalizeRoleResources(row.mcp);
|
|
178
|
+
return {
|
|
179
|
+
roleId,
|
|
180
|
+
name,
|
|
181
|
+
selection: normalizeRoleSelection(row.selection),
|
|
182
|
+
...(permissionMode ? { permissionMode } : {}),
|
|
183
|
+
...(prompt ? { prompt } : {}),
|
|
184
|
+
...(skills !== undefined ? { skills } : {}),
|
|
185
|
+
...(mcp !== undefined ? { mcp } : {}),
|
|
186
|
+
};
|
|
187
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* A subagent or a background command that works next to an agent's answer. Every agent adapter
|
|
4
|
+
* reports its own kinds of them in this one shape; the chat shows and stores only this.
|
|
5
|
+
*/
|
|
6
|
+
export const agentTaskSchema = z.object({
|
|
7
|
+
id: z.string(),
|
|
8
|
+
kind: z.enum(["agent", "shell", "other"]),
|
|
9
|
+
title: z.string(),
|
|
10
|
+
status: z.enum(["running", "done", "error", "stopped"]),
|
|
11
|
+
/** Runs without blocking the answer. */
|
|
12
|
+
background: z.boolean(),
|
|
13
|
+
/** Kind of the subagent (`Explore`, `general-purpose`, ...). */
|
|
14
|
+
subagent: z.string().optional(),
|
|
15
|
+
/** The agent's own session of the subagent: its whole conversation can be read from there. */
|
|
16
|
+
session: z.string().optional(),
|
|
17
|
+
/** What it was asked to do, as the agent gave it. */
|
|
18
|
+
prompt: z.string().optional(),
|
|
19
|
+
/** The tool call that started it. */
|
|
20
|
+
tool: z.string().optional(),
|
|
21
|
+
/** The agent does not report when it ends: its state is unknown once the answer is over. */
|
|
22
|
+
untracked: z.boolean().optional(),
|
|
23
|
+
/** One line about what it does now, or how it ended. */
|
|
24
|
+
summary: z.string().optional(),
|
|
25
|
+
lastTool: z.string().optional(),
|
|
26
|
+
tools: z.number().optional(),
|
|
27
|
+
tokens: z.number().optional(),
|
|
28
|
+
durationMs: z.number().optional(),
|
|
29
|
+
/** When the task started and ended (ms since the epoch); the chat fills them in as it sees them. */
|
|
30
|
+
startedAt: z.number().optional(),
|
|
31
|
+
endedAt: z.number().optional(),
|
|
32
|
+
/** What it reported while working, oldest first; the chat collects it from the patches. */
|
|
33
|
+
log: z.array(z.string()).optional(),
|
|
34
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { agentTaskSchema } from "./contract.js";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const barsWidget = defineWidget({
|
|
3
|
+
name: "Bars",
|
|
4
|
+
group: "data",
|
|
5
|
+
summary: "горизонтальные столбцы",
|
|
6
|
+
props: {
|
|
7
|
+
items: { type: "array", description: "[{label, value}]", required: true },
|
|
8
|
+
unit: { type: "string", description: "единица после значения" },
|
|
9
|
+
},
|
|
10
|
+
example: "<Bars unit=\" ₽\" :items=\"[{label:'A',value:120},{label:'B',value:80}]\" />",
|
|
11
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const buttonWidget = defineWidget({
|
|
3
|
+
name: "Button",
|
|
4
|
+
group: "action",
|
|
5
|
+
summary: "кнопка; отправляет данные агенту только по клику пользователя",
|
|
6
|
+
props: {
|
|
7
|
+
submit: { type: "boolean", description: "отправить значения окружающей <Form>" },
|
|
8
|
+
reset: { type: "boolean", description: "вернуть поля формы к исходным" },
|
|
9
|
+
preset: { type: "object", description: "задать поля формы по имени: {поле: значение}" },
|
|
10
|
+
send: { type: "string | object", description: "отправить это агенту как есть (вне формы)" },
|
|
11
|
+
summary: { type: "string", description: "строка перед данными в сообщении" },
|
|
12
|
+
sentLabel: { type: "string", description: "подпись после отправки, по умолчанию «Отправлено»" },
|
|
13
|
+
},
|
|
14
|
+
slot: "подпись кнопки",
|
|
15
|
+
notes: [
|
|
16
|
+
"После отправки кнопка и форма блокируются. Без submit/send/preset/reset это обычная кнопка с @click.",
|
|
17
|
+
],
|
|
18
|
+
example: '<Button send="Да, продолжай" summary="Ответ">Продолжить</Button>',
|
|
19
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const cardWidget = defineWidget({
|
|
3
|
+
name: "Card",
|
|
4
|
+
group: "layout",
|
|
5
|
+
summary: "рамка с заголовком для группы",
|
|
6
|
+
props: {
|
|
7
|
+
title: { type: "string", description: "заголовок" },
|
|
8
|
+
hint: { type: "string", description: "подпись под заголовком" },
|
|
9
|
+
tone: { type: "'neutral' | 'warning'", description: "цвет рамки" },
|
|
10
|
+
},
|
|
11
|
+
slot: "содержимое рамки",
|
|
12
|
+
example: '<Card title="Итоги" hint="за квартал">Выручка выросла на 12%.</Card>',
|
|
13
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const checksWidget = defineWidget({
|
|
3
|
+
name: "Checks",
|
|
4
|
+
group: "form",
|
|
5
|
+
summary: "выбор из списка: несколько (флажки) или один (single)",
|
|
6
|
+
hidden: true,
|
|
7
|
+
props: {
|
|
8
|
+
options: {
|
|
9
|
+
type: "array",
|
|
10
|
+
description: "массив строк или объектов: value обязателен, label и hint необязательны",
|
|
11
|
+
required: true,
|
|
12
|
+
},
|
|
13
|
+
single: { type: "boolean", description: "один вариант вместо нескольких" },
|
|
14
|
+
name: { type: "string", description: "имя поля в <Form>" },
|
|
15
|
+
initial: { type: "array", description: "начально выбранные value" },
|
|
16
|
+
},
|
|
17
|
+
model: { type: "array", description: "выбранные value" },
|
|
18
|
+
example: "<Checks name=\"scripts\" :initial=\"['test']\" :options=\"[{value:'start',hint:'dev-сервер'},'test']\" />",
|
|
19
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const chipsWidget = defineWidget({
|
|
3
|
+
name: "Chips",
|
|
4
|
+
group: "data",
|
|
5
|
+
summary: "набор цветных меток: теги, статусы, технологии",
|
|
6
|
+
props: {
|
|
7
|
+
items: {
|
|
8
|
+
type: "string | {label, tone?, icon?}[]",
|
|
9
|
+
description: "метки; tone — neutral, info, success, warning, danger или accent; icon — имя из InlineIcon. Без tone цвета чередуются автоматически",
|
|
10
|
+
required: true,
|
|
11
|
+
},
|
|
12
|
+
mono: { type: "boolean", description: "моноширинный шрифт для кода, хешей и версий" },
|
|
13
|
+
},
|
|
14
|
+
example: `<Chips :items="['TypeScript',{label:'готово',tone:'success',icon:'circle-check'},{label:'риск',tone:'warning',icon:'alert'}]" />`,
|
|
15
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const columnsWidget = defineWidget({
|
|
3
|
+
name: "Columns",
|
|
4
|
+
group: "layout",
|
|
5
|
+
summary: "колонки; на узкой ширине встают в столбик",
|
|
6
|
+
props: {
|
|
7
|
+
cols: { type: "number", description: "число колонок, по умолчанию 2" },
|
|
8
|
+
gap: { type: "number", description: "отступ в пикселях" },
|
|
9
|
+
},
|
|
10
|
+
slot: "элементы по колонкам",
|
|
11
|
+
example: '<Columns :cols="2"><Stat label="A" value="10" /><Stat label="B" value="20" /></Columns>',
|
|
12
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const donutWidget = defineWidget({
|
|
3
|
+
name: "Donut",
|
|
4
|
+
group: "data",
|
|
5
|
+
summary: "кольцо с долями и легендой",
|
|
6
|
+
props: {
|
|
7
|
+
items: { type: "array", description: "[{label, value}]", required: true },
|
|
8
|
+
center: { type: "string", description: "текст в центре" },
|
|
9
|
+
},
|
|
10
|
+
example: "<Donut center=\"100%\" :items=\"[{label:'A',value:60},{label:'B',value:40}]\" />",
|
|
11
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const fieldWidget = defineWidget({
|
|
3
|
+
name: "Field",
|
|
4
|
+
group: "form",
|
|
5
|
+
summary: "поле формы; type задаёт вид контроля",
|
|
6
|
+
props: {
|
|
7
|
+
type: {
|
|
8
|
+
type: "string",
|
|
9
|
+
description: "text, textarea, number, slider, select, radio, checks, switch, date, time или segmented; по умолчанию text",
|
|
10
|
+
},
|
|
11
|
+
name: { type: "string", description: "имя поля в Form" },
|
|
12
|
+
label: { type: "string", description: "подпись поля" },
|
|
13
|
+
hint: { type: "string", description: "пояснение под полем" },
|
|
14
|
+
initial: {
|
|
15
|
+
type: "string | number | boolean | array",
|
|
16
|
+
description: "начальное значение; для checks — массив, для switch — boolean",
|
|
17
|
+
},
|
|
18
|
+
placeholder: { type: "string", description: "подсказка в пустом text, textarea или number" },
|
|
19
|
+
required: { type: "boolean", description: "обязательное поле" },
|
|
20
|
+
disabled: { type: "boolean", description: "заблокировать поле" },
|
|
21
|
+
options: {
|
|
22
|
+
type: "array",
|
|
23
|
+
description: "для select, radio и checks: строки или {value, label, hint}",
|
|
24
|
+
},
|
|
25
|
+
min: { type: "number", description: "минимум для number и slider" },
|
|
26
|
+
max: { type: "number", description: "максимум для number и slider" },
|
|
27
|
+
step: { type: "number", description: "шаг для number и slider" },
|
|
28
|
+
unit: { type: "string", description: "единица рядом со значением number и slider" },
|
|
29
|
+
rows: { type: "number", description: "высота textarea в строках" },
|
|
30
|
+
},
|
|
31
|
+
model: { type: "string | number | boolean | array", description: "значение поля" },
|
|
32
|
+
guide: [
|
|
33
|
+
"type: text | textarea | number | slider | select | radio | checks | switch | date | time | segmented.",
|
|
34
|
+
"Общие: name, label, hint, initial, placeholder, required, disabled.",
|
|
35
|
+
"options — для select/radio/checks; min/max/step/unit — для number/slider; rows — для textarea.",
|
|
36
|
+
"checks отдаёт array, switch — boolean, number/slider — number, остальные — string.",
|
|
37
|
+
].join("\n"),
|
|
38
|
+
example: '<Field type="select" name="mode" label="Режим" :options="[\'server\',\'window\']" />\n<Field type="slider" name="port" label="Порт" :min="3000" :max="9000" :initial="4177" />',
|
|
39
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const formWidget = defineWidget({
|
|
3
|
+
name: "Form",
|
|
4
|
+
group: "form",
|
|
5
|
+
summary: "форма без скрипта: собирает именованные поля внутри",
|
|
6
|
+
answer: true,
|
|
7
|
+
slot: "поля Field с name и кнопки",
|
|
8
|
+
notes: [
|
|
9
|
+
"Поля внутри — Field с name; начальное значение задаётся initial. У Button флаг submit отправляет значения полей тебе и блокирует форму, summary задаёт подпись ответа, reset возвращает исходные значения, а preset принимает объект с новыми значениями полей.",
|
|
10
|
+
"Когда нужен выбор или настройки пользователя: покажи форму с submit-кнопкой и остановись; действуй после его ответа и только по выбранному.",
|
|
11
|
+
"Форма последним блоком ответа становится полем ввода чата: пользователь заполнит её на месте текстового поля, а его сообщение сохранит ту же форму с выбранными значениями. Не пиши текст после такой формы.",
|
|
12
|
+
],
|
|
13
|
+
guide: [
|
|
14
|
+
"Поля — Field с name; Button submit отправляет JSON, reset/preset меняют значения.",
|
|
15
|
+
"Форма последним блоком ответа становится полем ввода; не пиши текст после неё.",
|
|
16
|
+
].join("\n"),
|
|
17
|
+
example: '<Form><Field type="checks" name="scripts" :options="[\'start\',\'test\']" /><Button submit summary="Выбор">Применить</Button></Form>',
|
|
18
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const gitInfoWidget = defineWidget({
|
|
3
|
+
name: "GitInfo",
|
|
4
|
+
group: "data",
|
|
5
|
+
summary: "состояние и история git: ветка, изменения, diff, коммиты — когда ответ опирается на репозиторий",
|
|
6
|
+
props: {
|
|
7
|
+
branch: { type: "string", description: "текущая ветка" },
|
|
8
|
+
upstream: { type: "string", description: "upstream-ветка, например origin/main" },
|
|
9
|
+
ahead: { type: "number", description: "коммитов впереди upstream" },
|
|
10
|
+
behind: { type: "number", description: "коммитов позади upstream" },
|
|
11
|
+
clean: { type: "boolean", description: "рабочее дерево чистое" },
|
|
12
|
+
staged: { type: "number", description: "изменений в индексе" },
|
|
13
|
+
unstaged: { type: "number", description: "неиндексированных изменений" },
|
|
14
|
+
untracked: { type: "number", description: "неотслеживаемых файлов" },
|
|
15
|
+
conflicted: { type: "number", description: "конфликтующих файлов" },
|
|
16
|
+
additions: { type: "number", description: "добавленных строк в diff" },
|
|
17
|
+
deletions: { type: "number", description: "удалённых строк в diff" },
|
|
18
|
+
commits: {
|
|
19
|
+
type: "[{hash, subject, author?, when?}]",
|
|
20
|
+
description: "последние коммиты; when — готовая подпись времени",
|
|
21
|
+
},
|
|
22
|
+
files: {
|
|
23
|
+
type: "[{path, status?, additions?, deletions?}]",
|
|
24
|
+
description: "изменённые файлы; status — M, A, D, R и т. п.",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
special: true,
|
|
28
|
+
example: '<GitInfo branch="main" upstream="origin/main" :ahead="2" :staged="3" :unstaged="1" :untracked="2" :additions="48" :deletions="12" :commits="[{hash:\'a1b2c3d\',subject:\'Добавить GitInfo\',author:\'Ада\',when:\'2 ч назад\'}]" :files="[{path:\'core/modules/agent-widgets/git-info/index.ts\',status:\'A\',additions:48,deletions:0}]" />',
|
|
29
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const imageWidget = defineWidget({
|
|
3
|
+
name: "Image",
|
|
4
|
+
group: "data",
|
|
5
|
+
summary: "изображение с подписью",
|
|
6
|
+
props: {
|
|
7
|
+
src: {
|
|
8
|
+
type: "string",
|
|
9
|
+
description: "адрес изображения: URL, data: URI, путь файла проекта или абсолютный путь на диске (/tmp/…, file://, C:\\…)",
|
|
10
|
+
required: true,
|
|
11
|
+
},
|
|
12
|
+
alt: { type: "string", description: "текстовое описание для доступности", required: true },
|
|
13
|
+
caption: { type: "string", description: "подпись под изображением" },
|
|
14
|
+
fit: { type: '"contain" | "cover"', description: "вписывание в рамку, по умолчанию contain" },
|
|
15
|
+
height: { type: "number", description: "высота в пикселях, по умолчанию 240" },
|
|
16
|
+
},
|
|
17
|
+
notes: [
|
|
18
|
+
"Путь разрешается так же, как у markdown-картинки ``: файл проекта читается из проекта, абсолютный путь — с диска.",
|
|
19
|
+
"Клик открывает просмотр с масштабом, как у markdown-картинки; битая загрузка заменяется ссылкой с alt.",
|
|
20
|
+
],
|
|
21
|
+
example: '<Image src="https://example.com/chart.png" alt="График продаж" caption="Продажи за квартал" fit="contain" :height="240" />',
|
|
22
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Lucide names kept deliberately small: every name is bundled into the chat, and an unknown icon
|
|
4
|
+
* must not cost an arbitrary network request at render time.
|
|
5
|
+
*/
|
|
6
|
+
export const INLINE_ICON_NAMES = [
|
|
7
|
+
"alert",
|
|
8
|
+
"arrow-right",
|
|
9
|
+
"check",
|
|
10
|
+
"chevron-right",
|
|
11
|
+
"circle-check",
|
|
12
|
+
"clock",
|
|
13
|
+
"cloud",
|
|
14
|
+
"code",
|
|
15
|
+
"database",
|
|
16
|
+
"external-link",
|
|
17
|
+
"file",
|
|
18
|
+
"folder",
|
|
19
|
+
"git-branch",
|
|
20
|
+
"git-commit",
|
|
21
|
+
"info",
|
|
22
|
+
"lock",
|
|
23
|
+
"package",
|
|
24
|
+
"play",
|
|
25
|
+
"search",
|
|
26
|
+
"settings",
|
|
27
|
+
"sparkles",
|
|
28
|
+
"terminal",
|
|
29
|
+
"test-tube",
|
|
30
|
+
"x",
|
|
31
|
+
];
|
|
32
|
+
export const inlineIconWidget = defineWidget({
|
|
33
|
+
name: "InlineIcon",
|
|
34
|
+
group: "data",
|
|
35
|
+
summary: "небольшая иконка внутри строки или рядом с подписью",
|
|
36
|
+
props: {
|
|
37
|
+
name: {
|
|
38
|
+
type: "string",
|
|
39
|
+
description: `одно из имён: ${INLINE_ICON_NAMES.join(", ")}`,
|
|
40
|
+
required: true,
|
|
41
|
+
},
|
|
42
|
+
label: { type: "string", description: "доступное название; без него иконка декоративная" },
|
|
43
|
+
},
|
|
44
|
+
example: '<InlineIcon name="git-branch" label="Ветка" />',
|
|
45
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const inputWidget = defineWidget({
|
|
3
|
+
name: "Input",
|
|
4
|
+
group: "form",
|
|
5
|
+
summary: "строка или многострочный текст",
|
|
6
|
+
hidden: true,
|
|
7
|
+
props: {
|
|
8
|
+
label: { type: "string", description: "подпись" },
|
|
9
|
+
placeholder: { type: "string", description: "подсказка в пустом поле" },
|
|
10
|
+
multiline: { type: "boolean", description: "несколько строк" },
|
|
11
|
+
name: { type: "string", description: "имя поля в <Form>" },
|
|
12
|
+
initial: { type: "string", description: "начальный текст" },
|
|
13
|
+
},
|
|
14
|
+
model: { type: "string", description: "введённый текст" },
|
|
15
|
+
example: '<Input name="note" label="Комментарий" multiline />',
|
|
16
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const intelligentFormWidget = defineWidget({
|
|
3
|
+
name: "IntelligentForm",
|
|
4
|
+
group: "form",
|
|
5
|
+
summary: "форма ответа: поля управления; в поле ввода отправляется общей кнопкой",
|
|
6
|
+
answer: true,
|
|
7
|
+
props: {
|
|
8
|
+
submit: {
|
|
9
|
+
type: "string",
|
|
10
|
+
description: "подпись кнопки в сообщении или снимке, по умолчанию «Отправить»",
|
|
11
|
+
},
|
|
12
|
+
summary: {
|
|
13
|
+
type: "string",
|
|
14
|
+
description: "строка перед данными в сообщении агенту",
|
|
15
|
+
},
|
|
16
|
+
sentLabel: {
|
|
17
|
+
type: "string",
|
|
18
|
+
description: "подпись кнопки после отправки, по умолчанию «Отправлено»",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
slot: "поля Field с name",
|
|
22
|
+
notes: [
|
|
23
|
+
"Когда нужно собрать два параметра или больше либо настройки пользователя, закончи ответ одной IntelligentForm и не пиши текст после неё; не разделяй их на несколько ask_user. Для одного вопроса или одного варианта остаётся ask_user.",
|
|
24
|
+
"Внутрь положи Field с name. Не оборачивай форму в Card или Form и не добавляй Button submit: в поле ввода отправляет общая кнопка, а в сообщении и снимке — кнопка самой формы.",
|
|
25
|
+
"Пока форма открыта в поле ввода, её блок не показывается в ответе; не дублируй его текстом.",
|
|
26
|
+
],
|
|
27
|
+
guide: [
|
|
28
|
+
"Внутрь — Field с name; общая кнопка композера отправляет JSON.",
|
|
29
|
+
"Не оборачивай в Card/Form и не добавляй Button submit; не пиши текст после формы.",
|
|
30
|
+
].join("\n"),
|
|
31
|
+
example: '<IntelligentForm summary="Настройки проекта" submit="Применить"><Field type="radio" name="mode" :options="[\'server\',\'window\']" /><Field type="number" name="port" label="Порт" :initial="4177" /></IntelligentForm>',
|
|
32
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const lineWidget = defineWidget({
|
|
3
|
+
name: "Line",
|
|
4
|
+
group: "data",
|
|
5
|
+
summary: "линейный график по меткам оси",
|
|
6
|
+
props: {
|
|
7
|
+
labels: { type: "array", description: "подписи оси X: ['янв','фев']", required: true },
|
|
8
|
+
series: { type: "array", description: "[{name, data:[числа]}] по числу меток", required: true },
|
|
9
|
+
height: { type: "number", description: "высота, по умолчанию 160" },
|
|
10
|
+
},
|
|
11
|
+
example: "<Line :labels=\"['янв','фев']\" :series=\"[{name:'Выручка',data:[10,14]}]\" />",
|
|
12
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const rowWidget = defineWidget({
|
|
3
|
+
name: "Row",
|
|
4
|
+
group: "layout",
|
|
5
|
+
summary: "ряд с переносом по ширине (показатели кладут в него)",
|
|
6
|
+
props: {
|
|
7
|
+
gap: { type: "number", description: "отступ в пикселях" },
|
|
8
|
+
},
|
|
9
|
+
slot: "элементы ряда",
|
|
10
|
+
example: '<Row><Stat label="A" value="1" /><Stat label="B" value="2" /></Row>',
|
|
11
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const safeSecretShowWidget = defineWidget({
|
|
3
|
+
name: "SafeSecretShow",
|
|
4
|
+
group: "data",
|
|
5
|
+
summary: "секрет от агента: показывает пользователю значение, которое вернёт скрипт, не попадая ни в чат, ни к агенту",
|
|
6
|
+
props: {
|
|
7
|
+
script: {
|
|
8
|
+
type: "string",
|
|
9
|
+
description: "shell-команда, чей stdout — секрет; выполняется на машине пользователя",
|
|
10
|
+
required: true,
|
|
11
|
+
},
|
|
12
|
+
label: { type: "string", description: "название секрета в панели" },
|
|
13
|
+
comment: { type: "string", description: "комментарий агента пользователю" },
|
|
14
|
+
},
|
|
15
|
+
special: true,
|
|
16
|
+
notes: [
|
|
17
|
+
"Секрет не попадает в ответ, историю чата и контекст агента: скрипт выполняется на сервере, а значение показывается только в браузере пользователя.",
|
|
18
|
+
"Скрипт запускается только по нажатию «Показать секрет»; команда видна под кнопкой. Значение хранится лишь в открытом окне.",
|
|
19
|
+
],
|
|
20
|
+
example: '<SafeSecretShow script="cat ~/.ssh/id_ed25519" label="Приватный ключ SSH" comment="Скопируйте ключ в сервис." />',
|
|
21
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const sliderWidget = defineWidget({
|
|
3
|
+
name: "Slider",
|
|
4
|
+
group: "form",
|
|
5
|
+
summary: "число на шкале",
|
|
6
|
+
hidden: true,
|
|
7
|
+
props: {
|
|
8
|
+
label: { type: "string", description: "подпись" },
|
|
9
|
+
min: { type: "number", description: "минимум, по умолчанию 0" },
|
|
10
|
+
max: { type: "number", description: "максимум, по умолчанию 100" },
|
|
11
|
+
step: { type: "number", description: "шаг" },
|
|
12
|
+
unit: { type: "string", description: "единица рядом со значением" },
|
|
13
|
+
name: { type: "string", description: "имя поля в <Form>" },
|
|
14
|
+
initial: { type: "number", description: "начальное значение, по умолчанию min" },
|
|
15
|
+
},
|
|
16
|
+
model: { type: "number", description: "текущее значение" },
|
|
17
|
+
example: '<Slider name="port" label="Порт" :min="3000" :max="9000" unit="" :initial="4000" />',
|
|
18
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { defineWidget } from "../../widget-catalog/index.js";
|
|
2
|
+
export const statWidget = defineWidget({
|
|
3
|
+
name: "Stat",
|
|
4
|
+
group: "data",
|
|
5
|
+
summary: "показатель: подпись, значение, изменение",
|
|
6
|
+
props: {
|
|
7
|
+
label: { type: "string", description: "подпись", required: true },
|
|
8
|
+
value: { type: "string | number", description: "значение", required: true },
|
|
9
|
+
delta: {
|
|
10
|
+
type: "number",
|
|
11
|
+
description: "изменение в процентах: число без знака %, например 3.6, знак задаёт цвет",
|
|
12
|
+
},
|
|
13
|
+
hint: { type: "string", description: "пояснение мелким шрифтом" },
|
|
14
|
+
},
|
|
15
|
+
example: '<Stat label="Выручка" value="4,2 млн" :delta="12" hint="к прошлому кварталу" />',
|
|
16
|
+
});
|