@schlenkr/ragents 0.1.4 → 0.1.6
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 +19 -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 +14 -7
- package/apps/server/src/config-file.ts +25 -6
- package/apps/server/src/config.ts +4 -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 +1256 -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 +1 -1
- 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 +10 -5
- 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 +182 -99
- package/apps/server/src/ragents/actor-chat-history.ts +23 -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 +69 -36
- 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 +31 -15
- package/apps/server/src/ragents/product-runtime.ts +1 -1
- package/apps/server/src/ragents/run-owner.ts +17 -0
- package/apps/server/src/ragents/runtime-bridge.ts +1 -1
- package/apps/server/src/ragents/session.ts +181 -82
- 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 +13 -20
- package/apps/server/src/run-transfer.ts +2 -2
- package/apps/server/src/server.ts +112 -33
- package/apps/server/src/settings.ts +7 -8
- 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-B9qYBARS.js +1 -0
- package/apps/web/dist/assets/main-BCjvD2Hh.js +6 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-BPn4aV2r.css +1 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-CvYYFK_n.js +478 -0
- package/apps/web/dist/assets/runPanel-CG7kRMJh.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 +421 -0
- package/apps/web/dist/help/guide-clients.md +336 -0
- package/apps/web/dist/help/guide-distributed.html +320 -0
- package/apps/web/dist/help/guide-distributed.md +225 -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 +338 -0
- package/apps/web/dist/help/guide-runtime.md +225 -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 +7056 -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/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 +43 -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 +48 -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 +64 -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 +5 -16
- package/packages/agent/dist/core/agent-session-runtime.d.ts +33 -0
- package/packages/agent/dist/core/agent-session-services.d.ts +35 -0
- package/packages/agent/dist/core/agent-session.d.ts +234 -0
- package/packages/agent/dist/core/agent-settings.d.ts +27 -0
- package/packages/agent/dist/core/auth-guidance.d.ts +4 -0
- package/packages/agent/dist/core/compaction/compaction.d.ts +116 -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/defaults.d.ts +3 -0
- package/packages/agent/dist/core/extensions/index.d.ts +11 -0
- package/packages/agent/dist/core/extensions/loader.d.ts +12 -0
- package/packages/agent/dist/core/extensions/runner.d.ts +39 -0
- package/packages/agent/dist/core/extensions/types.d.ts +156 -0
- package/packages/agent/dist/core/extensions/wrapper.d.ts +12 -0
- package/packages/agent/dist/core/messages.d.ts +37 -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/resource-loader.d.ts +39 -0
- package/packages/agent/dist/core/sdk.d.ts +38 -0
- package/packages/agent/dist/core/session-manager.d.ts +189 -0
- package/packages/agent/dist/core/skills.d.ts +20 -0
- package/packages/agent/dist/core/source-info.d.ts +16 -0
- package/packages/agent/dist/core/system-prompt.d.ts +21 -0
- package/packages/agent/dist/core/tools/bash.d.ts +63 -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 +13 -0
- package/packages/agent/dist/loop/agent-loop.d.ts +13 -0
- package/packages/agent/dist/loop/agent.d.ts +103 -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-session-runtime.ts +15 -469
- package/packages/agent/src/core/agent-session-services.ts +17 -167
- package/packages/agent/src/core/agent-session.ts +154 -2403
- package/packages/agent/src/core/agent-settings.ts +20 -0
- package/packages/agent/src/core/auth-guidance.ts +0 -4
- package/packages/agent/src/core/compaction/compaction.ts +4 -33
- 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/defaults.ts +1 -1
- package/packages/agent/src/core/extensions/index.ts +6 -117
- package/packages/agent/src/core/extensions/loader.ts +21 -605
- package/packages/agent/src/core/extensions/runner.ts +48 -969
- package/packages/agent/src/core/extensions/types.ts +35 -1298
- package/packages/agent/src/core/extensions/wrapper.ts +13 -34
- package/packages/agent/src/core/messages.ts +5 -109
- 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/resource-loader.ts +18 -822
- package/packages/agent/src/core/sdk.ts +46 -281
- package/packages/agent/src/core/session-manager.ts +11 -891
- package/packages/agent/src/core/skills.ts +8 -440
- package/packages/agent/src/core/source-info.ts +0 -12
- package/packages/agent/src/core/system-prompt.ts +2 -41
- package/packages/agent/src/core/tools/bash.ts +20 -32
- package/packages/agent/src/core/tools/edit-diff.ts +0 -60
- package/packages/agent/src/core/tools/edit.ts +2 -18
- 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 +4 -12
- package/packages/agent/src/core/tools/truncate.ts +0 -15
- package/packages/agent/src/core/tools/write.ts +1 -8
- package/packages/agent/src/index.ts +11 -272
- package/packages/{agent-core/src → agent/src/loop}/agent-loop.ts +127 -273
- package/packages/{agent-core/src → agent/src/loop}/agent.ts +12 -164
- 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 +13 -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 +541 -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-transport.ts +2 -2
- package/packages/ai/src/api/simple-options.ts +0 -34
- 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 +0 -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/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 +14 -18
- package/packages/ragents/src/agents/catalog.ts +3 -3
- package/packages/ragents/src/agents/plugins.ts +0 -4
- package/packages/ragents/src/agents/scheduler.ts +232 -78
- 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 +72 -73
- package/packages/ragents/src/agents/toolset.ts +5 -5
- package/packages/ragents/src/agents/turn.ts +2 -14
- package/packages/ragents/src/agents/workspaces.ts +18 -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 +62 -74
- package/packages/ragents/src/domain/event-validation.ts +22 -21
- package/packages/ragents/src/domain/events.ts +19 -7
- package/packages/ragents/src/domain/json.ts +2 -0
- package/packages/ragents/src/domain/model.ts +40 -18
- package/packages/ragents/src/domain/projection.ts +43 -15
- package/packages/ragents/src/domain/schema-errors.ts +3 -3
- package/packages/ragents/src/drivers/agent-hooks.ts +40 -0
- package/packages/ragents/src/drivers/agent-runtime.ts +118 -186
- package/packages/ragents/src/drivers/agent.ts +5 -20
- package/packages/ragents/src/drivers/attachments.ts +4 -24
- package/packages/ragents/src/drivers/skill-preload.ts +4 -16
- package/packages/ragents/src/drivers/types.ts +20 -3
- package/packages/ragents/src/http/contracts.ts +16 -3
- package/packages/ragents/src/http/methods.ts +32 -33
- package/packages/ragents/src/index.ts +5 -15
- package/packages/ragents/src/plugin-host.ts +151 -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 +90 -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 +37 -4
- package/packages/ragents/src/runtime/guards.ts +12 -21
- package/packages/ragents/src/runtime/journal-storage.ts +4 -2
- package/packages/ragents/src/runtime/journal.ts +1 -1
- package/packages/ragents/src/runtime/orchestration.ts +31 -14
- 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 +206 -36
- 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 +3 -8
- 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 +4 -5
- 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 +26 -26
- 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 -8
- package/ragents.config.showcase.ts +61 -0
- package/scripts/agent/agent-cli.ts +265 -107
- package/scripts/agent/journal.ts +3 -1
- package/scripts/agent/turn-control.ts +19 -0
- package/scripts/package/build-package.ts +70 -15
- 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 +3 -4
- 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/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/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/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/runtime-credentials.ts +0 -48
- package/packages/agent/src/core/session-cwd.ts +0 -59
- 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/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
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var u=(e,a)=>{let r=globalThis.__ragentsHostModules?.[e];if(r===void 0)throw new Error(`Der Host stellt ${e} nicht bereit`);if(!(a in r))throw new Error(`Der Host stellt ${a} aus ${e} nicht bereit; das Bundle ist gegen einen neueren Host gebaut`);return r[a]};var D=u("react","createContext");var S=u("react","createElement");var B=u("react","forwardRef");var X=u("react","useCallback");var M=u("react","useContext");var P=u("react","useEffect");var C=u("react","useMemo");var g=u("react","useState");var ne=e=>e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();function ce(e,a,r=[]){if(a==null)throw new Error("[lucide]: iconNode is required when icon name is used");return{name:ne(e),size:24,node:a,...r.length>0?{aliases:r}:{}}}var pe=e=>{let a="",r=!1;for(let o of e){if(o==="-"||o==="_"||o<=" "){r=a.length>0;continue}a.length===0?a+=o.toLowerCase():a+=r?o.toUpperCase():o,r=!1}return a};var me=e=>{let a=pe(e);return a.charAt(0).toUpperCase()+a.slice(1)};var F=(...e)=>e.filter((a,r,o)=>!!a&&a.trim()!==""&&o.indexOf(a)===r).join(" ").trim();var h={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};function K(e){return e!=null}function Le(e,a={}){let r=a.attributeNames??{},o=m=>r[m]??m,d=e.size??e.width??h.width,l=e.size??e.height??h.height,f=e.aliases?.filter(m=>typeof m=="string"&&m.trim()!=="").map(m=>`lucide-${m}`)??[],n=[...e.name?[`lucide-${e.name}`]:[],...f],L=a.className?.split(" ").filter(Boolean)??[],c=a.includeDefaultClasses===!1?F(...L):F("lucide",...n,...L),x=a.absoluteStrokeWidth?Number(a.strokeWidth??h["stroke-width"])*Number(e.size??e.width??h.width)/Number(a.size??a.width??h.width):a.strokeWidth??h["stroke-width"];return["svg",{...Object.entries(h).reduce((m,[p,w])=>(m[o(p)]=w,m),{}),..."color"in a&&a.color&&{[o("stroke")]:a.color},..."size"in a&&K(a.size)&&{[o("width")]:a.size,[o("height")]:a.size},..."width"in a&&K(a.width)&&{[o("width")]:a.width},..."height"in a&&K(a.height)&&{[o("height")]:a.height},[o("stroke-width")]:x,...c&&{[o("class")]:c},[o("viewBox")]:`0 0 ${d} ${l}`,...a.hasA11yProp===!1?{[o("aria-hidden")]:"true"}:{},..."attributes"in a&&a.attributes},e.node.map(m=>{let[p,w,E]=m,G=a.nonScalingStroke?{[o("vector-effect")]:"non-scaling-stroke",...w}:w;return E?[p,G,E]:[p,G]})]}function xe(e,a={}){return Le(e,{...a,attributeNames:{...a.attributeNames,class:"className","stroke-width":"strokeWidth","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","vector-effect":"vectorEffect"}})}var Ie=e=>{for(let a in e)if(a.startsWith("aria-")||a==="role"||a==="title")return!0;return!1};var je=D({});var Ce=()=>M(je);var ge=B(({color:e,size:a,width:r,height:o,strokeWidth:d,absoluteStrokeWidth:l,nonScalingStroke:f,className:n="",children:L,iconNode:c=[],icon:x={node:c,aliases:[],size:24},...s},m)=>{let{size:p=24,strokeWidth:w=2,absoluteStrokeWidth:E=!1,nonScalingStroke:G=!1,color:Ve="currentColor",className:ze=""}=Ce()??{},Ne=!!L||Ie(s),[Xe,Ke,Ze=[]]=xe(x,{color:e??Ve,width:r??a??p,height:o??a??p,strokeWidth:d??w,absoluteStrokeWidth:l??E,nonScalingStroke:f??G,className:F(ze,n),hasA11yProp:Ne,attributes:s});return S(Xe,{ref:m,...Ke},[...Ze.map(([_e,Qe])=>S(_e,Qe)),...Array.isArray(L)?L:[L]])});function W(e,a=[],r=[]){let o=typeof e=="string"?ce(e,a,r):e,d=B(({className:l,...f},n)=>S(ge,{ref:n,icon:o,className:l,...f}));return o.name&&(d.displayName=me(o.name)),d}var he={name:"arrow-left",size:24,node:[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]};he.node;var y=W(he);var Se={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};Se.node;var b=W(Se);var Z=u("@ragents/web/ui","Alert");var R=u("@ragents/web/ui","Badge");var A=u("@ragents/web/ui","Button");var _=u("@ragents/web/ui","Dialog");var Q=u("@ragents/web/ui","DialogContent");var j=u("@ragents/web/ui","DialogTitle");var T=u("@ragents/web/ui","Empty");var J=u("@ragents/web/ui","EmptyContent");var V=u("@ragents/web/ui","EmptyDescription");var q=u("@ragents/web/ui","EmptyHeader");var v=u("@ragents/web/ui","EmptyMedia");var U=u("@ragents/web/ui","EmptyTitle");var z=u("@ragents/web/ui","Spinner");var $=u("quassel","Markdown");var N=u("@ragents/web/lib/format","formatBytes");var Y=u("@ragents/web/SourceCode","SourceCode");var O=u("react/jsx-runtime","Fragment");var t=u("react/jsx-runtime","jsx");var i=u("react/jsx-runtime","jsxs");var ke="grid min-w-0 gap-px",Je="truncate text-[0.82rem] font-semibold",we="text-[0.68rem] text-muted-foreground tabular-nums",$e="min-w-0 p-0 text-[12px] whitespace-pre-wrap break-words",ee="flex size-7 items-center justify-center rounded-[9px] text-[0.62rem] font-bold tracking-[0.02em]",ae={markdown:"Markdown",text:"Text",html:"HTML",image:"Bild",binary:"Datei"},Ye={".md":"markdown",".markdown":"markdown",".html":"html",".htm":"html",".png":"image",".jpg":"image",".jpeg":"image",".gif":"image",".svg":"image",".webp":"image",".pdf":"binary",".zip":"binary",".gz":"binary",".tar":"binary",".xlsx":"binary",".docx":"binary",".bin":"binary"},te=e=>{let a=e.lastIndexOf(".");return a<0?"text":Ye[e.slice(a).toLowerCase()]??"text"},Pe=e=>e.includes("html")?"html":e.includes("markdown")?"markdown":e.startsWith("image/")?"image":e.startsWith("text/")||e.includes("json")||e.includes("xml")?"text":"binary",Ae=e=>{let a=new Date(e);return Number.isNaN(a.getTime())?e:a.toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"})},De=(e,a={})=>[...new Map([...Object.values(a).flat(),...e].filter(r=>r.tool?.name==="show_document").map(r=>[r.tool.id,r])).values()],oe=e=>e.flatMap(a=>{let r=a.tool;if(r?.name!=="show_document")return[];try{let o=JSON.parse(r.arguments);if(typeof o.title!="string"||typeof o.content!="string")return[];let d=o.format==="text"||o.format==="html"?o.format:"markdown";return[{id:r.id,title:o.title,content:o.content,format:d}]}catch{return[]}}),Be=e=>{let[a,r]=g({}),o=e?.format==="markdown"||e?.format==="text"||e?.format==="html",d=e?.content===void 0&&o?e?.contentUrl:void 0;if(P(()=>{if(!d||a[d])return;let l=!0;return fetch(d,{cache:"no-store"}).then(async f=>{if(!f.ok)throw new Error(`Status ${f.status}`);return f.text()}).then(f=>l&&r(n=>({...n,[d]:{text:f}}))).catch(f=>l&&r(n=>({...n,[d]:{error:f instanceof Error?f.message:String(f)}}))),()=>{l=!1}},[d,a]),!!e)return e.content!==void 0?{text:e.content}:o?d?a[d]:void 0:{text:""}};function Me({active:e,document:a,onOpen:r,status:o}){let d=C(()=>a.content?a.content.split(/\r\n|\r|\n/).length:0,[a.content]),l=o==="error"?"Fehler":o==="running"?"Wird ge\xF6ffnet":e?"Ge\xF6ffnet":"\xD6ffnen";return i("button",{"aria-pressed":e,className:"group/call grid w-[min(100%,620px)] grid-cols-[42px_minmax(0,1fr)_auto] items-center gap-3 rounded-xl border border-border bg-[color-mix(in_srgb,var(--background)_95%,var(--primary))] px-3.5 py-3 text-left shadow-sm transition-[background-color,border-color,box-shadow,transform] duration-100 hover:-translate-y-px hover:border-primary/50 hover:bg-[color-mix(in_srgb,var(--background)_91%,var(--primary))] hover:shadow-md focus-visible:border-primary/50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary/55 aria-pressed:border-primary/50 aria-pressed:bg-[color-mix(in_srgb,var(--background)_91%,var(--primary))] data-[status=error]:border-destructive/45 max-[620px]:grid-cols-[38px_minmax(0,1fr)_auto] max-[620px]:gap-2.5 max-[620px]:px-2.5 max-[620px]:py-2.5","data-status":o,onClick:r,type:"button",children:[t("span",{className:"flex h-12 w-[42px] items-center justify-center rounded-lg border border-primary/25 bg-primary/12 text-primary group-data-[status=error]/call:text-destructive max-[620px]:h-11 max-[620px]:w-[38px]",children:t(H,{size:22})}),i("span",{className:"flex min-w-0 flex-col gap-0.5",children:[t("span",{className:"text-[0.62rem] font-semibold tracking-[0.05em] text-primary uppercase",children:"Dokument"}),t("strong",{className:"truncate text-[0.84rem] leading-[1.35]",title:a.title,children:a.title}),i("span",{className:"text-[0.7rem] leading-[1.35] text-muted-foreground",children:[ae[a.format],", ",d.toLocaleString("de-DE")," ",d===1?"Zeile":"Zeilen"]})]}),i("span",{className:"flex items-center gap-1 text-[0.7rem] font-semibold text-primary group-data-[status=error]/call:text-destructive",children:[t("span",{className:"max-[620px]:sr-only",children:l}),o==="running"?t(z,{className:"size-3"}):o==="error"?t(Te,{}):t(Re,{})]})]})}function Fe({document:e,stand:a}){return e.format==="image"&&e.contentUrl?t("img",{alt:e.title,className:"block max-w-full rounded-lg border border-border",src:e.contentUrl}):e.format==="binary"&&e.contentUrl?i(T,{className:"min-h-30 gap-2 p-7",children:[i(q,{children:[t(v,{children:t(H,{})}),t(U,{children:"Keine Vorschau f\xFCr dieses Format"})]}),t(J,{children:t(A,{render:t("a",{download:e.title,href:e.contentUrl}),size:"sm",variant:"outline",children:"Herunterladen"})})]}):a?"error"in a?t(T,{className:"min-h-30 gap-2 p-7",children:i(q,{children:[t(v,{children:t(Te,{})}),t(U,{children:"Inhalt nicht lesbar"}),t(V,{children:a.error})]})}):e.format==="html"?t("iframe",{className:"h-full min-h-full w-full border-0 bg-white",sandbox:"",srcDoc:a.text,title:e.title}):e.format==="text"?t(Y,{className:$e,content:a.text,path:e.title}):t($,{text:a.text}):i("div",{className:"flex items-center justify-center gap-2.5 p-9 text-[0.76rem] text-muted-foreground",children:[t(z,{className:"size-3"}),t("span",{children:"Wird geladen"})]})}function ye({document:e}){let a=[ae[e.format],e.size!==void 0?N(e.size):void 0,e.createdAt?Ae(e.createdAt):void 0,e.meta].filter(Boolean);return i(O,{children:[t("strong",{className:Je,title:e.title,children:e.title}),t("span",{className:we,children:a.join(" \xB7 ")})]})}function ea({document:e,onClose:a}){let r=Be(e);return t(_,{open:!0,onOpenChange:o=>{o||a()},children:i(Q,{className:"w-[min(1080px,calc(100%-2*clamp(16px,5vw,72px)))] gap-0 rounded-panel border border-border bg-card p-0 shadow-pop",scope:"run",showCloseButton:!1,size:"full",children:[i("header",{className:"grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-3 border-b border-border px-3.5 py-3",children:[t("span",{className:"flex size-8 items-center justify-center rounded-[10px] bg-[color-mix(in_srgb,var(--primary)_12%,var(--background))] text-primary",children:t(H,{size:20})}),t(j,{className:ke,render:t("span",{}),children:t(ye,{document:e})}),t(A,{"aria-label":"Schlie\xDFen",className:"rounded-full",onClick:a,size:"icon",title:"Schlie\xDFen",variant:"outline",children:t(b,{})})]}),t("div",{className:"min-h-0 flex-1 overflow-y-auto px-[clamp(18px,4vw,54px)] pt-5 pb-10 text-[13.5px] leading-[1.65]",children:t(Fe,{document:e,stand:r})})]})})}function be({activeId:e,sections:a,truncated:r,onSelect:o}){let d=a.flatMap(s=>s.documents).find(s=>s.id===e),l=Be(d),[f,n]=g(!1),[L,c]=g(()=>new Set),x=X(s=>{c(m=>{let p=new Set(m);return p.has(s)?p.delete(s):p.add(s),p})},[]);return P(()=>{d||n(!1)},[d]),a.every(s=>s.documents.length===0)?t(T,{className:"h-full gap-2 p-7",children:i(q,{children:[t(v,{children:t(H,{})}),t(U,{children:"Noch keine Dokumente"}),t(V,{children:"Dateien aus der Ablage des Runs, Ergebnisse und im Chat gezeigte Dokumente sammeln sich hier."})]})}):d?i("div",{className:"flex h-full min-h-0 flex-col",children:[i("header",{className:"grid shrink-0 grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2.5 border-b border-border-soft px-workspace-inset py-2.5",children:[t(A,{"aria-label":"Zur\xFCck zur \xDCbersicht",onClick:()=>o(void 0),size:"icon-sm",title:"Zur\xFCck zur \xDCbersicht",variant:"outline",children:t(y,{})}),t("span",{className:ke,children:t(ye,{document:d})}),t(A,{onClick:()=>n(!0),size:"sm",variant:"outline",children:"Gro\xDF"})]}),t("div",{className:"min-h-0 flex-1 overflow-y-auto px-workspace-inset py-4 text-[13px] leading-[1.6]",children:t(Fe,{document:d,stand:l})}),f&&t(ea,{document:d,onClose:()=>n(!1)})]}):i("div",{className:"flex h-full flex-col gap-3.5 overflow-y-auto px-workspace-inset pt-2.5 pb-4.5 [scrollbar-width:thin]",children:[a.filter(s=>s.documents.length>0).map(s=>{let m=!L.has(s.id);return i("section",{children:[i("button",{"aria-expanded":m,className:"grid w-full grid-cols-[14px_26px_minmax(0,1fr)_auto] items-center gap-2.5 rounded-lg px-2 py-2 text-left hover:bg-primary/7",onClick:()=>x(s.id),type:"button",children:[t("span",{"aria-hidden":!0,className:`flex text-muted-foreground transition-transform duration-150${m?" rotate-90":""}`,children:t(aa,{})}),s.kind==="ablage"&&t("span",{"aria-hidden":!0,className:`${ee} bg-[color-mix(in_srgb,var(--foreground)_8%,var(--background))] text-[0.85rem] text-foreground`,children:"#"}),s.kind==="ergebnisse"&&t("span",{"aria-hidden":!0,className:`${ee} bg-[color-mix(in_srgb,var(--primary)_16%,var(--background))] text-primary`,children:t(oa,{})}),s.kind==="chat"&&t("span",{"aria-hidden":!0,className:`${ee} bg-[color-mix(in_srgb,var(--foreground)_9%,var(--background))] text-muted-foreground`,children:t(ta,{})}),t("span",{className:"truncate text-sm font-semibold",title:s.label,children:s.label}),t(R,{className:"tabular-nums",variant:"secondary",children:s.documents.length})]}),m&&t("div",{className:"ml-[23px] border-l border-border-soft pl-2.5",children:t("ul",{className:"mt-0.5 list-none",children:s.documents.map(p=>t("li",{children:i("button",{className:"group/entry mt-1.5 grid w-full grid-cols-[24px_minmax(0,1fr)_auto] items-center gap-2.5 rounded-lg border border-border bg-card px-2.5 py-2.5 text-left transition-colors duration-100 hover:border-primary/55 hover:bg-[color-mix(in_srgb,var(--primary)_7%,var(--card))]",onClick:()=>o(p.id),type:"button",children:[t("span",{className:"flex text-primary",children:t(H,{size:18})}),i("span",{className:"grid min-w-0 gap-0.5",children:[t("strong",{className:"truncate text-[0.79rem] font-semibold",title:p.title,children:p.title}),t("small",{className:we,children:[ae[p.format],p.size!==void 0?N(p.size):void 0,p.createdAt?Ae(p.createdAt):void 0,p.meta].filter(Boolean).join(" \xB7 ")})]}),t("span",{"aria-hidden":!0,className:"flex text-muted-foreground opacity-0 transition-opacity duration-100 group-hover/entry:opacity-100",children:t(Re,{})})]})},p.id))})})]},s.id)}),r&&t("p",{className:"text-[0.72rem] text-muted-foreground",children:"Die Ablage enth\xE4lt mehr Dateien, als hier angezeigt werden."})]})}function H({size:e=28}){return i("svg",{"aria-hidden":!0,fill:"none",height:e,stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",viewBox:"0 0 24 24",width:e,children:[t("path",{d:"M6 3h8l4 4v14H6z"}),t("path",{d:"M14 3v5h4M9 13h6M9 17h4"})]})}function Re(){return t("svg",{"aria-hidden":!0,fill:"none",height:"14",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.8",viewBox:"0 0 24 24",width:"14",children:t("path",{d:"m9 18 6-6-6-6"})})}function aa(){return t("svg",{"aria-hidden":!0,fill:"none",height:"12",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",width:"12",children:t("path",{d:"m9 18 6-6-6-6"})})}function ta(){return t("svg",{"aria-hidden":!0,fill:"none",height:"14",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.8",viewBox:"0 0 24 24",width:"14",children:t("path",{d:"M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.4A8 8 0 1 1 21 12z"})})}function oa(){return t("svg",{"aria-hidden":!0,fill:"none",height:"14",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.8",viewBox:"0 0 24 24",width:"14",children:t("path",{d:"M20 6 9 17l-5-5"})})}function Te(){return i("svg",{"aria-hidden":!0,fill:"none",height:"14",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.8",viewBox:"0 0 24 24",width:"14",children:[t("circle",{cx:"12",cy:"12",r:"9"}),t("path",{d:"M12 7v6M12 17h.01"})]})}var ue=u("@ragents/web/rpc","rpc");var I=u("typebox","Type");var re=u("@ragents/engine/src/rpc/contract","defineOperation");var qe=I.Object({path:I.String({minLength:1}),size:I.Integer({minimum:0}),modifiedAt:I.String({minLength:1})},{additionalProperties:!1}),ua=I.Object({groups:I.Array(I.Object({directory:I.String({minLength:1}),files:I.Array(qe)},{additionalProperties:!1})),loose:I.Array(qe),truncated:I.Boolean()},{additionalProperties:!1}),ve={files:re({id:"ragents.documents.files",description:"Die Dateiablage eines Runs als Gruppen und lose Dateien. Recht: runs.read.",rights:["runs.read"],input:I.Object({runId:I.String({minLength:1,maxLength:64,description:"Kennung des Runs"})},{additionalProperties:!1}),result:ua})};var de=(e,a,r)=>`${e}/runs/${encodeURIComponent(a)}/files/content?path=${encodeURIComponent(r)}`,Ue=e=>ue.call(ve.files,{runId:e});var le=u("@ragents/web/run-view","runArtifactContentUrl");var fe=u("@ragents/web/run-view","runViewFrom");var se=u("@ragents/web/PluginRegistry","pluginRoutePrefixFrom");var ra="ragents.documents",k="ragents.documents.library",da=e=>{if(e.name==="show_document")try{let a=JSON.parse(e.arguments);return typeof a.title!="string"||typeof a.path!="string"||typeof a.content=="string"?void 0:{title:a.title,path:a.path,...typeof a.format=="string"?{format:a.format}:{}}}catch{return}},Ee=(e,a,r)=>{let o=da(e);if(!o)return;let d=o.format==="markdown"||o.format==="text"||o.format==="html"?o.format:te(o.path);return{id:e.id,title:o.title,format:d,contentUrl:de(a,r,o.path)}},Ge=(e,a,r)=>oe([{key:e.id,role:"tool",text:e.name,tool:e}])[0]??Ee(e,a,r),la=(e,a,r)=>e.flatMap(o=>{let d=o.tool;if(!d)return[];let l=Ee(d,a,r);return l?[l]:[]}),We=D(void 0),Oe=()=>{let e=M(We);if(!e)throw new Error("Dokumente-Plugin ist nicht aktiv");return e},fa=e=>{let[a,r]=g(),[o,d]=g(),l=e.session.id;return P(()=>{let f=!0,n=()=>{Ue(l).then(c=>{f&&(r(c),d(void 0))}).catch(c=>f&&d(c instanceof Error?c.message:String(c)))};if(n(),!e.running)return()=>{f=!1};let L=setInterval(n,5e3);return()=>{f=!1,clearInterval(L)}},[l,e.running]),C(()=>({listing:a,error:o}),[a,o])};function sa({children:e,session:a}){let r=fa(a);return t(We.Provider,{value:r,children:e})}var ia=(e,a)=>{let r=new Map(a.actors.map(o=>[o.id,o.handle]));return{id:"ergebnisse",label:"Ergebnisse",kind:"ergebnisse",documents:a.artifacts.map(o=>{let d=r.get(o.createdBy);return{id:o.id,title:o.title,format:Pe(o.mediaType),contentUrl:le(e,o.id),createdAt:o.createdAt,size:o.size,...d?{meta:`@${d}`}:{}}})}},He=(e,a,r)=>{let o=a.session.id,d=fe(a.runView),l=(c,x)=>{let s=c?`${c}/${x.path}`:x.path;return{id:`file:${s}`,title:x.path,format:te(x.path),contentUrl:`${de(e,o,s)}&v=${encodeURIComponent(x.modifiedAt)}`,createdAt:x.modifiedAt,size:x.size}},f=[...(r?.groups??[]).map(c=>({id:`ablage/${c.directory}`,label:c.directory,kind:"ablage",documents:c.files.map(x=>l(c.directory,x))})),...r&&r.loose.length>0?[{id:"ablage",label:"Ablage",kind:"ablage",documents:r.loose.map(c=>l(void 0,c))}]:[],...d&&d.artifacts.length>0?[ia(o,d)]:[]],n=De(a.messages,a.actorConversations),L=[...oe(n),...la(n,e,a.session.id)];return L.length>0&&f.push({id:"chat",label:"Im Chat gezeigt",kind:"chat",documents:L}),{sections:f,truncated:r?.truncated??!1}},na=e=>{function a({navigation:o,selection:d,session:l}){let{listing:f,error:n}=Oe(),{sections:L,truncated:c}=C(()=>He(e,l,f),[l.messages,l.actorConversations,l.runView,l.session.id,f]);return i(O,{children:[n&&t(Z,{className:"shrink-0 rounded-none border-x-0 border-t-0 border-b-border-soft bg-destructive/8 px-2.5 py-2 text-[0.68rem]",variant:"destructive",children:n}),t(be,{activeId:typeof d=="string"?d:void 0,sections:L,truncated:c,onSelect:x=>o.openTab(k,x??null)})]})}function r({session:o}){let{listing:d}=Oe(),{sections:l}=C(()=>He(e,o,d),[o.messages,o.actorConversations,o.runView,o.session.id,d]),f=l.reduce((n,L)=>n+L.documents.length,0);return f>0?t(R,{className:"tabular-nums",variant:"secondary",children:f}):null}return{DocumentsPanelContribution:a,DocumentsBadge:r}};function ca({navigation:e,session:a,tool:r,routePrefix:o}){let d=Ge(r,o,a.session.id);if(!d)return null;let l=r.isError?"error":r.result===void 0?"running":"ready";return t(Me,{active:e.activeTabId===k&&e.selectionFor(k)===d.id,document:d,onOpen:()=>e.openTab(k,d.id),status:l})}function pa(){return t("svg",{"aria-hidden":!0,fill:"none",height:"15",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.7",viewBox:"0 0 24 24",width:"15",children:t("path",{d:"M6 3h8l4 4v14H6zM14 3v5h4M9 13h6M9 17h4"})})}var ma=(e,a)=>{let{DocumentsPanelContribution:r,DocumentsBadge:o}=na(a);return{...e,needsRunView:!0,SessionProvider:sa,workspaceTabs:[{id:k,label:"Dokumente",order:200,Icon:pa,Panel:r,Badge:o}],toolPresenters:[{toolName:"show_document",Inline:d=>t(ca,{...d,routePrefix:a}),reveal:(d,l)=>Ge(d,a,l.session.id)?{tabId:k,selection:d.id}:void 0}],entityPresenters:[{reveal:d=>d.type==="artifact"?{tabId:k,selection:d.id}:void 0}]}},ie={id:ra},gu={...ie,activate:e=>ma(ie,se(ie.id,e))};export{ra as DOCUMENTS_PLUGIN_ID,k as DOCUMENTS_TAB_ID,gu as webPlugin};
|
|
2
|
+
/*! Bundled license information:
|
|
3
|
+
|
|
4
|
+
lucide-react/dist/esm/shared/src/utils/toKebabCase.mjs:
|
|
5
|
+
lucide-react/dist/esm/shared/src/utils/toLucideIconData.mjs:
|
|
6
|
+
lucide-react/dist/esm/shared/src/utils/toCamelCase.mjs:
|
|
7
|
+
lucide-react/dist/esm/shared/src/utils/toPascalCase.mjs:
|
|
8
|
+
lucide-react/dist/esm/shared/src/utils/mergeClasses.mjs:
|
|
9
|
+
lucide-react/dist/esm/shared/src/build/defaultAttributes.mjs:
|
|
10
|
+
lucide-react/dist/esm/shared/src/build/buildLucideIconNode.mjs:
|
|
11
|
+
lucide-react/dist/esm/shared/src/build/buildLucideIconForReact.mjs:
|
|
12
|
+
lucide-react/dist/esm/shared/src/utils/hasA11yProp.mjs:
|
|
13
|
+
lucide-react/dist/esm/context.mjs:
|
|
14
|
+
lucide-react/dist/esm/Icon.mjs:
|
|
15
|
+
lucide-react/dist/esm/createLucideIcon.mjs:
|
|
16
|
+
lucide-react/dist/esm/icons/arrow-left.mjs:
|
|
17
|
+
lucide-react/dist/esm/icons/x.mjs:
|
|
18
|
+
lucide-react/dist/esm/lucide-react.mjs:
|
|
19
|
+
(**
|
|
20
|
+
* @license lucide-react v1.46.0 - ISC
|
|
21
|
+
*
|
|
22
|
+
* This source code is licensed under the ISC license.
|
|
23
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
24
|
+
*)
|
|
25
|
+
*/
|
|
26
|
+
//# sourceMappingURL=/plugins/ragents.documents/web/index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["ragents-host-read:read", "ragents-host-value:react#createContext", "ragents-host-value:react#createElement", "ragents-host-value:react#forwardRef", "ragents-host-value:react#useCallback", "ragents-host-value:react#useContext", "ragents-host-value:react#useEffect", "ragents-host-value:react#useMemo", "ragents-host-value:react#useState", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/shared/src/utils/toKebabCase.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/shared/src/utils/toLucideIconData.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/shared/src/utils/toCamelCase.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/shared/src/utils/toPascalCase.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/shared/src/utils/mergeClasses.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/shared/src/build/defaultAttributes.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/shared/src/build/buildLucideIconNode.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/shared/src/build/buildLucideIconForReact.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/shared/src/utils/hasA11yProp.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/lucide-react/src/context.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/lucide-react/src/Icon.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/lucide-react/src/createLucideIcon.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/lucide-react/src/icons/arrow-left.ts", "../../../node_modules/.pnpm/lucide-react@1.46.0_react@19.2.8/node_modules/lucide-react/src/icons/x.ts", "ragents-host-value:@ragents/web/ui#Alert", "ragents-host-value:@ragents/web/ui#Badge", "ragents-host-value:@ragents/web/ui#Button", "ragents-host-value:@ragents/web/ui#Dialog", "ragents-host-value:@ragents/web/ui#DialogContent", "ragents-host-value:@ragents/web/ui#DialogTitle", "ragents-host-value:@ragents/web/ui#Empty", "ragents-host-value:@ragents/web/ui#EmptyContent", "ragents-host-value:@ragents/web/ui#EmptyDescription", "ragents-host-value:@ragents/web/ui#EmptyHeader", "ragents-host-value:@ragents/web/ui#EmptyMedia", "ragents-host-value:@ragents/web/ui#EmptyTitle", "ragents-host-value:@ragents/web/ui#Spinner", "ragents-host-value:quassel#Markdown", "ragents-host-value:@ragents/web/lib/format#formatBytes", "ragents-host-value:@ragents/web/SourceCode#SourceCode", "ragents-host-value:react/jsx-runtime#Fragment", "ragents-host-value:react/jsx-runtime#jsx", "ragents-host-value:react/jsx-runtime#jsxs", "../../../plugins/ragents.documents/web/DocumentViewer.tsx", "ragents-host-value:@ragents/web/rpc#rpc", "ragents-host-value:typebox#Type", "ragents-host-value:@ragents/engine/src/rpc/contract#defineOperation", "../../../plugins/ragents.documents/contract.ts", "../../../plugins/ragents.documents/web/api.ts", "ragents-host-value:@ragents/web/run-view#runArtifactContentUrl", "ragents-host-value:@ragents/web/run-view#runViewFrom", "ragents-host-value:@ragents/web/PluginRegistry#pluginRoutePrefixFrom", "../../../plugins/ragents.documents/web/index.tsx"],
|
|
4
|
+
"sourcesContent": ["export const read = (specifier, name) => {\n const module = globalThis[\"__ragentsHostModules\"]?.[specifier];\n if (module === undefined) throw new Error(`Der Host stellt ${specifier} nicht bereit`);\n if (!(name in module)) throw new Error(`Der Host stellt ${name} aus ${specifier} nicht bereit; das Bundle ist gegen einen neueren Host gebaut`);\n return module[name];\n};", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react\", \"createContext\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react\", \"createElement\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react\", \"forwardRef\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react\", \"useCallback\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react\", \"useContext\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react\", \"useEffect\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react\", \"useMemo\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react\", \"useState\");\n", "/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string?.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n", "import { toKebabCase } from './toKebabCase';\nimport type { LucideIconData, LucideIconNode } from '../build/types';\n\n/**\n * Converts legacy `(name, iconNode, aliases?)` icon arguments into icon data object format.\n */\nexport function toLucideIconData(\n iconName: string,\n iconNode: LucideIconNode[],\n aliases: string[] = [],\n): LucideIconData {\n if (iconNode == null) {\n throw new Error('[lucide]: iconNode is required when icon name is used');\n }\n\n return {\n name: toKebabCase(iconName),\n size: 24,\n node: iconNode,\n ...(aliases.length > 0 ? { aliases } : {}),\n };\n}\n", "/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) => {\n let out = '';\n let upperNext = false;\n\n for (const ch of string) {\n if (ch === '-' || ch === '_' || ch <= ' ') {\n upperNext = out.length > 0;\n continue;\n }\n\n if (out.length === 0) {\n out += ch.toLowerCase();\n } else {\n out += upperNext ? ch.toUpperCase() : ch;\n }\n\n upperNext = false;\n }\n\n return out as string;\n};\n", "import { CamelToPascal } from '../utility-types';\nimport { toCamelCase } from './toCamelCase';\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n", "/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n", "const defaultAttributes = {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-width': 2,\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n} as const;\n\nexport default defaultAttributes;\n", "import type { LucideBuildParams, LucideIconData, LucideIconNode, SVGProps } from './types';\nimport defaultAttributes from './defaultAttributes';\nimport { mergeClasses } from '../utils/mergeClasses';\n\nfunction isDefined<T>(value: T | null | undefined): value is T {\n return value !== null && value !== undefined;\n}\n\n/**\n * Creates a Lucide icon node (an svgson-like format) from a Lucide icon object.\n *\n * @param icon The icon to build.\n * @param params Additional build parameters.\n */\nfunction buildLucideIconNode(icon: LucideIconData, params: LucideBuildParams = {}): LucideIconNode {\n const attributeNames = params.attributeNames ?? {};\n const getAttributeName = (attributeName: string) =>\n attributeNames[attributeName] ?? attributeName;\n\n const viewBoxWidth = icon.size ?? icon.width ?? defaultAttributes['width'];\n const viewBoxHeight = icon.size ?? icon.height ?? defaultAttributes['height'];\n const aliasClassNames =\n icon.aliases\n ?.filter((alias: string): alias is string => typeof alias === 'string' && alias.trim() !== '')\n .map((alias: string) => `lucide-${alias}`) ?? [];\n const iconClassNames = [...(icon.name ? [`lucide-${icon.name}`] : []), ...aliasClassNames];\n const classNamesFromClassName = params.className?.split(' ').filter(Boolean) ?? [];\n const className =\n params.includeDefaultClasses === false\n ? mergeClasses(...classNamesFromClassName)\n : mergeClasses('lucide', ...iconClassNames, ...classNamesFromClassName);\n\n const calculatedStrokeWidth = params.absoluteStrokeWidth\n ? (Number(params.strokeWidth ?? defaultAttributes['stroke-width']) *\n Number(icon.size ?? icon.width ?? defaultAttributes['width'])) /\n Number(params.size ?? params.width ?? defaultAttributes['width'])\n : (params.strokeWidth ?? defaultAttributes['stroke-width']);\n\n const attributes = {\n ...Object.entries(defaultAttributes).reduce((attrs, [attrName, value]) => {\n attrs[getAttributeName(attrName)] = value;\n return attrs;\n }, {} as SVGProps),\n ...('color' in params &&\n params.color && {\n [getAttributeName('stroke')]: params.color,\n }),\n ...('size' in params &&\n isDefined(params.size) && {\n [getAttributeName('width')]: params.size,\n [getAttributeName('height')]: params.size,\n }),\n ...('width' in params &&\n isDefined(params.width) && {\n [getAttributeName('width')]: params.width,\n }),\n ...('height' in params &&\n isDefined(params.height) && {\n [getAttributeName('height')]: params.height,\n }),\n [getAttributeName('stroke-width')]: calculatedStrokeWidth,\n ...(className && {\n [getAttributeName('class')]: className,\n }),\n [getAttributeName('viewBox')]: `0 0 ${viewBoxWidth} ${viewBoxHeight}`,\n ...(params.hasA11yProp === false\n ? {\n [getAttributeName('aria-hidden')]: 'true',\n }\n : {}),\n ...('attributes' in params && params.attributes),\n };\n\n return [\n 'svg',\n attributes,\n icon.node.map((child): LucideIconNode => {\n const [name, attrs, children] = child;\n const nextAttrs = params.nonScalingStroke\n ? { [getAttributeName('vector-effect')]: 'non-scaling-stroke', ...attrs }\n : attrs;\n\n return children ? [name, nextAttrs, children] : [name, nextAttrs];\n }),\n ];\n}\n\nexport default buildLucideIconNode;\n", "import buildLucideIconNode from './buildLucideIconNode';\nimport type { LucideBuildParams, LucideIconData, LucideIconNode } from './types';\n\n/**\n * Creates a React-compatible Lucide icon node (an svgson-like format) from a Lucide icon object.\n *\n * @param icon The icon to build.\n * @param params Additional build parameters.\n */\nfunction buildLucideIconForReact(\n icon: LucideIconData,\n params: LucideBuildParams = {},\n): LucideIconNode {\n return buildLucideIconNode(icon, {\n ...params,\n attributeNames: {\n ...params.attributeNames,\n class: 'className',\n 'stroke-width': 'strokeWidth',\n 'stroke-linecap': 'strokeLinecap',\n 'stroke-linejoin': 'strokeLinejoin',\n 'vector-effect': 'vectorEffect',\n },\n });\n}\n\nexport default buildLucideIconForReact;\n", "/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: object) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n\n return false;\n};\n", "'use client';\n\nimport { createContext, createElement, type ReactNode, useContext, useMemo } from 'react';\nimport { LucideProps } from './types';\n\ntype LucideConfig = {\n size: number;\n color: string;\n strokeWidth: number;\n /**\n * @deprecated Use `nonScalingStroke` instead.\n */\n absoluteStrokeWidth: boolean;\n nonScalingStroke: boolean;\n className: string;\n};\n\nconst LucideContext = createContext<LucideProps>({});\n\ntype LucideProviderProps = {\n children: ReactNode;\n} & Partial<LucideConfig>;\n\nexport function LucideProvider({\n children,\n size,\n color,\n strokeWidth,\n absoluteStrokeWidth,\n nonScalingStroke,\n className,\n}: LucideProviderProps) {\n const value = useMemo(\n () => ({\n size,\n color,\n strokeWidth,\n absoluteStrokeWidth,\n nonScalingStroke,\n className,\n }),\n [size, color, strokeWidth, absoluteStrokeWidth, nonScalingStroke, className],\n );\n\n return createElement(LucideContext.Provider, { value }, children);\n}\n\nexport const useLucideContext = () => useContext(LucideContext);\n", "'use client';\n\nimport { createElement, forwardRef } from 'react';\nimport { buildLucideIconForReact, hasA11yProp, mergeClasses } from '@lucide/shared';\nimport { LucideIconData, LucideIconNode, LucideProps } from './types';\nimport { useLucideContext } from './context';\n\ntype IconComponentProps = LucideProps &\n (\n | {\n iconNode: LucideIconNode[];\n icon?: never;\n }\n | {\n icon: LucideIconData;\n iconNode?: never;\n }\n );\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {boolean} props.nonScalingStroke - Whether to use non scaling strokes\n * @param {string} props.className - The class name of the icon\n * @param {LucideIconNode[]} props.children - The children of the icon\n * @param {LucideIconNode[]} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color,\n size,\n width,\n height,\n strokeWidth,\n absoluteStrokeWidth,\n nonScalingStroke,\n className = '',\n children,\n iconNode = [],\n icon = {\n node: iconNode,\n aliases: [],\n size: 24,\n },\n ...rest\n },\n ref,\n ) => {\n const {\n size: contextSize = 24,\n strokeWidth: contextStrokeWidth = 2,\n absoluteStrokeWidth: contextAbsoluteStrokeWidth = false,\n nonScalingStroke: contextNonScalingStroke = false,\n color: contextColor = 'currentColor',\n className: contextClass = '',\n } = useLucideContext() ?? {};\n\n const hasAccessibleProp = Boolean(children) || hasA11yProp(rest);\n\n const [name, svgAttributes, builtIconNode = []] = buildLucideIconForReact(icon, {\n color: color ?? contextColor,\n width: width ?? size ?? contextSize,\n height: height ?? size ?? contextSize,\n strokeWidth: strokeWidth ?? contextStrokeWidth,\n absoluteStrokeWidth: absoluteStrokeWidth ?? contextAbsoluteStrokeWidth,\n nonScalingStroke: nonScalingStroke ?? contextNonScalingStroke,\n className: mergeClasses(contextClass, className),\n hasA11yProp: hasAccessibleProp,\n attributes: rest,\n });\n\n return createElement(\n name,\n {\n ref,\n ...svgAttributes,\n },\n [\n ...builtIconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n );\n },\n);\n\nexport default Icon;\n", "import { createElement, forwardRef } from 'react';\nimport { toLucideIconData, toPascalCase } from '@lucide/shared';\nimport { LucideIcon, LucideIconData, LucideIconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Creates a Lucide icon component from icon data.\n *\n * @param icon Icon data object.\n * @returns Lucide icon component.\n */\nfunction createLucideIcon(icon: LucideIconData): LucideIcon;\n\n/**\n * Creates a Lucide icon component from the legacy icon arguments.\n *\n * @param iconName Icon name.\n * @param iconNode Icon node.\n * @param aliases Optional icon aliases.\n * @returns Lucide icon component.\n */\nfunction createLucideIcon(\n iconName: string,\n iconNode: LucideIconNode[],\n aliases?: string[],\n): LucideIcon;\n\nfunction createLucideIcon(\n iconDataOrName: LucideIconData | string,\n iconNode: LucideIconNode[] = [],\n aliases: string[] = [],\n): LucideIcon {\n const iconData =\n typeof iconDataOrName === 'string'\n ? toLucideIconData(iconDataOrName, iconNode, aliases)\n : iconDataOrName;\n\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n icon: iconData,\n className,\n ...props,\n }),\n );\n\n if (iconData.name) {\n Component.displayName = toPascalCase(iconData.name);\n }\n\n return Component;\n}\n\nexport default createLucideIcon;\n", "import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'arrow-left',\n size: 24,\n node: [\n ['path', { d: 'm12 19-7-7 7-7', key: '1l729n' }],\n ['path', { d: 'M19 12H5', key: 'x3x0zl' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name ArrowLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeft = createLucideIcon(__iconData);\n\nexport default ArrowLeft;\n", "import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'x',\n size: 24,\n node: [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon(__iconData);\n\nexport default X;\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Alert\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Badge\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Button\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Dialog\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"DialogContent\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"DialogTitle\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Empty\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"EmptyContent\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"EmptyDescription\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"EmptyHeader\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"EmptyMedia\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"EmptyTitle\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Spinner\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"quassel\", \"Markdown\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/lib/format\", \"formatBytes\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/SourceCode\", \"SourceCode\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"Fragment\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsx\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsxs\");\n", "import { ArrowLeftIcon, XIcon } from \"lucide-react\";\nimport {\n Badge,\n Button,\n Dialog,\n DialogContent,\n DialogTitle,\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n Spinner,\n} from \"@ragents/web/ui\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Markdown, type Message } from \"quassel\";\nimport { formatBytes } from \"@ragents/web/lib/format\";\nimport { SourceCode } from \"@ragents/web/SourceCode\";\n\nexport type DocumentFormat = \"markdown\" | \"text\" | \"html\" | \"image\" | \"binary\";\n\nconst copyClass = \"grid min-w-0 gap-px\";\nconst titleClass = \"truncate text-[0.82rem] font-semibold\";\nconst metaClass = \"text-[0.68rem] text-muted-foreground tabular-nums\";\nconst sourceClass = \"min-w-0 p-0 text-[12px] whitespace-pre-wrap break-words\";\nconst groupBadgeClass = \"flex size-7 items-center justify-center rounded-[9px] text-[0.62rem] font-bold tracking-[0.02em]\";\n\nexport interface RunDocument {\n id: string;\n title: string;\n format: DocumentFormat;\n content?: string;\n contentUrl?: string;\n createdAt?: string;\n size?: number;\n meta?: string;\n}\n\nexport interface DocumentSection {\n id: string;\n label: string;\n kind: \"ablage\" | \"ergebnisse\" | \"chat\";\n documents: RunDocument[];\n}\n\nconst formatLabels: Record<DocumentFormat, string> = {\n markdown: \"Markdown\",\n text: \"Text\",\n html: \"HTML\",\n image: \"Bild\",\n binary: \"Datei\",\n};\n\nconst formatByExtension: Record<string, DocumentFormat> = {\n \".md\": \"markdown\",\n \".markdown\": \"markdown\",\n \".html\": \"html\",\n \".htm\": \"html\",\n \".png\": \"image\",\n \".jpg\": \"image\",\n \".jpeg\": \"image\",\n \".gif\": \"image\",\n \".svg\": \"image\",\n \".webp\": \"image\",\n \".pdf\": \"binary\",\n \".zip\": \"binary\",\n \".gz\": \"binary\",\n \".tar\": \"binary\",\n \".xlsx\": \"binary\",\n \".docx\": \"binary\",\n \".bin\": \"binary\",\n};\n\nexport const formatFromName = (name: string): DocumentFormat => {\n const dot = name.lastIndexOf(\".\");\n return dot < 0 ? \"text\" : formatByExtension[name.slice(dot).toLowerCase()] ?? \"text\";\n};\n\nexport const formatOf = (mediaType: string): DocumentFormat =>\n mediaType.includes(\"html\")\n ? \"html\"\n : mediaType.includes(\"markdown\")\n ? \"markdown\"\n : mediaType.startsWith(\"image/\")\n ? \"image\"\n : mediaType.startsWith(\"text/\") || mediaType.includes(\"json\") || mediaType.includes(\"xml\")\n ? \"text\"\n : \"binary\";\n\nconst formatTime = (iso: string) => {\n const date = new Date(iso);\n return Number.isNaN(date.getTime())\n ? iso\n : date.toLocaleString(\"de-DE\", { day: \"2-digit\", month: \"2-digit\", hour: \"2-digit\", minute: \"2-digit\" });\n};\n\nexport const documentMessagesFrom = (\n messages: readonly Message[],\n conversations: Readonly<Record<string, readonly Message[]>> = {},\n): Message[] => [...new Map([...Object.values(conversations).flat(), ...messages]\n .filter((message) => message.tool?.name === \"show_document\")\n .map((message) => [message.tool!.id, message])).values()];\n\nexport const documentsFrom = (messages: Message[]): RunDocument[] =>\n messages.flatMap((message) => {\n const tool = message.tool;\n if (tool?.name !== \"show_document\") return [];\n try {\n const args = JSON.parse(tool.arguments) as { title?: unknown; content?: unknown; format?: unknown };\n if (typeof args.title !== \"string\" || typeof args.content !== \"string\") return [];\n const format = args.format === \"text\" || args.format === \"html\" ? args.format : \"markdown\";\n return [{ id: tool.id, title: args.title, content: args.content, format }];\n } catch {\n return [];\n }\n });\n\ntype LoadState = { text: string } | { error: string } | undefined;\n\nconst useDocumentContent = (document: RunDocument | undefined): LoadState => {\n const [cache, setCache] = useState<Record<string, LoadState>>({});\n const textual = document?.format === \"markdown\" || document?.format === \"text\" || document?.format === \"html\";\n const url = document?.content === undefined && textual ? document?.contentUrl : undefined;\n\n useEffect(() => {\n if (!url || cache[url]) return;\n let alive = true;\n void fetch(url, { cache: \"no-store\" })\n .then(async (response) => {\n if (!response.ok) throw new Error(`Status ${response.status}`);\n return response.text();\n })\n .then((text) => alive && setCache((current) => ({ ...current, [url]: { text } })))\n .catch((error: unknown) => alive && setCache((current) => ({\n ...current,\n [url]: { error: error instanceof Error ? error.message : String(error) },\n })));\n return () => {\n alive = false;\n };\n }, [url, cache]);\n\n if (!document) return undefined;\n if (document.content !== undefined) return { text: document.content };\n if (!textual) return { text: \"\" };\n return url ? cache[url] : undefined;\n};\n\ninterface DocumentToolCallProps {\n active: boolean;\n document: RunDocument;\n onOpen: () => void;\n status: \"error\" | \"ready\" | \"running\";\n}\n\nexport function DocumentToolCall({ active, document, onOpen, status }: DocumentToolCallProps) {\n const lineCount = useMemo(\n () => !document.content ? 0 : document.content.split(/\\r\\n|\\r|\\n/).length,\n [document.content],\n );\n const statusLabel = status === \"error\"\n ? \"Fehler\"\n : status === \"running\"\n ? \"Wird ge\u00F6ffnet\"\n : active\n ? \"Ge\u00F6ffnet\"\n : \"\u00D6ffnen\";\n\n return (\n <button\n aria-pressed={active}\n className=\"group/call grid w-[min(100%,620px)] grid-cols-[42px_minmax(0,1fr)_auto] items-center gap-3 rounded-xl border border-border bg-[color-mix(in_srgb,var(--background)_95%,var(--primary))] px-3.5 py-3 text-left shadow-sm transition-[background-color,border-color,box-shadow,transform] duration-100 hover:-translate-y-px hover:border-primary/50 hover:bg-[color-mix(in_srgb,var(--background)_91%,var(--primary))] hover:shadow-md focus-visible:border-primary/50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary/55 aria-pressed:border-primary/50 aria-pressed:bg-[color-mix(in_srgb,var(--background)_91%,var(--primary))] data-[status=error]:border-destructive/45 max-[620px]:grid-cols-[38px_minmax(0,1fr)_auto] max-[620px]:gap-2.5 max-[620px]:px-2.5 max-[620px]:py-2.5\"\n data-status={status}\n onClick={onOpen}\n type=\"button\"\n >\n <span className=\"flex h-12 w-[42px] items-center justify-center rounded-lg border border-primary/25 bg-primary/12 text-primary group-data-[status=error]/call:text-destructive max-[620px]:h-11 max-[620px]:w-[38px]\">\n <IconDocument size={22} />\n </span>\n <span className=\"flex min-w-0 flex-col gap-0.5\">\n <span className=\"text-[0.62rem] font-semibold tracking-[0.05em] text-primary uppercase\">Dokument</span>\n <strong className=\"truncate text-[0.84rem] leading-[1.35]\" title={document.title}>{document.title}</strong>\n <span className=\"text-[0.7rem] leading-[1.35] text-muted-foreground\">\n {formatLabels[document.format]}, {lineCount.toLocaleString(\"de-DE\")} {lineCount === 1 ? \"Zeile\" : \"Zeilen\"}\n </span>\n </span>\n <span className=\"flex items-center gap-1 text-[0.7rem] font-semibold text-primary group-data-[status=error]/call:text-destructive\">\n <span className=\"max-[620px]:sr-only\">{statusLabel}</span>\n {status === \"running\" ? <Spinner className=\"size-3\" /> : status === \"error\" ? <IconError /> : <IconOpen />}\n </span>\n </button>\n );\n}\n\nfunction DocumentContent({ document, stand }: { document: RunDocument; stand: LoadState }) {\n if (document.format === \"image\" && document.contentUrl) {\n return <img alt={document.title} className=\"block max-w-full rounded-lg border border-border\" src={document.contentUrl} />;\n }\n if (document.format === \"binary\" && document.contentUrl) {\n return (\n <Empty className=\"min-h-30 gap-2 p-7\">\n <EmptyHeader>\n <EmptyMedia><IconDocument /></EmptyMedia>\n <EmptyTitle>Keine Vorschau f\u00FCr dieses Format</EmptyTitle>\n </EmptyHeader>\n <EmptyContent>\n <Button render={<a download={document.title} href={document.contentUrl} />} size=\"sm\" variant=\"outline\">Herunterladen</Button>\n </EmptyContent>\n </Empty>\n );\n }\n if (!stand) {\n return (\n <div className=\"flex items-center justify-center gap-2.5 p-9 text-[0.76rem] text-muted-foreground\">\n <Spinner className=\"size-3\" />\n <span>Wird geladen</span>\n </div>\n );\n }\n if (\"error\" in stand) {\n return (\n <Empty className=\"min-h-30 gap-2 p-7\">\n <EmptyHeader>\n <EmptyMedia><IconError /></EmptyMedia>\n <EmptyTitle>Inhalt nicht lesbar</EmptyTitle>\n <EmptyDescription>{stand.error}</EmptyDescription>\n </EmptyHeader>\n </Empty>\n );\n }\n if (document.format === \"html\") {\n return <iframe className=\"h-full min-h-full w-full border-0 bg-white\" sandbox=\"\" srcDoc={stand.text} title={document.title} />;\n }\n if (document.format === \"text\") {\n return <SourceCode className={sourceClass} content={stand.text} path={document.title} />;\n }\n return <Markdown text={stand.text} />;\n}\n\nfunction DocumentHead({ document }: { document: RunDocument }) {\n const meta = [\n formatLabels[document.format],\n document.size !== undefined ? formatBytes(document.size) : undefined,\n document.createdAt ? formatTime(document.createdAt) : undefined,\n document.meta,\n ].filter(Boolean);\n\n return (\n <>\n <strong className={titleClass} title={document.title}>{document.title}</strong>\n <span className={metaClass}>{meta.join(\" \u00B7 \")}</span>\n </>\n );\n}\n\ninterface DocumentModalProps {\n document: RunDocument;\n onClose: () => void;\n}\n\nexport function DocumentModal({ document, onClose }: DocumentModalProps) {\n const stand = useDocumentContent(document);\n\n return (\n <Dialog open onOpenChange={(open) => { if (!open) onClose(); }}>\n <DialogContent className=\"w-[min(1080px,calc(100%-2*clamp(16px,5vw,72px)))] gap-0 rounded-panel border border-border bg-card p-0 shadow-pop\" scope=\"run\" showCloseButton={false} size=\"full\">\n <header className=\"grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-3 border-b border-border px-3.5 py-3\">\n <span className=\"flex size-8 items-center justify-center rounded-[10px] bg-[color-mix(in_srgb,var(--primary)_12%,var(--background))] text-primary\"><IconDocument size={20} /></span>\n <DialogTitle className={copyClass} render={<span />}>\n <DocumentHead document={document} />\n </DialogTitle>\n <Button aria-label=\"Schlie\u00DFen\" className=\"rounded-full\" onClick={onClose} size=\"icon\" title=\"Schlie\u00DFen\" variant=\"outline\">\n <XIcon />\n </Button>\n </header>\n <div className=\"min-h-0 flex-1 overflow-y-auto px-[clamp(18px,4vw,54px)] pt-5 pb-10 text-[13.5px] leading-[1.65]\">\n <DocumentContent document={document} stand={stand} />\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n\ninterface DocumentPanelProps {\n activeId: string | undefined;\n sections: DocumentSection[];\n truncated: boolean;\n onSelect: (id: string | undefined) => void;\n}\n\nexport function DocumentPanel({ activeId, sections, truncated, onSelect }: DocumentPanelProps) {\n const active = sections.flatMap((section) => section.documents).find((document) => document.id === activeId);\n const stand = useDocumentContent(active);\n const [modalOpen, setModalOpen] = useState(false);\n const [collapsed, setCollapsed] = useState<Set<string>>(() => new Set());\n\n const toggle = useCallback((id: string) => {\n setCollapsed((current) => {\n const next = new Set(current);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n }, []);\n\n useEffect(() => {\n if (!active) setModalOpen(false);\n }, [active]);\n\n if (sections.every((section) => section.documents.length === 0)) {\n return (\n <Empty className=\"h-full gap-2 p-7\">\n <EmptyHeader>\n <EmptyMedia><IconDocument /></EmptyMedia>\n <EmptyTitle>Noch keine Dokumente</EmptyTitle>\n <EmptyDescription>Dateien aus der Ablage des Runs, Ergebnisse und im Chat gezeigte Dokumente sammeln sich hier.</EmptyDescription>\n </EmptyHeader>\n </Empty>\n );\n }\n\n if (!active) {\n return (\n <div className=\"flex h-full flex-col gap-3.5 overflow-y-auto px-workspace-inset pt-2.5 pb-4.5 [scrollbar-width:thin]\">\n {sections.filter((section) => section.documents.length > 0).map((section) => {\n const offen = !collapsed.has(section.id);\n return (\n <section key={section.id}>\n <button\n aria-expanded={offen}\n className=\"grid w-full grid-cols-[14px_26px_minmax(0,1fr)_auto] items-center gap-2.5 rounded-lg px-2 py-2 text-left hover:bg-primary/7\"\n onClick={() => toggle(section.id)}\n type=\"button\"\n >\n <span aria-hidden className={`flex text-muted-foreground transition-transform duration-150${offen ? \" rotate-90\" : \"\"}`}>\n <IconChevron />\n </span>\n {section.kind === \"ablage\" && <span aria-hidden className={`${groupBadgeClass} bg-[color-mix(in_srgb,var(--foreground)_8%,var(--background))] text-[0.85rem] text-foreground`}>#</span>}\n {section.kind === \"ergebnisse\" && <span aria-hidden className={`${groupBadgeClass} bg-[color-mix(in_srgb,var(--primary)_16%,var(--background))] text-primary`}><IconResult /></span>}\n {section.kind === \"chat\" && <span aria-hidden className={`${groupBadgeClass} bg-[color-mix(in_srgb,var(--foreground)_9%,var(--background))] text-muted-foreground`}><IconChat /></span>}\n <span className=\"truncate text-sm font-semibold\" title={section.label}>{section.label}</span>\n <Badge className=\"tabular-nums\" variant=\"secondary\">{section.documents.length}</Badge>\n </button>\n {offen && (\n <div className=\"ml-[23px] border-l border-border-soft pl-2.5\">\n <ul className=\"mt-0.5 list-none\">\n {section.documents.map((document) => (\n <li key={document.id}>\n <button\n className=\"group/entry mt-1.5 grid w-full grid-cols-[24px_minmax(0,1fr)_auto] items-center gap-2.5 rounded-lg border border-border bg-card px-2.5 py-2.5 text-left transition-colors duration-100 hover:border-primary/55 hover:bg-[color-mix(in_srgb,var(--primary)_7%,var(--card))]\"\n onClick={() => onSelect(document.id)}\n type=\"button\"\n >\n <span className=\"flex text-primary\"><IconDocument size={18} /></span>\n <span className=\"grid min-w-0 gap-0.5\">\n <strong className=\"truncate text-[0.79rem] font-semibold\" title={document.title}>{document.title}</strong>\n <small className={metaClass}>\n {[\n formatLabels[document.format],\n document.size !== undefined ? formatBytes(document.size) : undefined,\n document.createdAt ? formatTime(document.createdAt) : undefined,\n document.meta,\n ].filter(Boolean).join(\" \u00B7 \")}\n </small>\n </span>\n <span aria-hidden className=\"flex text-muted-foreground opacity-0 transition-opacity duration-100 group-hover/entry:opacity-100\"><IconOpen /></span>\n </button>\n </li>\n ))}\n </ul>\n </div>\n )}\n </section>\n );\n })}\n {truncated && <p className=\"text-[0.72rem] text-muted-foreground\">Die Ablage enth\u00E4lt mehr Dateien, als hier angezeigt werden.</p>}\n </div>\n );\n }\n\n return (\n <div className=\"flex h-full min-h-0 flex-col\">\n <header className=\"grid shrink-0 grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2.5 border-b border-border-soft px-workspace-inset py-2.5\">\n <Button aria-label=\"Zur\u00FCck zur \u00DCbersicht\" onClick={() => onSelect(undefined)} size=\"icon-sm\" title=\"Zur\u00FCck zur \u00DCbersicht\" variant=\"outline\">\n <ArrowLeftIcon />\n </Button>\n <span className={copyClass}>\n <DocumentHead document={active} />\n </span>\n <Button onClick={() => setModalOpen(true)} size=\"sm\" variant=\"outline\">Gro\u00DF</Button>\n </header>\n <div className=\"min-h-0 flex-1 overflow-y-auto px-workspace-inset py-4 text-[13px] leading-[1.6]\">\n <DocumentContent document={active} stand={stand} />\n </div>\n {modalOpen && <DocumentModal document={active} onClose={() => setModalOpen(false)} />}\n </div>\n );\n}\n\nfunction IconDocument({ size = 28 }: { size?: number }) {\n return (\n <svg aria-hidden fill=\"none\" height={size} stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"1.5\" viewBox=\"0 0 24 24\" width={size}>\n <path d=\"M6 3h8l4 4v14H6z\" />\n <path d=\"M14 3v5h4M9 13h6M9 17h4\" />\n </svg>\n );\n}\n\nfunction IconOpen() {\n return (\n <svg aria-hidden fill=\"none\" height=\"14\" stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"1.8\" viewBox=\"0 0 24 24\" width=\"14\">\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n );\n}\n\nfunction IconChevron() {\n return (\n <svg aria-hidden fill=\"none\" height=\"12\" stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" viewBox=\"0 0 24 24\" width=\"12\">\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n );\n}\n\nfunction IconChat() {\n return (\n <svg aria-hidden fill=\"none\" height=\"14\" stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"1.8\" viewBox=\"0 0 24 24\" width=\"14\">\n <path d=\"M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.4A8 8 0 1 1 21 12z\" />\n </svg>\n );\n}\n\nfunction IconResult() {\n return (\n <svg aria-hidden fill=\"none\" height=\"14\" stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"1.8\" viewBox=\"0 0 24 24\" width=\"14\">\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\nfunction IconError() {\n return (\n <svg aria-hidden fill=\"none\" height=\"14\" stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"1.8\" viewBox=\"0 0 24 24\" width=\"14\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" />\n <path d=\"M12 7v6M12 17h.01\" />\n </svg>\n );\n}\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/rpc\", \"rpc\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"typebox\", \"Type\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/engine/src/rpc/contract\", \"defineOperation\");\n", "import { Type, type Static } from \"typebox\";\nimport { defineOperation } from \"@ragents/engine/src/rpc/contract\";\n\nexport const documentsApiPrefix = \"/api/plugins/ragents.documents\";\n\nconst fileEntry = Type.Object({\n path: Type.String({ minLength: 1 }),\n size: Type.Integer({ minimum: 0 }),\n modifiedAt: Type.String({ minLength: 1 }),\n}, { additionalProperties: false });\n\nconst filesListing = Type.Object({\n groups: Type.Array(Type.Object({\n directory: Type.String({ minLength: 1 }),\n files: Type.Array(fileEntry),\n }, { additionalProperties: false })),\n loose: Type.Array(fileEntry),\n truncated: Type.Boolean(),\n}, { additionalProperties: false });\n\nexport type RunFileEntry = Static<typeof fileEntry>;\n\nexport type RunFilesListing = Static<typeof filesListing>;\n\nexport const documentsContracts = {\n files: defineOperation({\n id: \"ragents.documents.files\",\n description: \"Die Dateiablage eines Runs als Gruppen und lose Dateien. Recht: runs.read.\",\n rights: [\"runs.read\"],\n input: Type.Object({\n runId: Type.String({ minLength: 1, maxLength: 64, description: \"Kennung des Runs\" }),\n }, { additionalProperties: false }),\n result: filesListing,\n }),\n};\n", "import { rpc } from \"@ragents/web/rpc\";\nimport { documentsContracts, type RunFilesListing } from \"../contract\";\n\nexport const runFileContentUrl = (routePrefix: string, runId: string, filePath: string): string =>\n `${routePrefix}/runs/${encodeURIComponent(runId)}/files/content?path=${encodeURIComponent(filePath)}`;\n\nexport const fetchRunFiles = (runId: string): Promise<RunFilesListing> =>\n rpc.call(documentsContracts.files, { runId });\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/run-view\", \"runArtifactContentUrl\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/run-view\", \"runViewFrom\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/PluginRegistry\", \"pluginRoutePrefixFrom\");\n", "import { createContext, useContext, useEffect, useMemo, useState } from \"react\";\nimport type { ToolInfo } from \"quassel/events\";\nimport {\n DocumentPanel,\n DocumentToolCall,\n documentMessagesFrom,\n documentsFrom as documentsFromMessages,\n formatFromName,\n formatOf,\n type RunDocument as Document,\n type DocumentSection,\n} from \"./DocumentViewer\";\nimport { fetchRunFiles, runFileContentUrl } from \"./api\";\nimport type { RunFileEntry, RunFilesListing } from \"../contract\";\nimport { runArtifactContentUrl, runViewFrom, type RunView } from \"@ragents/web/run-view\";\nimport { Alert, Badge } from \"@ragents/web/ui\";\nimport {\n pluginRoutePrefixFrom,\n type SessionContext,\n type SessionProviderProps,\n type ToolPresenterContext,\n type WebPlugin,\n type WebPluginDescriptor,\n type WorkspaceTabContext,\n} from \"@ragents/web/PluginRegistry\";\n\nexport const DOCUMENTS_PLUGIN_ID = \"ragents.documents\";\nexport const DOCUMENTS_TAB_ID = \"ragents.documents.library\";\n\nconst pathArgumentsFrom = (tool: ToolInfo): { title: string; path: string; format?: string } | undefined => {\n if (tool.name !== \"show_document\") return undefined;\n try {\n const args = JSON.parse(tool.arguments) as { title?: unknown; path?: unknown; content?: unknown; format?: unknown };\n if (typeof args.title !== \"string\" || typeof args.path !== \"string\" || typeof args.content === \"string\") return undefined;\n return { title: args.title, path: args.path, ...(typeof args.format === \"string\" ? { format: args.format } : {}) };\n } catch {\n return undefined;\n }\n};\n\nconst pathDocumentFrom = (tool: ToolInfo, routePrefix: string, runId: string): Document | undefined => {\n const args = pathArgumentsFrom(tool);\n if (!args) return undefined;\n const format = args.format === \"markdown\" || args.format === \"text\" || args.format === \"html\"\n ? args.format\n : formatFromName(args.path);\n return { id: tool.id, title: args.title, format, contentUrl: runFileContentUrl(routePrefix, runId, args.path) };\n};\n\nconst chatDocumentFrom = (tool: ToolInfo, routePrefix: string, runId: string): Document | undefined =>\n documentsFromMessages([{\n key: tool.id,\n role: \"tool\",\n text: tool.name,\n tool,\n }])[0] ?? pathDocumentFrom(tool, routePrefix, runId);\n\nconst pathDocumentsFromMessages = (\n messages: SessionContext[\"messages\"],\n routePrefix: string,\n runId: string,\n): Document[] =>\n messages.flatMap((message) => {\n const tool = message.tool;\n if (!tool) return [];\n const document = pathDocumentFrom(tool, routePrefix, runId);\n return document ? [document] : [];\n });\n\ninterface RunFilesState {\n listing: RunFilesListing | undefined;\n error: string | undefined;\n}\n\nconst RunFilesContext = createContext<RunFilesState | undefined>(undefined);\n\nconst useRunFilesContext = (): RunFilesState => {\n const state = useContext(RunFilesContext);\n if (!state) throw new Error(\"Dokumente-Plugin ist nicht aktiv\");\n return state;\n};\n\nconst useRunFiles = (session: SessionContext): RunFilesState => {\n const [listing, setListing] = useState<RunFilesListing>();\n const [error, setError] = useState<string>();\n const runId = session.session.id;\n\n useEffect(() => {\n let alive = true;\n const load = () => void fetchRunFiles(runId)\n .then((value) => {\n if (!alive) return;\n setListing(value);\n setError(undefined);\n })\n .catch((cause: unknown) => alive && setError(cause instanceof Error ? cause.message : String(cause)));\n load();\n if (!session.running) {\n return () => {\n alive = false;\n };\n }\n const timer = setInterval(load, 5000);\n return () => {\n alive = false;\n clearInterval(timer);\n };\n }, [runId, session.running]);\n\n return useMemo(() => ({ listing, error }), [listing, error]);\n};\n\nfunction DocumentsSessionProvider({ children, session }: SessionProviderProps) {\n const state = useRunFiles(session);\n return <RunFilesContext.Provider value={state}>{children}</RunFilesContext.Provider>;\n}\n\nconst resultSection = (runId: string, view: RunView): DocumentSection => {\n const handles = new Map(view.actors.map((actor) => [actor.id, actor.handle]));\n return {\n id: \"ergebnisse\",\n label: \"Ergebnisse\",\n kind: \"ergebnisse\",\n documents: view.artifacts.map((artifact) => {\n const handle = handles.get(artifact.createdBy);\n return {\n id: artifact.id,\n title: artifact.title,\n format: formatOf(artifact.mediaType),\n contentUrl: runArtifactContentUrl(runId, artifact.id),\n createdAt: artifact.createdAt,\n size: artifact.size,\n ...(handle ? { meta: `@${handle}` } : {}),\n };\n }),\n };\n};\n\nconst sectionsFrom = (\n routePrefix: string,\n session: SessionContext,\n listing: RunFilesListing | undefined,\n): { sections: DocumentSection[]; truncated: boolean } => {\n const runId = session.session.id;\n const view = runViewFrom(session.runView);\n const fileDocument = (directory: string | undefined, entry: RunFileEntry): Document => {\n const relative = directory ? `${directory}/${entry.path}` : entry.path;\n return {\n id: `file:${relative}`,\n title: entry.path,\n format: formatFromName(entry.path),\n contentUrl: `${runFileContentUrl(routePrefix, runId, relative)}&v=${encodeURIComponent(entry.modifiedAt)}`,\n createdAt: entry.modifiedAt,\n size: entry.size,\n };\n };\n\n const sections: DocumentSection[] = [\n ...(listing?.groups ?? []).map((group) => ({\n id: `ablage/${group.directory}`,\n label: group.directory,\n kind: \"ablage\" as const,\n documents: group.files.map((entry) => fileDocument(group.directory, entry)),\n })),\n ...(listing && listing.loose.length > 0\n ? [{\n id: \"ablage\",\n label: \"Ablage\",\n kind: \"ablage\" as const,\n documents: listing.loose.map((entry) => fileDocument(undefined, entry)),\n }]\n : []),\n ...(view && view.artifacts.length > 0 ? [resultSection(runId, view)] : []),\n ];\n const documentMessages = documentMessagesFrom(session.messages, session.actorConversations);\n const chat = [\n ...documentsFromMessages(documentMessages),\n ...pathDocumentsFromMessages(documentMessages, routePrefix, session.session.id),\n ];\n if (chat.length > 0) sections.push({ id: \"chat\", label: \"Im Chat gezeigt\", kind: \"chat\", documents: chat });\n return { sections, truncated: listing?.truncated ?? false };\n};\n\nconst contribution = (routePrefix: string) => {\n function DocumentsPanelContribution({ navigation, selection, session }: WorkspaceTabContext) {\n const { listing, error } = useRunFilesContext();\n const { sections, truncated } = useMemo(\n () => sectionsFrom(routePrefix, session, listing),\n // eslint-disable-next-line react-hooks/exhaustive-deps -- session is rebuilt per render; only these parts matter\n [session.messages, session.actorConversations, session.runView, session.session.id, listing],\n );\n return (\n <>\n {error && (\n <Alert className=\"shrink-0 rounded-none border-x-0 border-t-0 border-b-border-soft bg-destructive/8 px-2.5 py-2 text-[0.68rem]\" variant=\"destructive\">\n {error}\n </Alert>\n )}\n <DocumentPanel\n activeId={typeof selection === \"string\" ? selection : undefined}\n sections={sections}\n truncated={truncated}\n onSelect={(id) => navigation.openTab(DOCUMENTS_TAB_ID, id ?? null)}\n />\n </>\n );\n }\n\n function DocumentsBadge({ session }: WorkspaceTabContext) {\n const { listing } = useRunFilesContext();\n const { sections } = useMemo(\n () => sectionsFrom(routePrefix, session, listing),\n // eslint-disable-next-line react-hooks/exhaustive-deps -- session is rebuilt per render; only these parts matter\n [session.messages, session.actorConversations, session.runView, session.session.id, listing],\n );\n const count = sections.reduce((sum, section) => sum + section.documents.length, 0);\n return count > 0 ? <Badge className=\"tabular-nums\" variant=\"secondary\">{count}</Badge> : null;\n }\n\n return { DocumentsPanelContribution, DocumentsBadge };\n};\n\nfunction DocumentInline({ navigation, session, tool, routePrefix }: ToolPresenterContext & { routePrefix: string }) {\n const document = chatDocumentFrom(tool, routePrefix, session.session.id);\n if (!document) return null;\n const status = tool.isError ? \"error\" : tool.result === undefined ? \"running\" : \"ready\";\n return (\n <DocumentToolCall\n active={navigation.activeTabId === DOCUMENTS_TAB_ID && navigation.selectionFor(DOCUMENTS_TAB_ID) === document.id}\n document={document}\n onOpen={() => navigation.openTab(DOCUMENTS_TAB_ID, document.id)}\n status={status}\n />\n );\n}\n\nfunction IconDocument() {\n return (\n <svg aria-hidden fill=\"none\" height=\"15\" stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"1.7\" viewBox=\"0 0 24 24\" width=\"15\">\n <path d=\"M6 3h8l4 4v14H6zM14 3v5h4M9 13h6M9 17h4\" />\n </svg>\n );\n}\n\nconst configuredPlugin = (descriptor: WebPluginDescriptor, routePrefix: string): WebPlugin => {\n const { DocumentsPanelContribution, DocumentsBadge } = contribution(routePrefix);\n return {\n ...descriptor,\n needsRunView: true,\n SessionProvider: DocumentsSessionProvider,\n workspaceTabs: [{\n id: DOCUMENTS_TAB_ID,\n label: \"Dokumente\",\n order: 200,\n Icon: IconDocument,\n Panel: DocumentsPanelContribution,\n Badge: DocumentsBadge,\n }],\n toolPresenters: [{\n toolName: \"show_document\",\n Inline: (props) => <DocumentInline {...props} routePrefix={routePrefix} />,\n reveal: (tool, session) => chatDocumentFrom(tool, routePrefix, session.session.id)\n ? { tabId: DOCUMENTS_TAB_ID, selection: tool.id }\n : undefined,\n }],\n entityPresenters: [{\n reveal: (entity) => entity.type === \"artifact\"\n ? { tabId: DOCUMENTS_TAB_ID, selection: entity.id }\n : undefined,\n }],\n };\n};\n\nconst descriptor: WebPluginDescriptor = { id: DOCUMENTS_PLUGIN_ID };\n\nexport const webPlugin: WebPlugin = {\n ...descriptor,\n activate: (config) => configuredPlugin(descriptor, pluginRoutePrefixFrom(descriptor.id, config)),\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["read", "specifier", "name", "module", "react_createContext_default", "read", "react_createElement_default", "read", "react_forwardRef_default", "read", "react_useCallback_default", "read", "react_useContext_default", "read", "react_useEffect_default", "read", "react_useMemo_default", "read", "react_useState_default", "read", "toKebabCase", "string", "toLucideIconData", "iconName", "iconNode", "aliases", "toKebabCase", "toCamelCase", "string", "out", "upperNext", "ch", "toPascalCase", "string", "camelCase", "toCamelCase", "mergeClasses", "classes", "className", "index", "array", "defaultAttributes", "isDefined", "value", "buildLucideIconNode", "icon", "params", "attributeNames", "getAttributeName", "attributeName", "viewBoxWidth", "defaultAttributes", "viewBoxHeight", "aliasClassNames", "alias", "iconClassNames", "classNamesFromClassName", "className", "mergeClasses", "calculatedStrokeWidth", "attrs", "attrName", "child", "name", "children", "nextAttrs", "buildLucideIconForReact", "icon", "params", "buildLucideIconNode", "hasA11yProp", "props", "prop", "LucideContext", "react_createContext_default", "useLucideContext", "react_useContext_default", "LucideContext", "Icon", "react_forwardRef_default", "color", "size", "width", "height", "strokeWidth", "absoluteStrokeWidth", "nonScalingStroke", "className", "children", "iconNode", "icon", "rest", "ref", "contextSize", "contextStrokeWidth", "contextAbsoluteStrokeWidth", "contextNonScalingStroke", "contextColor", "contextClass", "useLucideContext", "hasAccessibleProp", "hasA11yProp", "name", "svgAttributes", "builtIconNode", "buildLucideIconForReact", "mergeClasses", "react_createElement_default", "tag", "attrs", "createLucideIcon", "iconDataOrName", "iconNode", "aliases", "iconData", "toLucideIconData", "Component", "react_forwardRef_default", "className", "props", "ref", "react_createElement_default", "Icon", "toPascalCase", "__iconData", "ArrowLeft", "createLucideIcon", "__iconData", "X", "createLucideIcon", "ui_Alert_default", "read", "ui_Badge_default", "read", "ui_Button_default", "read", "ui_Dialog_default", "read", "ui_DialogContent_default", "read", "ui_DialogTitle_default", "read", "ui_Empty_default", "read", "ui_EmptyContent_default", "read", "ui_EmptyDescription_default", "read", "ui_EmptyHeader_default", "read", "ui_EmptyMedia_default", "read", "ui_EmptyTitle_default", "read", "ui_Spinner_default", "read", "quassel_Markdown_default", "read", "format_formatBytes_default", "read", "SourceCode_SourceCode_default", "read", "jsx_runtime_Fragment_default", "read", "jsx_runtime_jsx_default", "read", "jsx_runtime_jsxs_default", "read", "copyClass", "titleClass", "metaClass", "sourceClass", "groupBadgeClass", "formatLabels", "formatByExtension", "formatFromName", "name", "dot", "formatOf", "mediaType", "formatTime", "iso", "date", "documentMessagesFrom", "messages", "conversations", "message", "documentsFrom", "tool", "args", "format", "useDocumentContent", "document", "cache", "setCache", "react_useState_default", "textual", "url", "react_useEffect_default", "alive", "response", "text", "current", "error", "DocumentToolCall", "active", "onOpen", "status", "lineCount", "react_useMemo_default", "statusLabel", "jsx_runtime_jsxs_default", "jsx_runtime_jsx_default", "IconDocument", "ui_Spinner_default", "IconError", "IconOpen", "DocumentContent", "stand", "ui_Empty_default", "ui_EmptyHeader_default", "ui_EmptyMedia_default", "ui_EmptyTitle_default", "ui_EmptyContent_default", "ui_Button_default", "ui_EmptyDescription_default", "SourceCode_SourceCode_default", "quassel_Markdown_default", "DocumentHead", "meta", "format_formatBytes_default", "jsx_runtime_Fragment_default", "DocumentModal", "onClose", "ui_Dialog_default", "open", "ui_DialogContent_default", "ui_DialogTitle_default", "X", "DocumentPanel", "activeId", "sections", "truncated", "onSelect", "section", "modalOpen", "setModalOpen", "collapsed", "setCollapsed", "toggle", "react_useCallback_default", "id", "next", "ArrowLeft", "offen", "IconChevron", "IconResult", "IconChat", "ui_Badge_default", "size", "rpc_rpc_default", "read", "typebox_Type_default", "read", "contract_defineOperation_default", "read", "fileEntry", "typebox_Type_default", "filesListing", "documentsContracts", "contract_defineOperation_default", "runFileContentUrl", "routePrefix", "runId", "filePath", "fetchRunFiles", "rpc_rpc_default", "documentsContracts", "run_view_runArtifactContentUrl_default", "read", "run_view_runViewFrom_default", "read", "PluginRegistry_pluginRoutePrefixFrom_default", "read", "DOCUMENTS_PLUGIN_ID", "DOCUMENTS_TAB_ID", "pathArgumentsFrom", "tool", "args", "pathDocumentFrom", "routePrefix", "runId", "format", "formatFromName", "runFileContentUrl", "chatDocumentFrom", "documentsFrom", "pathDocumentsFromMessages", "messages", "message", "document", "RunFilesContext", "react_createContext_default", "useRunFilesContext", "state", "react_useContext_default", "useRunFiles", "session", "listing", "setListing", "react_useState_default", "error", "setError", "react_useEffect_default", "alive", "load", "fetchRunFiles", "value", "cause", "timer", "react_useMemo_default", "DocumentsSessionProvider", "children", "jsx_runtime_jsx_default", "resultSection", "view", "handles", "actor", "artifact", "handle", "formatOf", "run_view_runArtifactContentUrl_default", "sectionsFrom", "run_view_runViewFrom_default", "fileDocument", "directory", "entry", "relative", "sections", "group", "documentMessages", "documentMessagesFrom", "chat", "contribution", "DocumentsPanelContribution", "navigation", "selection", "truncated", "jsx_runtime_jsxs_default", "jsx_runtime_Fragment_default", "ui_Alert_default", "DocumentPanel", "id", "DocumentsBadge", "count", "sum", "section", "ui_Badge_default", "DocumentInline", "status", "DocumentToolCall", "IconDocument", "configuredPlugin", "descriptor", "props", "entity", "webPlugin", "config", "PluginRegistry_pluginRoutePrefixFrom_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": 3,
|
|
3
|
+
"id": "ragents.lsp-fsharp",
|
|
4
|
+
"api": 6,
|
|
5
|
+
"hostNames": {
|
|
6
|
+
"server": {
|
|
7
|
+
"@ragents/host/plugin-support/language-server/plugin": [
|
|
8
|
+
"createLanguageServerPlugin"
|
|
9
|
+
],
|
|
10
|
+
"@ragents/host/plugin-support/provision": [
|
|
11
|
+
"DOTNET_INSTRUCTION",
|
|
12
|
+
"dotnetRuntimeMajors",
|
|
13
|
+
"downloadArchive",
|
|
14
|
+
"provisionGap",
|
|
15
|
+
"provisionReady",
|
|
16
|
+
"readProvisionStamp",
|
|
17
|
+
"readZipNames",
|
|
18
|
+
"unpackArchive",
|
|
19
|
+
"writeProvisionStamp"
|
|
20
|
+
],
|
|
21
|
+
"@ragents/workspace-executor": [
|
|
22
|
+
"FSHARP_SERVER_FILE",
|
|
23
|
+
"FSHARP_SERVER_VARIABLE",
|
|
24
|
+
"fsharpAdapter"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"web": {
|
|
28
|
+
"@ragents/web/language-server/language-server-plugin": [
|
|
29
|
+
"languageServerWebPlugin"
|
|
30
|
+
],
|
|
31
|
+
"react/jsx-runtime": [
|
|
32
|
+
"jsx"
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"stand": "2f29e5802d451480af3b5cbf208524672e2ba21dd85825d62e837e1b5cc8d93b",
|
|
37
|
+
"sourceStand": "9997ff5cf29e6340d85e2879fdda7f0a530e35f2388559f97e10238c2d8f2d16",
|
|
38
|
+
"server": "server/index.js",
|
|
39
|
+
"web": {
|
|
40
|
+
"entry": "web/index.js",
|
|
41
|
+
"classes": "web/classes.json"
|
|
42
|
+
},
|
|
43
|
+
"exports": {
|
|
44
|
+
"server": {},
|
|
45
|
+
"web": {}
|
|
46
|
+
},
|
|
47
|
+
"uses": [],
|
|
48
|
+
"assets": []
|
|
49
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { createRequire as __ragentsCreateRequire } from "node:module";
|
|
2
|
+
const require = __ragentsCreateRequire(import.meta.url);
|
|
3
|
+
|
|
4
|
+
// server/index.ts
|
|
5
|
+
import { fsharpAdapter, FSHARP_SERVER_VARIABLE } from "@ragents/workspace-executor";
|
|
6
|
+
import { createLanguageServerPlugin } from "@ragents/host/plugin-support/language-server/plugin.js";
|
|
7
|
+
var fsharpConfigDescriptors = [
|
|
8
|
+
{ key: FSHARP_SERVER_VARIABLE, source: "environment" }
|
|
9
|
+
];
|
|
10
|
+
var plugin = {
|
|
11
|
+
create: () => createLanguageServerPlugin({
|
|
12
|
+
id: "ragents.lsp-fsharp",
|
|
13
|
+
adapter: fsharpAdapter,
|
|
14
|
+
tabLabel: "F#",
|
|
15
|
+
configDescriptors: fsharpConfigDescriptors
|
|
16
|
+
})
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// provision.ts
|
|
20
|
+
import { stat } from "node:fs/promises";
|
|
21
|
+
import path from "node:path";
|
|
22
|
+
import { FSHARP_SERVER_FILE } from "@ragents/workspace-executor";
|
|
23
|
+
import {
|
|
24
|
+
DOTNET_INSTRUCTION,
|
|
25
|
+
downloadArchive,
|
|
26
|
+
dotnetRuntimeMajors,
|
|
27
|
+
provisionGap,
|
|
28
|
+
provisionReady,
|
|
29
|
+
readProvisionStamp,
|
|
30
|
+
readZipNames,
|
|
31
|
+
unpackArchive,
|
|
32
|
+
writeProvisionStamp
|
|
33
|
+
} from "@ragents/host/plugin-support/provision.js";
|
|
34
|
+
var FSAUTOCOMPLETE_VERSION = "0.83.0";
|
|
35
|
+
var FEED = "https://api.nuget.org/v3/flatcontainer";
|
|
36
|
+
var PACKAGE = "fsautocomplete";
|
|
37
|
+
var TOOL_FOLDER = /^tools\/net(\d+)\.0\/any\//;
|
|
38
|
+
var fsautocompleteArchiveUrl = `${FEED}/${PACKAGE}/${FSAUTOCOMPLETE_VERSION}/${PACKAGE}.${FSAUTOCOMPLETE_VERSION}.nupkg`;
|
|
39
|
+
var toolPrefix = (names, majors) => {
|
|
40
|
+
const offered = names.map((name) => TOOL_FOLDER.exec(name)).filter((match) => match !== null).map((match) => ({ prefix: match[0], major: Number(match[1]) }));
|
|
41
|
+
const usable = offered.filter((entry) => majors.includes(entry.major)).sort((left, right) => right.major - left.major);
|
|
42
|
+
const chosen = usable[0];
|
|
43
|
+
if (!chosen) {
|
|
44
|
+
throw new Error(`${PACKAGE} ${FSAUTOCOMPLETE_VERSION} bringt nur ${[...new Set(offered.map((entry) => `net${entry.major}.0`))].join(", ")} mit; installiert sind die .NET-Laufzeiten ${majors.join(", ")}`);
|
|
45
|
+
}
|
|
46
|
+
return chosen.prefix;
|
|
47
|
+
};
|
|
48
|
+
var createFsharpProvision = (download = downloadArchive, runtimes = dotnetRuntimeMajors) => {
|
|
49
|
+
const serverFile = (target) => path.join(target, ...FSHARP_SERVER_FILE.split("/"));
|
|
50
|
+
const check = async (target) => {
|
|
51
|
+
if (await runtimes() === void 0) return provisionGap("dotnet", DOTNET_INSTRUCTION, false);
|
|
52
|
+
const installed = await stat(serverFile(target)).catch(() => void 0);
|
|
53
|
+
if (installed?.isFile() && await readProvisionStamp(target) === FSAUTOCOMPLETE_VERSION) return provisionReady;
|
|
54
|
+
return provisionGap("fsautocomplete", `fsautocomplete ${FSAUTOCOMPLETE_VERSION} fehlt unter ${serverFile(target)}`, true);
|
|
55
|
+
};
|
|
56
|
+
return {
|
|
57
|
+
check,
|
|
58
|
+
apply: async (target, log) => {
|
|
59
|
+
const state = await check(target);
|
|
60
|
+
if (state.kind === "ready") return;
|
|
61
|
+
if (!state.installable) throw new Error(state.instruction);
|
|
62
|
+
const majors = await runtimes();
|
|
63
|
+
if (!majors) throw new Error(DOTNET_INSTRUCTION);
|
|
64
|
+
log(`fsautocomplete ${FSAUTOCOMPLETE_VERSION} laden`);
|
|
65
|
+
const archive = await download(fsautocompleteArchiveUrl);
|
|
66
|
+
const prefix = toolPrefix(readZipNames(archive), majors);
|
|
67
|
+
const files = await unpackArchive(archive, prefix, target, "fsautocomplete");
|
|
68
|
+
if (!(await stat(serverFile(target)).catch(() => void 0))?.isFile()) {
|
|
69
|
+
throw new Error(`Das Paket ${PACKAGE} ${FSAUTOCOMPLETE_VERSION} enth\xE4lt ${prefix}fsautocomplete.dll nicht`);
|
|
70
|
+
}
|
|
71
|
+
await writeProvisionStamp(target, FSAUTOCOMPLETE_VERSION);
|
|
72
|
+
log(`${files} Dateien aus ${prefix} nach ${path.join(target, "fsautocomplete")}`);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
var provision = createFsharpProvision();
|
|
77
|
+
export {
|
|
78
|
+
fsharpConfigDescriptors,
|
|
79
|
+
plugin,
|
|
80
|
+
provision
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../plugins/ragents.lsp-fsharp/server/index.ts", "../../../plugins/ragents.lsp-fsharp/provision.ts"],
|
|
4
|
+
"sourcesContent": ["import { fsharpAdapter, FSHARP_SERVER_VARIABLE } from \"@ragents/workspace-executor\";\nimport { createLanguageServerPlugin } from \"@ragents/host/plugin-support/language-server/plugin.js\";\nimport type { PluginModule } from \"@ragents/host/plugin-support/plugin-module.js\";\n\nexport const fsharpConfigDescriptors = [\n { key: FSHARP_SERVER_VARIABLE, source: \"environment\" },\n] as const;\n\nexport const plugin: PluginModule = {\n create: () => createLanguageServerPlugin({\n id: \"ragents.lsp-fsharp\",\n adapter: fsharpAdapter,\n tabLabel: \"F#\",\n configDescriptors: fsharpConfigDescriptors,\n }),\n};\n", "import { stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { FSHARP_SERVER_FILE } from \"@ragents/workspace-executor\";\nimport {\n DOTNET_INSTRUCTION,\n downloadArchive,\n dotnetRuntimeMajors,\n provisionGap,\n provisionReady,\n readProvisionStamp,\n readZipNames,\n unpackArchive,\n writeProvisionStamp,\n type ArchiveDownload,\n type PluginProvision,\n type ProvisionState,\n} from \"@ragents/host/plugin-support/provision.js\";\n\nexport const FSAUTOCOMPLETE_VERSION = \"0.83.0\";\n\nconst FEED = \"https://api.nuget.org/v3/flatcontainer\";\nconst PACKAGE = \"fsautocomplete\";\nconst TOOL_FOLDER = /^tools\\/net(\\d+)\\.0\\/any\\//;\n\nexport const fsautocompleteArchiveUrl = `${FEED}/${PACKAGE}/${FSAUTOCOMPLETE_VERSION}/${PACKAGE}.${FSAUTOCOMPLETE_VERSION}.nupkg`;\n\n/** Das Werkzeugpaket bringt je Zielplattform einen Ordner mit; genommen wird die h\u00F6chste Laufzeit, die es hier gibt. */\nconst toolPrefix = (names: readonly string[], majors: readonly number[]): string => {\n const offered = names\n .map((name) => TOOL_FOLDER.exec(name))\n .filter((match): match is RegExpExecArray => match !== null)\n .map((match) => ({ prefix: match[0], major: Number(match[1]) }));\n const usable = offered.filter((entry) => majors.includes(entry.major)).sort((left, right) => right.major - left.major);\n const chosen = usable[0];\n if (!chosen) {\n throw new Error(`${PACKAGE} ${FSAUTOCOMPLETE_VERSION} bringt nur ${[...new Set(offered.map((entry) => `net${entry.major}.0`))].join(\", \")} mit; `\n + `installiert sind die .NET-Laufzeiten ${majors.join(\", \")}`);\n }\n return chosen.prefix;\n};\n\nexport const createFsharpProvision = (\n download: ArchiveDownload = downloadArchive,\n runtimes: () => Promise<readonly number[] | undefined> = dotnetRuntimeMajors,\n): PluginProvision => {\n const serverFile = (target: string): string => path.join(target, ...FSHARP_SERVER_FILE.split(\"/\"));\n const check = async (target: string): Promise<ProvisionState> => {\n if (await runtimes() === undefined) return provisionGap(\"dotnet\", DOTNET_INSTRUCTION, false);\n const installed = await stat(serverFile(target)).catch(() => undefined);\n if (installed?.isFile() && await readProvisionStamp(target) === FSAUTOCOMPLETE_VERSION) return provisionReady;\n return provisionGap(\"fsautocomplete\", `fsautocomplete ${FSAUTOCOMPLETE_VERSION} fehlt unter ${serverFile(target)}`, true);\n };\n return {\n check,\n apply: async (target, log) => {\n const state = await check(target);\n if (state.kind === \"ready\") return;\n if (!state.installable) throw new Error(state.instruction);\n const majors = await runtimes();\n if (!majors) throw new Error(DOTNET_INSTRUCTION);\n log(`fsautocomplete ${FSAUTOCOMPLETE_VERSION} laden`);\n const archive = await download(fsautocompleteArchiveUrl);\n const prefix = toolPrefix(readZipNames(archive), majors);\n const files = await unpackArchive(archive, prefix, target, \"fsautocomplete\");\n if (!(await stat(serverFile(target)).catch(() => undefined))?.isFile()) {\n throw new Error(`Das Paket ${PACKAGE} ${FSAUTOCOMPLETE_VERSION} enth\u00E4lt ${prefix}fsautocomplete.dll nicht`);\n }\n await writeProvisionStamp(target, FSAUTOCOMPLETE_VERSION);\n log(`${files} Dateien aus ${prefix} nach ${path.join(target, \"fsautocomplete\")}`);\n },\n };\n};\n\nexport const provision = createFsharpProvision();\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
["aria-hidden","className","const","export","font-bold","font-mono","from","function","import","languageServerWebPlugin","lsp-fsharp","return","text-[12px]","true","webPlugin"]
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=(r,t)=>{let n=globalThis.__ragentsHostModules?.[r];if(n===void 0)throw new Error(`Der Host stellt ${r} nicht bereit`);if(!(t in n))throw new Error(`Der Host stellt ${t} aus ${r} nicht bereit; das Bundle ist gegen einen neueren Host gebaut`);return n[t]};var o=e("@ragents/web/language-server/language-server-plugin","languageServerWebPlugin");var a=e("react/jsx-runtime","jsx");var h=o("ragents.lsp-fsharp",s);function s(){return a("span",{"aria-hidden":"true",className:"font-mono text-[12px] font-bold",children:"F#"})}export{h as webPlugin};
|
|
2
|
+
//# sourceMappingURL=/plugins/ragents.lsp-fsharp/web/index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["ragents-host-read:read", "ragents-host-value:@ragents/web/language-server/language-server-plugin#languageServerWebPlugin", "ragents-host-value:react/jsx-runtime#jsx", "../../../plugins/ragents.lsp-fsharp/web/index.tsx"],
|
|
4
|
+
"sourcesContent": ["export const read = (specifier, name) => {\n const module = globalThis[\"__ragentsHostModules\"]?.[specifier];\n if (module === undefined) throw new Error(`Der Host stellt ${specifier} nicht bereit`);\n if (!(name in module)) throw new Error(`Der Host stellt ${name} aus ${specifier} nicht bereit; das Bundle ist gegen einen neueren Host gebaut`);\n return module[name];\n};", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/language-server/language-server-plugin\", \"languageServerWebPlugin\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsx\");\n", "import { languageServerWebPlugin } from \"@ragents/web/language-server/language-server-plugin\";\n\nexport const webPlugin = languageServerWebPlugin(\"ragents.lsp-fsharp\", LanguageIcon);\n\nfunction LanguageIcon() {\n return <span aria-hidden=\"true\" className=\"font-mono text-[12px] font-bold\">F#</span>;\n}\n"],
|
|
5
|
+
"mappings": "AAAO,IAAMA,EAAO,CAACC,EAAWC,IAAS,CACvC,IAAMC,EAAS,WAAW,uBAA0BF,CAAS,EAC7D,GAAIE,IAAW,OAAW,MAAM,IAAI,MAAM,mBAAmBF,CAAS,eAAe,EACrF,GAAI,EAAEC,KAAQC,GAAS,MAAM,IAAI,MAAM,mBAAmBD,CAAI,QAAQD,CAAS,+DAA+D,EAC9I,OAAOE,EAAOD,CAAI,CACpB,ECJA,IAAOE,EAAQC,EAAK,sDAAuD,yBAAyB,ECApG,IAAOC,EAAQC,EAAK,oBAAqB,KAAK,ECCvC,IAAMC,EAAYC,EAAwB,qBAAsBC,CAAY,EAEnF,SAASA,GAAe,CACtB,OAAOC,EAAC,QAAK,cAAY,OAAO,UAAU,kCAAkC,cAAE,CAChF",
|
|
6
|
+
"names": ["read", "specifier", "name", "module", "language_server_plugin_languageServerWebPlugin_default", "read", "jsx_runtime_jsx_default", "read", "webPlugin", "language_server_plugin_languageServerWebPlugin_default", "LanguageIcon", "jsx_runtime_jsx_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": 3,
|
|
3
|
+
"id": "ragents.lsp-roslyn",
|
|
4
|
+
"api": 6,
|
|
5
|
+
"hostNames": {
|
|
6
|
+
"server": {
|
|
7
|
+
"@ragents/host/plugin-support/language-server/plugin": [
|
|
8
|
+
"createLanguageServerPlugin"
|
|
9
|
+
],
|
|
10
|
+
"@ragents/host/plugin-support/plugin-config": [
|
|
11
|
+
"declaredEnvironment"
|
|
12
|
+
],
|
|
13
|
+
"@ragents/host/plugin-support/provision": [
|
|
14
|
+
"DOTNET_INSTRUCTION",
|
|
15
|
+
"dotnetRuntimeMajors",
|
|
16
|
+
"downloadArchive",
|
|
17
|
+
"provisionGap",
|
|
18
|
+
"provisionReady",
|
|
19
|
+
"readProvisionStamp",
|
|
20
|
+
"unpackArchive",
|
|
21
|
+
"writeProvisionStamp"
|
|
22
|
+
],
|
|
23
|
+
"@ragents/host/plugin-support/workspace-sandbox-host": [
|
|
24
|
+
"sandboxServicesToken"
|
|
25
|
+
],
|
|
26
|
+
"@ragents/host/ragents/host-services": [
|
|
27
|
+
"runtimeProviderToken"
|
|
28
|
+
],
|
|
29
|
+
"@ragents/workspace-executor": [
|
|
30
|
+
"ROSLYN_SERVER_FILE",
|
|
31
|
+
"ROSLYN_SERVER_VARIABLE",
|
|
32
|
+
"languageServerOpenOperation",
|
|
33
|
+
"languageServerSolutionsOperation",
|
|
34
|
+
"roslynAdapter"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"web": {
|
|
38
|
+
"@ragents/web/language-server/language-server-plugin": [
|
|
39
|
+
"languageServerWebPlugin"
|
|
40
|
+
],
|
|
41
|
+
"react/jsx-runtime": [
|
|
42
|
+
"jsx"
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"stand": "458216a7329fdae84736358edbb025e59bd5e8e41b9b1319da768a84005e5967",
|
|
47
|
+
"sourceStand": "d1f25b2837ed04e60db489b0eb923d0af395654fee33782eaba93ffcbcaa723a",
|
|
48
|
+
"server": "server/index.js",
|
|
49
|
+
"web": {
|
|
50
|
+
"entry": "web/index.js",
|
|
51
|
+
"classes": "web/classes.json"
|
|
52
|
+
},
|
|
53
|
+
"exports": {
|
|
54
|
+
"server": {},
|
|
55
|
+
"web": {}
|
|
56
|
+
},
|
|
57
|
+
"uses": [
|
|
58
|
+
"ragents.ask"
|
|
59
|
+
],
|
|
60
|
+
"assets": []
|
|
61
|
+
}
|