@schlenkr/ragents 0.1.10 → 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 +4 -4
- 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 +29 -29
- package/apps/server/src/api/core-methods.ts +17 -17
- 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 +6 -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 +39 -39
- 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 +61 -56
- 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 +23 -23
- package/apps/server/src/ragents/global-chat.ts +8 -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 +48 -48
- 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-BO4wLQtE.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 +53 -54
- package/apps/web/dist/help/guide-clients.md +50 -51
- 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 +196 -144
- package/apps/web/dist/help/mini-app.css +6 -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 +23 -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 +26 -26
- package/apps/web/src/panel/connection-state.ts +9 -9
- package/apps/web/src/panel/contract.ts +28 -28
- 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 +225 -225
- package/bundles/ragents.actor-programs/server/index.js.map +2 -2
- 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 -2
- 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-MBRPS477.js → chunk-IQBHK7MV.js} +2 -2
- package/bundles/ragents.ask/web/chunks/{chunk-MBRPS477.js.map → chunk-IQBHK7MV.js.map} +3 -3
- 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 +2 -2
- 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 +2 -2
- package/bundles/ragents.overseer/ragents-bundle.json +2 -2
- package/bundles/ragents.overseer/server/index.js +98 -98
- 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 +81 -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/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/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/plugin-host.ts +119 -119
- package/packages/ragents/src/plugin-types.ts +16 -16
- 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 +12 -12
- 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 +28 -28
- 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 +1 -1
- 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/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 -2
- 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/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 +22 -22
- 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 +9 -9
- 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 +6 -6
- 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 +54 -54
- 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 +7 -7
- package/plugins/ragents.workspace/server/index.ts +3 -3
- 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-DnnqWHkH.js +0 -11
- package/apps/web/dist/assets/mermaid-HWGCJPDP-BLLeth5_.js +0 -568
- package/apps/web/dist/assets/runPanel-DPm7s3KM.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/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
|
@@ -11,11 +11,11 @@ export interface ActorProgramTemplate {
|
|
|
11
11
|
|
|
12
12
|
const blank: ActorProgramTemplate = {
|
|
13
13
|
id: "blank",
|
|
14
|
-
title: "
|
|
15
|
-
description: "
|
|
14
|
+
title: "Blank mini-app",
|
|
15
|
+
description: "A pure React view on the existing actor without an additional server function.",
|
|
16
16
|
ragents: {
|
|
17
|
-
title: "
|
|
18
|
-
description: "
|
|
17
|
+
title: "My view",
|
|
18
|
+
description: "A small interface of the existing actor.",
|
|
19
19
|
views: [{ id: "main", client: "src/client.tsx" }],
|
|
20
20
|
},
|
|
21
21
|
files: {
|
|
@@ -23,13 +23,13 @@ const blank: ActorProgramTemplate = {
|
|
|
23
23
|
import * as UI from "@ragents/client/ui";
|
|
24
24
|
|
|
25
25
|
const App = () => (
|
|
26
|
-
<UI.AppLayout title="
|
|
27
|
-
<UI.Stack><p>
|
|
26
|
+
<UI.AppLayout title="My view">
|
|
27
|
+
<UI.Stack><p>Ready for your content.</p></UI.Stack>
|
|
28
28
|
</UI.AppLayout>
|
|
29
29
|
);
|
|
30
30
|
|
|
31
31
|
const root = document.getElementById("root");
|
|
32
|
-
if (!root) throw new Error("
|
|
32
|
+
if (!root) throw new Error("The #root element is missing.");
|
|
33
33
|
createRoot(root).render(<App />);
|
|
34
34
|
`,
|
|
35
35
|
},
|
|
@@ -37,11 +37,11 @@ createRoot(root).render(<App />);
|
|
|
37
37
|
|
|
38
38
|
const chat: ActorProgramTemplate = {
|
|
39
39
|
id: "chat",
|
|
40
|
-
title: "Actor
|
|
41
|
-
description: "
|
|
40
|
+
title: "Actor chat",
|
|
41
|
+
description: "Reusable chat with history and optional input to the actor of this view.",
|
|
42
42
|
ragents: {
|
|
43
|
-
title: "Actor
|
|
44
|
-
description: "
|
|
43
|
+
title: "Actor chat",
|
|
44
|
+
description: "Shows the conversation with an actor and sends it user input.",
|
|
45
45
|
views: [{ id: "main", client: "src/client.tsx" }],
|
|
46
46
|
},
|
|
47
47
|
files: {
|
|
@@ -50,11 +50,11 @@ import * as UI from "@ragents/client/ui";
|
|
|
50
50
|
import { context } from "@ragents/client";
|
|
51
51
|
|
|
52
52
|
const App = () => (
|
|
53
|
-
<UI.Chat actor={"@" + context.actor.handle} className="h-full" showInput placeholder="
|
|
53
|
+
<UI.Chat actor={"@" + context.actor.handle} className="h-full" showInput placeholder="Message to the actor" />
|
|
54
54
|
);
|
|
55
55
|
|
|
56
56
|
const root = document.getElementById("root");
|
|
57
|
-
if (!root) throw new Error("
|
|
57
|
+
if (!root) throw new Error("The #root element is missing.");
|
|
58
58
|
createRoot(root).render(<App />);
|
|
59
59
|
`,
|
|
60
60
|
},
|
|
@@ -62,11 +62,11 @@ createRoot(root).render(<App />);
|
|
|
62
62
|
|
|
63
63
|
const textAnalysis: ActorProgramTemplate = {
|
|
64
64
|
id: "text-analysis",
|
|
65
|
-
title: "
|
|
66
|
-
description: "
|
|
65
|
+
title: "Text analysis",
|
|
66
|
+
description: "A TypeScript actor analyzes texts with its own function, state, and React view.",
|
|
67
67
|
ragents: {
|
|
68
|
-
title: "
|
|
69
|
-
description: "
|
|
68
|
+
title: "Text analysis",
|
|
69
|
+
description: "Counts characters, words, and lines and remembers the number of analyses.",
|
|
70
70
|
backend: "src/server.ts",
|
|
71
71
|
views: [{ id: "main", client: "src/client.tsx" }],
|
|
72
72
|
},
|
|
@@ -81,23 +81,23 @@ type FormValues = Parameters<typeof UI.Form>[0]["values"];
|
|
|
81
81
|
const App = () => {
|
|
82
82
|
const state = useAppState();
|
|
83
83
|
const [values, setValues] = React.useState<FormValues>({ text: "" });
|
|
84
|
-
const [result, setResult] = React.useState("
|
|
84
|
+
const [result, setResult] = React.useState("Ready");
|
|
85
85
|
|
|
86
86
|
const analyse = async (next: FormValues): Promise<void> => {
|
|
87
87
|
const answer = await context.capabilities.call("analyse", { text: String(next.text ?? "") });
|
|
88
88
|
setResult([
|
|
89
|
-
\`
|
|
90
|
-
\`
|
|
91
|
-
\`
|
|
89
|
+
\`Characters: \${answer.characters}\`,
|
|
90
|
+
\`Words: \${answer.words}\`,
|
|
91
|
+
\`Lines: \${answer.lines}\`,
|
|
92
92
|
].join("\\n"));
|
|
93
93
|
};
|
|
94
94
|
|
|
95
95
|
return (
|
|
96
|
-
<UI.AppLayout title="
|
|
96
|
+
<UI.AppLayout title="Text analysis" description={<>Analyses: {state.analyses ?? 0}</>}>
|
|
97
97
|
<UI.Grid>
|
|
98
98
|
<UI.Form fields={[
|
|
99
|
-
{ id: "text", label: "Text", type: "textarea", rows: 6, placeholder: "
|
|
100
|
-
]} values={values} onChange={setValues} onSubmit={analyse} submitLabel="
|
|
99
|
+
{ id: "text", label: "Text", type: "textarea", rows: 6, placeholder: "Enter text" },
|
|
100
|
+
]} values={values} onChange={setValues} onSubmit={analyse} submitLabel="Analyze" />
|
|
101
101
|
<UI.Stack><pre aria-live="polite" className="min-h-[90px] overflow-auto rounded-md border border-border bg-muted p-2.5 font-mono whitespace-pre-wrap">{result}</pre></UI.Stack>
|
|
102
102
|
</UI.Grid>
|
|
103
103
|
</UI.AppLayout>
|
|
@@ -105,7 +105,7 @@ const App = () => {
|
|
|
105
105
|
};
|
|
106
106
|
|
|
107
107
|
const root = document.getElementById("root");
|
|
108
|
-
if (!root) throw new Error("
|
|
108
|
+
if (!root) throw new Error("The #root element is missing.");
|
|
109
109
|
createRoot(root).render(<App />);
|
|
110
110
|
`,
|
|
111
111
|
"src/contract.ts": `import { Type } from "typebox";
|
|
@@ -114,10 +114,10 @@ export const contract = {
|
|
|
114
114
|
state: Type.Object({ analyses: Type.Optional(Type.Integer({"minimum": 0})) }, {"additionalProperties": false}),
|
|
115
115
|
functions: {
|
|
116
116
|
analyse: {
|
|
117
|
-
label: "
|
|
118
|
-
description: "
|
|
117
|
+
label: "Analyze text",
|
|
118
|
+
description: "Counts words, characters, and lines without external effects.",
|
|
119
119
|
tool: { name: "analyse_text" },
|
|
120
|
-
input: Type.Object({ text: Type.String({"description": "
|
|
120
|
+
input: Type.Object({ text: Type.String({"description": "The text to analyze."}) }, {"additionalProperties": false}),
|
|
121
121
|
output: Type.Object({ text: Type.String(), characters: Type.Integer({"minimum": 0}), words: Type.Integer({"minimum": 0}), lines: Type.Integer({"minimum": 0}), analyses: Type.Integer({"minimum": 1}) }, {"additionalProperties": false}),
|
|
122
122
|
capabilities: [],
|
|
123
123
|
},
|
|
@@ -153,9 +153,9 @@ import { createTestContext } from "@ragents/server/testing";
|
|
|
153
153
|
import { contract } from "../src/contract.ts";
|
|
154
154
|
import program from "../src/server.ts";
|
|
155
155
|
|
|
156
|
-
test("
|
|
156
|
+
test("counts words, lines, and further analyses", async () => {
|
|
157
157
|
const context = createTestContext<Static<typeof contract.state>>({ state: {} });
|
|
158
|
-
assert.deepEqual(await program.functions.analyse({"text": "
|
|
158
|
+
assert.deepEqual(await program.functions.analyse({"text": " Hello world\\nNew line "}, context), {"text": "Hello world\\nNew line", "characters": 20, "words": 4, "lines": 2, "analyses": 1});
|
|
159
159
|
assert.deepEqual(await program.functions.analyse({"text": ""}, context), {"text": "", "characters": 0, "words": 0, "lines": 0, "analyses": 2});
|
|
160
160
|
assert.deepEqual(context.state.read(), {"analyses": 2});
|
|
161
161
|
});
|
|
@@ -165,11 +165,11 @@ test("zählt Wörter, Zeilen und weitere Analysen", async () => {
|
|
|
165
165
|
|
|
166
166
|
const headlessCounter: ActorProgramTemplate = {
|
|
167
167
|
id: "headless-counter",
|
|
168
|
-
title: "
|
|
169
|
-
description: "
|
|
168
|
+
title: "Counter without interface",
|
|
169
|
+
description: "A TypeScript actor counts inputs in its state and offers the same work as a function.",
|
|
170
170
|
ragents: {
|
|
171
|
-
title: "
|
|
172
|
-
description: "
|
|
171
|
+
title: "Counter",
|
|
172
|
+
description: "Collects incoming texts without model calls or interface.",
|
|
173
173
|
backend: "src/server.ts",
|
|
174
174
|
},
|
|
175
175
|
files: {
|
|
@@ -184,13 +184,13 @@ export const contract = {
|
|
|
184
184
|
state,
|
|
185
185
|
functions: {
|
|
186
186
|
record: {
|
|
187
|
-
label: "
|
|
187
|
+
label: "Count text",
|
|
188
188
|
input: Type.Object({ text: Type.String() }, { additionalProperties: false }),
|
|
189
189
|
output: Type.Object({ count: Type.Integer(), texts: Type.Array(Type.String()) }, { additionalProperties: false }),
|
|
190
190
|
tool: { name: "record_text" },
|
|
191
191
|
},
|
|
192
192
|
inspect: {
|
|
193
|
-
label: "
|
|
193
|
+
label: "Read counter",
|
|
194
194
|
input: Type.Object({}, { additionalProperties: false }),
|
|
195
195
|
output: state,
|
|
196
196
|
tool: { name: "read_counter" },
|
|
@@ -229,14 +229,14 @@ import { createTestContext } from "@ragents/server/testing";
|
|
|
229
229
|
import { contract } from "../src/contract.ts";
|
|
230
230
|
import program from "../src/server.ts";
|
|
231
231
|
|
|
232
|
-
test("
|
|
232
|
+
test("inputs and functions share the same counter", async () => {
|
|
233
233
|
const context = createTestContext<Static<typeof contract.state>>({ state: {} });
|
|
234
|
-
for (const content of ["
|
|
234
|
+
for (const content of ["one", "two", "three"]) {
|
|
235
235
|
await program.onInput!({ id: content, content, artifactIds: [], sourceEventIds: [], subscriptionId: null, event: null }, context);
|
|
236
236
|
}
|
|
237
|
-
assert.deepEqual(await program.functions.inspect({}, context), { texts: ["
|
|
238
|
-
assert.deepEqual(await program.functions.record({ text: "
|
|
239
|
-
assert.deepEqual(context.state.read(), { texts: ["
|
|
237
|
+
assert.deepEqual(await program.functions.inspect({}, context), { texts: ["one", "two", "three"], count: 3 });
|
|
238
|
+
assert.deepEqual(await program.functions.record({ text: "four" }, context), { texts: ["one", "two", "three", "four"], count: 4 });
|
|
239
|
+
assert.deepEqual(context.state.read(), { texts: ["one", "two", "three", "four"], count: 4 });
|
|
240
240
|
});
|
|
241
241
|
`,
|
|
242
242
|
},
|
|
@@ -244,11 +244,11 @@ test("Eingaben und Funktionen teilen denselben Zähler", async () => {
|
|
|
244
244
|
|
|
245
245
|
const sharedList: ActorProgramTemplate = {
|
|
246
246
|
id: "shared-list",
|
|
247
|
-
title: "
|
|
248
|
-
description: "
|
|
247
|
+
title: "Shared list of an actor",
|
|
248
|
+
description: "An actor owns a function and a React view for the same list state.",
|
|
249
249
|
ragents: {
|
|
250
|
-
title: "
|
|
251
|
-
description: "
|
|
250
|
+
title: "Shared list",
|
|
251
|
+
description: "Collects texts from the app and from an agent tool in a shared list.",
|
|
252
252
|
backend: "src/server.ts",
|
|
253
253
|
views: [{ id: "main", client: "src/client.tsx" }],
|
|
254
254
|
},
|
|
@@ -263,21 +263,21 @@ type FormValues = Parameters<typeof UI.Form>[0]["values"];
|
|
|
263
263
|
const App = () => {
|
|
264
264
|
const state = useAppState();
|
|
265
265
|
const [values, setValues] = React.useState<FormValues>({ text: "" });
|
|
266
|
-
const [status, setStatus] = React.useState("
|
|
266
|
+
const [status, setStatus] = React.useState("Ready");
|
|
267
267
|
const entries = state.entries ?? [];
|
|
268
268
|
|
|
269
269
|
const append = async (next: FormValues): Promise<void> => {
|
|
270
270
|
const answer = await context.capabilities.call("append", { text: String(next.text ?? "") });
|
|
271
271
|
setValues({ text: "" });
|
|
272
|
-
setStatus(\`
|
|
272
|
+
setStatus(\`Added: \${answer.text}\`);
|
|
273
273
|
};
|
|
274
274
|
|
|
275
275
|
return (
|
|
276
|
-
<UI.AppLayout title="
|
|
276
|
+
<UI.AppLayout title="Shared list" description={<>{entries.length} {entries.length === 1 ? "item" : "items"}</>}>
|
|
277
277
|
<UI.Grid>
|
|
278
278
|
<UI.Form fields={[
|
|
279
|
-
{ id: "text", label: "
|
|
280
|
-
]} values={values} onChange={setValues} onSubmit={append} submitLabel="
|
|
279
|
+
{ id: "text", label: "New item", type: "textarea", placeholder: "Enter text" },
|
|
280
|
+
]} values={values} onChange={setValues} onSubmit={append} submitLabel="Add" />
|
|
281
281
|
<UI.Stack>
|
|
282
282
|
<p className="text-muted-foreground" role="status">{status}</p>
|
|
283
283
|
<ul className="border-t border-border">
|
|
@@ -290,7 +290,7 @@ const App = () => {
|
|
|
290
290
|
};
|
|
291
291
|
|
|
292
292
|
const root = document.getElementById("root");
|
|
293
|
-
if (!root) throw new Error("
|
|
293
|
+
if (!root) throw new Error("The #root element is missing.");
|
|
294
294
|
createRoot(root).render(<App />);
|
|
295
295
|
`,
|
|
296
296
|
"src/contract.ts": `import { Type } from "typebox";
|
|
@@ -299,9 +299,9 @@ export const contract = {
|
|
|
299
299
|
state: Type.Object({ entries: Type.Optional(Type.Array(Type.String())) }, {"additionalProperties": false}),
|
|
300
300
|
functions: {
|
|
301
301
|
append: {
|
|
302
|
-
label: "
|
|
303
|
-
description: "
|
|
304
|
-
input: Type.Object({ text: Type.String({"description": "
|
|
302
|
+
label: "Add entry",
|
|
303
|
+
description: "Appends the entered text to the shared list.",
|
|
304
|
+
input: Type.Object({ text: Type.String({"description": "The text for the new list entry."}) }, {"additionalProperties": false}),
|
|
305
305
|
output: Type.Object({ text: Type.String(), entries: Type.Array(Type.String()) }, {"additionalProperties": false}),
|
|
306
306
|
capabilities: [],
|
|
307
307
|
tool: { name: "append_to_list", card: true },
|
|
@@ -331,11 +331,11 @@ import { createTestContext } from "@ragents/server/testing";
|
|
|
331
331
|
import { contract } from "../src/contract.ts";
|
|
332
332
|
import program from "../src/server.ts";
|
|
333
333
|
|
|
334
|
-
test("
|
|
334
|
+
test("adds entries without losing existing entries", async () => {
|
|
335
335
|
const context = createTestContext<Static<typeof contract.state>>({ state: {} });
|
|
336
|
-
assert.deepEqual(await program.functions.append({"text": "
|
|
337
|
-
assert.deepEqual(await program.functions.append({"text": "
|
|
338
|
-
assert.deepEqual(context.state.read(), {"entries": ["
|
|
336
|
+
assert.deepEqual(await program.functions.append({"text": " First entry "}, context), {"text": "First entry", "entries": ["First entry"]});
|
|
337
|
+
assert.deepEqual(await program.functions.append({"text": "Second entry"}, context), {"text": "Second entry", "entries": ["First entry", "Second entry"]});
|
|
338
|
+
assert.deepEqual(context.state.read(), {"entries": ["First entry", "Second entry"]});
|
|
339
339
|
});
|
|
340
340
|
`,
|
|
341
341
|
},
|
|
@@ -350,6 +350,6 @@ export const templateFiles = (template: ActorProgramTemplate, name: string): Rea
|
|
|
350
350
|
|
|
351
351
|
export const templateById = (id: string): ActorProgramTemplate => {
|
|
352
352
|
const template = runModuleTemplates.find((candidate) => candidate.id === id);
|
|
353
|
-
if (!template) throw new Error(`
|
|
353
|
+
if (!template) throw new Error(`Unknown actor program template ${id}. Valid: ${runModuleTemplates.map((entry) => entry.id).join(", ")}.`);
|
|
354
354
|
return template;
|
|
355
355
|
};
|
|
@@ -79,7 +79,7 @@ export const createTestReport = async (directory: string) => {
|
|
|
79
79
|
const describe = (failure: Extract<TestRecord, { kind: "fail" }>): string => {
|
|
80
80
|
const fileOutput = failure.message === "test failed" && failure.file !== null ? stderrByFile.get(failure.file) ?? stderrByFile.get(relative(failure.file)) : undefined;
|
|
81
81
|
const message = fileOutput ? errorLines(fileOutput).join("; ") : failure.generated ? failure.message.split("\n")[0]!.replace(/:$/, "") : failure.message.trim().slice(0, 500);
|
|
82
|
-
const values = failure.expected === undefined || failure.expected === failure.actual ? "" : ` -
|
|
82
|
+
const values = failure.expected === undefined || failure.expected === failure.actual ? "" : ` - expected ${failure.expected}, actual ${failure.actual}`;
|
|
83
83
|
return `- ${failure.name} (${placeOf(failure)}): ${relative(message)}${relative(values)}`;
|
|
84
84
|
};
|
|
85
85
|
|
|
@@ -93,12 +93,12 @@ export const createTestReport = async (directory: string) => {
|
|
|
93
93
|
record(pending);
|
|
94
94
|
pending = "";
|
|
95
95
|
const summary = outcome.timedOut
|
|
96
|
-
? `Tests
|
|
97
|
-
: `Tests
|
|
96
|
+
? `Tests for ${name} canceled after a timeout: ${passed} passed, ${failed} failed.`
|
|
97
|
+
: `Tests for ${name} failed: ${passed} passed, ${failed} failed.`;
|
|
98
98
|
const details = failures.map(describe);
|
|
99
|
-
const more = failed > failures.length ? [`...
|
|
99
|
+
const more = failed > failures.length ? [`... and ${failed - failures.length} more`] : [];
|
|
100
100
|
const withoutResult = failed === 0
|
|
101
|
-
? [`
|
|
101
|
+
? [`The test run ended${outcome.code === null ? "" : ` with code ${outcome.code}`} without a failed test:`, ...errorLines([...unparsed, ...outcome.stderr.split("\n")]).map(relative)]
|
|
102
102
|
: [];
|
|
103
103
|
return [summary, ...details, ...more, ...withoutResult].join("\n");
|
|
104
104
|
},
|
|
@@ -12,7 +12,7 @@ const metadata = [
|
|
|
12
12
|
{ name: "actor_program_diagnostics", label: "Actor Program Diagnostics", description: "Read the last project diagnostics.", longDescription: "Changed errors are automatically supplied before the next model request." },
|
|
13
13
|
] as const;
|
|
14
14
|
export const actorProgramManagementToolNames = metadata.map((entry) => entry.name);
|
|
15
|
-
export const actorProgramToolsAvailable = defineToolAvailability({ availability: "conditional", availabilityDetail: "
|
|
15
|
+
export const actorProgramToolsAvailable = defineToolAvailability({ availability: "conditional", availabilityDetail: "For executable actors with agent.spawn and plugin.state.write." }, actor => actor.kind !== "human" && holdsUsable(actor, "agent.spawn") && holdsUsable(actor, "plugin.state.write"));
|
|
16
16
|
const name = Type.String({ pattern: "^[a-z][a-z0-9-]{0,63}$" });
|
|
17
17
|
type Diagnostics = Pick<ReturnType<typeof createProjectDiagnostics>, "latest">;
|
|
18
18
|
const managementTools = (runtime: ActorProgramRuntime, diagnostics: Diagnostics): RunFunction[] => [
|
|
@@ -131,7 +131,7 @@ export function ActorViewFrame({
|
|
|
131
131
|
const saved = entry;
|
|
132
132
|
void pending.then((result) => { saved.result = result; });
|
|
133
133
|
}
|
|
134
|
-
publish(entry.result ?? { attachmentCapabilitiesError: "
|
|
134
|
+
publish(entry.result ?? { attachmentCapabilitiesError: "Checking model capabilities ..." });
|
|
135
135
|
if (!entry.result) void entry.pending.then(publish);
|
|
136
136
|
} catch (cause) {
|
|
137
137
|
publish({ attachmentCapabilitiesError: cause instanceof Error ? cause.message : String(cause) });
|
|
@@ -157,7 +157,7 @@ export function ActorViewFrame({
|
|
|
157
157
|
setActionError(undefined);
|
|
158
158
|
setSubmitting((current) => [...current, request.requestId]);
|
|
159
159
|
try {
|
|
160
|
-
if (!writableRef.current) throw new Error("
|
|
160
|
+
if (!writableRef.current) throw new Error("You have read-only access to this actor view.");
|
|
161
161
|
const invocation = await invoke(
|
|
162
162
|
installedApp.id,
|
|
163
163
|
installedApp.revision,
|
|
@@ -219,7 +219,7 @@ export function ActorViewFrame({
|
|
|
219
219
|
}
|
|
220
220
|
const { request } = validation;
|
|
221
221
|
if (recentRequestIdsRef.current.has(request.requestId)) {
|
|
222
|
-
postError(port, request.requestId, "
|
|
222
|
+
postError(port, request.requestId, "This requestId has already been used");
|
|
223
223
|
return;
|
|
224
224
|
}
|
|
225
225
|
recentRequestIdsRef.current.add(request.requestId);
|
|
@@ -240,7 +240,7 @@ export function ActorViewFrame({
|
|
|
240
240
|
if (request.type === RUN_APP_CHAT_SEND) {
|
|
241
241
|
void (async () => {
|
|
242
242
|
try {
|
|
243
|
-
if (!writableRef.current) throw new Error("
|
|
243
|
+
if (!writableRef.current) throw new Error("You have read-only access to this chat.");
|
|
244
244
|
const current = sessionRef.current;
|
|
245
245
|
const snapshot = chatSnapshotOf(current, request.actor);
|
|
246
246
|
if (snapshot.error) throw new Error(snapshot.error);
|
|
@@ -263,7 +263,7 @@ export function ActorViewFrame({
|
|
|
263
263
|
}
|
|
264
264
|
const action = installedApp.actions.find((entry) => entry.id === request.actionId);
|
|
265
265
|
if (!action) {
|
|
266
|
-
postError(port, request.requestId, "
|
|
266
|
+
postError(port, request.requestId, "The requested app action is not installed");
|
|
267
267
|
return;
|
|
268
268
|
}
|
|
269
269
|
void executeRequest(request, port, generation, installedApp);
|
|
@@ -280,7 +280,7 @@ export function ActorViewFrame({
|
|
|
280
280
|
port.onmessage = (event) => handlePortMessage(event.data, port, generation, installedApp);
|
|
281
281
|
port.onmessageerror = () => {
|
|
282
282
|
if (generation === bridgeGenerationRef.current && port === portRef.current) {
|
|
283
|
-
postError(port, undefined, "
|
|
283
|
+
postError(port, undefined, "The app sent an unreadable message");
|
|
284
284
|
}
|
|
285
285
|
};
|
|
286
286
|
port.start();
|
|
@@ -356,13 +356,13 @@ export function ActorViewFrame({
|
|
|
356
356
|
pendingPort?.close();
|
|
357
357
|
pendingPort = undefined;
|
|
358
358
|
closeBridge();
|
|
359
|
-
setFrameError("
|
|
359
|
+
setFrameError("The app left its installed page and was disconnected.");
|
|
360
360
|
};
|
|
361
361
|
window.addEventListener("message", receiveReady);
|
|
362
362
|
frame.addEventListener("load", handleLoad);
|
|
363
363
|
frame.src = `${frameUrl}#ragentsBridge=${encodeURIComponent(bridgeToken)}`;
|
|
364
364
|
const timeout = window.setTimeout(() => {
|
|
365
|
-
if (!bridgeConnectedRef.current) setFrameError("
|
|
365
|
+
if (!bridgeConnectedRef.current) setFrameError("The app did not open a valid host bridge.");
|
|
366
366
|
}, 5_000);
|
|
367
367
|
return () => {
|
|
368
368
|
window.clearTimeout(timeout);
|
|
@@ -410,30 +410,30 @@ export function ActorViewFrame({
|
|
|
410
410
|
? app.actions.find((action) => action.id === confirmationInvocation.actionId)
|
|
411
411
|
: undefined;
|
|
412
412
|
const status = frameError
|
|
413
|
-
? { tone: "error", title: "App
|
|
413
|
+
? { tone: "error", title: "App disconnected", detail: frameError }
|
|
414
414
|
: submitting.length > 0
|
|
415
|
-
? { tone: "running", title: "
|
|
415
|
+
? { tone: "running", title: "Starting action", detail: `${submitting.length} request(s)` }
|
|
416
416
|
: confirmationAction
|
|
417
|
-
? { tone: "confirm", title: "
|
|
417
|
+
? { tone: "confirm", title: "Waiting for your confirmation", detail: confirmationAction.label }
|
|
418
418
|
: active.length > 0
|
|
419
|
-
? { tone: "running", title: "
|
|
419
|
+
? { tone: "running", title: "Action running", detail: active.map((invocation) =>
|
|
420
420
|
app.actions.find((action) => action.id === invocation.actionId)?.label.trim()
|
|
421
421
|
|| (access.can("runs.inspect") ? invocation.actionId : "")).filter(Boolean).join(", ") }
|
|
422
422
|
: actionError
|
|
423
|
-
? { tone: "error", title: "
|
|
423
|
+
? { tone: "error", title: "Action failed", detail: actionError }
|
|
424
424
|
: latest?.status === "failed"
|
|
425
|
-
? { tone: "error", title: "
|
|
425
|
+
? { tone: "error", title: "Last action failed", detail: latest.error }
|
|
426
426
|
: latest?.status === "cancelled"
|
|
427
|
-
? { tone: "muted", title: "
|
|
427
|
+
? { tone: "muted", title: "Last action cancelled", detail: latest.actionId }
|
|
428
428
|
: latest?.status === "succeeded"
|
|
429
429
|
? {
|
|
430
430
|
tone: "success",
|
|
431
|
-
title: "
|
|
431
|
+
title: "Last action completed",
|
|
432
432
|
detail: latest.output.at(-1) ?? latest.actionId,
|
|
433
433
|
}
|
|
434
434
|
: bridgeReady
|
|
435
435
|
? undefined
|
|
436
|
-
: { tone: "muted", title: "
|
|
436
|
+
: { tone: "muted", title: "Loading app", detail: "Bridge not connected yet" };
|
|
437
437
|
|
|
438
438
|
const visibleStatus = status && (presentation === "fullscreen" ? status.tone === "error" : status.tone !== "success") ? status : undefined;
|
|
439
439
|
|
|
@@ -86,7 +86,7 @@ export function ActorProgramsProvider({
|
|
|
86
86
|
const closeFullscreen = useCallback(() => setFullscreen(undefined), []);
|
|
87
87
|
const openFullscreen = useCallback((appId: string) => {
|
|
88
88
|
if (!actorProgramApps(session).some((app) => app.id === appId && app.app.visible !== false)) {
|
|
89
|
-
throw new Error("
|
|
89
|
+
throw new Error("The actor view is not available on the surface.");
|
|
90
90
|
}
|
|
91
91
|
setFullscreen({ runId, appId });
|
|
92
92
|
}, [runId, session]);
|
|
@@ -230,13 +230,13 @@ export function HostConfirmation({ action, session }: { action: RunAction; sessi
|
|
|
230
230
|
};
|
|
231
231
|
|
|
232
232
|
return (
|
|
233
|
-
<section aria-label="Host
|
|
233
|
+
<section aria-label="Host confirmation" className="grid flex-none gap-2 border-b border-border-soft bg-warning-soft px-workspace-inset py-2.5" data-slot="host-confirmation">
|
|
234
234
|
<header className="grid gap-0.5">
|
|
235
|
-
<strong className="text-[0.72rem] text-foreground">
|
|
236
|
-
<span className="text-xs text-muted-foreground">
|
|
235
|
+
<strong className="text-[0.72rem] text-foreground">Confirmation in the host</strong>
|
|
236
|
+
<span className="text-xs text-muted-foreground">The app cannot answer this decision itself.</span>
|
|
237
237
|
</header>
|
|
238
238
|
{busy
|
|
239
|
-
? <p className="text-xs text-muted-foreground">
|
|
239
|
+
? <p className="text-xs text-muted-foreground">Processing answer</p>
|
|
240
240
|
: (
|
|
241
241
|
<QuestionCard
|
|
242
242
|
onAnswer={access.can("runs.write") ? (text: string) => void answer(text) : undefined}
|
|
@@ -261,7 +261,7 @@ export function ToolsPanel({ active, navigation, selection, session }: Workspace
|
|
|
261
261
|
return (
|
|
262
262
|
<div className="flex h-full items-center justify-center gap-2.5 text-sm text-muted-foreground">
|
|
263
263
|
<Spinner aria-hidden aria-label={undefined} role={undefined} />
|
|
264
|
-
<span>
|
|
264
|
+
<span>Loading functions</span>
|
|
265
265
|
</div>
|
|
266
266
|
);
|
|
267
267
|
}
|
|
@@ -270,11 +270,11 @@ export function ToolsPanel({ active, navigation, selection, session }: Workspace
|
|
|
270
270
|
<Empty>
|
|
271
271
|
<EmptyHeader>
|
|
272
272
|
<EmptyMedia><IconTools /></EmptyMedia>
|
|
273
|
-
<EmptyTitle>
|
|
273
|
+
<EmptyTitle>Functions could not be loaded</EmptyTitle>
|
|
274
274
|
<EmptyDescription>{error}</EmptyDescription>
|
|
275
275
|
</EmptyHeader>
|
|
276
276
|
<EmptyContent>
|
|
277
|
-
<Button onClick={() => void refresh()} variant="outline">
|
|
277
|
+
<Button onClick={() => void refresh()} variant="outline">Retry</Button>
|
|
278
278
|
</EmptyContent>
|
|
279
279
|
</Empty>
|
|
280
280
|
);
|
|
@@ -284,12 +284,12 @@ export function ToolsPanel({ active, navigation, selection, session }: Workspace
|
|
|
284
284
|
<Empty>
|
|
285
285
|
<EmptyHeader>
|
|
286
286
|
<EmptyMedia><IconTools /></EmptyMedia>
|
|
287
|
-
<EmptyTitle>
|
|
288
|
-
<EmptyDescription>
|
|
287
|
+
<EmptyTitle>Function no longer available</EmptyTitle>
|
|
288
|
+
<EmptyDescription>The selected actor function is no longer installed in this run.</EmptyDescription>
|
|
289
289
|
</EmptyHeader>
|
|
290
290
|
<EmptyContent>
|
|
291
291
|
<Button onClick={() => navigation.openTab(RUN_TOOLS_TAB_ID, null)} variant="outline">
|
|
292
|
-
|
|
292
|
+
To overview
|
|
293
293
|
</Button>
|
|
294
294
|
</EmptyContent>
|
|
295
295
|
</Empty>
|
|
@@ -299,12 +299,12 @@ export function ToolsPanel({ active, navigation, selection, session }: Workspace
|
|
|
299
299
|
return (
|
|
300
300
|
<div className="flex h-full min-h-0 flex-col">
|
|
301
301
|
<header className={headClass}>
|
|
302
|
-
<Button aria-label="
|
|
302
|
+
<Button aria-label="Back to function overview" onClick={() => navigation.openTab(RUN_TOOLS_TAB_ID, null)} size="icon-sm" title="Back to function overview" variant="outline">
|
|
303
303
|
<ArrowLeftIcon />
|
|
304
304
|
</Button>
|
|
305
305
|
<span className="grid min-w-0 gap-px">
|
|
306
306
|
<strong className="truncate text-[0.82rem] font-semibold" title={selected.name}>{selected.name}</strong>
|
|
307
|
-
<small className="truncate text-xs text-muted-foreground">
|
|
307
|
+
<small className="truncate text-xs text-muted-foreground">Function of @{selected.actorHandle}</small>
|
|
308
308
|
</span>
|
|
309
309
|
</header>
|
|
310
310
|
<div className="flex min-h-0 flex-col gap-[22px] overflow-y-auto px-workspace-inset pt-[18px] pb-7">
|
|
@@ -316,7 +316,7 @@ export function ToolsPanel({ active, navigation, selection, session }: Workspace
|
|
|
316
316
|
</div>
|
|
317
317
|
</div>
|
|
318
318
|
<section>
|
|
319
|
-
<h3 className={sectionLabelClass}>
|
|
319
|
+
<h3 className={sectionLabelClass}>Available to</h3>
|
|
320
320
|
<div className="flex flex-wrap gap-1.5">
|
|
321
321
|
{selected.targets.map((target) => <span className="rounded-full bg-primary/9 px-2 py-1 text-xs text-foreground" key={target.actorId}>{targetLabel(target)}</span>)}
|
|
322
322
|
</div>
|
|
@@ -327,8 +327,8 @@ export function ToolsPanel({ active, navigation, selection, session }: Workspace
|
|
|
327
327
|
</section>
|
|
328
328
|
<ProgramSource api={api} moduleId={selected.moduleId} revision={selected.revision} runId={runId} />
|
|
329
329
|
<dl className="grid grid-cols-2 gap-2">
|
|
330
|
-
{[{ label: "
|
|
331
|
-
{ label: "
|
|
330
|
+
{[{ label: "Program", value: selected.moduleId, title: undefined },
|
|
331
|
+
{ label: "Source hash", value: selected.sourceHash.slice(0, 12), title: selected.sourceHash }].map((fact) => (
|
|
332
332
|
<div className="grid gap-[3px] rounded-lg bg-foreground/4 px-2.5 py-2" key={fact.label}>
|
|
333
333
|
<dt className="text-[0.61rem] text-muted-foreground uppercase">{fact.label}</dt>
|
|
334
334
|
<dd className="truncate font-mono text-xs text-foreground" title={fact.title}>{fact.value}</dd>
|
|
@@ -344,8 +344,8 @@ export function ToolsPanel({ active, navigation, selection, session }: Workspace
|
|
|
344
344
|
<Empty>
|
|
345
345
|
<EmptyHeader>
|
|
346
346
|
<EmptyMedia><IconTools /></EmptyMedia>
|
|
347
|
-
<EmptyTitle>
|
|
348
|
-
<EmptyDescription>
|
|
347
|
+
<EmptyTitle>No functions yet</EmptyTitle>
|
|
348
|
+
<EmptyDescription>Actor functions created by agents in this run appear here.</EmptyDescription>
|
|
349
349
|
</EmptyHeader>
|
|
350
350
|
</Empty>
|
|
351
351
|
);
|
|
@@ -367,7 +367,7 @@ export function ToolsPanel({ active, navigation, selection, session }: Workspace
|
|
|
367
367
|
<small className="truncate text-[0.69rem] text-muted-foreground">{tool.description}</small>
|
|
368
368
|
</span>
|
|
369
369
|
<Badge className="max-w-[132px] truncate @max-[470px]:hidden" variant="secondary">
|
|
370
|
-
{tool.targets.length} {tool.targets.length === 1 ? "
|
|
370
|
+
{tool.targets.length} {tool.targets.length === 1 ? "agent" : "agents"}
|
|
371
371
|
</Badge>
|
|
372
372
|
<IconOpen />
|
|
373
373
|
</button>
|
|
@@ -376,7 +376,7 @@ export function ToolsPanel({ active, navigation, selection, session }: Workspace
|
|
|
376
376
|
);
|
|
377
377
|
}
|
|
378
378
|
|
|
379
|
-
/**
|
|
379
|
+
/** A click on a mini-app selects its tile on the surface; the surface is the surface controller of the orchestration plugin. */
|
|
380
380
|
export function ActorProgramsHeader({ session }: SessionHeaderContext) {
|
|
381
381
|
const canArrange = useAccess().can("runs.inspect");
|
|
382
382
|
const surface = useSurfaceController();
|
|
@@ -386,7 +386,7 @@ export function ActorProgramsHeader({ session }: SessionHeaderContext) {
|
|
|
386
386
|
if (apps.length === 0) return null;
|
|
387
387
|
|
|
388
388
|
return (
|
|
389
|
-
<nav aria-label="Actor
|
|
389
|
+
<nav aria-label="Actor views" className="flex min-w-0 flex-none items-stretch">
|
|
390
390
|
{apps.map((app) => (
|
|
391
391
|
<div role="group" aria-label={app.title} key={`app:${app.id}`}
|
|
392
392
|
className={cn("relative flex flex-none items-stretch border-r border-border hover:bg-accent focus-within:bg-accent",
|
|
@@ -402,19 +402,19 @@ export function ActorProgramsHeader({ session }: SessionHeaderContext) {
|
|
|
402
402
|
closeFullscreen();
|
|
403
403
|
}}
|
|
404
404
|
onClick={() => {
|
|
405
|
-
if (!surface) throw new Error("
|
|
405
|
+
if (!surface) throw new Error("The app entries need the surface controller of the orchestration plugin.");
|
|
406
406
|
closeFullscreen();
|
|
407
407
|
surface.acceptSelection({ type: "run-app", id: app.id });
|
|
408
408
|
}}
|
|
409
|
-
aria-label={`Mini-
|
|
410
|
-
title={`Mini-
|
|
409
|
+
aria-label={`Mini-app: ${app.title} of @${app.actorHandle}`}
|
|
410
|
+
title={`Mini-app: ${app.title} of @${app.actorHandle}${canArrange ? ". Drag onto a tile to dock." : ""}`}
|
|
411
411
|
type="button"
|
|
412
412
|
>
|
|
413
413
|
<span className={cn(quickIconClass, !stage.has(`app:${app.id}`) && "bg-transparent")}><LayoutGridIcon size={20} /></span>
|
|
414
414
|
<ToolbarCopy><ToolbarLabel>@{app.actorHandle}</ToolbarLabel><ToolbarText>{app.title}</ToolbarText></ToolbarCopy>
|
|
415
415
|
</ToolbarItem>
|
|
416
|
-
<ToolbarItem as="button" aria-expanded={fullscreenAppId === app.id} aria-label={`${app.title} ${fullscreenAppId === app.id ? "
|
|
417
|
-
title={`${app.title} ${fullscreenAppId === app.id ? "
|
|
416
|
+
<ToolbarItem as="button" aria-expanded={fullscreenAppId === app.id} aria-label={`${app.title} ${fullscreenAppId === app.id ? "close full view" : "open in full view"}`}
|
|
417
|
+
title={`${app.title} ${fullscreenAppId === app.id ? "close full view" : "open in full view"}`}
|
|
418
418
|
className="relative w-[38px] justify-center border-r-0 p-0 hover:not-disabled:bg-transparent before:pointer-events-none before:absolute before:top-1/4 before:bottom-1/4 before:left-0 before:border-l before:border-dashed before:border-border-strong before:content-['']"
|
|
419
419
|
onClick={() => fullscreenAppId === app.id ? closeFullscreen() : openFullscreen(app.id)} type="button">
|
|
420
420
|
<ExpandIcon />
|
|
@@ -37,9 +37,9 @@ export const actorProgramSurfaceElements = (session: SessionContext): readonly S
|
|
|
37
37
|
const placement = Array.isArray(rawPlacements) ? rawPlacements.find((entry) => isRecord(entry) && entry.kind === "canvas") : undefined;
|
|
38
38
|
const surface = isRecord(placement) ? placement : undefined;
|
|
39
39
|
if (surface && typeof surface.anchorActorId !== "string") {
|
|
40
|
-
throw new Error(`
|
|
40
|
+
throw new Error(`The surface placement of the actor view ${module.title} is invalid`);
|
|
41
41
|
}
|
|
42
|
-
if (surface && surface.anchorActorId !== module.actorId) throw new Error(`
|
|
42
|
+
if (surface && surface.anchorActorId !== module.actorId) throw new Error(`The view ${module.title} belongs to @${module.actorHandle}.`);
|
|
43
43
|
return [{
|
|
44
44
|
id: module.id,
|
|
45
45
|
title: module.title,
|
|
@@ -68,7 +68,7 @@ export function ActorProgramSurfaceElement({ definition, session }: SurfaceEleme
|
|
|
68
68
|
) : (
|
|
69
69
|
<div className="flex flex-1 items-center justify-center gap-2 text-[0.7rem] text-muted-foreground">
|
|
70
70
|
<Spinner aria-hidden aria-label={undefined} role={undefined} />
|
|
71
|
-
<span>
|
|
71
|
+
<span>Loading actor view</span>
|
|
72
72
|
</div>
|
|
73
73
|
);
|
|
74
74
|
return (
|