@schlenkr/ragents 0.1.10 → 0.1.12
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/README.md +1 -1
- package/apps/server/package.json +1 -1
- package/apps/server/src/access-projection.ts +6 -6
- 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 +38 -38
- 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 +27 -27
- package/apps/server/src/profile/compose.ts +12 -7
- package/apps/server/src/profile/plugin-discovery.ts +14 -14
- 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 +62 -57
- 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-CpPi6QLr.js} +1 -1
- package/apps/web/dist/assets/main-DJmCHGzM.js +11 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-q-mf1kLN.js +608 -0
- package/apps/web/dist/assets/runPanel-nk_aMxSn.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 +91 -91
- 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/QuasselHost.tsx +1 -1
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +8 -4
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- package/bundles/ragents.todo/server/index.js +5 -8
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- package/bundles/ragents.workspace/server/index.js +83 -83
- 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 +3725 -552
- 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-storage.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 +44 -44
- package/packages/workspace-executor/src/errors.ts +1 -1
- package/packages/workspace-executor/src/executor.ts +16 -16
- package/packages/workspace-executor/src/files.ts +31 -31
- package/packages/workspace-executor/src/index.ts +1 -1
- 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 +36 -36
- 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 +3 -3
- 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 +3 -3
- package/plugins/ragents.orchestration/web/ActorChatControls.tsx +4 -5
- 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/contract.ts +0 -3
- 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 +63 -63
- 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 +50 -50
- 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 +31 -31
- 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 +49 -49
- 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
|
@@ -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";
|
|
@@ -17,7 +17,7 @@ import { installHostModules } from "./host-modules";
|
|
|
17
17
|
|
|
18
18
|
installHostModules();
|
|
19
19
|
const root = document.getElementById("root");
|
|
20
|
-
if (!root) throw new Error("Root
|
|
20
|
+
if (!root) throw new Error("Root element is missing");
|
|
21
21
|
|
|
22
22
|
const reactRoot = createRoot(root);
|
|
23
23
|
try {
|
|
@@ -45,8 +45,8 @@ try {
|
|
|
45
45
|
);
|
|
46
46
|
} catch (cause) {
|
|
47
47
|
reactRoot.render(<AccessScreen>
|
|
48
|
-
<h1 className="my-3 text-[1.5rem]">
|
|
48
|
+
<h1 className="my-3 text-[1.5rem]">The RAgents panel could not be loaded</h1>
|
|
49
49
|
<p className="mb-6 leading-normal" role="alert">{cause instanceof Error ? cause.message : String(cause)}</p>
|
|
50
|
-
<Button onClick={() => window.location.reload()} variant="outline">
|
|
50
|
+
<Button onClick={() => window.location.reload()} variant="outline">Reload</Button>
|
|
51
51
|
</AccessScreen>);
|
|
52
52
|
}
|
|
@@ -6,10 +6,10 @@ import type { RpcClient } from "./rpc/client";
|
|
|
6
6
|
export async function discussRun(sessionId: string, messages: RunPreparationMessage[], signal: AbortSignal, skillName?: string, client: RpcClient = rpc): Promise<RunPreparationResponse> {
|
|
7
7
|
const result = await client.call(coreContracts.prepare, { runId: sessionId, messages, ...(skillName ? { skillName } : {}) }, { signal });
|
|
8
8
|
if (result.kind === "start") {
|
|
9
|
-
if (!result.input || typeof result.input.text !== "string" || !result.input.text.trim()) throw new Error("
|
|
9
|
+
if (!result.input || typeof result.input.text !== "string" || !result.input.text.trim()) throw new Error("The prepared start task is missing.");
|
|
10
10
|
return result;
|
|
11
11
|
}
|
|
12
|
-
if (result.kind !== "reply" || typeof result.text !== "string" || !result.text.trim()) throw new Error("
|
|
12
|
+
if (result.kind !== "reply" || typeof result.text !== "string" || !result.text.trim()) throw new Error("The preparation did not return an answer.");
|
|
13
13
|
return result;
|
|
14
14
|
}
|
|
15
15
|
|
package/apps/web/src/run-view.ts
CHANGED
|
@@ -103,7 +103,7 @@ const isRunTurnOutput = (value: unknown): value is RunTurnOutput => {
|
|
|
103
103
|
&& typeof output.occurredAt === "string";
|
|
104
104
|
};
|
|
105
105
|
|
|
106
|
-
/**
|
|
106
|
+
/** The model responses of a turn in journal order; a view without the field yields nothing. */
|
|
107
107
|
export const runTurnOutputs = (turn: RunTurn): RunTurnOutput[] =>
|
|
108
108
|
(Array.isArray(turn.outputs) ? turn.outputs.filter(isRunTurnOutput) : [])
|
|
109
109
|
.sort((left, right) => left.sequence - right.sequence);
|
|
@@ -176,7 +176,7 @@ export interface RunView {
|
|
|
176
176
|
artifacts: RunArtifact[];
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
-
/**
|
|
179
|
+
/** The conversation partner of the run chat: the primary actor or, while none is chosen, the actor stopped as primary. */
|
|
180
180
|
export const chatPrimaryId = (view: RunView): string | null => view.primaryActorId ?? view.stoppedPrimaryActorId ?? null;
|
|
181
181
|
|
|
182
182
|
export type ActorTone = "agent" | "primary" | "script";
|
|
@@ -206,7 +206,7 @@ export const runArtifactContentUrl = (runId: string, artifactId: string) => arti
|
|
|
206
206
|
export const runActorFrom = (value: unknown): RunActor => {
|
|
207
207
|
const actor = value as RunActor | undefined;
|
|
208
208
|
if (typeof actor?.id !== "string" || typeof actor.handle !== "string") {
|
|
209
|
-
throw new Error("
|
|
209
|
+
throw new Error("The card context contains no actor of the run view");
|
|
210
210
|
}
|
|
211
211
|
return actor;
|
|
212
212
|
};
|
|
@@ -31,13 +31,13 @@ export interface ContributionFilterOption {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export const contributionFilters: readonly ContributionFilterOption[] = [
|
|
34
|
-
{ id: "all", label: "
|
|
35
|
-
{ id: "tools", label: "
|
|
34
|
+
{ id: "all", label: "All" },
|
|
35
|
+
{ id: "tools", label: "Functions" },
|
|
36
36
|
{ id: "prompts", label: "Prompts" },
|
|
37
|
-
{ id: "startEntries", label: "
|
|
37
|
+
{ id: "startEntries", label: "Templates" },
|
|
38
38
|
{ id: "skills", label: "Skills" },
|
|
39
39
|
{ id: "hooks", label: "Hooks" },
|
|
40
|
-
{ id: "configuration", label: "
|
|
40
|
+
{ id: "configuration", label: "Configuration" },
|
|
41
41
|
{ id: "web", label: "Web" },
|
|
42
42
|
];
|
|
43
43
|
|
|
@@ -82,19 +82,19 @@ export const toolKindLabel = (kind: SettingsTool["kind"]): string => {
|
|
|
82
82
|
};
|
|
83
83
|
|
|
84
84
|
export const toolScopeLabel = (scope: SettingsTool["scope"]): string => {
|
|
85
|
-
if (scope === "global") return "
|
|
86
|
-
if (scope === "per-agent") return "
|
|
87
|
-
return "
|
|
85
|
+
if (scope === "global") return "Runtime-wide";
|
|
86
|
+
if (scope === "per-agent") return "Per agent";
|
|
87
|
+
return "Per turn";
|
|
88
88
|
};
|
|
89
89
|
|
|
90
90
|
export const toolAvailabilityLabel = (availability: SettingsTool["availability"]): string =>
|
|
91
|
-
availability === "always" ? "
|
|
91
|
+
availability === "always" ? "Always available" : "Conditionally available";
|
|
92
92
|
|
|
93
93
|
export const functionSurfaceLabel = (nativeTool: SettingsTool["nativeTool"]): string =>
|
|
94
|
-
nativeTool === true ? "LLM
|
|
94
|
+
nativeTool === true ? "LLM tool" : "TypeScript function";
|
|
95
95
|
|
|
96
96
|
export const skillAudienceLabel = (audience: SettingsSkill["audiences"][number]): string =>
|
|
97
|
-
audience === "coordinator" ? "
|
|
97
|
+
audience === "coordinator" ? "Coordinator" : "Agents";
|
|
98
98
|
|
|
99
99
|
export const groupContributions = (
|
|
100
100
|
settings: SettingsResponse,
|
|
@@ -141,17 +141,17 @@ export const filterGroup = (
|
|
|
141
141
|
filter: ContributionFilter,
|
|
142
142
|
searchText: string,
|
|
143
143
|
): PluginGroup => {
|
|
144
|
-
const needle = searchText.trim().toLocaleLowerCase("
|
|
144
|
+
const needle = searchText.trim().toLocaleLowerCase("en-US");
|
|
145
145
|
const kept = (kind: ContributionKind) => filter === "all" || filter === kind;
|
|
146
146
|
const matches = (haystack: readonly (string | undefined)[]) =>
|
|
147
147
|
needle === "" || haystack.filter((part): part is string => part !== undefined)
|
|
148
|
-
.join(" ").toLocaleLowerCase("
|
|
148
|
+
.join(" ").toLocaleLowerCase("en-US").includes(needle);
|
|
149
149
|
const configuration = kept("configuration")
|
|
150
150
|
? group.configuration.filter((entry) => matches([entry.key, entry.source]))
|
|
151
151
|
: [];
|
|
152
152
|
const clientConfig = kept("configuration")
|
|
153
153
|
&& group.clientConfig !== undefined
|
|
154
|
-
&& matches([group.id, "Client
|
|
154
|
+
&& matches([group.id, "Client configuration", JSON.stringify(group.clientConfig)])
|
|
155
155
|
? group.clientConfig
|
|
156
156
|
: undefined;
|
|
157
157
|
return {
|
|
@@ -203,14 +203,14 @@ const webCount = (web: PluginWebModule): number =>
|
|
|
203
203
|
const filterWebModule = (web: PluginWebModule, needle: string): PluginWebModule => {
|
|
204
204
|
if (web.state !== "contributions") return needle === "" ? web : { state: "hidden" };
|
|
205
205
|
const contributions = web.contributions.filter((contribution) =>
|
|
206
|
-
[contribution.kind, ...contribution.details].join(" ").toLocaleLowerCase("
|
|
206
|
+
[contribution.kind, ...contribution.details].join(" ").toLocaleLowerCase("en-US").includes(needle));
|
|
207
207
|
return contributions.length === 0 && needle !== "" ? { state: "hidden" } : { state: "contributions", contributions };
|
|
208
208
|
};
|
|
209
209
|
|
|
210
210
|
const ownersOf = (items: readonly { owner: string }[]): readonly string[] => items.map((item) => item.owner);
|
|
211
211
|
|
|
212
212
|
export const entryActionLabel = (entry: StartEntry): string =>
|
|
213
|
-
entry.action === "skill" ? "Skill" : "Run
|
|
213
|
+
entry.action === "skill" ? "Skill" : "Run script";
|
|
214
214
|
|
|
215
215
|
const entrySearchParts = (entry: StartEntry): readonly (string | undefined)[] => [
|
|
216
216
|
entry.id,
|
|
@@ -229,24 +229,24 @@ const webModuleOf = (plugin: WebPlugin | undefined): PluginWebModule => {
|
|
|
229
229
|
};
|
|
230
230
|
|
|
231
231
|
const webContributionsOf = (plugin: WebPlugin): readonly WebContribution[] => [
|
|
232
|
-
listed("
|
|
233
|
-
flagged("
|
|
234
|
-
listed("
|
|
232
|
+
listed("Sidebar tabs", (plugin.workspaceTabs ?? []).map((tab) => `${tab.id} (${tab.label})`)),
|
|
233
|
+
flagged("Dynamic sidebar tabs", plugin.workspaceTabsFor !== undefined),
|
|
234
|
+
listed("Guides", (plugin.guides ?? []).map((guide) => guide.id)),
|
|
235
235
|
flagged("Branding", plugin.brand !== undefined),
|
|
236
|
-
flagged("
|
|
237
|
-
counted("
|
|
238
|
-
counted("
|
|
239
|
-
counted("
|
|
240
|
-
counted("
|
|
241
|
-
counted("Session
|
|
242
|
-
listed("
|
|
243
|
-
listed("
|
|
244
|
-
counted("Session
|
|
245
|
-
counted("Attention
|
|
246
|
-
listed("
|
|
247
|
-
flagged("Chat
|
|
248
|
-
listed("
|
|
249
|
-
flagged("Session
|
|
236
|
+
flagged("Surface", plugin.surface !== undefined),
|
|
237
|
+
counted("Surface elements", (plugin.surfaceElements ?? []).length),
|
|
238
|
+
counted("Card sections", (plugin.cardSections ?? []).length),
|
|
239
|
+
counted("Tool presenters", (plugin.toolPresenters ?? []).length),
|
|
240
|
+
counted("Entity presenters", (plugin.entityPresenters ?? []).length),
|
|
241
|
+
counted("Session header contributions", (plugin.sessionHeaders ?? []).length),
|
|
242
|
+
listed("Overview contributions", (plugin.overviewPanels ?? []).map((panel) => panel.id)),
|
|
243
|
+
listed("Settings", (plugin.settings ?? []).map((setting) => `${setting.id} (${setting.label})`)),
|
|
244
|
+
counted("Session metadata", (plugin.sessionMetadata ?? []).length),
|
|
245
|
+
counted("Attention contributions", (plugin.attention ?? []).length),
|
|
246
|
+
listed("Start options", (plugin.startOptions ?? []).map((option) => option.id)),
|
|
247
|
+
flagged("Chat display", plugin.chatDisplayPolicy !== undefined),
|
|
248
|
+
listed("Action views", (plugin.actionViews ?? []).map((view) => view.owner)),
|
|
249
|
+
flagged("Session provider", plugin.SessionProvider !== undefined),
|
|
250
250
|
].filter((contribution): contribution is WebContribution => contribution !== undefined);
|
|
251
251
|
|
|
252
252
|
const listed = (kind: string, details: readonly string[]): WebContribution | undefined =>
|
package/apps/web/src/theme.ts
CHANGED
|
@@ -6,8 +6,8 @@ export type ThemePreference = "light" | "dark" | "system";
|
|
|
6
6
|
export type ResolvedTheme = Exclude<ThemePreference, "system">;
|
|
7
7
|
|
|
8
8
|
export const themeOptions = [
|
|
9
|
-
{ value: "light", label: "
|
|
10
|
-
{ value: "dark", label: "
|
|
9
|
+
{ value: "light", label: "Light" },
|
|
10
|
+
{ value: "dark", label: "Dark" },
|
|
11
11
|
{ value: "system", label: "System" },
|
|
12
12
|
] as const;
|
|
13
13
|
|
|
@@ -20,7 +20,7 @@ interface ThemeSnapshot {
|
|
|
20
20
|
export function parseThemePreference(value: string | null): ThemePreference {
|
|
21
21
|
if (value === null) return "dark";
|
|
22
22
|
if (value === "light" || value === "dark" || value === "system") return value;
|
|
23
|
-
throw new Error(`
|
|
23
|
+
throw new Error(`Invalid theme in ${THEME_STORAGE_KEY}: ${JSON.stringify(value)}. Allowed are light, dark, and system.`);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
const errorMessage = (cause: unknown) => cause instanceof Error ? cause.message : String(cause);
|
|
@@ -32,7 +32,7 @@ export function createThemeStore(browser: Window) {
|
|
|
32
32
|
storage = browser.localStorage;
|
|
33
33
|
preference = parseThemePreference(storage.getItem(THEME_STORAGE_KEY));
|
|
34
34
|
} catch (cause) {
|
|
35
|
-
throw new Error(`
|
|
35
|
+
throw new Error(`The saved theme could not be loaded. ${errorMessage(cause)}`);
|
|
36
36
|
}
|
|
37
37
|
const media = browser.matchMedia("(prefers-color-scheme: dark)");
|
|
38
38
|
const appearanceOf = (value: ThemePreference): ResolvedTheme => value === "system" ? media.matches ? "dark" : "light" : value;
|
|
@@ -78,7 +78,7 @@ export function createThemeStore(browser: Window) {
|
|
|
78
78
|
try {
|
|
79
79
|
apply(parseThemePreference(storage.getItem(THEME_STORAGE_KEY)));
|
|
80
80
|
} catch (cause) {
|
|
81
|
-
reportError(`
|
|
81
|
+
reportError(`The theme from another browser tab could not be applied. ${errorMessage(cause)}`);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
|
|
@@ -88,18 +88,18 @@ export function createThemeStore(browser: Window) {
|
|
|
88
88
|
return {
|
|
89
89
|
getSnapshot: () => snapshot,
|
|
90
90
|
subscribe(listener: () => void) {
|
|
91
|
-
if (disposed) throw new Error("
|
|
91
|
+
if (disposed) throw new Error("The theme has already been disposed.");
|
|
92
92
|
listeners.add(listener);
|
|
93
93
|
return () => { listeners.delete(listener); };
|
|
94
94
|
},
|
|
95
95
|
setPreference(next: ThemePreference) {
|
|
96
|
-
if (disposed) throw new Error("
|
|
96
|
+
if (disposed) throw new Error("The theme has already been disposed.");
|
|
97
97
|
try {
|
|
98
98
|
parseThemePreference(next);
|
|
99
99
|
storage.setItem(THEME_STORAGE_KEY, next);
|
|
100
100
|
apply(next);
|
|
101
101
|
} catch (cause) {
|
|
102
|
-
reportError(`
|
|
102
|
+
reportError(`The theme could not be saved. ${errorMessage(cause)}`);
|
|
103
103
|
}
|
|
104
104
|
},
|
|
105
105
|
dispose() {
|
|
@@ -122,7 +122,7 @@ export function initializeTheme(browser: Window) {
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
export function getThemeStore() {
|
|
125
|
-
if (!activeTheme) throw new Error("
|
|
125
|
+
if (!activeTheme) throw new Error("The theme has not been initialized yet.");
|
|
126
126
|
return activeTheme;
|
|
127
127
|
}
|
|
128
128
|
|
|
@@ -13,12 +13,12 @@ export function titleModelSettingsFrom(value: unknown): TitleModelSettings {
|
|
|
13
13
|
if (!isRecord(value) || !Array.isArray(value.models)
|
|
14
14
|
|| !value.models.every((model) => isRecord(model) && text(model.provider) && text(model.id) && text(model.label))
|
|
15
15
|
|| (value.selection !== null && (!isRecord(value.selection) || !text(value.selection.provider) || !text(value.selection.model)))) {
|
|
16
|
-
throw new Error("
|
|
16
|
+
throw new Error("The server returned invalid title settings.");
|
|
17
17
|
}
|
|
18
18
|
const settings = value as unknown as TitleModelSettings;
|
|
19
19
|
const keys = settings.models.map((model) => titleSelectionKey({ provider: model.provider, model: model.id }));
|
|
20
20
|
if (new Set(keys).size !== keys.length || (settings.selection !== null && !keys.includes(titleSelectionKey(settings.selection)))) {
|
|
21
|
-
throw new Error("
|
|
21
|
+
throw new Error("The title settings do not match the available model catalog.");
|
|
22
22
|
}
|
|
23
23
|
return settings;
|
|
24
24
|
}
|
|
@@ -26,16 +26,16 @@ export function titleModelSettingsFrom(value: unknown): TitleModelSettings {
|
|
|
26
26
|
export function titleSelectionFromKey(key: string, models: TitleModelSettings["models"]): TitleModelSelection | null {
|
|
27
27
|
if (key === "null") return null;
|
|
28
28
|
const model = models.find((entry) => titleSelectionKey({ provider: entry.provider, model: entry.id }) === key);
|
|
29
|
-
if (!model) throw new Error("
|
|
29
|
+
if (!model) throw new Error("The selected model for titles is not available.");
|
|
30
30
|
return { provider: model.provider, model: model.id };
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export function titleModelOptions(models: TitleModelSettings["models"], selection: TitleModelSelection | null, query: string) {
|
|
34
|
-
const search = query.trim().toLocaleLowerCase("
|
|
34
|
+
const search = query.trim().toLocaleLowerCase("en-US");
|
|
35
35
|
return [
|
|
36
|
-
{ value: "null", label: "
|
|
36
|
+
{ value: "null", label: "No automatic titles" },
|
|
37
37
|
...models.filter((model) => (model.provider === selection?.provider && model.id === selection.model)
|
|
38
|
-
|| `${model.label} ${model.id}`.toLocaleLowerCase("
|
|
38
|
+
|| `${model.label} ${model.id}`.toLocaleLowerCase("en-US").includes(search))
|
|
39
39
|
.map((model) => ({ value: titleSelectionKey({ provider: model.provider, model: model.id }), label: model.label })),
|
|
40
40
|
];
|
|
41
41
|
}
|
|
@@ -28,7 +28,7 @@ export interface ListDetailProps {
|
|
|
28
28
|
className?: string;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
// Tone
|
|
31
|
+
// Tone and tone surface come from data-tone and color the icon, title and detail header.
|
|
32
32
|
const toneVariables = "[--tone:var(--muted-foreground)] [--tone-soft:var(--secondary)] "
|
|
33
33
|
+ "data-[tone=accent]:[--tone:var(--primary)] data-[tone=accent]:[--tone-soft:var(--accent)] "
|
|
34
34
|
+ "data-[tone=success]:[--tone:var(--success)] data-[tone=success]:[--tone-soft:var(--success-soft)] "
|
|
@@ -43,7 +43,7 @@ const itemClasses = cn(toneVariables, focusRing,
|
|
|
43
43
|
|
|
44
44
|
const paneClasses = "min-h-0 min-w-0 flex-auto overflow-auto overscroll-contain [scrollbar-gutter:stable]";
|
|
45
45
|
|
|
46
|
-
//
|
|
46
|
+
// What counts is the width of the component, not that of the window; CSS and measurement use the same threshold.
|
|
47
47
|
const narrowWidth = 900;
|
|
48
48
|
|
|
49
49
|
/** Controlled grouped selection with a detail page and a return path on narrow screens. */
|
|
@@ -60,7 +60,7 @@ export function ListDetail({ label, items, selectedId, onSelect, disabled = fals
|
|
|
60
60
|
const groups = new Map<string, ListDetailItem[]>();
|
|
61
61
|
const ids = new Set<string>();
|
|
62
62
|
for (const item of items) {
|
|
63
|
-
if (!item.id.trim() || ids.has(item.id)) throw new Error("ListDetail
|
|
63
|
+
if (!item.id.trim() || ids.has(item.id)) throw new Error("ListDetail entries require unique, non-empty IDs.");
|
|
64
64
|
ids.add(item.id);
|
|
65
65
|
const key = item.group ?? "";
|
|
66
66
|
const group = groups.get(key) ?? [];
|
|
@@ -72,7 +72,7 @@ export function ListDetail({ label, items, selectedId, onSelect, disabled = fals
|
|
|
72
72
|
|
|
73
73
|
useEffect(() => {
|
|
74
74
|
const root = rootRef.current;
|
|
75
|
-
if (!root) throw new Error("ListDetail
|
|
75
|
+
if (!root) throw new Error("ListDetail requires its root element for the width measurement.");
|
|
76
76
|
const observer = new ResizeObserver(([entry]) => {
|
|
77
77
|
const next = entry.contentRect.width < narrowWidth;
|
|
78
78
|
setNarrow(next);
|
|
@@ -111,10 +111,10 @@ export function ListDetail({ label, items, selectedId, onSelect, disabled = fals
|
|
|
111
111
|
<div className="grid min-h-0 min-w-0 flex-auto grid-cols-[minmax(0,0.9fr)_minmax(0,1.1fr)] grid-rows-[minmax(0,1fr)] gap-6 @max-[900px]/list-detail:grid-cols-[minmax(0,1fr)] @max-[900px]/list-detail:gap-0">
|
|
112
112
|
<div aria-label={label} className={cn(paneClasses, focusRing, "pt-0.5 pr-1.5 pb-3 @max-[900px]/list-detail:group-data-[detail=true]/list-detail:hidden")}
|
|
113
113
|
ref={listRef} role="region" tabIndex={-1}>
|
|
114
|
-
{items.length === 0 ? <div className="p-6 text-[0.8rem] leading-relaxed text-muted-foreground">{emptyState ?? <p>
|
|
114
|
+
{items.length === 0 ? <div className="p-6 text-[0.8rem] leading-relaxed text-muted-foreground">{emptyState ?? <p>No entries available.</p>}</div>
|
|
115
115
|
: [...groups].map(([group, entries], groupIndex) => <section aria-labelledby={group ? `${prefix}-group-${groupIndex}` : undefined} className="not-first:mt-4.5" key={group}>
|
|
116
116
|
{group && <h3 className="mx-2 mb-2 flex items-center gap-2.5 text-[0.67rem] font-bold tracking-[0.04em] text-muted-foreground" id={`${prefix}-group-${groupIndex}`}>
|
|
117
|
-
{group}<span className="font-mono text-[0.63rem] opacity-80" aria-label={`${entries.length}
|
|
117
|
+
{group}<span className="font-mono text-[0.63rem] opacity-80" aria-label={`${entries.length} entries`}>{entries.length}</span>
|
|
118
118
|
</h3>}
|
|
119
119
|
<ul className="grid grid-cols-[minmax(0,1fr)] gap-1 *:min-w-0">
|
|
120
120
|
{entries.map((item) => <li key={item.id}>
|
|
@@ -138,11 +138,11 @@ export function ListDetail({ label, items, selectedId, onSelect, disabled = fals
|
|
|
138
138
|
data-tone={selected?.tone ?? "neutral"}
|
|
139
139
|
id={`${prefix}-detail`} ref={detailRef} tabIndex={-1}>
|
|
140
140
|
{selected ? <>
|
|
141
|
-
<div className="hidden flex-none border-b border-border-soft px-3.5 py-2.5 @max-[900px]/list-detail:flex"><Button aria-label="
|
|
141
|
+
<div className="hidden flex-none border-b border-border-soft px-3.5 py-2.5 @max-[900px]/list-detail:flex"><Button aria-label="Back to selection" className="rounded-full" onClick={returnToList} size="icon" variant="outline"><ArrowLeftIcon /></Button></div>
|
|
142
142
|
{detailHeader !== undefined && <header className="flex-none border-b border-border-soft bg-(--tone-soft) px-6 py-6 [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 @max-[900px]/list-detail:p-4.5">{detailHeader}</header>}
|
|
143
|
-
<div aria-label={`${detailLabel}:
|
|
143
|
+
<div aria-label={`${detailLabel}: content`} className={cn(paneClasses, focusRing, "flex-1 px-6 py-6 text-[0.8rem] leading-[1.7] [overflow-wrap:anywhere] [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 @max-[900px]/list-detail:p-4.5")} role="region" tabIndex={0}>{children}</div>
|
|
144
144
|
{detailFooter !== undefined && <footer className="flex flex-none flex-wrap items-center gap-2.5 border-t border-border-soft px-6 py-4 @max-[900px]/list-detail:px-4.5 @max-[900px]/list-detail:py-3.5">{detailFooter}</footer>}
|
|
145
|
-
</> : <div className="p-6 text-[0.8rem] leading-relaxed text-muted-foreground"><p>{items.length ? "
|
|
145
|
+
</> : <div className="p-6 text-[0.8rem] leading-relaxed text-muted-foreground"><p>{items.length ? "Choose an entry to see the details." : "No selection available."}</p></div>}
|
|
146
146
|
</section>
|
|
147
147
|
</div>
|
|
148
148
|
</section>;
|
|
@@ -151,7 +151,7 @@ function DialogContent({
|
|
|
151
151
|
}
|
|
152
152
|
>
|
|
153
153
|
<XIcon />
|
|
154
|
-
<span className="sr-only">
|
|
154
|
+
<span className="sr-only">Close</span>
|
|
155
155
|
</DialogPrimitive.Close>
|
|
156
156
|
)}
|
|
157
157
|
</DialogPrimitive.Popup>
|
|
@@ -199,7 +199,7 @@ function DialogFooter({
|
|
|
199
199
|
{children}
|
|
200
200
|
{showCloseButton && (
|
|
201
201
|
<DialogPrimitive.Close render={<Button variant="outline" />}>
|
|
202
|
-
|
|
202
|
+
Close
|
|
203
203
|
</DialogPrimitive.Close>
|
|
204
204
|
)}
|
|
205
205
|
</div>
|
|
@@ -37,12 +37,12 @@ export function createModalController({ nextBehavior, onClose, onNavigate }: {
|
|
|
37
37
|
return {
|
|
38
38
|
get canGoBack() { return history.length > 1; },
|
|
39
39
|
open(page: ModalPage) {
|
|
40
|
-
if (!page.title.trim()) throw new Error("
|
|
40
|
+
if (!page.title.trim()) throw new Error("A dialog step requires a title.");
|
|
41
41
|
const previous = nextBehavior() === "push" ? history : history.slice(0, -1);
|
|
42
42
|
update([...previous, { key: nextKey++, page }]);
|
|
43
43
|
},
|
|
44
44
|
back() {
|
|
45
|
-
if (history.length < 2) throw new Error("
|
|
45
|
+
if (history.length < 2) throw new Error("There is no previous dialog step.");
|
|
46
46
|
update(history.slice(0, -1));
|
|
47
47
|
},
|
|
48
48
|
close() { onClose(); },
|
|
@@ -65,6 +65,6 @@ export const ModalControllerContext = createContext<ModalController | null>(null
|
|
|
65
65
|
|
|
66
66
|
export function useModalController(): ModalController {
|
|
67
67
|
const controller = useContext(ModalControllerContext);
|
|
68
|
-
if (!controller) throw new Error("
|
|
68
|
+
if (!controller) throw new Error("The dialog controller requires a modal host.");
|
|
69
69
|
return controller;
|
|
70
70
|
}
|
|
@@ -18,7 +18,7 @@ export interface ModalProps extends PropsWithChildren {
|
|
|
18
18
|
keepMounted?: boolean;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
/** A dialog frame whose contents can push further steps;
|
|
21
|
+
/** A dialog frame whose contents can push further steps; Back, Escape and the backdrop return to the previous step first. */
|
|
22
22
|
export function Modal({ children, className, initialFocus, keepMounted, nextBehavior = "push", onClose, open = true, overlayClassName, scope = "run", showCloseButton = false, size = "medium" }: ModalProps) {
|
|
23
23
|
const onCloseRef = useRef(onClose);
|
|
24
24
|
onCloseRef.current = onClose;
|
|
@@ -45,7 +45,7 @@ export function Modal({ children, className, initialFocus, keepMounted, nextBeha
|
|
|
45
45
|
<div className={cn("contents", entry.key !== current.key && "hidden")} hidden={entry.key !== current.key} inert={entry.key !== current.key} key={entry.key}>
|
|
46
46
|
{entry.page ? <>
|
|
47
47
|
<DialogHeader className="flex-row items-start gap-3 px-4 pt-4 pb-3">
|
|
48
|
-
<Button aria-label="
|
|
48
|
+
<Button aria-label="Back" onClick={controller.back} size="icon-sm" variant="ghost"><ArrowLeftIcon /></Button>
|
|
49
49
|
<div className="flex min-w-0 flex-1 flex-col gap-1">
|
|
50
50
|
<DialogTitle>{entry.page.title}</DialogTitle>
|
|
51
51
|
{entry.page.subtitle && <DialogDescription>{entry.page.subtitle}</DialogDescription>}
|
|
@@ -26,7 +26,7 @@ function PopoverContent({
|
|
|
26
26
|
PopoverPrimitive.Positioner.Props,
|
|
27
27
|
"align" | "alignOffset" | "side" | "sideOffset" | "anchor" | "collisionPadding"
|
|
28
28
|
> & Pick<PopoverPrimitive.Portal.Props, "keepMounted"> & {
|
|
29
|
-
/**
|
|
29
|
+
/** Dims the rest of the page so the pop-out stands out; a click outside closes it. */
|
|
30
30
|
dim?: boolean
|
|
31
31
|
}) {
|
|
32
32
|
return (
|
|
@@ -4,33 +4,33 @@ const DAY = 24 * HOUR;
|
|
|
4
4
|
const WEEK = 7 * DAY;
|
|
5
5
|
|
|
6
6
|
const date = (at: number, year: boolean): string =>
|
|
7
|
-
new Date(at).toLocaleDateString("
|
|
7
|
+
new Date(at).toLocaleDateString("en-US", year ? { day: "2-digit", month: "2-digit", year: "numeric" } : { day: "2-digit", month: "2-digit" });
|
|
8
8
|
|
|
9
|
-
/**
|
|
9
|
+
/** The time in the list: now, 5 min, 3 h, 2 d, from seven days on the date. Without "ago", without a special case for yesterday. */
|
|
10
10
|
export const shortTime = (at: number, now: number = Date.now()): string => {
|
|
11
11
|
const passed = now - at;
|
|
12
|
-
if (passed < MINUTE) return "
|
|
12
|
+
if (passed < MINUTE) return "now";
|
|
13
13
|
if (passed < HOUR) return `${Math.floor(passed / MINUTE)} min`;
|
|
14
14
|
if (passed < DAY) return `${Math.floor(passed / HOUR)} h`;
|
|
15
15
|
if (passed < WEEK) return `${Math.floor(passed / DAY)} d`;
|
|
16
16
|
return date(at, false);
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
-
/**
|
|
19
|
+
/** The same time written out; it appears only in the title of the compact time. */
|
|
20
20
|
export const longTime = (at: number, now: number = Date.now()): string => {
|
|
21
21
|
const passed = now - at;
|
|
22
|
-
if (passed < MINUTE) return "
|
|
22
|
+
if (passed < MINUTE) return "just now";
|
|
23
23
|
if (passed < HOUR) {
|
|
24
24
|
const minutes = Math.floor(passed / MINUTE);
|
|
25
|
-
return minutes === 1 ? "
|
|
25
|
+
return minutes === 1 ? "1 minute ago" : `${minutes} minutes ago`;
|
|
26
26
|
}
|
|
27
27
|
if (passed < DAY) {
|
|
28
28
|
const hours = Math.floor(passed / HOUR);
|
|
29
|
-
return hours === 1 ? "
|
|
29
|
+
return hours === 1 ? "1 hour ago" : `${hours} hours ago`;
|
|
30
30
|
}
|
|
31
31
|
if (passed < WEEK) {
|
|
32
32
|
const days = Math.floor(passed / DAY);
|
|
33
|
-
return days === 1 ? "
|
|
33
|
+
return days === 1 ? "1 day ago" : `${days} days ago`;
|
|
34
34
|
}
|
|
35
35
|
return date(at, true);
|
|
36
36
|
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import { cn } from "cn";
|
|
3
3
|
|
|
4
|
-
/**
|
|
4
|
+
/** What a surface shows while it has no content yet: ongoing work, an error or a calm notice. */
|
|
5
5
|
export interface StartupNoticeState {
|
|
6
6
|
kind: "working" | "error" | "waiting" | "stopped";
|
|
7
7
|
title: string;
|
|
8
8
|
detail: string;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
/**
|
|
11
|
+
/** The one loading state for surface, run panel and its start: title, a progress bar while work is running, below it what is happening right now. */
|
|
12
12
|
export function StartupNotice({ children, className, state }: { children?: ReactNode; className?: string; state: StartupNoticeState }) {
|
|
13
13
|
return <div aria-live="polite" className={cn("w-[min(360px,100%)] text-center text-foreground", className)} data-startup={state.kind}
|
|
14
14
|
role={state.kind === "error" ? "alert" : "status"}>
|
|
@@ -11,7 +11,7 @@ interface Mark {
|
|
|
11
11
|
readonly filled?: boolean;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
/**
|
|
14
|
+
/** Green is running, blue is moving, yellow is waiting for you, red is broken, gray is idle, muted is over; no state ever carries the stop glyph (square). */
|
|
15
15
|
const RUN_MARKS: Record<RunStateName, Mark> = {
|
|
16
16
|
running: { Icon: CirclePlayIcon, tone: "text-success" },
|
|
17
17
|
waiting: { Icon: CircleEllipsisIcon, tone: "text-warning" },
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** The vocabulary of all pages: exactly one word per state, which appears in the panel only as a title. */
|
|
2
2
|
export type RunStateName = "running" | "waiting" | "idle" | "ended" | "failed" | "cancelled";
|
|
3
3
|
|
|
4
4
|
export type ConnectionStateName =
|
|
5
5
|
| "connected" | "ready" | "starting" | "login-required" | "unreachable" | "stopped" | "failed" | "forbidden";
|
|
6
6
|
|
|
7
7
|
const RUN_WORDS: Record<RunStateName, string> = {
|
|
8
|
-
running: "
|
|
9
|
-
waiting: "
|
|
10
|
-
idle: "
|
|
11
|
-
ended: "
|
|
12
|
-
failed: "
|
|
13
|
-
cancelled: "
|
|
8
|
+
running: "running",
|
|
9
|
+
waiting: "waiting for input",
|
|
10
|
+
idle: "idle",
|
|
11
|
+
ended: "ended",
|
|
12
|
+
failed: "failed",
|
|
13
|
+
cancelled: "cancelled",
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
const CONNECTION_WORDS: Record<ConnectionStateName, string> = {
|
|
17
|
-
connected: "
|
|
18
|
-
ready: "
|
|
19
|
-
starting: "
|
|
20
|
-
"login-required": "
|
|
21
|
-
unreachable: "
|
|
22
|
-
stopped: "
|
|
23
|
-
failed: "
|
|
24
|
-
forbidden: "
|
|
17
|
+
connected: "connected",
|
|
18
|
+
ready: "ready",
|
|
19
|
+
starting: "starting",
|
|
20
|
+
"login-required": "sign-in required",
|
|
21
|
+
unreachable: "unreachable",
|
|
22
|
+
stopped: "stopped",
|
|
23
|
+
failed: "failed",
|
|
24
|
+
forbidden: "no access",
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
/**
|
|
27
|
+
/** When a run is waiting, the word names the number of open inputs; a tool name never appears in the state. */
|
|
28
28
|
export const runStateWord = (state: RunStateName, open = 0): string =>
|
|
29
29
|
state === "waiting" && open > 0 ? `${RUN_WORDS.waiting} (${open})` : RUN_WORDS[state];
|
|
30
30
|
|
|
@@ -4,14 +4,14 @@ import { cn } from "cn";
|
|
|
4
4
|
import { Button } from "./button";
|
|
5
5
|
import { Spinner } from "./spinner";
|
|
6
6
|
|
|
7
|
-
/**
|
|
7
|
+
/** The one stop glyph: a filled red square; a state icon never carries it. */
|
|
8
8
|
export function StopGlyph({ className, ...props }: Omit<ComponentProps<typeof SquareIcon>, "fill">) {
|
|
9
9
|
return <SquareIcon aria-hidden className={cn("text-destructive", className)} fill="currentColor" {...props} />;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
const stopButtonClass = "text-destructive hover:bg-destructive/10 hover:text-destructive dark:hover:bg-destructive/20";
|
|
13
13
|
|
|
14
|
-
/**
|
|
14
|
+
/** Every stop button looks the same: the glyph as the icon, the word in the tooltip, red at rest and on hover. */
|
|
15
15
|
export function StopButton({ label, busy = false, className, title, ...props }: Omit<ComponentProps<typeof Button>, "children" | "variant"> & {
|
|
16
16
|
label: string;
|
|
17
17
|
busy?: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"format":
|
|
2
|
+
"format": 5,
|
|
3
3
|
"id": "ragents.activity",
|
|
4
4
|
"api": 7,
|
|
5
5
|
"hostNames": {
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
]
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
|
-
"
|
|
26
|
-
"
|
|
25
|
+
"revision": "b7b04d050f5f4bcb0980880167b8e2cdd3ad533ba07f589dd0de471b9e55c0fd",
|
|
26
|
+
"sourceRevision": "d0f96d5406c652a4ed17f8642adfc889bb3be49fc7948f84e0f889ecb910f26e",
|
|
27
27
|
"server": "server/index.js",
|
|
28
28
|
"web": {
|
|
29
29
|
"entry": "web/index.js",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
["active","activeActivity","activity","activitySourceFrom","actor","actorFrom","actorId","actors","animate-fade-pulse","aria-hidden","aria-label","as","
|
|
1
|
+
["a","active","activeActivity","activity","activitySourceFrom","actor","actorFrom","actorId","actors","and","animate-fade-pulse","aria-hidden","aria-label","as","bg-muted-foreground","byStart","calls","className","const","current","data-kind","displayName","each","elapsed","elapsedLabel","emptySource","entries","entry","export","finishedAt","first","flex","flex-1","flex-none","from","function","gap-2","h","handle","hidden","id","if","import","in","in-data-[kind=tool]:bg-primary","inspect","interface","is","isRecord","items-baseline","items-stretch","key","kind","kindLabels","label","labelOf","left","length","live","loaded","m","min-w-0","minutes","ml-auto","more","motion-reduce:animate-none","name","needsRunView","not","now","null","number","object","oldest","open","optionalText","or","order","parsed","primaryActorId","react","readRight","readonly","return","right","role","rounded-full","run","runView","running","runningToolCalls","runningTools","runningTurns","s","seconds","self-stretch","session","sessionHeaders","setNow","shrink-0","size-1.5","source","started","startedAt","startedMillis","state","status","string","structure","tabular-nums","text-[inherit]","text-muted-foreground","that","the","then","timer","title","titleOf","tool","toolCalls","toolFrom","turn","turnFrom","turns","type","typeof","undefined","unknown","useState","value","w-45","webPlugin","whitespace-nowrap","yet","yields"]
|