@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
|
@@ -52,11 +52,11 @@ function summarize(text: string, width: number, count: number): string {
|
|
|
52
52
|
const edgeStatuses = ["pending", "active", "done", "blocked"];
|
|
53
53
|
|
|
54
54
|
function prepare({ nodes, edges, direction = "right", height = 360, viewport = "interactive", detailLevel = "summary", layout = "layered" }: FlowDiagramProps) {
|
|
55
|
-
if (viewport !== "interactive" && viewport !== "fit-width" && viewport !== "fit") throw new Error("
|
|
55
|
+
if (viewport !== "interactive" && viewport !== "fit-width" && viewport !== "fit") throw new Error("Unknown diagram viewport mode.");
|
|
56
56
|
if (!Number.isFinite(height) || height <= 0) throw new Error("The diagram height must be positive.");
|
|
57
|
-
if (direction !== "right" && direction !== "down") throw new Error("
|
|
58
|
-
if (detailLevel !== "full" && detailLevel !== "summary") throw new Error("
|
|
59
|
-
if (layout !== "layered" && layout !== "star") throw new Error("
|
|
57
|
+
if (direction !== "right" && direction !== "down") throw new Error("Unknown diagram direction.");
|
|
58
|
+
if (detailLevel !== "full" && detailLevel !== "summary") throw new Error("Unknown diagram detail level.");
|
|
59
|
+
if (layout !== "layered" && layout !== "star") throw new Error("Unknown diagram layout.");
|
|
60
60
|
const summary = detailLevel === "summary";
|
|
61
61
|
const textWidth = textMeasure();
|
|
62
62
|
const ids = new Set<string>();
|
|
@@ -64,15 +64,15 @@ function prepare({ nodes, edges, direction = "right", height = 360, viewport = "
|
|
|
64
64
|
if (typeof node.id !== "string" || !node.id.trim() || ids.has(node.id)) throw new Error("Nodes require unique, non-empty IDs.");
|
|
65
65
|
ids.add(node.id);
|
|
66
66
|
if (typeof node.label !== "string" || (node.detail !== undefined && typeof node.detail !== "string")) throw new Error("Node labels must be text.");
|
|
67
|
-
if (node.status !== undefined && !["pending", "active", "done", "blocked"].includes(node.status)) throw new Error("
|
|
67
|
+
if (node.status !== undefined && !["pending", "active", "done", "blocked"].includes(node.status)) throw new Error("Unknown node status.");
|
|
68
68
|
if (node.running !== undefined && typeof node.running !== "boolean") throw new Error("Node activity must be a boolean.");
|
|
69
|
-
if (node.kind !== undefined && !["actor", "agent", "service"].includes(node.kind)) throw new Error("
|
|
69
|
+
if (node.kind !== undefined && !["actor", "agent", "service"].includes(node.kind)) throw new Error("Unknown node kind.");
|
|
70
70
|
const labelLines = summary ? summarize(node.label, 284, 2) : wrap(node.label);
|
|
71
71
|
const detailLines = summary || node.detail === undefined ? undefined : wrap(node.detail);
|
|
72
72
|
if (node.items !== undefined && !Array.isArray(node.items)) throw new Error("Node items must be an array.");
|
|
73
73
|
const itemLines = (node.items ?? []).map((item) => {
|
|
74
74
|
if (typeof item.label !== "string" || (item.detail !== undefined && typeof item.detail !== "string")) throw new Error("Item labels must be text.");
|
|
75
|
-
if (item.status !== undefined && !["pending", "active", "done", "blocked", "skipped"].includes(item.status)) throw new Error("
|
|
75
|
+
if (item.status !== undefined && !["pending", "active", "done", "blocked", "skipped"].includes(item.status)) throw new Error("Unknown item status.");
|
|
76
76
|
return { ...item, labelLines: wrap(item.label, summary ? 256 : 176), detailLines: summary || item.detail === undefined ? undefined : wrap(item.detail) };
|
|
77
77
|
});
|
|
78
78
|
if (node.actions !== undefined && !Array.isArray(node.actions)) throw new Error("Node actions must be an array.");
|
|
@@ -92,9 +92,9 @@ function prepare({ nodes, edges, direction = "right", height = 360, viewport = "
|
|
|
92
92
|
const id = edge.id ?? `flow-edge-${index}`;
|
|
93
93
|
if (typeof id !== "string" || !id.trim() || edgeIds.has(id)) throw new Error("Edges require unique, non-empty IDs.");
|
|
94
94
|
edgeIds.add(id);
|
|
95
|
-
if (!ids.has(edge.source) || !ids.has(edge.target)) throw new Error("
|
|
96
|
-
if (edge.kind !== undefined && edge.kind !== "return") throw new Error("
|
|
97
|
-
if (edge.status !== undefined && !edgeStatuses.includes(edge.status)) throw new Error("
|
|
95
|
+
if (!ids.has(edge.source) || !ids.has(edge.target)) throw new Error("An edge refers to a missing node.");
|
|
96
|
+
if (edge.kind !== undefined && edge.kind !== "return") throw new Error("Unknown edge kind.");
|
|
97
|
+
if (edge.status !== undefined && !edgeStatuses.includes(edge.status)) throw new Error("Unknown edge status.");
|
|
98
98
|
if (edge.label !== undefined && typeof edge.label !== "string") throw new Error("Edge labels must be text.");
|
|
99
99
|
return { ...edge, id };
|
|
100
100
|
});
|
|
@@ -228,9 +228,9 @@ export function FlowDiagram(props: FlowDiagramProps) {
|
|
|
228
228
|
const cards = active?.nodes.map((node, index) => ({ ...node, data: { ...graph!.cards[index]!.data, onAction: props.onAction } })) ?? [];
|
|
229
229
|
const viewport = props.viewport ?? "interactive";
|
|
230
230
|
return <section aria-label={props.label} className={cn(flowSurface, props.className)} data-viewport={viewport} style={{ height: viewport !== "interactive" ? undefined : Number.isFinite(props.height) && props.height! > 0 ? props.height : 360 }}>
|
|
231
|
-
{error ? <p role="alert">
|
|
231
|
+
{error ? <p role="alert">The diagram could not be displayed: {error}</p>
|
|
232
232
|
: graph?.cards.length === 0 ? <p role="status">No nodes available.</p>
|
|
233
|
-
: !active ? <p role="status">
|
|
234
|
-
: <Suspense fallback={<p role="status">
|
|
233
|
+
: !active ? <p role="status">Loading diagram ...</p>
|
|
234
|
+
: <Suspense fallback={<p role="status">Loading diagram ...</p>}><FlowDiagramRenderer key={key} mode={viewport} bounds={active.bounds!} nodes={cards} edges={active.edges.map((edge, index) => ({ ...edge, label: graph!.links[index]!.label, data: { ...edge.data!, status: graph!.links[index]!.status } }))} /></Suspense>}
|
|
235
235
|
</section>;
|
|
236
236
|
}
|
|
@@ -9,15 +9,15 @@ import type { DiffViewerProps, DocumentViewerProps, TaskProgressProps } from "./
|
|
|
9
9
|
const taskLabels = { pending: "Pending", running: "In progress", done: "Done", error: "Failed", skipped: "Skipped" };
|
|
10
10
|
const taskTones = { pending: "text-muted-foreground", running: "text-primary", done: "text-muted-foreground", error: "text-destructive", skipped: "text-muted-foreground" };
|
|
11
11
|
|
|
12
|
-
export function TaskProgress({ title = "
|
|
12
|
+
export function TaskProgress({ title = "Tasks", tasks, showProgress = true }: TaskProgressProps) {
|
|
13
13
|
const completed = tasks.filter((task) => task.status === "done" || task.status === "skipped").length;
|
|
14
14
|
return <section aria-label={title} className="min-w-0 text-sm">
|
|
15
15
|
<h3 className="mb-2 text-[15px] font-semibold">{title}</h3>
|
|
16
16
|
{showProgress && tasks.length > 0 && <div className="mb-2 flex flex-wrap items-center gap-2 text-muted-foreground">
|
|
17
17
|
<Progress aria-label={title} className="min-w-20 flex-1" max={tasks.length} value={completed} />
|
|
18
|
-
<span>{completed}
|
|
18
|
+
<span>{completed} of {tasks.length} completed</span>
|
|
19
19
|
</div>}
|
|
20
|
-
{!tasks.length && <p>
|
|
20
|
+
{!tasks.length && <p>No tasks yet.</p>}
|
|
21
21
|
<ol className="divide-y">{tasks.map((task) => <li className="py-1.5" data-status={task.status} key={task.id}>
|
|
22
22
|
<div className="flex justify-between gap-3"><strong>{task.label}</strong><span className={cn("whitespace-nowrap", taskTones[task.status])}>{taskLabels[task.status]}</span></div>
|
|
23
23
|
{task.description && <p className="mt-1 text-muted-foreground">{task.description}</p>}
|
|
@@ -26,7 +26,7 @@ export function TaskProgress({ title = "Aufgaben", tasks, showProgress = true }:
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
export function DocumentViewer({ title, content, format = "text", language, filename }: DocumentViewerProps) {
|
|
29
|
-
return <section aria-label={title ?? filename ?? "
|
|
29
|
+
return <section aria-label={title ?? filename ?? "Document"} className="min-w-0 text-sm">
|
|
30
30
|
{(title || filename) && <h3 className="mb-2 text-[15px] font-semibold">{title ?? filename}</h3>}
|
|
31
31
|
{format === "markdown" ? <QuasselHost><Markdown text={content} /></QuasselHost>
|
|
32
32
|
: format === "code" ? <SourceCode content={content} language={language} path={filename ?? ""} />
|
|
@@ -10,5 +10,5 @@ export function WorkflowDiagram({ definition, state, ...props }: WorkflowDiagram
|
|
|
10
10
|
}, [definition, state]);
|
|
11
11
|
return projection.graph
|
|
12
12
|
? <FlowDiagram direction="down" viewport="fit-width" {...props} {...projection.graph} />
|
|
13
|
-
: <section aria-label={props.label} className={props.className}><p role="alert">
|
|
13
|
+
: <section aria-label={props.label} className={props.className}><p role="alert">The workflow could not be displayed: {projection.error}</p></section>;
|
|
14
14
|
}
|
|
@@ -3,14 +3,14 @@ import type { ReactElement } from "react";
|
|
|
3
3
|
export interface FilePickerProps {
|
|
4
4
|
label: string;
|
|
5
5
|
files: readonly File[];
|
|
6
|
-
/**
|
|
6
|
+
/** The selection stays local; the view decides about reading and transferring. */
|
|
7
7
|
onChange: (files: File[]) => void | Promise<void>;
|
|
8
|
-
/**
|
|
8
|
+
/** File extensions or MIME types, e.g. .csv,image/*; also checked for drop and paste. */
|
|
9
9
|
accept?: string;
|
|
10
10
|
multiple?: boolean;
|
|
11
|
-
/**
|
|
11
|
+
/** Maximum number of files in the whole selection; default 10, exactly one file with multiple=false. */
|
|
12
12
|
maxFiles?: number;
|
|
13
|
-
/**
|
|
13
|
+
/** Maximum total size in bytes; default 20 MiB. */
|
|
14
14
|
maxBytes?: number;
|
|
15
15
|
disabled?: boolean;
|
|
16
16
|
showPreview?: boolean;
|
|
@@ -11,7 +11,7 @@ export const fileSelection = (current: readonly File[], incoming: readonly File[
|
|
|
11
11
|
if (accepted.length && !accepted.some((type) => type.startsWith(".")
|
|
12
12
|
? file.name.toLowerCase().endsWith(type)
|
|
13
13
|
: type.endsWith("/*") ? file.type.toLowerCase().startsWith(type.slice(0, -1)) : file.type.toLowerCase() === type)) {
|
|
14
|
-
throw new Error(`
|
|
14
|
+
throw new Error(`File type of ${file.name} not allowed. Allowed: ${options.accept}`);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
const result = options.multiple === false ? [...incoming] : [...current];
|
|
@@ -17,17 +17,17 @@ export interface DocumentViewerProps {
|
|
|
17
17
|
title?: string;
|
|
18
18
|
content: string;
|
|
19
19
|
format?: "text" | "markdown" | "code";
|
|
20
|
-
/**
|
|
20
|
+
/** Language for code highlighting; alternatively filename determines the language. */
|
|
21
21
|
language?: string;
|
|
22
22
|
filename?: string;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
export interface DiffViewerProps {
|
|
26
26
|
title?: string;
|
|
27
|
-
/**
|
|
27
|
+
/** An existing unified diff; the control compares no files and writes nothing. */
|
|
28
28
|
patch: string;
|
|
29
29
|
emptyText?: string;
|
|
30
|
-
/**
|
|
30
|
+
/** Language for code highlighting; alternatively filename or the path in the diff determines the language. */
|
|
31
31
|
language?: string;
|
|
32
32
|
filename?: string;
|
|
33
33
|
}
|
package/apps/web/src/api.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { startOptionStateFrom, type StartOptionState } from "../../server/src/pl
|
|
|
8
8
|
|
|
9
9
|
export type { StartOptionState };
|
|
10
10
|
|
|
11
|
-
/**
|
|
11
|
+
/** Interrupts only the running turn of this actor; the actor stays active, without a running turn nothing happens. */
|
|
12
12
|
export const interruptActorTurn = async (runId: string, actorId: string, client: RpcClient = rpc): Promise<void> => {
|
|
13
13
|
await client.call(runContracts.interruptTurn, { runId, commandId: crypto.randomUUID(), actorId });
|
|
14
14
|
};
|
|
@@ -41,12 +41,12 @@ export interface SessionInfo {
|
|
|
41
41
|
updatedAt: number;
|
|
42
42
|
revision?: number;
|
|
43
43
|
running?: boolean;
|
|
44
|
-
/**
|
|
44
|
+
/** Whether the viewer can reach the run's workspace; missing as long as the server has not listed the run yet. */
|
|
45
45
|
workspaceAccessible?: boolean;
|
|
46
46
|
metadata?: Readonly<Record<string, unknown>>;
|
|
47
|
-
/**
|
|
47
|
+
/** Why a metadata contribution has no value: failed or did not answer in time. */
|
|
48
48
|
metadataUnavailable?: Readonly<Record<string, string>>;
|
|
49
|
-
/**
|
|
49
|
+
/** Why the server locked the run; a locked run can only be deleted. */
|
|
50
50
|
locked?: string;
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -366,7 +366,7 @@ const settingsResponseFrom = (value: unknown): SettingsResponse => {
|
|
|
366
366
|
|| !value.skills.every(isSettingsSkill)
|
|
367
367
|
|| !Array.isArray(value.tools)
|
|
368
368
|
|| !value.tools.every(isSettingsTool)) {
|
|
369
|
-
throw new Error("
|
|
369
|
+
throw new Error("The settings do not match the expected format");
|
|
370
370
|
}
|
|
371
371
|
return value as unknown as SettingsResponse;
|
|
372
372
|
};
|
|
@@ -379,13 +379,13 @@ const settingsSkillDetailFrom = (value: unknown): SettingsSkillDetail => {
|
|
|
379
379
|
|| !isSettingsSkill(value)
|
|
380
380
|
|| !Array.isArray(value.files)
|
|
381
381
|
|| !value.files.every(isSettingsSkillFile)) {
|
|
382
|
-
throw new Error("
|
|
382
|
+
throw new Error("The skill does not match the expected format");
|
|
383
383
|
}
|
|
384
384
|
return value as unknown as SettingsSkillDetail;
|
|
385
385
|
};
|
|
386
386
|
|
|
387
387
|
export const getSettingsSkill = async (id: string, signal?: AbortSignal, client: RpcClient = rpc): Promise<SettingsSkillDetail> => {
|
|
388
388
|
const detail = await client.call(coreContracts.settings.skill, { id }, { signal });
|
|
389
|
-
if (detail === null) throw new Error("
|
|
389
|
+
if (detail === null) throw new Error("The skill could not be loaded");
|
|
390
390
|
return settingsSkillDetailFrom(detail);
|
|
391
391
|
};
|
|
@@ -4,7 +4,7 @@ import { restartChatActor } from "../api";
|
|
|
4
4
|
import type { RunActor } from "../run-view";
|
|
5
5
|
import { Button, cn } from "../ui";
|
|
6
6
|
|
|
7
|
-
/**
|
|
7
|
+
/** Takes the place of the input while the chat's actor is stopped: the reason and, for those allowed to operate, the restart; toolbar keeps the input's buttons. */
|
|
8
8
|
export function StoppedActorNotice({ actor, runId, className, toolbar }: { actor: RunActor; runId: string; className?: string; toolbar?: ReactNode }) {
|
|
9
9
|
const access = useAccess();
|
|
10
10
|
const [busy, setBusy] = useState(false);
|
|
@@ -26,13 +26,13 @@ export function StoppedActorNotice({ actor, runId, className, toolbar }: { actor
|
|
|
26
26
|
data-slot="stopped-actor">
|
|
27
27
|
<div className="flex min-w-0 items-center gap-2">
|
|
28
28
|
<p className="min-w-0 flex-1 [overflow-wrap:anywhere]" role="status">
|
|
29
|
-
<span className="font-semibold">@{actor.handle}
|
|
29
|
+
<span className="font-semibold">@{actor.handle} stopped:</span> {reason}
|
|
30
30
|
</p>
|
|
31
|
-
{restartable && <Button disabled={busy} onClick={() => void restart()} size="sm" title={
|
|
32
|
-
|
|
31
|
+
{restartable && <Button disabled={busy} onClick={() => void restart()} size="sm" title={`Restart @${actor.handle}; it then accepts messages again`} variant="outline">
|
|
32
|
+
Restart
|
|
33
33
|
</Button>}
|
|
34
34
|
</div>
|
|
35
|
-
{!restartable && <p className="text-[0.7rem] text-muted-foreground">
|
|
35
|
+
{!restartable && <p className="text-[0.7rem] text-muted-foreground">It accepts no messages until someone with operator rights restarts it.</p>}
|
|
36
36
|
{error && <p className="text-[0.7rem] text-destructive" role="alert">{error}</p>}
|
|
37
37
|
{toolbar && <div className="flex min-w-0 flex-wrap items-center gap-2">{toolbar}</div>}
|
|
38
38
|
</div>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isRecord } from "../lib/guards";
|
|
2
2
|
import { chatPrimaryId, runViewFrom, type RunActor } from "../run-view";
|
|
3
3
|
|
|
4
|
-
/**
|
|
4
|
+
/** The partner of the run chat: stopped with a reason, or active and whether its own turn is running; only that one is interrupted by the input. */
|
|
5
5
|
export type PrimaryChatState =
|
|
6
6
|
| { kind: "none" }
|
|
7
7
|
| { kind: "stopped"; actor: RunActor }
|
|
@@ -16,14 +16,14 @@ export function primaryChatState(value: unknown, runId: string, liveTurn: boolea
|
|
|
16
16
|
return { kind: "active", actorId: actor.id, turnRunning: liveTurn || actor.lifecycle?.kind === "running" };
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
export const programChatNotice = "
|
|
19
|
+
export const programChatNotice = "This TypeScript actor processes program input and does not hold a conversation. Use its mini-app or its documented functions.";
|
|
20
20
|
|
|
21
21
|
export function primaryIsProgram(view: unknown, runId: string): boolean {
|
|
22
22
|
return isRecord(view) && view.id === runId && Array.isArray(view.actors)
|
|
23
23
|
&& view.actors.some((actor: unknown) => isRecord(actor) && actor.id === view.primaryActorId && actor.kind === "script");
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
/**
|
|
26
|
+
/** Running turn of any agent or program; the run list uses the same reading. */
|
|
27
27
|
export function runIsWorking(view: unknown, runId: string): boolean {
|
|
28
28
|
return isRecord(view) && view.id === runId && Array.isArray(view.actors)
|
|
29
29
|
&& view.actors.some((actor: unknown) => isRecord(actor) && actor.kind !== "human" && isRecord(actor.lifecycle) && actor.lifecycle.kind === "running");
|
|
@@ -16,7 +16,7 @@ export async function sendChatMessage(
|
|
|
16
16
|
await client.call(coreContracts.chat.send, { runId, text, attachments, userLocation });
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
/**
|
|
19
|
+
/** The first message of a run from a skill template; the server uses it to set the run's start options. */
|
|
20
20
|
export async function startSkillEntry(runId: string, entry: string, text: string, attachments?: ChatAttachmentInput[], client: RpcClient = rpc): Promise<void> {
|
|
21
21
|
await client.call(coreContracts.chat.send, { runId, text, attachments, entry });
|
|
22
22
|
}
|
|
@@ -25,7 +25,7 @@ export async function startChatEntry(runId: string, entry: string, input: unknow
|
|
|
25
25
|
await client.call(coreContracts.chat.start, { runId, entry, input });
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
/**
|
|
28
|
+
/** A template without a preparation chat: a run script with its start value, a skill with its prepared task. */
|
|
29
29
|
export const startEntryDirectly = (runId: string, entry: StartEntry, input: unknown, client: RpcClient = rpc): Promise<void> => entry.action === "script"
|
|
30
30
|
? startChatEntry(runId, entry.id, input, client)
|
|
31
31
|
: startSkillEntry(runId, entry.id, preparedRunInput([], entry.prompt, undefined, entry.skill).text, undefined, client);
|
|
@@ -7,7 +7,7 @@ import type { RpcClient } from "../rpc/client";
|
|
|
7
7
|
export async function getAttachmentCapabilities(runId: string, actor = "primary", signal?: AbortSignal, client: RpcClient = rpc): Promise<ChatAttachmentCapabilities> {
|
|
8
8
|
const result = await client.call(coreContracts.chat.capabilities, { runId, actor }, { signal });
|
|
9
9
|
if (typeof result.model !== "string" || !Array.isArray(result.input) || !result.input.every((entry) => typeof entry === "string")) {
|
|
10
|
-
throw new Error("
|
|
10
|
+
throw new Error("Invalid attachment support information");
|
|
11
11
|
}
|
|
12
12
|
return { model: result.model, input: result.input };
|
|
13
13
|
}
|
|
@@ -29,7 +29,7 @@ export function useAttachmentCapabilities(runId: string, actor = "primary", revi
|
|
|
29
29
|
}, [active, actor, key, runId]);
|
|
30
30
|
return {
|
|
31
31
|
attachmentCapabilities: result?.key === key ? result.capabilities : undefined,
|
|
32
|
-
attachmentCapabilitiesError: result?.key === key ? result.error : active ? "
|
|
32
|
+
attachmentCapabilitiesError: result?.key === key ? result.error : active ? "Checking attachments ..." : undefined,
|
|
33
33
|
onAttachmentsChange: setActive,
|
|
34
34
|
};
|
|
35
35
|
}
|
|
@@ -8,7 +8,7 @@ const timestampSetting = createLocalStorageSetting({
|
|
|
8
8
|
parse: (raw: string | null) => {
|
|
9
9
|
if (raw === null || raw === "true") return true;
|
|
10
10
|
if (raw === "false") return false;
|
|
11
|
-
throw new Error("
|
|
11
|
+
throw new Error("The saved timestamp setting is invalid.");
|
|
12
12
|
},
|
|
13
13
|
serialize: JSON.stringify,
|
|
14
14
|
});
|
|
@@ -22,7 +22,7 @@ export interface ChatViewSettings {
|
|
|
22
22
|
readonly setShowTimestamps: (showTimestamps: boolean) => void;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
/**
|
|
25
|
+
/** Detail level and timestamps of a chat; display separates only the detail level by display location, the timestamps apply per run and actor. */
|
|
26
26
|
export function useChatViewSettings(runId: string, actorId: string, scope: ChatStepScope, display?: string): ChatViewSettings {
|
|
27
27
|
const steps = useChatSteps(runId, actorId, display);
|
|
28
28
|
const timestampKey = `ragents.chat.timestamps:${JSON.stringify([runId, actorId])}`;
|
|
@@ -36,14 +36,13 @@ export function useChatViewSettings(runId: string, actorId: string, scope: ChatS
|
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
/**
|
|
40
|
-
export function ChatViewSwitches({ settings,
|
|
39
|
+
/** The switches of every chat input. */
|
|
40
|
+
export function ChatViewSwitches({ settings, className }: {
|
|
41
41
|
settings: ChatViewSettings;
|
|
42
|
-
collapsible?: boolean;
|
|
43
42
|
className?: string;
|
|
44
43
|
}) {
|
|
45
44
|
return <>
|
|
46
|
-
{settings.detailSelectable && <DetailModeSwitch className={className}
|
|
45
|
+
{settings.detailSelectable && <DetailModeSwitch className={className} mode={settings.detailMode} onChange={settings.setDetailMode} />}
|
|
47
46
|
<TimestampSwitch className={className} onChange={settings.setShowTimestamps} showTimestamps={settings.showTimestamps} />
|
|
48
47
|
</>;
|
|
49
48
|
}
|
|
@@ -38,30 +38,30 @@ const NO_SOLUTION = "none";
|
|
|
38
38
|
const solutionValue = (path: string): string => `solution:${path}`;
|
|
39
39
|
|
|
40
40
|
const severityLabels: Readonly<Record<LanguageServerSeverity, string>> = {
|
|
41
|
-
error: "
|
|
42
|
-
warning: "
|
|
43
|
-
information: "
|
|
44
|
-
hint: "
|
|
41
|
+
error: "Error",
|
|
42
|
+
warning: "Warning",
|
|
43
|
+
information: "Info",
|
|
44
|
+
hint: "Hint",
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
const textFrom = (config: Readonly<Record<string, unknown>>, key: string, pluginId: string): string => {
|
|
48
48
|
const value = config[key];
|
|
49
|
-
if (typeof value !== "string" || !value) throw new Error(`Plugin
|
|
49
|
+
if (typeof value !== "string" || !value) throw new Error(`Plugin configuration for ${pluginId} contains no ${key}`);
|
|
50
50
|
return value;
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
const stateLabel = (state: LanguageServerState): string => {
|
|
54
|
-
if (state === "opening") return "
|
|
55
|
-
if (state === "failed") return "
|
|
56
|
-
if (state === "suspended") return "
|
|
57
|
-
return "
|
|
54
|
+
if (state === "opening") return "loading";
|
|
55
|
+
if (state === "failed") return "failed";
|
|
56
|
+
if (state === "suspended") return "ended after idle";
|
|
57
|
+
return "ready";
|
|
58
58
|
};
|
|
59
59
|
|
|
60
60
|
const headerLabel = (snapshot: LanguageServerSnapshot | undefined): string => {
|
|
61
|
-
if (!snapshot) return "
|
|
61
|
+
if (!snapshot) return "loading";
|
|
62
62
|
const count = snapshot.instances.length;
|
|
63
|
-
if (count === 0) return "
|
|
64
|
-
return count === 1 ? "1
|
|
63
|
+
if (count === 0) return "not started";
|
|
64
|
+
return count === 1 ? "1 instance" : `${count} instances`;
|
|
65
65
|
};
|
|
66
66
|
|
|
67
67
|
const countLabel = (count: number, singular: string, plural: string): string =>
|
|
@@ -69,7 +69,7 @@ const countLabel = (count: number, singular: string, plural: string): string =>
|
|
|
69
69
|
|
|
70
70
|
const messageOf = (caught: unknown): string => caught instanceof Error ? caught.message : String(caught);
|
|
71
71
|
|
|
72
|
-
/**
|
|
72
|
+
/** Exactly one open instance of a found solution, or none, yields a selection; several or a different root do not. */
|
|
73
73
|
const selectedSolution = (solutions: LanguageServerSolutions, snapshot: LanguageServerSnapshot): string | null => {
|
|
74
74
|
const roots = snapshot.instances.map((instance) => instance.root);
|
|
75
75
|
if (roots.length === 0) return NO_SOLUTION;
|
|
@@ -216,15 +216,15 @@ function SolutionSelect({ choice, snapshot }: { choice: SolutionChoice; snapshot
|
|
|
216
216
|
const { solutions } = choice;
|
|
217
217
|
if (!solutions || !snapshot) return null;
|
|
218
218
|
if (solutions.solutions.length === 0) {
|
|
219
|
-
return <p className="border-t border-border-soft px-2.5 py-2 text-xs text-muted-foreground">
|
|
219
|
+
return <p className="border-t border-border-soft px-2.5 py-2 text-xs text-muted-foreground">No solution in the workspace.</p>;
|
|
220
220
|
}
|
|
221
221
|
const openRoots = new Set(snapshot.instances.map((instance) => instance.root));
|
|
222
222
|
const items = [
|
|
223
|
-
{ value: NO_SOLUTION, path: null, label: "
|
|
223
|
+
{ value: NO_SOLUTION, path: null, label: "None" },
|
|
224
224
|
...solutions.solutions.map((solution) => ({
|
|
225
225
|
value: solutionValue(solution.path),
|
|
226
226
|
path: solution.path,
|
|
227
|
-
label: openRoots.has(solution.root) ? `${solution.path} (
|
|
227
|
+
label: openRoots.has(solution.root) ? `${solution.path} (open)` : solution.path,
|
|
228
228
|
})),
|
|
229
229
|
];
|
|
230
230
|
const instances = snapshot.instances.length;
|
|
@@ -241,12 +241,12 @@ function SolutionSelect({ choice, snapshot }: { choice: SolutionChoice; snapshot
|
|
|
241
241
|
}}
|
|
242
242
|
value={selectedSolution(solutions, snapshot)}
|
|
243
243
|
>
|
|
244
|
-
<SelectTrigger aria-label="
|
|
245
|
-
<SelectValue placeholder={instances > 1 ? `${instances}
|
|
244
|
+
<SelectTrigger aria-label="Choose solution" className="min-w-0 flex-1" size="sm" title={choice.writable ? undefined : "Switching requires write permission"}>
|
|
245
|
+
<SelectValue placeholder={instances > 1 ? `${instances} instances open` : "Other root open"} />
|
|
246
246
|
</SelectTrigger>
|
|
247
247
|
<SelectContent>{items.map((item) => <SelectItem key={item.value} value={item.value}>{item.label}</SelectItem>)}</SelectContent>
|
|
248
248
|
</Select>
|
|
249
|
-
{choice.switching && <Spinner aria-label="
|
|
249
|
+
{choice.switching && <Spinner aria-label="Switching" />}
|
|
250
250
|
</div>
|
|
251
251
|
);
|
|
252
252
|
}
|
|
@@ -267,32 +267,32 @@ function LanguageServerInstanceView({ instance }: { instance: LanguageServerInst
|
|
|
267
267
|
{instance.state === "opening" && (
|
|
268
268
|
<Empty className={compactEmpty} role="status">
|
|
269
269
|
<EmptyHeader>
|
|
270
|
-
<EmptyMedia><Spinner aria-label="
|
|
271
|
-
<EmptyTitle>
|
|
272
|
-
<EmptyDescription>{instance.summary || "
|
|
270
|
+
<EmptyMedia><Spinner aria-label="Loading" /></EmptyMedia>
|
|
271
|
+
<EmptyTitle>Loading language server</EmptyTitle>
|
|
272
|
+
<EmptyDescription>{instance.summary || "Initialization is running."}</EmptyDescription>
|
|
273
273
|
</EmptyHeader>
|
|
274
274
|
</Empty>
|
|
275
275
|
)}
|
|
276
276
|
{instance.state === "failed" && (
|
|
277
277
|
<Empty className={`${compactEmpty} text-destructive`} role="alert">
|
|
278
278
|
<EmptyHeader>
|
|
279
|
-
<EmptyTitle>
|
|
280
|
-
<EmptyDescription className="whitespace-pre-wrap text-destructive [overflow-wrap:anywhere]">{instance.summary || "
|
|
279
|
+
<EmptyTitle>Language server unavailable</EmptyTitle>
|
|
280
|
+
<EmptyDescription className="whitespace-pre-wrap text-destructive [overflow-wrap:anywhere]">{instance.summary || "An error occurred while loading."}</EmptyDescription>
|
|
281
281
|
</EmptyHeader>
|
|
282
282
|
</Empty>
|
|
283
283
|
)}
|
|
284
284
|
{diagnosticsAvailable && rows.length === 0 && (
|
|
285
285
|
<Empty className={compactEmpty}>
|
|
286
286
|
<EmptyHeader>
|
|
287
|
-
<EmptyTitle>
|
|
288
|
-
<EmptyDescription>{files.length === 0 ? "
|
|
287
|
+
<EmptyTitle>No diagnostics</EmptyTitle>
|
|
288
|
+
<EmptyDescription>{files.length === 0 ? "No file has been checked yet." : "All checked files are free of errors."}</EmptyDescription>
|
|
289
289
|
</EmptyHeader>
|
|
290
290
|
</Empty>
|
|
291
291
|
)}
|
|
292
292
|
{rows.length > 0 && (
|
|
293
293
|
<>
|
|
294
294
|
<div className="border-y border-border-soft px-2.5 py-1.5 text-xs text-muted-foreground">
|
|
295
|
-
{`${countLabel(errors, "
|
|
295
|
+
{`${countLabel(errors, "error", "errors")}, ${countLabel(warnings, "warning", "warnings")} in ${countLabel(files.length, "file", "files")}`}
|
|
296
296
|
</div>
|
|
297
297
|
<div className="px-1.5 pt-1 pb-2.5">
|
|
298
298
|
{rows.map((row, index) => (
|
|
@@ -329,7 +329,7 @@ export function LanguageServerPanelView({ settings, snapshot, error, pending, on
|
|
|
329
329
|
<span className="text-[0.8rem] font-medium text-foreground">{settings.label}</span>
|
|
330
330
|
<span className="text-xs text-muted-foreground">{headerLabel(snapshot)}</span>
|
|
331
331
|
</div>
|
|
332
|
-
<Button aria-label="
|
|
332
|
+
<Button aria-label="Refresh diagnostics" onClick={onRefresh} size="icon" title="Refresh" variant="ghost">
|
|
333
333
|
<IconRefresh className={pending ? "animate-spin" : undefined} />
|
|
334
334
|
</Button>
|
|
335
335
|
</header>
|
|
@@ -340,8 +340,8 @@ export function LanguageServerPanelView({ settings, snapshot, error, pending, on
|
|
|
340
340
|
<Empty>
|
|
341
341
|
<EmptyHeader>
|
|
342
342
|
<EmptyMedia><IconDiagnostics /></EmptyMedia>
|
|
343
|
-
<EmptyTitle>
|
|
344
|
-
<EmptyDescription>{`${settings.label}
|
|
343
|
+
<EmptyTitle>No language server</EmptyTitle>
|
|
344
|
+
<EmptyDescription>{`${settings.label} language server is not started - an agent starts it with ${settings.openTool}.`}</EmptyDescription>
|
|
345
345
|
</EmptyHeader>
|
|
346
346
|
</Empty>
|
|
347
347
|
)}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export const THINKING_LABELS: Record<string, string> = {
|
|
2
|
-
off: "
|
|
2
|
+
off: "off",
|
|
3
3
|
minimal: "minimal",
|
|
4
|
-
low: "
|
|
5
|
-
medium: "
|
|
6
|
-
high: "
|
|
7
|
-
xhigh: "
|
|
8
|
-
max: "
|
|
4
|
+
low: "low",
|
|
5
|
+
medium: "medium",
|
|
6
|
+
high: "high",
|
|
7
|
+
xhigh: "very high",
|
|
8
|
+
max: "max",
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export const thinkingLabel = (level: string) => THINKING_LABELS[level] ?? level;
|
package/apps/web/src/main.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Foreign classes of highlight.js and react-diff-view; here instead of in the components that mini-apps also bundle.
|
|
2
2
|
import "./highlighting.css";
|
|
3
3
|
import "./diff-view.css";
|
|
4
4
|
import { StrictMode } from "react";
|
|
@@ -12,7 +12,7 @@ import { installHostModules } from "./host-modules";
|
|
|
12
12
|
|
|
13
13
|
installHostModules();
|
|
14
14
|
const root = document.getElementById("root");
|
|
15
|
-
if (!root) throw new Error("Root
|
|
15
|
+
if (!root) throw new Error("Root element is missing");
|
|
16
16
|
|
|
17
17
|
const reactRoot = createRoot(root);
|
|
18
18
|
try {
|
|
@@ -25,8 +25,8 @@ try {
|
|
|
25
25
|
);
|
|
26
26
|
} catch (cause) {
|
|
27
27
|
reactRoot.render(<AccessScreen>
|
|
28
|
-
<h1 className="my-3 text-[1.5rem]">
|
|
28
|
+
<h1 className="my-3 text-[1.5rem]">The view could not be loaded</h1>
|
|
29
29
|
<p className="mb-6 leading-normal" role="alert">{cause instanceof Error ? cause.message : String(cause)}</p>
|
|
30
|
-
<Button onClick={() => window.location.reload()} variant="outline">
|
|
30
|
+
<Button onClick={() => window.location.reload()} variant="outline">Reload</Button>
|
|
31
31
|
</AccessScreen>);
|
|
32
32
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createContext, useContext } from "react";
|
|
2
2
|
|
|
3
|
-
/**
|
|
3
|
+
/** Where a UI offers new runs: the browser only on the server, VS Code, being a workstation itself, also on workstations. */
|
|
4
4
|
export type OfferedMachines = "server" | "all";
|
|
5
5
|
|
|
6
6
|
const OfferedMachinesContext = createContext<OfferedMachines>("server");
|
|
7
7
|
|
|
8
|
-
/**
|
|
8
|
+
/** The host decides; without one, for example in the web app, only the server applies. */
|
|
9
9
|
export const OfferedMachinesProvider = OfferedMachinesContext.Provider;
|
|
10
10
|
|
|
11
11
|
export const useOfferedMachines = (): OfferedMachines => useContext(OfferedMachinesContext);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createContext, useContext } from "react";
|
|
2
2
|
|
|
3
|
-
/**
|
|
3
|
+
/** A host that can show web pages outside the UI, for example VS Code in the Simple Browser; without a host it stays with the built-in dialog with an iframe. */
|
|
4
4
|
export interface PageOpener {
|
|
5
5
|
open(url: string, title: string): void;
|
|
6
6
|
}
|