@schlenkr/ragents 0.1.9 → 0.1.11
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/apps/server/package.json +1 -1
- package/apps/server/src/access-projection.ts +9 -39
- package/apps/server/src/access-service.ts +3 -3
- package/apps/server/src/access-session.ts +19 -19
- package/apps/server/src/api/contracts.ts +32 -29
- package/apps/server/src/api/core-methods.ts +21 -19
- package/apps/server/src/api/delivery.ts +2 -2
- package/apps/server/src/api/reference.ts +27 -27
- package/apps/server/src/api/rights.ts +18 -18
- package/apps/server/src/chat-handler.ts +5 -5
- package/apps/server/src/config-definition.ts +37 -10
- package/apps/server/src/config-file.ts +49 -49
- package/apps/server/src/config.ts +2 -0
- package/apps/server/src/data-directory.ts +2 -2
- package/apps/server/src/external-access.ts +1 -1
- package/apps/server/src/folder-install.ts +1 -1
- package/apps/server/src/help-files.ts +1 -1
- package/apps/server/src/host-api.json +8 -1
- package/apps/server/src/host-api.ts +3 -2
- package/apps/server/src/host-record.ts +3 -3
- package/apps/server/src/host-resolution-hooks.mjs +4 -4
- package/apps/server/src/host-version.ts +17 -17
- package/apps/server/src/host-web.ts +5 -5
- package/apps/server/src/main.ts +6 -6
- package/apps/server/src/missing-environment.ts +6 -6
- package/apps/server/src/parent-watch.ts +4 -4
- package/apps/server/src/plugin-build/build.ts +31 -31
- package/apps/server/src/plugin-build/host-api-names.ts +7 -7
- package/apps/server/src/plugin-build/plugin-description.ts +15 -15
- package/apps/server/src/plugin-build/typecheck.ts +1 -1
- package/apps/server/src/plugin-support/actor-programs/app-project.ts +19 -19
- package/apps/server/src/plugin-support/actor-programs/client-compiler.ts +4 -4
- package/apps/server/src/plugin-support/actor-programs/client-contracts.ts +11 -11
- package/apps/server/src/plugin-support/actor-programs/contract.ts +17 -17
- package/apps/server/src/plugin-support/actor-programs/runtime-libraries.ts +1 -1
- package/apps/server/src/plugin-support/actor-programs/workflow/index.ts +5 -5
- package/apps/server/src/plugin-support/actor-programs/workflow/prompt-reader.ts +2 -2
- package/apps/server/src/plugin-support/chat-display-policy.ts +2 -2
- package/apps/server/src/plugin-support/front-matter.ts +6 -6
- package/apps/server/src/plugin-support/http.ts +2 -2
- package/apps/server/src/plugin-support/language-server/contract.ts +8 -8
- package/apps/server/src/plugin-support/language-server/plugin.ts +2 -2
- package/apps/server/src/plugin-support/language-server/snapshot-method.ts +1 -1
- package/apps/server/src/plugin-support/language-server/tools.ts +11 -11
- package/apps/server/src/plugin-support/model-aliases.ts +30 -20
- package/apps/server/src/plugin-support/model-choice.ts +15 -15
- package/apps/server/src/plugin-support/model-completion.ts +44 -23
- package/apps/server/src/plugin-support/model-providers.ts +170 -0
- package/apps/server/src/plugin-support/model-upstreams.ts +1 -1
- package/apps/server/src/plugin-support/native-typescript-child.ts +4 -4
- package/apps/server/src/plugin-support/native-typescript-executor.ts +12 -12
- package/apps/server/src/plugin-support/plugin-config.ts +3 -3
- package/apps/server/src/plugin-support/plugin-folder.ts +2 -2
- package/apps/server/src/plugin-support/plugins-root.ts +2 -2
- package/apps/server/src/plugin-support/process-sandbox.ts +48 -47
- package/apps/server/src/plugin-support/product-model-settings-contract.ts +3 -3
- package/apps/server/src/plugin-support/product-model-settings.ts +10 -10
- package/apps/server/src/plugin-support/product-relay.ts +9 -9
- package/apps/server/src/plugin-support/product-start-options.ts +4 -4
- package/apps/server/src/plugin-support/prompt.ts +1 -1
- package/apps/server/src/plugin-support/provision.ts +8 -8
- package/apps/server/src/plugin-support/run-scripts.ts +17 -17
- package/apps/server/src/plugin-support/skills.ts +18 -18
- package/apps/server/src/plugin-support/start-entries-contract.ts +17 -17
- package/apps/server/src/plugin-support/start-options-contract.ts +5 -5
- package/apps/server/src/plugin-support/system-prompts.ts +11 -11
- package/apps/server/src/plugin-support/thinking-level.ts +2 -2
- package/apps/server/src/plugin-support/tool-availability.ts +2 -2
- package/apps/server/src/plugin-support/workspace-ownership.ts +5 -5
- package/apps/server/src/plugin-support/workspace-sandbox-host.ts +37 -37
- package/apps/server/src/plugin-support/zip.ts +7 -7
- package/apps/server/src/profile/bundle-manifest.ts +17 -17
- package/apps/server/src/profile/compose.ts +12 -7
- package/apps/server/src/profile/plugin-discovery.ts +12 -12
- package/apps/server/src/profile/provisioning.ts +5 -5
- package/apps/server/src/profile-target.ts +10 -10
- package/apps/server/src/protocol.ts +2 -2
- package/apps/server/src/provider.ts +63 -58
- package/apps/server/src/ragents/actor-chat-history.ts +8 -8
- package/apps/server/src/ragents/chat-text-positions.ts +2 -2
- package/apps/server/src/ragents/coordinator.ts +2 -2
- package/apps/server/src/ragents/engine.ts +25 -24
- package/apps/server/src/ragents/global-chat.ts +14 -8
- package/apps/server/src/ragents/host-services.ts +6 -3
- package/apps/server/src/ragents/journal-chat-events.ts +1 -1
- package/apps/server/src/ragents/run-owner.ts +2 -2
- package/apps/server/src/ragents/session.ts +49 -49
- package/apps/server/src/ragents/typescript-tools.ts +12 -12
- package/apps/server/src/ragents/workspace-runtime.ts +28 -28
- package/apps/server/src/rpc/dispatcher.ts +19 -19
- package/apps/server/src/rpc/http-transport.ts +11 -11
- package/apps/server/src/rpc/stdio-transport.ts +3 -3
- package/apps/server/src/run-preparation-input.ts +5 -5
- package/apps/server/src/run-preparation.ts +24 -24
- package/apps/server/src/run-transfer.ts +39 -39
- package/apps/server/src/server.ts +51 -49
- package/apps/server/src/settings.ts +1 -1
- package/apps/server/src/startup.ts +3 -3
- package/apps/server/src/title-compactor.ts +9 -9
- package/apps/server/src/title-settings.ts +3 -3
- package/apps/server/src/web-bundles.ts +2 -2
- package/apps/server/src/web-stylesheet.ts +2 -2
- package/apps/web/dist/assets/{highlighted-body-KPVGNVTW-xXXhTDbh.js → highlighted-body-KPVGNVTW-BfNSGxjB.js} +1 -1
- package/apps/web/dist/assets/main-D6bsKcIK.js +11 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-DROEqEeg.js +608 -0
- package/apps/web/dist/assets/runPanel-Dumuuqry.js +21 -0
- package/apps/web/dist/help/guide-access.html +5 -5
- package/apps/web/dist/help/guide-access.md +2 -2
- package/apps/web/dist/help/guide-clients.html +64 -55
- package/apps/web/dist/help/guide-clients.md +62 -52
- package/apps/web/dist/help/guide-distributed.html +12 -7
- package/apps/web/dist/help/guide-distributed.md +9 -4
- package/apps/web/dist/help/guide-functions.html +3 -3
- package/apps/web/dist/help/guide-getting-started.html +24 -15
- package/apps/web/dist/help/guide-getting-started.md +22 -12
- package/apps/web/dist/help/guide-ideas.html +3 -3
- package/apps/web/dist/help/guide-plugins.html +5 -4
- package/apps/web/dist/help/guide-plugins.md +2 -1
- package/apps/web/dist/help/guide-programs.html +3 -3
- package/apps/web/dist/help/guide-runtime.html +6 -6
- package/apps/web/dist/help/guide-runtime.md +3 -3
- package/apps/web/dist/help/guide.html +3 -3
- package/apps/web/dist/help/index.html +1997 -942
- package/apps/web/dist/help/mini-app.css +30 -0
- package/apps/web/dist/help/mini-app.js +14 -14
- package/apps/web/dist/host-web.json +90 -90
- package/apps/web/dist/index.html +3 -3
- package/apps/web/dist/run-panel.html +3 -3
- package/apps/web/package.json +1 -1
- package/apps/web/src/AccessContext.tsx +15 -15
- package/apps/web/src/App.tsx +13 -13
- package/apps/web/src/DiffCode.tsx +2 -2
- package/apps/web/src/HelpDialog.tsx +3 -3
- package/apps/web/src/Overview.tsx +13 -13
- package/apps/web/src/PluginActivation.ts +1 -1
- package/apps/web/src/PluginChat.tsx +15 -15
- package/apps/web/src/PluginFailureNotice.tsx +1 -1
- package/apps/web/src/PluginRegistry.tsx +44 -44
- package/apps/web/src/RunPreparationChat.tsx +11 -11
- package/apps/web/src/RunStore.ts +1 -1
- package/apps/web/src/SessionList.tsx +14 -14
- package/apps/web/src/SettingsModal.tsx +112 -112
- package/apps/web/src/StartOptions.tsx +11 -11
- package/apps/web/src/StartSelection.tsx +11 -11
- package/apps/web/src/StartTiles.tsx +8 -8
- package/apps/web/src/SurfaceShortcuts.tsx +3 -3
- package/apps/web/src/ThemeSettings.tsx +8 -8
- package/apps/web/src/TitleModelSettings.tsx +13 -13
- package/apps/web/src/WorkspacePanel.tsx +9 -9
- package/apps/web/src/access-session.ts +4 -4
- package/apps/web/src/access-token.ts +5 -5
- package/apps/web/src/actor-conversation.ts +3 -3
- package/apps/web/src/actor-programs/client-ui/DataTable.tsx +8 -8
- package/apps/web/src/actor-programs/client-ui/FilePicker.tsx +4 -4
- package/apps/web/src/actor-programs/client-ui/FlowDiagram.tsx +13 -13
- package/apps/web/src/actor-programs/client-ui/Viewers.tsx +4 -4
- package/apps/web/src/actor-programs/client-ui/WorkflowDiagram.tsx +1 -1
- package/apps/web/src/actor-programs/client-ui/file-contracts.d.ts +4 -4
- package/apps/web/src/actor-programs/client-ui/file-selection.ts +1 -1
- package/apps/web/src/actor-programs/client-ui/viewer-contracts.d.ts +3 -3
- package/apps/web/src/api.ts +7 -7
- package/apps/web/src/chat/StoppedActorNotice.tsx +5 -5
- package/apps/web/src/chat/chat-target.ts +3 -3
- package/apps/web/src/chat/requests.ts +2 -2
- package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
- package/apps/web/src/chat-view-settings.tsx +5 -6
- package/apps/web/src/diff-view.css +1 -1
- package/apps/web/src/highlighting.css +1 -1
- package/apps/web/src/language-server/language-server-plugin.tsx +30 -30
- package/apps/web/src/lib/labels.ts +6 -6
- package/apps/web/src/main.tsx +4 -4
- package/apps/web/src/offered-machines.ts +2 -2
- package/apps/web/src/page-opener.tsx +1 -1
- package/apps/web/src/panel/ConnectionsPage.tsx +26 -23
- package/apps/web/src/panel/LoginForm.tsx +6 -6
- package/apps/web/src/panel/PanelDialogs.tsx +22 -22
- package/apps/web/src/panel/PanelHeader.tsx +2 -2
- package/apps/web/src/panel/PanelPage.tsx +1 -1
- package/apps/web/src/panel/RunLine.tsx +4 -4
- package/apps/web/src/panel/RunsPage.tsx +15 -15
- package/apps/web/src/panel/StartPage.tsx +29 -26
- package/apps/web/src/panel/connection-state.ts +9 -9
- package/apps/web/src/panel/contract.ts +34 -27
- package/apps/web/src/panel.tsx +1 -1
- package/apps/web/src/plugin-bootstrap.ts +5 -5
- package/apps/web/src/product/ModelControl.tsx +3 -3
- package/apps/web/src/product/ProductModelSettings.tsx +16 -16
- package/apps/web/src/product/SystemPromptControl.tsx +11 -11
- package/apps/web/src/product/model-settings.ts +2 -2
- package/apps/web/src/rpc/client.ts +16 -16
- package/apps/web/src/rpc.ts +1 -1
- package/apps/web/src/run-overview.ts +1 -1
- package/apps/web/src/run-panel/RunPanelApp.tsx +39 -39
- package/apps/web/src/run-panel/RunPanelHeader.tsx +6 -6
- package/apps/web/src/run-panel/RunPanelMenu.tsx +6 -6
- package/apps/web/src/run-panel/RunPanelRail.tsx +4 -4
- package/apps/web/src/run-panel/RunPanelWorkspace.tsx +3 -3
- package/apps/web/src/run-panel/clipboard.ts +3 -3
- package/apps/web/src/run-panel/host-contract.ts +5 -5
- package/apps/web/src/run-panel/host.ts +15 -15
- package/apps/web/src/run-panel/input-bridge.ts +1 -1
- package/apps/web/src/run-panel/run-panel-location.ts +5 -5
- package/apps/web/src/run-panel/use-session-list.ts +1 -1
- package/apps/web/src/run-panel/workspace-state.ts +3 -3
- package/apps/web/src/run-panel.tsx +4 -4
- package/apps/web/src/run-preparation.ts +2 -2
- package/apps/web/src/run-view.ts +3 -3
- package/apps/web/src/settings-contributions.ts +32 -32
- package/apps/web/src/theme.ts +9 -9
- package/apps/web/src/title-model-settings.ts +6 -6
- package/apps/web/src/ui/ListDetail.tsx +9 -9
- package/apps/web/src/ui/dialog.tsx +2 -2
- package/apps/web/src/ui/modal-controller.ts +3 -3
- package/apps/web/src/ui/modal.tsx +2 -2
- package/apps/web/src/ui/popover.tsx +1 -1
- package/apps/web/src/ui/relative-time.ts +8 -8
- package/apps/web/src/ui/startup-notice.tsx +2 -2
- package/apps/web/src/ui/state-icon.tsx +1 -1
- package/apps/web/src/ui/state-vocabulary.ts +16 -16
- package/apps/web/src/ui/stop-button.tsx +2 -2
- package/bundles/ragents.activity/ragents-bundle.json +2 -2
- package/bundles/ragents.activity/web/classes.json +1 -1
- package/bundles/ragents.activity/web/index.js +1 -1
- package/bundles/ragents.activity/web/index.js.map +2 -2
- package/bundles/ragents.actor-programs/ragents-bundle.json +2 -2
- package/bundles/ragents.actor-programs/server/index.js +256 -228
- package/bundles/ragents.actor-programs/server/index.js.map +4 -4
- package/bundles/ragents.actor-programs/web/classes.json +1 -1
- package/bundles/ragents.actor-programs/web/index.js +1 -1
- package/bundles/ragents.actor-programs/web/index.js.map +3 -3
- package/bundles/ragents.ask/ragents-bundle.json +2 -4
- package/bundles/ragents.ask/server/chunks/{chunk-PDJO75SQ.js → chunk-YOV27MAR.js} +2 -2
- package/bundles/ragents.ask/server/chunks/chunk-YOV27MAR.js.map +7 -0
- package/bundles/ragents.ask/server/exports/server/contract.js +1 -1
- package/bundles/ragents.ask/server/index.js +23 -23
- package/bundles/ragents.ask/server/index.js.map +2 -2
- package/bundles/ragents.ask/web/chunks/{chunk-WFN4374U.js → chunk-D6NNB5DS.js} +1 -1
- package/bundles/ragents.ask/web/chunks/chunk-D6NNB5DS.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/{chunk-V7W3QDVS.js → chunk-IQBHK7MV.js} +2 -2
- package/bundles/ragents.ask/web/chunks/{chunk-V7W3QDVS.js.map → chunk-IQBHK7MV.js.map} +4 -4
- package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js.map +7 -0
- package/bundles/ragents.ask/web/classes.json +1 -1
- package/bundles/ragents.ask/web/exports/ask-payload.js +1 -1
- package/bundles/ragents.ask/web/exports/web/QuestionCard.js +1 -1
- package/bundles/ragents.ask/web/exports/web/api.js +1 -1
- package/bundles/ragents.ask/web/index.js +1 -1
- package/bundles/ragents.ask/web/index.js.map +4 -4
- package/bundles/ragents.browser/executor/index.mjs +35 -35
- package/bundles/ragents.browser/executor/index.mjs.map +2 -2
- package/bundles/ragents.browser/ragents-bundle.json +2 -2
- package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js → chunk-PYEISBNE.js} +1 -1
- package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js.map → chunk-PYEISBNE.js.map} +1 -1
- package/bundles/ragents.browser/server/exports/server/contract.js +1 -1
- package/bundles/ragents.browser/server/index.js +31 -31
- package/bundles/ragents.browser/server/index.js.map +2 -2
- package/bundles/ragents.browser/skills/browser-testing/SKILL.md +30 -30
- package/bundles/ragents.documents/prompt.hbs +1 -1
- package/bundles/ragents.documents/ragents-bundle.json +2 -2
- package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js → chunk-KMZWOVTI.js} +3 -3
- package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js.map → chunk-KMZWOVTI.js.map} +2 -2
- package/bundles/ragents.documents/server/exports/contract.js +1 -1
- package/bundles/ragents.documents/server/index.js +26 -26
- package/bundles/ragents.documents/server/index.js.map +2 -2
- package/bundles/ragents.documents/web/classes.json +1 -1
- package/bundles/ragents.documents/web/index.js +1 -1
- package/bundles/ragents.documents/web/index.js.map +3 -3
- package/bundles/ragents.lsp-fsharp/executor/index.mjs +4 -4
- package/bundles/ragents.lsp-fsharp/executor/index.mjs.map +2 -2
- package/bundles/ragents.lsp-fsharp/ragents-bundle.json +2 -2
- package/bundles/ragents.lsp-fsharp/server/index.js +5 -5
- package/bundles/ragents.lsp-fsharp/server/index.js.map +2 -2
- package/bundles/ragents.lsp-fsharp/web/index.js +1 -1
- package/bundles/ragents.lsp-fsharp/web/index.js.map +2 -2
- package/bundles/ragents.lsp-roslyn/executor/index.mjs +3 -3
- package/bundles/ragents.lsp-roslyn/executor/index.mjs.map +2 -2
- package/bundles/ragents.lsp-roslyn/ragents-bundle.json +2 -2
- package/bundles/ragents.lsp-roslyn/server/index.js +17 -17
- package/bundles/ragents.lsp-roslyn/server/index.js.map +2 -2
- package/bundles/ragents.lsp-roslyn/web/index.js +1 -1
- package/bundles/ragents.lsp-roslyn/web/index.js.map +2 -2
- package/bundles/ragents.lsp-typescript/executor/index.mjs +2 -2
- package/bundles/ragents.lsp-typescript/executor/index.mjs.map +2 -2
- package/bundles/ragents.lsp-typescript/ragents-bundle.json +2 -2
- package/bundles/ragents.lsp-typescript/server/index.js.map +1 -1
- package/bundles/ragents.lsp-typescript/web/index.js +1 -1
- package/bundles/ragents.lsp-typescript/web/index.js.map +2 -2
- package/bundles/ragents.model-relay/ragents-bundle.json +7 -3
- package/bundles/ragents.model-relay/server/index.js +25 -21
- package/bundles/ragents.model-relay/server/index.js.map +2 -2
- package/bundles/ragents.orchestration/ragents-bundle.json +2 -2
- package/bundles/ragents.orchestration/server/index.js +28 -28
- package/bundles/ragents.orchestration/server/index.js.map +2 -2
- package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js → chunk-CFMJD5ZI.js} +2 -2
- package/bundles/ragents.orchestration/web/chunks/chunk-HOBLI364.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/{chunk-OQYCNYXN.js.map → chunk-HOBLI364.js.map} +2 -2
- package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js → chunk-UCIMT2R4.js} +2 -2
- package/bundles/ragents.orchestration/web/classes.json +1 -1
- package/bundles/ragents.orchestration/web/exports/web/program-slot.js +1 -1
- package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +1 -1
- package/bundles/ragents.orchestration/web/index.js +8 -8
- package/bundles/ragents.orchestration/web/index.js.map +3 -3
- package/bundles/ragents.overseer/ragents-bundle.json +2 -2
- package/bundles/ragents.overseer/server/index.js +99 -99
- package/bundles/ragents.overseer/server/index.js.map +2 -2
- package/bundles/ragents.overseer/web/classes.json +1 -1
- package/bundles/ragents.overseer/web/index.js +1 -1
- package/bundles/ragents.overseer/web/index.js.map +2 -2
- package/bundles/ragents.processes/ragents-bundle.json +2 -2
- package/bundles/ragents.processes/server/index.js +11 -11
- package/bundles/ragents.processes/server/index.js.map +2 -2
- package/bundles/ragents.processes/web/classes.json +1 -1
- package/bundles/ragents.processes/web/index.js +3 -3
- package/bundles/ragents.processes/web/index.js.map +2 -2
- package/bundles/ragents.product/ragents-bundle.json +2 -2
- package/bundles/ragents.product/server/index.js +12 -13
- package/bundles/ragents.product/server/index.js.map +2 -2
- package/bundles/ragents.product/web/classes.json +1 -1
- package/bundles/ragents.product/web/index.js +1 -1
- package/bundles/ragents.product/web/index.js.map +2 -2
- package/bundles/ragents.profile-distribution/ragents-bundle.json +2 -2
- package/bundles/ragents.profile-distribution/server/index.js +31 -31
- package/bundles/ragents.profile-distribution/server/index.js.map +2 -2
- package/bundles/ragents.reference/ragents-bundle.json +2 -2
- package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
- package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
- package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
- package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
- package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
- package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
- package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
- package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
- package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
- package/bundles/ragents.reference/run-scripts/moderated-round/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
- package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
- package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
- package/bundles/ragents.reference/run-scripts/word-game/RUN.md +18 -18
- package/bundles/ragents.reference/run-scripts/word-game/package.json +2 -2
- package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
- package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
- package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
- package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
- package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/decision-brief/SKILL.md +24 -24
- package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
- package/bundles/ragents.reference/web/classes.json +1 -1
- package/bundles/ragents.reference/web/index.js +1 -1
- package/bundles/ragents.reference/web/index.js.map +2 -2
- package/bundles/ragents.todo/ragents-bundle.json +2 -2
- package/bundles/ragents.todo/server/index.js +5 -5
- package/bundles/ragents.todo/server/index.js.map +2 -2
- package/bundles/ragents.todo/web/classes.json +1 -1
- package/bundles/ragents.todo/web/index.js +1 -1
- package/bundles/ragents.todo/web/index.js.map +2 -2
- package/bundles/ragents.transcript/ragents-bundle.json +2 -2
- package/bundles/ragents.transcript/server/index.js +11 -11
- package/bundles/ragents.transcript/server/index.js.map +2 -2
- package/bundles/ragents.watch/ragents-bundle.json +2 -2
- package/bundles/ragents.watch/server/index.js +48 -48
- package/bundles/ragents.watch/server/index.js.map +2 -2
- package/bundles/ragents.workspace/ragents-bundle.json +2 -2
- package/bundles/ragents.workspace/server/index.js +83 -81
- package/bundles/ragents.workspace/server/index.js.map +2 -2
- package/bundles/ragents.workspace/web/classes.json +1 -1
- package/bundles/ragents.workspace/web/index.js +1 -1
- package/bundles/ragents.workspace/web/index.js.map +2 -2
- package/package.json +4 -4
- package/packages/agent/dist/core/model-runtime.d.ts +7 -2
- package/packages/agent/dist/core/tools/bash.d.ts +1 -1
- package/packages/agent/dist/index.d.ts +1 -1
- package/packages/agent/dist/loop/agent-loop.d.ts +2 -2
- package/packages/agent/src/core/compaction/utils.ts +1 -1
- package/packages/agent/src/core/model-runtime.ts +45 -5
- package/packages/agent/src/core/tools/bash.ts +1 -1
- package/packages/agent/src/index.ts +1 -1
- package/packages/agent/src/loop/agent-loop.ts +2 -2
- package/packages/ai/dist/models.d.ts +1 -0
- package/packages/ai/dist/models.generated.d.ts +4544 -983
- package/packages/ai/dist/providers/openrouter.models.d.ts +4544 -983
- package/packages/ai/src/api/ai-sdk.ts +33 -7
- package/packages/ai/src/api-registry.ts +1 -1
- package/packages/ai/src/index.ts +2 -2
- package/packages/ai/src/models.generated.ts +1 -1
- package/packages/ai/src/models.ts +1 -1
- package/packages/ai/src/providers/openrouter.models.ts +3723 -550
- package/packages/ragents/src/access.ts +12 -12
- package/packages/ragents/src/agents/actor-input.ts +33 -33
- package/packages/ragents/src/agents/catalog.ts +1 -1
- package/packages/ragents/src/agents/delivery.ts +17 -17
- package/packages/ragents/src/agents/plugins.ts +1 -1
- package/packages/ragents/src/agents/scheduler.ts +7 -7
- package/packages/ragents/src/agents/schemas.ts +1 -1
- package/packages/ragents/src/agents/tool-orientation.ts +4 -4
- package/packages/ragents/src/agents/tools.ts +20 -20
- package/packages/ragents/src/agents/toolset.ts +5 -5
- package/packages/ragents/src/agents/workspaces.ts +1 -1
- package/packages/ragents/src/domain/events.ts +1 -1
- package/packages/ragents/src/domain/model.ts +5 -5
- package/packages/ragents/src/drivers/agent-runtime.ts +1 -1
- package/packages/ragents/src/drivers/agent-turn.ts +4 -4
- package/packages/ragents/src/drivers/agent.ts +2 -2
- package/packages/ragents/src/drivers/attachments.ts +4 -4
- package/packages/ragents/src/http/contracts.ts +14 -14
- package/packages/ragents/src/http/methods.ts +6 -6
- package/packages/ragents/src/index.ts +1 -0
- package/packages/ragents/src/plugin-host.ts +162 -116
- package/packages/ragents/src/plugin-types.ts +29 -10
- package/packages/ragents/src/rpc/contract.ts +5 -5
- package/packages/ragents/src/rpc/contribution.ts +2 -2
- package/packages/ragents/src/rpc/peer.ts +11 -11
- package/packages/ragents/src/rpc/protocol.ts +2 -2
- package/packages/ragents/src/runtime/decisions/turns.ts +1 -1
- package/packages/ragents/src/runtime/journal.ts +10 -10
- package/packages/ragents/src/runtime/orchestration.ts +8 -8
- package/packages/ragents/src/runtime/stop.ts +2 -2
- package/packages/ragents/src/script/mediators.ts +35 -35
- package/packages/ragents/src/typescript/async-compiler.ts +14 -14
- package/packages/ragents/src/typescript/compiler-worker.ts +2 -2
- package/packages/ragents/src/typescript/compiler.ts +7 -7
- package/packages/ragents/src/typescript/snippet.ts +5 -5
- package/packages/workspace-executor/src/bash-launch.ts +13 -13
- package/packages/workspace-executor/src/commands.ts +18 -18
- package/packages/workspace-executor/src/context.ts +15 -15
- package/packages/workspace-executor/src/contributions.ts +35 -35
- package/packages/workspace-executor/src/errors.ts +1 -1
- package/packages/workspace-executor/src/executor.ts +15 -15
- package/packages/workspace-executor/src/files.ts +30 -30
- package/packages/workspace-executor/src/language-server/contract.ts +2 -2
- package/packages/workspace-executor/src/language-server/diagnostics.ts +4 -4
- package/packages/workspace-executor/src/language-server/host.ts +35 -35
- package/packages/workspace-executor/src/language-server/json-rpc.ts +4 -4
- package/packages/workspace-executor/src/language-server/module.ts +11 -11
- package/packages/workspace-executor/src/language-server/roots.ts +3 -3
- package/packages/workspace-executor/src/language-server/session.ts +15 -15
- package/packages/workspace-executor/src/language-server/workspace-solutions.ts +2 -2
- package/packages/workspace-executor/src/managed-process.ts +35 -7
- package/packages/workspace-executor/src/module.ts +8 -8
- package/packages/workspace-executor/src/modules.ts +3 -3
- package/packages/workspace-executor/src/paths.ts +11 -11
- package/packages/workspace-executor/src/process-sandbox.ts +3 -3
- package/packages/workspace-executor/src/processes/module.ts +3 -3
- package/packages/workspace-executor/src/processes/process-table.ts +20 -20
- package/packages/workspace-executor/src/processes/scanner.ts +3 -3
- package/packages/workspace-executor/src/processes/snapshot.ts +2 -2
- package/packages/workspace-executor/src/processes/terminator.ts +13 -13
- package/packages/workspace-executor/src/run-folders.ts +3 -3
- package/packages/workspace-executor/src/safe-environment.ts +4 -4
- package/packages/workspace-executor/src/sandbox-tools.ts +37 -31
- package/packages/workspace-executor/src/session-ident.ts +2 -2
- package/packages/workspace-executor/src/shell-platform.ts +2 -2
- package/packages/workspace-executor/src/tools.ts +5 -5
- package/plugins/ragents.activity/web/ActivityHeader.tsx +3 -3
- package/plugins/ragents.activity/web/activity.ts +2 -2
- package/plugins/ragents.actor-programs/server/access-projections.ts +31 -0
- package/plugins/ragents.actor-programs/server/agent-tools.ts +2 -2
- package/plugins/ragents.actor-programs/server/capability-resolver.ts +3 -3
- package/plugins/ragents.actor-programs/server/controls-template.ts +46 -46
- package/plugins/ragents.actor-programs/server/controls-tool.ts +4 -4
- package/plugins/ragents.actor-programs/server/index.ts +2 -0
- package/plugins/ragents.actor-programs/server/limits.ts +3 -3
- package/plugins/ragents.actor-programs/server/methods.ts +1 -1
- package/plugins/ragents.actor-programs/server/project-diagnostics.ts +8 -8
- package/plugins/ragents.actor-programs/server/routes.ts +8 -8
- package/plugins/ragents.actor-programs/server/runtime.ts +90 -90
- package/plugins/ragents.actor-programs/server/templates.ts +59 -59
- package/plugins/ragents.actor-programs/server/test-report.ts +5 -5
- package/plugins/ragents.actor-programs/server/tool-contributor.ts +1 -1
- package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +17 -17
- package/plugins/ragents.actor-programs/web/AppsPanel.tsx +26 -26
- package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +3 -3
- package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +2 -2
- package/plugins/ragents.actor-programs/web/FunctionForm.tsx +16 -16
- package/plugins/ragents.actor-programs/web/ProgramSource.tsx +5 -5
- package/plugins/ragents.actor-programs/web/api.ts +36 -36
- package/plugins/ragents.actor-programs/web/bridge.ts +8 -8
- package/plugins/ragents.actor-programs/web/chat-state.ts +4 -4
- package/plugins/ragents.actor-programs/web/context.ts +1 -1
- package/plugins/ragents.actor-programs/web/function-input.ts +6 -6
- package/plugins/ragents.actor-programs/web/index.tsx +1 -1
- package/plugins/ragents.actor-programs/web/program-state.ts +4 -4
- package/plugins/ragents.ask/ask-payload.ts +1 -1
- package/plugins/ragents.ask/contract.ts +5 -5
- package/plugins/ragents.ask/server/answer-method.ts +1 -1
- package/plugins/ragents.ask/server/ask-service.ts +9 -9
- package/plugins/ragents.ask/server/ask-tool.ts +10 -10
- package/plugins/ragents.ask/server/contract.ts +5 -5
- package/plugins/ragents.ask/web/AskActionView.tsx +1 -1
- package/plugins/ragents.ask/web/QuestionCard.tsx +22 -22
- package/plugins/ragents.ask/web/index.tsx +2 -8
- package/plugins/ragents.browser/executor/contract.ts +6 -6
- package/plugins/ragents.browser/executor/index.ts +1 -1
- package/plugins/ragents.browser/executor/module.ts +6 -6
- package/plugins/ragents.browser/executor/pages.ts +32 -32
- package/plugins/ragents.browser/executor/playwright.ts +8 -8
- package/plugins/ragents.browser/provision.ts +7 -7
- package/plugins/ragents.browser/server/browser.ts +14 -14
- package/plugins/ragents.browser/server/contract.ts +1 -1
- package/plugins/ragents.browser/server/index.ts +1 -1
- package/plugins/ragents.browser/server/tools.ts +14 -14
- package/plugins/ragents.browser/skills/browser-testing/SKILL.md +30 -30
- package/plugins/ragents.documents/contract.ts +2 -2
- package/plugins/ragents.documents/prompt.hbs +1 -1
- package/plugins/ragents.documents/server/document-write-tool.ts +12 -12
- package/plugins/ragents.documents/server/files-route.ts +6 -6
- package/plugins/ragents.documents/server/show-document-tool.ts +26 -26
- package/plugins/ragents.documents/server/store.ts +1 -1
- package/plugins/ragents.documents/web/DocumentViewer.tsx +37 -37
- package/plugins/ragents.documents/web/index.tsx +11 -11
- package/plugins/ragents.lsp-fsharp/executor.ts +7 -7
- package/plugins/ragents.lsp-fsharp/provision.ts +7 -7
- package/plugins/ragents.lsp-roslyn/executor.ts +5 -5
- package/plugins/ragents.lsp-roslyn/provision.ts +4 -4
- package/plugins/ragents.lsp-roslyn/server/index.ts +5 -5
- package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +13 -13
- package/plugins/ragents.lsp-typescript/executor.ts +3 -3
- package/plugins/ragents.model-relay/server/config.ts +6 -2
- package/plugins/ragents.model-relay/server/index.ts +2 -2
- package/plugins/ragents.model-relay/server/relay.ts +23 -22
- package/plugins/ragents.orchestration/contract.ts +8 -8
- package/plugins/ragents.orchestration/server/index.ts +4 -4
- package/plugins/ragents.orchestration/server/run-stop-tool.ts +3 -3
- package/plugins/ragents.orchestration/server/surface-tool.ts +5 -5
- package/plugins/ragents.orchestration/tiled-layout.ts +11 -11
- package/plugins/ragents.orchestration/web/ActorChat.tsx +2 -2
- package/plugins/ragents.orchestration/web/ActorChatControls.tsx +4 -4
- package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +1 -1
- package/plugins/ragents.orchestration/web/ActorPopout.tsx +1 -1
- package/plugins/ragents.orchestration/web/ActorShortcut.tsx +6 -6
- package/plugins/ragents.orchestration/web/ActorSurfaceControls.tsx +15 -15
- package/plugins/ragents.orchestration/web/ActorTile.tsx +1 -1
- package/plugins/ragents.orchestration/web/Center.tsx +5 -5
- package/plugins/ragents.orchestration/web/DocumentsSection.tsx +2 -2
- package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +15 -15
- package/plugins/ragents.orchestration/web/FlowInspector.tsx +103 -103
- package/plugins/ragents.orchestration/web/JournalStatus.tsx +11 -11
- package/plugins/ragents.orchestration/web/MaterialBody.tsx +2 -2
- package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
- package/plugins/ragents.orchestration/web/TiledSurface.tsx +9 -9
- package/plugins/ragents.orchestration/web/actor-header-settings.ts +5 -5
- package/plugins/ragents.orchestration/web/constants.ts +2 -2
- package/plugins/ragents.orchestration/web/executions.ts +6 -6
- package/plugins/ragents.orchestration/web/format.ts +1 -1
- package/plugins/ragents.orchestration/web/index.tsx +2 -2
- package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +7 -7
- package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +8 -8
- package/plugins/ragents.orchestration/web/run-panel/RunPanel.tsx +29 -28
- package/plugins/ragents.orchestration/web/run-panel/RunPanelSettings.tsx +7 -7
- package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +13 -13
- package/plugins/ragents.orchestration/web/run-panel/run-panel-actors.ts +3 -3
- package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +2 -2
- package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +3 -3
- package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +7 -7
- package/plugins/ragents.orchestration/web/run-panel/sheet-status.ts +10 -10
- package/plugins/ragents.orchestration/web/surface-startup.ts +8 -8
- package/plugins/ragents.orchestration/web/surface-view-settings.ts +1 -1
- package/plugins/ragents.orchestration/web/tiled-view-settings.ts +1 -1
- package/plugins/ragents.overseer/contract.ts +20 -20
- package/plugins/ragents.overseer/server/api.ts +8 -8
- package/plugins/ragents.overseer/server/coordinator-prompt.ts +10 -10
- package/plugins/ragents.overseer/server/coordinator.ts +4 -4
- package/plugins/ragents.overseer/server/index.ts +24 -24
- package/plugins/ragents.overseer/server/orientation.ts +8 -8
- package/plugins/ragents.overseer/server/quick-answer.ts +9 -9
- package/plugins/ragents.overseer/server/run-directory.ts +5 -5
- package/plugins/ragents.overseer/server/settings.ts +6 -6
- package/plugins/ragents.overseer/server/user-location.ts +16 -16
- package/plugins/ragents.overseer/web/ModelSettings.tsx +9 -9
- package/plugins/ragents.overseer/web/index.tsx +20 -20
- 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/server/methods.ts +4 -4
- package/plugins/ragents.processes/server/observer.ts +8 -8
- package/plugins/ragents.processes/server/run-processes.ts +2 -2
- package/plugins/ragents.processes/web/ProcessHeader.tsx +10 -10
- package/plugins/ragents.processes/web/processes.ts +10 -10
- package/plugins/ragents.product/server/config.ts +1 -1
- package/plugins/ragents.product/server/index.ts +4 -4
- package/plugins/ragents.product/server/runtime.ts +9 -10
- package/plugins/ragents.product/web/index.tsx +1 -1
- package/plugins/ragents.profile-distribution/contract.ts +10 -10
- package/plugins/ragents.profile-distribution/server/archive.ts +20 -20
- package/plugins/ragents.profile-distribution/server/config.ts +2 -2
- package/plugins/ragents.profile-distribution/server/index.ts +4 -4
- package/plugins/ragents.reference/examples.ts +27 -27
- package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
- package/plugins/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
- package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
- package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
- package/plugins/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
- package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
- package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
- package/plugins/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
- package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
- package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
- package/plugins/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
- package/plugins/ragents.reference/run-scripts/moderated-round/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
- 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 +6 -6
- package/plugins/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
- package/plugins/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
- package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
- package/plugins/ragents.reference/run-scripts/word-game/RUN.md +18 -18
- package/plugins/ragents.reference/run-scripts/word-game/package.json +2 -2
- package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
- package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
- package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
- package/plugins/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/decision-brief/SKILL.md +24 -24
- package/plugins/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
- package/plugins/ragents.reference/walkthroughs.ts +128 -128
- package/plugins/ragents.reference/web/StartGuides.tsx +23 -23
- package/plugins/ragents.todo/server/todo-tool.ts +6 -6
- package/plugins/ragents.todo/web/TodoSection.tsx +1 -1
- package/plugins/ragents.transcript/server/transcript.ts +11 -11
- package/plugins/ragents.watch/server/condition.ts +4 -4
- package/plugins/ragents.watch/server/functions.ts +27 -27
- package/plugins/ragents.watch/server/observation.ts +2 -2
- package/plugins/ragents.watch/server/service.ts +14 -14
- package/plugins/ragents.workspace/client/transport.ts +1 -1
- package/plugins/ragents.workspace/client/workspace-client.ts +62 -49
- package/plugins/ragents.workspace/contract.ts +46 -46
- package/plugins/ragents.workspace/server/binding.ts +20 -20
- package/plugins/ragents.workspace/server/browse-route.ts +8 -8
- package/plugins/ragents.workspace/server/clients.ts +42 -42
- package/plugins/ragents.workspace/server/config.ts +8 -5
- package/plugins/ragents.workspace/server/index.ts +5 -4
- package/plugins/ragents.workspace/server/runtime.ts +26 -26
- package/plugins/ragents.workspace/server/shell-platform.ts +1 -1
- package/plugins/ragents.workspace/web/FileBrowser.tsx +10 -10
- package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +24 -24
- package/plugins/ragents.workspace/web/index.tsx +1 -1
- package/ragents.config.core.ts +1 -1
- package/ragents.config.developer.ts +3 -3
- package/ragents.config.showcase.ts +2 -2
- package/scripts/agent/agent-cli.ts +96 -96
- package/scripts/agent/journal.ts +5 -5
- package/scripts/agent/turn-control.ts +4 -4
- package/scripts/package/build-package.ts +29 -29
- package/scripts/package/host-links.mjs +3 -3
- package/scripts/package/publish-package.ts +29 -29
- package/scripts/package/ragents.mjs +19 -19
- package/scripts/plugin/build-builtin-plugins.ts +5 -5
- package/scripts/plugin/plugin-cli.ts +14 -14
- package/scripts/provision/run-provision.ts +14 -15
- package/scripts/remote/connect.ts +46 -46
- package/scripts/remote/start.ts +18 -18
- package/scripts/workspace-client/run-workspace-client.ts +23 -23
- package/apps/web/dist/assets/main-C7JeZFjs.js +0 -6
- package/apps/web/dist/assets/mermaid-HWGCJPDP-DfsU5ofC.js +0 -478
- package/apps/web/dist/assets/runPanel-ZT6TPDLM.js +0 -21
- package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +0 -7
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +0 -2
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +0 -7
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +0 -2
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +0 -7
- package/bundles/ragents.ask/web/chunks/chunk-WFN4374U.js.map +0 -7
- package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +0 -2
- package/plugins/ragents.ask/web/QuestionSection.tsx +0 -48
- /package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js.map → chunk-CFMJD5ZI.js.map} +0 -0
- /package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js.map → chunk-UCIMT2R4.js.map} +0 -0
|
@@ -18,13 +18,13 @@ export function FullscreenHost({ session }: { session: SessionContext }) {
|
|
|
18
18
|
<DialogContent className="h-[calc(100%-2*clamp(16px,2vw,24px))] w-[calc(100%-2*clamp(16px,2vw,24px))] gap-0 bg-background p-0" initialFocus={closeRef} scope="surface" showCloseButton={false} size="full">
|
|
19
19
|
<header className="flex flex-none items-center gap-3 border-b border-border bg-card py-2 pr-3 pl-4">
|
|
20
20
|
<DialogTitle className="min-w-0 flex-1 truncate text-[0.9rem]" render={<h2 />}>{title}</DialogTitle>
|
|
21
|
-
<Button aria-label={
|
|
21
|
+
<Button aria-label={`Close ${title} full view`} className="rounded-full" onClick={closeFullscreen} ref={closeRef} size="icon" title={`Close ${title} full view`} variant="outline"><XIcon /></Button>
|
|
22
22
|
</header>
|
|
23
23
|
<div className="flex min-h-0 flex-1 flex-col overflow-hidden [&>[data-slot=host-confirmation]]:max-h-[65%] [&>[data-slot=host-confirmation]]:flex-[0_1_auto] [&>[data-slot=host-confirmation]]:overflow-auto">
|
|
24
24
|
{confirmation && <HostConfirmation action={confirmation} key={confirmation.id} session={session} />}
|
|
25
25
|
{app ? <ActorViewFrame api={api} app={app} invoke={invoke} pendingConfirmationInvocationId={confirmation?.parameters.invocationId}
|
|
26
26
|
presentation="fullscreen" runId={runId} session={session} />
|
|
27
|
-
: <p className="flex flex-1 items-center justify-center gap-2 text-[0.7rem] text-muted-foreground" role={error ? "alert" : "status"}>{error ?? "
|
|
27
|
+
: <p className="flex flex-1 items-center justify-center gap-2 text-[0.7rem] text-muted-foreground" role={error ? "alert" : "status"}>{error ?? "Loading actor view"}</p>}
|
|
28
28
|
</div>
|
|
29
29
|
</DialogContent>
|
|
30
30
|
</Dialog>;
|
|
@@ -45,19 +45,19 @@ export function FunctionForm({ session, tool, detail = false }: {
|
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
47
|
|
|
48
|
-
const status = confirmation ? "
|
|
49
|
-
: invocation?.status === "queued" ? "
|
|
50
|
-
: invocation?.status === "running" ? "
|
|
51
|
-
: invocation?.status === "succeeded" ? "
|
|
52
|
-
: invocation?.status === "cancelled" ? "
|
|
53
|
-
: invocation?.status === "failed" ? "
|
|
54
|
-
: busy ? "
|
|
48
|
+
const status = confirmation ? "Confirmation required"
|
|
49
|
+
: invocation?.status === "queued" ? "Waiting for execution"
|
|
50
|
+
: invocation?.status === "running" ? "Function running"
|
|
51
|
+
: invocation?.status === "succeeded" ? "Executed"
|
|
52
|
+
: invocation?.status === "cancelled" ? "Cancelled"
|
|
53
|
+
: invocation?.status === "failed" ? "Failed"
|
|
54
|
+
: busy ? "Sending call" : undefined;
|
|
55
55
|
const failure = error ?? (invocation?.status === "failed" || invocation?.status === "cancelled" ? invocation.error : undefined);
|
|
56
56
|
|
|
57
57
|
return (
|
|
58
58
|
<div className="grid min-w-0 gap-2.5">
|
|
59
|
-
<form aria-label={
|
|
60
|
-
{tool.parameters.length === 0 && detail && <p>
|
|
59
|
+
<form aria-label={`Call ${tool.name}`} className={cn("grid", detail ? "gap-3.5" : "gap-2")} onSubmit={(event) => void submit(event)}>
|
|
60
|
+
{tool.parameters.length === 0 && detail && <p>This function needs no parameters.</p>}
|
|
61
61
|
{tool.parameters.map((parameter) => (
|
|
62
62
|
<label className={cn("grid gap-[3px] font-[650] text-foreground [&_small]:text-[0.61rem] [&_small]:font-normal [&_small]:text-muted-foreground",
|
|
63
63
|
detail ? "text-[0.8rem]" : "text-[0.68rem]",
|
|
@@ -65,7 +65,7 @@ export function FunctionForm({ session, tool, detail = false }: {
|
|
|
65
65
|
{parameter.type === "boolean" && parameter.required && <input aria-description={parameter.description} className="m-0 accent-primary" disabled={!writable || busy} name={parameter.name} type="checkbox" />}
|
|
66
66
|
<span>{parameter.name}{parameter.required ? " *" : ""}{detail && <small className="ml-2">{parameter.type}{parameter.required ? "" : " (optional)"}</small>}</span>
|
|
67
67
|
{parameter.type === "boolean"
|
|
68
|
-
? !parameter.required && <select className={selectClass} disabled={!writable || busy} name={parameter.name} defaultValue=""><option value="">
|
|
68
|
+
? !parameter.required && <select className={selectClass} disabled={!writable || busy} name={parameter.name} defaultValue=""><option value="">Not passed</option><option value="true">Yes</option><option value="false">No</option></select>
|
|
69
69
|
: parameter.type === "json" || parameter.type === "string[]" || parameter.type === "number[]" || detail && parameter.type === "string"
|
|
70
70
|
? <Textarea aria-description={parameter.description} className="min-h-8 resize-y font-normal" disabled={!writable || busy} name={parameter.name} placeholder={parameter.description} required={parameter.required} rows={2} />
|
|
71
71
|
: <Input
|
|
@@ -79,21 +79,21 @@ export function FunctionForm({ session, tool, detail = false }: {
|
|
|
79
79
|
type={parameter.type === "integer" || parameter.type === "number" ? "number" : "text"}
|
|
80
80
|
/>}
|
|
81
81
|
{(detail || parameter.type === "boolean") && <small>{parameter.description}</small>}
|
|
82
|
-
{parameter.type === "json" && <small>
|
|
83
|
-
{parameter.type === "number[]" && <small>
|
|
84
|
-
{parameter.type === "string[]" && <small>
|
|
82
|
+
{parameter.type === "json" && <small>Enter as JSON.</small>}
|
|
83
|
+
{parameter.type === "number[]" && <small>Enter as a JSON list, e.g. [1, 2, 3].</small>}
|
|
84
|
+
{parameter.type === "string[]" && <small>One entry per line or as a JSON list.</small>}
|
|
85
85
|
</label>
|
|
86
86
|
))}
|
|
87
87
|
<div className="flex flex-wrap items-center gap-2">
|
|
88
|
-
<Button disabled={!writable || busy} type="submit">{busy ? "
|
|
88
|
+
<Button disabled={!writable || busy} type="submit">{busy ? "Running ..." : "Run"}</Button>
|
|
89
89
|
{status && <span className="text-[0.63rem] text-muted-foreground" role="status">{status}</span>}
|
|
90
90
|
</div>
|
|
91
91
|
</form>
|
|
92
92
|
{confirmation && <HostConfirmation action={confirmation} key={confirmation.id} session={session} />}
|
|
93
93
|
{failure && <p className="text-destructive [overflow-wrap:anywhere]" role="alert">{failure}</p>}
|
|
94
94
|
{invocation?.status === "succeeded" && !error && (
|
|
95
|
-
<section aria-label="
|
|
96
|
-
<h3>
|
|
95
|
+
<section aria-label="Result" className="grid min-w-0 gap-2">
|
|
96
|
+
<h3>Result</h3>
|
|
97
97
|
<pre className="max-h-[320px] overflow-auto rounded-md border border-border-soft bg-card p-2.5 text-[0.75rem] whitespace-pre-wrap text-foreground [overflow-wrap:anywhere]">{typeof invocation.result === "string" ? invocation.result : JSON.stringify(invocation.result, null, 2)}</pre>
|
|
98
98
|
</section>
|
|
99
99
|
)}
|
|
@@ -45,17 +45,17 @@ export function ProgramSource({ api, moduleId, runId, revision, expandedByDefaul
|
|
|
45
45
|
|
|
46
46
|
return (
|
|
47
47
|
<section className="grid w-full min-w-0 grid-cols-[minmax(0,1fr)] justify-items-start gap-2">
|
|
48
|
-
<h3 className="text-xs font-semibold text-muted-foreground">
|
|
48
|
+
<h3 className="text-xs font-semibold text-muted-foreground">Source code</h3>
|
|
49
49
|
{!expanded && (
|
|
50
|
-
<Button onClick={() => setExpanded(true)} size="sm" variant="outline">
|
|
50
|
+
<Button onClick={() => setExpanded(true)} size="sm" variant="outline">Show source code</Button>
|
|
51
51
|
)}
|
|
52
52
|
{expanded && (
|
|
53
53
|
<>
|
|
54
|
-
<p className="text-[0.67rem] text-muted-foreground">
|
|
54
|
+
<p className="text-[0.67rem] text-muted-foreground">Source of the installed build</p>
|
|
55
55
|
{state.kind === "loading" && (
|
|
56
56
|
<p className="flex items-center gap-2 text-[0.72rem] text-muted-foreground">
|
|
57
57
|
<Spinner aria-hidden aria-label={undefined} role={undefined} />
|
|
58
|
-
<span>
|
|
58
|
+
<span>Loading source code</span>
|
|
59
59
|
</p>
|
|
60
60
|
)}
|
|
61
61
|
{state.kind === "error" && <Alert className="w-full" variant="destructive">{state.message}</Alert>}
|
|
@@ -75,7 +75,7 @@ export function ProgramSource({ api, moduleId, runId, revision, expandedByDefaul
|
|
|
75
75
|
</div>
|
|
76
76
|
)}
|
|
77
77
|
{active && <SourceCode className="h-full max-h-[340px] w-full min-h-0 min-w-0 overflow-auto rounded-lg border border-border-soft bg-background/70" content={active.content} path={active.path} />}
|
|
78
|
-
{!expandedByDefault && <Button onClick={() => setExpanded(false)} size="sm" variant="outline">
|
|
78
|
+
{!expandedByDefault && <Button onClick={() => setExpanded(false)} size="sm" variant="outline">Hide source code</Button>}
|
|
79
79
|
</>
|
|
80
80
|
)}
|
|
81
81
|
</section>
|
|
@@ -111,35 +111,35 @@ const HASH_PATTERN = /^[a-f0-9]{64}$/;
|
|
|
111
111
|
const PARAMETER_TYPES = new Set<RunToolParameter["type"]>(actorFunctionParameterTypes);
|
|
112
112
|
|
|
113
113
|
const requiredString = (value: unknown, field: string): string => {
|
|
114
|
-
if (typeof value !== "string" || !value.trim()) throw new Error(`${field}
|
|
114
|
+
if (typeof value !== "string" || !value.trim()) throw new Error(`${field} is missing or empty`);
|
|
115
115
|
return value;
|
|
116
116
|
};
|
|
117
117
|
|
|
118
118
|
const optionalString = (value: unknown, field: string): string | undefined => {
|
|
119
119
|
if (value === undefined) return undefined;
|
|
120
|
-
if (typeof value !== "string") throw new Error(`${field}
|
|
120
|
+
if (typeof value !== "string") throw new Error(`${field} is not text`);
|
|
121
121
|
return value;
|
|
122
122
|
};
|
|
123
123
|
|
|
124
124
|
const idFrom = (value: unknown, field: string): string => {
|
|
125
125
|
const id = requiredString(value, field);
|
|
126
|
-
if (!ID_PATTERN.test(id)) throw new Error(`${field}
|
|
126
|
+
if (!ID_PATTERN.test(id)) throw new Error(`${field} is not a valid identifier`);
|
|
127
127
|
return id;
|
|
128
128
|
};
|
|
129
129
|
|
|
130
130
|
const unique = <T,>(values: T[], keyOf: (value: T) => string, label: string): T[] => {
|
|
131
131
|
const ids = values.map(keyOf);
|
|
132
|
-
if (new Set(ids).size !== ids.length) throw new Error(`${label}
|
|
132
|
+
if (new Set(ids).size !== ids.length) throw new Error(`${label} contains duplicate identifiers`);
|
|
133
133
|
return values;
|
|
134
134
|
};
|
|
135
135
|
|
|
136
136
|
export const runAppActionFrom = (value: unknown): RunAppAction => {
|
|
137
|
-
if (!isRecord(value)) throw new Error("
|
|
137
|
+
if (!isRecord(value)) throw new Error("An app action is not an object");
|
|
138
138
|
if (value.confirmation !== null && typeof value.confirmation !== "string") {
|
|
139
|
-
throw new Error("confirmation
|
|
139
|
+
throw new Error("confirmation of an app action must be text or null");
|
|
140
140
|
}
|
|
141
141
|
if (typeof value.confirmation === "string" && !value.confirmation.trim()) {
|
|
142
|
-
throw new Error("confirmation
|
|
142
|
+
throw new Error("confirmation of an app action must not be empty");
|
|
143
143
|
}
|
|
144
144
|
return {
|
|
145
145
|
id: idFrom(value.id, "action.id"),
|
|
@@ -152,9 +152,9 @@ export const runAppActionFrom = (value: unknown): RunAppAction => {
|
|
|
152
152
|
};
|
|
153
153
|
|
|
154
154
|
export const runAppInvocationFrom = (value: unknown): RunAppInvocation => {
|
|
155
|
-
if (!isRecord(value)) throw new Error("
|
|
155
|
+
if (!isRecord(value)) throw new Error("An app execution is not an object");
|
|
156
156
|
if (!Array.isArray(value.output) || value.output.some((line) => typeof line !== "string")) {
|
|
157
|
-
throw new Error("output
|
|
157
|
+
throw new Error("output of an app execution is not a text list");
|
|
158
158
|
}
|
|
159
159
|
const base = {
|
|
160
160
|
id: idFrom(value.id, "invocation.id"),
|
|
@@ -173,7 +173,7 @@ export const runAppInvocationFrom = (value: unknown): RunAppInvocation => {
|
|
|
173
173
|
case "running":
|
|
174
174
|
return { ...base, status: "running", startedAt: requiredString(value.startedAt, "invocation.startedAt") };
|
|
175
175
|
case "succeeded": {
|
|
176
|
-
if (!isJsonValue(value.result)) throw new Error("result
|
|
176
|
+
if (!isJsonValue(value.result)) throw new Error("result of an app execution is not a JSON value");
|
|
177
177
|
return {
|
|
178
178
|
...base,
|
|
179
179
|
status: "succeeded",
|
|
@@ -194,28 +194,28 @@ export const runAppInvocationFrom = (value: unknown): RunAppInvocation => {
|
|
|
194
194
|
error: requiredString(value.error, "invocation.error"),
|
|
195
195
|
};
|
|
196
196
|
default:
|
|
197
|
-
throw new Error("status
|
|
197
|
+
throw new Error("status of an app execution is invalid");
|
|
198
198
|
}
|
|
199
199
|
};
|
|
200
200
|
|
|
201
201
|
const runAppPlacementFrom = (value: unknown): RunAppPlacement => {
|
|
202
|
-
if (!isRecord(value)) throw new Error("
|
|
202
|
+
if (!isRecord(value)) throw new Error("An app placement is not an object");
|
|
203
203
|
if (value.kind === "canvas") {
|
|
204
204
|
return {
|
|
205
205
|
kind: "canvas",
|
|
206
206
|
anchorActorId: requiredString(value.anchorActorId, "placement.anchorActorId"),
|
|
207
207
|
};
|
|
208
208
|
}
|
|
209
|
-
throw new Error("kind
|
|
209
|
+
throw new Error("kind of an app placement must be canvas");
|
|
210
210
|
};
|
|
211
211
|
|
|
212
212
|
export const runAppFrom = (value: unknown): RunApp => {
|
|
213
|
-
if (!isRecord(value)) throw new Error("
|
|
214
|
-
if (!Array.isArray(value.actions)) throw new Error("actions
|
|
215
|
-
if (!Array.isArray(value.invocations)) throw new Error("invocations
|
|
213
|
+
if (!isRecord(value)) throw new Error("An app is not an object");
|
|
214
|
+
if (!Array.isArray(value.actions)) throw new Error("actions of an app is not a list");
|
|
215
|
+
if (!Array.isArray(value.invocations)) throw new Error("invocations of an app is not a list");
|
|
216
216
|
const rawPlacements = value.placements ?? [];
|
|
217
|
-
if (!Array.isArray(rawPlacements)) throw new Error("placements
|
|
218
|
-
if (!isRecord(value.state) || value.state.version !== 1 || !Number.isSafeInteger(value.state.revision) || !isJsonValue(value.state.values)) throw new Error("state
|
|
217
|
+
if (!Array.isArray(rawPlacements)) throw new Error("placements of an app is not a list");
|
|
218
|
+
if (!isRecord(value.state) || value.state.version !== 1 || !Number.isSafeInteger(value.state.revision) || !isJsonValue(value.state.values)) throw new Error("state of a view does not match the state contract");
|
|
219
219
|
const actions = unique(value.actions.map(runAppActionFrom), (action) => action.id, "actions");
|
|
220
220
|
const invocations = unique(
|
|
221
221
|
value.invocations.map(runAppInvocationFrom),
|
|
@@ -224,15 +224,15 @@ export const runAppFrom = (value: unknown): RunApp => {
|
|
|
224
224
|
);
|
|
225
225
|
const actionIds = new Set(actions.map((action) => action.id));
|
|
226
226
|
if (invocations.some((invocation) => !actionIds.has(invocation.actionId))) {
|
|
227
|
-
throw new Error("
|
|
227
|
+
throw new Error("An app execution refers to an unknown action");
|
|
228
228
|
}
|
|
229
|
-
if (value.visible !== undefined && typeof value.visible !== "boolean") throw new Error("visible
|
|
230
|
-
if (rawPlacements.length > 1) throw new Error("placements
|
|
229
|
+
if (value.visible !== undefined && typeof value.visible !== "boolean") throw new Error("visible of an app is not a boolean");
|
|
230
|
+
if (rawPlacements.length > 1) throw new Error("placements of an app contains more than one placement");
|
|
231
231
|
const placements = rawPlacements.map(runAppPlacementFrom);
|
|
232
232
|
const id = requiredString(value.id, "view.id");
|
|
233
|
-
if (!VIEW_ID_PATTERN.test(id)) throw new Error("view.id
|
|
233
|
+
if (!VIEW_ID_PATTERN.test(id)) throw new Error("view.id is not a valid identifier");
|
|
234
234
|
const actorId = requiredString(value.actorId, "view.actorId");
|
|
235
|
-
if (placements.some((placement) => placement.anchorActorId !== actorId)) throw new Error("
|
|
235
|
+
if (placements.some((placement) => placement.anchorActorId !== actorId)) throw new Error("The view must be placed at its own actor");
|
|
236
236
|
return {
|
|
237
237
|
id,
|
|
238
238
|
actorId,
|
|
@@ -251,11 +251,11 @@ export const runAppFrom = (value: unknown): RunApp => {
|
|
|
251
251
|
};
|
|
252
252
|
|
|
253
253
|
const runToolParameterFrom = (value: unknown): RunToolParameter => {
|
|
254
|
-
if (!isRecord(value)) throw new Error("
|
|
254
|
+
if (!isRecord(value)) throw new Error("A tool parameter is not an object");
|
|
255
255
|
if (typeof value.type !== "string" || !PARAMETER_TYPES.has(value.type as RunToolParameter["type"])) {
|
|
256
|
-
throw new Error("type
|
|
256
|
+
throw new Error("type of a tool parameter is invalid");
|
|
257
257
|
}
|
|
258
|
-
if (typeof value.required !== "boolean") throw new Error("required
|
|
258
|
+
if (typeof value.required !== "boolean") throw new Error("required of a tool parameter is not a boolean");
|
|
259
259
|
return {
|
|
260
260
|
name: idFrom(value.name, "parameter.name"),
|
|
261
261
|
description: requiredString(value.description, "parameter.description"),
|
|
@@ -265,9 +265,9 @@ const runToolParameterFrom = (value: unknown): RunToolParameter => {
|
|
|
265
265
|
};
|
|
266
266
|
|
|
267
267
|
const runToolTargetFrom = (value: unknown): RunToolTarget => {
|
|
268
|
-
if (!isRecord(value)) throw new Error("
|
|
268
|
+
if (!isRecord(value)) throw new Error("A tool target is not an object");
|
|
269
269
|
if (value.handle !== null && typeof value.handle !== "string") {
|
|
270
|
-
throw new Error("handle
|
|
270
|
+
throw new Error("handle of a tool target must be text or null");
|
|
271
271
|
}
|
|
272
272
|
return {
|
|
273
273
|
actorId: requiredString(value.actorId, "target.actorId"),
|
|
@@ -276,11 +276,11 @@ const runToolTargetFrom = (value: unknown): RunToolTarget => {
|
|
|
276
276
|
};
|
|
277
277
|
|
|
278
278
|
export const runScriptToolFrom = (value: unknown): RunScriptTool => {
|
|
279
|
-
if (!isRecord(value)) throw new Error("
|
|
280
|
-
if (!Array.isArray(value.parameters)) throw new Error("parameters
|
|
281
|
-
if (!Array.isArray(value.targets)) throw new Error("targets
|
|
279
|
+
if (!isRecord(value)) throw new Error("A script tool is not an object");
|
|
280
|
+
if (!Array.isArray(value.parameters)) throw new Error("parameters of a script tool is not a list");
|
|
281
|
+
if (!Array.isArray(value.targets)) throw new Error("targets of a script tool is not a list");
|
|
282
282
|
const sourceHash = requiredString(value.sourceHash, "tool.sourceHash");
|
|
283
|
-
if (!HASH_PATTERN.test(sourceHash)) throw new Error("sourceHash
|
|
283
|
+
if (!HASH_PATTERN.test(sourceHash)) throw new Error("sourceHash of a script tool is invalid");
|
|
284
284
|
return {
|
|
285
285
|
actorId: requiredString(value.actorId, "tool.actorId"),
|
|
286
286
|
actorHandle: requiredString(value.actorHandle, "tool.actorHandle"),
|
|
@@ -298,8 +298,8 @@ export const runScriptToolFrom = (value: unknown): RunScriptTool => {
|
|
|
298
298
|
};
|
|
299
299
|
|
|
300
300
|
const actorProgramSourceFileFrom = (value: unknown): ActorProgramSourceFile => {
|
|
301
|
-
if (!isRecord(value)) throw new Error("
|
|
302
|
-
if (typeof value.content !== "string") throw new Error("content
|
|
301
|
+
if (!isRecord(value)) throw new Error("A source file is not an object");
|
|
302
|
+
if (typeof value.content !== "string") throw new Error("content of a source file is not text");
|
|
303
303
|
return {
|
|
304
304
|
path: requiredString(value.path, "source.path"),
|
|
305
305
|
content: value.content,
|
|
@@ -307,13 +307,13 @@ const actorProgramSourceFileFrom = (value: unknown): ActorProgramSourceFile => {
|
|
|
307
307
|
};
|
|
308
308
|
|
|
309
309
|
export const actorProgramSourceFrom = (value: unknown): ActorProgramSourceFile[] => {
|
|
310
|
-
if (!isRecord(value) || !Array.isArray(value.files)) throw new Error("
|
|
310
|
+
if (!isRecord(value) || !Array.isArray(value.files)) throw new Error("The source list does not match the contract");
|
|
311
311
|
return unique(value.files.map(actorProgramSourceFileFrom), (file) => file.path, "files");
|
|
312
312
|
};
|
|
313
313
|
|
|
314
314
|
export const actorProgramsListingFrom = (value: unknown): ActorProgramsListing => {
|
|
315
315
|
if (!isRecord(value) || !Array.isArray(value.apps) || !Array.isArray(value.tools)) {
|
|
316
|
-
throw new Error("
|
|
316
|
+
throw new Error("The list of actor programs does not match the contract");
|
|
317
317
|
}
|
|
318
318
|
return {
|
|
319
319
|
apps: unique(value.apps.map(runAppFrom), (app) => app.id, "apps"),
|
|
@@ -75,18 +75,18 @@ const inputWithinLimit = (value: JsonValue): boolean => {
|
|
|
75
75
|
};
|
|
76
76
|
|
|
77
77
|
export const validateRunAppBridgeRequest = (value: unknown): RunAppBridgeValidation => {
|
|
78
|
-
if (!isRecord(value)) return { ok: false, error: "
|
|
78
|
+
if (!isRecord(value)) return { ok: false, error: "The app message is not an object" };
|
|
79
79
|
const requestId = requestIdFrom(value.requestId);
|
|
80
|
-
if (!requestId) return { ok: false, error: "
|
|
80
|
+
if (!requestId) return { ok: false, error: "The app message contains no valid requestId" };
|
|
81
81
|
if (value.version !== RUN_APP_BRIDGE_VERSION) {
|
|
82
|
-
return { ok: false, requestId, error: "
|
|
82
|
+
return { ok: false, requestId, error: "The app uses an unsupported bridge version" };
|
|
83
83
|
}
|
|
84
84
|
if (value.type === RUN_APP_GET_STATE) {
|
|
85
85
|
return { ok: true, request: { type: RUN_APP_GET_STATE, version: RUN_APP_BRIDGE_VERSION, requestId } };
|
|
86
86
|
}
|
|
87
87
|
if (value.type === RUN_APP_CHAT_WATCH || value.type === RUN_APP_CHAT_UNWATCH || value.type === RUN_APP_CHAT_SEND) {
|
|
88
88
|
if (typeof value.actor !== "string" || !/^@?[\p{L}\p{N}_-]{1,64}$/u.test(value.actor)) {
|
|
89
|
-
return { ok: false, requestId, error: "
|
|
89
|
+
return { ok: false, requestId, error: "The chat target must be primary or an actor handle such as @reviewer" };
|
|
90
90
|
}
|
|
91
91
|
const common = { version: RUN_APP_BRIDGE_VERSION, requestId, actor: value.actor } as const;
|
|
92
92
|
if (value.type !== RUN_APP_CHAT_SEND) return { ok: true, request: { ...common, type: value.type } };
|
|
@@ -95,18 +95,18 @@ export const validateRunAppBridgeRequest = (value: unknown): RunAppBridgeValidat
|
|
|
95
95
|
return { ok: false, requestId, error: cause instanceof Error ? cause.message : String(cause) };
|
|
96
96
|
}
|
|
97
97
|
if (typeof value.text !== "string" || (!value.text.trim() && !attachments.length) || !inputWithinLimit(value.text)) {
|
|
98
|
-
return { ok: false, requestId, error: "
|
|
98
|
+
return { ok: false, requestId, error: "The chat message is empty or too large" };
|
|
99
99
|
}
|
|
100
100
|
return { ok: true, request: { ...common, type: RUN_APP_CHAT_SEND, text: value.text.trim(), ...(attachments.length ? { attachments } : {}) } };
|
|
101
101
|
}
|
|
102
102
|
if (value.type !== RUN_APP_INVOKE) {
|
|
103
|
-
return { ok: false, requestId, error: "
|
|
103
|
+
return { ok: false, requestId, error: "The app message has an unknown type" };
|
|
104
104
|
}
|
|
105
105
|
if (typeof value.actionId !== "string" || !ID_PATTERN.test(value.actionId)) {
|
|
106
|
-
return { ok: false, requestId, error: "
|
|
106
|
+
return { ok: false, requestId, error: "The app message contains no valid actionId" };
|
|
107
107
|
}
|
|
108
108
|
if (!isJsonValue(value.input) || !inputWithinLimit(value.input)) {
|
|
109
|
-
return { ok: false, requestId, error: "
|
|
109
|
+
return { ok: false, requestId, error: "The input of the app action is not a valid JSON value or too large" };
|
|
110
110
|
}
|
|
111
111
|
return {
|
|
112
112
|
ok: true,
|
|
@@ -7,13 +7,13 @@ import { programChatNotice } from "@ragents/web/chat/chat-target";
|
|
|
7
7
|
|
|
8
8
|
export const resolveChatActor = (session: SessionContext, target: string) => {
|
|
9
9
|
const view = runViewFrom(session.runView);
|
|
10
|
-
if (!view || view.id !== session.session.id) throw new Error("
|
|
10
|
+
if (!view || view.id !== session.session.id) throw new Error("The run view for this chat is not available yet");
|
|
11
11
|
const actor = target === "primary"
|
|
12
12
|
? view.actors.find((entry) => entry.id === view.primaryActorId)
|
|
13
13
|
: actorByHandle(view.actors, target);
|
|
14
14
|
if (!actor || actor.kind === "human") {
|
|
15
15
|
const names = view.actors.filter((entry) => entry.kind !== "human").map((entry) => `@${entry.handle}`).join(", ");
|
|
16
|
-
throw new Error(`
|
|
16
|
+
throw new Error(`The chat target is not available. Allowed are primary and: ${names || "no actors yet"}`);
|
|
17
17
|
}
|
|
18
18
|
return { view, actor };
|
|
19
19
|
};
|
|
@@ -23,8 +23,8 @@ export const chatSnapshotOf = (session: SessionContext, target: string): ChatSna
|
|
|
23
23
|
const { view, actor } = resolveChatActor(session, target);
|
|
24
24
|
const primary = actor.id === view.primaryActorId;
|
|
25
25
|
const error = actor.kind === "script" ? programChatNotice : session.conversationError ?? (!session.connected
|
|
26
|
-
? "
|
|
27
|
-
: actor.lifecycle?.kind === "stopped" ? `@${actor.handle}
|
|
26
|
+
? "The connection to the run is interrupted"
|
|
27
|
+
: actor.lifecycle?.kind === "stopped" ? `@${actor.handle} stopped: ${actor.lifecycle.reason}. It accepts no input until it is restarted` : undefined);
|
|
28
28
|
return {
|
|
29
29
|
owner: actor.id,
|
|
30
30
|
messages: actorChatMessages(view, actor, session.messages, session.actorConversations?.[actor.id]),
|
|
@@ -25,6 +25,6 @@ export const useOptionalActorPrograms = () => useContext(ActorProgramsContext);
|
|
|
25
25
|
|
|
26
26
|
export const useActorPrograms = (): ActorProgramsContextValue => {
|
|
27
27
|
const value = useOptionalActorPrograms();
|
|
28
|
-
if (!value) throw new Error("
|
|
28
|
+
if (!value) throw new Error("The actor program provider is not active");
|
|
29
29
|
return value;
|
|
30
30
|
};
|
|
@@ -9,11 +9,11 @@ const parseParameter = (parameter: RunToolParameter, form: FormData): JsonValue
|
|
|
9
9
|
}
|
|
10
10
|
if (raw === "" && !parameter.required) return undefined;
|
|
11
11
|
if (parameter.type === "string") return raw;
|
|
12
|
-
if (!raw.trim()) throw new Error(`${parameter.name}:
|
|
12
|
+
if (!raw.trim()) throw new Error(`${parameter.name}: Please enter a value.`);
|
|
13
13
|
if (parameter.type === "number" || parameter.type === "integer") {
|
|
14
14
|
const value = Number(raw);
|
|
15
15
|
if (!Number.isFinite(value) || parameter.type === "integer" && !Number.isInteger(value)) {
|
|
16
|
-
throw new Error(`${parameter.name}
|
|
16
|
+
throw new Error(`${parameter.name} is not a valid ${parameter.type === "integer" ? "integer" : "number"}.`);
|
|
17
17
|
}
|
|
18
18
|
return value;
|
|
19
19
|
}
|
|
@@ -22,13 +22,13 @@ const parseParameter = (parameter: RunToolParameter, form: FormData): JsonValue
|
|
|
22
22
|
}
|
|
23
23
|
let value: unknown;
|
|
24
24
|
try { value = JSON.parse(raw); }
|
|
25
|
-
catch { throw new Error(`${parameter.name}:
|
|
26
|
-
if (!isJsonValue(value)) throw new Error(`${parameter.name}:
|
|
25
|
+
catch { throw new Error(`${parameter.name}: Please enter valid JSON.`); }
|
|
26
|
+
if (!isJsonValue(value)) throw new Error(`${parameter.name}: Not a valid JSON value.`);
|
|
27
27
|
if (parameter.type === "string[]" && (!Array.isArray(value) || !value.every((entry) => typeof entry === "string"))) {
|
|
28
|
-
throw new Error(`${parameter.name}:
|
|
28
|
+
throw new Error(`${parameter.name}: Please enter a list of texts.`);
|
|
29
29
|
}
|
|
30
30
|
if (parameter.type === "number[]" && (!Array.isArray(value) || !value.every((entry) => typeof entry === "number"))) {
|
|
31
|
-
throw new Error(`${parameter.name}:
|
|
31
|
+
throw new Error(`${parameter.name}: Please enter a JSON list of numbers.`);
|
|
32
32
|
}
|
|
33
33
|
return value;
|
|
34
34
|
};
|
|
@@ -20,7 +20,7 @@ export const actorProgramSourceReference = (runView: unknown, actorId: string):
|
|
|
20
20
|
if (!entry || !isRecord(entry.state) || entry.state.program === null) return undefined;
|
|
21
21
|
const program = entry.state.program;
|
|
22
22
|
if (!isRecord(program) || program.actorId !== actorId || typeof program.name !== "string" || typeof program.revision !== "string") {
|
|
23
|
-
throw new Error("
|
|
23
|
+
throw new Error("The source code mapping of the actor program is invalid.");
|
|
24
24
|
}
|
|
25
25
|
return { name: program.name, revision: program.revision };
|
|
26
26
|
};
|
|
@@ -36,10 +36,10 @@ export const actorProgramViews = (runView: unknown): ActorProgramView[] => {
|
|
|
36
36
|
if (!isRecord(entry.state) || !isRecord(entry.state.program)) return [];
|
|
37
37
|
const program = entry.state.program;
|
|
38
38
|
if (program.actorId !== actor.id || program.actorHandle !== actor.handle || typeof program.revision !== "string" || !Array.isArray(program.views)) {
|
|
39
|
-
throw new Error(`
|
|
39
|
+
throw new Error(`The view program of @${actor.handle} is invalid.`);
|
|
40
40
|
}
|
|
41
41
|
return program.views.map((app) => {
|
|
42
|
-
if (!isRecord(app) || typeof app.id !== "string" || typeof app.title !== "string") throw new Error(`
|
|
42
|
+
if (!isRecord(app) || typeof app.id !== "string" || typeof app.title !== "string") throw new Error(`A view of @${actor.handle} is invalid.`);
|
|
43
43
|
return { id: app.id, title: app.title, actorId: actor.id, actorHandle: actor.handle, revision: program.revision as string, app };
|
|
44
44
|
});
|
|
45
45
|
});
|
|
@@ -57,7 +57,7 @@ export const currentActorListing = (listing: ActorProgramsListing | undefined, r
|
|
|
57
57
|
if (!current || current.actorId !== app.actorId || current.revision !== app.revision) return [];
|
|
58
58
|
const state = view.pluginStates.find((entry) => entry.pluginId === ACTOR_STATE_ID && entry.scope.kind === "actor" && entry.scope.actorId === app.actorId);
|
|
59
59
|
const values = state ? state.state : app.state.values;
|
|
60
|
-
if (!isJsonValue(values)) throw new Error(`
|
|
60
|
+
if (!isJsonValue(values)) throw new Error(`The state of @${app.actorHandle} is not a JSON value.`);
|
|
61
61
|
return [{ ...app, visible: current.app.visible !== false,
|
|
62
62
|
state: { ...app.state, values } }];
|
|
63
63
|
}),
|
|
@@ -7,7 +7,7 @@ export interface AskPayload {
|
|
|
7
7
|
question: string;
|
|
8
8
|
options: string[];
|
|
9
9
|
multi: boolean;
|
|
10
|
-
/**
|
|
10
|
+
/** The actor the question stands for when the run owner asks it outside a turn. */
|
|
11
11
|
recipient?: string;
|
|
12
12
|
}
|
|
13
13
|
|
|
@@ -4,13 +4,13 @@ import { defineOperation } from "@ragents/engine/src/rpc/contract";
|
|
|
4
4
|
export const askContracts = {
|
|
5
5
|
answer: defineOperation({
|
|
6
6
|
id: "ragents.ask.answer",
|
|
7
|
-
description: "
|
|
7
|
+
description: "Answer or dismiss a question of the run. Rights: runs.read and runs.write.",
|
|
8
8
|
rights: ["runs.read", "runs.write"],
|
|
9
9
|
input: Type.Object({
|
|
10
|
-
runId: Type.String({ minLength: 1, maxLength: 64, description: "
|
|
11
|
-
actionId: Type.String({ minLength: 1, maxLength: 80, description: "
|
|
12
|
-
answer: Type.Optional(Type.String({ description: "
|
|
13
|
-
dismiss: Type.Optional(Type.Boolean({ description: "true
|
|
10
|
+
runId: Type.String({ minLength: 1, maxLength: 64, description: "Run id" }),
|
|
11
|
+
actionId: Type.String({ minLength: 1, maxLength: 80, description: "Question id" }),
|
|
12
|
+
answer: Type.Optional(Type.String({ description: "The user's answer" })),
|
|
13
|
+
dismiss: Type.Optional(Type.Boolean({ description: "true dismisses the question without an answer" })),
|
|
14
14
|
}, { additionalProperties: false }),
|
|
15
15
|
result: Type.Null(),
|
|
16
16
|
}),
|
|
@@ -7,7 +7,7 @@ export const createAnswerMethod = (
|
|
|
7
7
|
ensureSession: (runId: string) => void,
|
|
8
8
|
): MethodContribution => implement(askContracts.answer, ({ runId, actionId, answer, dismiss }) => {
|
|
9
9
|
if (dismiss !== true && (typeof answer !== "string" || answer.trim() === "")) {
|
|
10
|
-
throw new DomainError("answer-missing", "answer
|
|
10
|
+
throw new DomainError("answer-missing", "answer is required unless the question is dismissed", 400);
|
|
11
11
|
}
|
|
12
12
|
ensureSession(runId);
|
|
13
13
|
service.answer(runId, actionId, { ...(answer !== undefined ? { answer } : {}), ...(dismiss !== undefined ? { dismiss } : {}) });
|
|
@@ -35,7 +35,7 @@ export class RuntimeAskService implements AskService {
|
|
|
35
35
|
readonly #aborting = new Set<string>();
|
|
36
36
|
|
|
37
37
|
bind(runtime: Orchestration): void {
|
|
38
|
-
if (this.#runtime) throw new Error("
|
|
38
|
+
if (this.#runtime) throw new Error("The ask service is already bound to a runtime");
|
|
39
39
|
this.#runtime = runtime;
|
|
40
40
|
runtime.subscribe((events) => this.#onJournal(events));
|
|
41
41
|
}
|
|
@@ -53,7 +53,7 @@ export class RuntimeAskService implements AskService {
|
|
|
53
53
|
title: request.question,
|
|
54
54
|
description: request.description,
|
|
55
55
|
parameters: request.parameters,
|
|
56
|
-
input: { label: "
|
|
56
|
+
input: { label: "Answer", placeholder: null, required: true },
|
|
57
57
|
payload: {
|
|
58
58
|
question: request.question,
|
|
59
59
|
options: [...request.options],
|
|
@@ -64,7 +64,7 @@ export class RuntimeAskService implements AskService {
|
|
|
64
64
|
const proposed = runtime.events(call.runId).find((event) =>
|
|
65
65
|
event.type === "action.proposed" && event.commandId === call.commandId);
|
|
66
66
|
if (proposed?.type !== "action.proposed") {
|
|
67
|
-
throw new Error(`
|
|
67
|
+
throw new Error(`The question from ${call.agentId} was not created in the journal of ${call.runId}`);
|
|
68
68
|
}
|
|
69
69
|
return this.#awaitAnswer(call.runId, proposed.payload.actionId, call.turnId ? call.agentId : null, signal);
|
|
70
70
|
}
|
|
@@ -74,7 +74,7 @@ export class RuntimeAskService implements AskService {
|
|
|
74
74
|
const state = runtime.state(runId);
|
|
75
75
|
const action = state.actions.get(actionId);
|
|
76
76
|
if (!action || action.owner !== ASK_PLUGIN_ID) {
|
|
77
|
-
throw new DomainError("question-not-found", `
|
|
77
|
+
throw new DomainError("question-not-found", `Question ${actionId} does not exist in run ${runId}.`, 404);
|
|
78
78
|
}
|
|
79
79
|
runtime.resolveAction(
|
|
80
80
|
{ actorId: state.ownerId, commandId: `ask-answer:${actionId}:${randomUUID()}` },
|
|
@@ -120,7 +120,7 @@ export class RuntimeAskService implements AskService {
|
|
|
120
120
|
#awaitAnswer(runId: string, actionId: string, blockedActorId: string | null, signal: AbortSignal | undefined): Promise<string> {
|
|
121
121
|
const runtime = this.#requireRuntime();
|
|
122
122
|
const action = runtime.state(runId).actions.get(actionId);
|
|
123
|
-
if (!action) throw new Error(`
|
|
123
|
+
if (!action) throw new Error(`Question ${actionId} does not exist in run ${runId}`);
|
|
124
124
|
const settled = resolvedAnswerOf(action);
|
|
125
125
|
if (settled !== null) return Promise.resolve(settled);
|
|
126
126
|
return new Promise<string>((resolve, reject) => {
|
|
@@ -138,7 +138,7 @@ export class RuntimeAskService implements AskService {
|
|
|
138
138
|
{ decision: "dismissed", result: null },
|
|
139
139
|
);
|
|
140
140
|
}
|
|
141
|
-
reject(new Error("
|
|
141
|
+
reject(new Error("Waiting for the answer was cancelled."));
|
|
142
142
|
} catch (error) {
|
|
143
143
|
reject(error);
|
|
144
144
|
} finally {
|
|
@@ -201,16 +201,16 @@ export class RuntimeAskService implements AskService {
|
|
|
201
201
|
runId,
|
|
202
202
|
{
|
|
203
203
|
actorId: recipientId,
|
|
204
|
-
content: `
|
|
204
|
+
content: `Answer to ${recipientId === action.askedBy ? "your question" : "the question"}: ${action.title}\nAnswer: ${answer}`,
|
|
205
205
|
},
|
|
206
206
|
);
|
|
207
207
|
} catch (error) {
|
|
208
|
-
console.error(`
|
|
208
|
+
console.error(`Answer to question ${actionId} could not be enqueued as input: ${error instanceof Error ? error.message : String(error)}`);
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
#requireRuntime(): Orchestration {
|
|
213
|
-
if (!this.#runtime) throw new Error("
|
|
213
|
+
if (!this.#runtime) throw new Error("The ask service is not bound to the runtime yet");
|
|
214
214
|
return this.#runtime;
|
|
215
215
|
}
|
|
216
216
|
}
|