@schlenkr/ragents 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -11
- package/apps/server/package.json +8 -6
- package/apps/server/src/access-projection.ts +3 -3
- package/apps/server/src/access-service.ts +19 -8
- package/apps/server/src/access-session.ts +6 -2
- package/apps/server/src/api/contracts.ts +19 -18
- package/apps/server/src/api/core-methods.ts +45 -26
- package/apps/server/src/api/delivery.ts +4 -4
- package/apps/server/src/api/reference.ts +1 -1
- package/apps/server/src/api/rights.ts +86 -7
- package/apps/server/src/chat-context.ts +1 -1
- package/apps/server/src/chat-handler.ts +16 -7
- package/apps/server/src/config-file.ts +25 -6
- package/apps/server/src/config.ts +10 -4
- package/apps/server/src/data-directory.ts +1 -1
- package/apps/server/src/folder-install.ts +115 -0
- package/apps/server/src/host-api.json +1257 -0
- package/apps/server/src/host-api.ts +190 -0
- package/apps/server/src/host-resolution-hooks.mjs +50 -1
- package/apps/server/src/host-resolution.ts +26 -1
- package/apps/server/src/host-version.ts +41 -0
- package/apps/server/src/host-web.ts +59 -0
- package/apps/server/src/layout.ts +0 -15
- package/apps/server/src/main.ts +3 -2
- package/apps/server/src/missing-environment.ts +47 -0
- package/apps/server/src/parent-watch.ts +37 -0
- package/apps/server/src/plugin-build/build.ts +650 -0
- package/apps/server/src/plugin-build/host-api-names.ts +185 -0
- package/apps/server/src/plugin-build/plugin-description.ts +118 -0
- package/apps/server/src/plugin-build/typecheck.ts +66 -0
- package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/app-project.ts +16 -15
- package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/client-compiler.ts +4 -4
- package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/client-contracts.ts +4 -4
- package/apps/server/src/plugin-support/actor-programs/client-runtime.ts +27 -0
- package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/contract.ts +3 -3
- package/apps/server/src/plugin-support/actor-programs/service.ts +1 -1
- package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/tailwind.ts +2 -3
- package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/workflow/index.ts +48 -48
- package/apps/server/src/plugin-support/agent-tool.ts +12 -8
- package/apps/server/src/plugin-support/http.ts +1 -1
- package/apps/server/src/plugin-support/language-server/contract.ts +37 -6
- package/apps/server/src/plugin-support/language-server/plugin.ts +18 -8
- package/apps/server/src/plugin-support/language-server/snapshot-method.ts +32 -7
- package/apps/server/src/plugin-support/language-server/tools.ts +59 -15
- package/apps/server/src/plugin-support/model-aliases.ts +77 -0
- package/apps/server/src/plugin-support/model-choice.ts +17 -7
- package/apps/server/src/plugin-support/model-completion.ts +58 -0
- package/apps/server/src/plugin-support/model-upstreams.ts +2 -2
- package/apps/server/src/plugin-support/native-typescript-executor.ts +10 -7
- package/apps/server/src/plugin-support/plugin-config.ts +1 -1
- package/apps/server/src/plugin-support/plugin-folder.ts +4 -1
- package/apps/server/src/plugin-support/plugin-module.ts +1 -1
- package/apps/server/src/plugin-support/plugins-root.ts +6 -10
- package/apps/server/src/plugin-support/process-sandbox.ts +312 -0
- package/apps/server/src/plugin-support/product-model-settings-contract.ts +14 -5
- package/apps/server/src/plugin-support/product-model-settings.ts +10 -9
- package/{plugins/ragents.product/server/relay.ts → apps/server/src/plugin-support/product-relay.ts} +2 -2
- package/apps/server/src/plugin-support/product-start-options.ts +8 -3
- package/apps/server/src/plugin-support/prompt.ts +1 -1
- package/apps/server/src/plugin-support/provision.ts +6 -0
- package/apps/server/src/plugin-support/run-scripts.ts +16 -2
- package/apps/server/src/plugin-support/skills.ts +32 -16
- package/apps/server/src/plugin-support/start-entries-contract.ts +12 -3
- package/apps/server/src/plugin-support/start-options-contract.ts +5 -1
- package/apps/server/src/plugin-support/thinking-level.ts +6 -1
- package/apps/server/src/plugin-support/tool-availability.ts +1 -7
- package/apps/server/src/plugin-support/workspace-ownership.ts +12 -6
- package/apps/server/src/plugin-support/workspace-sandbox-host.ts +184 -37
- package/apps/server/src/profile/bundle-manifest.ts +183 -0
- package/apps/server/src/profile/compose.ts +19 -10
- package/apps/server/src/profile/plugin-discovery.ts +98 -46
- package/apps/server/src/profile/provisioning.ts +30 -26
- package/apps/server/src/profile-target.ts +3 -0
- package/apps/server/src/provider.ts +212 -106
- package/apps/server/src/ragents/actor-chat-history.ts +24 -22
- package/apps/server/src/ragents/chat-projection.ts +25 -14
- package/apps/server/src/ragents/chat-text-positions.ts +4 -4
- package/apps/server/src/ragents/coordinator.ts +27 -1
- package/apps/server/src/ragents/document-store.ts +1 -1
- package/apps/server/src/ragents/engine.ts +68 -43
- package/apps/server/src/ragents/global-chat.ts +26 -13
- package/apps/server/src/ragents/host-services.ts +15 -6
- package/apps/server/src/ragents/journal-chat-events.ts +33 -15
- package/apps/server/src/ragents/product-runtime.ts +1 -1
- package/apps/server/src/ragents/run-owner.ts +18 -0
- package/apps/server/src/ragents/runtime-bridge.ts +1 -1
- package/apps/server/src/ragents/session.ts +184 -85
- package/apps/server/src/ragents/start-option-state.ts +1 -1
- package/apps/server/src/ragents/typescript-tools.ts +35 -27
- package/apps/server/src/ragents/workspace-runtime.ts +74 -8
- package/apps/server/src/rpc/dispatcher.ts +17 -8
- package/apps/server/src/rpc/http-transport.ts +1 -3
- package/apps/server/src/rpc/stdio-transport.ts +1 -1
- package/apps/server/src/run-preparation-contract.ts +1 -1
- package/apps/server/src/run-preparation-input.ts +1 -1
- package/apps/server/src/run-preparation.ts +18 -29
- package/apps/server/src/run-transfer.ts +66 -5
- package/apps/server/src/server.ts +112 -33
- package/apps/server/src/settings.ts +9 -12
- package/apps/server/src/title-compactor.ts +5 -8
- package/apps/server/src/title-settings.ts +3 -3
- package/apps/server/src/web-bundles.ts +79 -0
- package/apps/server/src/web-stylesheet.ts +85 -0
- package/apps/server/tsconfig.json +4 -4
- package/apps/server/tsconfig.plugin.json +58 -0
- package/apps/web/dist/assets/highlighted-body-KPVGNVTW-CFhTJEmH.js +1 -0
- package/apps/web/dist/assets/main-DlzW4t4c.js +6 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-BPn4aV2r.css +1 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-kxkB991i.js +478 -0
- package/apps/web/dist/assets/runPanel-BJEFQ__w.js +21 -0
- package/apps/web/dist/help/guide-access.html +199 -0
- package/apps/web/dist/help/guide-access.md +84 -0
- package/apps/web/dist/help/guide-clients.html +430 -0
- package/apps/web/dist/help/guide-clients.md +346 -0
- package/apps/web/dist/help/guide-distributed.html +325 -0
- package/apps/web/dist/help/guide-distributed.md +230 -0
- package/apps/web/dist/help/guide-functions.html +231 -0
- package/apps/web/dist/help/guide-functions.md +127 -0
- package/apps/web/dist/help/guide-getting-started.html +230 -0
- package/apps/web/dist/help/guide-getting-started.md +123 -0
- package/apps/web/dist/help/guide-ideas.html +183 -0
- package/apps/web/dist/help/guide-ideas.md +71 -0
- package/apps/web/dist/help/guide-plugins.html +450 -0
- package/apps/web/dist/help/guide-plugins.md +341 -0
- package/apps/web/dist/help/guide-programs.html +359 -0
- package/apps/web/dist/help/guide-programs.md +271 -0
- package/apps/web/dist/help/guide-runtime.html +344 -0
- package/apps/web/dist/help/guide-runtime.md +232 -0
- package/apps/web/dist/help/guide.html +133 -0
- package/apps/web/dist/help/guide.md +13 -0
- package/apps/web/dist/help/homepage-bullets.js +12 -0
- package/apps/web/dist/help/homepage-distributed.js +261 -0
- package/apps/web/dist/help/homepage-plugins.js +30 -0
- package/apps/web/dist/help/homepage-scenes.js +368 -0
- package/apps/web/dist/help/homepage-stickers.js +69 -0
- package/apps/web/dist/help/homepage-story-nav.js +11 -0
- package/apps/web/dist/help/homepage-subnav.js +61 -0
- package/apps/web/dist/help/homepage.css +833 -0
- package/apps/web/dist/help/index.html +1167 -0
- package/apps/web/dist/help/mini-app.css +7076 -0
- package/apps/web/dist/help/mini-app.html +15 -0
- package/apps/web/dist/help/mini-app.js +131 -0
- package/apps/web/dist/help/screenshots/release-checklist-vscode.png +0 -0
- package/apps/web/dist/help/screenshots/release-checklist-web.png +0 -0
- package/apps/web/dist/help/scroll-vendor.js +73 -0
- package/apps/web/dist/help/site.css +63 -0
- package/apps/web/dist/help/site.js +103 -0
- package/apps/web/dist/host-web.json +143 -0
- package/apps/web/dist/index.html +15 -0
- package/apps/web/dist/run-panel.html +15 -0
- package/apps/web/package.json +2 -2
- package/apps/web/src/App.tsx +8 -6
- package/apps/web/src/Overview.tsx +5 -5
- package/apps/web/src/PluginActivation.ts +25 -5
- package/apps/web/src/PluginChat.tsx +163 -129
- package/apps/web/src/PluginFailureNotice.tsx +15 -0
- package/apps/web/src/PluginRegistry.tsx +106 -68
- package/apps/web/src/RunPreparationChat.tsx +40 -28
- package/apps/web/src/RunStore.ts +2 -2
- package/apps/web/src/SessionList.tsx +16 -8
- package/apps/web/src/SettingsModal.tsx +37 -37
- package/apps/web/src/StartOptions.tsx +81 -26
- package/apps/web/src/StartSelection.tsx +111 -0
- package/apps/web/src/StartTiles.tsx +73 -0
- package/apps/web/src/{CanvasShortcuts.tsx → SurfaceShortcuts.tsx} +2 -2
- package/apps/web/src/ThemeSettings.tsx +1 -1
- package/apps/web/src/WorkspacePanel.tsx +4 -4
- package/apps/web/src/access-session.ts +4 -1
- package/{plugins/ragents.orchestration/web → apps/web/src}/actor-conversation.ts +3 -3
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/DataTable.tsx +9 -9
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FilePicker.tsx +4 -4
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FlowDiagram.tsx +16 -14
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FlowDiagramRenderer.tsx +3 -3
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Form.tsx +12 -12
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Layout.tsx +1 -1
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/MessageList.tsx +5 -5
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Viewers.tsx +8 -7
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/WorkflowDiagram.tsx +1 -1
- package/apps/web/src/actor-programs/client-ui/chat-contracts.d.ts +64 -0
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/contracts.d.ts +2 -2
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/file-selection.ts +5 -5
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/index.tsx +22 -16
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/layout-contracts.d.ts +1 -1
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/message-list-contracts.d.ts +2 -2
- package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/workflow-diagram-contracts.d.ts +1 -1
- package/apps/web/src/api.ts +45 -22
- package/apps/web/src/chat/QuasselHost.tsx +12 -0
- package/apps/web/src/chat/StoppedActorNotice.tsx +39 -0
- package/apps/web/src/chat/chat-target.ts +14 -5
- package/apps/web/src/chat/requests.ts +13 -5
- package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
- package/apps/web/src/chat/useChat.ts +8 -7
- package/apps/web/src/chat/user-location.ts +1 -1
- package/apps/web/src/chat-view-settings.tsx +49 -0
- package/apps/web/src/host-modules.ts +90 -0
- package/apps/web/src/language-server/api.ts +24 -0
- package/{plugins/ragents.lsp-roslyn/web → apps/web/src/language-server}/language-server-plugin.tsx +133 -6
- package/apps/web/src/main.tsx +4 -2
- package/apps/web/src/offered-machines.ts +11 -0
- package/apps/web/src/panel/ConnectionsPage.tsx +117 -0
- package/apps/web/src/panel/LoginForm.tsx +9 -9
- package/apps/web/src/panel/PanelDialogs.tsx +44 -27
- package/apps/web/src/panel/PanelHeader.tsx +11 -0
- package/apps/web/src/panel/PanelPage.tsx +8 -5
- package/apps/web/src/panel/RunLine.tsx +50 -0
- package/apps/web/src/panel/RunsPage.tsx +84 -0
- package/apps/web/src/panel/StartPage.tsx +163 -0
- package/apps/web/src/panel/connection-state.ts +40 -0
- package/apps/web/src/panel/contract.ts +66 -21
- package/apps/web/src/panel/page-props.ts +6 -0
- package/apps/web/src/plugin-bootstrap.ts +60 -31
- package/{plugins/ragents.product/web → apps/web/src/product}/ModelControl.tsx +3 -3
- package/{plugins/ragents.product/web → apps/web/src/product}/ProductModelSettings.tsx +7 -7
- package/{plugins/ragents.product/web → apps/web/src/product}/SystemPromptControl.tsx +3 -3
- package/{plugins/ragents.product/web → apps/web/src/product}/model-settings.ts +3 -3
- package/{plugins/ragents.product/web → apps/web/src/product}/start-options.tsx +2 -2
- package/apps/web/src/rpc/client.ts +28 -6
- package/apps/web/src/run-panel/RunPanelApp.tsx +334 -0
- package/apps/web/src/{column/ColumnRunHeader.tsx → run-panel/RunPanelHeader.tsx} +2 -2
- package/apps/web/src/{column/ColumnMenu.tsx → run-panel/RunPanelMenu.tsx} +4 -4
- package/apps/web/src/run-panel/RunPanelRail.tsx +38 -0
- package/apps/web/src/run-panel/RunPanelWorkspace.tsx +55 -0
- package/apps/web/src/{column → run-panel}/clipboard.ts +21 -10
- package/apps/web/src/run-panel/host-contract.ts +123 -0
- package/apps/web/src/{column → run-panel}/host.ts +31 -23
- package/apps/web/src/run-panel/input-bridge.ts +75 -0
- package/apps/web/src/run-panel/keyboard.ts +53 -0
- package/apps/web/src/run-panel/run-panel-location.ts +35 -0
- package/apps/web/src/{column → run-panel}/use-session-list.ts +3 -3
- package/apps/web/src/run-panel/workspace-state.ts +43 -0
- package/apps/web/src/{column.tsx → run-panel.tsx} +20 -13
- package/apps/web/src/run-preparation.ts +1 -1
- package/{plugins/ragents.orchestration/web → apps/web/src}/run-view.ts +25 -7
- package/apps/web/src/settings-contributions.ts +16 -18
- package/apps/web/src/title-model-settings.ts +1 -1
- package/apps/web/src/toolLine.ts +1 -1
- package/apps/web/src/ui/ListDetail.tsx +1 -1
- package/apps/web/src/ui/dialog.tsx +5 -5
- package/apps/web/src/ui/frame.css +1 -0
- package/apps/web/src/ui/index.ts +5 -0
- package/apps/web/src/ui/popover.tsx +2 -2
- package/apps/web/src/ui/quassel.css +41 -0
- package/apps/web/src/ui/relative-time.ts +36 -0
- package/apps/web/src/ui/startup-notice.tsx +22 -0
- package/apps/web/src/ui/state-icon.tsx +60 -0
- package/apps/web/src/ui/state-vocabulary.ts +31 -0
- package/apps/web/src/ui/stop-button.tsx +22 -0
- package/apps/web/src/ui/tailwind.css +2 -3
- package/apps/web/src/ui/theme.css +19 -19
- package/apps/web/tsconfig.json +4 -5
- package/apps/web/tsconfig.plugin.json +44 -0
- package/bundles/ragents.activity/ragents-bundle.json +38 -0
- package/bundles/ragents.activity/server/index.js +14 -0
- package/bundles/ragents.activity/server/index.js.map +7 -0
- package/bundles/ragents.activity/web/classes.json +1 -0
- package/bundles/ragents.activity/web/index.js +2 -0
- package/bundles/ragents.activity/web/index.js.map +7 -0
- package/bundles/ragents.actor-programs/prompt.hbs +80 -0
- package/bundles/ragents.actor-programs/ragents-bundle.json +214 -0
- package/bundles/ragents.actor-programs/server/index.js +2071 -0
- package/bundles/ragents.actor-programs/server/index.js.map +7 -0
- package/bundles/ragents.actor-programs/summary.hbs +17 -0
- package/bundles/ragents.actor-programs/web/classes.json +1 -0
- package/bundles/ragents.actor-programs/web/index.js +27 -0
- package/bundles/ragents.actor-programs/web/index.js.map +7 -0
- package/bundles/ragents.ask/ask.hbs +4 -0
- package/bundles/ragents.ask/ragents-bundle.json +97 -0
- package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js +13 -0
- package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +7 -0
- package/bundles/ragents.ask/server/exports/server/contract.js +11 -0
- package/bundles/ragents.ask/server/exports/server/contract.js.map +7 -0
- package/bundles/ragents.ask/server/index.js +279 -0
- package/bundles/ragents.ask/server/index.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-HGFDGTNC.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-HGFDGTNC.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-V7W3QDVS.js +25 -0
- package/bundles/ragents.ask/web/chunks/chunk-V7W3QDVS.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +7 -0
- package/bundles/ragents.ask/web/classes.json +1 -0
- package/bundles/ragents.ask/web/exports/ask-payload.js +2 -0
- package/bundles/ragents.ask/web/exports/ask-payload.js.map +7 -0
- package/bundles/ragents.ask/web/exports/web/QuestionCard.js +2 -0
- package/bundles/ragents.ask/web/exports/web/QuestionCard.js.map +7 -0
- package/bundles/ragents.ask/web/exports/web/api.js +2 -0
- package/bundles/ragents.ask/web/exports/web/api.js.map +7 -0
- package/bundles/ragents.ask/web/index.js +2 -0
- package/bundles/ragents.ask/web/index.js.map +7 -0
- package/bundles/ragents.browser/ragents-bundle.json +53 -0
- package/bundles/ragents.browser/server/chunks/chunk-2GKLLCBE.js +11 -0
- package/bundles/ragents.browser/server/chunks/chunk-2GKLLCBE.js.map +7 -0
- package/bundles/ragents.browser/server/exports/server/contract.js +9 -0
- package/bundles/ragents.browser/server/exports/server/contract.js.map +7 -0
- package/bundles/ragents.browser/server/index.js +479 -0
- package/bundles/ragents.browser/server/index.js.map +7 -0
- package/bundles/ragents.browser/skills/browser-testing/SKILL.md +38 -0
- package/bundles/ragents.documents/prompt.hbs +18 -0
- package/bundles/ragents.documents/ragents-bundle.json +120 -0
- package/bundles/ragents.documents/server/chunks/chunk-QIECRZ7C.js +37 -0
- package/bundles/ragents.documents/server/chunks/chunk-QIECRZ7C.js.map +7 -0
- package/bundles/ragents.documents/server/exports/contract.js +11 -0
- package/bundles/ragents.documents/server/exports/contract.js.map +7 -0
- package/bundles/ragents.documents/server/index.js +290 -0
- package/bundles/ragents.documents/server/index.js.map +7 -0
- package/bundles/ragents.documents/web/classes.json +1 -0
- package/bundles/ragents.documents/web/index.js +26 -0
- package/bundles/ragents.documents/web/index.js.map +7 -0
- package/bundles/ragents.lsp-fsharp/ragents-bundle.json +49 -0
- package/bundles/ragents.lsp-fsharp/server/index.js +82 -0
- package/bundles/ragents.lsp-fsharp/server/index.js.map +7 -0
- package/bundles/ragents.lsp-fsharp/web/classes.json +1 -0
- package/bundles/ragents.lsp-fsharp/web/index.js +2 -0
- package/bundles/ragents.lsp-fsharp/web/index.js.map +7 -0
- package/bundles/ragents.lsp-roslyn/ragents-bundle.json +61 -0
- package/bundles/ragents.lsp-roslyn/server/index.js +208 -0
- package/bundles/ragents.lsp-roslyn/server/index.js.map +7 -0
- package/bundles/ragents.lsp-roslyn/web/classes.json +1 -0
- package/bundles/ragents.lsp-roslyn/web/index.js +2 -0
- package/bundles/ragents.lsp-roslyn/web/index.js.map +7 -0
- package/bundles/ragents.lsp-typescript/ragents-bundle.json +36 -0
- package/bundles/ragents.lsp-typescript/server/index.js +13 -0
- package/bundles/ragents.lsp-typescript/server/index.js.map +7 -0
- package/bundles/ragents.lsp-typescript/web/classes.json +1 -0
- package/bundles/ragents.lsp-typescript/web/index.js +2 -0
- package/bundles/ragents.lsp-typescript/web/index.js.map +7 -0
- package/bundles/ragents.model-relay/ragents-bundle.json +33 -0
- package/bundles/ragents.model-relay/server/index.js +230 -0
- package/bundles/ragents.model-relay/server/index.js.map +7 -0
- package/bundles/ragents.orchestration/orchestration.hbs +106 -0
- package/bundles/ragents.orchestration/ragents-bundle.json +194 -0
- package/bundles/ragents.orchestration/server/index.js +277 -0
- package/bundles/ragents.orchestration/server/index.js.map +7 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-ODMMQGX2.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-ODMMQGX2.js.map +7 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js.map +7 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-OSKPH6SZ.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-OSKPH6SZ.js.map +7 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-XGPPQCZR.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/chunk-XGPPQCZR.js.map +7 -0
- package/bundles/ragents.orchestration/web/classes.json +1 -0
- package/bundles/ragents.orchestration/web/exports/web/program-slot.js +2 -0
- package/bundles/ragents.orchestration/web/exports/web/program-slot.js.map +7 -0
- package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +2 -0
- package/bundles/ragents.orchestration/web/exports/web/surface-entities.js.map +7 -0
- package/bundles/ragents.orchestration/web/exports/web/tile-docking.js +2 -0
- package/bundles/ragents.orchestration/web/exports/web/tile-docking.js.map +7 -0
- package/bundles/ragents.orchestration/web/index.js +51 -0
- package/bundles/ragents.orchestration/web/index.js.map +7 -0
- package/bundles/ragents.overseer/ragents-bundle.json +144 -0
- package/bundles/ragents.overseer/server/index.js +652 -0
- package/bundles/ragents.overseer/server/index.js.map +7 -0
- package/bundles/ragents.overseer/web/classes.json +1 -0
- package/bundles/ragents.overseer/web/index.js +25 -0
- package/bundles/ragents.overseer/web/index.js.map +7 -0
- package/bundles/ragents.processes/ragents-bundle.json +93 -0
- package/bundles/ragents.processes/server/index.js +204 -0
- package/bundles/ragents.processes/server/index.js.map +7 -0
- package/bundles/ragents.processes/web/classes.json +1 -0
- package/bundles/ragents.processes/web/index.js +4 -0
- package/bundles/ragents.processes/web/index.js.map +7 -0
- package/bundles/ragents.product/preamble.hbs +9 -0
- package/bundles/ragents.product/ragents-bundle.json +93 -0
- package/bundles/ragents.product/server/index.js +208 -0
- package/bundles/ragents.product/server/index.js.map +7 -0
- package/bundles/ragents.product/web/classes.json +1 -0
- package/bundles/ragents.product/web/index.js +2 -0
- package/bundles/ragents.product/web/index.js.map +7 -0
- package/bundles/ragents.profile-distribution/ragents-bundle.json +64 -0
- package/bundles/ragents.profile-distribution/server/index.js +241 -0
- package/bundles/ragents.profile-distribution/server/index.js.map +7 -0
- package/bundles/ragents.reference/ragents-bundle.json +39 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +27 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +10 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +80 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +82 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +154 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +9 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +32 -0
- package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +59 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +13 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +9 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +81 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +26 -0
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +34 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +24 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +10 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +5 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/client.tsx +27 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +137 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/state.ts +38 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/view.tsx +42 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/workflow.ts +38 -0
- package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +218 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +12 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/package.json +9 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +60 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +26 -0
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +24 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +18 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +16 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/client.tsx +39 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +15 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/server.ts +14 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +13 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +9 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +65 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +26 -0
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +42 -0
- package/bundles/ragents.reference/run-scripts/word-game/RUN.md +25 -0
- package/bundles/ragents.reference/run-scripts/word-game/package.json +11 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +27 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +23 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +105 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/state.ts +22 -0
- package/bundles/ragents.reference/run-scripts/word-game/src/view.tsx +54 -0
- package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +252 -0
- package/bundles/ragents.reference/server/index.js +16 -0
- package/bundles/ragents.reference/server/index.js.map +7 -0
- package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +12 -0
- package/bundles/ragents.reference/skills/decision-brief/SKILL.md +33 -0
- package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +33 -0
- package/bundles/ragents.reference/web/classes.json +1 -0
- package/bundles/ragents.reference/web/index.js +2 -0
- package/bundles/ragents.reference/web/index.js.map +7 -0
- package/bundles/ragents.todo/ragents-bundle.json +48 -0
- package/bundles/ragents.todo/server/index.js +108 -0
- package/bundles/ragents.todo/server/index.js.map +7 -0
- package/bundles/ragents.todo/web/classes.json +1 -0
- package/bundles/ragents.todo/web/index.js +2 -0
- package/bundles/ragents.todo/web/index.js.map +7 -0
- package/bundles/ragents.transcript/ragents-bundle.json +34 -0
- package/bundles/ragents.transcript/server/index.js +102 -0
- package/bundles/ragents.transcript/server/index.js.map +7 -0
- package/bundles/ragents.watch/ragents-bundle.json +39 -0
- package/bundles/ragents.watch/server/chunks/chunk-FHAM6OML.js +11 -0
- package/bundles/ragents.watch/server/chunks/chunk-FHAM6OML.js.map +7 -0
- package/bundles/ragents.watch/server/chunks/chunk-RPBX3J4P.js +10 -0
- package/bundles/ragents.watch/server/chunks/chunk-RPBX3J4P.js.map +7 -0
- package/bundles/ragents.watch/server/exports/contract.js +9 -0
- package/bundles/ragents.watch/server/exports/contract.js.map +7 -0
- package/bundles/ragents.watch/server/exports/server/contract.js +9 -0
- package/bundles/ragents.watch/server/exports/server/contract.js.map +7 -0
- package/bundles/ragents.watch/server/index.js +482 -0
- package/bundles/ragents.watch/server/index.js.map +7 -0
- package/bundles/ragents.workspace/prompt.hbs +7 -0
- package/bundles/ragents.workspace/ragents-bundle.json +148 -0
- package/bundles/ragents.workspace/server/index.js +1049 -0
- package/bundles/ragents.workspace/server/index.js.map +7 -0
- package/bundles/ragents.workspace/web/classes.json +1 -0
- package/bundles/ragents.workspace/web/index.js +39 -0
- package/bundles/ragents.workspace/web/index.js.map +7 -0
- package/package.json +4 -15
- package/packages/agent/dist/core/agent-settings.d.ts +27 -0
- package/packages/agent/dist/core/compaction/compaction.d.ts +82 -0
- package/packages/agent/dist/core/compaction/index.d.ts +6 -0
- package/packages/agent/dist/core/compaction/utils.d.ts +39 -0
- package/packages/agent/dist/core/context-log.d.ts +25 -0
- package/packages/agent/dist/core/messages.d.ts +30 -0
- package/packages/agent/dist/core/model-runtime.d.ts +32 -0
- package/packages/agent/dist/core/provider-composer.d.ts +25 -0
- package/packages/agent/dist/core/skills.d.ts +20 -0
- package/packages/agent/dist/core/tool-definition.d.ts +17 -0
- package/packages/agent/dist/core/tools/bash.d.ts +58 -0
- package/packages/agent/dist/core/tools/edit-diff.d.ts +98 -0
- package/packages/agent/dist/core/tools/edit.d.ts +41 -0
- package/packages/agent/dist/core/tools/file-mutation-queue.d.ts +6 -0
- package/packages/agent/dist/core/tools/index.d.ts +5 -0
- package/packages/agent/dist/core/tools/output-accumulator.d.ts +58 -0
- package/packages/agent/dist/core/tools/path-utils.d.ts +8 -0
- package/packages/agent/dist/core/tools/read.d.ts +33 -0
- package/packages/agent/dist/core/tools/truncate.d.ts +61 -0
- package/packages/agent/dist/core/tools/write.d.ts +23 -0
- package/packages/agent/dist/index.d.ts +12 -0
- package/packages/agent/dist/loop/agent-loop.d.ts +13 -0
- package/packages/agent/dist/loop/agent.d.ts +99 -0
- package/packages/agent/dist/loop/index.d.ts +5 -0
- package/packages/agent/dist/loop/types.d.ts +333 -0
- package/packages/agent/dist/loop/uuid.d.ts +2 -0
- package/packages/agent/dist/utils/child-process.d.ts +17 -0
- package/packages/agent/dist/utils/exif-orientation.d.ts +5 -0
- package/packages/agent/dist/utils/frontmatter.d.ts +8 -0
- package/packages/agent/dist/utils/image-convert.d.ts +2 -0
- package/packages/agent/dist/utils/image-process.d.ts +18 -0
- package/packages/agent/dist/utils/image-resize-core.d.ts +30 -0
- package/packages/agent/dist/utils/image-resize-worker.d.ts +2 -0
- package/packages/agent/dist/utils/image-resize.d.ts +16 -0
- package/packages/agent/dist/utils/mime.d.ts +3 -0
- package/packages/agent/dist/utils/paths.d.ts +15 -0
- package/packages/agent/dist/utils/photon.d.ts +21 -0
- package/packages/agent/dist/utils/shell.d.ts +17 -0
- package/packages/agent/dist/utils/sleep.d.ts +5 -0
- package/packages/agent/package.json +3 -32
- package/packages/agent/src/core/agent-settings.ts +20 -0
- package/packages/agent/src/core/compaction/compaction.ts +53 -208
- package/packages/agent/src/core/compaction/index.ts +0 -1
- package/packages/agent/src/core/compaction/utils.ts +2 -2
- package/packages/agent/src/core/context-log.ts +49 -0
- package/packages/agent/src/core/messages.ts +9 -119
- package/packages/agent/src/core/model-runtime.ts +109 -467
- package/packages/agent/src/core/provider-composer.ts +21 -451
- package/packages/agent/src/core/skills.ts +8 -440
- package/packages/agent/src/core/tool-definition.ts +29 -0
- package/packages/agent/src/core/tools/bash.ts +22 -41
- package/packages/agent/src/core/tools/edit-diff.ts +0 -60
- package/packages/agent/src/core/tools/edit.ts +4 -29
- package/packages/agent/src/core/tools/index.ts +4 -130
- package/packages/agent/src/core/tools/output-accumulator.ts +33 -5
- package/packages/agent/src/core/tools/path-utils.ts +2 -49
- package/packages/agent/src/core/tools/read.ts +6 -29
- package/packages/agent/src/core/tools/truncate.ts +0 -15
- package/packages/agent/src/core/tools/write.ts +2 -13
- package/packages/agent/src/index.ts +23 -270
- package/packages/{agent-core/src → agent/src/loop}/agent-loop.ts +128 -275
- package/packages/{agent-core/src → agent/src/loop}/agent.ts +20 -166
- package/packages/{agent-core/src → agent/src/loop}/types.ts +6 -105
- package/packages/agent/src/utils/child-process.ts +0 -13
- package/packages/agent/src/utils/image-convert.ts +0 -25
- package/packages/agent/src/utils/paths.ts +1 -71
- package/packages/agent/src/utils/shell.ts +13 -156
- package/packages/ai/dist/api/ai-sdk-messages.d.ts +9 -0
- package/packages/ai/dist/api/ai-sdk-transport.d.ts +13 -0
- package/packages/ai/dist/api/ai-sdk.d.ts +15 -0
- package/packages/ai/dist/api/ai-sdk.lazy.d.ts +3 -0
- package/packages/ai/dist/api/lazy.d.ts +15 -0
- package/packages/ai/dist/api/simple-options.d.ts +4 -0
- package/packages/ai/dist/api/transform-messages.d.ts +8 -0
- package/packages/ai/dist/api-registry.d.ts +25 -0
- package/packages/ai/dist/auth/context.d.ts +4 -0
- package/packages/ai/dist/auth/helpers.d.ts +4 -0
- package/packages/ai/dist/auth/resolve.d.ts +19 -0
- package/packages/ai/dist/auth/types.d.ts +51 -0
- package/packages/ai/dist/env-api-keys.d.ts +8 -0
- package/packages/ai/dist/index.d.ts +19 -0
- package/packages/ai/dist/models.d.ts +71 -0
- package/packages/ai/dist/models.generated.d.ts +8021 -0
- package/packages/ai/dist/providers/all.d.ts +15 -0
- package/packages/ai/dist/providers/faux.d.ts +97 -0
- package/packages/ai/dist/providers/openrouter.d.ts +3 -0
- package/packages/ai/dist/providers/openrouter.models.d.ts +8019 -0
- package/packages/ai/dist/types.d.ts +543 -0
- package/packages/ai/dist/utils/diagnostics.d.ts +13 -0
- package/packages/ai/dist/utils/error-body.d.ts +25 -0
- package/packages/ai/dist/utils/estimate.d.ts +17 -0
- package/packages/ai/dist/utils/event-stream.d.ts +21 -0
- package/packages/ai/dist/utils/headers.d.ts +2 -0
- package/packages/ai/dist/utils/json-parse.d.ts +16 -0
- package/packages/ai/dist/utils/overflow.d.ts +54 -0
- package/packages/ai/dist/utils/provider-env.d.ts +7 -0
- package/packages/ai/dist/utils/retry.d.ts +12 -0
- package/packages/ai/dist/utils/sanitize-unicode.d.ts +22 -0
- package/packages/ai/dist/utils/typebox-helpers.d.ts +17 -0
- package/packages/ai/dist/utils/validation.d.ts +10 -0
- package/packages/ai/package.json +2 -6
- package/packages/ai/src/api/ai-sdk-messages.ts +15 -10
- package/packages/ai/src/api/ai-sdk-transport.ts +2 -2
- package/packages/ai/src/api/ai-sdk.ts +11 -0
- package/packages/ai/src/api/simple-options.ts +0 -34
- package/packages/ai/src/api/transform-messages.ts +1 -1
- package/packages/ai/src/api-registry.ts +1 -12
- package/packages/ai/src/auth/context.ts +1 -30
- package/packages/ai/src/auth/helpers.ts +3 -34
- package/packages/ai/src/auth/resolve.ts +10 -108
- package/packages/ai/src/auth/types.ts +9 -176
- package/packages/ai/src/index.ts +1 -13
- package/packages/ai/src/models.ts +41 -407
- package/packages/ai/src/providers/all.ts +3 -31
- package/packages/ai/src/providers/openrouter.models.ts +14 -0
- package/packages/ai/src/types.ts +2 -104
- package/packages/ai/src/utils/diagnostics.ts +0 -32
- package/packages/ai/src/utils/headers.ts +0 -11
- package/packages/ai/src/utils/overflow.ts +0 -7
- package/packages/ai/src/utils/retry.ts +14 -0
- package/packages/ai/src/utils/validation.ts +0 -15
- package/packages/ragents/package.json +3 -6
- package/packages/ragents/src/access.ts +2 -1
- package/packages/ragents/src/agents/actor-input.ts +29 -18
- package/packages/ragents/src/agents/catalog.ts +3 -3
- package/packages/ragents/src/agents/model-context.ts +360 -0
- package/packages/ragents/src/agents/plugins.ts +0 -4
- package/packages/ragents/src/agents/scheduler.ts +233 -83
- package/packages/ragents/src/agents/schemas.ts +1 -36
- package/packages/ragents/src/agents/tool-orientation.ts +1 -1
- package/packages/ragents/src/agents/tools.ts +74 -75
- package/packages/ragents/src/agents/toolset.ts +51 -24
- package/packages/ragents/src/agents/turn.ts +2 -14
- package/packages/ragents/src/agents/workspaces.ts +12 -0
- package/packages/ragents/src/domain/actor-reference.ts +22 -0
- package/packages/ragents/src/domain/driver.ts +0 -9
- package/packages/ragents/src/domain/event-semantics.ts +111 -72
- package/packages/ragents/src/domain/event-validation.ts +188 -21
- package/packages/ragents/src/domain/events.ts +91 -7
- package/packages/ragents/src/domain/json.ts +2 -0
- package/packages/ragents/src/domain/model.ts +42 -18
- package/packages/ragents/src/domain/projection.ts +52 -15
- package/packages/ragents/src/domain/schema-errors.ts +3 -3
- package/packages/ragents/src/domain/tool-result-text.ts +9 -0
- package/packages/ragents/src/drivers/agent-hooks.ts +27 -0
- package/packages/ragents/src/drivers/agent-runtime.ts +137 -1020
- package/packages/ragents/src/drivers/agent-turn.ts +735 -0
- package/packages/ragents/src/drivers/agent.ts +13 -26
- package/packages/ragents/src/drivers/attachments.ts +4 -24
- package/packages/ragents/src/drivers/skill-preload.ts +56 -78
- package/packages/ragents/src/drivers/types.ts +39 -6
- package/packages/ragents/src/http/contracts.ts +16 -3
- package/packages/ragents/src/http/methods.ts +32 -33
- package/packages/ragents/src/index.ts +12 -21
- package/packages/ragents/src/plugin-host.ts +150 -105
- package/packages/ragents/src/plugin-types.ts +86 -23
- package/packages/ragents/src/rpc/peer.ts +6 -0
- package/packages/ragents/src/runtime/decisions/actions.ts +40 -37
- package/packages/ragents/src/runtime/decisions/actors.ts +100 -51
- package/packages/ragents/src/runtime/decisions/artifacts.ts +2 -2
- package/packages/ragents/src/runtime/decisions/inputs.ts +3 -3
- package/packages/ragents/src/runtime/decisions/subscriptions.ts +9 -7
- package/packages/ragents/src/runtime/decisions/turns.ts +101 -9
- package/packages/ragents/src/runtime/guards.ts +12 -21
- package/packages/ragents/src/runtime/journal-storage.ts +8 -3
- package/packages/ragents/src/runtime/journal.ts +36 -1
- package/packages/ragents/src/runtime/orchestration.ts +167 -19
- package/packages/ragents/src/runtime/serial-queue.ts +24 -0
- package/packages/ragents/src/runtime/stop.ts +19 -44
- package/packages/ragents/src/script/mediators.ts +4 -5
- package/packages/ragents/src/typescript/index.ts +2 -0
- package/packages/ragents/src/typescript/run-context.ts +10 -8
- package/packages/ragents/src/typescript/snippet.ts +7 -6
- package/packages/workspace-executor/package.json +2 -2
- package/packages/workspace-executor/src/bash-launch.ts +45 -0
- package/packages/workspace-executor/src/browser/contract.ts +71 -0
- package/packages/workspace-executor/src/browser/module.ts +74 -0
- package/packages/workspace-executor/src/browser/pages.ts +298 -0
- package/packages/workspace-executor/src/browser/playwright.ts +52 -0
- package/packages/workspace-executor/src/commands.ts +170 -0
- package/packages/workspace-executor/src/context.ts +34 -6
- package/packages/workspace-executor/src/errors.ts +12 -0
- package/packages/workspace-executor/src/executor.ts +62 -104
- package/packages/workspace-executor/src/files.ts +287 -0
- package/packages/workspace-executor/src/index.ts +82 -18
- package/packages/workspace-executor/src/language-server/adapters/roslyn.ts +1 -0
- package/packages/workspace-executor/src/language-server/contract.ts +14 -0
- package/packages/workspace-executor/src/language-server/host.ts +82 -26
- package/packages/workspace-executor/src/language-server/module.ts +107 -0
- package/packages/workspace-executor/src/language-server/workspace-solutions.ts +90 -0
- package/packages/workspace-executor/src/managed-process.ts +1 -1
- package/packages/workspace-executor/src/module.ts +35 -0
- package/packages/workspace-executor/src/modules.ts +25 -0
- package/packages/workspace-executor/src/paths.ts +57 -5
- package/packages/workspace-executor/src/process-sandbox.ts +16 -0
- package/packages/workspace-executor/src/processes/module.ts +48 -0
- package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/process-table.ts +80 -57
- package/packages/workspace-executor/src/processes/scanner.ts +106 -0
- package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/snapshot.ts +23 -11
- package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/terminator.ts +19 -20
- package/packages/workspace-executor/src/run-folders.ts +33 -0
- package/packages/workspace-executor/src/safe-environment.ts +14 -0
- package/packages/workspace-executor/src/sandbox-tools.ts +212 -43
- package/packages/workspace-executor/src/shell-platform.ts +2 -2
- package/plugins/package.json +1 -1
- package/plugins/ragents.activity/ragents-plugin.json +3 -0
- package/plugins/ragents.activity/server/index.ts +2 -2
- package/plugins/ragents.activity/web/ActivityHeader.tsx +2 -2
- package/plugins/ragents.activity/web/activity.ts +1 -1
- package/plugins/ragents.activity/web/index.tsx +1 -1
- package/plugins/ragents.actor-programs/prompt.hbs +8 -7
- package/plugins/ragents.actor-programs/ragents-plugin.json +3 -0
- package/plugins/ragents.actor-programs/server/agent-tools.ts +3 -3
- package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/capability-resolver.ts +1 -16
- package/plugins/ragents.actor-programs/server/controls-template.ts +5 -18
- package/plugins/ragents.actor-programs/server/controls-tool.ts +8 -11
- package/plugins/ragents.actor-programs/server/index.ts +10 -10
- package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/limits.ts +4 -4
- package/plugins/ragents.actor-programs/server/methods.ts +2 -2
- package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/operations.ts +2 -4
- package/plugins/ragents.actor-programs/server/project-diagnostics.ts +65 -70
- package/plugins/ragents.actor-programs/server/prompts.ts +4 -4
- package/plugins/ragents.actor-programs/server/routes.ts +14 -8
- package/plugins/ragents.actor-programs/server/runtime.ts +132 -55
- package/plugins/ragents.actor-programs/server/templates.ts +35 -80
- package/plugins/ragents.actor-programs/server/test-report.ts +106 -0
- package/plugins/ragents.actor-programs/server/tool-contributor.ts +4 -4
- package/plugins/ragents.actor-programs/summary.hbs +1 -1
- package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +15 -10
- package/plugins/ragents.actor-programs/web/AppsPanel.tsx +47 -30
- package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +15 -17
- package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +3 -3
- package/plugins/ragents.actor-programs/web/FunctionForm.tsx +3 -3
- package/plugins/ragents.actor-programs/web/ProgramSource.tsx +12 -3
- package/plugins/ragents.actor-programs/web/api.ts +5 -5
- package/plugins/ragents.actor-programs/web/bridge.ts +2 -3
- package/plugins/ragents.actor-programs/web/chat-state.ts +9 -8
- package/plugins/ragents.actor-programs/web/index.tsx +7 -17
- package/plugins/ragents.actor-programs/web/program-state.ts +3 -3
- package/plugins/ragents.actor-programs/web/state-revision.ts +2 -2
- package/plugins/ragents.ask/ask-payload.ts +25 -0
- package/plugins/ragents.ask/contract.ts +2 -2
- package/plugins/ragents.ask/ragents-plugin.json +7 -0
- package/plugins/ragents.ask/server/answer-method.ts +1 -1
- package/plugins/ragents.ask/server/ask-service.ts +43 -19
- package/plugins/ragents.ask/server/ask-tool.ts +2 -2
- package/plugins/ragents.ask/server/contract.ts +9 -1
- package/plugins/ragents.ask/server/index.ts +8 -10
- package/plugins/ragents.ask/server/tool-contributor.ts +3 -3
- package/plugins/ragents.ask/web/AskActionView.tsx +36 -0
- package/{apps/web/src/chat → plugins/ragents.ask/web}/QuestionCard.tsx +7 -5
- package/plugins/ragents.ask/web/QuestionSection.tsx +22 -21
- package/plugins/ragents.ask/web/api.ts +1 -1
- package/plugins/ragents.ask/web/index.tsx +11 -8
- package/plugins/ragents.browser/provision.ts +9 -8
- package/plugins/ragents.browser/ragents-plugin.json +6 -0
- package/plugins/ragents.browser/server/browser.ts +165 -286
- package/plugins/ragents.browser/server/contract.ts +8 -19
- package/plugins/ragents.browser/server/index.ts +8 -7
- package/plugins/ragents.browser/server/tools.ts +29 -37
- package/plugins/ragents.browser/skills/browser-testing/SKILL.md +3 -1
- package/plugins/ragents.documents/contract.ts +4 -2
- package/plugins/ragents.documents/ragents-plugin.json +6 -0
- package/plugins/ragents.documents/server/config.ts +1 -1
- package/plugins/ragents.documents/server/document-write-tool.ts +2 -2
- package/plugins/ragents.documents/server/files-route.ts +2 -3
- package/plugins/ragents.documents/server/index.ts +10 -11
- package/plugins/ragents.documents/server/show-document-tool.ts +2 -2
- package/plugins/ragents.documents/server/store.ts +3 -3
- package/plugins/ragents.documents/server/tool-contributor.ts +3 -3
- package/plugins/ragents.documents/web/DocumentViewer.tsx +5 -6
- package/plugins/ragents.documents/web/api.ts +1 -1
- package/plugins/ragents.documents/web/index.tsx +4 -4
- package/plugins/ragents.lsp-fsharp/provision.ts +2 -2
- package/plugins/ragents.lsp-fsharp/ragents-plugin.json +3 -0
- package/plugins/ragents.lsp-fsharp/server/index.ts +3 -3
- package/plugins/ragents.lsp-fsharp/web/index.tsx +1 -1
- package/plugins/ragents.lsp-roslyn/provision.ts +2 -2
- package/plugins/ragents.lsp-roslyn/ragents-plugin.json +3 -0
- package/plugins/ragents.lsp-roslyn/server/index.ts +47 -8
- package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +145 -0
- package/plugins/ragents.lsp-roslyn/web/index.tsx +1 -1
- package/plugins/ragents.lsp-typescript/ragents-plugin.json +3 -0
- package/plugins/ragents.lsp-typescript/server/index.ts +3 -3
- package/plugins/ragents.lsp-typescript/web/index.tsx +1 -1
- package/plugins/ragents.model-relay/ragents-plugin.json +3 -0
- package/plugins/ragents.model-relay/server/config.ts +5 -31
- package/plugins/ragents.model-relay/server/index.ts +5 -6
- package/plugins/ragents.model-relay/server/relay.ts +8 -9
- package/plugins/ragents.orchestration/contract.ts +13 -14
- package/plugins/ragents.orchestration/orchestration.hbs +4 -3
- package/plugins/ragents.orchestration/ragents-plugin.json +6 -0
- package/plugins/ragents.orchestration/server/index.ts +13 -16
- package/plugins/ragents.orchestration/server/run-stop-tool.ts +4 -4
- package/plugins/ragents.orchestration/server/{canvas-tool.ts → surface-tool.ts} +42 -43
- package/plugins/ragents.orchestration/surface.hbs +34 -0
- package/plugins/ragents.orchestration/tiled-layout.ts +16 -16
- package/plugins/ragents.orchestration/web/ActorChat.tsx +16 -14
- package/plugins/ragents.orchestration/web/ActorChatControls.tsx +23 -26
- package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +5 -6
- package/plugins/ragents.orchestration/web/ActorPopout.tsx +7 -5
- package/plugins/ragents.orchestration/web/ActorShortcut.tsx +16 -16
- package/plugins/ragents.orchestration/web/{ActorCanvasControls.tsx → ActorSurfaceControls.tsx} +23 -28
- package/plugins/ragents.orchestration/web/ActorTile.tsx +2 -2
- package/plugins/ragents.orchestration/web/Center.tsx +47 -55
- package/plugins/ragents.orchestration/web/DocumentsSection.tsx +4 -4
- package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +7 -7
- package/plugins/ragents.orchestration/web/FlowInspector.tsx +24 -42
- package/plugins/ragents.orchestration/web/JournalStatus.tsx +8 -8
- package/plugins/ragents.orchestration/web/MaterialBody.tsx +5 -5
- package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
- package/plugins/ragents.orchestration/web/SurfaceStartup.tsx +8 -0
- package/plugins/ragents.orchestration/web/{CanvasTiles.tsx → SurfaceTiles.tsx} +18 -18
- package/plugins/ragents.orchestration/web/{TiledCanvas.tsx → TiledSurface.tsx} +22 -22
- package/plugins/ragents.orchestration/web/actor-header-settings.ts +2 -2
- package/plugins/ragents.orchestration/web/api.ts +4 -10
- package/plugins/ragents.orchestration/web/constants.ts +0 -1
- package/plugins/ragents.orchestration/web/executions.ts +3 -3
- package/plugins/ragents.orchestration/web/index.tsx +19 -124
- package/plugins/ragents.orchestration/web/program-slot.ts +14 -0
- package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +95 -0
- package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +109 -0
- package/plugins/ragents.orchestration/web/{column/RunColumn.tsx → run-panel/RunPanel.tsx} +211 -83
- package/plugins/ragents.orchestration/web/{column/ColumnSettings.tsx → run-panel/RunPanelSettings.tsx} +13 -13
- package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +165 -0
- package/plugins/ragents.orchestration/web/{column/column-actors.ts → run-panel/run-panel-actors.ts} +14 -13
- package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +47 -0
- package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +30 -0
- package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +71 -0
- package/plugins/ragents.orchestration/web/{column → run-panel}/sheet-status.ts +4 -4
- package/plugins/ragents.orchestration/web/{canvas-stage.ts → surface-entities.ts} +2 -2
- package/plugins/ragents.orchestration/web/{canvas-startup.ts → surface-startup.ts} +7 -10
- package/plugins/ragents.orchestration/web/surface-view-settings.ts +42 -0
- package/plugins/ragents.orchestration/web/tile-docking.ts +14 -14
- package/plugins/ragents.orchestration/web/tiled-view-settings.ts +26 -26
- package/plugins/ragents.overseer/contract.ts +20 -14
- package/plugins/ragents.overseer/ragents-plugin.json +3 -0
- package/plugins/ragents.overseer/server/api.ts +34 -23
- package/plugins/ragents.overseer/server/coordinator-prompt.ts +3 -3
- package/plugins/ragents.overseer/server/coordinator.ts +19 -0
- package/plugins/ragents.overseer/server/index.ts +39 -27
- package/plugins/ragents.overseer/server/orientation.ts +4 -5
- package/plugins/ragents.overseer/server/quick-answer.ts +5 -4
- package/plugins/ragents.overseer/server/reset-method.ts +4 -3
- package/plugins/ragents.overseer/server/run-directory.ts +5 -5
- package/plugins/ragents.overseer/server/settings-method.ts +1 -1
- package/plugins/ragents.overseer/server/settings.ts +6 -6
- package/plugins/ragents.overseer/server/user-location.ts +20 -19
- package/plugins/ragents.overseer/web/ModelSettings.tsx +4 -4
- package/plugins/ragents.overseer/web/chat-display.ts +1 -1
- package/plugins/ragents.overseer/web/index.tsx +51 -26
- package/plugins/ragents.overseer/web/model-settings.ts +1 -1
- package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
- package/plugins/ragents.processes/contract.ts +5 -5
- package/plugins/ragents.processes/ragents-plugin.json +3 -0
- package/plugins/ragents.processes/server/index.ts +13 -19
- package/plugins/ragents.processes/server/methods.ts +18 -20
- package/plugins/ragents.processes/server/observer.ts +64 -104
- package/plugins/ragents.processes/server/run-processes.ts +24 -0
- package/plugins/ragents.processes/web/ProcessHeader.tsx +13 -16
- package/plugins/ragents.processes/web/index.tsx +2 -1
- package/plugins/ragents.processes/web/processes.ts +1 -1
- package/plugins/ragents.product/ragents-plugin.json +3 -0
- package/plugins/ragents.product/server/config.ts +12 -13
- package/plugins/ragents.product/server/index.ts +15 -16
- package/plugins/ragents.product/server/runtime.ts +2 -2
- package/plugins/ragents.product/web/index.tsx +3 -3
- package/plugins/ragents.profile-distribution/contract.ts +6 -9
- package/plugins/ragents.profile-distribution/ragents-plugin.json +3 -0
- package/plugins/ragents.profile-distribution/server/archive.ts +26 -51
- package/plugins/ragents.profile-distribution/server/config.ts +2 -2
- package/plugins/ragents.profile-distribution/server/index.ts +9 -16
- package/plugins/ragents.reference/examples.ts +1 -1
- package/plugins/ragents.reference/ragents-plugin.json +3 -0
- package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +2 -2
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +1 -1
- package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +4 -4
- package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +2 -2
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/state.ts +2 -2
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/view.tsx +11 -11
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/workflow.ts +15 -15
- package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +4 -9
- package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +1 -1
- package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +2 -2
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/client.tsx +6 -6
- package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +3 -3
- package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/RUN.md +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +1 -2
- package/plugins/ragents.reference/run-scripts/word-game/src/state.ts +6 -6
- package/plugins/ragents.reference/run-scripts/word-game/src/view.tsx +14 -14
- package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +7 -8
- package/plugins/ragents.reference/server/index.ts +2 -2
- package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +1 -1
- package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +1 -1
- package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +1 -1
- package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +1 -1
- package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +2 -2
- package/plugins/ragents.reference/skills/decision-brief/SKILL.md +2 -2
- package/plugins/ragents.reference/walkthroughs.ts +19 -19
- package/plugins/ragents.reference/web/StartGuides.tsx +2 -2
- package/plugins/ragents.reference/web/index.tsx +1 -1
- package/plugins/ragents.todo/ragents-plugin.json +3 -0
- package/plugins/ragents.todo/server/index.ts +2 -2
- package/plugins/ragents.todo/server/todo-tool.ts +4 -5
- package/plugins/ragents.todo/server/tool-contributor.ts +2 -2
- package/plugins/ragents.todo/web/TodoSection.tsx +3 -3
- package/plugins/ragents.todo/web/index.ts +1 -1
- package/plugins/ragents.transcript/ragents-plugin.json +3 -0
- package/plugins/ragents.transcript/server/index.ts +4 -4
- package/plugins/ragents.transcript/server/transcript.ts +2 -3
- package/plugins/ragents.watch/ragents-plugin.json +6 -0
- package/plugins/ragents.watch/server/condition.ts +2 -2
- package/plugins/ragents.watch/server/contract.ts +1 -1
- package/plugins/ragents.watch/server/functions.ts +3 -3
- package/plugins/ragents.watch/server/index.ts +3 -3
- package/plugins/ragents.watch/server/observation.ts +6 -6
- package/plugins/ragents.watch/server/service.ts +5 -5
- package/plugins/ragents.workspace/client/workspace-client.ts +129 -58
- package/plugins/ragents.workspace/contract.ts +98 -35
- package/plugins/ragents.workspace/prompt.hbs +1 -8
- package/plugins/ragents.workspace/ragents-plugin.json +3 -0
- package/plugins/ragents.workspace/server/binding.ts +122 -39
- package/plugins/ragents.workspace/server/browse-route.ts +96 -103
- package/plugins/ragents.workspace/server/clients.ts +236 -68
- package/plugins/ragents.workspace/server/config.ts +30 -0
- package/plugins/ragents.workspace/server/index.ts +61 -26
- package/plugins/ragents.workspace/server/runtime.ts +271 -46
- package/{apps/server/src/plugin-support → plugins/ragents.workspace/server}/shell-platform.ts +3 -5
- package/{apps/server/src/plugin-support → plugins/ragents.workspace/server}/workspace-tool-naming.ts +7 -1
- package/plugins/ragents.workspace/web/FileBrowser.tsx +11 -8
- package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +115 -61
- package/plugins/ragents.workspace/web/api.ts +1 -1
- package/plugins/ragents.workspace/web/index.tsx +1 -1
- package/ragents.config.core.ts +2 -7
- package/ragents.config.showcase.ts +2 -5
- package/scripts/agent/agent-cli.ts +265 -107
- package/scripts/agent/journal.ts +8 -4
- package/scripts/agent/turn-control.ts +19 -0
- package/scripts/package/build-package.ts +68 -13
- package/scripts/package/ragents.mjs +4 -2
- package/scripts/plugin/build-builtin-plugins.ts +52 -0
- package/scripts/plugin/plugin-cli.ts +99 -0
- package/scripts/provision/run-provision.ts +20 -18
- package/scripts/remote/connect.ts +75 -53
- package/scripts/remote/start.ts +2 -3
- package/scripts/workspace-client/run-workspace-client.ts +15 -9
- package/apps/server/agent-home/settings.json +0 -3
- package/apps/server/src/chat-attachments.ts +0 -52
- package/apps/server/src/chat-events.ts +0 -185
- package/apps/server/src/plugin-support/asset-path.ts +0 -4
- package/apps/server/src/profile/plugin-list.ts +0 -19
- package/apps/server/src/web-build.ts +0 -82
- package/apps/web/column.html +0 -12
- package/apps/web/index.html +0 -12
- package/apps/web/src/StartSurface.tsx +0 -161
- package/apps/web/src/chat/ChatInputToolbar.tsx +0 -488
- package/apps/web/src/chat/ChatMessages.tsx +0 -666
- package/apps/web/src/chat/ChatPanel.tsx +0 -61
- package/apps/web/src/chat/DetailModeSwitch.tsx +0 -58
- package/apps/web/src/chat/Markdown.tsx +0 -104
- package/apps/web/src/chat/StepPopover.tsx +0 -82
- package/apps/web/src/chat/WorkingScenes.tsx +0 -235
- package/apps/web/src/chat/attachments.ts +0 -53
- package/apps/web/src/chat/chat-scroll.ts +0 -41
- package/apps/web/src/chat/texts.ts +0 -61
- package/apps/web/src/chat/types.ts +0 -26
- package/apps/web/src/column/ColumnApp.tsx +0 -234
- package/apps/web/src/column/column-location.ts +0 -30
- package/apps/web/src/column/host-contract.ts +0 -93
- package/apps/web/src/panel/OverviewPage.tsx +0 -215
- package/apps/web/src/panel/SettingsPage.tsx +0 -98
- package/apps/web/src/panel/target-state.ts +0 -78
- package/apps/web/src/plugin-discovery.ts +0 -5
- package/apps/web/src/virtual-plugins.d.ts +0 -3
- package/apps/web/vite.config.ts +0 -140
- package/packages/agent/src/config.ts +0 -161
- package/packages/agent/src/core/agent-session-runtime.ts +0 -548
- package/packages/agent/src/core/agent-session-services.ts +0 -224
- package/packages/agent/src/core/agent-session.ts +0 -3357
- package/packages/agent/src/core/auth-guidance.ts +0 -18
- package/packages/agent/src/core/auth-storage.ts +0 -271
- package/packages/agent/src/core/bash-executor.ts +0 -156
- package/packages/agent/src/core/compaction/branch-summarization.ts +0 -372
- package/packages/agent/src/core/defaults.ts +0 -3
- package/packages/agent/src/core/diagnostics.ts +0 -15
- package/packages/agent/src/core/event-bus.ts +0 -33
- package/packages/agent/src/core/exec.ts +0 -107
- package/packages/agent/src/core/experimental.ts +0 -3
- package/packages/agent/src/core/extensions/index.ts +0 -149
- package/packages/agent/src/core/extensions/loader.ts +0 -709
- package/packages/agent/src/core/extensions/runner.ts +0 -1132
- package/packages/agent/src/core/extensions/types.ts +0 -1460
- package/packages/agent/src/core/extensions/wrapper.ts +0 -45
- package/packages/agent/src/core/footer-data-provider.ts +0 -388
- package/packages/agent/src/core/http-dispatcher.ts +0 -106
- package/packages/agent/src/core/index.ts +0 -78
- package/packages/agent/src/core/model-config.ts +0 -287
- package/packages/agent/src/core/model-registry.ts +0 -126
- package/packages/agent/src/core/model-resolver.ts +0 -675
- package/packages/agent/src/core/output-guard.ts +0 -108
- package/packages/agent/src/core/package-manager.ts +0 -2441
- package/packages/agent/src/core/prompt-templates.ts +0 -284
- package/packages/agent/src/core/resolve-config-value.ts +0 -287
- package/packages/agent/src/core/resource-loader.ts +0 -946
- package/packages/agent/src/core/runtime-credentials.ts +0 -48
- package/packages/agent/src/core/sdk.ts +0 -358
- package/packages/agent/src/core/session-cwd.ts +0 -59
- package/packages/agent/src/core/session-manager.ts +0 -1623
- package/packages/agent/src/core/settings-manager.ts +0 -1212
- package/packages/agent/src/core/slash-commands.ts +0 -41
- package/packages/agent/src/core/source-info.ts +0 -40
- package/packages/agent/src/core/system-prompt.ts +0 -147
- package/packages/agent/src/core/timings.ts +0 -50
- package/packages/agent/src/core/tools/tool-definition-wrapper.ts +0 -45
- package/packages/agent/src/core/trust-manager.ts +0 -244
- package/packages/agent/src/utils/ansi.ts +0 -60
- package/packages/agent/src/utils/fs-watch.ts +0 -30
- package/packages/agent/src/utils/git.ts +0 -226
- package/packages/agent/src/utils/json.ts +0 -6
- package/packages/agent/src/utils/tools-manager.ts +0 -63
- package/packages/agent-core/package.json +0 -32
- package/packages/ai/src/api/openrouter-images.lazy.ts +0 -10
- package/packages/ai/src/api/openrouter-images.ts +0 -98
- package/packages/ai/src/auth/credential-store.ts +0 -51
- package/packages/ai/src/compat/extension-oauth-types.ts +0 -45
- package/packages/ai/src/image-models.generated.ts +0 -533
- package/packages/ai/src/images-models.ts +0 -274
- package/packages/ai/src/models-store.ts +0 -38
- package/packages/ai/src/oauth.ts +0 -10
- package/packages/ai/src/providers/openrouter-images.ts +0 -14
- package/packages/ai/src/session-resources.ts +0 -24
- package/packages/ai/src/utils/abort-signals.ts +0 -41
- package/packages/ai/src/utils/deferred-tools.ts +0 -39
- package/packages/ai/src/utils/hash.ts +0 -13
- package/packages/ai/src/utils/node-http-proxy.ts +0 -112
- package/plugins/ragents.actor-programs/server/client-runtime.ts +0 -16
- package/plugins/ragents.ask/web/constants.ts +0 -1
- package/plugins/ragents.lsp-roslyn/web/api.ts +0 -10
- package/plugins/ragents.orchestration/web/CanvasStartup.tsx +0 -14
- package/plugins/ragents.orchestration/web/canvas-view-settings.ts +0 -42
- package/plugins/ragents.orchestration/web/column/AddresseeControl.tsx +0 -116
- package/plugins/ragents.orchestration/web/column/column-settings.ts +0 -47
- package/plugins/ragents.orchestration/web/column/column-state.ts +0 -68
- package/plugins/ragents.orchestration/web/contract.ts +0 -25
- package/plugins/ragents.product/model-settings-contract.ts +0 -10
- package/plugins/ragents.profile-distribution/server/web.ts +0 -24
- /package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/authoring-contracts.ts +0 -0
- /package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/runtime-libraries.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/workflow/prompt-reader.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/file-contracts.d.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/flow-diagram-contracts.d.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/flow-diagram.css +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/form-contracts.d.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/frame-layout.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/table-contracts.d.ts +0 -0
- /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/viewer-contracts.d.ts +0 -0
- /package/{plugins/ragents.orchestration/canvas.hbs → bundles/ragents.orchestration/surface.hbs} +0 -0
- /package/packages/{agent-core/src → agent/src/loop}/index.ts +0 -0
- /package/packages/{agent-core/src → agent/src/loop}/uuid.ts +0 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": 3,
|
|
3
|
+
"id": "ragents.ask",
|
|
4
|
+
"api": 6,
|
|
5
|
+
"hostNames": {
|
|
6
|
+
"server": {
|
|
7
|
+
"@ragents/engine": [
|
|
8
|
+
"DomainError",
|
|
9
|
+
"defineRunFunction",
|
|
10
|
+
"implement",
|
|
11
|
+
"serviceToken"
|
|
12
|
+
],
|
|
13
|
+
"@ragents/engine/src/rpc/contract": [
|
|
14
|
+
"defineOperation"
|
|
15
|
+
],
|
|
16
|
+
"@ragents/host/plugin-support/agent-tool": [
|
|
17
|
+
"toolDescriptorFrom"
|
|
18
|
+
],
|
|
19
|
+
"@ragents/host/plugin-support/plugin-folder": [
|
|
20
|
+
"pluginAsset"
|
|
21
|
+
],
|
|
22
|
+
"@ragents/host/plugin-support/prompt": [
|
|
23
|
+
"handlebarsPrompt"
|
|
24
|
+
],
|
|
25
|
+
"@ragents/host/plugin-support/tool-availability": [
|
|
26
|
+
"facesOperator"
|
|
27
|
+
],
|
|
28
|
+
"@ragents/host/ragents/host-services": [
|
|
29
|
+
"runGuardToken"
|
|
30
|
+
],
|
|
31
|
+
"@ragents/host/ragents/runtime-bridge": [
|
|
32
|
+
"runtimeBridgeToken"
|
|
33
|
+
],
|
|
34
|
+
"typebox": [
|
|
35
|
+
"Type"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"web": {
|
|
39
|
+
"@ragents/engine/src/rpc/contract": [
|
|
40
|
+
"defineOperation"
|
|
41
|
+
],
|
|
42
|
+
"@ragents/web/AccessContext": [
|
|
43
|
+
"useAccess"
|
|
44
|
+
],
|
|
45
|
+
"@ragents/web/rpc": [
|
|
46
|
+
"rpc"
|
|
47
|
+
],
|
|
48
|
+
"@ragents/web/run-view": [
|
|
49
|
+
"runActorFrom",
|
|
50
|
+
"runViewFrom"
|
|
51
|
+
],
|
|
52
|
+
"@ragents/web/ui": [
|
|
53
|
+
"Button",
|
|
54
|
+
"Card",
|
|
55
|
+
"Input",
|
|
56
|
+
"SectionLabel",
|
|
57
|
+
"cn"
|
|
58
|
+
],
|
|
59
|
+
"react": [
|
|
60
|
+
"createContext",
|
|
61
|
+
"createElement",
|
|
62
|
+
"forwardRef",
|
|
63
|
+
"useContext",
|
|
64
|
+
"useState"
|
|
65
|
+
],
|
|
66
|
+
"react/jsx-runtime": [
|
|
67
|
+
"Fragment",
|
|
68
|
+
"jsx",
|
|
69
|
+
"jsxs"
|
|
70
|
+
],
|
|
71
|
+
"typebox": [
|
|
72
|
+
"Type"
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"stand": "bfcbef3ac8061d0414592043532059dfb3087e9f1e4fc2bbc8f12b66060a96ce",
|
|
77
|
+
"sourceStand": "f8a0da2327b506d345b997f75a849fc1b3adb7db2c774222370f5692a27b0e1c",
|
|
78
|
+
"server": "server/index.js",
|
|
79
|
+
"web": {
|
|
80
|
+
"entry": "web/index.js",
|
|
81
|
+
"classes": "web/classes.json"
|
|
82
|
+
},
|
|
83
|
+
"exports": {
|
|
84
|
+
"server": {
|
|
85
|
+
"server/contract": "server/exports/server/contract.js"
|
|
86
|
+
},
|
|
87
|
+
"web": {
|
|
88
|
+
"ask-payload": "web/exports/ask-payload.js",
|
|
89
|
+
"web/QuestionCard": "web/exports/web/QuestionCard.js",
|
|
90
|
+
"web/api": "web/exports/web/api.js"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"uses": [],
|
|
94
|
+
"assets": [
|
|
95
|
+
"ask.hbs"
|
|
96
|
+
]
|
|
97
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createRequire as __ragentsCreateRequire } from "node:module";
|
|
2
|
+
const require = __ragentsCreateRequire(import.meta.url);
|
|
3
|
+
|
|
4
|
+
// server/contract.ts
|
|
5
|
+
import { serviceToken } from "@ragents/engine";
|
|
6
|
+
var DISMISSED_ANSWER = "Der Benutzer hat die Frage verworfen.";
|
|
7
|
+
var askServiceToken = serviceToken("ragents.ask.service");
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
DISMISSED_ANSWER,
|
|
11
|
+
askServiceToken
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=chunk-PDJO75SQ.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../plugins/ragents.ask/server/contract.ts"],
|
|
4
|
+
"sourcesContent": ["import { serviceToken, type ServiceToken } from \"@ragents/engine\";\n\n/** Die Antwort, die `ask` liefert, wenn der Benutzer die Frage verwirft. */\nexport const DISMISSED_ANSWER = \"Der Benutzer hat die Frage verworfen.\";\n\nexport interface AskCall {\n runId: string;\n /** Wer fragt: ein Agent in seinem laufenden Turn, ohne Turn der Eigent\u00FCmer des Runs. */\n agentId: string;\n turnId: string | null;\n commandId: string;\n}\n\nexport interface AskRequest {\n question: string;\n options: string[];\n multi?: boolean;\n description?: string;\n parameters?: Record<string, string>;\n /** Der Actor, dem eine Antwort zugeht, auf die niemand mehr wartet; ohne Angabe der Fragende. */\n recipient?: string;\n}\n\nexport interface AskService {\n ask: (call: AskCall, request: AskRequest, signal: AbortSignal | undefined) => Promise<string>;\n /** Verwirft eine offene Frage: ein wartender Aufruf bekommt DISMISSED_ANSWER, niemand bekommt einen Input. */\n withdraw: (runId: string, actionId: string) => void;\n}\n\nexport const askServiceToken: ServiceToken<AskService> = serviceToken(\"ragents.ask.service\");\n"],
|
|
5
|
+
"mappings": ";;;;AAAA,SAAS,oBAAuC;AAGzC,IAAM,mBAAmB;AA0BzB,IAAM,kBAA4C,aAAa,qBAAqB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createRequire as __ragentsCreateRequire } from "node:module";
|
|
2
|
+
const require = __ragentsCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
DISMISSED_ANSWER,
|
|
5
|
+
askServiceToken
|
|
6
|
+
} from "../../chunks/chunk-PDJO75SQ.js";
|
|
7
|
+
export {
|
|
8
|
+
DISMISSED_ANSWER,
|
|
9
|
+
askServiceToken
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { createRequire as __ragentsCreateRequire } from "node:module";
|
|
2
|
+
const require = __ragentsCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
DISMISSED_ANSWER,
|
|
5
|
+
askServiceToken
|
|
6
|
+
} from "./chunks/chunk-PDJO75SQ.js";
|
|
7
|
+
|
|
8
|
+
// server/index.ts
|
|
9
|
+
import { pluginAsset } from "@ragents/host/plugin-support/plugin-folder.js";
|
|
10
|
+
import { handlebarsPrompt } from "@ragents/host/plugin-support/prompt.js";
|
|
11
|
+
import { runGuardToken } from "@ragents/host/ragents/host-services.js";
|
|
12
|
+
import { runtimeBridgeToken } from "@ragents/host/ragents/runtime-bridge.js";
|
|
13
|
+
|
|
14
|
+
// server/answer-method.ts
|
|
15
|
+
import { DomainError, implement } from "@ragents/engine";
|
|
16
|
+
|
|
17
|
+
// contract.ts
|
|
18
|
+
import { Type } from "typebox";
|
|
19
|
+
import { defineOperation } from "@ragents/engine/src/rpc/contract";
|
|
20
|
+
var askContracts = {
|
|
21
|
+
answer: defineOperation({
|
|
22
|
+
id: "ragents.ask.answer",
|
|
23
|
+
description: "Eine R\xFCckfrage des Runs beantworten oder verwerfen. Rechte: runs.read und runs.write.",
|
|
24
|
+
rights: ["runs.read", "runs.write"],
|
|
25
|
+
input: Type.Object({
|
|
26
|
+
runId: Type.String({ minLength: 1, maxLength: 64, description: "Kennung des Runs" }),
|
|
27
|
+
actionId: Type.String({ minLength: 1, maxLength: 80, description: "Kennung der Frage" }),
|
|
28
|
+
answer: Type.Optional(Type.String({ description: "Die Antwort des Benutzers" })),
|
|
29
|
+
dismiss: Type.Optional(Type.Boolean({ description: "true verwirft die Frage ohne Antwort" }))
|
|
30
|
+
}, { additionalProperties: false }),
|
|
31
|
+
result: Type.Null()
|
|
32
|
+
})
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// server/answer-method.ts
|
|
36
|
+
var createAnswerMethod = (service, ensureSession) => implement(askContracts.answer, ({ runId, actionId, answer, dismiss }) => {
|
|
37
|
+
if (dismiss !== true && (typeof answer !== "string" || answer.trim() === "")) {
|
|
38
|
+
throw new DomainError("answer-missing", "answer ist erforderlich, wenn nicht verworfen wird", 400);
|
|
39
|
+
}
|
|
40
|
+
ensureSession(runId);
|
|
41
|
+
service.answer(runId, actionId, { ...answer !== void 0 ? { answer } : {}, ...dismiss !== void 0 ? { dismiss } : {} });
|
|
42
|
+
return null;
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// server/ask-service.ts
|
|
46
|
+
import { randomUUID } from "node:crypto";
|
|
47
|
+
import {
|
|
48
|
+
DomainError as DomainError2
|
|
49
|
+
} from "@ragents/engine";
|
|
50
|
+
|
|
51
|
+
// ask-payload.ts
|
|
52
|
+
var ASK_PLUGIN_ID = "ragents.ask";
|
|
53
|
+
var stringArrayOf = (value) => Array.isArray(value) && value.every((entry) => typeof entry === "string") ? [...value] : void 0;
|
|
54
|
+
var askPayloadOf = (payload) => {
|
|
55
|
+
if (typeof payload !== "object" || payload === null) return void 0;
|
|
56
|
+
const candidate = payload;
|
|
57
|
+
const options = stringArrayOf(candidate.options);
|
|
58
|
+
if (typeof candidate.question !== "string" || !options) return void 0;
|
|
59
|
+
return {
|
|
60
|
+
question: candidate.question,
|
|
61
|
+
options,
|
|
62
|
+
multi: candidate.multi === true,
|
|
63
|
+
...typeof candidate.recipient === "string" ? { recipient: candidate.recipient } : {}
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
// server/ask-service.ts
|
|
68
|
+
var answerOf = (decision, result) => decision !== "approved" ? DISMISSED_ANSWER : typeof result === "string" ? result : result === null || result === void 0 ? "" : JSON.stringify(result);
|
|
69
|
+
var resolvedAnswerOf = (action) => action.status === "pending" ? null : answerOf(action.status, action.result);
|
|
70
|
+
var RuntimeAskService = class {
|
|
71
|
+
#runtime;
|
|
72
|
+
#waiters = /* @__PURE__ */ new Map();
|
|
73
|
+
#aborting = /* @__PURE__ */ new Set();
|
|
74
|
+
bind(runtime) {
|
|
75
|
+
if (this.#runtime) throw new Error("Der Ask-Service wurde bereits an eine Runtime gebunden");
|
|
76
|
+
this.#runtime = runtime;
|
|
77
|
+
runtime.subscribe((events) => this.#onJournal(events));
|
|
78
|
+
}
|
|
79
|
+
ask(call, request, signal) {
|
|
80
|
+
const runtime = this.#requireRuntime();
|
|
81
|
+
const context = {
|
|
82
|
+
actorId: call.agentId,
|
|
83
|
+
commandId: call.commandId,
|
|
84
|
+
...call.turnId ? { turnId: call.turnId, correlationId: call.turnId, causationId: call.turnId } : {}
|
|
85
|
+
};
|
|
86
|
+
runtime.proposeAction(context, call.runId, {
|
|
87
|
+
owner: ASK_PLUGIN_ID,
|
|
88
|
+
title: request.question,
|
|
89
|
+
description: request.description,
|
|
90
|
+
parameters: request.parameters,
|
|
91
|
+
input: { label: "Antwort", placeholder: null, required: true },
|
|
92
|
+
payload: {
|
|
93
|
+
question: request.question,
|
|
94
|
+
options: [...request.options],
|
|
95
|
+
multi: request.multi === true,
|
|
96
|
+
...request.recipient ? { recipient: request.recipient } : {}
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
const proposed = runtime.events(call.runId).find((event) => event.type === "action.proposed" && event.commandId === call.commandId);
|
|
100
|
+
if (proposed?.type !== "action.proposed") {
|
|
101
|
+
throw new Error(`Die Frage von ${call.agentId} wurde nicht im Journal von ${call.runId} angelegt`);
|
|
102
|
+
}
|
|
103
|
+
return this.#awaitAnswer(call.runId, proposed.payload.actionId, signal);
|
|
104
|
+
}
|
|
105
|
+
answer(runId, actionId, input) {
|
|
106
|
+
const runtime = this.#requireRuntime();
|
|
107
|
+
const state = runtime.state(runId);
|
|
108
|
+
const action = state.actions.get(actionId);
|
|
109
|
+
if (!action || action.owner !== ASK_PLUGIN_ID) {
|
|
110
|
+
throw new DomainError2("question-not-found", `Frage ${actionId} existiert nicht in Run ${runId}.`, 404);
|
|
111
|
+
}
|
|
112
|
+
runtime.resolveAction(
|
|
113
|
+
{ actorId: state.ownerId, commandId: `ask-answer:${actionId}:${randomUUID()}` },
|
|
114
|
+
runId,
|
|
115
|
+
actionId,
|
|
116
|
+
input.dismiss === true ? { decision: "dismissed", result: null } : { decision: "approved", result: input.answer ?? null }
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
withdraw(runId, actionId) {
|
|
120
|
+
const runtime = this.#requireRuntime();
|
|
121
|
+
const state = runtime.state(runId);
|
|
122
|
+
const action = state.actions.get(actionId);
|
|
123
|
+
if (action?.owner !== ASK_PLUGIN_ID || action.status !== "pending") return;
|
|
124
|
+
this.#aborting.add(actionId);
|
|
125
|
+
try {
|
|
126
|
+
runtime.resolveAction(
|
|
127
|
+
{ actorId: state.ownerId, commandId: `ask-withdraw:${actionId}:${randomUUID()}` },
|
|
128
|
+
runId,
|
|
129
|
+
actionId,
|
|
130
|
+
{ decision: "dismissed", result: null }
|
|
131
|
+
);
|
|
132
|
+
} finally {
|
|
133
|
+
this.#aborting.delete(actionId);
|
|
134
|
+
}
|
|
135
|
+
this.#waiters.get(actionId)?.(DISMISSED_ANSWER);
|
|
136
|
+
}
|
|
137
|
+
#awaitAnswer(runId, actionId, signal) {
|
|
138
|
+
const runtime = this.#requireRuntime();
|
|
139
|
+
const action = runtime.state(runId).actions.get(actionId);
|
|
140
|
+
if (!action) throw new Error(`Frage ${actionId} existiert nicht in Run ${runId}`);
|
|
141
|
+
const settled = resolvedAnswerOf(action);
|
|
142
|
+
if (settled !== null) return Promise.resolve(settled);
|
|
143
|
+
return new Promise((resolve, reject) => {
|
|
144
|
+
const abort = () => {
|
|
145
|
+
this.#waiters.delete(actionId);
|
|
146
|
+
this.#aborting.add(actionId);
|
|
147
|
+
try {
|
|
148
|
+
const state = runtime.state(runId);
|
|
149
|
+
const pending = state.actions.get(actionId);
|
|
150
|
+
if (pending?.status === "pending") {
|
|
151
|
+
runtime.resolveAction(
|
|
152
|
+
{ actorId: state.ownerId, commandId: `ask-abort:${actionId}:${randomUUID()}` },
|
|
153
|
+
runId,
|
|
154
|
+
actionId,
|
|
155
|
+
{ decision: "dismissed", result: null }
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
reject(new Error("Das Warten auf die Antwort wurde abgebrochen."));
|
|
159
|
+
} catch (error) {
|
|
160
|
+
reject(error);
|
|
161
|
+
} finally {
|
|
162
|
+
this.#aborting.delete(actionId);
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
if (signal?.aborted) {
|
|
166
|
+
abort();
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
signal?.addEventListener("abort", abort, { once: true });
|
|
170
|
+
this.#waiters.set(actionId, (answer) => {
|
|
171
|
+
signal?.removeEventListener("abort", abort);
|
|
172
|
+
this.#waiters.delete(actionId);
|
|
173
|
+
resolve(answer);
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
#onJournal(events) {
|
|
178
|
+
for (const event of events) {
|
|
179
|
+
if (event.type !== "action.resolved") continue;
|
|
180
|
+
if (this.#aborting.has(event.payload.actionId)) continue;
|
|
181
|
+
const resolved = this.#requireRuntime().state(event.runId).actions.get(event.payload.actionId);
|
|
182
|
+
if (resolved?.owner !== ASK_PLUGIN_ID) continue;
|
|
183
|
+
const answer = answerOf(event.payload.decision, event.payload.result);
|
|
184
|
+
const waiter = this.#waiters.get(event.payload.actionId);
|
|
185
|
+
if (waiter) {
|
|
186
|
+
waiter(answer);
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
queueMicrotask(() => this.#enqueueAnswer(event.runId, event.payload.actionId, answer));
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
#enqueueAnswer(runId, actionId, answer) {
|
|
193
|
+
try {
|
|
194
|
+
const runtime = this.#requireRuntime();
|
|
195
|
+
const state = runtime.state(runId);
|
|
196
|
+
const action = state.actions.get(actionId);
|
|
197
|
+
if (!action) return;
|
|
198
|
+
const recipientId = askPayloadOf(action.payload)?.recipient ?? action.askedBy;
|
|
199
|
+
const recipient = state.actors.get(recipientId);
|
|
200
|
+
if (!recipient || recipient.kind === "human" || recipient.lifecycle.kind === "stopped") return;
|
|
201
|
+
runtime.enqueueInput(
|
|
202
|
+
{ actorId: state.ownerId, commandId: `ask-input:${actionId}` },
|
|
203
|
+
runId,
|
|
204
|
+
{
|
|
205
|
+
actorId: recipientId,
|
|
206
|
+
content: `Antwort auf ${recipientId === action.askedBy ? "deine Frage" : "die Frage"}: ${action.title}
|
|
207
|
+
Antwort: ${answer}`
|
|
208
|
+
}
|
|
209
|
+
);
|
|
210
|
+
} catch (error) {
|
|
211
|
+
console.error(`Antwort auf Frage ${actionId} konnte nicht als Input eingereiht werden: ${error instanceof Error ? error.message : String(error)}`);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
#requireRuntime() {
|
|
215
|
+
if (!this.#runtime) throw new Error("Der Ask-Service ist noch nicht an die Runtime gebunden");
|
|
216
|
+
return this.#runtime;
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
// server/tool-contributor.ts
|
|
221
|
+
import { toolDescriptorFrom } from "@ragents/host/plugin-support/agent-tool.js";
|
|
222
|
+
import { facesOperator as facesOperator2 } from "@ragents/host/plugin-support/tool-availability.js";
|
|
223
|
+
|
|
224
|
+
// server/ask-tool.ts
|
|
225
|
+
import { Type as Type2 } from "typebox";
|
|
226
|
+
import { defineRunFunction } from "@ragents/engine";
|
|
227
|
+
import { facesOperator } from "@ragents/host/plugin-support/tool-availability.js";
|
|
228
|
+
var askToolMetadata = {
|
|
229
|
+
name: "ask_user",
|
|
230
|
+
label: "R\xFCckfrage",
|
|
231
|
+
description: "Holt eine n\xF6tige Benutzerentscheidung mit Antwortoptionen ein und wartet auf die Antwort.",
|
|
232
|
+
longDescription: "Nutze dieses Werkzeug immer, wenn du eine Entscheidung des Benutzers brauchst (z.B. Auswahl eines Branches oder eines Zeitraums), statt die Frage nur als Text zu stellen. Mit multi=true darf der Benutzer mehrere Optionen w\xE4hlen; die Antwort ist dann mit '; ' verbunden. Der Benutzer kann statt einer Option auch immer frei antworten - rechne also damit, dass die Antwort beliebiger Text sein kann."
|
|
233
|
+
};
|
|
234
|
+
var createAskTool = (service) => defineRunFunction({
|
|
235
|
+
...askToolMetadata,
|
|
236
|
+
schema: Type2.Object({
|
|
237
|
+
question: Type2.String({ description: "Die Frage an den Benutzer, kurz und konkret" }),
|
|
238
|
+
options: Type2.Array(Type2.String(), { description: "Antwortoptionen (2 bis 6 St\xFCck)" }),
|
|
239
|
+
multi: Type2.Optional(Type2.Boolean({ description: "true = Mehrfachauswahl erlaubt" }))
|
|
240
|
+
}),
|
|
241
|
+
resultSchema: Type2.String(),
|
|
242
|
+
available: facesOperator,
|
|
243
|
+
executionMode: "sequential",
|
|
244
|
+
run: (scope, toolCallId, input) => service.ask(
|
|
245
|
+
{
|
|
246
|
+
runId: scope.caller.runId,
|
|
247
|
+
agentId: scope.caller.actorId,
|
|
248
|
+
turnId: scope.caller.turnId,
|
|
249
|
+
commandId: scope.context(toolCallId).commandId
|
|
250
|
+
},
|
|
251
|
+
{ question: input.question, options: input.options, multi: input.multi === true },
|
|
252
|
+
scope.signal
|
|
253
|
+
)
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
// server/tool-contributor.ts
|
|
257
|
+
var createAskToolContributor = (service) => ({
|
|
258
|
+
name: "ragents.ask",
|
|
259
|
+
descriptors: [toolDescriptorFrom(askToolMetadata, facesOperator2)],
|
|
260
|
+
tools: () => [createAskTool(service)]
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
// server/index.ts
|
|
264
|
+
var askPlugin = {
|
|
265
|
+
manifest: { id: "ragents.ask" },
|
|
266
|
+
register: (host) => {
|
|
267
|
+
const service = new RuntimeAskService();
|
|
268
|
+
host.provide(askServiceToken, service);
|
|
269
|
+
host.provide(runtimeBridgeToken, { bind: (runtime) => service.bind(runtime) });
|
|
270
|
+
host.prompts(handlebarsPrompt("ragents.ask.prompt", 480, pluginAsset("ragents.ask", "ask.hbs")));
|
|
271
|
+
host.functions(createAskToolContributor(service));
|
|
272
|
+
host.methods(createAnswerMethod(service, host.service(runGuardToken)));
|
|
273
|
+
}
|
|
274
|
+
};
|
|
275
|
+
var plugin = { create: () => askPlugin };
|
|
276
|
+
export {
|
|
277
|
+
plugin
|
|
278
|
+
};
|
|
279
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../plugins/ragents.ask/server/index.ts", "../../../plugins/ragents.ask/server/answer-method.ts", "../../../plugins/ragents.ask/contract.ts", "../../../plugins/ragents.ask/server/ask-service.ts", "../../../plugins/ragents.ask/ask-payload.ts", "../../../plugins/ragents.ask/server/tool-contributor.ts", "../../../plugins/ragents.ask/server/ask-tool.ts"],
|
|
4
|
+
"sourcesContent": ["import type { RAgentsPlugin } from \"@ragents/engine\";\nimport { pluginAsset } from \"@ragents/host/plugin-support/plugin-folder.js\";\nimport type { PluginModule } from \"@ragents/host/plugin-support/plugin-module.js\";\nimport { handlebarsPrompt } from \"@ragents/host/plugin-support/prompt.js\";\nimport { runGuardToken } from \"@ragents/host/ragents/host-services.js\";\nimport { runtimeBridgeToken } from \"@ragents/host/ragents/runtime-bridge.js\";\nimport { createAnswerMethod } from \"./answer-method.js\";\nimport { RuntimeAskService } from \"./ask-service.js\";\nimport { askServiceToken } from \"./contract.js\";\nimport { createAskToolContributor } from \"./tool-contributor.js\";\n\nconst askPlugin: RAgentsPlugin = {\n manifest: { id: \"ragents.ask\" },\n register: (host) => {\n const service = new RuntimeAskService();\n host.provide(askServiceToken, service);\n host.provide(runtimeBridgeToken, { bind: (runtime) => service.bind(runtime) });\n host.prompts(handlebarsPrompt(\"ragents.ask.prompt\", 480, pluginAsset(\"ragents.ask\", \"ask.hbs\")));\n host.functions(createAskToolContributor(service));\n host.methods(createAnswerMethod(service, host.service(runGuardToken)));\n },\n};\n\nexport const plugin: PluginModule = { create: () => askPlugin };\n", "import { DomainError, implement, type MethodContribution } from \"@ragents/engine\";\nimport { askContracts } from \"../contract.js\";\nimport type { RuntimeAskService } from \"./ask-service.js\";\n\nexport const createAnswerMethod = (\n service: RuntimeAskService,\n ensureSession: (runId: string) => void,\n): MethodContribution => implement(askContracts.answer, ({ runId, actionId, answer, dismiss }) => {\n if (dismiss !== true && (typeof answer !== \"string\" || answer.trim() === \"\")) {\n throw new DomainError(\"answer-missing\", \"answer ist erforderlich, wenn nicht verworfen wird\", 400);\n }\n ensureSession(runId);\n service.answer(runId, actionId, { ...(answer !== undefined ? { answer } : {}), ...(dismiss !== undefined ? { dismiss } : {}) });\n return null;\n});\n", "import { Type } from \"typebox\";\nimport { defineOperation } from \"@ragents/engine/src/rpc/contract\";\n\nexport const askContracts = {\n answer: defineOperation({\n id: \"ragents.ask.answer\",\n description: \"Eine R\u00FCckfrage des Runs beantworten oder verwerfen. Rechte: runs.read und runs.write.\",\n rights: [\"runs.read\", \"runs.write\"],\n input: Type.Object({\n runId: Type.String({ minLength: 1, maxLength: 64, description: \"Kennung des Runs\" }),\n actionId: Type.String({ minLength: 1, maxLength: 80, description: \"Kennung der Frage\" }),\n answer: Type.Optional(Type.String({ description: \"Die Antwort des Benutzers\" })),\n dismiss: Type.Optional(Type.Boolean({ description: \"true verwirft die Frage ohne Antwort\" })),\n }, { additionalProperties: false }),\n result: Type.Null(),\n }),\n};\n", "import { randomUUID } from \"node:crypto\";\nimport {\n DomainError,\n type Action,\n type CommandContext,\n type JournalEvent,\n type Orchestration,\n} from \"@ragents/engine\";\nimport { askPayloadOf, ASK_PLUGIN_ID } from \"../ask-payload.js\";\nimport { DISMISSED_ANSWER, type AskCall, type AskRequest, type AskService } from \"./contract.js\";\n\nconst answerOf = (decision: \"approved\" | \"dismissed\", result: unknown): string =>\n decision !== \"approved\" ? DISMISSED_ANSWER : typeof result === \"string\" ? result : result === null || result === undefined ? \"\" : JSON.stringify(result);\n\nconst resolvedAnswerOf = (action: Action): string | null =>\n action.status === \"pending\" ? null : answerOf(action.status, action.result);\n\nexport class RuntimeAskService implements AskService {\n #runtime: Orchestration | undefined;\n readonly #waiters = new Map<string, (answer: string) => void>();\n readonly #aborting = new Set<string>();\n\n bind(runtime: Orchestration): void {\n if (this.#runtime) throw new Error(\"Der Ask-Service wurde bereits an eine Runtime gebunden\");\n this.#runtime = runtime;\n runtime.subscribe((events) => this.#onJournal(events));\n }\n\n ask(call: AskCall, request: AskRequest, signal: AbortSignal | undefined): Promise<string> {\n const runtime = this.#requireRuntime();\n const context: CommandContext = {\n actorId: call.agentId,\n commandId: call.commandId,\n ...(call.turnId ? { turnId: call.turnId, correlationId: call.turnId, causationId: call.turnId } : {}),\n };\n runtime.proposeAction(context, call.runId, {\n owner: ASK_PLUGIN_ID,\n title: request.question,\n description: request.description,\n parameters: request.parameters,\n input: { label: \"Antwort\", placeholder: null, required: true },\n payload: {\n question: request.question,\n options: [...request.options],\n multi: request.multi === true,\n ...(request.recipient ? { recipient: request.recipient } : {}),\n },\n });\n const proposed = runtime.events(call.runId).find((event) =>\n event.type === \"action.proposed\" && event.commandId === call.commandId);\n if (proposed?.type !== \"action.proposed\") {\n throw new Error(`Die Frage von ${call.agentId} wurde nicht im Journal von ${call.runId} angelegt`);\n }\n return this.#awaitAnswer(call.runId, proposed.payload.actionId, signal);\n }\n\n answer(runId: string, actionId: string, input: { answer?: string; dismiss?: boolean }): void {\n const runtime = this.#requireRuntime();\n const state = runtime.state(runId);\n const action = state.actions.get(actionId);\n if (!action || action.owner !== ASK_PLUGIN_ID) {\n throw new DomainError(\"question-not-found\", `Frage ${actionId} existiert nicht in Run ${runId}.`, 404);\n }\n runtime.resolveAction(\n { actorId: state.ownerId, commandId: `ask-answer:${actionId}:${randomUUID()}` },\n runId,\n actionId,\n input.dismiss === true\n ? { decision: \"dismissed\", result: null }\n : { decision: \"approved\", result: input.answer ?? null },\n );\n }\n\n withdraw(runId: string, actionId: string): void {\n const runtime = this.#requireRuntime();\n const state = runtime.state(runId);\n const action = state.actions.get(actionId);\n if (action?.owner !== ASK_PLUGIN_ID || action.status !== \"pending\") return;\n this.#aborting.add(actionId);\n try {\n runtime.resolveAction(\n { actorId: state.ownerId, commandId: `ask-withdraw:${actionId}:${randomUUID()}` },\n runId,\n actionId,\n { decision: \"dismissed\", result: null },\n );\n } finally {\n this.#aborting.delete(actionId);\n }\n this.#waiters.get(actionId)?.(DISMISSED_ANSWER);\n }\n\n #awaitAnswer(runId: string, actionId: string, signal: AbortSignal | undefined): Promise<string> {\n const runtime = this.#requireRuntime();\n const action = runtime.state(runId).actions.get(actionId);\n if (!action) throw new Error(`Frage ${actionId} existiert nicht in Run ${runId}`);\n const settled = resolvedAnswerOf(action);\n if (settled !== null) return Promise.resolve(settled);\n return new Promise<string>((resolve, reject) => {\n const abort = () => {\n this.#waiters.delete(actionId);\n this.#aborting.add(actionId);\n try {\n const state = runtime.state(runId);\n const pending = state.actions.get(actionId);\n if (pending?.status === \"pending\") {\n runtime.resolveAction(\n { actorId: state.ownerId, commandId: `ask-abort:${actionId}:${randomUUID()}` },\n runId,\n actionId,\n { decision: \"dismissed\", result: null },\n );\n }\n reject(new Error(\"Das Warten auf die Antwort wurde abgebrochen.\"));\n } catch (error) {\n reject(error);\n } finally {\n this.#aborting.delete(actionId);\n }\n };\n if (signal?.aborted) {\n abort();\n return;\n }\n signal?.addEventListener(\"abort\", abort, { once: true });\n this.#waiters.set(actionId, (answer) => {\n signal?.removeEventListener(\"abort\", abort);\n this.#waiters.delete(actionId);\n resolve(answer);\n });\n });\n }\n\n #onJournal(events: JournalEvent[]): void {\n for (const event of events) {\n if (event.type !== \"action.resolved\") continue;\n if (this.#aborting.has(event.payload.actionId)) continue;\n const resolved = this.#requireRuntime().state(event.runId).actions.get(event.payload.actionId);\n if (resolved?.owner !== ASK_PLUGIN_ID) continue;\n const answer = answerOf(event.payload.decision, event.payload.result);\n const waiter = this.#waiters.get(event.payload.actionId);\n if (waiter) {\n waiter(answer);\n continue;\n }\n queueMicrotask(() => this.#enqueueAnswer(event.runId, event.payload.actionId, answer));\n }\n }\n\n #enqueueAnswer(runId: string, actionId: string, answer: string): void {\n try {\n const runtime = this.#requireRuntime();\n const state = runtime.state(runId);\n const action = state.actions.get(actionId);\n if (!action) return;\n const recipientId = askPayloadOf(action.payload)?.recipient ?? action.askedBy;\n const recipient = state.actors.get(recipientId);\n if (!recipient || recipient.kind === \"human\" || recipient.lifecycle.kind === \"stopped\") return;\n runtime.enqueueInput(\n { actorId: state.ownerId, commandId: `ask-input:${actionId}` },\n runId,\n {\n actorId: recipientId,\n content: `Antwort auf ${recipientId === action.askedBy ? \"deine Frage\" : \"die Frage\"}: ${action.title}\\nAntwort: ${answer}`,\n },\n );\n } catch (error) {\n console.error(`Antwort auf Frage ${actionId} konnte nicht als Input eingereiht werden: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n\n #requireRuntime(): Orchestration {\n if (!this.#runtime) throw new Error(\"Der Ask-Service ist noch nicht an die Runtime gebunden\");\n return this.#runtime;\n }\n}\n", "export const ASK_PLUGIN_ID = \"ragents.ask\";\n\nexport interface AskPayload {\n question: string;\n options: string[];\n multi: boolean;\n /** Der Actor, f\u00FCr den die Frage steht, wenn der Eigent\u00FCmer des Runs sie au\u00DFerhalb eines Turns stellt. */\n recipient?: string;\n}\n\nconst stringArrayOf = (value: unknown): string[] | undefined =>\n Array.isArray(value) && value.every((entry) => typeof entry === \"string\") ? [...value] : undefined;\n\nexport const askPayloadOf = (payload: unknown): AskPayload | undefined => {\n if (typeof payload !== \"object\" || payload === null) return undefined;\n const candidate = payload as Partial<AskPayload>;\n const options = stringArrayOf(candidate.options);\n if (typeof candidate.question !== \"string\" || !options) return undefined;\n return {\n question: candidate.question,\n options,\n multi: candidate.multi === true,\n ...(typeof candidate.recipient === \"string\" ? { recipient: candidate.recipient } : {}),\n };\n};\n", "import type { ToolContributor } from \"@ragents/engine\";\nimport { toolDescriptorFrom } from \"@ragents/host/plugin-support/agent-tool.js\";\nimport { facesOperator } from \"@ragents/host/plugin-support/tool-availability.js\";\nimport { askToolMetadata, createAskTool } from \"./ask-tool.js\";\nimport type { AskService } from \"./contract.js\";\n\nexport const createAskToolContributor = (service: AskService): ToolContributor => ({\n name: \"ragents.ask\",\n descriptors: [toolDescriptorFrom(askToolMetadata, facesOperator)],\n tools: () => [createAskTool(service)],\n});\n", "import { Type } from \"typebox\";\nimport { defineRunFunction, type RunFunction } from \"@ragents/engine\";\nimport { facesOperator } from \"@ragents/host/plugin-support/tool-availability.js\";\nimport type { AskService } from \"./contract.js\";\n\nexport const askToolMetadata = {\n name: \"ask_user\",\n label: \"R\u00FCckfrage\",\n description: \"Holt eine n\u00F6tige Benutzerentscheidung mit Antwortoptionen ein und wartet auf die Antwort.\",\n longDescription: \"Nutze dieses Werkzeug immer, wenn du eine Entscheidung des Benutzers brauchst \"\n + \"(z.B. Auswahl eines Branches oder eines Zeitraums), statt die Frage nur als Text zu stellen. \"\n + \"Mit multi=true darf der Benutzer mehrere Optionen w\u00E4hlen; die Antwort ist dann mit '; ' verbunden. \"\n + \"Der Benutzer kann statt einer Option auch immer frei antworten - rechne also damit, \"\n + \"dass die Antwort beliebiger Text sein kann.\",\n} as const;\n\nexport const createAskTool = (service: AskService): RunFunction =>\n defineRunFunction({\n ...askToolMetadata,\n schema: Type.Object({\n question: Type.String({ description: \"Die Frage an den Benutzer, kurz und konkret\" }),\n options: Type.Array(Type.String(), { description: \"Antwortoptionen (2 bis 6 St\u00FCck)\" }),\n multi: Type.Optional(Type.Boolean({ description: \"true = Mehrfachauswahl erlaubt\" })),\n }),\n resultSchema: Type.String(),\n available: facesOperator,\n executionMode: \"sequential\",\n run: (scope, toolCallId, input) =>\n service.ask(\n {\n runId: scope.caller.runId,\n agentId: scope.caller.actorId,\n turnId: scope.caller.turnId,\n commandId: scope.context(toolCallId).commandId,\n },\n { question: input.question, options: input.options, multi: input.multi === true },\n scope.signal,\n ),\n });\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["DomainError", "DomainError", "facesOperator", "Type", "facesOperator"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as t}from"/plugins/ragents.ask/web/chunks/chunk-VUBJDIKQ.js";var r=t("@ragents/web/rpc","rpc");var e=t("typebox","Type");var a=t("@ragents/engine/src/rpc/contract","defineOperation");var o={answer:a({id:"ragents.ask.answer",description:"Eine R\xFCckfrage des Runs beantworten oder verwerfen. Rechte: runs.read und runs.write.",rights:["runs.read","runs.write"],input:e.Object({runId:e.String({minLength:1,maxLength:64,description:"Kennung des Runs"}),actionId:e.String({minLength:1,maxLength:80,description:"Kennung der Frage"}),answer:e.Optional(e.String({description:"Die Antwort des Benutzers"})),dismiss:e.Optional(e.Boolean({description:"true verwirft die Frage ohne Antwort"}))},{additionalProperties:!1}),result:e.Null()})};var P=async(f,s,l)=>{await r.call(o.answer,{runId:f,actionId:s,answer:l})};export{P as a};
|
|
2
|
+
//# sourceMappingURL=/plugins/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["ragents-host-value:@ragents/web/rpc#rpc", "ragents-host-value:typebox#Type", "ragents-host-value:@ragents/engine/src/rpc/contract#defineOperation", "../../../../plugins/ragents.ask/contract.ts", "../../../../plugins/ragents.ask/web/api.ts"],
|
|
4
|
+
"sourcesContent": ["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 } from \"typebox\";\nimport { defineOperation } from \"@ragents/engine/src/rpc/contract\";\n\nexport const askContracts = {\n answer: defineOperation({\n id: \"ragents.ask.answer\",\n description: \"Eine R\u00FCckfrage des Runs beantworten oder verwerfen. Rechte: runs.read und runs.write.\",\n rights: [\"runs.read\", \"runs.write\"],\n input: Type.Object({\n runId: Type.String({ minLength: 1, maxLength: 64, description: \"Kennung des Runs\" }),\n actionId: Type.String({ minLength: 1, maxLength: 80, description: \"Kennung der Frage\" }),\n answer: Type.Optional(Type.String({ description: \"Die Antwort des Benutzers\" })),\n dismiss: Type.Optional(Type.Boolean({ description: \"true verwirft die Frage ohne Antwort\" })),\n }, { additionalProperties: false }),\n result: Type.Null(),\n }),\n};\n", "import { rpc } from \"@ragents/web/rpc\";\nimport { askContracts } from \"../contract\";\n\nexport const answerQuestion = async (runId: string, actionId: string, answer: string): Promise<void> => {\n await rpc.call(askContracts.answer, { runId, actionId, answer });\n};\n"],
|
|
5
|
+
"mappings": "sEACA,IAAOA,EAAQC,EAAK,mBAAoB,KAAK,ECA7C,IAAOC,EAAQC,EAAK,UAAW,MAAM,ECArC,IAAOC,EAAQC,EAAK,mCAAoC,iBAAiB,ECElE,IAAMC,EAAe,CAC1B,OAAQC,EAAgB,CACtB,GAAI,qBACJ,YAAa,2FACb,OAAQ,CAAC,YAAa,YAAY,EAClC,MAAOC,EAAK,OAAO,CACjB,MAAOA,EAAK,OAAO,CAAE,UAAW,EAAG,UAAW,GAAI,YAAa,kBAAmB,CAAC,EACnF,SAAUA,EAAK,OAAO,CAAE,UAAW,EAAG,UAAW,GAAI,YAAa,mBAAoB,CAAC,EACvF,OAAQA,EAAK,SAASA,EAAK,OAAO,CAAE,YAAa,2BAA4B,CAAC,CAAC,EAC/E,QAASA,EAAK,SAASA,EAAK,QAAQ,CAAE,YAAa,sCAAuC,CAAC,CAAC,CAC9F,EAAG,CAAE,qBAAsB,EAAM,CAAC,EAClC,OAAQA,EAAK,KAAK,CACpB,CAAC,CACH,ECbO,IAAMC,EAAiB,MAAOC,EAAeC,EAAkBC,IAAkC,CACtG,MAAMC,EAAI,KAAKC,EAAa,OAAQ,CAAE,MAAAJ,EAAO,SAAAC,EAAU,OAAAC,CAAO,CAAC,CACjE",
|
|
6
|
+
"names": ["rpc_rpc_default", "read", "typebox_Type_default", "read", "contract_defineOperation_default", "read", "askContracts", "contract_defineOperation_default", "typebox_Type_default", "answerQuestion", "runId", "actionId", "answer", "rpc_rpc_default", "askContracts"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var r="ragents.ask",i=t=>Array.isArray(t)&&t.every(n=>typeof n=="string")?[...t]:void 0,o=t=>{if(typeof t!="object"||t===null)return;let n=t,e=i(n.options);if(!(typeof n.question!="string"||!e))return{question:n.question,options:e,multi:n.multi===!0,...typeof n.recipient=="string"?{recipient:n.recipient}:{}}};export{r as a,o as b};
|
|
2
|
+
//# sourceMappingURL=/plugins/ragents.ask/web/chunks/chunk-HGFDGTNC.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../plugins/ragents.ask/ask-payload.ts"],
|
|
4
|
+
"sourcesContent": ["export const ASK_PLUGIN_ID = \"ragents.ask\";\n\nexport interface AskPayload {\n question: string;\n options: string[];\n multi: boolean;\n /** Der Actor, f\u00FCr den die Frage steht, wenn der Eigent\u00FCmer des Runs sie au\u00DFerhalb eines Turns stellt. */\n recipient?: string;\n}\n\nconst stringArrayOf = (value: unknown): string[] | undefined =>\n Array.isArray(value) && value.every((entry) => typeof entry === \"string\") ? [...value] : undefined;\n\nexport const askPayloadOf = (payload: unknown): AskPayload | undefined => {\n if (typeof payload !== \"object\" || payload === null) return undefined;\n const candidate = payload as Partial<AskPayload>;\n const options = stringArrayOf(candidate.options);\n if (typeof candidate.question !== \"string\" || !options) return undefined;\n return {\n question: candidate.question,\n options,\n multi: candidate.multi === true,\n ...(typeof candidate.recipient === \"string\" ? { recipient: candidate.recipient } : {}),\n };\n};\n"],
|
|
5
|
+
"mappings": "AAAO,IAAMA,EAAgB,cAUvBC,EAAiBC,GACrB,MAAM,QAAQA,CAAK,GAAKA,EAAM,MAAOC,GAAU,OAAOA,GAAU,QAAQ,EAAI,CAAC,GAAGD,CAAK,EAAI,OAE9EE,EAAgBC,GAA6C,CACxE,GAAI,OAAOA,GAAY,UAAYA,IAAY,KAAM,OACrD,IAAMC,EAAYD,EACZE,EAAUN,EAAcK,EAAU,OAAO,EAC/C,GAAI,SAAOA,EAAU,UAAa,UAAY,CAACC,GAC/C,MAAO,CACL,SAAUD,EAAU,SACpB,QAAAC,EACA,MAAOD,EAAU,QAAU,GAC3B,GAAI,OAAOA,EAAU,WAAc,SAAW,CAAE,UAAWA,EAAU,SAAU,EAAI,CAAC,CACtF,CACF",
|
|
6
|
+
"names": ["ASK_PLUGIN_ID", "stringArrayOf", "value", "entry", "askPayloadOf", "payload", "candidate", "options"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import{a as u}from"/plugins/ragents.ask/web/chunks/chunk-VUBJDIKQ.js";var M=u("react","createContext");var C=u("react","createElement");var k=u("react","forwardRef");var F=u("react","useContext");var D=u("react","useState");var b=a=>a?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();function U(a,e,d=[]){if(e==null)throw new Error("[lucide]: iconNode is required when icon name is used");return{name:b(a),size:24,node:e,...d.length>0?{aliases:d}:{}}}var O=a=>{let e="",d=!1;for(let t of a){if(t==="-"||t==="_"||t<=" "){d=e.length>0;continue}e.length===0?e+=t.toLowerCase():e+=d?t.toUpperCase():t,d=!1}return e};var H=a=>{let e=O(a);return e.charAt(0).toUpperCase()+e.slice(1)};var P=(...a)=>a.filter((e,d,t)=>!!e&&e.trim()!==""&&t.indexOf(e)===d).join(" ").trim();var c={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 R(a){return a!=null}function v(a,e={}){let d=e.attributeNames??{},t=l=>d[l]??l,r=a.size??a.width??c.width,p=a.size??a.height??c.height,s=a.aliases?.filter(l=>typeof l=="string"&&l.trim()!=="").map(l=>`lucide-${l}`)??[],m=[...a.name?[`lucide-${a.name}`]:[],...s],i=e.className?.split(" ").filter(Boolean)??[],L=e.includeDefaultClasses===!1?P(...i):P("lucide",...m,...i),o=e.absoluteStrokeWidth?Number(e.strokeWidth??c["stroke-width"])*Number(a.size??a.width??c.width)/Number(e.size??e.width??c.width):e.strokeWidth??c["stroke-width"];return["svg",{...Object.entries(c).reduce((l,[x,h])=>(l[t(x)]=h,l),{}),..."color"in e&&e.color&&{[t("stroke")]:e.color},..."size"in e&&R(e.size)&&{[t("width")]:e.size,[t("height")]:e.size},..."width"in e&&R(e.width)&&{[t("width")]:e.width},..."height"in e&&R(e.height)&&{[t("height")]:e.height},[t("stroke-width")]:o,...L&&{[t("class")]:L},[t("viewBox")]:`0 0 ${r} ${p}`,...e.hasA11yProp===!1?{[t("aria-hidden")]:"true"}:{},..."attributes"in e&&e.attributes},a.node.map(l=>{let[x,h,A]=l,B=e.nonScalingStroke?{[t("vector-effect")]:"non-scaling-stroke",...h}:h;return A?[x,B,A]:[x,B]})]}function G(a,e={}){return v(a,{...e,attributeNames:{...e.attributeNames,class:"className","stroke-width":"strokeWidth","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","vector-effect":"vectorEffect"}})}var E=a=>{for(let e in a)if(e.startsWith("aria-")||e==="role"||e==="title")return!0;return!1};var ee=M({});var W=()=>F(ee);var V=k(({color:a,size:e,width:d,height:t,strokeWidth:r,absoluteStrokeWidth:p,nonScalingStroke:s,className:m="",children:i,iconNode:L=[],icon:o={node:L,aliases:[],size:24},...I},l)=>{let{size:x=24,strokeWidth:h=2,absoluteStrokeWidth:A=!1,nonScalingStroke:B=!1,color:K="currentColor",className:Z=""}=W()??{},Q=!!i||E(I),[J,j,Y=[]]=G(o,{color:a??K,width:d??e??x,height:t??e??x,strokeWidth:r??h,absoluteStrokeWidth:p??A,nonScalingStroke:s??B,className:P(Z,m),hasA11yProp:Q,attributes:I});return C(J,{ref:l,...j},[...Y.map(([$,_])=>C($,_)),...Array.isArray(i)?i:[i]])});function z(a,e=[],d=[]){let t=typeof a=="string"?U(a,e,d):a,r=k(({className:p,...s},m)=>C(V,{ref:m,icon:t,className:p,...s}));return t.name&&(r.displayName=H(t.name)),r}var X={name:"check",size:24,node:[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]};X.node;var S=z(X);var g=u("@ragents/web/ui","Button");var w=u("@ragents/web/ui","Card");var T=u("@ragents/web/ui","Input");var ae=u("@ragents/web/ui","SectionLabel");var y=u("@ragents/web/ui","cn");var te=u("react/jsx-runtime","Fragment");var f=u("react/jsx-runtime","jsx");var n=u("react/jsx-runtime","jsxs");var q="gap-2.5 bg-background px-3.5 text-sm",N="h-auto w-full justify-start gap-2 px-3 py-1.5 text-left text-sm font-normal whitespace-normal";function Ba({text:a,question:e,answer:d,onAnswer:t}){let[r,p]=D([]),[s,m]=D("");if(d!==void 0)return n(w,{className:q,size:"sm",children:[f("div",{className:"leading-normal",children:a}),n("div",{className:"flex items-center gap-1.5 text-sm text-muted-foreground","data-question":"answered",children:[f(S,{className:"text-success",size:12}),d]})]});if(!t)return n(w,{className:q,size:"sm",children:[f("div",{className:"leading-normal",children:a}),f("ul",{className:"list-disc pl-6",children:e.options.map(o=>f("li",{children:o},o))})]});let i=o=>p(I=>I.includes(o)?I.filter(l=>l!==o):[...I,o]),L=()=>{let o=s.trim();o&&t(o)};return n(w,{className:q,size:"sm",children:[f("div",{className:"leading-normal",children:a}),f("div",{className:"flex flex-col items-stretch gap-1.5",children:e.options.map(o=>e.multi?n(g,{"aria-pressed":r.includes(o),className:y(N,"aria-pressed:border-primary aria-pressed:bg-accent"),"data-question":"option",onClick:()=>i(o),variant:"outline",children:[f("span",{className:"inline-flex size-3.5 flex-none items-center justify-center rounded-sm border border-border text-primary group-aria-pressed/button:border-primary",children:r.includes(o)&&f(S,{size:10})}),o]},o):f(g,{className:N,"data-question":"option",onClick:()=>t(o),variant:"outline",children:o},o))}),e.multi&&f(g,{className:"self-start",disabled:r.length===0,onClick:()=>t(r.join("; ")),size:"sm",children:"Auswahl \xFCbernehmen"}),n("div",{className:"flex gap-1.5",children:[f(T,{className:"flex-1",onChange:o=>m(o.target.value),onKeyDown:o=>{o.key==="Enter"&&L()},placeholder:"... oder frei antworten",value:s}),f(g,{disabled:s.trim()==="",onClick:L,size:"sm",variant:"outline",children:"Antworten"})]})]})}export{D as a,ae as b,te as c,f as d,n as e,Ba as f};
|
|
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/check.mjs:
|
|
17
|
+
lucide-react/dist/esm/lucide-react.mjs:
|
|
18
|
+
(**
|
|
19
|
+
* @license lucide-react v1.46.0 - ISC
|
|
20
|
+
*
|
|
21
|
+
* This source code is licensed under the ISC license.
|
|
22
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
23
|
+
*)
|
|
24
|
+
*/
|
|
25
|
+
//# sourceMappingURL=/plugins/ragents.ask/web/chunks/chunk-V7W3QDVS.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["ragents-host-value:react#createContext", "ragents-host-value:react#createElement", "ragents-host-value:react#forwardRef", "ragents-host-value:react#useContext", "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/check.ts", "ragents-host-value:@ragents/web/ui#Button", "ragents-host-value:@ragents/web/ui#Card", "ragents-host-value:@ragents/web/ui#Input", "ragents-host-value:@ragents/web/ui#SectionLabel", "ragents-host-value:@ragents/web/ui#cn", "ragents-host-value:react/jsx-runtime#Fragment", "ragents-host-value:react/jsx-runtime#jsx", "ragents-host-value:react/jsx-runtime#jsxs", "../../../../plugins/ragents.ask/web/QuestionCard.tsx"],
|
|
4
|
+
"sourcesContent": ["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\", \"useContext\");\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: 'check',\n size: 24,\n node: [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check\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 Check = createLucideIcon(__iconData);\n\nexport default Check;\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\", \"Card\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Input\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"SectionLabel\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"cn\");\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 { CheckIcon } from \"lucide-react\";\nimport { Button, Card, cn, Input } from \"@ragents/web/ui\";\nimport { useState } from \"react\";\nimport type { AskPayload } from \"../ask-payload\";\n\nconst cardClasses = \"gap-2.5 bg-background px-3.5 text-sm\";\nconst optionClasses = \"h-auto w-full justify-start gap-2 px-3 py-1.5 text-left text-sm font-normal whitespace-normal\";\n\n/**\n * R\u00FCckfrage-Karte: Optionen untereinander, wahlweise Einzel- oder Mehrfachauswahl\n * (question.multi), dazu immer eine freie Antwortzeile. Nach der Antwort nur noch Beleg.\n */\nexport function QuestionCard({\n text,\n question,\n answer,\n onAnswer,\n}: {\n text: string;\n question: AskPayload;\n answer?: string;\n onAnswer?: (text: string) => void;\n}) {\n const [gewaehlt, setGewaehlt] = useState<string[]>([]);\n const [frei, setFrei] = useState(\"\");\n\n if (answer !== undefined) {\n return (\n <Card className={cardClasses} size=\"sm\">\n <div className=\"leading-normal\">{text}</div>\n <div className=\"flex items-center gap-1.5 text-sm text-muted-foreground\" data-question=\"answered\">\n <CheckIcon className=\"text-success\" size={12} />\n {answer}\n </div>\n </Card>\n );\n }\n\n if (!onAnswer) {\n return (\n <Card className={cardClasses} size=\"sm\">\n <div className=\"leading-normal\">{text}</div>\n <ul className=\"list-disc pl-6\">{question.options.map((option) => <li key={option}>{option}</li>)}</ul>\n </Card>\n );\n }\n\n const umschalten = (option: string) =>\n setGewaehlt((bisher) =>\n bisher.includes(option) ? bisher.filter((o) => o !== option) : [...bisher, option]);\n\n const freiSenden = () => {\n const wert = frei.trim();\n if (wert) onAnswer(wert);\n };\n\n return (\n <Card className={cardClasses} size=\"sm\">\n <div className=\"leading-normal\">{text}</div>\n <div className=\"flex flex-col items-stretch gap-1.5\">\n {question.options.map((option) =>\n question.multi ? (\n <Button\n aria-pressed={gewaehlt.includes(option)}\n className={cn(optionClasses, \"aria-pressed:border-primary aria-pressed:bg-accent\")}\n data-question=\"option\"\n key={option}\n onClick={() => umschalten(option)}\n variant=\"outline\"\n >\n <span className=\"inline-flex size-3.5 flex-none items-center justify-center rounded-sm border border-border text-primary group-aria-pressed/button:border-primary\">\n {gewaehlt.includes(option) && <CheckIcon size={10} />}\n </span>\n {option}\n </Button>\n ) : (\n <Button className={optionClasses} data-question=\"option\" key={option} onClick={() => onAnswer(option)} variant=\"outline\">\n {option}\n </Button>\n ),\n )}\n </div>\n {question.multi && (\n <Button\n className=\"self-start\"\n disabled={gewaehlt.length === 0}\n onClick={() => onAnswer(gewaehlt.join(\"; \"))}\n size=\"sm\"\n >\n Auswahl \u00FCbernehmen\n </Button>\n )}\n <div className=\"flex gap-1.5\">\n <Input\n className=\"flex-1\"\n onChange={(event) => setFrei(event.target.value)}\n onKeyDown={(event) => {\n if (event.key === \"Enter\") freiSenden();\n }}\n placeholder=\"... oder frei antworten\"\n value={frei}\n />\n <Button disabled={frei.trim() === \"\"} onClick={freiSenden} size=\"sm\" variant=\"outline\">\n Antworten\n </Button>\n </div>\n </Card>\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["react_createContext_default", "read", "react_createElement_default", "read", "react_forwardRef_default", "read", "react_useContext_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", "Check", "createLucideIcon", "ui_Button_default", "read", "ui_Card_default", "read", "ui_Input_default", "read", "ui_SectionLabel_default", "read", "ui_cn_default", "read", "jsx_runtime_Fragment_default", "read", "jsx_runtime_jsx_default", "read", "jsx_runtime_jsxs_default", "read", "cardClasses", "optionClasses", "QuestionCard", "text", "question", "answer", "onAnswer", "gewaehlt", "setGewaehlt", "react_useState_default", "frei", "setFrei", "jsx_runtime_jsxs_default", "ui_Card_default", "jsx_runtime_jsx_default", "Check", "option", "umschalten", "bisher", "o", "freiSenden", "wert", "ui_Button_default", "ui_cn_default", "ui_Input_default", "event"]
|
|
7
|
+
}
|