@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
|
@@ -46,7 +46,7 @@ const strippedOf = (value: string) => value.trim().replace(/^@/, "");
|
|
|
46
46
|
|
|
47
47
|
const referenceOf = (what: string, value: unknown): string => {
|
|
48
48
|
if (typeof value !== "string" || !strippedOf(value))
|
|
49
|
-
throw new ScriptError(`${where}: ${what}
|
|
49
|
+
throw new ScriptError(`${where}: ${what} must be an actor ID or a handle as non-empty text.`);
|
|
50
50
|
|
|
51
51
|
return strippedOf(value);
|
|
52
52
|
};
|
|
@@ -55,7 +55,7 @@ const keysOf = (references: readonly string[]): MediatorKeys => {
|
|
|
55
55
|
const folded = new Map(references.map((reference) => [handleKey(reference), reference] as const));
|
|
56
56
|
|
|
57
57
|
if (folded.size !== references.length)
|
|
58
|
-
throw new ScriptError(`${where}: table
|
|
58
|
+
throw new ScriptError(`${where}: table names the same participant twice.`);
|
|
59
59
|
|
|
60
60
|
return { all: references, exact: new Set(references), folded };
|
|
61
61
|
};
|
|
@@ -70,9 +70,9 @@ const senderKeyOf = (keys: MediatorKeys, event: MediatorEvent): string | null =>
|
|
|
70
70
|
|
|
71
71
|
const unknownTarget = (what: string, reference: string, keys: MediatorKeys): never => {
|
|
72
72
|
throw new ScriptError(
|
|
73
|
-
`${where}: ${what}
|
|
74
|
-
+ `
|
|
75
|
-
+ `
|
|
73
|
+
`${where}: ${what} is not a key in the table. `
|
|
74
|
+
+ `The table knows: ${keys.all.join(", ")}. `
|
|
75
|
+
+ `A pure recipient belongs in the table as "${reference}": null.`,
|
|
76
76
|
);
|
|
77
77
|
};
|
|
78
78
|
|
|
@@ -81,17 +81,17 @@ const targetsOf = (sender: string, value: unknown, keys: MediatorKeys): Mediator
|
|
|
81
81
|
|
|
82
82
|
if (!Array.isArray(value))
|
|
83
83
|
throw new ScriptError(
|
|
84
|
-
`${where}:
|
|
84
|
+
`${where}: the targets of ${sender} must be a list of actor IDs or handles, a function or null.`,
|
|
85
85
|
);
|
|
86
86
|
|
|
87
87
|
const ids = value.map((entry) => {
|
|
88
|
-
const reference = referenceOf(`
|
|
88
|
+
const reference = referenceOf(`a target of ${sender}`, entry);
|
|
89
89
|
|
|
90
|
-
return keyOf(keys, reference) ?? unknownTarget(`
|
|
90
|
+
return keyOf(keys, reference) ?? unknownTarget(`the target ${reference} of ${sender}`, reference, keys);
|
|
91
91
|
});
|
|
92
92
|
|
|
93
93
|
if (new Set(ids).size !== ids.length)
|
|
94
|
-
throw new ScriptError(`${where}:
|
|
94
|
+
throw new ScriptError(`${where}: the targets of ${sender} name the same recipient twice.`);
|
|
95
95
|
|
|
96
96
|
return { kind: "list", ids };
|
|
97
97
|
};
|
|
@@ -100,10 +100,10 @@ const tableOf = (value: unknown): { readonly table: ReadonlyMap<string, Mediator
|
|
|
100
100
|
const record = recordOf(value);
|
|
101
101
|
|
|
102
102
|
if (!record)
|
|
103
|
-
throw new ScriptError(`${where}: table
|
|
103
|
+
throw new ScriptError(`${where}: table must be a routing table from sender to targets.`);
|
|
104
104
|
|
|
105
105
|
const entries = Object.entries(record)
|
|
106
|
-
.map(([reference, targets]) => [referenceOf("
|
|
106
|
+
.map(([reference, targets]) => [referenceOf("every key of table", reference), targets] as const);
|
|
107
107
|
const keys = keysOf(entries.map(([key]) => key));
|
|
108
108
|
const table = new Map<string, MediatorTargets>();
|
|
109
109
|
|
|
@@ -114,7 +114,7 @@ const tableOf = (value: unknown): { readonly table: ReadonlyMap<string, Mediator
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
if (table.size === 0)
|
|
117
|
-
throw new ScriptError(`${where}: table
|
|
117
|
+
throw new ScriptError(`${where}: table must contain at least one sender.`);
|
|
118
118
|
|
|
119
119
|
return { table, keys };
|
|
120
120
|
};
|
|
@@ -123,7 +123,7 @@ const startOf = (value: unknown, keys: MediatorKeys): MediatorStart => {
|
|
|
123
123
|
const start = recordOf(value);
|
|
124
124
|
|
|
125
125
|
if (!start || typeof start.text !== "string" || !start.text.trim())
|
|
126
|
-
throw new ScriptError(`${where}: start
|
|
126
|
+
throw new ScriptError(`${where}: start needs text as the first line of the protocol and to as the recipient.`);
|
|
127
127
|
|
|
128
128
|
const to = referenceOf("start.to", start.to);
|
|
129
129
|
|
|
@@ -132,13 +132,13 @@ const startOf = (value: unknown, keys: MediatorKeys): MediatorStart => {
|
|
|
132
132
|
|
|
133
133
|
const hookOf = (name: string, value: unknown, required: boolean): MediatorHook | null => {
|
|
134
134
|
if (value === undefined || value === null) {
|
|
135
|
-
if (required) throw new ScriptError(`${where}: ${name}
|
|
135
|
+
if (required) throw new ScriptError(`${where}: ${name} must be a function.`);
|
|
136
136
|
|
|
137
137
|
return null;
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
if (typeof value !== "function")
|
|
141
|
-
throw new ScriptError(`${where}: ${name}
|
|
141
|
+
throw new ScriptError(`${where}: ${name} must be a function.`);
|
|
142
142
|
|
|
143
143
|
return value as MediatorHook;
|
|
144
144
|
};
|
|
@@ -147,17 +147,17 @@ const configOf = (value: unknown): MediatorConfig => {
|
|
|
147
147
|
const config = recordOf(value);
|
|
148
148
|
|
|
149
149
|
if (!config)
|
|
150
|
-
throw new ScriptError(`${where}
|
|
150
|
+
throw new ScriptError(`${where} expects a configuration object.`);
|
|
151
151
|
|
|
152
152
|
const label = config.label;
|
|
153
153
|
|
|
154
154
|
if (label !== "handle" && label !== "none")
|
|
155
|
-
throw new ScriptError(`${where}: label
|
|
155
|
+
throw new ScriptError(`${where}: label must be "handle" or "none".`);
|
|
156
156
|
|
|
157
157
|
const maxEntries = config.maxEntries;
|
|
158
158
|
|
|
159
159
|
if (typeof maxEntries !== "number" || !Number.isSafeInteger(maxEntries) || maxEntries < 1)
|
|
160
|
-
throw new ScriptError(`${where}: maxEntries
|
|
160
|
+
throw new ScriptError(`${where}: maxEntries must be an integer of at least 1.`);
|
|
161
161
|
|
|
162
162
|
const { table, keys } = tableOf(config.table);
|
|
163
163
|
|
|
@@ -177,7 +177,7 @@ const entryOf = (value: unknown): MediatorEntry => {
|
|
|
177
177
|
const entry = recordOf(value);
|
|
178
178
|
|
|
179
179
|
if (!entry || (entry.from !== null && typeof entry.from !== "string") || typeof entry.text !== "string")
|
|
180
|
-
throw new ScriptError("
|
|
180
|
+
throw new ScriptError("The state of the mediator contains an entry without from and text.");
|
|
181
181
|
|
|
182
182
|
return { from: entry.from as string | null, text: entry.text };
|
|
183
183
|
};
|
|
@@ -188,7 +188,7 @@ const stateOf = (value: unknown): MediatorState | null => {
|
|
|
188
188
|
const state = recordOf(value);
|
|
189
189
|
|
|
190
190
|
if (!state || !Array.isArray(state.entries) || typeof state.done !== "boolean")
|
|
191
|
-
throw new ScriptError("
|
|
191
|
+
throw new ScriptError("The state of the mediator does not belong to this library.");
|
|
192
192
|
|
|
193
193
|
return { entries: state.entries.map(entryOf), done: state.done };
|
|
194
194
|
};
|
|
@@ -200,7 +200,7 @@ const eventOf = (value: unknown): MediatorEvent | null => {
|
|
|
200
200
|
|
|
201
201
|
if (!event || typeof event.type !== "string" || typeof event.sourceActorId !== "string"
|
|
202
202
|
|| typeof event.sourceActorHandle !== "string")
|
|
203
|
-
throw new ScriptError("
|
|
203
|
+
throw new ScriptError("The delivered event carries no type and no sender.");
|
|
204
204
|
|
|
205
205
|
return { type: event.type, sourceActorId: event.sourceActorId, sourceActorHandle: event.sourceActorHandle };
|
|
206
206
|
};
|
|
@@ -209,7 +209,7 @@ const inputOf = (value: unknown): MediatorInput => {
|
|
|
209
209
|
const input = recordOf(value);
|
|
210
210
|
|
|
211
211
|
if (!input || typeof input.content !== "string")
|
|
212
|
-
throw new ScriptError("
|
|
212
|
+
throw new ScriptError("The mediator did not receive an ActorInput with the text field content.");
|
|
213
213
|
|
|
214
214
|
return { content: input.content, event: eventOf(input.event) };
|
|
215
215
|
};
|
|
@@ -219,7 +219,7 @@ const lastLineOf = (content: string, from: string): string => {
|
|
|
219
219
|
const last = lines[lines.length - 1];
|
|
220
220
|
|
|
221
221
|
if (last === undefined)
|
|
222
|
-
throw new ScriptError(`
|
|
222
|
+
throw new ScriptError(`The answer from @${from} contains no non-empty line.`);
|
|
223
223
|
|
|
224
224
|
return last;
|
|
225
225
|
};
|
|
@@ -237,7 +237,7 @@ const mediatorHandler = (binding: MediatorBinding, value: unknown) => {
|
|
|
237
237
|
try {
|
|
238
238
|
await run(...args);
|
|
239
239
|
} catch (error) {
|
|
240
|
-
throw new ScriptError(`
|
|
240
|
+
throw new ScriptError(`The hook ${name} of the mediator failed: ${messageOf(error)}`);
|
|
241
241
|
}
|
|
242
242
|
};
|
|
243
243
|
|
|
@@ -248,7 +248,7 @@ const mediatorHandler = (binding: MediatorBinding, value: unknown) => {
|
|
|
248
248
|
|
|
249
249
|
if (!Array.isArray(values))
|
|
250
250
|
throw new ScriptError(
|
|
251
|
-
`
|
|
251
|
+
`The target function for ${sender} must return an actor ID, a handle, a list of them or null.`,
|
|
252
252
|
);
|
|
253
253
|
|
|
254
254
|
return values.map((id) => {
|
|
@@ -256,8 +256,8 @@ const mediatorHandler = (binding: MediatorBinding, value: unknown) => {
|
|
|
256
256
|
|
|
257
257
|
if (key === null)
|
|
258
258
|
throw new ScriptError(
|
|
259
|
-
`
|
|
260
|
-
+ `
|
|
259
|
+
`The target function for ${sender} names the unknown target ${String(id)}. `
|
|
260
|
+
+ `The table knows: ${config.keys.all.join(", ")}.`,
|
|
261
261
|
);
|
|
262
262
|
|
|
263
263
|
return key;
|
|
@@ -268,7 +268,7 @@ const mediatorHandler = (binding: MediatorBinding, value: unknown) => {
|
|
|
268
268
|
try {
|
|
269
269
|
return await run(entry);
|
|
270
270
|
} catch (error) {
|
|
271
|
-
throw new ScriptError(`
|
|
271
|
+
throw new ScriptError(`The target function for ${sender} failed: ${messageOf(error)}`);
|
|
272
272
|
}
|
|
273
273
|
};
|
|
274
274
|
|
|
@@ -305,7 +305,7 @@ const mediatorHandler = (binding: MediatorBinding, value: unknown) => {
|
|
|
305
305
|
|
|
306
306
|
if (input.event === null) {
|
|
307
307
|
if (current)
|
|
308
|
-
throw new ScriptError("
|
|
308
|
+
throw new ScriptError("The mediator is already set up; a second direct ActorInput is not intended.");
|
|
309
309
|
|
|
310
310
|
await binding.capabilities.call("event_subscribe", {
|
|
311
311
|
sourceActorIds: [...config.table.keys()],
|
|
@@ -317,24 +317,24 @@ const mediatorHandler = (binding: MediatorBinding, value: unknown) => {
|
|
|
317
317
|
}
|
|
318
318
|
|
|
319
319
|
if (!current)
|
|
320
|
-
throw new ScriptError("
|
|
320
|
+
throw new ScriptError("The mediator is not set up yet; the first ActorInput must come without an event.");
|
|
321
321
|
|
|
322
322
|
if (current.done) return;
|
|
323
323
|
|
|
324
324
|
const event = input.event;
|
|
325
325
|
|
|
326
326
|
if (event.type !== mediatorEventType)
|
|
327
|
-
throw new ScriptError(`
|
|
327
|
+
throw new ScriptError(`The mediator only accepts ${mediatorEventType}, here ${event.type} arrived.`);
|
|
328
328
|
|
|
329
329
|
const senderKey = senderKeyOf(config.keys, event);
|
|
330
330
|
const targets = senderKey === null ? undefined : config.table.get(senderKey);
|
|
331
331
|
|
|
332
332
|
if (senderKey === null || !targets)
|
|
333
333
|
throw new ScriptError(
|
|
334
|
-
`
|
|
335
|
-
+ `
|
|
336
|
-
+ `
|
|
337
|
-
+ `
|
|
334
|
+
`The sender ${event.sourceActorId} with the handle ${event.sourceActorHandle} `
|
|
335
|
+
+ `does not appear in the table as a sender. `
|
|
336
|
+
+ `Senders are: ${[...config.table.keys()].join(", ")}. `
|
|
337
|
+
+ `A key may be the actor ID, the handle or @handle.`,
|
|
338
338
|
);
|
|
339
339
|
|
|
340
340
|
const entry: MediatorEntry = {
|
|
@@ -136,12 +136,12 @@ const acquireWorker = (
|
|
|
136
136
|
};
|
|
137
137
|
const onAbort = (): void => fail(new VirtualTypeScriptWorkerError(
|
|
138
138
|
"ABORTED",
|
|
139
|
-
"
|
|
139
|
+
"The TypeScript compilation was cancelled.",
|
|
140
140
|
{ cause: signal?.reason },
|
|
141
141
|
));
|
|
142
142
|
const timer = setTimeout(() => fail(new VirtualTypeScriptWorkerError(
|
|
143
143
|
"TIMEOUT",
|
|
144
|
-
`
|
|
144
|
+
`The TypeScript compiler exceeded the timeout of ${timeoutMs} ms.`,
|
|
145
145
|
)), Math.max(0, deadline - performance.now()));
|
|
146
146
|
|
|
147
147
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
@@ -151,7 +151,7 @@ const acquireWorker = (
|
|
|
151
151
|
catch (error) {
|
|
152
152
|
fail(new VirtualTypeScriptWorkerError(
|
|
153
153
|
"WORKER_FAILURE",
|
|
154
|
-
"
|
|
154
|
+
"The TypeScript compiler worker could not be started.",
|
|
155
155
|
{ cause: error },
|
|
156
156
|
));
|
|
157
157
|
}
|
|
@@ -192,7 +192,7 @@ const isWorkerMessage = (value: unknown): value is CompilerWorkerMessage => {
|
|
|
192
192
|
const timeoutOf = (options: CompileVirtualTypeScriptAsyncOptions | undefined): number => {
|
|
193
193
|
const timeoutMs = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
194
194
|
if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > MAX_TIMEOUT_MS) {
|
|
195
|
-
throw new RangeError(`TypeScript
|
|
195
|
+
throw new RangeError(`TypeScript compiler timeout must be between 1 and ${MAX_TIMEOUT_MS} ms.`);
|
|
196
196
|
}
|
|
197
197
|
return timeoutMs;
|
|
198
198
|
};
|
|
@@ -200,12 +200,12 @@ const timeoutOf = (options: CompileVirtualTypeScriptAsyncOptions | undefined): n
|
|
|
200
200
|
const validateRequestSize = (request: CompileVirtualTypeScriptRequest): void => {
|
|
201
201
|
const files = [...request.sources, ...(request.declarations ?? [])];
|
|
202
202
|
if (files.length > MAX_COMPILER_FILES)
|
|
203
|
-
throw new RangeError(`
|
|
203
|
+
throw new RangeError(`A TypeScript compilation may contain at most ${MAX_COMPILER_FILES} files.`);
|
|
204
204
|
const bytes = files.reduce((size, file) =>
|
|
205
205
|
size + Buffer.byteLength(file.fileName, "utf8") + Buffer.byteLength(file.text, "utf8"),
|
|
206
206
|
Buffer.byteLength(request.contract ?? "", "utf8"));
|
|
207
207
|
if (bytes > MAX_COMPILER_INPUT_BYTES)
|
|
208
|
-
throw new RangeError(`
|
|
208
|
+
throw new RangeError(`The TypeScript compiler input may be at most ${MAX_COMPILER_INPUT_BYTES} bytes.`);
|
|
209
209
|
};
|
|
210
210
|
|
|
211
211
|
const remoteError = (error: SerializedWorkerError): Error => {
|
|
@@ -253,7 +253,7 @@ export const compileVirtualTypeScriptAsync = async (
|
|
|
253
253
|
() => reject(result.error),
|
|
254
254
|
(terminationError: unknown) => reject(new VirtualTypeScriptWorkerError(
|
|
255
255
|
"WORKER_FAILURE",
|
|
256
|
-
"
|
|
256
|
+
"The TypeScript compiler worker could not be terminated cleanly.",
|
|
257
257
|
{ cause: terminationError },
|
|
258
258
|
)),
|
|
259
259
|
);
|
|
@@ -262,7 +262,7 @@ export const compileVirtualTypeScriptAsync = async (
|
|
|
262
262
|
if (!isWorkerMessage(message)) {
|
|
263
263
|
finish({ error: new VirtualTypeScriptWorkerError(
|
|
264
264
|
"WORKER_FAILURE",
|
|
265
|
-
"
|
|
265
|
+
"The TypeScript compiler worker returned an invalid response.",
|
|
266
266
|
) });
|
|
267
267
|
return;
|
|
268
268
|
}
|
|
@@ -273,41 +273,41 @@ export const compileVirtualTypeScriptAsync = async (
|
|
|
273
273
|
}
|
|
274
274
|
finish({ error: new VirtualTypeScriptWorkerError(
|
|
275
275
|
"COMPILER_EXCEPTION",
|
|
276
|
-
`
|
|
276
|
+
`The TypeScript compiler failed: ${message.error.message}`,
|
|
277
277
|
{ cause: remoteError(message.error) },
|
|
278
278
|
), keepWorker: true });
|
|
279
279
|
};
|
|
280
280
|
const onMessageError = (error: Error): void => finish({
|
|
281
281
|
error: new VirtualTypeScriptWorkerError(
|
|
282
282
|
"WORKER_FAILURE",
|
|
283
|
-
"
|
|
283
|
+
"The response of the TypeScript compiler worker could not be read.",
|
|
284
284
|
{ cause: error },
|
|
285
285
|
),
|
|
286
286
|
});
|
|
287
287
|
const onError = (error: Error): void => finish({
|
|
288
288
|
error: new VirtualTypeScriptWorkerError(
|
|
289
289
|
"WORKER_FAILURE",
|
|
290
|
-
`
|
|
290
|
+
`The TypeScript compiler worker failed: ${error.message}`,
|
|
291
291
|
{ cause: error },
|
|
292
292
|
),
|
|
293
293
|
});
|
|
294
294
|
const onExit = (code: number): void => finish({
|
|
295
295
|
error: new VirtualTypeScriptWorkerError(
|
|
296
296
|
"WORKER_FAILURE",
|
|
297
|
-
`
|
|
297
|
+
`The TypeScript compiler worker exited without a result (exit code ${code}).`,
|
|
298
298
|
),
|
|
299
299
|
});
|
|
300
300
|
const onAbort = (): void => finish({
|
|
301
301
|
error: new VirtualTypeScriptWorkerError(
|
|
302
302
|
"ABORTED",
|
|
303
|
-
"
|
|
303
|
+
"The TypeScript compilation was cancelled.",
|
|
304
304
|
{ cause: options?.signal?.reason },
|
|
305
305
|
),
|
|
306
306
|
});
|
|
307
307
|
const timer = setTimeout(() => finish({
|
|
308
308
|
error: new VirtualTypeScriptWorkerError(
|
|
309
309
|
"TIMEOUT",
|
|
310
|
-
`
|
|
310
|
+
`The TypeScript compiler exceeded the timeout of ${timeoutMs} ms.`,
|
|
311
311
|
),
|
|
312
312
|
}), Math.max(0, deadline - performance.now()));
|
|
313
313
|
|
|
@@ -37,12 +37,12 @@ const serializedError = (error: unknown): SerializedWorkerError => {
|
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
if (parentPort === null) {
|
|
40
|
-
throw new Error("
|
|
40
|
+
throw new Error("The TypeScript compiler worker needs a parent thread.");
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
const port = parentPort;
|
|
44
44
|
port.on("message", (message: CompilerWorkerRequest) => {
|
|
45
|
-
if (message?.kind !== "compile") throw new Error("
|
|
45
|
+
if (message?.kind !== "compile") throw new Error("The TypeScript compiler worker received an unknown request.");
|
|
46
46
|
try {
|
|
47
47
|
const compilation = compileVirtualTypeScript(message.request);
|
|
48
48
|
port.postMessage({ kind: "result", requestId: message.requestId, compilation } satisfies CompilerWorkerMessage);
|
|
@@ -107,19 +107,19 @@ const libraryContent = (source: string): { readonly text: string; readonly hash:
|
|
|
107
107
|
|
|
108
108
|
const normalizeFileName = (fileName: string, kind: VirtualFileKind): string => {
|
|
109
109
|
if (!fileName.trim() || fileName.includes("\0") || fileName.includes("\\")) {
|
|
110
|
-
throw new TypeError(`
|
|
110
|
+
throw new TypeError(`Invalid virtual TypeScript path: ${fileName}`);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
const normalized = path.posix.normalize(`/${fileName}`).replace(/^\/+(?=.)/, "/");
|
|
114
114
|
if (normalized === VIRTUAL_ROOT || normalized.startsWith("/__ragents__/")) {
|
|
115
|
-
throw new TypeError(`
|
|
115
|
+
throw new TypeError(`Reserved virtual TypeScript path: ${fileName}`);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
if (kind === "source" && ((!normalized.endsWith(".ts") && !normalized.endsWith(".tsx")) || normalized.endsWith(".d.ts"))) {
|
|
119
|
-
throw new TypeError(`
|
|
119
|
+
throw new TypeError(`Virtual TypeScript source must end in .ts or .tsx: ${fileName}`);
|
|
120
120
|
}
|
|
121
121
|
if (kind === "declaration" && !normalized.endsWith(".d.ts")) {
|
|
122
|
-
throw new TypeError(`
|
|
122
|
+
throw new TypeError(`Virtual TypeScript declaration must end in .d.ts: ${fileName}`);
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
return normalized;
|
|
@@ -137,7 +137,7 @@ const normalizedFiles = (
|
|
|
137
137
|
const assertUniqueFiles = (files: readonly NormalizedFile[]): void => {
|
|
138
138
|
const names = new Set<string>();
|
|
139
139
|
for (const file of files) {
|
|
140
|
-
if (names.has(file.fileName)) throw new TypeError(`
|
|
140
|
+
if (names.has(file.fileName)) throw new TypeError(`Virtual file declared twice: ${file.fileName}`);
|
|
141
141
|
names.add(file.fileName);
|
|
142
142
|
}
|
|
143
143
|
};
|
|
@@ -239,9 +239,9 @@ const diagnosticsOf = (diagnostics: readonly ts.Diagnostic[]): VirtualTypeScript
|
|
|
239
239
|
export const compileVirtualTypeScript = (
|
|
240
240
|
request: CompileVirtualTypeScriptRequest,
|
|
241
241
|
): VirtualTypeScriptCompilation => {
|
|
242
|
-
if (request.sources.length === 0) throw new TypeError("
|
|
242
|
+
if (request.sources.length === 0) throw new TypeError("At least one TypeScript source is required.");
|
|
243
243
|
const emit = request.emit ?? "none";
|
|
244
|
-
if (!["none", "browser", "node"].includes(emit)) throw new TypeError(`
|
|
244
|
+
if (!["none", "browser", "node"].includes(emit)) throw new TypeError(`Unknown TypeScript emit mode: ${String(emit)}`);
|
|
245
245
|
const sources = normalizedFiles(request.sources, "source");
|
|
246
246
|
const declarations = normalizedFiles(request.declarations ?? [], "declaration");
|
|
247
247
|
const libraries: LoadedLibrary[] = (request.libraries ?? []).map((library) => ({
|
|
@@ -37,7 +37,7 @@ export class TypeScriptSnippetCompilationError extends Error {
|
|
|
37
37
|
...(diagnostic.end ? { end: { ...diagnostic.end, line: Math.max(1, diagnostic.end.line - 1) } } : {}),
|
|
38
38
|
} : {}),
|
|
39
39
|
}));
|
|
40
|
-
super(`TypeScript
|
|
40
|
+
super(`TypeScript snippet was not executed:\n${original.map((diagnostic) =>
|
|
41
41
|
`${diagnostic.fileName ?? "TypeScript"}${diagnostic.start ? `:${diagnostic.start.line}:${diagnostic.start.column}` : ""} TS${diagnostic.code}: ${diagnostic.message}`,
|
|
42
42
|
).join("\n")}`);
|
|
43
43
|
this.name = "TypeScriptSnippetCompilationError";
|
|
@@ -47,7 +47,7 @@ export class TypeScriptSnippetCompilationError extends Error {
|
|
|
47
47
|
|
|
48
48
|
export const compileTypeScriptSnippet = async (source: TypeScriptSnippetSource): Promise<NativeTypeScriptProgram> => {
|
|
49
49
|
source.signal?.throwIfAborted();
|
|
50
|
-
if (!source.code.trim()) throw new Error("
|
|
50
|
+
if (!source.code.trim()) throw new Error("The TypeScript snippet must not be empty.");
|
|
51
51
|
const compiled = await compileVirtualTypeScriptAsync({
|
|
52
52
|
sources: [{ fileName: snippetFile, text: `export async function handle(_input: unknown, context: RunContext) {\n${source.code}\n}\n` }],
|
|
53
53
|
declarations: [{ fileName: "snippet-context.d.ts", text: typeScriptSnippetDeclarations(source.capabilities) }],
|
|
@@ -77,7 +77,7 @@ export class TypeScriptSnippetExecutionError extends Error {
|
|
|
77
77
|
readonly logs: readonly string[];
|
|
78
78
|
|
|
79
79
|
constructor(cause: unknown, logs: readonly string[]) {
|
|
80
|
-
super(`TypeScript
|
|
80
|
+
super(`TypeScript snippet failed: ${cause instanceof Error ? cause.message : String(cause)}${logs.length > 0 ? `\nLogs before the error:\n${logs.join("\n")}` : ""}`, { cause });
|
|
81
81
|
this.name = "TypeScriptSnippetExecutionError";
|
|
82
82
|
this.logs = [...logs];
|
|
83
83
|
}
|
|
@@ -105,7 +105,7 @@ export const executeTypeScriptSnippet = async (execution: TypeScriptSnippetExecu
|
|
|
105
105
|
});
|
|
106
106
|
execution.signal?.throwIfAborted();
|
|
107
107
|
const returned = output.result === undefined ? null : output.result;
|
|
108
|
-
assertJsonValue(returned, "TypeScript
|
|
108
|
+
assertJsonValue(returned, "TypeScript snippet result");
|
|
109
109
|
const result: JsonValue = JSON.parse(JSON.stringify(returned));
|
|
110
110
|
return { result, logs };
|
|
111
111
|
} catch (error) {
|
|
@@ -115,7 +115,7 @@ export const executeTypeScriptSnippet = async (execution: TypeScriptSnippetExecu
|
|
|
115
115
|
try {
|
|
116
116
|
await execution.executor.stopInstance(execution.context.runId, instanceId);
|
|
117
117
|
} catch (error) {
|
|
118
|
-
if (failure) throw new AggregateError([failure, error], `${failure.message}\
|
|
118
|
+
if (failure) throw new AggregateError([failure, error], `${failure.message}\nThe snippet instance could not be terminated completely: ${error instanceof Error ? error.message : String(error)}`);
|
|
119
119
|
throw new TypeScriptSnippetExecutionError(error, logs);
|
|
120
120
|
}
|
|
121
121
|
}
|
|
@@ -2,39 +2,39 @@ import { accessSync, constants, existsSync, statSync } from "node:fs";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { getShellConfig } from "@ragents/agent";
|
|
4
4
|
|
|
5
|
-
/**
|
|
5
|
+
/** A command of the bash tool as it starts: program, arguments and environment. */
|
|
6
6
|
export interface BashLaunch {
|
|
7
7
|
readonly command: string;
|
|
8
8
|
readonly args: readonly string[];
|
|
9
9
|
readonly env: NodeJS.ProcessEnv;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
/**
|
|
12
|
+
/** What the executor passes to the bash tool: bash itself and rg; without a value the system's one applies. */
|
|
13
13
|
export interface BashPrograms {
|
|
14
14
|
readonly bash: string | undefined;
|
|
15
15
|
readonly rg: string | undefined;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
/**
|
|
18
|
+
/** On Windows RAgents does not search for a bash; the executor names the bundled one. */
|
|
19
19
|
const missingWindowsBash = (): Error => new Error(
|
|
20
|
-
"
|
|
21
|
-
+ "
|
|
22
|
-
+ "
|
|
20
|
+
"On Windows the bash tool only works with the bash that RAgents bundles, and none is named for this executor. "
|
|
21
|
+
+ "The VS Code extension bundles it in its Windows build (win32-x64, win32-arm64) under dist/bash/<platform>/usr/bin/bash.exe "
|
|
22
|
+
+ "and passes it on to the workspace and the local host; a host or workspace without the extension needs RAGENTS_BASH with the path of this bash.exe.",
|
|
23
23
|
);
|
|
24
24
|
|
|
25
25
|
const missingRipgrep = (rg: string): Error =>
|
|
26
|
-
new Error(`
|
|
26
|
+
new Error(`The rg of this executor is missing: ${rg}. It belongs to the extension (dist/rg/<platform>) or is set in RAGENTS_RG.`);
|
|
27
27
|
|
|
28
28
|
const pathModule = (platform: NodeJS.Platform): path.PlatformPath => platform === "win32" ? path.win32 : path.posix;
|
|
29
29
|
|
|
30
|
-
/**
|
|
30
|
+
/** The names of the PATH variables; on Windows every spelling counts (`Path`). */
|
|
31
31
|
const pathNames = (env: NodeJS.ProcessEnv, platform: NodeJS.Platform): readonly string[] =>
|
|
32
32
|
platform === "win32" ? Object.keys(env).filter((name) => name.toUpperCase() === "PATH") : ["PATH"];
|
|
33
33
|
|
|
34
34
|
const currentPath = (env: NodeJS.ProcessEnv, platform: NodeJS.Platform): string | undefined =>
|
|
35
35
|
pathNames(env, platform).map((name) => env[name]).find((value) => value !== undefined && value !== "");
|
|
36
36
|
|
|
37
|
-
/**
|
|
37
|
+
/** The folders at the front of PATH, as one PATH variable; on Windows MSYSTEM belongs to a Git Bash login and is dropped. */
|
|
38
38
|
const withPathFront = (env: NodeJS.ProcessEnv, directories: readonly string[], platform: NodeJS.Platform): NodeJS.ProcessEnv => {
|
|
39
39
|
if (directories.length === 0) return env;
|
|
40
40
|
const names = pathNames(env, platform);
|
|
@@ -53,7 +53,7 @@ const isExecutableFile = (file: string, platform: NodeJS.Platform): boolean => {
|
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
-
/**
|
|
56
|
+
/** Whether the bash of this executor finds rg: the named one, otherwise one in PATH; a named one that is missing is an error. */
|
|
57
57
|
export const ripgrepAvailable = (rg: string | undefined, env: NodeJS.ProcessEnv, platform: NodeJS.Platform = process.platform): boolean => {
|
|
58
58
|
if (rg !== undefined) {
|
|
59
59
|
if (!existsSync(rg)) throw missingRipgrep(rg);
|
|
@@ -64,7 +64,7 @@ export const ripgrepAvailable = (rg: string | undefined, env: NodeJS.ProcessEnv,
|
|
|
64
64
|
.some((directory) => isExecutableFile(path.join(directory, file), platform));
|
|
65
65
|
};
|
|
66
66
|
|
|
67
|
-
/**
|
|
67
|
+
/** How a command starts in the bash of this executor: the directory of rg at the front of PATH, on Windows followed by the usr/bin of the bash so that find.exe and sort.exe from System32 do not win. */
|
|
68
68
|
export const bashLaunch = (
|
|
69
69
|
{ bash, rg }: BashPrograms,
|
|
70
70
|
command: string,
|
|
@@ -73,11 +73,11 @@ export const bashLaunch = (
|
|
|
73
73
|
): BashLaunch => {
|
|
74
74
|
if (platform === "win32" && bash === undefined) throw missingWindowsBash();
|
|
75
75
|
if (bash !== undefined && !existsSync(bash)) {
|
|
76
|
-
throw new Error(`
|
|
76
|
+
throw new Error(`The bash of this executor is missing: ${bash}. On Windows it belongs to the extension (dist/bash/<platform>) or is set in RAGENTS_BASH.`);
|
|
77
77
|
}
|
|
78
78
|
if (rg !== undefined && !existsSync(rg)) throw missingRipgrep(rg);
|
|
79
79
|
const shell = getShellConfig(bash, platform);
|
|
80
|
-
if (!/bash(\.exe)?$/i.test(shell.shell)) throw new Error(`${shell.shell}
|
|
80
|
+
if (!/bash(\.exe)?$/i.test(shell.shell)) throw new Error(`${shell.shell} is not a bash; the tool is called bash and the prompt describes bash`);
|
|
81
81
|
const paths = pathModule(platform);
|
|
82
82
|
const front = [
|
|
83
83
|
...(rg === undefined ? [] : [paths.dirname(rg)]),
|