@schlenkr/ragents 0.1.9 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/server/package.json +1 -1
- package/apps/server/src/access-projection.ts +9 -39
- package/apps/server/src/access-service.ts +3 -3
- package/apps/server/src/access-session.ts +19 -19
- package/apps/server/src/api/contracts.ts +32 -29
- package/apps/server/src/api/core-methods.ts +21 -19
- package/apps/server/src/api/delivery.ts +2 -2
- package/apps/server/src/api/reference.ts +27 -27
- package/apps/server/src/api/rights.ts +18 -18
- package/apps/server/src/chat-handler.ts +5 -5
- package/apps/server/src/config-definition.ts +37 -10
- package/apps/server/src/config-file.ts +49 -49
- package/apps/server/src/config.ts +2 -0
- package/apps/server/src/data-directory.ts +2 -2
- package/apps/server/src/external-access.ts +1 -1
- package/apps/server/src/folder-install.ts +1 -1
- package/apps/server/src/help-files.ts +1 -1
- package/apps/server/src/host-api.json +8 -1
- package/apps/server/src/host-api.ts +3 -2
- package/apps/server/src/host-record.ts +3 -3
- package/apps/server/src/host-resolution-hooks.mjs +4 -4
- package/apps/server/src/host-version.ts +17 -17
- package/apps/server/src/host-web.ts +5 -5
- package/apps/server/src/main.ts +6 -6
- package/apps/server/src/missing-environment.ts +6 -6
- package/apps/server/src/parent-watch.ts +4 -4
- package/apps/server/src/plugin-build/build.ts +31 -31
- package/apps/server/src/plugin-build/host-api-names.ts +7 -7
- package/apps/server/src/plugin-build/plugin-description.ts +15 -15
- package/apps/server/src/plugin-build/typecheck.ts +1 -1
- package/apps/server/src/plugin-support/actor-programs/app-project.ts +19 -19
- package/apps/server/src/plugin-support/actor-programs/client-compiler.ts +4 -4
- package/apps/server/src/plugin-support/actor-programs/client-contracts.ts +11 -11
- package/apps/server/src/plugin-support/actor-programs/contract.ts +17 -17
- package/apps/server/src/plugin-support/actor-programs/runtime-libraries.ts +1 -1
- package/apps/server/src/plugin-support/actor-programs/workflow/index.ts +5 -5
- package/apps/server/src/plugin-support/actor-programs/workflow/prompt-reader.ts +2 -2
- package/apps/server/src/plugin-support/chat-display-policy.ts +2 -2
- package/apps/server/src/plugin-support/front-matter.ts +6 -6
- package/apps/server/src/plugin-support/http.ts +2 -2
- package/apps/server/src/plugin-support/language-server/contract.ts +8 -8
- package/apps/server/src/plugin-support/language-server/plugin.ts +2 -2
- package/apps/server/src/plugin-support/language-server/snapshot-method.ts +1 -1
- package/apps/server/src/plugin-support/language-server/tools.ts +11 -11
- package/apps/server/src/plugin-support/model-aliases.ts +30 -20
- package/apps/server/src/plugin-support/model-choice.ts +15 -15
- package/apps/server/src/plugin-support/model-completion.ts +44 -23
- package/apps/server/src/plugin-support/model-providers.ts +170 -0
- package/apps/server/src/plugin-support/model-upstreams.ts +1 -1
- package/apps/server/src/plugin-support/native-typescript-child.ts +4 -4
- package/apps/server/src/plugin-support/native-typescript-executor.ts +12 -12
- package/apps/server/src/plugin-support/plugin-config.ts +3 -3
- package/apps/server/src/plugin-support/plugin-folder.ts +2 -2
- package/apps/server/src/plugin-support/plugins-root.ts +2 -2
- package/apps/server/src/plugin-support/process-sandbox.ts +48 -47
- package/apps/server/src/plugin-support/product-model-settings-contract.ts +3 -3
- package/apps/server/src/plugin-support/product-model-settings.ts +10 -10
- package/apps/server/src/plugin-support/product-relay.ts +9 -9
- package/apps/server/src/plugin-support/product-start-options.ts +4 -4
- package/apps/server/src/plugin-support/prompt.ts +1 -1
- package/apps/server/src/plugin-support/provision.ts +8 -8
- package/apps/server/src/plugin-support/run-scripts.ts +17 -17
- package/apps/server/src/plugin-support/skills.ts +18 -18
- package/apps/server/src/plugin-support/start-entries-contract.ts +17 -17
- package/apps/server/src/plugin-support/start-options-contract.ts +5 -5
- package/apps/server/src/plugin-support/system-prompts.ts +11 -11
- package/apps/server/src/plugin-support/thinking-level.ts +2 -2
- package/apps/server/src/plugin-support/tool-availability.ts +2 -2
- package/apps/server/src/plugin-support/workspace-ownership.ts +5 -5
- package/apps/server/src/plugin-support/workspace-sandbox-host.ts +37 -37
- package/apps/server/src/plugin-support/zip.ts +7 -7
- package/apps/server/src/profile/bundle-manifest.ts +17 -17
- package/apps/server/src/profile/compose.ts +12 -7
- package/apps/server/src/profile/plugin-discovery.ts +12 -12
- package/apps/server/src/profile/provisioning.ts +5 -5
- package/apps/server/src/profile-target.ts +10 -10
- package/apps/server/src/protocol.ts +2 -2
- package/apps/server/src/provider.ts +63 -58
- package/apps/server/src/ragents/actor-chat-history.ts +8 -8
- package/apps/server/src/ragents/chat-text-positions.ts +2 -2
- package/apps/server/src/ragents/coordinator.ts +2 -2
- package/apps/server/src/ragents/engine.ts +25 -24
- package/apps/server/src/ragents/global-chat.ts +14 -8
- package/apps/server/src/ragents/host-services.ts +6 -3
- package/apps/server/src/ragents/journal-chat-events.ts +1 -1
- package/apps/server/src/ragents/run-owner.ts +2 -2
- package/apps/server/src/ragents/session.ts +49 -49
- package/apps/server/src/ragents/typescript-tools.ts +12 -12
- package/apps/server/src/ragents/workspace-runtime.ts +28 -28
- package/apps/server/src/rpc/dispatcher.ts +19 -19
- package/apps/server/src/rpc/http-transport.ts +11 -11
- package/apps/server/src/rpc/stdio-transport.ts +3 -3
- package/apps/server/src/run-preparation-input.ts +5 -5
- package/apps/server/src/run-preparation.ts +24 -24
- package/apps/server/src/run-transfer.ts +39 -39
- package/apps/server/src/server.ts +51 -49
- package/apps/server/src/settings.ts +1 -1
- package/apps/server/src/startup.ts +3 -3
- package/apps/server/src/title-compactor.ts +9 -9
- package/apps/server/src/title-settings.ts +3 -3
- package/apps/server/src/web-bundles.ts +2 -2
- package/apps/server/src/web-stylesheet.ts +2 -2
- package/apps/web/dist/assets/{highlighted-body-KPVGNVTW-xXXhTDbh.js → highlighted-body-KPVGNVTW-BfNSGxjB.js} +1 -1
- package/apps/web/dist/assets/main-D6bsKcIK.js +11 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-DROEqEeg.js +608 -0
- package/apps/web/dist/assets/runPanel-Dumuuqry.js +21 -0
- package/apps/web/dist/help/guide-access.html +5 -5
- package/apps/web/dist/help/guide-access.md +2 -2
- package/apps/web/dist/help/guide-clients.html +64 -55
- package/apps/web/dist/help/guide-clients.md +62 -52
- package/apps/web/dist/help/guide-distributed.html +12 -7
- package/apps/web/dist/help/guide-distributed.md +9 -4
- package/apps/web/dist/help/guide-functions.html +3 -3
- package/apps/web/dist/help/guide-getting-started.html +24 -15
- package/apps/web/dist/help/guide-getting-started.md +22 -12
- package/apps/web/dist/help/guide-ideas.html +3 -3
- package/apps/web/dist/help/guide-plugins.html +5 -4
- package/apps/web/dist/help/guide-plugins.md +2 -1
- package/apps/web/dist/help/guide-programs.html +3 -3
- package/apps/web/dist/help/guide-runtime.html +6 -6
- package/apps/web/dist/help/guide-runtime.md +3 -3
- package/apps/web/dist/help/guide.html +3 -3
- package/apps/web/dist/help/index.html +1997 -942
- package/apps/web/dist/help/mini-app.css +30 -0
- package/apps/web/dist/help/mini-app.js +14 -14
- package/apps/web/dist/host-web.json +90 -90
- package/apps/web/dist/index.html +3 -3
- package/apps/web/dist/run-panel.html +3 -3
- package/apps/web/package.json +1 -1
- package/apps/web/src/AccessContext.tsx +15 -15
- package/apps/web/src/App.tsx +13 -13
- package/apps/web/src/DiffCode.tsx +2 -2
- package/apps/web/src/HelpDialog.tsx +3 -3
- package/apps/web/src/Overview.tsx +13 -13
- package/apps/web/src/PluginActivation.ts +1 -1
- package/apps/web/src/PluginChat.tsx +15 -15
- package/apps/web/src/PluginFailureNotice.tsx +1 -1
- package/apps/web/src/PluginRegistry.tsx +44 -44
- package/apps/web/src/RunPreparationChat.tsx +11 -11
- package/apps/web/src/RunStore.ts +1 -1
- package/apps/web/src/SessionList.tsx +14 -14
- package/apps/web/src/SettingsModal.tsx +112 -112
- package/apps/web/src/StartOptions.tsx +11 -11
- package/apps/web/src/StartSelection.tsx +11 -11
- package/apps/web/src/StartTiles.tsx +8 -8
- package/apps/web/src/SurfaceShortcuts.tsx +3 -3
- package/apps/web/src/ThemeSettings.tsx +8 -8
- package/apps/web/src/TitleModelSettings.tsx +13 -13
- package/apps/web/src/WorkspacePanel.tsx +9 -9
- package/apps/web/src/access-session.ts +4 -4
- package/apps/web/src/access-token.ts +5 -5
- package/apps/web/src/actor-conversation.ts +3 -3
- package/apps/web/src/actor-programs/client-ui/DataTable.tsx +8 -8
- package/apps/web/src/actor-programs/client-ui/FilePicker.tsx +4 -4
- package/apps/web/src/actor-programs/client-ui/FlowDiagram.tsx +13 -13
- package/apps/web/src/actor-programs/client-ui/Viewers.tsx +4 -4
- package/apps/web/src/actor-programs/client-ui/WorkflowDiagram.tsx +1 -1
- package/apps/web/src/actor-programs/client-ui/file-contracts.d.ts +4 -4
- package/apps/web/src/actor-programs/client-ui/file-selection.ts +1 -1
- package/apps/web/src/actor-programs/client-ui/viewer-contracts.d.ts +3 -3
- package/apps/web/src/api.ts +7 -7
- package/apps/web/src/chat/StoppedActorNotice.tsx +5 -5
- package/apps/web/src/chat/chat-target.ts +3 -3
- package/apps/web/src/chat/requests.ts +2 -2
- package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
- package/apps/web/src/chat-view-settings.tsx +5 -6
- package/apps/web/src/diff-view.css +1 -1
- package/apps/web/src/highlighting.css +1 -1
- package/apps/web/src/language-server/language-server-plugin.tsx +30 -30
- package/apps/web/src/lib/labels.ts +6 -6
- package/apps/web/src/main.tsx +4 -4
- package/apps/web/src/offered-machines.ts +2 -2
- package/apps/web/src/page-opener.tsx +1 -1
- package/apps/web/src/panel/ConnectionsPage.tsx +26 -23
- package/apps/web/src/panel/LoginForm.tsx +6 -6
- package/apps/web/src/panel/PanelDialogs.tsx +22 -22
- package/apps/web/src/panel/PanelHeader.tsx +2 -2
- package/apps/web/src/panel/PanelPage.tsx +1 -1
- package/apps/web/src/panel/RunLine.tsx +4 -4
- package/apps/web/src/panel/RunsPage.tsx +15 -15
- package/apps/web/src/panel/StartPage.tsx +29 -26
- package/apps/web/src/panel/connection-state.ts +9 -9
- package/apps/web/src/panel/contract.ts +34 -27
- package/apps/web/src/panel.tsx +1 -1
- package/apps/web/src/plugin-bootstrap.ts +5 -5
- package/apps/web/src/product/ModelControl.tsx +3 -3
- package/apps/web/src/product/ProductModelSettings.tsx +16 -16
- package/apps/web/src/product/SystemPromptControl.tsx +11 -11
- package/apps/web/src/product/model-settings.ts +2 -2
- package/apps/web/src/rpc/client.ts +16 -16
- package/apps/web/src/rpc.ts +1 -1
- package/apps/web/src/run-overview.ts +1 -1
- package/apps/web/src/run-panel/RunPanelApp.tsx +39 -39
- package/apps/web/src/run-panel/RunPanelHeader.tsx +6 -6
- package/apps/web/src/run-panel/RunPanelMenu.tsx +6 -6
- package/apps/web/src/run-panel/RunPanelRail.tsx +4 -4
- package/apps/web/src/run-panel/RunPanelWorkspace.tsx +3 -3
- package/apps/web/src/run-panel/clipboard.ts +3 -3
- package/apps/web/src/run-panel/host-contract.ts +5 -5
- package/apps/web/src/run-panel/host.ts +15 -15
- package/apps/web/src/run-panel/input-bridge.ts +1 -1
- package/apps/web/src/run-panel/run-panel-location.ts +5 -5
- package/apps/web/src/run-panel/use-session-list.ts +1 -1
- package/apps/web/src/run-panel/workspace-state.ts +3 -3
- package/apps/web/src/run-panel.tsx +4 -4
- package/apps/web/src/run-preparation.ts +2 -2
- package/apps/web/src/run-view.ts +3 -3
- package/apps/web/src/settings-contributions.ts +32 -32
- package/apps/web/src/theme.ts +9 -9
- package/apps/web/src/title-model-settings.ts +6 -6
- package/apps/web/src/ui/ListDetail.tsx +9 -9
- package/apps/web/src/ui/dialog.tsx +2 -2
- package/apps/web/src/ui/modal-controller.ts +3 -3
- package/apps/web/src/ui/modal.tsx +2 -2
- package/apps/web/src/ui/popover.tsx +1 -1
- package/apps/web/src/ui/relative-time.ts +8 -8
- package/apps/web/src/ui/startup-notice.tsx +2 -2
- package/apps/web/src/ui/state-icon.tsx +1 -1
- package/apps/web/src/ui/state-vocabulary.ts +16 -16
- package/apps/web/src/ui/stop-button.tsx +2 -2
- package/bundles/ragents.activity/ragents-bundle.json +2 -2
- package/bundles/ragents.activity/web/classes.json +1 -1
- package/bundles/ragents.activity/web/index.js +1 -1
- package/bundles/ragents.activity/web/index.js.map +2 -2
- package/bundles/ragents.actor-programs/ragents-bundle.json +2 -2
- package/bundles/ragents.actor-programs/server/index.js +256 -228
- package/bundles/ragents.actor-programs/server/index.js.map +4 -4
- package/bundles/ragents.actor-programs/web/classes.json +1 -1
- package/bundles/ragents.actor-programs/web/index.js +1 -1
- package/bundles/ragents.actor-programs/web/index.js.map +3 -3
- package/bundles/ragents.ask/ragents-bundle.json +2 -4
- package/bundles/ragents.ask/server/chunks/{chunk-PDJO75SQ.js → chunk-YOV27MAR.js} +2 -2
- package/bundles/ragents.ask/server/chunks/chunk-YOV27MAR.js.map +7 -0
- package/bundles/ragents.ask/server/exports/server/contract.js +1 -1
- package/bundles/ragents.ask/server/index.js +23 -23
- package/bundles/ragents.ask/server/index.js.map +2 -2
- package/bundles/ragents.ask/web/chunks/{chunk-WFN4374U.js → chunk-D6NNB5DS.js} +1 -1
- package/bundles/ragents.ask/web/chunks/chunk-D6NNB5DS.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/{chunk-V7W3QDVS.js → chunk-IQBHK7MV.js} +2 -2
- package/bundles/ragents.ask/web/chunks/{chunk-V7W3QDVS.js.map → chunk-IQBHK7MV.js.map} +4 -4
- package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js.map +7 -0
- package/bundles/ragents.ask/web/classes.json +1 -1
- package/bundles/ragents.ask/web/exports/ask-payload.js +1 -1
- package/bundles/ragents.ask/web/exports/web/QuestionCard.js +1 -1
- package/bundles/ragents.ask/web/exports/web/api.js +1 -1
- package/bundles/ragents.ask/web/index.js +1 -1
- package/bundles/ragents.ask/web/index.js.map +4 -4
- package/bundles/ragents.browser/executor/index.mjs +35 -35
- package/bundles/ragents.browser/executor/index.mjs.map +2 -2
- package/bundles/ragents.browser/ragents-bundle.json +2 -2
- package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js → chunk-PYEISBNE.js} +1 -1
- package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js.map → chunk-PYEISBNE.js.map} +1 -1
- package/bundles/ragents.browser/server/exports/server/contract.js +1 -1
- package/bundles/ragents.browser/server/index.js +31 -31
- package/bundles/ragents.browser/server/index.js.map +2 -2
- package/bundles/ragents.browser/skills/browser-testing/SKILL.md +30 -30
- package/bundles/ragents.documents/prompt.hbs +1 -1
- package/bundles/ragents.documents/ragents-bundle.json +2 -2
- package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js → chunk-KMZWOVTI.js} +3 -3
- package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js.map → chunk-KMZWOVTI.js.map} +2 -2
- package/bundles/ragents.documents/server/exports/contract.js +1 -1
- package/bundles/ragents.documents/server/index.js +26 -26
- package/bundles/ragents.documents/server/index.js.map +2 -2
- package/bundles/ragents.documents/web/classes.json +1 -1
- package/bundles/ragents.documents/web/index.js +1 -1
- package/bundles/ragents.documents/web/index.js.map +3 -3
- package/bundles/ragents.lsp-fsharp/executor/index.mjs +4 -4
- package/bundles/ragents.lsp-fsharp/executor/index.mjs.map +2 -2
- package/bundles/ragents.lsp-fsharp/ragents-bundle.json +2 -2
- package/bundles/ragents.lsp-fsharp/server/index.js +5 -5
- package/bundles/ragents.lsp-fsharp/server/index.js.map +2 -2
- package/bundles/ragents.lsp-fsharp/web/index.js +1 -1
- package/bundles/ragents.lsp-fsharp/web/index.js.map +2 -2
- package/bundles/ragents.lsp-roslyn/executor/index.mjs +3 -3
- package/bundles/ragents.lsp-roslyn/executor/index.mjs.map +2 -2
- package/bundles/ragents.lsp-roslyn/ragents-bundle.json +2 -2
- package/bundles/ragents.lsp-roslyn/server/index.js +17 -17
- package/bundles/ragents.lsp-roslyn/server/index.js.map +2 -2
- package/bundles/ragents.lsp-roslyn/web/index.js +1 -1
- package/bundles/ragents.lsp-roslyn/web/index.js.map +2 -2
- package/bundles/ragents.lsp-typescript/executor/index.mjs +2 -2
- package/bundles/ragents.lsp-typescript/executor/index.mjs.map +2 -2
- package/bundles/ragents.lsp-typescript/ragents-bundle.json +2 -2
- package/bundles/ragents.lsp-typescript/server/index.js.map +1 -1
- package/bundles/ragents.lsp-typescript/web/index.js +1 -1
- package/bundles/ragents.lsp-typescript/web/index.js.map +2 -2
- package/bundles/ragents.model-relay/ragents-bundle.json +7 -3
- package/bundles/ragents.model-relay/server/index.js +25 -21
- package/bundles/ragents.model-relay/server/index.js.map +2 -2
- package/bundles/ragents.orchestration/ragents-bundle.json +2 -2
- package/bundles/ragents.orchestration/server/index.js +28 -28
- package/bundles/ragents.orchestration/server/index.js.map +2 -2
- package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js → chunk-CFMJD5ZI.js} +2 -2
- package/bundles/ragents.orchestration/web/chunks/chunk-HOBLI364.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/{chunk-OQYCNYXN.js.map → chunk-HOBLI364.js.map} +2 -2
- package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js → chunk-UCIMT2R4.js} +2 -2
- package/bundles/ragents.orchestration/web/classes.json +1 -1
- package/bundles/ragents.orchestration/web/exports/web/program-slot.js +1 -1
- package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +1 -1
- package/bundles/ragents.orchestration/web/index.js +8 -8
- package/bundles/ragents.orchestration/web/index.js.map +3 -3
- package/bundles/ragents.overseer/ragents-bundle.json +2 -2
- package/bundles/ragents.overseer/server/index.js +99 -99
- package/bundles/ragents.overseer/server/index.js.map +2 -2
- package/bundles/ragents.overseer/web/classes.json +1 -1
- package/bundles/ragents.overseer/web/index.js +1 -1
- package/bundles/ragents.overseer/web/index.js.map +2 -2
- package/bundles/ragents.processes/ragents-bundle.json +2 -2
- package/bundles/ragents.processes/server/index.js +11 -11
- package/bundles/ragents.processes/server/index.js.map +2 -2
- package/bundles/ragents.processes/web/classes.json +1 -1
- package/bundles/ragents.processes/web/index.js +3 -3
- package/bundles/ragents.processes/web/index.js.map +2 -2
- package/bundles/ragents.product/ragents-bundle.json +2 -2
- package/bundles/ragents.product/server/index.js +12 -13
- package/bundles/ragents.product/server/index.js.map +2 -2
- package/bundles/ragents.product/web/classes.json +1 -1
- package/bundles/ragents.product/web/index.js +1 -1
- package/bundles/ragents.product/web/index.js.map +2 -2
- package/bundles/ragents.profile-distribution/ragents-bundle.json +2 -2
- package/bundles/ragents.profile-distribution/server/index.js +31 -31
- package/bundles/ragents.profile-distribution/server/index.js.map +2 -2
- package/bundles/ragents.reference/ragents-bundle.json +2 -2
- package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
- package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
- package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
- package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
- package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
- package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
- package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
- package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
- package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
- package/bundles/ragents.reference/run-scripts/moderated-round/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
- package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
- package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
- package/bundles/ragents.reference/run-scripts/word-game/RUN.md +18 -18
- package/bundles/ragents.reference/run-scripts/word-game/package.json +2 -2
- package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
- package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
- package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
- package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
- package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/decision-brief/SKILL.md +24 -24
- package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
- package/bundles/ragents.reference/web/classes.json +1 -1
- package/bundles/ragents.reference/web/index.js +1 -1
- package/bundles/ragents.reference/web/index.js.map +2 -2
- package/bundles/ragents.todo/ragents-bundle.json +2 -2
- package/bundles/ragents.todo/server/index.js +5 -5
- package/bundles/ragents.todo/server/index.js.map +2 -2
- package/bundles/ragents.todo/web/classes.json +1 -1
- package/bundles/ragents.todo/web/index.js +1 -1
- package/bundles/ragents.todo/web/index.js.map +2 -2
- package/bundles/ragents.transcript/ragents-bundle.json +2 -2
- package/bundles/ragents.transcript/server/index.js +11 -11
- package/bundles/ragents.transcript/server/index.js.map +2 -2
- package/bundles/ragents.watch/ragents-bundle.json +2 -2
- package/bundles/ragents.watch/server/index.js +48 -48
- package/bundles/ragents.watch/server/index.js.map +2 -2
- package/bundles/ragents.workspace/ragents-bundle.json +2 -2
- package/bundles/ragents.workspace/server/index.js +83 -81
- package/bundles/ragents.workspace/server/index.js.map +2 -2
- package/bundles/ragents.workspace/web/classes.json +1 -1
- package/bundles/ragents.workspace/web/index.js +1 -1
- package/bundles/ragents.workspace/web/index.js.map +2 -2
- package/package.json +4 -4
- package/packages/agent/dist/core/model-runtime.d.ts +7 -2
- package/packages/agent/dist/core/tools/bash.d.ts +1 -1
- package/packages/agent/dist/index.d.ts +1 -1
- package/packages/agent/dist/loop/agent-loop.d.ts +2 -2
- package/packages/agent/src/core/compaction/utils.ts +1 -1
- package/packages/agent/src/core/model-runtime.ts +45 -5
- package/packages/agent/src/core/tools/bash.ts +1 -1
- package/packages/agent/src/index.ts +1 -1
- package/packages/agent/src/loop/agent-loop.ts +2 -2
- package/packages/ai/dist/models.d.ts +1 -0
- package/packages/ai/dist/models.generated.d.ts +4544 -983
- package/packages/ai/dist/providers/openrouter.models.d.ts +4544 -983
- package/packages/ai/src/api/ai-sdk.ts +33 -7
- package/packages/ai/src/api-registry.ts +1 -1
- package/packages/ai/src/index.ts +2 -2
- package/packages/ai/src/models.generated.ts +1 -1
- package/packages/ai/src/models.ts +1 -1
- package/packages/ai/src/providers/openrouter.models.ts +3723 -550
- package/packages/ragents/src/access.ts +12 -12
- package/packages/ragents/src/agents/actor-input.ts +33 -33
- package/packages/ragents/src/agents/catalog.ts +1 -1
- package/packages/ragents/src/agents/delivery.ts +17 -17
- package/packages/ragents/src/agents/plugins.ts +1 -1
- package/packages/ragents/src/agents/scheduler.ts +7 -7
- package/packages/ragents/src/agents/schemas.ts +1 -1
- package/packages/ragents/src/agents/tool-orientation.ts +4 -4
- package/packages/ragents/src/agents/tools.ts +20 -20
- package/packages/ragents/src/agents/toolset.ts +5 -5
- package/packages/ragents/src/agents/workspaces.ts +1 -1
- package/packages/ragents/src/domain/events.ts +1 -1
- package/packages/ragents/src/domain/model.ts +5 -5
- package/packages/ragents/src/drivers/agent-runtime.ts +1 -1
- package/packages/ragents/src/drivers/agent-turn.ts +4 -4
- package/packages/ragents/src/drivers/agent.ts +2 -2
- package/packages/ragents/src/drivers/attachments.ts +4 -4
- package/packages/ragents/src/http/contracts.ts +14 -14
- package/packages/ragents/src/http/methods.ts +6 -6
- package/packages/ragents/src/index.ts +1 -0
- package/packages/ragents/src/plugin-host.ts +162 -116
- package/packages/ragents/src/plugin-types.ts +29 -10
- package/packages/ragents/src/rpc/contract.ts +5 -5
- package/packages/ragents/src/rpc/contribution.ts +2 -2
- package/packages/ragents/src/rpc/peer.ts +11 -11
- package/packages/ragents/src/rpc/protocol.ts +2 -2
- package/packages/ragents/src/runtime/decisions/turns.ts +1 -1
- package/packages/ragents/src/runtime/journal.ts +10 -10
- package/packages/ragents/src/runtime/orchestration.ts +8 -8
- package/packages/ragents/src/runtime/stop.ts +2 -2
- package/packages/ragents/src/script/mediators.ts +35 -35
- package/packages/ragents/src/typescript/async-compiler.ts +14 -14
- package/packages/ragents/src/typescript/compiler-worker.ts +2 -2
- package/packages/ragents/src/typescript/compiler.ts +7 -7
- package/packages/ragents/src/typescript/snippet.ts +5 -5
- package/packages/workspace-executor/src/bash-launch.ts +13 -13
- package/packages/workspace-executor/src/commands.ts +18 -18
- package/packages/workspace-executor/src/context.ts +15 -15
- package/packages/workspace-executor/src/contributions.ts +35 -35
- package/packages/workspace-executor/src/errors.ts +1 -1
- package/packages/workspace-executor/src/executor.ts +15 -15
- package/packages/workspace-executor/src/files.ts +30 -30
- package/packages/workspace-executor/src/language-server/contract.ts +2 -2
- package/packages/workspace-executor/src/language-server/diagnostics.ts +4 -4
- package/packages/workspace-executor/src/language-server/host.ts +35 -35
- package/packages/workspace-executor/src/language-server/json-rpc.ts +4 -4
- package/packages/workspace-executor/src/language-server/module.ts +11 -11
- package/packages/workspace-executor/src/language-server/roots.ts +3 -3
- package/packages/workspace-executor/src/language-server/session.ts +15 -15
- package/packages/workspace-executor/src/language-server/workspace-solutions.ts +2 -2
- package/packages/workspace-executor/src/managed-process.ts +35 -7
- package/packages/workspace-executor/src/module.ts +8 -8
- package/packages/workspace-executor/src/modules.ts +3 -3
- package/packages/workspace-executor/src/paths.ts +11 -11
- package/packages/workspace-executor/src/process-sandbox.ts +3 -3
- package/packages/workspace-executor/src/processes/module.ts +3 -3
- package/packages/workspace-executor/src/processes/process-table.ts +20 -20
- package/packages/workspace-executor/src/processes/scanner.ts +3 -3
- package/packages/workspace-executor/src/processes/snapshot.ts +2 -2
- package/packages/workspace-executor/src/processes/terminator.ts +13 -13
- package/packages/workspace-executor/src/run-folders.ts +3 -3
- package/packages/workspace-executor/src/safe-environment.ts +4 -4
- package/packages/workspace-executor/src/sandbox-tools.ts +37 -31
- package/packages/workspace-executor/src/session-ident.ts +2 -2
- package/packages/workspace-executor/src/shell-platform.ts +2 -2
- package/packages/workspace-executor/src/tools.ts +5 -5
- package/plugins/ragents.activity/web/ActivityHeader.tsx +3 -3
- package/plugins/ragents.activity/web/activity.ts +2 -2
- package/plugins/ragents.actor-programs/server/access-projections.ts +31 -0
- package/plugins/ragents.actor-programs/server/agent-tools.ts +2 -2
- package/plugins/ragents.actor-programs/server/capability-resolver.ts +3 -3
- package/plugins/ragents.actor-programs/server/controls-template.ts +46 -46
- package/plugins/ragents.actor-programs/server/controls-tool.ts +4 -4
- package/plugins/ragents.actor-programs/server/index.ts +2 -0
- package/plugins/ragents.actor-programs/server/limits.ts +3 -3
- package/plugins/ragents.actor-programs/server/methods.ts +1 -1
- package/plugins/ragents.actor-programs/server/project-diagnostics.ts +8 -8
- package/plugins/ragents.actor-programs/server/routes.ts +8 -8
- package/plugins/ragents.actor-programs/server/runtime.ts +90 -90
- package/plugins/ragents.actor-programs/server/templates.ts +59 -59
- package/plugins/ragents.actor-programs/server/test-report.ts +5 -5
- package/plugins/ragents.actor-programs/server/tool-contributor.ts +1 -1
- package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +17 -17
- package/plugins/ragents.actor-programs/web/AppsPanel.tsx +26 -26
- package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +3 -3
- package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +2 -2
- package/plugins/ragents.actor-programs/web/FunctionForm.tsx +16 -16
- package/plugins/ragents.actor-programs/web/ProgramSource.tsx +5 -5
- package/plugins/ragents.actor-programs/web/api.ts +36 -36
- package/plugins/ragents.actor-programs/web/bridge.ts +8 -8
- package/plugins/ragents.actor-programs/web/chat-state.ts +4 -4
- package/plugins/ragents.actor-programs/web/context.ts +1 -1
- package/plugins/ragents.actor-programs/web/function-input.ts +6 -6
- package/plugins/ragents.actor-programs/web/index.tsx +1 -1
- package/plugins/ragents.actor-programs/web/program-state.ts +4 -4
- package/plugins/ragents.ask/ask-payload.ts +1 -1
- package/plugins/ragents.ask/contract.ts +5 -5
- package/plugins/ragents.ask/server/answer-method.ts +1 -1
- package/plugins/ragents.ask/server/ask-service.ts +9 -9
- package/plugins/ragents.ask/server/ask-tool.ts +10 -10
- package/plugins/ragents.ask/server/contract.ts +5 -5
- package/plugins/ragents.ask/web/AskActionView.tsx +1 -1
- package/plugins/ragents.ask/web/QuestionCard.tsx +22 -22
- package/plugins/ragents.ask/web/index.tsx +2 -8
- package/plugins/ragents.browser/executor/contract.ts +6 -6
- package/plugins/ragents.browser/executor/index.ts +1 -1
- package/plugins/ragents.browser/executor/module.ts +6 -6
- package/plugins/ragents.browser/executor/pages.ts +32 -32
- package/plugins/ragents.browser/executor/playwright.ts +8 -8
- package/plugins/ragents.browser/provision.ts +7 -7
- package/plugins/ragents.browser/server/browser.ts +14 -14
- package/plugins/ragents.browser/server/contract.ts +1 -1
- package/plugins/ragents.browser/server/index.ts +1 -1
- package/plugins/ragents.browser/server/tools.ts +14 -14
- package/plugins/ragents.browser/skills/browser-testing/SKILL.md +30 -30
- package/plugins/ragents.documents/contract.ts +2 -2
- package/plugins/ragents.documents/prompt.hbs +1 -1
- package/plugins/ragents.documents/server/document-write-tool.ts +12 -12
- package/plugins/ragents.documents/server/files-route.ts +6 -6
- package/plugins/ragents.documents/server/show-document-tool.ts +26 -26
- package/plugins/ragents.documents/server/store.ts +1 -1
- package/plugins/ragents.documents/web/DocumentViewer.tsx +37 -37
- package/plugins/ragents.documents/web/index.tsx +11 -11
- package/plugins/ragents.lsp-fsharp/executor.ts +7 -7
- package/plugins/ragents.lsp-fsharp/provision.ts +7 -7
- package/plugins/ragents.lsp-roslyn/executor.ts +5 -5
- package/plugins/ragents.lsp-roslyn/provision.ts +4 -4
- package/plugins/ragents.lsp-roslyn/server/index.ts +5 -5
- package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +13 -13
- package/plugins/ragents.lsp-typescript/executor.ts +3 -3
- package/plugins/ragents.model-relay/server/config.ts +6 -2
- package/plugins/ragents.model-relay/server/index.ts +2 -2
- package/plugins/ragents.model-relay/server/relay.ts +23 -22
- package/plugins/ragents.orchestration/contract.ts +8 -8
- package/plugins/ragents.orchestration/server/index.ts +4 -4
- package/plugins/ragents.orchestration/server/run-stop-tool.ts +3 -3
- package/plugins/ragents.orchestration/server/surface-tool.ts +5 -5
- package/plugins/ragents.orchestration/tiled-layout.ts +11 -11
- package/plugins/ragents.orchestration/web/ActorChat.tsx +2 -2
- package/plugins/ragents.orchestration/web/ActorChatControls.tsx +4 -4
- package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +1 -1
- package/plugins/ragents.orchestration/web/ActorPopout.tsx +1 -1
- package/plugins/ragents.orchestration/web/ActorShortcut.tsx +6 -6
- package/plugins/ragents.orchestration/web/ActorSurfaceControls.tsx +15 -15
- package/plugins/ragents.orchestration/web/ActorTile.tsx +1 -1
- package/plugins/ragents.orchestration/web/Center.tsx +5 -5
- package/plugins/ragents.orchestration/web/DocumentsSection.tsx +2 -2
- package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +15 -15
- package/plugins/ragents.orchestration/web/FlowInspector.tsx +103 -103
- package/plugins/ragents.orchestration/web/JournalStatus.tsx +11 -11
- package/plugins/ragents.orchestration/web/MaterialBody.tsx +2 -2
- package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
- package/plugins/ragents.orchestration/web/TiledSurface.tsx +9 -9
- package/plugins/ragents.orchestration/web/actor-header-settings.ts +5 -5
- package/plugins/ragents.orchestration/web/constants.ts +2 -2
- package/plugins/ragents.orchestration/web/executions.ts +6 -6
- package/plugins/ragents.orchestration/web/format.ts +1 -1
- package/plugins/ragents.orchestration/web/index.tsx +2 -2
- package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +7 -7
- package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +8 -8
- package/plugins/ragents.orchestration/web/run-panel/RunPanel.tsx +29 -28
- package/plugins/ragents.orchestration/web/run-panel/RunPanelSettings.tsx +7 -7
- package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +13 -13
- package/plugins/ragents.orchestration/web/run-panel/run-panel-actors.ts +3 -3
- package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +2 -2
- package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +3 -3
- package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +7 -7
- package/plugins/ragents.orchestration/web/run-panel/sheet-status.ts +10 -10
- package/plugins/ragents.orchestration/web/surface-startup.ts +8 -8
- package/plugins/ragents.orchestration/web/surface-view-settings.ts +1 -1
- package/plugins/ragents.orchestration/web/tiled-view-settings.ts +1 -1
- package/plugins/ragents.overseer/contract.ts +20 -20
- package/plugins/ragents.overseer/server/api.ts +8 -8
- package/plugins/ragents.overseer/server/coordinator-prompt.ts +10 -10
- package/plugins/ragents.overseer/server/coordinator.ts +4 -4
- package/plugins/ragents.overseer/server/index.ts +24 -24
- package/plugins/ragents.overseer/server/orientation.ts +8 -8
- package/plugins/ragents.overseer/server/quick-answer.ts +9 -9
- package/plugins/ragents.overseer/server/run-directory.ts +5 -5
- package/plugins/ragents.overseer/server/settings.ts +6 -6
- package/plugins/ragents.overseer/server/user-location.ts +16 -16
- package/plugins/ragents.overseer/web/ModelSettings.tsx +9 -9
- package/plugins/ragents.overseer/web/index.tsx +20 -20
- package/plugins/ragents.overseer/web/model-settings.ts +1 -1
- package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
- package/plugins/ragents.processes/contract.ts +5 -5
- package/plugins/ragents.processes/server/methods.ts +4 -4
- package/plugins/ragents.processes/server/observer.ts +8 -8
- package/plugins/ragents.processes/server/run-processes.ts +2 -2
- package/plugins/ragents.processes/web/ProcessHeader.tsx +10 -10
- package/plugins/ragents.processes/web/processes.ts +10 -10
- package/plugins/ragents.product/server/config.ts +1 -1
- package/plugins/ragents.product/server/index.ts +4 -4
- package/plugins/ragents.product/server/runtime.ts +9 -10
- package/plugins/ragents.product/web/index.tsx +1 -1
- package/plugins/ragents.profile-distribution/contract.ts +10 -10
- package/plugins/ragents.profile-distribution/server/archive.ts +20 -20
- package/plugins/ragents.profile-distribution/server/config.ts +2 -2
- package/plugins/ragents.profile-distribution/server/index.ts +4 -4
- package/plugins/ragents.reference/examples.ts +27 -27
- package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
- package/plugins/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
- package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
- package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
- package/plugins/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
- package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
- package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
- package/plugins/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
- package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
- package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
- package/plugins/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
- package/plugins/ragents.reference/run-scripts/moderated-round/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
- package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
- package/plugins/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
- package/plugins/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
- package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
- package/plugins/ragents.reference/run-scripts/word-game/RUN.md +18 -18
- package/plugins/ragents.reference/run-scripts/word-game/package.json +2 -2
- package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
- package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
- package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
- package/plugins/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/decision-brief/SKILL.md +24 -24
- package/plugins/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
- package/plugins/ragents.reference/walkthroughs.ts +128 -128
- package/plugins/ragents.reference/web/StartGuides.tsx +23 -23
- package/plugins/ragents.todo/server/todo-tool.ts +6 -6
- package/plugins/ragents.todo/web/TodoSection.tsx +1 -1
- package/plugins/ragents.transcript/server/transcript.ts +11 -11
- package/plugins/ragents.watch/server/condition.ts +4 -4
- package/plugins/ragents.watch/server/functions.ts +27 -27
- package/plugins/ragents.watch/server/observation.ts +2 -2
- package/plugins/ragents.watch/server/service.ts +14 -14
- package/plugins/ragents.workspace/client/transport.ts +1 -1
- package/plugins/ragents.workspace/client/workspace-client.ts +62 -49
- package/plugins/ragents.workspace/contract.ts +46 -46
- package/plugins/ragents.workspace/server/binding.ts +20 -20
- package/plugins/ragents.workspace/server/browse-route.ts +8 -8
- package/plugins/ragents.workspace/server/clients.ts +42 -42
- package/plugins/ragents.workspace/server/config.ts +8 -5
- package/plugins/ragents.workspace/server/index.ts +5 -4
- package/plugins/ragents.workspace/server/runtime.ts +26 -26
- package/plugins/ragents.workspace/server/shell-platform.ts +1 -1
- package/plugins/ragents.workspace/web/FileBrowser.tsx +10 -10
- package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +24 -24
- package/plugins/ragents.workspace/web/index.tsx +1 -1
- package/ragents.config.core.ts +1 -1
- package/ragents.config.developer.ts +3 -3
- package/ragents.config.showcase.ts +2 -2
- package/scripts/agent/agent-cli.ts +96 -96
- package/scripts/agent/journal.ts +5 -5
- package/scripts/agent/turn-control.ts +4 -4
- package/scripts/package/build-package.ts +29 -29
- package/scripts/package/host-links.mjs +3 -3
- package/scripts/package/publish-package.ts +29 -29
- package/scripts/package/ragents.mjs +19 -19
- package/scripts/plugin/build-builtin-plugins.ts +5 -5
- package/scripts/plugin/plugin-cli.ts +14 -14
- package/scripts/provision/run-provision.ts +14 -15
- package/scripts/remote/connect.ts +46 -46
- package/scripts/remote/start.ts +18 -18
- package/scripts/workspace-client/run-workspace-client.ts +23 -23
- package/apps/web/dist/assets/main-C7JeZFjs.js +0 -6
- package/apps/web/dist/assets/mermaid-HWGCJPDP-DfsU5ofC.js +0 -478
- package/apps/web/dist/assets/runPanel-ZT6TPDLM.js +0 -21
- package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +0 -7
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +0 -2
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +0 -7
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +0 -2
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +0 -7
- package/bundles/ragents.ask/web/chunks/chunk-WFN4374U.js.map +0 -7
- package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +0 -2
- package/plugins/ragents.ask/web/QuestionSection.tsx +0 -48
- /package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js.map → chunk-CFMJD5ZI.js.map} +0 -0
- /package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js.map → chunk-UCIMT2R4.js.map} +0 -0
|
@@ -40,7 +40,7 @@ export interface RunDocument {
|
|
|
40
40
|
export interface DocumentSection {
|
|
41
41
|
id: string;
|
|
42
42
|
label: string;
|
|
43
|
-
kind: "
|
|
43
|
+
kind: "store" | "results" | "chat";
|
|
44
44
|
documents: RunDocument[];
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -48,8 +48,8 @@ const formatLabels: Record<DocumentFormat, string> = {
|
|
|
48
48
|
markdown: "Markdown",
|
|
49
49
|
text: "Text",
|
|
50
50
|
html: "HTML",
|
|
51
|
-
image: "
|
|
52
|
-
binary: "
|
|
51
|
+
image: "Image",
|
|
52
|
+
binary: "File",
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
const formatByExtension: Record<string, DocumentFormat> = {
|
|
@@ -92,7 +92,7 @@ const formatTime = (iso: string) => {
|
|
|
92
92
|
const date = new Date(iso);
|
|
93
93
|
return Number.isNaN(date.getTime())
|
|
94
94
|
? iso
|
|
95
|
-
: date.toLocaleString("
|
|
95
|
+
: date.toLocaleString("en-US", { day: "2-digit", month: "2-digit", hour: "2-digit", minute: "2-digit" });
|
|
96
96
|
};
|
|
97
97
|
|
|
98
98
|
export const documentMessagesFrom = (
|
|
@@ -160,12 +160,12 @@ export function DocumentToolCall({ active, document, onOpen, status }: DocumentT
|
|
|
160
160
|
[document.content],
|
|
161
161
|
);
|
|
162
162
|
const statusLabel = status === "error"
|
|
163
|
-
? "
|
|
163
|
+
? "Error"
|
|
164
164
|
: status === "running"
|
|
165
|
-
? "
|
|
165
|
+
? "Opening"
|
|
166
166
|
: active
|
|
167
|
-
? "
|
|
168
|
-
: "
|
|
167
|
+
? "Opened"
|
|
168
|
+
: "Open";
|
|
169
169
|
|
|
170
170
|
return (
|
|
171
171
|
<button
|
|
@@ -179,10 +179,10 @@ export function DocumentToolCall({ active, document, onOpen, status }: DocumentT
|
|
|
179
179
|
<IconDocument size={22} />
|
|
180
180
|
</span>
|
|
181
181
|
<span className="flex min-w-0 flex-col gap-0.5">
|
|
182
|
-
<span className="text-[0.62rem] font-semibold tracking-[0.05em] text-primary uppercase">
|
|
182
|
+
<span className="text-[0.62rem] font-semibold tracking-[0.05em] text-primary uppercase">Document</span>
|
|
183
183
|
<strong className="truncate text-[0.84rem] leading-[1.35]" title={document.title}>{document.title}</strong>
|
|
184
184
|
<span className="text-[0.7rem] leading-[1.35] text-muted-foreground">
|
|
185
|
-
{formatLabels[document.format]}, {lineCount.toLocaleString("
|
|
185
|
+
{formatLabels[document.format]}, {lineCount.toLocaleString("en-US")} {lineCount === 1 ? "line" : "lines"}
|
|
186
186
|
</span>
|
|
187
187
|
</span>
|
|
188
188
|
<span className="flex items-center gap-1 text-[0.7rem] font-semibold text-primary group-data-[status=error]/call:text-destructive">
|
|
@@ -193,7 +193,7 @@ export function DocumentToolCall({ active, document, onOpen, status }: DocumentT
|
|
|
193
193
|
);
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
-
function DocumentContent({ document,
|
|
196
|
+
function DocumentContent({ document, loaded }: { document: RunDocument; loaded: LoadState }) {
|
|
197
197
|
if (document.format === "image" && document.contentUrl) {
|
|
198
198
|
return <img alt={document.title} className="block max-w-full rounded-lg border border-border" src={document.contentUrl} />;
|
|
199
199
|
}
|
|
@@ -202,40 +202,40 @@ function DocumentContent({ document, stand }: { document: RunDocument; stand: Lo
|
|
|
202
202
|
<Empty className="min-h-30 gap-2 p-7">
|
|
203
203
|
<EmptyHeader>
|
|
204
204
|
<EmptyMedia><IconDocument /></EmptyMedia>
|
|
205
|
-
<EmptyTitle>
|
|
205
|
+
<EmptyTitle>No preview for this format</EmptyTitle>
|
|
206
206
|
</EmptyHeader>
|
|
207
207
|
<EmptyContent>
|
|
208
|
-
<Button render={<a download={document.title} href={document.contentUrl} />} size="sm" variant="outline">
|
|
208
|
+
<Button render={<a download={document.title} href={document.contentUrl} />} size="sm" variant="outline">Download</Button>
|
|
209
209
|
</EmptyContent>
|
|
210
210
|
</Empty>
|
|
211
211
|
);
|
|
212
212
|
}
|
|
213
|
-
if (!
|
|
213
|
+
if (!loaded) {
|
|
214
214
|
return (
|
|
215
215
|
<div className="flex items-center justify-center gap-2.5 p-9 text-[0.76rem] text-muted-foreground">
|
|
216
216
|
<Spinner className="size-3" />
|
|
217
|
-
<span>
|
|
217
|
+
<span>Loading</span>
|
|
218
218
|
</div>
|
|
219
219
|
);
|
|
220
220
|
}
|
|
221
|
-
if ("error" in
|
|
221
|
+
if ("error" in loaded) {
|
|
222
222
|
return (
|
|
223
223
|
<Empty className="min-h-30 gap-2 p-7">
|
|
224
224
|
<EmptyHeader>
|
|
225
225
|
<EmptyMedia><IconError /></EmptyMedia>
|
|
226
|
-
<EmptyTitle>
|
|
227
|
-
<EmptyDescription>{
|
|
226
|
+
<EmptyTitle>Content not readable</EmptyTitle>
|
|
227
|
+
<EmptyDescription>{loaded.error}</EmptyDescription>
|
|
228
228
|
</EmptyHeader>
|
|
229
229
|
</Empty>
|
|
230
230
|
);
|
|
231
231
|
}
|
|
232
232
|
if (document.format === "html") {
|
|
233
|
-
return <iframe className="h-full min-h-full w-full border-0 bg-white" sandbox="" srcDoc={
|
|
233
|
+
return <iframe className="h-full min-h-full w-full border-0 bg-white" sandbox="" srcDoc={loaded.text} title={document.title} />;
|
|
234
234
|
}
|
|
235
235
|
if (document.format === "text") {
|
|
236
|
-
return <SourceCode className={sourceClass} content={
|
|
236
|
+
return <SourceCode className={sourceClass} content={loaded.text} path={document.title} />;
|
|
237
237
|
}
|
|
238
|
-
return <Markdown text={
|
|
238
|
+
return <Markdown text={loaded.text} />;
|
|
239
239
|
}
|
|
240
240
|
|
|
241
241
|
function DocumentHead({ document }: { document: RunDocument }) {
|
|
@@ -260,7 +260,7 @@ interface DocumentModalProps {
|
|
|
260
260
|
}
|
|
261
261
|
|
|
262
262
|
export function DocumentModal({ document, onClose }: DocumentModalProps) {
|
|
263
|
-
const
|
|
263
|
+
const loaded = useDocumentContent(document);
|
|
264
264
|
|
|
265
265
|
return (
|
|
266
266
|
<Dialog open onOpenChange={(open) => { if (!open) onClose(); }}>
|
|
@@ -270,12 +270,12 @@ export function DocumentModal({ document, onClose }: DocumentModalProps) {
|
|
|
270
270
|
<DialogTitle className={copyClass} render={<span />}>
|
|
271
271
|
<DocumentHead document={document} />
|
|
272
272
|
</DialogTitle>
|
|
273
|
-
<Button aria-label="
|
|
273
|
+
<Button aria-label="Close" className="rounded-full" onClick={onClose} size="icon" title="Close" variant="outline">
|
|
274
274
|
<XIcon />
|
|
275
275
|
</Button>
|
|
276
276
|
</header>
|
|
277
277
|
<div className="min-h-0 flex-1 overflow-y-auto px-[clamp(18px,4vw,54px)] pt-5 pb-10 text-[13.5px] leading-[1.65]">
|
|
278
|
-
<DocumentContent document={document}
|
|
278
|
+
<DocumentContent document={document} loaded={loaded} />
|
|
279
279
|
</div>
|
|
280
280
|
</DialogContent>
|
|
281
281
|
</Dialog>
|
|
@@ -291,7 +291,7 @@ interface DocumentPanelProps {
|
|
|
291
291
|
|
|
292
292
|
export function DocumentPanel({ activeId, sections, truncated, onSelect }: DocumentPanelProps) {
|
|
293
293
|
const active = sections.flatMap((section) => section.documents).find((document) => document.id === activeId);
|
|
294
|
-
const
|
|
294
|
+
const loaded = useDocumentContent(active);
|
|
295
295
|
const [modalOpen, setModalOpen] = useState(false);
|
|
296
296
|
const [collapsed, setCollapsed] = useState<Set<string>>(() => new Set());
|
|
297
297
|
|
|
@@ -313,8 +313,8 @@ export function DocumentPanel({ activeId, sections, truncated, onSelect }: Docum
|
|
|
313
313
|
<Empty className="h-full gap-2 p-7">
|
|
314
314
|
<EmptyHeader>
|
|
315
315
|
<EmptyMedia><IconDocument /></EmptyMedia>
|
|
316
|
-
<EmptyTitle>
|
|
317
|
-
<EmptyDescription>
|
|
316
|
+
<EmptyTitle>No documents yet</EmptyTitle>
|
|
317
|
+
<EmptyDescription>Files from the run's store, results, and documents shown in chat collect here.</EmptyDescription>
|
|
318
318
|
</EmptyHeader>
|
|
319
319
|
</Empty>
|
|
320
320
|
);
|
|
@@ -324,25 +324,25 @@ export function DocumentPanel({ activeId, sections, truncated, onSelect }: Docum
|
|
|
324
324
|
return (
|
|
325
325
|
<div className="flex h-full flex-col gap-3.5 overflow-y-auto px-workspace-inset pt-2.5 pb-4.5 [scrollbar-width:thin]">
|
|
326
326
|
{sections.filter((section) => section.documents.length > 0).map((section) => {
|
|
327
|
-
const
|
|
327
|
+
const open = !collapsed.has(section.id);
|
|
328
328
|
return (
|
|
329
329
|
<section key={section.id}>
|
|
330
330
|
<button
|
|
331
|
-
aria-expanded={
|
|
331
|
+
aria-expanded={open}
|
|
332
332
|
className="grid w-full grid-cols-[14px_26px_minmax(0,1fr)_auto] items-center gap-2.5 rounded-lg px-2 py-2 text-left hover:bg-primary/7"
|
|
333
333
|
onClick={() => toggle(section.id)}
|
|
334
334
|
type="button"
|
|
335
335
|
>
|
|
336
|
-
<span aria-hidden className={`flex text-muted-foreground transition-transform duration-150${
|
|
336
|
+
<span aria-hidden className={`flex text-muted-foreground transition-transform duration-150${open ? " rotate-90" : ""}`}>
|
|
337
337
|
<IconChevron />
|
|
338
338
|
</span>
|
|
339
|
-
{section.kind === "
|
|
340
|
-
{section.kind === "
|
|
339
|
+
{section.kind === "store" && <span aria-hidden className={`${groupBadgeClass} bg-[color-mix(in_srgb,var(--foreground)_8%,var(--background))] text-[0.85rem] text-foreground`}>#</span>}
|
|
340
|
+
{section.kind === "results" && <span aria-hidden className={`${groupBadgeClass} bg-[color-mix(in_srgb,var(--primary)_16%,var(--background))] text-primary`}><IconResult /></span>}
|
|
341
341
|
{section.kind === "chat" && <span aria-hidden className={`${groupBadgeClass} bg-[color-mix(in_srgb,var(--foreground)_9%,var(--background))] text-muted-foreground`}><IconChat /></span>}
|
|
342
342
|
<span className="truncate text-sm font-semibold" title={section.label}>{section.label}</span>
|
|
343
343
|
<Badge className="tabular-nums" variant="secondary">{section.documents.length}</Badge>
|
|
344
344
|
</button>
|
|
345
|
-
{
|
|
345
|
+
{open && (
|
|
346
346
|
<div className="ml-[23px] border-l border-border-soft pl-2.5">
|
|
347
347
|
<ul className="mt-0.5 list-none">
|
|
348
348
|
{section.documents.map((document) => (
|
|
@@ -374,7 +374,7 @@ export function DocumentPanel({ activeId, sections, truncated, onSelect }: Docum
|
|
|
374
374
|
</section>
|
|
375
375
|
);
|
|
376
376
|
})}
|
|
377
|
-
{truncated && <p className="text-[0.72rem] text-muted-foreground">
|
|
377
|
+
{truncated && <p className="text-[0.72rem] text-muted-foreground">The store contains more files than are shown here.</p>}
|
|
378
378
|
</div>
|
|
379
379
|
);
|
|
380
380
|
}
|
|
@@ -382,16 +382,16 @@ export function DocumentPanel({ activeId, sections, truncated, onSelect }: Docum
|
|
|
382
382
|
return (
|
|
383
383
|
<div className="flex h-full min-h-0 flex-col">
|
|
384
384
|
<header className="grid shrink-0 grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2.5 border-b border-border-soft px-workspace-inset py-2.5">
|
|
385
|
-
<Button aria-label="
|
|
385
|
+
<Button aria-label="Back to overview" onClick={() => onSelect(undefined)} size="icon-sm" title="Back to overview" variant="outline">
|
|
386
386
|
<ArrowLeftIcon />
|
|
387
387
|
</Button>
|
|
388
388
|
<span className={copyClass}>
|
|
389
389
|
<DocumentHead document={active} />
|
|
390
390
|
</span>
|
|
391
|
-
<Button onClick={() => setModalOpen(true)} size="sm" variant="outline">
|
|
391
|
+
<Button onClick={() => setModalOpen(true)} size="sm" variant="outline">Large</Button>
|
|
392
392
|
</header>
|
|
393
393
|
<div className="min-h-0 flex-1 overflow-y-auto px-workspace-inset py-4 text-[13px] leading-[1.6]">
|
|
394
|
-
<DocumentContent document={active}
|
|
394
|
+
<DocumentContent document={active} loaded={loaded} />
|
|
395
395
|
</div>
|
|
396
396
|
{modalOpen && <DocumentModal document={active} onClose={() => setModalOpen(false)} />}
|
|
397
397
|
</div>
|
|
@@ -76,7 +76,7 @@ const RunFilesContext = createContext<RunFilesState | undefined>(undefined);
|
|
|
76
76
|
|
|
77
77
|
const useRunFilesContext = (): RunFilesState => {
|
|
78
78
|
const state = useContext(RunFilesContext);
|
|
79
|
-
if (!state) throw new Error("
|
|
79
|
+
if (!state) throw new Error("Documents plugin is not active");
|
|
80
80
|
return state;
|
|
81
81
|
};
|
|
82
82
|
|
|
@@ -118,9 +118,9 @@ function DocumentsSessionProvider({ children, session }: SessionProviderProps) {
|
|
|
118
118
|
const resultSection = (runId: string, view: RunView): DocumentSection => {
|
|
119
119
|
const handles = new Map(view.actors.map((actor) => [actor.id, actor.handle]));
|
|
120
120
|
return {
|
|
121
|
-
id: "
|
|
122
|
-
label: "
|
|
123
|
-
kind: "
|
|
121
|
+
id: "results",
|
|
122
|
+
label: "Results",
|
|
123
|
+
kind: "results",
|
|
124
124
|
documents: view.artifacts.map((artifact) => {
|
|
125
125
|
const handle = handles.get(artifact.createdBy);
|
|
126
126
|
return {
|
|
@@ -157,16 +157,16 @@ const sectionsFrom = (
|
|
|
157
157
|
|
|
158
158
|
const sections: DocumentSection[] = [
|
|
159
159
|
...(listing?.groups ?? []).map((group) => ({
|
|
160
|
-
id: `
|
|
160
|
+
id: `store/${group.directory}`,
|
|
161
161
|
label: group.directory,
|
|
162
|
-
kind: "
|
|
162
|
+
kind: "store" as const,
|
|
163
163
|
documents: group.files.map((entry) => fileDocument(group.directory, entry)),
|
|
164
164
|
})),
|
|
165
165
|
...(listing && listing.loose.length > 0
|
|
166
166
|
? [{
|
|
167
|
-
id: "
|
|
168
|
-
label: "
|
|
169
|
-
kind: "
|
|
167
|
+
id: "store",
|
|
168
|
+
label: "Store",
|
|
169
|
+
kind: "store" as const,
|
|
170
170
|
documents: listing.loose.map((entry) => fileDocument(undefined, entry)),
|
|
171
171
|
}]
|
|
172
172
|
: []),
|
|
@@ -177,7 +177,7 @@ const sectionsFrom = (
|
|
|
177
177
|
...documentsFromMessages(documentMessages),
|
|
178
178
|
...pathDocumentsFromMessages(documentMessages, routePrefix, session.session.id),
|
|
179
179
|
];
|
|
180
|
-
if (chat.length > 0) sections.push({ id: "chat", label: "
|
|
180
|
+
if (chat.length > 0) sections.push({ id: "chat", label: "Shown in chat", kind: "chat", documents: chat });
|
|
181
181
|
return { sections, truncated: listing?.truncated ?? false };
|
|
182
182
|
};
|
|
183
183
|
|
|
@@ -250,7 +250,7 @@ const configuredPlugin = (descriptor: WebPluginDescriptor, routePrefix: string):
|
|
|
250
250
|
SessionProvider: DocumentsSessionProvider,
|
|
251
251
|
workspaceTabs: [{
|
|
252
252
|
id: DOCUMENTS_TAB_ID,
|
|
253
|
-
label: "
|
|
253
|
+
label: "Documents",
|
|
254
254
|
order: 200,
|
|
255
255
|
Icon: IconDocument,
|
|
256
256
|
Panel: DocumentsPanelContribution,
|
|
@@ -18,7 +18,7 @@ export const fsharpLanguageServer: LanguageServerDescription = {
|
|
|
18
18
|
|
|
19
19
|
const PROJECT_LINE = /^Project\("\{[^}]+\}"\)\s*=\s*"[^"]*",\s*"([^"]+)"/gm;
|
|
20
20
|
|
|
21
|
-
/**
|
|
21
|
+
/** The projects of a .sln, resolved next to it; solution folder entries do not count. */
|
|
22
22
|
export const solutionProjects = async (solutionFile: string): Promise<string[]> => {
|
|
23
23
|
const text = await readFile(solutionFile, "utf8");
|
|
24
24
|
const directory = path.dirname(solutionFile);
|
|
@@ -38,9 +38,9 @@ const serverPath = (toolsDirectory: string): string => {
|
|
|
38
38
|
if (configured) return configured;
|
|
39
39
|
const provisioned = path.join(toolsDirectory, ...FSHARP_SERVER_FILE.split("/"));
|
|
40
40
|
if (existsSync(provisioned)) return provisioned;
|
|
41
|
-
throw new Error("fsautocomplete
|
|
42
|
-
+ `${FSHARP_SERVER_VARIABLE}
|
|
43
|
-
+ `pnpm provision --workspace,
|
|
41
|
+
throw new Error("fsautocomplete does not exist on this machine: neither is "
|
|
42
|
+
+ `${FSHARP_SERVER_VARIABLE} set nor does ${provisioned} exist. A workspace fetches it with `
|
|
43
|
+
+ `pnpm provision --workspace, a server via pnpm provision <profile>; ${FSHARP_SERVER_VARIABLE} overrides both`);
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
const contentOf = (params: unknown): string => (params as { content?: string } | undefined)?.content ?? "";
|
|
@@ -65,8 +65,8 @@ export const executor: WorkspaceExecutorContribution = (machine) => ({
|
|
|
65
65
|
const projects = root.toLowerCase().endsWith(".sln")
|
|
66
66
|
? (await solutionProjects(root)).filter((project) => project.toLowerCase().endsWith(".fsproj"))
|
|
67
67
|
: [root];
|
|
68
|
-
if (projects.length === 0) throw new Error(`${path.basename(root)}
|
|
69
|
-
const finished = session.waitForNotification(timeoutMs, "
|
|
68
|
+
if (projects.length === 0) throw new Error(`${path.basename(root)} contains no F# projects`);
|
|
69
|
+
const finished = session.waitForNotification(timeoutMs, "projects loaded", (method, params) =>
|
|
70
70
|
method === "fsharp/notifyWorkspace"
|
|
71
71
|
&& contentOf(params).includes("\"workspaceLoad\"")
|
|
72
72
|
&& contentOf(params).includes("\"finished\""));
|
|
@@ -74,7 +74,7 @@ export const executor: WorkspaceExecutorContribution = (machine) => ({
|
|
|
74
74
|
textDocuments: projects.map((project) => ({ uri: pathToFileURL(project).href })),
|
|
75
75
|
});
|
|
76
76
|
await finished;
|
|
77
|
-
return
|
|
77
|
+
return `Loaded ${projects.length} F# project${projects.length === 1 ? "" : "s"} from ${path.basename(root)}`;
|
|
78
78
|
},
|
|
79
79
|
}],
|
|
80
80
|
});
|
|
@@ -24,7 +24,7 @@ const TOOL_FOLDER = /^tools\/net(\d+)\.0\/any\//;
|
|
|
24
24
|
|
|
25
25
|
export const fsautocompleteArchiveUrl = `${FEED}/${PACKAGE}/${FSAUTOCOMPLETE_VERSION}/${PACKAGE}.${FSAUTOCOMPLETE_VERSION}.nupkg`;
|
|
26
26
|
|
|
27
|
-
/**
|
|
27
|
+
/** The tool package ships one folder per target platform; the highest runtime available here is taken. */
|
|
28
28
|
const toolPrefix = (names: readonly string[], majors: readonly number[]): string => {
|
|
29
29
|
const offered = names
|
|
30
30
|
.map((name) => TOOL_FOLDER.exec(name))
|
|
@@ -33,8 +33,8 @@ const toolPrefix = (names: readonly string[], majors: readonly number[]): string
|
|
|
33
33
|
const usable = offered.filter((entry) => majors.includes(entry.major)).sort((left, right) => right.major - left.major);
|
|
34
34
|
const chosen = usable[0];
|
|
35
35
|
if (!chosen) {
|
|
36
|
-
throw new Error(`${PACKAGE} ${FSAUTOCOMPLETE_VERSION}
|
|
37
|
-
+ `
|
|
36
|
+
throw new Error(`${PACKAGE} ${FSAUTOCOMPLETE_VERSION} only ships ${[...new Set(offered.map((entry) => `net${entry.major}.0`))].join(", ")}; `
|
|
37
|
+
+ `the installed .NET runtimes are ${majors.join(", ")}`);
|
|
38
38
|
}
|
|
39
39
|
return chosen.prefix;
|
|
40
40
|
};
|
|
@@ -48,7 +48,7 @@ export const createFsharpProvision = (
|
|
|
48
48
|
if (await runtimes() === undefined) return provisionGap("dotnet", DOTNET_INSTRUCTION, false);
|
|
49
49
|
const installed = await stat(serverFile(target)).catch(() => undefined);
|
|
50
50
|
if (installed?.isFile() && await readProvisionStamp(target) === FSAUTOCOMPLETE_VERSION) return provisionReady;
|
|
51
|
-
return provisionGap("fsautocomplete", `fsautocomplete ${FSAUTOCOMPLETE_VERSION}
|
|
51
|
+
return provisionGap("fsautocomplete", `fsautocomplete ${FSAUTOCOMPLETE_VERSION} is missing at ${serverFile(target)}`, true);
|
|
52
52
|
};
|
|
53
53
|
return {
|
|
54
54
|
check,
|
|
@@ -58,15 +58,15 @@ export const createFsharpProvision = (
|
|
|
58
58
|
if (!state.installable) throw new Error(state.instruction);
|
|
59
59
|
const majors = await runtimes();
|
|
60
60
|
if (!majors) throw new Error(DOTNET_INSTRUCTION);
|
|
61
|
-
log(`fsautocomplete ${FSAUTOCOMPLETE_VERSION}
|
|
61
|
+
log(`Downloading fsautocomplete ${FSAUTOCOMPLETE_VERSION}`);
|
|
62
62
|
const archive = await download(fsautocompleteArchiveUrl);
|
|
63
63
|
const prefix = toolPrefix(readZipNames(archive), majors);
|
|
64
64
|
const files = await unpackArchive(archive, prefix, target, "fsautocomplete");
|
|
65
65
|
if (!(await stat(serverFile(target)).catch(() => undefined))?.isFile()) {
|
|
66
|
-
throw new Error(`
|
|
66
|
+
throw new Error(`The package ${PACKAGE} ${FSAUTOCOMPLETE_VERSION} does not contain ${prefix}fsautocomplete.dll`);
|
|
67
67
|
}
|
|
68
68
|
await writeProvisionStamp(target, FSAUTOCOMPLETE_VERSION);
|
|
69
|
-
log(`${files}
|
|
69
|
+
log(`${files} files from ${prefix} to ${path.join(target, "fsautocomplete")}`);
|
|
70
70
|
},
|
|
71
71
|
};
|
|
72
72
|
};
|
|
@@ -26,9 +26,9 @@ const serverPath = (toolsDirectory: string): string => {
|
|
|
26
26
|
if (configured) return configured;
|
|
27
27
|
const provisioned = path.join(toolsDirectory, ...ROSLYN_SERVER_FILE.split("/"));
|
|
28
28
|
if (existsSync(provisioned)) return provisioned;
|
|
29
|
-
throw new Error("Microsoft.CodeAnalysis.LanguageServer
|
|
30
|
-
+ `${ROSLYN_SERVER_VARIABLE}
|
|
31
|
-
+ `pnpm provision --workspace,
|
|
29
|
+
throw new Error("Microsoft.CodeAnalysis.LanguageServer does not exist on this machine: neither is "
|
|
30
|
+
+ `${ROSLYN_SERVER_VARIABLE} set nor does ${provisioned} exist. A workspace fetches it with `
|
|
31
|
+
+ `pnpm provision --workspace, a server via pnpm provision <profile>; ${ROSLYN_SERVER_VARIABLE} overrides both`);
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
export const executor: WorkspaceExecutorContribution = (machine) => ({
|
|
@@ -53,12 +53,12 @@ export const executor: WorkspaceExecutorContribution = (machine) => ({
|
|
|
53
53
|
}),
|
|
54
54
|
open: async (session, root, timeoutMs) => {
|
|
55
55
|
const uri = pathToFileURL(root).href;
|
|
56
|
-
const loaded = session.waitForNotification(timeoutMs, "
|
|
56
|
+
const loaded = session.waitForNotification(timeoutMs, "projects loaded",
|
|
57
57
|
(method) => method === "workspace/projectInitializationComplete");
|
|
58
58
|
if (root.toLowerCase().endsWith(".csproj")) session.notify("project/open", { projects: [uri] });
|
|
59
59
|
else session.notify("solution/open", { solution: uri });
|
|
60
60
|
await loaded;
|
|
61
|
-
return
|
|
61
|
+
return `Loaded ${path.basename(root)}`;
|
|
62
62
|
},
|
|
63
63
|
}],
|
|
64
64
|
});
|
|
@@ -32,7 +32,7 @@ export const createRoslynProvision = (
|
|
|
32
32
|
if (await runtimes() === undefined) return provisionGap("dotnet", DOTNET_INSTRUCTION, false);
|
|
33
33
|
const installed = await stat(serverFile(target)).catch(() => undefined);
|
|
34
34
|
if (installed?.isFile() && await readProvisionStamp(target) === ROSLYN_VERSION) return provisionReady;
|
|
35
|
-
return provisionGap("roslyn", `Microsoft.CodeAnalysis.LanguageServer ${ROSLYN_VERSION}
|
|
35
|
+
return provisionGap("roslyn", `Microsoft.CodeAnalysis.LanguageServer ${ROSLYN_VERSION} is missing at ${serverFile(target)}`, true);
|
|
36
36
|
};
|
|
37
37
|
return {
|
|
38
38
|
check,
|
|
@@ -40,13 +40,13 @@ export const createRoslynProvision = (
|
|
|
40
40
|
const state = await check(target);
|
|
41
41
|
if (state.kind === "ready") return;
|
|
42
42
|
if (!state.installable) throw new Error(state.instruction);
|
|
43
|
-
log(`Roslyn ${ROSLYN_VERSION}
|
|
43
|
+
log(`Downloading Roslyn ${ROSLYN_VERSION}`);
|
|
44
44
|
const files = await unpackArchive(await download(roslynArchiveUrl), PREFIX, target, "roslyn");
|
|
45
45
|
if (!(await stat(serverFile(target)).catch(() => undefined))?.isFile()) {
|
|
46
|
-
throw new Error(`
|
|
46
|
+
throw new Error(`The package ${PACKAGE} ${ROSLYN_VERSION} does not contain ${ROSLYN_SERVER_FILE}`);
|
|
47
47
|
}
|
|
48
48
|
await writeProvisionStamp(target, ROSLYN_VERSION);
|
|
49
|
-
log(`${files}
|
|
49
|
+
log(`${files} files to ${path.join(target, "roslyn")}`);
|
|
50
50
|
},
|
|
51
51
|
};
|
|
52
52
|
};
|
|
@@ -23,24 +23,24 @@ const PLUGIN_ID = "ragents.lsp-roslyn";
|
|
|
23
23
|
|
|
24
24
|
const env = declaredEnvironment(roslynConfigDescriptors);
|
|
25
25
|
|
|
26
|
-
/**
|
|
26
|
+
/** If unset, a new run loads nothing by itself; it can only be switched on explicitly with "on". */
|
|
27
27
|
export const solutionOnStart = (): boolean => {
|
|
28
28
|
const mode = env.optional(SOLUTION_ON_START_VARIABLE) ?? "off";
|
|
29
29
|
if (mode !== "on" && mode !== "off") {
|
|
30
|
-
throw new Error(`${SOLUTION_ON_START_VARIABLE} in
|
|
30
|
+
throw new Error(`${SOLUTION_ON_START_VARIABLE} in the section ragents.lsp-roslyn is "on" or "off", not "${mode}"`);
|
|
31
31
|
}
|
|
32
32
|
return mode === "on";
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
/**
|
|
35
|
+
/** A path relative to the workspace root, as `roslyn_solutions` names it; without loading on start it would have no effect. */
|
|
36
36
|
export const preferredSolution = (loadOnStart: boolean): string | undefined => {
|
|
37
37
|
const preferred = env.optional(SOLUTION_PREFERRED_VARIABLE);
|
|
38
38
|
if (preferred === undefined) return undefined;
|
|
39
39
|
if (!loadOnStart) {
|
|
40
|
-
throw new Error(`${SOLUTION_PREFERRED_VARIABLE} in
|
|
40
|
+
throw new Error(`${SOLUTION_PREFERRED_VARIABLE} in the section ragents.lsp-roslyn requires ${SOLUTION_ON_START_VARIABLE}: "on"`);
|
|
41
41
|
}
|
|
42
42
|
if (preferred === "" || preferred.includes("\\") || path.win32.isAbsolute(preferred)) {
|
|
43
|
-
throw new Error(`${SOLUTION_PREFERRED_VARIABLE} in
|
|
43
|
+
throw new Error(`${SOLUTION_PREFERRED_VARIABLE} in the section ragents.lsp-roslyn is a path relative to the workspace with forward slashes, not "${preferred}"`);
|
|
44
44
|
}
|
|
45
45
|
return preferred;
|
|
46
46
|
};
|
|
@@ -9,8 +9,8 @@ import { DISMISSED_ANSWER, type AskService } from "@ragents/plugins/ragents.ask/
|
|
|
9
9
|
|
|
10
10
|
export const SOLUTION_ON_START_VARIABLE = "ROSLYN_SOLUTION_ON_START";
|
|
11
11
|
export const SOLUTION_PREFERRED_VARIABLE = "ROSLYN_SOLUTION_PREFERRED";
|
|
12
|
-
export const NO_SOLUTION = "
|
|
13
|
-
export const SOLUTION_QUESTION = "
|
|
12
|
+
export const NO_SOLUTION = "Load none";
|
|
13
|
+
export const SOLUTION_QUESTION = "Which solution should Roslyn load for diagnostics?";
|
|
14
14
|
|
|
15
15
|
export type SolutionStartStep =
|
|
16
16
|
| { kind: "none" }
|
|
@@ -22,14 +22,14 @@ export type SolutionAnswer =
|
|
|
22
22
|
| { kind: "open"; path: string }
|
|
23
23
|
| { kind: "forward" };
|
|
24
24
|
|
|
25
|
-
/**
|
|
25
|
+
/** The preference also matches in a subdirectory, e.g. when the workspace is the folder above the checkout. */
|
|
26
26
|
const matchesPreferred = (solution: string, preferred: string): boolean => {
|
|
27
27
|
const path = solution.toLowerCase();
|
|
28
28
|
const expected = preferred.toLowerCase();
|
|
29
29
|
return path === expected || path.endsWith(`/${expected}`);
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
-
/**
|
|
32
|
+
/** What someone has already opened or is opening stays without a question and without a second load; if the preference matches, only the matching solutions count. */
|
|
33
33
|
export const solutionStartStep = (listing: LanguageServerSolutions, preferred?: string): SolutionStartStep => {
|
|
34
34
|
if (listing.opened || listing.solutions.length === 0) return { kind: "none" };
|
|
35
35
|
const paths = listing.solutions.map((solution) => solution.path);
|
|
@@ -39,7 +39,7 @@ export const solutionStartStep = (listing: LanguageServerSolutions, preferred?:
|
|
|
39
39
|
return { kind: "ask", options: [...candidates, NO_SOLUTION] };
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
-
/**
|
|
42
|
+
/** A freely worded answer goes to the coordinator so it does not get lost. */
|
|
43
43
|
export const solutionAnswer = (options: readonly string[], answer: string): SolutionAnswer => {
|
|
44
44
|
const chosen = answer.trim().replaceAll("\\", "/");
|
|
45
45
|
if (chosen === NO_SOLUTION || answer === DISMISSED_ANSWER) return { kind: "none" };
|
|
@@ -57,10 +57,10 @@ export interface SolutionOnStartOptions {
|
|
|
57
57
|
|
|
58
58
|
const messageOf = (error: unknown): string => error instanceof Error ? error.message : String(error);
|
|
59
59
|
|
|
60
|
-
/**
|
|
60
|
+
/** On a start without a run script, loads the preference or the only solution, or asks if there are several; the marker in the journal allows this at most once per run. */
|
|
61
61
|
export interface SolutionOnStart {
|
|
62
62
|
lifecycle: SessionLifecycleContribution;
|
|
63
|
-
/**
|
|
63
|
+
/** Someone opened an instance; a still open start question is thereby settled without loading and without input. */
|
|
64
64
|
opened: (runId: string) => void;
|
|
65
65
|
}
|
|
66
66
|
|
|
@@ -84,7 +84,7 @@ export const createSolutionOnStart = (options: SolutionOnStartOptions): Solution
|
|
|
84
84
|
runtime.enqueueInput(
|
|
85
85
|
{ actorId: runtime.state(runId).ownerId, commandId: `${options.pluginId}.solution-answer:${runId}` },
|
|
86
86
|
runId,
|
|
87
|
-
{ actorId: coordinatorId, content: `
|
|
87
|
+
{ actorId: coordinatorId, content: `Answer to the question: ${SOLUTION_QUESTION}\nAnswer: ${answer}\n${openTool} loads a solution.` },
|
|
88
88
|
);
|
|
89
89
|
};
|
|
90
90
|
|
|
@@ -97,7 +97,7 @@ export const createSolutionOnStart = (options: SolutionOnStartOptions): Solution
|
|
|
97
97
|
{ runId, agentId: ownerId, turnId: null, commandId: questionCommand(runId) },
|
|
98
98
|
{
|
|
99
99
|
question: SOLUTION_QUESTION,
|
|
100
|
-
description: "
|
|
100
|
+
description: "The workspace contains several solutions; Roslyn loads the chosen one for diagnostics without a build.",
|
|
101
101
|
options: [...step.options],
|
|
102
102
|
recipient: coordinatorId,
|
|
103
103
|
},
|
|
@@ -108,13 +108,13 @@ export const createSolutionOnStart = (options: SolutionOnStartOptions): Solution
|
|
|
108
108
|
|
|
109
109
|
const finish = (runId: string, controller: AbortController, error?: unknown): void => {
|
|
110
110
|
if (error !== undefined && !controller.signal.aborted) {
|
|
111
|
-
console.error(`${options.pluginId}:
|
|
111
|
+
console.error(`${options.pluginId}: solution not loaded on start of ${runId}: ${messageOf(error)}`);
|
|
112
112
|
}
|
|
113
113
|
if (running.get(runId) === controller) running.delete(runId);
|
|
114
114
|
};
|
|
115
115
|
|
|
116
116
|
const stop = ({ runId }: { runId: string }): void => {
|
|
117
|
-
running.get(runId)?.abort(new Error("
|
|
117
|
+
running.get(runId)?.abort(new Error("The run was stopped"));
|
|
118
118
|
running.delete(runId);
|
|
119
119
|
};
|
|
120
120
|
|
|
@@ -124,7 +124,7 @@ export const createSolutionOnStart = (options: SolutionOnStartOptions): Solution
|
|
|
124
124
|
event.type === "action.proposed" && event.commandId === questionCommand(runId));
|
|
125
125
|
if (proposed?.type === "action.proposed") options.ask().withdraw(runId, proposed.payload.actionId);
|
|
126
126
|
} catch (error) {
|
|
127
|
-
console.error(`${options.pluginId}:
|
|
127
|
+
console.error(`${options.pluginId}: start question of ${runId} not dismissed: ${messageOf(error)}`);
|
|
128
128
|
}
|
|
129
129
|
};
|
|
130
130
|
|
|
@@ -140,7 +140,7 @@ export const createSolutionOnStart = (options: SolutionOnStartOptions): Solution
|
|
|
140
140
|
{ pluginId: options.pluginId, scope: { kind: "run" }, state: { version: 1, startEntry: startEntry?.id ?? null } },
|
|
141
141
|
);
|
|
142
142
|
if (startEntry?.action === "script") return;
|
|
143
|
-
if (!primaryActorId) throw new Error(`
|
|
143
|
+
if (!primaryActorId) throw new Error(`The run ${runId} has no coordinator on start that could receive an answer`);
|
|
144
144
|
const controller = new AbortController();
|
|
145
145
|
running.set(runId, controller);
|
|
146
146
|
try {
|
|
@@ -22,7 +22,7 @@ export const typescriptLanguageServer: LanguageServerDescription = {
|
|
|
22
22
|
const hasWorkspaceTypeScript = (root: string): Promise<boolean> =>
|
|
23
23
|
stat(path.join(root, "node_modules", "typescript", "lib", "tsserver.js")).then((info) => info.isFile(), () => false);
|
|
24
24
|
|
|
25
|
-
/**
|
|
25
|
+
/** Language server and compiler live in the node_modules of this machine's host; without a host they do not exist here. */
|
|
26
26
|
export const executor: WorkspaceExecutorContribution = (machine) => ({
|
|
27
27
|
languageServers: [{
|
|
28
28
|
...typescriptLanguageServer,
|
|
@@ -33,7 +33,7 @@ export const executor: WorkspaceExecutorContribution = (machine) => ({
|
|
|
33
33
|
command: process.execPath,
|
|
34
34
|
args: [machine.hostPackageFile(context.hostRoot, "typescript-language-server/lib/cli.mjs"), "--stdio"],
|
|
35
35
|
cwd: root,
|
|
36
|
-
//
|
|
36
|
+
// In the extension host process.execPath is Electron; without this variable it starts the application instead of the script.
|
|
37
37
|
env: { ...context.env, ELECTRON_RUN_AS_NODE: "1" },
|
|
38
38
|
uid: context.uid,
|
|
39
39
|
gid: context.gid,
|
|
@@ -45,6 +45,6 @@ export const executor: WorkspaceExecutorContribution = (machine) => ({
|
|
|
45
45
|
publishesOnlyChangedDiagnostics: true,
|
|
46
46
|
}),
|
|
47
47
|
open: async (_session, root) =>
|
|
48
|
-
`TypeScript
|
|
48
|
+
`TypeScript server ready on ${path.basename(root)}; projects are loaded per file from the nearest tsconfig.json`,
|
|
49
49
|
}],
|
|
50
50
|
});
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { configuredModelAliases, type ModelAlias } from "@ragents/host/plugin-support/model-aliases.js";
|
|
2
|
+
import { configuredModelProviders } from "@ragents/host/plugin-support/model-providers.js";
|
|
3
|
+
import type { ModelUpstream } from "@ragents/host/plugin-support/model-upstreams.js";
|
|
2
4
|
|
|
3
|
-
/**
|
|
5
|
+
/** The relay offers the profile's aliases (MODEL_ALIASES in the host section), the same as for its own runs. */
|
|
4
6
|
export const relayAliases = (aliases: readonly ModelAlias[]): readonly ModelAlias[] => {
|
|
5
|
-
if (aliases.length === 0) throw new Error("ragents.model-relay needs MODEL_ALIASES in the host section, a list of { alias, model, thinking?, compaction }");
|
|
7
|
+
if (aliases.length === 0) throw new Error("ragents.model-relay needs MODEL_ALIASES in the host section, a list of { alias, model, thinking?, thinkingLevels?, compaction }");
|
|
6
8
|
return aliases;
|
|
7
9
|
};
|
|
8
10
|
|
|
9
11
|
export const modelRelayConfig = Object.freeze({
|
|
10
12
|
aliases: () => relayAliases(configuredModelAliases()),
|
|
13
|
+
/** The profile's own providers (MODEL_PROVIDERS in the host section) next to those of the product. */
|
|
14
|
+
upstreams: (product: readonly ModelUpstream[]): readonly ModelUpstream[] => [...product, ...configuredModelProviders()],
|
|
11
15
|
});
|