@schlenkr/ragents 0.1.5 → 0.1.7
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/README.md +18 -11
- package/apps/server/package.json +8 -6
- package/apps/server/src/access-projection.ts +3 -3
- package/apps/server/src/access-service.ts +19 -8
- package/apps/server/src/access-session.ts +6 -2
- package/apps/server/src/api/contracts.ts +19 -18
- package/apps/server/src/api/core-methods.ts +45 -26
- package/apps/server/src/api/delivery.ts +4 -4
- package/apps/server/src/api/reference.ts +1 -1
- package/apps/server/src/api/rights.ts +86 -7
- package/apps/server/src/chat-context.ts +1 -1
- package/apps/server/src/chat-handler.ts +16 -7
- package/apps/server/src/config-file.ts +25 -6
- package/apps/server/src/config.ts +10 -4
- package/apps/server/src/data-directory.ts +1 -1
- package/apps/server/src/folder-install.ts +115 -0
- package/apps/server/src/host-api.json +1257 -0
- package/apps/server/src/host-api.ts +190 -0
- package/apps/server/src/host-resolution-hooks.mjs +50 -1
- package/apps/server/src/host-resolution.ts +26 -1
- package/apps/server/src/host-version.ts +41 -0
- package/apps/server/src/host-web.ts +59 -0
- package/apps/server/src/layout.ts +0 -15
- package/apps/server/src/main.ts +3 -2
- package/apps/server/src/missing-environment.ts +47 -0
- package/apps/server/src/parent-watch.ts +37 -0
- package/apps/server/src/plugin-build/build.ts +650 -0
- package/apps/server/src/plugin-build/host-api-names.ts +185 -0
- package/apps/server/src/plugin-build/plugin-description.ts +118 -0
- package/apps/server/src/plugin-build/typecheck.ts +66 -0
- package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/app-project.ts +16 -15
- package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/client-compiler.ts +4 -4
- package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/client-contracts.ts +4 -4
- package/apps/server/src/plugin-support/actor-programs/client-runtime.ts +27 -0
- package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/contract.ts +3 -3
- package/apps/server/src/plugin-support/actor-programs/service.ts +1 -1
- package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/tailwind.ts +2 -3
- package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/workflow/index.ts +48 -48
- package/apps/server/src/plugin-support/agent-tool.ts +12 -8
- package/apps/server/src/plugin-support/http.ts +1 -1
- package/apps/server/src/plugin-support/language-server/contract.ts +37 -6
- package/apps/server/src/plugin-support/language-server/plugin.ts +18 -8
- package/apps/server/src/plugin-support/language-server/snapshot-method.ts +32 -7
- package/apps/server/src/plugin-support/language-server/tools.ts +59 -15
- package/apps/server/src/plugin-support/model-aliases.ts +77 -0
- package/apps/server/src/plugin-support/model-choice.ts +17 -7
- package/apps/server/src/plugin-support/model-completion.ts +58 -0
- package/apps/server/src/plugin-support/model-upstreams.ts +2 -2
- package/apps/server/src/plugin-support/native-typescript-executor.ts +10 -7
- package/apps/server/src/plugin-support/plugin-config.ts +1 -1
- package/apps/server/src/plugin-support/plugin-folder.ts +4 -1
- package/apps/server/src/plugin-support/plugin-module.ts +1 -1
- package/apps/server/src/plugin-support/plugins-root.ts +6 -10
- package/apps/server/src/plugin-support/process-sandbox.ts +312 -0
- package/apps/server/src/plugin-support/product-model-settings-contract.ts +14 -5
- package/apps/server/src/plugin-support/product-model-settings.ts +10 -9
- package/{plugins/ragents.product/server/relay.ts → apps/server/src/plugin-support/product-relay.ts} +2 -2
- package/apps/server/src/plugin-support/product-start-options.ts +8 -3
- package/apps/server/src/plugin-support/prompt.ts +1 -1
- package/apps/server/src/plugin-support/provision.ts +6 -0
- package/apps/server/src/plugin-support/run-scripts.ts +16 -2
- package/apps/server/src/plugin-support/skills.ts +32 -16
- package/apps/server/src/plugin-support/start-entries-contract.ts +12 -3
- package/apps/server/src/plugin-support/start-options-contract.ts +5 -1
- package/apps/server/src/plugin-support/thinking-level.ts +6 -1
- package/apps/server/src/plugin-support/tool-availability.ts +1 -7
- package/apps/server/src/plugin-support/workspace-ownership.ts +12 -6
- package/apps/server/src/plugin-support/workspace-sandbox-host.ts +184 -37
- package/apps/server/src/profile/bundle-manifest.ts +183 -0
- package/apps/server/src/profile/compose.ts +19 -10
- package/apps/server/src/profile/plugin-discovery.ts +98 -46
- package/apps/server/src/profile/provisioning.ts +30 -26
- package/apps/server/src/profile-target.ts +3 -0
- package/apps/server/src/provider.ts +212 -106
- package/apps/server/src/ragents/actor-chat-history.ts +24 -22
- package/apps/server/src/ragents/chat-projection.ts +25 -14
- package/apps/server/src/ragents/chat-text-positions.ts +4 -4
- package/apps/server/src/ragents/coordinator.ts +27 -1
- package/apps/server/src/ragents/document-store.ts +1 -1
- package/apps/server/src/ragents/engine.ts +68 -43
- package/apps/server/src/ragents/global-chat.ts +26 -13
- package/apps/server/src/ragents/host-services.ts +15 -6
- package/apps/server/src/ragents/journal-chat-events.ts +33 -15
- package/apps/server/src/ragents/product-runtime.ts +1 -1
- package/apps/server/src/ragents/run-owner.ts +18 -0
- package/apps/server/src/ragents/runtime-bridge.ts +1 -1
- package/apps/server/src/ragents/session.ts +184 -85
- package/apps/server/src/ragents/start-option-state.ts +1 -1
- package/apps/server/src/ragents/typescript-tools.ts +35 -27
- package/apps/server/src/ragents/workspace-runtime.ts +74 -8
- package/apps/server/src/rpc/dispatcher.ts +17 -8
- package/apps/server/src/rpc/http-transport.ts +1 -3
- package/apps/server/src/rpc/stdio-transport.ts +1 -1
- package/apps/server/src/run-preparation-contract.ts +1 -1
- package/apps/server/src/run-preparation-input.ts +1 -1
- package/apps/server/src/run-preparation.ts +18 -29
- package/apps/server/src/run-transfer.ts +66 -5
- package/apps/server/src/server.ts +112 -33
- package/apps/server/src/settings.ts +9 -12
- package/apps/server/src/title-compactor.ts +5 -8
- package/apps/server/src/title-settings.ts +3 -3
- package/apps/server/src/web-bundles.ts +79 -0
- package/apps/server/src/web-stylesheet.ts +85 -0
- package/apps/server/tsconfig.json +4 -4
- package/apps/server/tsconfig.plugin.json +58 -0
- package/apps/web/dist/assets/highlighted-body-KPVGNVTW-CFhTJEmH.js +1 -0
- package/apps/web/dist/assets/main-DlzW4t4c.js +6 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-BPn4aV2r.css +1 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-kxkB991i.js +478 -0
- package/apps/web/dist/assets/runPanel-BJEFQ__w.js +21 -0
- package/apps/web/dist/help/guide-access.html +199 -0
- package/apps/web/dist/help/guide-access.md +84 -0
- package/apps/web/dist/help/guide-clients.html +430 -0
- package/apps/web/dist/help/guide-clients.md +346 -0
- package/apps/web/dist/help/guide-distributed.html +325 -0
- package/apps/web/dist/help/guide-distributed.md +230 -0
- package/apps/web/dist/help/guide-functions.html +231 -0
- package/apps/web/dist/help/guide-functions.md +127 -0
- package/apps/web/dist/help/guide-getting-started.html +230 -0
- package/apps/web/dist/help/guide-getting-started.md +123 -0
- package/apps/web/dist/help/guide-ideas.html +183 -0
- package/apps/web/dist/help/guide-ideas.md +71 -0
- package/apps/web/dist/help/guide-plugins.html +450 -0
- package/apps/web/dist/help/guide-plugins.md +341 -0
- package/apps/web/dist/help/guide-programs.html +359 -0
- package/apps/web/dist/help/guide-programs.md +271 -0
- package/apps/web/dist/help/guide-runtime.html +344 -0
- package/apps/web/dist/help/guide-runtime.md +232 -0
- package/apps/web/dist/help/guide.html +133 -0
- package/apps/web/dist/help/guide.md +13 -0
- package/apps/web/dist/help/homepage-bullets.js +12 -0
- package/apps/web/dist/help/homepage-distributed.js +261 -0
- package/apps/web/dist/help/homepage-plugins.js +30 -0
- package/apps/web/dist/help/homepage-scenes.js +368 -0
- package/apps/web/dist/help/homepage-stickers.js +69 -0
- package/apps/web/dist/help/homepage-story-nav.js +11 -0
- package/apps/web/dist/help/homepage-subnav.js +61 -0
- package/apps/web/dist/help/homepage.css +833 -0
- package/apps/web/dist/help/index.html +1167 -0
- package/apps/web/dist/help/mini-app.css +7076 -0
- package/apps/web/dist/help/mini-app.html +15 -0
- package/apps/web/dist/help/mini-app.js +131 -0
- package/apps/web/dist/help/screenshots/release-checklist-vscode.png +0 -0
- package/apps/web/dist/help/screenshots/release-checklist-web.png +0 -0
- package/apps/web/dist/help/scroll-vendor.js +73 -0
- package/apps/web/dist/help/site.css +63 -0
- package/apps/web/dist/help/site.js +103 -0
- package/apps/web/dist/host-web.json +143 -0
- package/apps/web/dist/index.html +15 -0
- package/apps/web/dist/run-panel.html +15 -0
- package/apps/web/package.json +2 -2
- package/apps/web/src/App.tsx +8 -6
- package/apps/web/src/Overview.tsx +5 -5
- package/apps/web/src/PluginActivation.ts +25 -5
- package/apps/web/src/PluginChat.tsx +163 -129
- package/apps/web/src/PluginFailureNotice.tsx +15 -0
- package/apps/web/src/PluginRegistry.tsx +106 -68
- package/apps/web/src/RunPreparationChat.tsx +40 -28
- package/apps/web/src/RunStore.ts +2 -2
- package/apps/web/src/SessionList.tsx +16 -8
- package/apps/web/src/SettingsModal.tsx +37 -37
- package/apps/web/src/StartOptions.tsx +81 -26
- package/apps/web/src/StartSelection.tsx +111 -0
- package/apps/web/src/StartTiles.tsx +73 -0
- package/apps/web/src/{CanvasShortcuts.tsx → SurfaceShortcuts.tsx} +2 -2
- package/apps/web/src/ThemeSettings.tsx +1 -1
- package/apps/web/src/WorkspacePanel.tsx +4 -4
- package/apps/web/src/access-session.ts +4 -1
- package/{plugins/ragents.orchestration/web → apps/web/src}/actor-conversation.ts +3 -3
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/DataTable.tsx +9 -9
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FilePicker.tsx +4 -4
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FlowDiagram.tsx +16 -14
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FlowDiagramRenderer.tsx +3 -3
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Form.tsx +12 -12
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Layout.tsx +1 -1
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/MessageList.tsx +5 -5
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Viewers.tsx +8 -7
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/WorkflowDiagram.tsx +1 -1
- package/apps/web/src/actor-programs/client-ui/chat-contracts.d.ts +64 -0
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/contracts.d.ts +2 -2
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/file-selection.ts +5 -5
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/index.tsx +22 -16
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/layout-contracts.d.ts +1 -1
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/message-list-contracts.d.ts +2 -2
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/workflow-diagram-contracts.d.ts +1 -1
- package/apps/web/src/api.ts +45 -22
- package/apps/web/src/chat/QuasselHost.tsx +12 -0
- package/apps/web/src/chat/StoppedActorNotice.tsx +39 -0
- package/apps/web/src/chat/chat-target.ts +14 -5
- package/apps/web/src/chat/requests.ts +13 -5
- package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
- package/apps/web/src/chat/useChat.ts +8 -7
- package/apps/web/src/chat/user-location.ts +1 -1
- package/apps/web/src/chat-view-settings.tsx +49 -0
- package/apps/web/src/host-modules.ts +90 -0
- package/apps/web/src/language-server/api.ts +24 -0
- package/{plugins/ragents.lsp-roslyn/web → apps/web/src/language-server}/language-server-plugin.tsx +133 -6
- package/apps/web/src/main.tsx +4 -2
- package/apps/web/src/offered-machines.ts +11 -0
- package/apps/web/src/panel/ConnectionsPage.tsx +117 -0
- package/apps/web/src/panel/LoginForm.tsx +9 -9
- package/apps/web/src/panel/PanelDialogs.tsx +44 -27
- package/apps/web/src/panel/PanelHeader.tsx +11 -0
- package/apps/web/src/panel/PanelPage.tsx +8 -5
- package/apps/web/src/panel/RunLine.tsx +50 -0
- package/apps/web/src/panel/RunsPage.tsx +84 -0
- package/apps/web/src/panel/StartPage.tsx +163 -0
- package/apps/web/src/panel/connection-state.ts +40 -0
- package/apps/web/src/panel/contract.ts +66 -21
- package/apps/web/src/panel/page-props.ts +6 -0
- package/apps/web/src/plugin-bootstrap.ts +60 -31
- package/{plugins/ragents.product/web → apps/web/src/product}/ModelControl.tsx +3 -3
- package/{plugins/ragents.product/web → apps/web/src/product}/ProductModelSettings.tsx +7 -7
- package/{plugins/ragents.product/web → apps/web/src/product}/SystemPromptControl.tsx +3 -3
- package/{plugins/ragents.product/web → apps/web/src/product}/model-settings.ts +3 -3
- package/{plugins/ragents.product/web → apps/web/src/product}/start-options.tsx +2 -2
- package/apps/web/src/rpc/client.ts +28 -6
- package/apps/web/src/run-panel/RunPanelApp.tsx +334 -0
- package/apps/web/src/{column/ColumnRunHeader.tsx → run-panel/RunPanelHeader.tsx} +2 -2
- package/apps/web/src/{column/ColumnMenu.tsx → run-panel/RunPanelMenu.tsx} +4 -4
- package/apps/web/src/run-panel/RunPanelRail.tsx +38 -0
- package/apps/web/src/run-panel/RunPanelWorkspace.tsx +55 -0
- package/apps/web/src/{column → run-panel}/clipboard.ts +21 -10
- package/apps/web/src/run-panel/host-contract.ts +123 -0
- package/apps/web/src/{column → run-panel}/host.ts +31 -23
- package/apps/web/src/run-panel/input-bridge.ts +75 -0
- package/apps/web/src/run-panel/keyboard.ts +53 -0
- package/apps/web/src/run-panel/run-panel-location.ts +35 -0
- package/apps/web/src/{column → run-panel}/use-session-list.ts +3 -3
- package/apps/web/src/run-panel/workspace-state.ts +43 -0
- package/apps/web/src/{column.tsx → run-panel.tsx} +20 -13
- package/apps/web/src/run-preparation.ts +1 -1
- package/{plugins/ragents.orchestration/web → apps/web/src}/run-view.ts +25 -7
- package/apps/web/src/settings-contributions.ts +16 -18
- package/apps/web/src/title-model-settings.ts +1 -1
- package/apps/web/src/toolLine.ts +1 -1
- package/apps/web/src/ui/ListDetail.tsx +1 -1
- package/apps/web/src/ui/dialog.tsx +5 -5
- package/apps/web/src/ui/frame.css +1 -0
- package/apps/web/src/ui/index.ts +5 -0
- package/apps/web/src/ui/popover.tsx +2 -2
- package/apps/web/src/ui/quassel.css +41 -0
- package/apps/web/src/ui/relative-time.ts +36 -0
- package/apps/web/src/ui/startup-notice.tsx +22 -0
- package/apps/web/src/ui/state-icon.tsx +60 -0
- package/apps/web/src/ui/state-vocabulary.ts +31 -0
- package/apps/web/src/ui/stop-button.tsx +22 -0
- package/apps/web/src/ui/tailwind.css +2 -3
- package/apps/web/src/ui/theme.css +19 -19
- package/apps/web/tsconfig.json +4 -5
- package/apps/web/tsconfig.plugin.json +44 -0
- package/bundles/ragents.activity/ragents-bundle.json +38 -0
- package/bundles/ragents.activity/server/index.js +14 -0
- package/bundles/ragents.activity/server/index.js.map +7 -0
- package/bundles/ragents.activity/web/classes.json +1 -0
- package/bundles/ragents.activity/web/index.js +2 -0
- package/bundles/ragents.activity/web/index.js.map +7 -0
- package/bundles/ragents.actor-programs/prompt.hbs +80 -0
- package/bundles/ragents.actor-programs/ragents-bundle.json +214 -0
- package/bundles/ragents.actor-programs/server/index.js +2071 -0
- package/bundles/ragents.actor-programs/server/index.js.map +7 -0
- package/bundles/ragents.actor-programs/summary.hbs +17 -0
- package/bundles/ragents.actor-programs/web/classes.json +1 -0
- package/bundles/ragents.actor-programs/web/index.js +27 -0
- package/bundles/ragents.actor-programs/web/index.js.map +7 -0
- package/bundles/ragents.ask/ask.hbs +4 -0
- package/bundles/ragents.ask/ragents-bundle.json +97 -0
- package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js +13 -0
- package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +7 -0
- package/bundles/ragents.ask/server/exports/server/contract.js +11 -0
- package/bundles/ragents.ask/server/exports/server/contract.js.map +7 -0
- package/bundles/ragents.ask/server/index.js +279 -0
- package/bundles/ragents.ask/server/index.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-HGFDGTNC.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-HGFDGTNC.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-V7W3QDVS.js +25 -0
- package/bundles/ragents.ask/web/chunks/chunk-V7W3QDVS.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +7 -0
- package/bundles/ragents.ask/web/classes.json +1 -0
- package/bundles/ragents.ask/web/exports/ask-payload.js +2 -0
- package/bundles/ragents.ask/web/exports/ask-payload.js.map +7 -0
- package/bundles/ragents.ask/web/exports/web/QuestionCard.js +2 -0
- package/bundles/ragents.ask/web/exports/web/QuestionCard.js.map +7 -0
- package/bundles/ragents.ask/web/exports/web/api.js +2 -0
- package/bundles/ragents.ask/web/exports/web/api.js.map +7 -0
- package/bundles/ragents.ask/web/index.js +2 -0
- package/bundles/ragents.ask/web/index.js.map +7 -0
- package/bundles/ragents.browser/ragents-bundle.json +53 -0
- package/bundles/ragents.browser/server/chunks/chunk-2GKLLCBE.js +11 -0
- package/bundles/ragents.browser/server/chunks/chunk-2GKLLCBE.js.map +7 -0
- package/bundles/ragents.browser/server/exports/server/contract.js +9 -0
- package/bundles/ragents.browser/server/exports/server/contract.js.map +7 -0
- package/bundles/ragents.browser/server/index.js +479 -0
- package/bundles/ragents.browser/server/index.js.map +7 -0
- package/bundles/ragents.browser/skills/browser-testing/SKILL.md +38 -0
- package/bundles/ragents.documents/prompt.hbs +18 -0
- package/bundles/ragents.documents/ragents-bundle.json +120 -0
- package/bundles/ragents.documents/server/chunks/chunk-QIECRZ7C.js +37 -0
- package/bundles/ragents.documents/server/chunks/chunk-QIECRZ7C.js.map +7 -0
- package/bundles/ragents.documents/server/exports/contract.js +11 -0
- package/bundles/ragents.documents/server/exports/contract.js.map +7 -0
- package/bundles/ragents.documents/server/index.js +290 -0
- package/bundles/ragents.documents/server/index.js.map +7 -0
- package/bundles/ragents.documents/web/classes.json +1 -0
- package/bundles/ragents.documents/web/index.js +26 -0
- package/bundles/ragents.documents/web/index.js.map +7 -0
- package/bundles/ragents.lsp-fsharp/ragents-bundle.json +49 -0
- package/bundles/ragents.lsp-fsharp/server/index.js +82 -0
- package/bundles/ragents.lsp-fsharp/server/index.js.map +7 -0
- package/bundles/ragents.lsp-fsharp/web/classes.json +1 -0
- package/bundles/ragents.lsp-fsharp/web/index.js +2 -0
- package/bundles/ragents.lsp-fsharp/web/index.js.map +7 -0
- package/bundles/ragents.lsp-roslyn/ragents-bundle.json +61 -0
- package/bundles/ragents.lsp-roslyn/server/index.js +208 -0
- package/bundles/ragents.lsp-roslyn/server/index.js.map +7 -0
- package/bundles/ragents.lsp-roslyn/web/classes.json +1 -0
- package/bundles/ragents.lsp-roslyn/web/index.js +2 -0
- package/bundles/ragents.lsp-roslyn/web/index.js.map +7 -0
- package/bundles/ragents.lsp-typescript/ragents-bundle.json +36 -0
- package/bundles/ragents.lsp-typescript/server/index.js +13 -0
- package/bundles/ragents.lsp-typescript/server/index.js.map +7 -0
- package/bundles/ragents.lsp-typescript/web/classes.json +1 -0
- package/bundles/ragents.lsp-typescript/web/index.js +2 -0
- package/bundles/ragents.lsp-typescript/web/index.js.map +7 -0
- package/bundles/ragents.model-relay/ragents-bundle.json +33 -0
- package/bundles/ragents.model-relay/server/index.js +230 -0
- package/bundles/ragents.model-relay/server/index.js.map +7 -0
- package/bundles/ragents.orchestration/orchestration.hbs +106 -0
- package/bundles/ragents.orchestration/ragents-bundle.json +194 -0
- package/bundles/ragents.orchestration/server/index.js +277 -0
- package/bundles/ragents.orchestration/server/index.js.map +7 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-ODMMQGX2.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-ODMMQGX2.js.map +7 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js.map +7 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-OSKPH6SZ.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-OSKPH6SZ.js.map +7 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-XGPPQCZR.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-XGPPQCZR.js.map +7 -0
- package/bundles/ragents.orchestration/web/classes.json +1 -0
- package/bundles/ragents.orchestration/web/exports/web/program-slot.js +2 -0
- package/bundles/ragents.orchestration/web/exports/web/program-slot.js.map +7 -0
- package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +2 -0
- package/bundles/ragents.orchestration/web/exports/web/surface-entities.js.map +7 -0
- package/bundles/ragents.orchestration/web/exports/web/tile-docking.js +2 -0
- package/bundles/ragents.orchestration/web/exports/web/tile-docking.js.map +7 -0
- package/bundles/ragents.orchestration/web/index.js +51 -0
- package/bundles/ragents.orchestration/web/index.js.map +7 -0
- package/bundles/ragents.overseer/ragents-bundle.json +144 -0
- package/bundles/ragents.overseer/server/index.js +652 -0
- package/bundles/ragents.overseer/server/index.js.map +7 -0
- package/bundles/ragents.overseer/web/classes.json +1 -0
- package/bundles/ragents.overseer/web/index.js +25 -0
- package/bundles/ragents.overseer/web/index.js.map +7 -0
- package/bundles/ragents.processes/ragents-bundle.json +93 -0
- package/bundles/ragents.processes/server/index.js +204 -0
- package/bundles/ragents.processes/server/index.js.map +7 -0
- package/bundles/ragents.processes/web/classes.json +1 -0
- package/bundles/ragents.processes/web/index.js +4 -0
- package/bundles/ragents.processes/web/index.js.map +7 -0
- package/bundles/ragents.product/preamble.hbs +9 -0
- package/bundles/ragents.product/ragents-bundle.json +93 -0
- package/bundles/ragents.product/server/index.js +208 -0
- package/bundles/ragents.product/server/index.js.map +7 -0
- package/bundles/ragents.product/web/classes.json +1 -0
- package/bundles/ragents.product/web/index.js +2 -0
- package/bundles/ragents.product/web/index.js.map +7 -0
- package/bundles/ragents.profile-distribution/ragents-bundle.json +64 -0
- package/bundles/ragents.profile-distribution/server/index.js +241 -0
- package/bundles/ragents.profile-distribution/server/index.js.map +7 -0
- package/bundles/ragents.reference/ragents-bundle.json +39 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +27 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +10 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +80 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +82 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +154 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +9 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +32 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +59 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +13 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +9 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +81 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +26 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +34 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +24 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +10 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +5 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/client.tsx +27 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +137 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/state.ts +38 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/view.tsx +42 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/workflow.ts +38 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +218 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +12 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/package.json +9 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +60 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +26 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +24 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +18 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +16 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/client.tsx +39 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +15 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/server.ts +14 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +13 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +9 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +65 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +26 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +42 -0
- package/bundles/ragents.reference/run-scripts/word-game/RUN.md +25 -0
- package/bundles/ragents.reference/run-scripts/word-game/package.json +11 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +27 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +23 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +105 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/state.ts +22 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/view.tsx +54 -0
- package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +252 -0
- package/bundles/ragents.reference/server/index.js +16 -0
- package/bundles/ragents.reference/server/index.js.map +7 -0
- package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/decision-brief/SKILL.md +33 -0
- package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +33 -0
- package/bundles/ragents.reference/web/classes.json +1 -0
- package/bundles/ragents.reference/web/index.js +2 -0
- package/bundles/ragents.reference/web/index.js.map +7 -0
- package/bundles/ragents.todo/ragents-bundle.json +48 -0
- package/bundles/ragents.todo/server/index.js +108 -0
- package/bundles/ragents.todo/server/index.js.map +7 -0
- package/bundles/ragents.todo/web/classes.json +1 -0
- package/bundles/ragents.todo/web/index.js +2 -0
- package/bundles/ragents.todo/web/index.js.map +7 -0
- package/bundles/ragents.transcript/ragents-bundle.json +34 -0
- package/bundles/ragents.transcript/server/index.js +102 -0
- package/bundles/ragents.transcript/server/index.js.map +7 -0
- package/bundles/ragents.watch/ragents-bundle.json +39 -0
- package/bundles/ragents.watch/server/chunks/chunk-FHAM6OML.js +11 -0
- package/bundles/ragents.watch/server/chunks/chunk-FHAM6OML.js.map +7 -0
- package/bundles/ragents.watch/server/chunks/chunk-RPBX3J4P.js +10 -0
- package/bundles/ragents.watch/server/chunks/chunk-RPBX3J4P.js.map +7 -0
- package/bundles/ragents.watch/server/exports/contract.js +9 -0
- package/bundles/ragents.watch/server/exports/contract.js.map +7 -0
- package/bundles/ragents.watch/server/exports/server/contract.js +9 -0
- package/bundles/ragents.watch/server/exports/server/contract.js.map +7 -0
- package/bundles/ragents.watch/server/index.js +482 -0
- package/bundles/ragents.watch/server/index.js.map +7 -0
- package/bundles/ragents.workspace/prompt.hbs +7 -0
- package/bundles/ragents.workspace/ragents-bundle.json +148 -0
- package/bundles/ragents.workspace/server/index.js +1049 -0
- package/bundles/ragents.workspace/server/index.js.map +7 -0
- package/bundles/ragents.workspace/web/classes.json +1 -0
- package/bundles/ragents.workspace/web/index.js +39 -0
- package/bundles/ragents.workspace/web/index.js.map +7 -0
- package/package.json +4 -15
- package/packages/agent/dist/core/agent-settings.d.ts +27 -0
- package/packages/agent/dist/core/compaction/compaction.d.ts +82 -0
- package/packages/agent/dist/core/compaction/index.d.ts +6 -0
- package/packages/agent/dist/core/compaction/utils.d.ts +39 -0
- package/packages/agent/dist/core/context-log.d.ts +25 -0
- package/packages/agent/dist/core/messages.d.ts +30 -0
- package/packages/agent/dist/core/model-runtime.d.ts +32 -0
- package/packages/agent/dist/core/provider-composer.d.ts +25 -0
- package/packages/agent/dist/core/skills.d.ts +20 -0
- package/packages/agent/dist/core/tool-definition.d.ts +17 -0
- package/packages/agent/dist/core/tools/bash.d.ts +58 -0
- package/packages/agent/dist/core/tools/edit-diff.d.ts +98 -0
- package/packages/agent/dist/core/tools/edit.d.ts +41 -0
- package/packages/agent/dist/core/tools/file-mutation-queue.d.ts +6 -0
- package/packages/agent/dist/core/tools/index.d.ts +5 -0
- package/packages/agent/dist/core/tools/output-accumulator.d.ts +58 -0
- package/packages/agent/dist/core/tools/path-utils.d.ts +8 -0
- package/packages/agent/dist/core/tools/read.d.ts +33 -0
- package/packages/agent/dist/core/tools/truncate.d.ts +61 -0
- package/packages/agent/dist/core/tools/write.d.ts +23 -0
- package/packages/agent/dist/index.d.ts +12 -0
- package/packages/agent/dist/loop/agent-loop.d.ts +13 -0
- package/packages/agent/dist/loop/agent.d.ts +99 -0
- package/packages/agent/dist/loop/index.d.ts +5 -0
- package/packages/agent/dist/loop/types.d.ts +333 -0
- package/packages/agent/dist/loop/uuid.d.ts +2 -0
- package/packages/agent/dist/utils/child-process.d.ts +17 -0
- package/packages/agent/dist/utils/exif-orientation.d.ts +5 -0
- package/packages/agent/dist/utils/frontmatter.d.ts +8 -0
- package/packages/agent/dist/utils/image-convert.d.ts +2 -0
- package/packages/agent/dist/utils/image-process.d.ts +18 -0
- package/packages/agent/dist/utils/image-resize-core.d.ts +30 -0
- package/packages/agent/dist/utils/image-resize-worker.d.ts +2 -0
- package/packages/agent/dist/utils/image-resize.d.ts +16 -0
- package/packages/agent/dist/utils/mime.d.ts +3 -0
- package/packages/agent/dist/utils/paths.d.ts +15 -0
- package/packages/agent/dist/utils/photon.d.ts +21 -0
- package/packages/agent/dist/utils/shell.d.ts +17 -0
- package/packages/agent/dist/utils/sleep.d.ts +5 -0
- package/packages/agent/package.json +3 -32
- package/packages/agent/src/core/agent-settings.ts +20 -0
- package/packages/agent/src/core/compaction/compaction.ts +53 -208
- package/packages/agent/src/core/compaction/index.ts +0 -1
- package/packages/agent/src/core/compaction/utils.ts +2 -2
- package/packages/agent/src/core/context-log.ts +49 -0
- package/packages/agent/src/core/messages.ts +9 -119
- package/packages/agent/src/core/model-runtime.ts +109 -467
- package/packages/agent/src/core/provider-composer.ts +21 -451
- package/packages/agent/src/core/skills.ts +8 -440
- package/packages/agent/src/core/tool-definition.ts +29 -0
- package/packages/agent/src/core/tools/bash.ts +22 -41
- package/packages/agent/src/core/tools/edit-diff.ts +0 -60
- package/packages/agent/src/core/tools/edit.ts +4 -29
- package/packages/agent/src/core/tools/index.ts +4 -130
- package/packages/agent/src/core/tools/output-accumulator.ts +33 -5
- package/packages/agent/src/core/tools/path-utils.ts +2 -49
- package/packages/agent/src/core/tools/read.ts +6 -29
- package/packages/agent/src/core/tools/truncate.ts +0 -15
- package/packages/agent/src/core/tools/write.ts +2 -13
- package/packages/agent/src/index.ts +23 -270
- package/packages/{agent-core/src → agent/src/loop}/agent-loop.ts +128 -275
- package/packages/{agent-core/src → agent/src/loop}/agent.ts +20 -166
- package/packages/{agent-core/src → agent/src/loop}/types.ts +6 -105
- package/packages/agent/src/utils/child-process.ts +0 -13
- package/packages/agent/src/utils/image-convert.ts +0 -25
- package/packages/agent/src/utils/paths.ts +1 -71
- package/packages/agent/src/utils/shell.ts +13 -156
- package/packages/ai/dist/api/ai-sdk-messages.d.ts +9 -0
- package/packages/ai/dist/api/ai-sdk-transport.d.ts +13 -0
- package/packages/ai/dist/api/ai-sdk.d.ts +15 -0
- package/packages/ai/dist/api/ai-sdk.lazy.d.ts +3 -0
- package/packages/ai/dist/api/lazy.d.ts +15 -0
- package/packages/ai/dist/api/simple-options.d.ts +4 -0
- package/packages/ai/dist/api/transform-messages.d.ts +8 -0
- package/packages/ai/dist/api-registry.d.ts +25 -0
- package/packages/ai/dist/auth/context.d.ts +4 -0
- package/packages/ai/dist/auth/helpers.d.ts +4 -0
- package/packages/ai/dist/auth/resolve.d.ts +19 -0
- package/packages/ai/dist/auth/types.d.ts +51 -0
- package/packages/ai/dist/env-api-keys.d.ts +8 -0
- package/packages/ai/dist/index.d.ts +19 -0
- package/packages/ai/dist/models.d.ts +71 -0
- package/packages/ai/dist/models.generated.d.ts +8021 -0
- package/packages/ai/dist/providers/all.d.ts +15 -0
- package/packages/ai/dist/providers/faux.d.ts +97 -0
- package/packages/ai/dist/providers/openrouter.d.ts +3 -0
- package/packages/ai/dist/providers/openrouter.models.d.ts +8019 -0
- package/packages/ai/dist/types.d.ts +543 -0
- package/packages/ai/dist/utils/diagnostics.d.ts +13 -0
- package/packages/ai/dist/utils/error-body.d.ts +25 -0
- package/packages/ai/dist/utils/estimate.d.ts +17 -0
- package/packages/ai/dist/utils/event-stream.d.ts +21 -0
- package/packages/ai/dist/utils/headers.d.ts +2 -0
- package/packages/ai/dist/utils/json-parse.d.ts +16 -0
- package/packages/ai/dist/utils/overflow.d.ts +54 -0
- package/packages/ai/dist/utils/provider-env.d.ts +7 -0
- package/packages/ai/dist/utils/retry.d.ts +12 -0
- package/packages/ai/dist/utils/sanitize-unicode.d.ts +22 -0
- package/packages/ai/dist/utils/typebox-helpers.d.ts +17 -0
- package/packages/ai/dist/utils/validation.d.ts +10 -0
- package/packages/ai/package.json +2 -6
- package/packages/ai/src/api/ai-sdk-messages.ts +15 -10
- package/packages/ai/src/api/ai-sdk-transport.ts +2 -2
- package/packages/ai/src/api/ai-sdk.ts +11 -0
- package/packages/ai/src/api/simple-options.ts +0 -34
- package/packages/ai/src/api/transform-messages.ts +1 -1
- package/packages/ai/src/api-registry.ts +1 -12
- package/packages/ai/src/auth/context.ts +1 -30
- package/packages/ai/src/auth/helpers.ts +3 -34
- package/packages/ai/src/auth/resolve.ts +10 -108
- package/packages/ai/src/auth/types.ts +9 -176
- package/packages/ai/src/index.ts +1 -13
- package/packages/ai/src/models.ts +41 -407
- package/packages/ai/src/providers/all.ts +3 -31
- package/packages/ai/src/providers/openrouter.models.ts +14 -0
- package/packages/ai/src/types.ts +2 -104
- package/packages/ai/src/utils/diagnostics.ts +0 -32
- package/packages/ai/src/utils/headers.ts +0 -11
- package/packages/ai/src/utils/overflow.ts +0 -7
- package/packages/ai/src/utils/retry.ts +14 -0
- package/packages/ai/src/utils/validation.ts +0 -15
- package/packages/ragents/package.json +3 -6
- package/packages/ragents/src/access.ts +2 -1
- package/packages/ragents/src/agents/actor-input.ts +29 -18
- package/packages/ragents/src/agents/catalog.ts +3 -3
- package/packages/ragents/src/agents/model-context.ts +360 -0
- package/packages/ragents/src/agents/plugins.ts +0 -4
- package/packages/ragents/src/agents/scheduler.ts +233 -83
- package/packages/ragents/src/agents/schemas.ts +1 -36
- package/packages/ragents/src/agents/tool-orientation.ts +1 -1
- package/packages/ragents/src/agents/tools.ts +74 -75
- package/packages/ragents/src/agents/toolset.ts +51 -24
- package/packages/ragents/src/agents/turn.ts +2 -14
- package/packages/ragents/src/agents/workspaces.ts +12 -0
- package/packages/ragents/src/domain/actor-reference.ts +22 -0
- package/packages/ragents/src/domain/driver.ts +0 -9
- package/packages/ragents/src/domain/event-semantics.ts +111 -72
- package/packages/ragents/src/domain/event-validation.ts +188 -21
- package/packages/ragents/src/domain/events.ts +91 -7
- package/packages/ragents/src/domain/json.ts +2 -0
- package/packages/ragents/src/domain/model.ts +42 -18
- package/packages/ragents/src/domain/projection.ts +52 -15
- package/packages/ragents/src/domain/schema-errors.ts +3 -3
- package/packages/ragents/src/domain/tool-result-text.ts +9 -0
- package/packages/ragents/src/drivers/agent-hooks.ts +27 -0
- package/packages/ragents/src/drivers/agent-runtime.ts +137 -1020
- package/packages/ragents/src/drivers/agent-turn.ts +735 -0
- package/packages/ragents/src/drivers/agent.ts +13 -26
- package/packages/ragents/src/drivers/attachments.ts +4 -24
- package/packages/ragents/src/drivers/skill-preload.ts +56 -78
- package/packages/ragents/src/drivers/types.ts +39 -6
- package/packages/ragents/src/http/contracts.ts +16 -3
- package/packages/ragents/src/http/methods.ts +32 -33
- package/packages/ragents/src/index.ts +12 -21
- package/packages/ragents/src/plugin-host.ts +150 -105
- package/packages/ragents/src/plugin-types.ts +86 -23
- package/packages/ragents/src/rpc/peer.ts +6 -0
- package/packages/ragents/src/runtime/decisions/actions.ts +40 -37
- package/packages/ragents/src/runtime/decisions/actors.ts +100 -51
- package/packages/ragents/src/runtime/decisions/artifacts.ts +2 -2
- package/packages/ragents/src/runtime/decisions/inputs.ts +3 -3
- package/packages/ragents/src/runtime/decisions/subscriptions.ts +9 -7
- package/packages/ragents/src/runtime/decisions/turns.ts +101 -9
- package/packages/ragents/src/runtime/guards.ts +12 -21
- package/packages/ragents/src/runtime/journal-storage.ts +8 -3
- package/packages/ragents/src/runtime/journal.ts +36 -1
- package/packages/ragents/src/runtime/orchestration.ts +167 -19
- package/packages/ragents/src/runtime/serial-queue.ts +24 -0
- package/packages/ragents/src/runtime/stop.ts +19 -44
- package/packages/ragents/src/script/mediators.ts +4 -5
- package/packages/ragents/src/typescript/index.ts +2 -0
- package/packages/ragents/src/typescript/run-context.ts +10 -8
- package/packages/ragents/src/typescript/snippet.ts +7 -6
- package/packages/workspace-executor/package.json +2 -2
- package/packages/workspace-executor/src/bash-launch.ts +45 -0
- package/packages/workspace-executor/src/browser/contract.ts +71 -0
- package/packages/workspace-executor/src/browser/module.ts +74 -0
- package/packages/workspace-executor/src/browser/pages.ts +298 -0
- package/packages/workspace-executor/src/browser/playwright.ts +52 -0
- package/packages/workspace-executor/src/commands.ts +170 -0
- package/packages/workspace-executor/src/context.ts +34 -6
- package/packages/workspace-executor/src/errors.ts +12 -0
- package/packages/workspace-executor/src/executor.ts +62 -104
- package/packages/workspace-executor/src/files.ts +287 -0
- package/packages/workspace-executor/src/index.ts +82 -18
- package/packages/workspace-executor/src/language-server/adapters/roslyn.ts +1 -0
- package/packages/workspace-executor/src/language-server/contract.ts +14 -0
- package/packages/workspace-executor/src/language-server/host.ts +82 -26
- package/packages/workspace-executor/src/language-server/module.ts +107 -0
- package/packages/workspace-executor/src/language-server/workspace-solutions.ts +90 -0
- package/packages/workspace-executor/src/managed-process.ts +1 -1
- package/packages/workspace-executor/src/module.ts +35 -0
- package/packages/workspace-executor/src/modules.ts +25 -0
- package/packages/workspace-executor/src/paths.ts +57 -5
- package/packages/workspace-executor/src/process-sandbox.ts +16 -0
- package/packages/workspace-executor/src/processes/module.ts +48 -0
- package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/process-table.ts +80 -57
- package/packages/workspace-executor/src/processes/scanner.ts +106 -0
- package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/snapshot.ts +23 -11
- package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/terminator.ts +19 -20
- package/packages/workspace-executor/src/run-folders.ts +33 -0
- package/packages/workspace-executor/src/safe-environment.ts +14 -0
- package/packages/workspace-executor/src/sandbox-tools.ts +212 -43
- package/packages/workspace-executor/src/shell-platform.ts +2 -2
- package/plugins/package.json +1 -1
- package/plugins/ragents.activity/ragents-plugin.json +3 -0
- package/plugins/ragents.activity/server/index.ts +2 -2
- package/plugins/ragents.activity/web/ActivityHeader.tsx +2 -2
- package/plugins/ragents.activity/web/activity.ts +1 -1
- package/plugins/ragents.activity/web/index.tsx +1 -1
- package/plugins/ragents.actor-programs/prompt.hbs +8 -7
- package/plugins/ragents.actor-programs/ragents-plugin.json +3 -0
- package/plugins/ragents.actor-programs/server/agent-tools.ts +3 -3
- package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/capability-resolver.ts +1 -16
- package/plugins/ragents.actor-programs/server/controls-template.ts +5 -18
- package/plugins/ragents.actor-programs/server/controls-tool.ts +8 -11
- package/plugins/ragents.actor-programs/server/index.ts +10 -10
- package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/limits.ts +4 -4
- package/plugins/ragents.actor-programs/server/methods.ts +2 -2
- package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/operations.ts +2 -4
- package/plugins/ragents.actor-programs/server/project-diagnostics.ts +65 -70
- package/plugins/ragents.actor-programs/server/prompts.ts +4 -4
- package/plugins/ragents.actor-programs/server/routes.ts +14 -8
- package/plugins/ragents.actor-programs/server/runtime.ts +132 -55
- package/plugins/ragents.actor-programs/server/templates.ts +35 -80
- package/plugins/ragents.actor-programs/server/test-report.ts +106 -0
- package/plugins/ragents.actor-programs/server/tool-contributor.ts +4 -4
- package/plugins/ragents.actor-programs/summary.hbs +1 -1
- package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +15 -10
- package/plugins/ragents.actor-programs/web/AppsPanel.tsx +47 -30
- package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +15 -17
- package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +3 -3
- package/plugins/ragents.actor-programs/web/FunctionForm.tsx +3 -3
- package/plugins/ragents.actor-programs/web/ProgramSource.tsx +12 -3
- package/plugins/ragents.actor-programs/web/api.ts +5 -5
- package/plugins/ragents.actor-programs/web/bridge.ts +2 -3
- package/plugins/ragents.actor-programs/web/chat-state.ts +9 -8
- package/plugins/ragents.actor-programs/web/index.tsx +7 -17
- package/plugins/ragents.actor-programs/web/program-state.ts +3 -3
- package/plugins/ragents.actor-programs/web/state-revision.ts +2 -2
- package/plugins/ragents.ask/ask-payload.ts +25 -0
- package/plugins/ragents.ask/contract.ts +2 -2
- package/plugins/ragents.ask/ragents-plugin.json +7 -0
- package/plugins/ragents.ask/server/answer-method.ts +1 -1
- package/plugins/ragents.ask/server/ask-service.ts +43 -19
- package/plugins/ragents.ask/server/ask-tool.ts +2 -2
- package/plugins/ragents.ask/server/contract.ts +9 -1
- package/plugins/ragents.ask/server/index.ts +8 -10
- package/plugins/ragents.ask/server/tool-contributor.ts +3 -3
- package/plugins/ragents.ask/web/AskActionView.tsx +36 -0
- package/{apps/web/src/chat → plugins/ragents.ask/web}/QuestionCard.tsx +7 -5
- package/plugins/ragents.ask/web/QuestionSection.tsx +22 -21
- package/plugins/ragents.ask/web/api.ts +1 -1
- package/plugins/ragents.ask/web/index.tsx +11 -8
- package/plugins/ragents.browser/provision.ts +9 -8
- package/plugins/ragents.browser/ragents-plugin.json +6 -0
- package/plugins/ragents.browser/server/browser.ts +165 -286
- package/plugins/ragents.browser/server/contract.ts +8 -19
- package/plugins/ragents.browser/server/index.ts +8 -7
- package/plugins/ragents.browser/server/tools.ts +29 -37
- package/plugins/ragents.browser/skills/browser-testing/SKILL.md +3 -1
- package/plugins/ragents.documents/contract.ts +4 -2
- package/plugins/ragents.documents/ragents-plugin.json +6 -0
- package/plugins/ragents.documents/server/config.ts +1 -1
- package/plugins/ragents.documents/server/document-write-tool.ts +2 -2
- package/plugins/ragents.documents/server/files-route.ts +2 -3
- package/plugins/ragents.documents/server/index.ts +10 -11
- package/plugins/ragents.documents/server/show-document-tool.ts +2 -2
- package/plugins/ragents.documents/server/store.ts +3 -3
- package/plugins/ragents.documents/server/tool-contributor.ts +3 -3
- package/plugins/ragents.documents/web/DocumentViewer.tsx +5 -6
- package/plugins/ragents.documents/web/api.ts +1 -1
- package/plugins/ragents.documents/web/index.tsx +4 -4
- package/plugins/ragents.lsp-fsharp/provision.ts +2 -2
- package/plugins/ragents.lsp-fsharp/ragents-plugin.json +3 -0
- package/plugins/ragents.lsp-fsharp/server/index.ts +3 -3
- package/plugins/ragents.lsp-fsharp/web/index.tsx +1 -1
- package/plugins/ragents.lsp-roslyn/provision.ts +2 -2
- package/plugins/ragents.lsp-roslyn/ragents-plugin.json +3 -0
- package/plugins/ragents.lsp-roslyn/server/index.ts +47 -8
- package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +145 -0
- package/plugins/ragents.lsp-roslyn/web/index.tsx +1 -1
- package/plugins/ragents.lsp-typescript/ragents-plugin.json +3 -0
- package/plugins/ragents.lsp-typescript/server/index.ts +3 -3
- package/plugins/ragents.lsp-typescript/web/index.tsx +1 -1
- package/plugins/ragents.model-relay/ragents-plugin.json +3 -0
- package/plugins/ragents.model-relay/server/config.ts +5 -31
- package/plugins/ragents.model-relay/server/index.ts +5 -6
- package/plugins/ragents.model-relay/server/relay.ts +8 -9
- package/plugins/ragents.orchestration/contract.ts +13 -14
- package/plugins/ragents.orchestration/orchestration.hbs +4 -3
- package/plugins/ragents.orchestration/ragents-plugin.json +6 -0
- package/plugins/ragents.orchestration/server/index.ts +13 -16
- package/plugins/ragents.orchestration/server/run-stop-tool.ts +4 -4
- package/plugins/ragents.orchestration/server/{canvas-tool.ts → surface-tool.ts} +42 -43
- package/plugins/ragents.orchestration/surface.hbs +34 -0
- package/plugins/ragents.orchestration/tiled-layout.ts +16 -16
- package/plugins/ragents.orchestration/web/ActorChat.tsx +16 -14
- package/plugins/ragents.orchestration/web/ActorChatControls.tsx +23 -26
- package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +5 -6
- package/plugins/ragents.orchestration/web/ActorPopout.tsx +7 -5
- package/plugins/ragents.orchestration/web/ActorShortcut.tsx +16 -16
- package/plugins/ragents.orchestration/web/{ActorCanvasControls.tsx → ActorSurfaceControls.tsx} +23 -28
- package/plugins/ragents.orchestration/web/ActorTile.tsx +2 -2
- package/plugins/ragents.orchestration/web/Center.tsx +47 -55
- package/plugins/ragents.orchestration/web/DocumentsSection.tsx +4 -4
- package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +7 -7
- package/plugins/ragents.orchestration/web/FlowInspector.tsx +24 -42
- package/plugins/ragents.orchestration/web/JournalStatus.tsx +8 -8
- package/plugins/ragents.orchestration/web/MaterialBody.tsx +5 -5
- package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
- package/plugins/ragents.orchestration/web/SurfaceStartup.tsx +8 -0
- package/plugins/ragents.orchestration/web/{CanvasTiles.tsx → SurfaceTiles.tsx} +18 -18
- package/plugins/ragents.orchestration/web/{TiledCanvas.tsx → TiledSurface.tsx} +22 -22
- package/plugins/ragents.orchestration/web/actor-header-settings.ts +2 -2
- package/plugins/ragents.orchestration/web/api.ts +4 -10
- package/plugins/ragents.orchestration/web/constants.ts +0 -1
- package/plugins/ragents.orchestration/web/executions.ts +3 -3
- package/plugins/ragents.orchestration/web/index.tsx +19 -124
- package/plugins/ragents.orchestration/web/program-slot.ts +14 -0
- package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +95 -0
- package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +109 -0
- package/plugins/ragents.orchestration/web/{column/RunColumn.tsx → run-panel/RunPanel.tsx} +211 -83
- package/plugins/ragents.orchestration/web/{column/ColumnSettings.tsx → run-panel/RunPanelSettings.tsx} +13 -13
- package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +165 -0
- package/plugins/ragents.orchestration/web/{column/column-actors.ts → run-panel/run-panel-actors.ts} +14 -13
- package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +47 -0
- package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +30 -0
- package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +71 -0
- package/plugins/ragents.orchestration/web/{column → run-panel}/sheet-status.ts +4 -4
- package/plugins/ragents.orchestration/web/{canvas-stage.ts → surface-entities.ts} +2 -2
- package/plugins/ragents.orchestration/web/{canvas-startup.ts → surface-startup.ts} +7 -10
- package/plugins/ragents.orchestration/web/surface-view-settings.ts +42 -0
- package/plugins/ragents.orchestration/web/tile-docking.ts +14 -14
- package/plugins/ragents.orchestration/web/tiled-view-settings.ts +26 -26
- package/plugins/ragents.overseer/contract.ts +20 -14
- package/plugins/ragents.overseer/ragents-plugin.json +3 -0
- package/plugins/ragents.overseer/server/api.ts +34 -23
- package/plugins/ragents.overseer/server/coordinator-prompt.ts +3 -3
- package/plugins/ragents.overseer/server/coordinator.ts +19 -0
- package/plugins/ragents.overseer/server/index.ts +39 -27
- package/plugins/ragents.overseer/server/orientation.ts +4 -5
- package/plugins/ragents.overseer/server/quick-answer.ts +5 -4
- package/plugins/ragents.overseer/server/reset-method.ts +4 -3
- package/plugins/ragents.overseer/server/run-directory.ts +5 -5
- package/plugins/ragents.overseer/server/settings-method.ts +1 -1
- package/plugins/ragents.overseer/server/settings.ts +6 -6
- package/plugins/ragents.overseer/server/user-location.ts +20 -19
- package/plugins/ragents.overseer/web/ModelSettings.tsx +4 -4
- package/plugins/ragents.overseer/web/chat-display.ts +1 -1
- package/plugins/ragents.overseer/web/index.tsx +51 -26
- package/plugins/ragents.overseer/web/model-settings.ts +1 -1
- package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
- package/plugins/ragents.processes/contract.ts +5 -5
- package/plugins/ragents.processes/ragents-plugin.json +3 -0
- package/plugins/ragents.processes/server/index.ts +13 -19
- package/plugins/ragents.processes/server/methods.ts +18 -20
- package/plugins/ragents.processes/server/observer.ts +64 -104
- package/plugins/ragents.processes/server/run-processes.ts +24 -0
- package/plugins/ragents.processes/web/ProcessHeader.tsx +13 -16
- package/plugins/ragents.processes/web/index.tsx +2 -1
- package/plugins/ragents.processes/web/processes.ts +1 -1
- package/plugins/ragents.product/ragents-plugin.json +3 -0
- package/plugins/ragents.product/server/config.ts +12 -13
- package/plugins/ragents.product/server/index.ts +15 -16
- package/plugins/ragents.product/server/runtime.ts +2 -2
- package/plugins/ragents.product/web/index.tsx +3 -3
- package/plugins/ragents.profile-distribution/contract.ts +6 -9
- package/plugins/ragents.profile-distribution/ragents-plugin.json +3 -0
- package/plugins/ragents.profile-distribution/server/archive.ts +26 -51
- package/plugins/ragents.profile-distribution/server/config.ts +2 -2
- package/plugins/ragents.profile-distribution/server/index.ts +9 -16
- package/plugins/ragents.reference/examples.ts +1 -1
- package/plugins/ragents.reference/ragents-plugin.json +3 -0
- package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +2 -2
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +1 -1
- package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +4 -4
- package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +2 -2
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/state.ts +2 -2
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/view.tsx +11 -11
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/workflow.ts +15 -15
- package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +4 -9
- package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +1 -1
- package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +2 -2
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/client.tsx +6 -6
- package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +3 -3
- package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/RUN.md +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +1 -2
- package/plugins/ragents.reference/run-scripts/word-game/src/state.ts +6 -6
- package/plugins/ragents.reference/run-scripts/word-game/src/view.tsx +14 -14
- package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +7 -8
- package/plugins/ragents.reference/server/index.ts +2 -2
- package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +1 -1
- package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +1 -1
- package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +1 -1
- package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +1 -1
- package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +2 -2
- package/plugins/ragents.reference/skills/decision-brief/SKILL.md +2 -2
- package/plugins/ragents.reference/walkthroughs.ts +19 -19
- package/plugins/ragents.reference/web/StartGuides.tsx +2 -2
- package/plugins/ragents.reference/web/index.tsx +1 -1
- package/plugins/ragents.todo/ragents-plugin.json +3 -0
- package/plugins/ragents.todo/server/index.ts +2 -2
- package/plugins/ragents.todo/server/todo-tool.ts +4 -5
- package/plugins/ragents.todo/server/tool-contributor.ts +2 -2
- package/plugins/ragents.todo/web/TodoSection.tsx +3 -3
- package/plugins/ragents.todo/web/index.ts +1 -1
- package/plugins/ragents.transcript/ragents-plugin.json +3 -0
- package/plugins/ragents.transcript/server/index.ts +4 -4
- package/plugins/ragents.transcript/server/transcript.ts +2 -3
- package/plugins/ragents.watch/ragents-plugin.json +6 -0
- package/plugins/ragents.watch/server/condition.ts +2 -2
- package/plugins/ragents.watch/server/contract.ts +1 -1
- package/plugins/ragents.watch/server/functions.ts +3 -3
- package/plugins/ragents.watch/server/index.ts +3 -3
- package/plugins/ragents.watch/server/observation.ts +6 -6
- package/plugins/ragents.watch/server/service.ts +5 -5
- package/plugins/ragents.workspace/client/workspace-client.ts +129 -58
- package/plugins/ragents.workspace/contract.ts +98 -35
- package/plugins/ragents.workspace/prompt.hbs +1 -8
- package/plugins/ragents.workspace/ragents-plugin.json +3 -0
- package/plugins/ragents.workspace/server/binding.ts +122 -39
- package/plugins/ragents.workspace/server/browse-route.ts +96 -103
- package/plugins/ragents.workspace/server/clients.ts +236 -68
- package/plugins/ragents.workspace/server/config.ts +30 -0
- package/plugins/ragents.workspace/server/index.ts +61 -26
- package/plugins/ragents.workspace/server/runtime.ts +271 -46
- package/{apps/server/src/plugin-support → plugins/ragents.workspace/server}/shell-platform.ts +3 -5
- package/{apps/server/src/plugin-support → plugins/ragents.workspace/server}/workspace-tool-naming.ts +7 -1
- package/plugins/ragents.workspace/web/FileBrowser.tsx +11 -8
- package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +115 -61
- package/plugins/ragents.workspace/web/api.ts +1 -1
- package/plugins/ragents.workspace/web/index.tsx +1 -1
- package/ragents.config.core.ts +2 -7
- package/ragents.config.showcase.ts +2 -5
- package/scripts/agent/agent-cli.ts +265 -107
- package/scripts/agent/journal.ts +8 -4
- package/scripts/agent/turn-control.ts +19 -0
- package/scripts/package/build-package.ts +68 -13
- package/scripts/package/ragents.mjs +4 -2
- package/scripts/plugin/build-builtin-plugins.ts +52 -0
- package/scripts/plugin/plugin-cli.ts +99 -0
- package/scripts/provision/run-provision.ts +20 -18
- package/scripts/remote/connect.ts +75 -53
- package/scripts/remote/start.ts +2 -3
- package/scripts/workspace-client/run-workspace-client.ts +15 -9
- package/apps/server/agent-home/settings.json +0 -3
- package/apps/server/src/chat-attachments.ts +0 -52
- package/apps/server/src/chat-events.ts +0 -185
- package/apps/server/src/plugin-support/asset-path.ts +0 -4
- package/apps/server/src/profile/plugin-list.ts +0 -19
- package/apps/server/src/web-build.ts +0 -82
- package/apps/web/column.html +0 -12
- package/apps/web/index.html +0 -12
- package/apps/web/src/StartSurface.tsx +0 -161
- package/apps/web/src/chat/ChatInputToolbar.tsx +0 -488
- package/apps/web/src/chat/ChatMessages.tsx +0 -666
- package/apps/web/src/chat/ChatPanel.tsx +0 -61
- package/apps/web/src/chat/DetailModeSwitch.tsx +0 -58
- package/apps/web/src/chat/Markdown.tsx +0 -104
- package/apps/web/src/chat/StepPopover.tsx +0 -82
- package/apps/web/src/chat/WorkingScenes.tsx +0 -235
- package/apps/web/src/chat/attachments.ts +0 -53
- package/apps/web/src/chat/chat-scroll.ts +0 -41
- package/apps/web/src/chat/texts.ts +0 -61
- package/apps/web/src/chat/types.ts +0 -26
- package/apps/web/src/column/ColumnApp.tsx +0 -234
- package/apps/web/src/column/column-location.ts +0 -30
- package/apps/web/src/column/host-contract.ts +0 -93
- package/apps/web/src/panel/OverviewPage.tsx +0 -215
- package/apps/web/src/panel/SettingsPage.tsx +0 -98
- package/apps/web/src/panel/target-state.ts +0 -78
- package/apps/web/src/plugin-discovery.ts +0 -5
- package/apps/web/src/virtual-plugins.d.ts +0 -3
- package/apps/web/vite.config.ts +0 -140
- package/packages/agent/src/config.ts +0 -161
- package/packages/agent/src/core/agent-session-runtime.ts +0 -548
- package/packages/agent/src/core/agent-session-services.ts +0 -224
- package/packages/agent/src/core/agent-session.ts +0 -3357
- package/packages/agent/src/core/auth-guidance.ts +0 -18
- package/packages/agent/src/core/auth-storage.ts +0 -271
- package/packages/agent/src/core/bash-executor.ts +0 -156
- package/packages/agent/src/core/compaction/branch-summarization.ts +0 -372
- package/packages/agent/src/core/defaults.ts +0 -3
- package/packages/agent/src/core/diagnostics.ts +0 -15
- package/packages/agent/src/core/event-bus.ts +0 -33
- package/packages/agent/src/core/exec.ts +0 -107
- package/packages/agent/src/core/experimental.ts +0 -3
- package/packages/agent/src/core/extensions/index.ts +0 -149
- package/packages/agent/src/core/extensions/loader.ts +0 -709
- package/packages/agent/src/core/extensions/runner.ts +0 -1132
- package/packages/agent/src/core/extensions/types.ts +0 -1460
- package/packages/agent/src/core/extensions/wrapper.ts +0 -45
- package/packages/agent/src/core/footer-data-provider.ts +0 -388
- package/packages/agent/src/core/http-dispatcher.ts +0 -106
- package/packages/agent/src/core/index.ts +0 -78
- package/packages/agent/src/core/model-config.ts +0 -287
- package/packages/agent/src/core/model-registry.ts +0 -126
- package/packages/agent/src/core/model-resolver.ts +0 -675
- package/packages/agent/src/core/output-guard.ts +0 -108
- package/packages/agent/src/core/package-manager.ts +0 -2441
- package/packages/agent/src/core/prompt-templates.ts +0 -284
- package/packages/agent/src/core/resolve-config-value.ts +0 -287
- package/packages/agent/src/core/resource-loader.ts +0 -946
- package/packages/agent/src/core/runtime-credentials.ts +0 -48
- package/packages/agent/src/core/sdk.ts +0 -358
- package/packages/agent/src/core/session-cwd.ts +0 -59
- package/packages/agent/src/core/session-manager.ts +0 -1623
- package/packages/agent/src/core/settings-manager.ts +0 -1212
- package/packages/agent/src/core/slash-commands.ts +0 -41
- package/packages/agent/src/core/source-info.ts +0 -40
- package/packages/agent/src/core/system-prompt.ts +0 -147
- package/packages/agent/src/core/timings.ts +0 -50
- package/packages/agent/src/core/tools/tool-definition-wrapper.ts +0 -45
- package/packages/agent/src/core/trust-manager.ts +0 -244
- package/packages/agent/src/utils/ansi.ts +0 -60
- package/packages/agent/src/utils/fs-watch.ts +0 -30
- package/packages/agent/src/utils/git.ts +0 -226
- package/packages/agent/src/utils/json.ts +0 -6
- package/packages/agent/src/utils/tools-manager.ts +0 -63
- package/packages/agent-core/package.json +0 -32
- package/packages/ai/src/api/openrouter-images.lazy.ts +0 -10
- package/packages/ai/src/api/openrouter-images.ts +0 -98
- package/packages/ai/src/auth/credential-store.ts +0 -51
- package/packages/ai/src/compat/extension-oauth-types.ts +0 -45
- package/packages/ai/src/image-models.generated.ts +0 -533
- package/packages/ai/src/images-models.ts +0 -274
- package/packages/ai/src/models-store.ts +0 -38
- package/packages/ai/src/oauth.ts +0 -10
- package/packages/ai/src/providers/openrouter-images.ts +0 -14
- package/packages/ai/src/session-resources.ts +0 -24
- package/packages/ai/src/utils/abort-signals.ts +0 -41
- package/packages/ai/src/utils/deferred-tools.ts +0 -39
- package/packages/ai/src/utils/hash.ts +0 -13
- package/packages/ai/src/utils/node-http-proxy.ts +0 -112
- package/plugins/ragents.actor-programs/server/client-runtime.ts +0 -16
- package/plugins/ragents.ask/web/constants.ts +0 -1
- package/plugins/ragents.lsp-roslyn/web/api.ts +0 -10
- package/plugins/ragents.orchestration/web/CanvasStartup.tsx +0 -14
- package/plugins/ragents.orchestration/web/canvas-view-settings.ts +0 -42
- package/plugins/ragents.orchestration/web/column/AddresseeControl.tsx +0 -116
- package/plugins/ragents.orchestration/web/column/column-settings.ts +0 -47
- package/plugins/ragents.orchestration/web/column/column-state.ts +0 -68
- package/plugins/ragents.orchestration/web/contract.ts +0 -25
- package/plugins/ragents.product/model-settings-contract.ts +0 -10
- package/plugins/ragents.profile-distribution/server/web.ts +0 -24
- /package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/authoring-contracts.ts +0 -0
- /package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/runtime-libraries.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/workflow/prompt-reader.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/file-contracts.d.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/flow-diagram-contracts.d.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/flow-diagram.css +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/form-contracts.d.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/frame-layout.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/table-contracts.d.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/viewer-contracts.d.ts +0 -0
- /package/{plugins/ragents.orchestration/canvas.hbs → bundles/ragents.orchestration/surface.hbs} +0 -0
- /package/packages/{agent-core/src → agent/src/loop}/index.ts +0 -0
- /package/packages/{agent-core/src → agent/src/loop}/uuid.ts +0 -0
|
@@ -53,9 +53,9 @@ function optionalText(value: unknown, name: string) {
|
|
|
53
53
|
if (value !== undefined && typeof value !== "string") throw new Error(`${name} muss Text sein.`);
|
|
54
54
|
}
|
|
55
55
|
export function validatePromptReference(value: unknown) {
|
|
56
|
-
text(value, "
|
|
56
|
+
text(value, "Prompt reference");
|
|
57
57
|
if (!/^[^\\/:]+(?:\/[^\\/:]+)*\.(?:md|hbs)$/.test(value) || value.split("/").some(part => part === "." || part === "..") || /[\x00-\x1f?#]/.test(value)) {
|
|
58
|
-
throw new Error(`
|
|
58
|
+
throw new Error(`Prompt reference must be a relative .md or .hbs file within the package: ${value}`);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
function has(object: object, key: string) { return Object.prototype.hasOwnProperty.call(object, key); }
|
|
@@ -63,50 +63,50 @@ function has(object: object, key: string) { return Object.prototype.hasOwnProper
|
|
|
63
63
|
export function defineWorkflow<const Definition extends WorkflowDefinition>(definition: Definition): Definition {
|
|
64
64
|
object(definition, "Workflow");
|
|
65
65
|
text(definition.id, "Workflow-ID");
|
|
66
|
-
text(definition.title, "
|
|
67
|
-
object(definition.roles, "
|
|
68
|
-
if (Object.keys(definition.roles).length === 0) throw new Error("
|
|
66
|
+
text(definition.title, "Workflow title");
|
|
67
|
+
object(definition.roles, "Roles");
|
|
68
|
+
if (Object.keys(definition.roles).length === 0) throw new Error("A workflow requires roles.");
|
|
69
69
|
for (const [id, role] of Object.entries(definition.roles)) {
|
|
70
|
-
text(id, "
|
|
70
|
+
text(id, "Role ID"); object(role, "Role"); text(role.title, "Role title"); if (role.prompt !== undefined) validatePromptReference(role.prompt);
|
|
71
71
|
}
|
|
72
|
-
if (!Array.isArray(definition.steps) || definition.steps.length === 0) throw new Error("
|
|
72
|
+
if (!Array.isArray(definition.steps) || definition.steps.length === 0) throw new Error("A workflow requires steps.");
|
|
73
73
|
const ids = new Set<string>();
|
|
74
74
|
for (const step of definition.steps) {
|
|
75
|
-
object(step, "
|
|
76
|
-
if (ids.has(step.id)) throw new Error(`
|
|
75
|
+
object(step, "Step"); text(step.id, "Step ID"); text(step.title, "Step title"); text(step.goal, "Step goal"); text(step.role, "Step role");
|
|
76
|
+
if (ids.has(step.id)) throw new Error(`Duplicate step ID: ${step.id}`);
|
|
77
77
|
ids.add(step.id);
|
|
78
|
-
if (!has(definition.roles, step.role)) throw new Error(`
|
|
78
|
+
if (!has(definition.roles, step.role)) throw new Error(`Unknown role: ${step.role}`);
|
|
79
79
|
if (step.prompt !== undefined) validatePromptReference(step.prompt);
|
|
80
|
-
object(step.completion, "
|
|
81
|
-
if (!["agent", "service", "operator"].includes(step.completion.source)) throw new Error(`
|
|
82
|
-
object(step.freedom, "
|
|
83
|
-
if (!["fixed", "extend"].includes(step.freedom.mode)) throw new Error(`
|
|
84
|
-
if (step.freedom.allowSkip !== undefined && typeof step.freedom.allowSkip !== "boolean") throw new Error("allowSkip
|
|
80
|
+
object(step.completion, "Completion"); text(step.completion.source, "Completion source"); text(step.completion.description, "Completion description");
|
|
81
|
+
if (!["agent", "service", "operator"].includes(step.completion.source)) throw new Error(`Unknown completion source: ${step.id}`);
|
|
82
|
+
object(step.freedom, "Freedom"); text(step.freedom.mode, "Freedom mode"); text(step.freedom.description, "Freedom description");
|
|
83
|
+
if (!["fixed", "extend"].includes(step.freedom.mode)) throw new Error(`Unknown freedom mode: ${step.id}`);
|
|
84
|
+
if (step.freedom.allowSkip !== undefined && typeof step.freedom.allowSkip !== "boolean") throw new Error("allowSkip must be a boolean.");
|
|
85
85
|
if (step.freedom.maxItems !== undefined) positiveInteger(step.freedom.maxItems, "maxItems");
|
|
86
86
|
if (step.expansion !== undefined) {
|
|
87
|
-
object(step.expansion, "
|
|
88
|
-
if (!has(definition.roles, step.expansion.role)) throw new Error(`
|
|
89
|
-
if (step.expansion.mode !== "parallel") throw new Error("
|
|
87
|
+
object(step.expansion, "Expansion"); text(step.expansion.source, "Expansion source"); text(step.expansion.role, "Expansion role");
|
|
88
|
+
if (!has(definition.roles, step.expansion.role)) throw new Error(`Unknown expansion role: ${step.expansion.role}`);
|
|
89
|
+
if (step.expansion.mode !== "parallel") throw new Error("Expansions must use parallel mode.");
|
|
90
90
|
positiveInteger(step.expansion.maxConcurrent, "maxConcurrent");
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
if (!Array.isArray(definition.transitions)) throw new Error("
|
|
93
|
+
if (!Array.isArray(definition.transitions)) throw new Error("Transitions must be an array.");
|
|
94
94
|
const outgoing = new Map([...ids].map(id => [id, [] as string[]]));
|
|
95
95
|
const transitions = new Set<string>();
|
|
96
96
|
for (const transition of definition.transitions) {
|
|
97
|
-
object(transition, "
|
|
98
|
-
if (!ids.has(transition.from) || !ids.has(transition.to)) throw new Error("
|
|
99
|
-
optionalText(transition.condition, "
|
|
100
|
-
if (transition.kind !== undefined && transition.kind !== "return") throw new Error("
|
|
97
|
+
object(transition, "Transition"); text(transition.from, "Transition source"); text(transition.to, "Transition target");
|
|
98
|
+
if (!ids.has(transition.from) || !ids.has(transition.to)) throw new Error("A transition references an unknown step.");
|
|
99
|
+
optionalText(transition.condition, "Transition condition");
|
|
100
|
+
if (transition.kind !== undefined && transition.kind !== "return") throw new Error("Unknown transition type.");
|
|
101
101
|
const key = JSON.stringify([transition.from, transition.to, transition.kind, transition.condition]);
|
|
102
|
-
if (transitions.has(key)) throw new Error("
|
|
102
|
+
if (transitions.has(key)) throw new Error("Duplicate transition.");
|
|
103
103
|
transitions.add(key);
|
|
104
104
|
if (transition.kind !== "return") outgoing.get(transition.from)!.push(transition.to);
|
|
105
105
|
}
|
|
106
106
|
const visiting = new Set<string>();
|
|
107
107
|
const visited = new Set<string>();
|
|
108
108
|
const visit = (id: string) => {
|
|
109
|
-
if (visiting.has(id)) throw new Error("
|
|
109
|
+
if (visiting.has(id)) throw new Error("Regular transitions must be acyclic; return paths require kind: return.");
|
|
110
110
|
if (visited.has(id)) return;
|
|
111
111
|
visiting.add(id);
|
|
112
112
|
for (const next of outgoing.get(id)!) visit(next);
|
|
@@ -118,7 +118,7 @@ export function defineWorkflow<const Definition extends WorkflowDefinition>(defi
|
|
|
118
118
|
|
|
119
119
|
export async function workflowInstructions(definition: WorkflowDefinition, role: string, readPrompt: (reference: string) => Promise<string>): Promise<string> {
|
|
120
120
|
defineWorkflow(definition);
|
|
121
|
-
if (!has(definition.roles, role)) throw new Error(`
|
|
121
|
+
if (!has(definition.roles, role)) throw new Error(`Unknown role: ${role}`);
|
|
122
122
|
const owned = definition.steps.filter(step => step.role === role);
|
|
123
123
|
const selectedRole = definition.roles[role]!;
|
|
124
124
|
const load = async (reference: string) => {
|
|
@@ -126,54 +126,54 @@ export async function workflowInstructions(definition: WorkflowDefinition, role:
|
|
|
126
126
|
text(content, `Prompt ${reference}`);
|
|
127
127
|
return content;
|
|
128
128
|
};
|
|
129
|
-
const lines = [`# ${definition.title}`, `
|
|
129
|
+
const lines = [`# ${definition.title}`, `Role: ${selectedRole.title} (${role})`];
|
|
130
130
|
if (selectedRole.prompt !== undefined) lines.push(await load(selectedRole.prompt));
|
|
131
|
-
lines.push("##
|
|
131
|
+
lines.push("## Workflow", ...definition.steps.map(step => `- ${step.id}: ${step.title}; owner: ${definition.roles[step.role]!.title}`));
|
|
132
132
|
for (const step of owned) {
|
|
133
|
-
lines.push(`## ${step.title} (${step.id})`, `
|
|
134
|
-
`
|
|
135
|
-
if (step.freedom.maxItems !== undefined) lines.push(`
|
|
136
|
-
if (step.expansion) lines.push(`
|
|
133
|
+
lines.push(`## ${step.title} (${step.id})`, `Goal: ${step.goal}`, `Completed by ${step.completion.source}: ${step.completion.description}`,
|
|
134
|
+
`Freedom ${step.freedom.mode}: ${step.freedom.description}`, `Skipping: ${step.freedom.allowSkip === true ? "allowed only for optional items you own, with a reason; required steps remain mandatory" : "not allowed"}`);
|
|
135
|
+
if (step.freedom.maxItems !== undefined) lines.push(`At most ${step.freedom.maxItems} custom items.`);
|
|
136
|
+
if (step.expansion) lines.push(`Parallel expansion from ${step.expansion.source}: role ${step.expansion.role}, at most ${step.expansion.maxConcurrent} at once.`);
|
|
137
137
|
if (step.prompt !== undefined) lines.push(await load(step.prompt));
|
|
138
138
|
}
|
|
139
|
-
lines.push("##
|
|
139
|
+
lines.push("## Transitions", ...definition.transitions.map(transition => `${transition.from} -> ${transition.to}${transition.kind === "return" ? " (return path)" : ""}${transition.condition ? `: ${transition.condition}` : ""}`));
|
|
140
140
|
return lines.join("\n\n");
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
function status(value: unknown) {
|
|
144
|
-
if (!["pending", "active", "done", "blocked"].includes(value as string)) throw new Error(`
|
|
144
|
+
if (!["pending", "active", "done", "blocked"].includes(value as string)) throw new Error(`Unknown step status: ${String(value)}`);
|
|
145
145
|
}
|
|
146
146
|
function items(value: unknown) {
|
|
147
|
-
if (!Array.isArray(value)) throw new Error("
|
|
147
|
+
if (!Array.isArray(value)) throw new Error("Items must be an array.");
|
|
148
148
|
for (const item of value) {
|
|
149
|
-
object(item, "
|
|
150
|
-
if (item.status !== undefined && !["pending", "active", "done", "blocked", "skipped"].includes(item.status as string)) throw new Error("
|
|
149
|
+
object(item, "Item"); text(item.label, "Item label"); optionalText(item.detail, "Item detail");
|
|
150
|
+
if (item.status !== undefined && !["pending", "active", "done", "blocked", "skipped"].includes(item.status as string)) throw new Error("Unknown item status.");
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
export function workflowGraph(definition: WorkflowDefinition, state: WorkflowState): WorkflowGraph {
|
|
155
155
|
defineWorkflow(definition);
|
|
156
|
-
object(state, "
|
|
156
|
+
object(state, "Workflow state"); object(state.steps, "Step states");
|
|
157
157
|
const steps = new Map(definition.steps.map(step => [step.id, step]));
|
|
158
158
|
for (const [id, step] of Object.entries(state.steps)) {
|
|
159
|
-
if (!steps.has(id)) throw new Error(`
|
|
160
|
-
object(step, "
|
|
159
|
+
if (!steps.has(id)) throw new Error(`Unknown step state: ${id}`);
|
|
160
|
+
object(step, "Step state"); status(step.status); optionalText(step.detail, "Step detail");
|
|
161
161
|
if (step.items !== undefined) items(step.items);
|
|
162
162
|
}
|
|
163
163
|
const sources = new Set(definition.steps.flatMap(step => step.expansion ? [step.expansion.source] : []));
|
|
164
|
-
if (state.expansions !== undefined) object(state.expansions, "
|
|
165
|
-
for (const source of Object.keys(state.expansions ?? {})) if (!sources.has(source)) throw new Error(`
|
|
164
|
+
if (state.expansions !== undefined) object(state.expansions, "Expansion states");
|
|
165
|
+
for (const source of Object.keys(state.expansions ?? {})) if (!sources.has(source)) throw new Error(`Unknown expansion source: ${source}`);
|
|
166
166
|
for (const source of sources) {
|
|
167
|
-
if (!state.expansions || !has(state.expansions, source)) throw new Error(`
|
|
167
|
+
if (!state.expansions || !has(state.expansions, source)) throw new Error(`Expansion source is missing from state: ${source}`);
|
|
168
168
|
const groups = state.expansions[source]!;
|
|
169
|
-
if (!Array.isArray(groups)) throw new Error(`
|
|
169
|
+
if (!Array.isArray(groups)) throw new Error(`Expansion source ${source} must be an array.`);
|
|
170
170
|
const ids = new Set<string>();
|
|
171
171
|
for (const group of groups) {
|
|
172
|
-
object(group, "
|
|
173
|
-
if (ids.has(group.id)) throw new Error(`
|
|
172
|
+
object(group, "Expansion group"); text(group.id, "Group ID"); text(group.title, "Group title");
|
|
173
|
+
if (ids.has(group.id)) throw new Error(`Duplicate group ID: ${group.id}`);
|
|
174
174
|
ids.add(group.id);
|
|
175
175
|
if (group.status !== undefined) status(group.status);
|
|
176
|
-
optionalText(group.detail, "
|
|
176
|
+
optionalText(group.detail, "Group detail"); items(group.items);
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
const graph: WorkflowGraph = { nodes: [], edges: [] };
|
|
@@ -186,7 +186,7 @@ export function workflowGraph(definition: WorkflowDefinition, state: WorkflowSta
|
|
|
186
186
|
const ids: string[] = [];
|
|
187
187
|
for (const group of state.expansions![step.expansion.source]!) {
|
|
188
188
|
const id = `expansion:${JSON.stringify([step.id, group.id])}`;
|
|
189
|
-
if (nodeIds.has(id)) throw new Error(`
|
|
189
|
+
if (nodeIds.has(id)) throw new Error(`Expansion ID collides with a node: ${id}`);
|
|
190
190
|
nodeIds.add(id); ids.push(id);
|
|
191
191
|
graph.nodes.push({ id, label: group.title, status: group.status ?? "pending", kind: "agent", items: group.items, ...(group.detail === undefined ? {} : { detail: group.detail }) });
|
|
192
192
|
graph.edges.push({ id: `expansion:${JSON.stringify([step.id, group.id])}`, source: step.id, target: id });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ToolDefinition } from "@
|
|
1
|
+
import type { ToolDefinition } from "@ragents/agent";
|
|
2
2
|
import { Type } from "typebox";
|
|
3
3
|
import {
|
|
4
4
|
describeToolAvailability,
|
|
@@ -7,22 +7,26 @@ import {
|
|
|
7
7
|
type ToolAvailability,
|
|
8
8
|
type ToolDescriptor,
|
|
9
9
|
type ToolExecutionMode,
|
|
10
|
-
} from "@
|
|
10
|
+
} from "@ragents/engine";
|
|
11
11
|
|
|
12
|
-
export type AgentToolDefinition = ToolDefinition<any, any
|
|
13
|
-
export type AgentToolMetadata = Pick<AgentToolDefinition, "name" | "description"> & { nativeTool?: boolean };
|
|
12
|
+
export type AgentToolDefinition = ToolDefinition<any, any> & { longDescription?: string; nativeTool?: boolean };
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
export interface AgentToolMetadata {
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly description: string;
|
|
17
|
+
readonly nativeTool?: boolean;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type ToolOutput = { content?: ReadonlyArray<{ type: string; text?: string }> };
|
|
16
21
|
|
|
17
22
|
type BoundExecute = (
|
|
18
23
|
toolCallId: string,
|
|
19
24
|
params: unknown,
|
|
20
25
|
signal: AbortSignal | undefined,
|
|
21
26
|
onUpdate: unknown,
|
|
22
|
-
ctx: unknown,
|
|
23
27
|
) => Promise<ToolOutput>;
|
|
24
28
|
|
|
25
|
-
const textOf = (result: ToolOutput): string =>
|
|
29
|
+
export const textOf = (result: ToolOutput): string =>
|
|
26
30
|
(result.content ?? [])
|
|
27
31
|
.filter((part) => part.type === "text" && typeof part.text === "string")
|
|
28
32
|
.map((part) => part.text)
|
|
@@ -44,7 +48,7 @@ export const agentToolFrom = (
|
|
|
44
48
|
available,
|
|
45
49
|
...(executionMode ? { executionMode } : {}),
|
|
46
50
|
run: async (scope, toolCallId, input) =>
|
|
47
|
-
textOf(await (definition.execute as BoundExecute)(toolCallId, input, scope.signal, undefined
|
|
51
|
+
textOf(await (definition.execute as BoundExecute)(toolCallId, input, scope.signal, undefined)),
|
|
48
52
|
});
|
|
49
53
|
|
|
50
54
|
export const toolDescriptorFrom = (
|
|
@@ -1,23 +1,54 @@
|
|
|
1
1
|
import { Type } from "typebox";
|
|
2
|
-
import { defineOperation } from "@
|
|
3
|
-
import { openJson } from "@
|
|
4
|
-
import type { LanguageServerSnapshot } from "@
|
|
2
|
+
import { defineOperation } from "@ragents/engine/src/rpc/contract";
|
|
3
|
+
import { openJson } from "@ragents/engine/src/http/contracts";
|
|
4
|
+
import type { LanguageServerSnapshot, LanguageServerSolutions } from "@ragents/workspace-executor";
|
|
5
5
|
|
|
6
6
|
export type {
|
|
7
7
|
LanguageServerInstanceSnapshot,
|
|
8
8
|
LanguageServerSeverity,
|
|
9
9
|
LanguageServerSnapshot,
|
|
10
|
+
LanguageServerSolution,
|
|
11
|
+
LanguageServerSolutions,
|
|
10
12
|
LanguageServerState,
|
|
11
|
-
} from "@
|
|
13
|
+
} from "@ragents/workspace-executor";
|
|
14
|
+
|
|
15
|
+
const runIdSchema = Type.String({ minLength: 1, maxLength: 64, description: "Kennung des Runs" });
|
|
12
16
|
|
|
13
17
|
/** Je Sprachserver-Plugin eine Methode; die Rechte tragen seine Kennung. */
|
|
14
18
|
export const languageServerSnapshotContract = (pluginId: string) =>
|
|
15
19
|
defineOperation({
|
|
16
20
|
id: `${pluginId}.snapshot`,
|
|
17
|
-
description: `Zustand und Diagnosen des Sprachservers ${pluginId} in einem
|
|
21
|
+
description: `Zustand und Diagnosen des Sprachservers ${pluginId} in einem Run. Rechte: runs.read und ${pluginId}.read.`,
|
|
18
22
|
rights: ["runs.read", `${pluginId}.read`],
|
|
19
23
|
input: Type.Object({
|
|
20
|
-
runId:
|
|
24
|
+
runId: runIdSchema,
|
|
21
25
|
}, { additionalProperties: false }),
|
|
22
26
|
result: openJson<LanguageServerSnapshot>("LanguageServerSnapshot"),
|
|
23
27
|
});
|
|
28
|
+
|
|
29
|
+
export const languageServerSolutionsContract = (pluginId: string) =>
|
|
30
|
+
defineOperation({
|
|
31
|
+
id: `${pluginId}.solutions`,
|
|
32
|
+
description: `Die Solutions im Arbeitsbereich eines Runs und welche davon ${pluginId} geöffnet hat. Rechte: runs.read und ${pluginId}.read.`,
|
|
33
|
+
rights: ["runs.read", `${pluginId}.read`],
|
|
34
|
+
input: Type.Object({
|
|
35
|
+
runId: runIdSchema,
|
|
36
|
+
}, { additionalProperties: false }),
|
|
37
|
+
result: openJson<LanguageServerSolutions>("LanguageServerSolutions"),
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
export const languageServerSwitchContract = (pluginId: string) =>
|
|
41
|
+
defineOperation({
|
|
42
|
+
id: `${pluginId}.switch`,
|
|
43
|
+
description: `Lädt eine Solution in ${pluginId} und beendet alle anderen Instanzen des Runs; null beendet alle. `
|
|
44
|
+
+ `Wartet nicht auf das Laden. Rechte: runs.read, runs.write, ${pluginId}.read und ${pluginId}.write.`,
|
|
45
|
+
rights: ["runs.read", "runs.write", `${pluginId}.read`, `${pluginId}.write`],
|
|
46
|
+
input: Type.Object({
|
|
47
|
+
runId: runIdSchema,
|
|
48
|
+
root: Type.Union([
|
|
49
|
+
Type.String({ minLength: 1, maxLength: 1024, description: "Die Solution relativ zur Wurzel des Arbeitsbereichs" }),
|
|
50
|
+
Type.Null(),
|
|
51
|
+
], { description: "null beendet alle Instanzen" }),
|
|
52
|
+
}, { additionalProperties: false }),
|
|
53
|
+
result: openJson<LanguageServerSolutions>("LanguageServerSolutions"),
|
|
54
|
+
});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { PluginConfigDescriptor, RAgentsPlugin } from "@
|
|
2
|
-
import type { LanguageServerAdapter } from "@
|
|
3
|
-
import {
|
|
1
|
+
import type { PluginConfigDescriptor, RAgentsPlugin } from "@ragents/engine";
|
|
2
|
+
import type { LanguageServerAdapter } from "@ragents/workspace-executor";
|
|
3
|
+
import { workspaceGuardToken } from "../../ragents/host-services.js";
|
|
4
4
|
import { sandboxServicesToken } from "../workspace-sandbox-host.js";
|
|
5
|
-
import { createLanguageServerSnapshotMethod } from "./snapshot-method.js";
|
|
5
|
+
import { createLanguageServerSnapshotMethod, createLanguageServerSolutionMethods } from "./snapshot-method.js";
|
|
6
6
|
import { createLanguageServerToolContributor } from "./tools.js";
|
|
7
7
|
|
|
8
8
|
export interface LanguageServerPluginOptions {
|
|
@@ -10,6 +10,8 @@ export interface LanguageServerPluginOptions {
|
|
|
10
10
|
adapter: LanguageServerAdapter;
|
|
11
11
|
tabLabel?: string;
|
|
12
12
|
configDescriptors?: readonly PluginConfigDescriptor[];
|
|
13
|
+
/** Nach jedem erfolgreichen Öffnen über Werkzeug oder Umschalten, mit dem Run. */
|
|
14
|
+
onOpened?: (runId: string) => void;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
export const createLanguageServerPlugin = (options: LanguageServerPluginOptions): RAgentsPlugin => ({
|
|
@@ -17,16 +19,24 @@ export const createLanguageServerPlugin = (options: LanguageServerPluginOptions)
|
|
|
17
19
|
register: (host) => {
|
|
18
20
|
const sandbox = host.service(sandboxServicesToken);
|
|
19
21
|
if (options.configDescriptors) host.config(...options.configDescriptors);
|
|
20
|
-
|
|
22
|
+
const opened = options.onOpened ?? (() => undefined);
|
|
23
|
+
host.functions(createLanguageServerToolContributor(options.adapter, sandbox, opened));
|
|
24
|
+
const solutions = options.adapter.solutionExtensions !== undefined;
|
|
21
25
|
host.clientConfig({
|
|
22
26
|
label: options.tabLabel ?? options.adapter.label,
|
|
23
27
|
openTool: `${options.adapter.id}_open`,
|
|
28
|
+
solutions,
|
|
24
29
|
});
|
|
25
|
-
|
|
30
|
+
const methodOptions = {
|
|
26
31
|
pluginId: options.id,
|
|
27
32
|
adapterId: options.adapter.id,
|
|
28
33
|
sandbox,
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
ensureWorkspaceAccess: host.service(workspaceGuardToken),
|
|
35
|
+
opened,
|
|
36
|
+
};
|
|
37
|
+
host.methods(
|
|
38
|
+
createLanguageServerSnapshotMethod(methodOptions),
|
|
39
|
+
...solutions ? createLanguageServerSolutionMethods(methodOptions) : [],
|
|
40
|
+
);
|
|
31
41
|
},
|
|
32
42
|
});
|
|
@@ -1,17 +1,42 @@
|
|
|
1
|
-
import { implement, type MethodContribution } from "@
|
|
2
|
-
import {
|
|
1
|
+
import { implement, type AccessContext, type MethodContribution } from "@ragents/engine";
|
|
2
|
+
import {
|
|
3
|
+
languageServerSnapshotOperation,
|
|
4
|
+
languageServerSolutionsOperation,
|
|
5
|
+
languageServerSwitchOperation,
|
|
6
|
+
type LanguageServerSnapshot,
|
|
7
|
+
type LanguageServerSolutions,
|
|
8
|
+
} from "@ragents/workspace-executor";
|
|
3
9
|
import type { SandboxServices } from "../workspace-sandbox-host.js";
|
|
4
|
-
import { languageServerSnapshotContract } from "./contract.js";
|
|
10
|
+
import { languageServerSnapshotContract, languageServerSolutionsContract, languageServerSwitchContract } from "./contract.js";
|
|
5
11
|
|
|
6
12
|
export interface LanguageServerMethodOptions {
|
|
7
13
|
pluginId: string;
|
|
8
14
|
adapterId: string;
|
|
9
15
|
sandbox: SandboxServices;
|
|
10
|
-
|
|
16
|
+
/** Die Sprachserver arbeiten im Arbeitsbereich des Runs; wer ihn nicht sehen darf, sieht auch ihren Stand nicht. */
|
|
17
|
+
ensureWorkspaceAccess: (access: AccessContext, runId: string) => void;
|
|
18
|
+
opened: (runId: string) => void;
|
|
11
19
|
}
|
|
12
20
|
|
|
13
21
|
export const createLanguageServerSnapshotMethod = (options: LanguageServerMethodOptions): MethodContribution =>
|
|
14
|
-
implement(languageServerSnapshotContract(options.pluginId), async ({ runId }) => {
|
|
15
|
-
options.
|
|
16
|
-
return await options.sandbox.execute(runId,
|
|
22
|
+
implement(languageServerSnapshotContract(options.pluginId), async ({ runId }, { access }) => {
|
|
23
|
+
options.ensureWorkspaceAccess(access, runId);
|
|
24
|
+
return await options.sandbox.execute(runId, languageServerSnapshotOperation(options.adapterId), null) as LanguageServerSnapshot;
|
|
17
25
|
});
|
|
26
|
+
|
|
27
|
+
export const createLanguageServerSolutionMethods = (options: LanguageServerMethodOptions): MethodContribution[] => {
|
|
28
|
+
const solutions = async (runId: string): Promise<LanguageServerSolutions> =>
|
|
29
|
+
await options.sandbox.execute(runId, languageServerSolutionsOperation(options.adapterId), null) as LanguageServerSolutions;
|
|
30
|
+
return [
|
|
31
|
+
implement(languageServerSolutionsContract(options.pluginId), async ({ runId }, { access }) => {
|
|
32
|
+
options.ensureWorkspaceAccess(access, runId);
|
|
33
|
+
return await solutions(runId);
|
|
34
|
+
}),
|
|
35
|
+
implement(languageServerSwitchContract(options.pluginId), async ({ runId, root }, { access }) => {
|
|
36
|
+
options.ensureWorkspaceAccess(access, runId);
|
|
37
|
+
await options.sandbox.execute(runId, languageServerSwitchOperation(options.adapterId), { root });
|
|
38
|
+
if (root !== null) options.opened(runId);
|
|
39
|
+
return await solutions(runId);
|
|
40
|
+
}),
|
|
41
|
+
];
|
|
42
|
+
};
|
|
@@ -1,38 +1,57 @@
|
|
|
1
1
|
import { Type } from "typebox";
|
|
2
|
-
import { defineRunFunction, type ToolContributor } from "@
|
|
2
|
+
import { defineRunFunction, type ToolContributor } from "@ragents/engine";
|
|
3
3
|
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
languageServerCloseOperation,
|
|
5
|
+
languageServerDiagnosticsOperation,
|
|
6
|
+
languageServerOpenOperation,
|
|
7
|
+
languageServerSolutionsOperation,
|
|
7
8
|
type LanguageServerAdapter,
|
|
8
|
-
|
|
9
|
+
type LanguageServerSolutions,
|
|
10
|
+
type LanguageServerState,
|
|
11
|
+
} from "@ragents/workspace-executor";
|
|
9
12
|
import { toolDescriptorFrom } from "../agent-tool.js";
|
|
10
13
|
import { alwaysAvailable } from "../tool-availability.js";
|
|
11
14
|
import type { SandboxServices } from "../workspace-sandbox-host.js";
|
|
12
15
|
|
|
16
|
+
const stateLabels: Readonly<Record<LanguageServerState, string>> = {
|
|
17
|
+
opening: "wird geladen",
|
|
18
|
+
ready: "bereit",
|
|
19
|
+
failed: "fehlgeschlagen",
|
|
20
|
+
suspended: "nach Leerlauf beendet",
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const formatSolutions = (label: string, listing: LanguageServerSolutions): string => {
|
|
24
|
+
const source = listing.source === "git" ? "aus git ls-files" : "aus der Verzeichnissuche, kein Git-Arbeitsverzeichnis";
|
|
25
|
+
if (listing.solutions.length === 0) return `Keine Solution im Arbeitsbereich (${source})`;
|
|
26
|
+
const lines = listing.solutions.map((solution) =>
|
|
27
|
+
`- ${solution.path}${solution.state === null ? "" : ` (${label}: ${stateLabels[solution.state]})`}`);
|
|
28
|
+
return [`${listing.solutions.length} Solution${listing.solutions.length === 1 ? "" : "s"} im Arbeitsbereich (${source}):`, ...lines].join("\n");
|
|
29
|
+
};
|
|
30
|
+
|
|
13
31
|
/** Beschreibung und Weiterreichung: der Sprachserver läuft im Executor des Runs, nicht in diesem Plugin. */
|
|
14
32
|
export const createLanguageServerToolContributor = (
|
|
15
33
|
adapter: LanguageServerAdapter,
|
|
16
34
|
sandbox: SandboxServices,
|
|
35
|
+
opened: (runId: string) => void,
|
|
17
36
|
): ToolContributor => {
|
|
18
37
|
const { id, label, rootDescription, languages } = adapter;
|
|
19
38
|
const extensions = Object.keys(languages).join(", ");
|
|
20
39
|
const openMetadata = {
|
|
21
|
-
name:
|
|
40
|
+
name: languageServerOpenOperation(id),
|
|
22
41
|
nativeTool: true,
|
|
23
|
-
description: `Start a ${label} language server instance for this
|
|
42
|
+
description: `Start a ${label} language server instance for this run's workspace and load ${rootDescription}. `
|
|
24
43
|
+ `Afterwards every edit or write of a ${extensions} file gets its diagnostics appended automatically, `
|
|
25
|
-
+ `and ${
|
|
44
|
+
+ `and ${languageServerDiagnosticsOperation(id)} is available. Idempotent for the same root; other roots stay open.`,
|
|
26
45
|
} as const;
|
|
27
46
|
const diagnosticsMetadata = {
|
|
28
|
-
name:
|
|
47
|
+
name: languageServerDiagnosticsOperation(id),
|
|
29
48
|
nativeTool: true,
|
|
30
49
|
description: `Current ${label} diagnostics (errors, warnings on request) for ${extensions} files from the running `
|
|
31
50
|
+ `language server, without building. Without paths: all changed files of every open root according to git. `
|
|
32
51
|
+ `With paths every file is answered by the instance whose root contains it; root asks one instance.`,
|
|
33
52
|
} as const;
|
|
34
53
|
const closeMetadata = {
|
|
35
|
-
name:
|
|
54
|
+
name: languageServerCloseOperation(id),
|
|
36
55
|
nativeTool: true,
|
|
37
56
|
description: `Stop the ${label} language server instance of one root; without root every ${label} instance of `
|
|
38
57
|
+ "this conversation. Other languages and other conversations stay untouched.",
|
|
@@ -46,11 +65,14 @@ export const createLanguageServerToolContributor = (
|
|
|
46
65
|
resultSchema: Type.String(),
|
|
47
66
|
available: alwaysAvailable,
|
|
48
67
|
executionMode: "sequential",
|
|
49
|
-
run: async (scope, toolCallId, input) =>
|
|
50
|
-
await sandbox.execute(scope.caller.runId, openMetadata.name, input, {
|
|
68
|
+
run: async (scope, toolCallId, input) => {
|
|
69
|
+
const result = await sandbox.execute(scope.caller.runId, openMetadata.name, input, {
|
|
51
70
|
toolCallId,
|
|
52
71
|
...(scope.signal ? { signal: scope.signal } : {}),
|
|
53
|
-
}) as string
|
|
72
|
+
}) as string;
|
|
73
|
+
opened(scope.caller.runId);
|
|
74
|
+
return result;
|
|
75
|
+
},
|
|
54
76
|
});
|
|
55
77
|
const diagnosticsTool = defineRunFunction({
|
|
56
78
|
...diagnosticsMetadata,
|
|
@@ -71,11 +93,31 @@ export const createLanguageServerToolContributor = (
|
|
|
71
93
|
...(scope.signal ? { signal: scope.signal } : {}),
|
|
72
94
|
}) as string,
|
|
73
95
|
});
|
|
96
|
+
const solutionsMetadata = {
|
|
97
|
+
name: languageServerSolutionsOperation(id),
|
|
98
|
+
nativeTool: true,
|
|
99
|
+
description: `List the solution files (${(adapter.solutionExtensions ?? []).join(", ")}) of this run's workspace and mark `
|
|
100
|
+
+ `which ones the ${label} language server has open. ${openMetadata.name} loads another one in addition; `
|
|
101
|
+
+ "the open ones stay open.",
|
|
102
|
+
} as const;
|
|
103
|
+
const solutionsTool = defineRunFunction({
|
|
104
|
+
...solutionsMetadata,
|
|
105
|
+
label: `${label} Solutions`,
|
|
106
|
+
schema: Type.Object({}),
|
|
107
|
+
resultSchema: Type.String(),
|
|
108
|
+
available: alwaysAvailable,
|
|
109
|
+
executionMode: "parallel",
|
|
110
|
+
run: async (scope, toolCallId) =>
|
|
111
|
+
formatSolutions(label, await sandbox.execute(scope.caller.runId, solutionsMetadata.name, null, {
|
|
112
|
+
toolCallId,
|
|
113
|
+
...(scope.signal ? { signal: scope.signal } : {}),
|
|
114
|
+
}) as LanguageServerSolutions),
|
|
115
|
+
});
|
|
74
116
|
const closeTool = defineRunFunction({
|
|
75
117
|
...closeMetadata,
|
|
76
118
|
label: `${label} schließen`,
|
|
77
119
|
schema: Type.Object({
|
|
78
|
-
root: Type.Optional(Type.String({ description: "The open root to stop; omit for every instance of this
|
|
120
|
+
root: Type.Optional(Type.String({ description: "The open root to stop; omit for every instance of this run" })),
|
|
79
121
|
}),
|
|
80
122
|
resultSchema: Type.String(),
|
|
81
123
|
available: alwaysAvailable,
|
|
@@ -86,13 +128,15 @@ export const createLanguageServerToolContributor = (
|
|
|
86
128
|
...(scope.signal ? { signal: scope.signal } : {}),
|
|
87
129
|
}) as string,
|
|
88
130
|
});
|
|
131
|
+
const withSolutions = adapter.solutionExtensions !== undefined;
|
|
89
132
|
return {
|
|
90
133
|
name: `ragents.lsp-${id}`,
|
|
91
134
|
descriptors: [
|
|
92
135
|
toolDescriptorFrom(openMetadata, alwaysAvailable),
|
|
93
136
|
toolDescriptorFrom(diagnosticsMetadata, alwaysAvailable),
|
|
94
137
|
toolDescriptorFrom(closeMetadata, alwaysAvailable),
|
|
138
|
+
...withSolutions ? [toolDescriptorFrom(solutionsMetadata, alwaysAvailable)] : [],
|
|
95
139
|
],
|
|
96
|
-
tools: () => [openTool, diagnosticsTool, closeTool],
|
|
140
|
+
tools: () => [openTool, diagnosticsTool, closeTool, ...withSolutions ? [solutionsTool] : []],
|
|
97
141
|
};
|
|
98
142
|
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { aliasedModel, type ModelAlias as RuntimeModelAlias } from "@ragents/agent";
|
|
2
|
+
import { getSupportedThinkingLevels, type Api, type Model } from "@ragents/ai";
|
|
3
|
+
import { getBuiltinModels, type BuiltinProvider } from "@ragents/ai/providers/all";
|
|
4
|
+
import { isThinkingLevel, type ThinkingLevel } from "@ragents/engine";
|
|
5
|
+
import { declaredEnvironment } from "./plugin-config.js";
|
|
6
|
+
|
|
7
|
+
/** Ein Alias des Profils mit seinem Ziel und optional der Denktiefe, die gilt, solange niemand eine andere wählt. */
|
|
8
|
+
export interface ModelAlias extends RuntimeModelAlias {
|
|
9
|
+
readonly thinking?: ThinkingLevel;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** Der Anbieter, unter dem die Aliasse des Profils stehen; er ist kein echter Anbieter und erscheint in keiner Anzeige. */
|
|
13
|
+
export const ALIAS_PROVIDER = "alias";
|
|
14
|
+
|
|
15
|
+
export const modelAliasEnvDescriptors = [
|
|
16
|
+
{ key: "MODEL_ALIASES", source: "environment" },
|
|
17
|
+
] as const;
|
|
18
|
+
|
|
19
|
+
const ALIAS = /^[a-z0-9][a-z0-9._-]{0,63}$/;
|
|
20
|
+
|
|
21
|
+
/** MODEL_ALIASES: eine Liste "alias=anbieter/modell" oder "alias=anbieter/modell@denktiefe"; der Alias ist der einzige Name, den Oberfläche, Journal und Relay-Clients sehen. */
|
|
22
|
+
export const parseModelAliases = (entries: readonly string[]): readonly ModelAlias[] => {
|
|
23
|
+
const aliases = entries.map((entry): ModelAlias => {
|
|
24
|
+
const separator = entry.indexOf("=");
|
|
25
|
+
const alias = separator > 0 ? entry.slice(0, separator).trim() : "";
|
|
26
|
+
const rest = separator > 0 ? entry.slice(separator + 1).trim() : "";
|
|
27
|
+
const at = rest.lastIndexOf("@");
|
|
28
|
+
const target = at < 0 ? rest : rest.slice(0, at);
|
|
29
|
+
const thinking = at < 0 ? undefined : rest.slice(at + 1);
|
|
30
|
+
const slash = target.indexOf("/");
|
|
31
|
+
if (!ALIAS.test(alias) || slash <= 0 || slash === target.length - 1) {
|
|
32
|
+
throw new Error(`MODEL_ALIASES: "${entry}" hat nicht das Format "alias=anbieter/modell" oder "alias=anbieter/modell@denktiefe"`);
|
|
33
|
+
}
|
|
34
|
+
if (thinking !== undefined && !isThinkingLevel(thinking)) throw new Error(`MODEL_ALIASES: "${entry}" nennt die unbekannte Denktiefe "${thinking}"`);
|
|
35
|
+
return { alias, upstream: target.slice(0, slash), model: target.slice(slash + 1), ...(thinking === undefined ? {} : { thinking }) };
|
|
36
|
+
});
|
|
37
|
+
const duplicate = aliases.find((entry, index) => aliases.findIndex((other) => other.alias === entry.alias) !== index);
|
|
38
|
+
if (duplicate) throw new Error(`MODEL_ALIASES nennt den Alias ${duplicate.alias} mehrfach`);
|
|
39
|
+
return aliases;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const env = declaredEnvironment(modelAliasEnvDescriptors);
|
|
43
|
+
|
|
44
|
+
export const configuredModelAliases = (): readonly ModelAlias[] => parseModelAliases(env.list("MODEL_ALIASES"));
|
|
45
|
+
|
|
46
|
+
/** Der Katalog der Aliasse aus den eingebauten Katalogen ihrer Anbieter, so wie die Modelllaufzeit sie anbietet. */
|
|
47
|
+
export const aliasCatalog = (aliases: readonly ModelAlias[] = configuredModelAliases()): readonly Model<Api>[] => {
|
|
48
|
+
if (aliases.length === 0) throw new Error(`Der Anbieter ${ALIAS_PROVIDER} braucht MODEL_ALIASES im Abschnitt host`);
|
|
49
|
+
return aliases.map((entry) => {
|
|
50
|
+
const target = getBuiltinModels(entry.upstream as BuiltinProvider).find((model) => model.id === entry.model);
|
|
51
|
+
if (!target) throw new Error(`MODEL_ALIASES: das Modell ${entry.model} hinter ${entry.alias} fehlt im Katalog von ${entry.upstream}`);
|
|
52
|
+
const supported = getSupportedThinkingLevels(target);
|
|
53
|
+
if (entry.thinking !== undefined && !supported.includes(entry.thinking)) {
|
|
54
|
+
throw new Error(`MODEL_ALIASES: die Denktiefe ${entry.thinking} gibt es für ${entry.alias} nicht (gültig: ${supported.join(", ")})`);
|
|
55
|
+
}
|
|
56
|
+
return aliasedModel(ALIAS_PROVIDER, entry.alias, target);
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/** Die Aliasse des Profils, geprüft gegen die Kataloge ihrer Ziele samt Denktiefe. */
|
|
61
|
+
export const validatedModelAliases = (): readonly ModelAlias[] => {
|
|
62
|
+
const aliases = configuredModelAliases();
|
|
63
|
+
if (aliases.length > 0) aliasCatalog(aliases);
|
|
64
|
+
return aliases;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/** Die Denktiefe, die der Alias mitbringt; andere Anbieter und Aliasse ohne Angabe haben keine. */
|
|
68
|
+
export const modelDefaultThinking = (provider: string, model: string): ThinkingLevel | undefined =>
|
|
69
|
+
provider === ALIAS_PROVIDER ? configuredModelAliases().find((entry) => entry.alias === model)?.thinking : undefined;
|
|
70
|
+
|
|
71
|
+
/** Der Anbieter, wie eine Anzeige ihn nennt: bei Aliassen keiner. */
|
|
72
|
+
export const displayProvider = (provider: string): string => provider === ALIAS_PROVIDER ? "" : provider;
|
|
73
|
+
|
|
74
|
+
export const modelLabel = (provider: string, model: string): string => {
|
|
75
|
+
const shown = displayProvider(provider);
|
|
76
|
+
return shown ? `${shown}/${model}` : model;
|
|
77
|
+
};
|