@schlenkr/ragents 0.1.10 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/server/package.json +1 -1
- package/apps/server/src/access-projection.ts +4 -4
- package/apps/server/src/access-service.ts +3 -3
- package/apps/server/src/access-session.ts +19 -19
- package/apps/server/src/api/contracts.ts +29 -29
- package/apps/server/src/api/core-methods.ts +17 -17
- package/apps/server/src/api/delivery.ts +2 -2
- package/apps/server/src/api/reference.ts +27 -27
- package/apps/server/src/api/rights.ts +18 -18
- package/apps/server/src/chat-handler.ts +5 -5
- package/apps/server/src/config-definition.ts +37 -10
- package/apps/server/src/config-file.ts +49 -49
- package/apps/server/src/config.ts +2 -0
- package/apps/server/src/data-directory.ts +2 -2
- package/apps/server/src/external-access.ts +1 -1
- package/apps/server/src/folder-install.ts +1 -1
- package/apps/server/src/help-files.ts +1 -1
- package/apps/server/src/host-api.json +6 -1
- package/apps/server/src/host-api.ts +3 -2
- package/apps/server/src/host-record.ts +3 -3
- package/apps/server/src/host-resolution-hooks.mjs +4 -4
- package/apps/server/src/host-version.ts +17 -17
- package/apps/server/src/host-web.ts +5 -5
- package/apps/server/src/main.ts +6 -6
- package/apps/server/src/missing-environment.ts +6 -6
- package/apps/server/src/parent-watch.ts +4 -4
- package/apps/server/src/plugin-build/build.ts +31 -31
- package/apps/server/src/plugin-build/host-api-names.ts +7 -7
- package/apps/server/src/plugin-build/plugin-description.ts +15 -15
- package/apps/server/src/plugin-build/typecheck.ts +1 -1
- package/apps/server/src/plugin-support/actor-programs/app-project.ts +19 -19
- package/apps/server/src/plugin-support/actor-programs/client-compiler.ts +4 -4
- package/apps/server/src/plugin-support/actor-programs/client-contracts.ts +11 -11
- package/apps/server/src/plugin-support/actor-programs/contract.ts +17 -17
- package/apps/server/src/plugin-support/actor-programs/runtime-libraries.ts +1 -1
- package/apps/server/src/plugin-support/actor-programs/workflow/index.ts +5 -5
- package/apps/server/src/plugin-support/actor-programs/workflow/prompt-reader.ts +2 -2
- package/apps/server/src/plugin-support/chat-display-policy.ts +2 -2
- package/apps/server/src/plugin-support/front-matter.ts +6 -6
- package/apps/server/src/plugin-support/http.ts +2 -2
- package/apps/server/src/plugin-support/language-server/contract.ts +8 -8
- package/apps/server/src/plugin-support/language-server/plugin.ts +2 -2
- package/apps/server/src/plugin-support/language-server/snapshot-method.ts +1 -1
- package/apps/server/src/plugin-support/language-server/tools.ts +11 -11
- package/apps/server/src/plugin-support/model-aliases.ts +30 -20
- package/apps/server/src/plugin-support/model-choice.ts +15 -15
- package/apps/server/src/plugin-support/model-completion.ts +44 -23
- package/apps/server/src/plugin-support/model-providers.ts +170 -0
- package/apps/server/src/plugin-support/model-upstreams.ts +1 -1
- package/apps/server/src/plugin-support/native-typescript-child.ts +4 -4
- package/apps/server/src/plugin-support/native-typescript-executor.ts +12 -12
- package/apps/server/src/plugin-support/plugin-config.ts +3 -3
- package/apps/server/src/plugin-support/plugin-folder.ts +2 -2
- package/apps/server/src/plugin-support/plugins-root.ts +2 -2
- package/apps/server/src/plugin-support/process-sandbox.ts +39 -39
- package/apps/server/src/plugin-support/product-model-settings-contract.ts +3 -3
- package/apps/server/src/plugin-support/product-model-settings.ts +10 -10
- package/apps/server/src/plugin-support/product-relay.ts +9 -9
- package/apps/server/src/plugin-support/product-start-options.ts +4 -4
- package/apps/server/src/plugin-support/prompt.ts +1 -1
- package/apps/server/src/plugin-support/provision.ts +8 -8
- package/apps/server/src/plugin-support/run-scripts.ts +17 -17
- package/apps/server/src/plugin-support/skills.ts +18 -18
- package/apps/server/src/plugin-support/start-entries-contract.ts +17 -17
- package/apps/server/src/plugin-support/start-options-contract.ts +5 -5
- package/apps/server/src/plugin-support/system-prompts.ts +11 -11
- package/apps/server/src/plugin-support/thinking-level.ts +2 -2
- package/apps/server/src/plugin-support/tool-availability.ts +2 -2
- package/apps/server/src/plugin-support/workspace-ownership.ts +5 -5
- package/apps/server/src/plugin-support/workspace-sandbox-host.ts +37 -37
- package/apps/server/src/plugin-support/zip.ts +7 -7
- package/apps/server/src/profile/bundle-manifest.ts +17 -17
- package/apps/server/src/profile/compose.ts +12 -7
- package/apps/server/src/profile/plugin-discovery.ts +12 -12
- package/apps/server/src/profile/provisioning.ts +5 -5
- package/apps/server/src/profile-target.ts +10 -10
- package/apps/server/src/protocol.ts +2 -2
- package/apps/server/src/provider.ts +61 -56
- package/apps/server/src/ragents/actor-chat-history.ts +8 -8
- package/apps/server/src/ragents/chat-text-positions.ts +2 -2
- package/apps/server/src/ragents/coordinator.ts +2 -2
- package/apps/server/src/ragents/engine.ts +23 -23
- package/apps/server/src/ragents/global-chat.ts +8 -8
- package/apps/server/src/ragents/host-services.ts +6 -3
- package/apps/server/src/ragents/journal-chat-events.ts +1 -1
- package/apps/server/src/ragents/run-owner.ts +2 -2
- package/apps/server/src/ragents/session.ts +49 -49
- package/apps/server/src/ragents/typescript-tools.ts +12 -12
- package/apps/server/src/ragents/workspace-runtime.ts +28 -28
- package/apps/server/src/rpc/dispatcher.ts +19 -19
- package/apps/server/src/rpc/http-transport.ts +11 -11
- package/apps/server/src/rpc/stdio-transport.ts +3 -3
- package/apps/server/src/run-preparation-input.ts +5 -5
- package/apps/server/src/run-preparation.ts +24 -24
- package/apps/server/src/run-transfer.ts +39 -39
- package/apps/server/src/server.ts +48 -48
- package/apps/server/src/settings.ts +1 -1
- package/apps/server/src/startup.ts +3 -3
- package/apps/server/src/title-compactor.ts +9 -9
- package/apps/server/src/title-settings.ts +3 -3
- package/apps/server/src/web-bundles.ts +2 -2
- package/apps/server/src/web-stylesheet.ts +2 -2
- package/apps/web/dist/assets/{highlighted-body-KPVGNVTW-BO4wLQtE.js → highlighted-body-KPVGNVTW-BfNSGxjB.js} +1 -1
- package/apps/web/dist/assets/main-D6bsKcIK.js +11 -0
- package/apps/web/dist/assets/mermaid-HWGCJPDP-DROEqEeg.js +608 -0
- package/apps/web/dist/assets/runPanel-Dumuuqry.js +21 -0
- package/apps/web/dist/help/guide-access.html +5 -5
- package/apps/web/dist/help/guide-access.md +2 -2
- package/apps/web/dist/help/guide-clients.html +53 -54
- package/apps/web/dist/help/guide-clients.md +50 -51
- package/apps/web/dist/help/guide-distributed.html +12 -7
- package/apps/web/dist/help/guide-distributed.md +9 -4
- package/apps/web/dist/help/guide-functions.html +3 -3
- package/apps/web/dist/help/guide-getting-started.html +24 -15
- package/apps/web/dist/help/guide-getting-started.md +22 -12
- package/apps/web/dist/help/guide-ideas.html +3 -3
- package/apps/web/dist/help/guide-plugins.html +5 -4
- package/apps/web/dist/help/guide-plugins.md +2 -1
- package/apps/web/dist/help/guide-programs.html +3 -3
- package/apps/web/dist/help/guide-runtime.html +6 -6
- package/apps/web/dist/help/guide-runtime.md +3 -3
- package/apps/web/dist/help/guide.html +3 -3
- package/apps/web/dist/help/index.html +196 -144
- package/apps/web/dist/help/mini-app.css +6 -0
- package/apps/web/dist/help/mini-app.js +14 -14
- package/apps/web/dist/host-web.json +90 -90
- package/apps/web/dist/index.html +3 -3
- package/apps/web/dist/run-panel.html +3 -3
- package/apps/web/package.json +1 -1
- package/apps/web/src/AccessContext.tsx +15 -15
- package/apps/web/src/App.tsx +13 -13
- package/apps/web/src/DiffCode.tsx +2 -2
- package/apps/web/src/HelpDialog.tsx +3 -3
- package/apps/web/src/Overview.tsx +13 -13
- package/apps/web/src/PluginActivation.ts +1 -1
- package/apps/web/src/PluginChat.tsx +15 -15
- package/apps/web/src/PluginFailureNotice.tsx +1 -1
- package/apps/web/src/PluginRegistry.tsx +44 -44
- package/apps/web/src/RunPreparationChat.tsx +11 -11
- package/apps/web/src/RunStore.ts +1 -1
- package/apps/web/src/SessionList.tsx +14 -14
- package/apps/web/src/SettingsModal.tsx +112 -112
- package/apps/web/src/StartOptions.tsx +11 -11
- package/apps/web/src/StartSelection.tsx +11 -11
- package/apps/web/src/StartTiles.tsx +8 -8
- package/apps/web/src/SurfaceShortcuts.tsx +3 -3
- package/apps/web/src/ThemeSettings.tsx +8 -8
- package/apps/web/src/TitleModelSettings.tsx +13 -13
- package/apps/web/src/WorkspacePanel.tsx +9 -9
- package/apps/web/src/access-session.ts +4 -4
- package/apps/web/src/access-token.ts +5 -5
- package/apps/web/src/actor-conversation.ts +3 -3
- package/apps/web/src/actor-programs/client-ui/DataTable.tsx +8 -8
- package/apps/web/src/actor-programs/client-ui/FilePicker.tsx +4 -4
- package/apps/web/src/actor-programs/client-ui/FlowDiagram.tsx +13 -13
- package/apps/web/src/actor-programs/client-ui/Viewers.tsx +4 -4
- package/apps/web/src/actor-programs/client-ui/WorkflowDiagram.tsx +1 -1
- package/apps/web/src/actor-programs/client-ui/file-contracts.d.ts +4 -4
- package/apps/web/src/actor-programs/client-ui/file-selection.ts +1 -1
- package/apps/web/src/actor-programs/client-ui/viewer-contracts.d.ts +3 -3
- package/apps/web/src/api.ts +7 -7
- package/apps/web/src/chat/StoppedActorNotice.tsx +5 -5
- package/apps/web/src/chat/chat-target.ts +3 -3
- package/apps/web/src/chat/requests.ts +2 -2
- package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
- package/apps/web/src/chat-view-settings.tsx +5 -6
- package/apps/web/src/diff-view.css +1 -1
- package/apps/web/src/highlighting.css +1 -1
- package/apps/web/src/language-server/language-server-plugin.tsx +30 -30
- package/apps/web/src/lib/labels.ts +6 -6
- package/apps/web/src/main.tsx +4 -4
- package/apps/web/src/offered-machines.ts +2 -2
- package/apps/web/src/page-opener.tsx +1 -1
- package/apps/web/src/panel/ConnectionsPage.tsx +23 -23
- package/apps/web/src/panel/LoginForm.tsx +6 -6
- package/apps/web/src/panel/PanelDialogs.tsx +22 -22
- package/apps/web/src/panel/PanelHeader.tsx +2 -2
- package/apps/web/src/panel/PanelPage.tsx +1 -1
- package/apps/web/src/panel/RunLine.tsx +4 -4
- package/apps/web/src/panel/RunsPage.tsx +15 -15
- package/apps/web/src/panel/StartPage.tsx +26 -26
- package/apps/web/src/panel/connection-state.ts +9 -9
- package/apps/web/src/panel/contract.ts +28 -28
- package/apps/web/src/panel.tsx +1 -1
- package/apps/web/src/plugin-bootstrap.ts +5 -5
- package/apps/web/src/product/ModelControl.tsx +3 -3
- package/apps/web/src/product/ProductModelSettings.tsx +16 -16
- package/apps/web/src/product/SystemPromptControl.tsx +11 -11
- package/apps/web/src/product/model-settings.ts +2 -2
- package/apps/web/src/rpc/client.ts +16 -16
- package/apps/web/src/rpc.ts +1 -1
- package/apps/web/src/run-overview.ts +1 -1
- package/apps/web/src/run-panel/RunPanelApp.tsx +39 -39
- package/apps/web/src/run-panel/RunPanelHeader.tsx +6 -6
- package/apps/web/src/run-panel/RunPanelMenu.tsx +6 -6
- package/apps/web/src/run-panel/RunPanelRail.tsx +4 -4
- package/apps/web/src/run-panel/RunPanelWorkspace.tsx +3 -3
- package/apps/web/src/run-panel/clipboard.ts +3 -3
- package/apps/web/src/run-panel/host-contract.ts +5 -5
- package/apps/web/src/run-panel/host.ts +15 -15
- package/apps/web/src/run-panel/input-bridge.ts +1 -1
- package/apps/web/src/run-panel/run-panel-location.ts +5 -5
- package/apps/web/src/run-panel/use-session-list.ts +1 -1
- package/apps/web/src/run-panel/workspace-state.ts +3 -3
- package/apps/web/src/run-panel.tsx +4 -4
- package/apps/web/src/run-preparation.ts +2 -2
- package/apps/web/src/run-view.ts +3 -3
- package/apps/web/src/settings-contributions.ts +32 -32
- package/apps/web/src/theme.ts +9 -9
- package/apps/web/src/title-model-settings.ts +6 -6
- package/apps/web/src/ui/ListDetail.tsx +9 -9
- package/apps/web/src/ui/dialog.tsx +2 -2
- package/apps/web/src/ui/modal-controller.ts +3 -3
- package/apps/web/src/ui/modal.tsx +2 -2
- package/apps/web/src/ui/popover.tsx +1 -1
- package/apps/web/src/ui/relative-time.ts +8 -8
- package/apps/web/src/ui/startup-notice.tsx +2 -2
- package/apps/web/src/ui/state-icon.tsx +1 -1
- package/apps/web/src/ui/state-vocabulary.ts +16 -16
- package/apps/web/src/ui/stop-button.tsx +2 -2
- package/bundles/ragents.activity/ragents-bundle.json +2 -2
- package/bundles/ragents.activity/web/classes.json +1 -1
- package/bundles/ragents.activity/web/index.js +1 -1
- package/bundles/ragents.activity/web/index.js.map +2 -2
- package/bundles/ragents.actor-programs/ragents-bundle.json +2 -2
- package/bundles/ragents.actor-programs/server/index.js +225 -225
- package/bundles/ragents.actor-programs/server/index.js.map +2 -2
- package/bundles/ragents.actor-programs/web/classes.json +1 -1
- package/bundles/ragents.actor-programs/web/index.js +1 -1
- package/bundles/ragents.actor-programs/web/index.js.map +3 -3
- package/bundles/ragents.ask/ragents-bundle.json +2 -2
- package/bundles/ragents.ask/server/chunks/{chunk-PDJO75SQ.js → chunk-YOV27MAR.js} +2 -2
- package/bundles/ragents.ask/server/chunks/chunk-YOV27MAR.js.map +7 -0
- package/bundles/ragents.ask/server/exports/server/contract.js +1 -1
- package/bundles/ragents.ask/server/index.js +23 -23
- package/bundles/ragents.ask/server/index.js.map +2 -2
- package/bundles/ragents.ask/web/chunks/{chunk-WFN4374U.js → chunk-D6NNB5DS.js} +1 -1
- package/bundles/ragents.ask/web/chunks/chunk-D6NNB5DS.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/{chunk-MBRPS477.js → chunk-IQBHK7MV.js} +2 -2
- package/bundles/ragents.ask/web/chunks/{chunk-MBRPS477.js.map → chunk-IQBHK7MV.js.map} +3 -3
- package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js.map +7 -0
- package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js +2 -0
- package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js.map +7 -0
- package/bundles/ragents.ask/web/classes.json +1 -1
- package/bundles/ragents.ask/web/exports/ask-payload.js +1 -1
- package/bundles/ragents.ask/web/exports/web/QuestionCard.js +1 -1
- package/bundles/ragents.ask/web/exports/web/api.js +1 -1
- package/bundles/ragents.ask/web/index.js +1 -1
- package/bundles/ragents.ask/web/index.js.map +2 -2
- package/bundles/ragents.browser/executor/index.mjs +35 -35
- package/bundles/ragents.browser/executor/index.mjs.map +2 -2
- package/bundles/ragents.browser/ragents-bundle.json +2 -2
- package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js → chunk-PYEISBNE.js} +1 -1
- package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js.map → chunk-PYEISBNE.js.map} +1 -1
- package/bundles/ragents.browser/server/exports/server/contract.js +1 -1
- package/bundles/ragents.browser/server/index.js +31 -31
- package/bundles/ragents.browser/server/index.js.map +2 -2
- package/bundles/ragents.browser/skills/browser-testing/SKILL.md +30 -30
- package/bundles/ragents.documents/prompt.hbs +1 -1
- package/bundles/ragents.documents/ragents-bundle.json +2 -2
- package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js → chunk-KMZWOVTI.js} +3 -3
- package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js.map → chunk-KMZWOVTI.js.map} +2 -2
- package/bundles/ragents.documents/server/exports/contract.js +1 -1
- package/bundles/ragents.documents/server/index.js +26 -26
- package/bundles/ragents.documents/server/index.js.map +2 -2
- package/bundles/ragents.documents/web/classes.json +1 -1
- package/bundles/ragents.documents/web/index.js +1 -1
- package/bundles/ragents.documents/web/index.js.map +3 -3
- package/bundles/ragents.lsp-fsharp/executor/index.mjs +4 -4
- package/bundles/ragents.lsp-fsharp/executor/index.mjs.map +2 -2
- package/bundles/ragents.lsp-fsharp/ragents-bundle.json +2 -2
- package/bundles/ragents.lsp-fsharp/server/index.js +5 -5
- package/bundles/ragents.lsp-fsharp/server/index.js.map +2 -2
- package/bundles/ragents.lsp-fsharp/web/index.js +1 -1
- package/bundles/ragents.lsp-fsharp/web/index.js.map +2 -2
- package/bundles/ragents.lsp-roslyn/executor/index.mjs +3 -3
- package/bundles/ragents.lsp-roslyn/executor/index.mjs.map +2 -2
- package/bundles/ragents.lsp-roslyn/ragents-bundle.json +2 -2
- package/bundles/ragents.lsp-roslyn/server/index.js +17 -17
- package/bundles/ragents.lsp-roslyn/server/index.js.map +2 -2
- package/bundles/ragents.lsp-roslyn/web/index.js +1 -1
- package/bundles/ragents.lsp-roslyn/web/index.js.map +2 -2
- package/bundles/ragents.lsp-typescript/executor/index.mjs +2 -2
- package/bundles/ragents.lsp-typescript/executor/index.mjs.map +2 -2
- package/bundles/ragents.lsp-typescript/ragents-bundle.json +2 -2
- package/bundles/ragents.lsp-typescript/server/index.js.map +1 -1
- package/bundles/ragents.lsp-typescript/web/index.js +1 -1
- package/bundles/ragents.lsp-typescript/web/index.js.map +2 -2
- package/bundles/ragents.model-relay/ragents-bundle.json +7 -3
- package/bundles/ragents.model-relay/server/index.js +25 -21
- package/bundles/ragents.model-relay/server/index.js.map +2 -2
- package/bundles/ragents.orchestration/ragents-bundle.json +2 -2
- package/bundles/ragents.orchestration/server/index.js +28 -28
- package/bundles/ragents.orchestration/server/index.js.map +2 -2
- package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js → chunk-CFMJD5ZI.js} +2 -2
- package/bundles/ragents.orchestration/web/chunks/chunk-HOBLI364.js +2 -0
- package/bundles/ragents.orchestration/web/chunks/{chunk-OQYCNYXN.js.map → chunk-HOBLI364.js.map} +2 -2
- package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js → chunk-UCIMT2R4.js} +2 -2
- package/bundles/ragents.orchestration/web/classes.json +1 -1
- package/bundles/ragents.orchestration/web/exports/web/program-slot.js +1 -1
- package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +1 -1
- package/bundles/ragents.orchestration/web/index.js +8 -8
- package/bundles/ragents.orchestration/web/index.js.map +2 -2
- package/bundles/ragents.overseer/ragents-bundle.json +2 -2
- package/bundles/ragents.overseer/server/index.js +98 -98
- package/bundles/ragents.overseer/server/index.js.map +2 -2
- package/bundles/ragents.overseer/web/classes.json +1 -1
- package/bundles/ragents.overseer/web/index.js +1 -1
- package/bundles/ragents.overseer/web/index.js.map +2 -2
- package/bundles/ragents.processes/ragents-bundle.json +2 -2
- package/bundles/ragents.processes/server/index.js +11 -11
- package/bundles/ragents.processes/server/index.js.map +2 -2
- package/bundles/ragents.processes/web/classes.json +1 -1
- package/bundles/ragents.processes/web/index.js +3 -3
- package/bundles/ragents.processes/web/index.js.map +2 -2
- package/bundles/ragents.product/ragents-bundle.json +2 -2
- package/bundles/ragents.product/server/index.js +12 -13
- package/bundles/ragents.product/server/index.js.map +2 -2
- package/bundles/ragents.product/web/classes.json +1 -1
- package/bundles/ragents.product/web/index.js +1 -1
- package/bundles/ragents.product/web/index.js.map +2 -2
- package/bundles/ragents.profile-distribution/ragents-bundle.json +2 -2
- package/bundles/ragents.profile-distribution/server/index.js +31 -31
- package/bundles/ragents.profile-distribution/server/index.js.map +2 -2
- package/bundles/ragents.reference/ragents-bundle.json +2 -2
- package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
- package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
- package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
- package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
- package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
- package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
- package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
- package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
- package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
- package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
- package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
- package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
- package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
- package/bundles/ragents.reference/run-scripts/moderated-round/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
- package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
- package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
- package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
- package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
- package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
- package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
- package/bundles/ragents.reference/run-scripts/word-game/RUN.md +18 -18
- package/bundles/ragents.reference/run-scripts/word-game/package.json +2 -2
- package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
- package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
- package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
- package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
- package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
- package/bundles/ragents.reference/skills/decision-brief/SKILL.md +24 -24
- package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
- package/bundles/ragents.reference/web/classes.json +1 -1
- package/bundles/ragents.reference/web/index.js +1 -1
- package/bundles/ragents.reference/web/index.js.map +2 -2
- package/bundles/ragents.todo/ragents-bundle.json +2 -2
- package/bundles/ragents.todo/server/index.js +5 -5
- package/bundles/ragents.todo/server/index.js.map +2 -2
- package/bundles/ragents.todo/web/classes.json +1 -1
- package/bundles/ragents.todo/web/index.js +1 -1
- package/bundles/ragents.todo/web/index.js.map +2 -2
- package/bundles/ragents.transcript/ragents-bundle.json +2 -2
- package/bundles/ragents.transcript/server/index.js +11 -11
- package/bundles/ragents.transcript/server/index.js.map +2 -2
- package/bundles/ragents.watch/ragents-bundle.json +2 -2
- package/bundles/ragents.watch/server/index.js +48 -48
- package/bundles/ragents.watch/server/index.js.map +2 -2
- package/bundles/ragents.workspace/ragents-bundle.json +2 -2
- package/bundles/ragents.workspace/server/index.js +81 -81
- package/bundles/ragents.workspace/server/index.js.map +2 -2
- package/bundles/ragents.workspace/web/classes.json +1 -1
- package/bundles/ragents.workspace/web/index.js +1 -1
- package/bundles/ragents.workspace/web/index.js.map +2 -2
- package/package.json +4 -4
- package/packages/agent/dist/core/model-runtime.d.ts +7 -2
- package/packages/agent/dist/index.d.ts +1 -1
- package/packages/agent/dist/loop/agent-loop.d.ts +2 -2
- package/packages/agent/src/core/compaction/utils.ts +1 -1
- package/packages/agent/src/core/model-runtime.ts +45 -5
- package/packages/agent/src/index.ts +1 -1
- package/packages/agent/src/loop/agent-loop.ts +2 -2
- package/packages/ai/dist/models.d.ts +1 -0
- package/packages/ai/dist/models.generated.d.ts +4544 -983
- package/packages/ai/dist/providers/openrouter.models.d.ts +4544 -983
- package/packages/ai/src/api/ai-sdk.ts +33 -7
- package/packages/ai/src/api-registry.ts +1 -1
- package/packages/ai/src/index.ts +2 -2
- package/packages/ai/src/models.generated.ts +1 -1
- package/packages/ai/src/models.ts +1 -1
- package/packages/ai/src/providers/openrouter.models.ts +3723 -550
- package/packages/ragents/src/access.ts +12 -12
- package/packages/ragents/src/agents/actor-input.ts +33 -33
- package/packages/ragents/src/agents/catalog.ts +1 -1
- package/packages/ragents/src/agents/delivery.ts +17 -17
- package/packages/ragents/src/agents/plugins.ts +1 -1
- package/packages/ragents/src/agents/scheduler.ts +7 -7
- package/packages/ragents/src/agents/schemas.ts +1 -1
- package/packages/ragents/src/agents/tool-orientation.ts +4 -4
- package/packages/ragents/src/agents/tools.ts +20 -20
- package/packages/ragents/src/agents/toolset.ts +5 -5
- package/packages/ragents/src/agents/workspaces.ts +1 -1
- package/packages/ragents/src/domain/events.ts +1 -1
- package/packages/ragents/src/domain/model.ts +5 -5
- package/packages/ragents/src/drivers/agent-runtime.ts +1 -1
- package/packages/ragents/src/drivers/agent-turn.ts +4 -4
- package/packages/ragents/src/drivers/agent.ts +2 -2
- package/packages/ragents/src/drivers/attachments.ts +4 -4
- package/packages/ragents/src/http/contracts.ts +14 -14
- package/packages/ragents/src/http/methods.ts +6 -6
- package/packages/ragents/src/plugin-host.ts +119 -119
- package/packages/ragents/src/plugin-types.ts +16 -16
- package/packages/ragents/src/rpc/contract.ts +5 -5
- package/packages/ragents/src/rpc/contribution.ts +2 -2
- package/packages/ragents/src/rpc/peer.ts +11 -11
- package/packages/ragents/src/rpc/protocol.ts +2 -2
- package/packages/ragents/src/runtime/decisions/turns.ts +1 -1
- package/packages/ragents/src/runtime/journal.ts +10 -10
- package/packages/ragents/src/runtime/orchestration.ts +8 -8
- package/packages/ragents/src/runtime/stop.ts +2 -2
- package/packages/ragents/src/script/mediators.ts +35 -35
- package/packages/ragents/src/typescript/async-compiler.ts +14 -14
- package/packages/ragents/src/typescript/compiler-worker.ts +2 -2
- package/packages/ragents/src/typescript/compiler.ts +7 -7
- package/packages/ragents/src/typescript/snippet.ts +5 -5
- package/packages/workspace-executor/src/bash-launch.ts +13 -13
- package/packages/workspace-executor/src/commands.ts +18 -18
- package/packages/workspace-executor/src/context.ts +15 -15
- package/packages/workspace-executor/src/contributions.ts +35 -35
- package/packages/workspace-executor/src/errors.ts +1 -1
- package/packages/workspace-executor/src/executor.ts +15 -15
- package/packages/workspace-executor/src/files.ts +30 -30
- package/packages/workspace-executor/src/language-server/contract.ts +2 -2
- package/packages/workspace-executor/src/language-server/diagnostics.ts +4 -4
- package/packages/workspace-executor/src/language-server/host.ts +35 -35
- package/packages/workspace-executor/src/language-server/json-rpc.ts +4 -4
- package/packages/workspace-executor/src/language-server/module.ts +11 -11
- package/packages/workspace-executor/src/language-server/roots.ts +3 -3
- package/packages/workspace-executor/src/language-server/session.ts +15 -15
- package/packages/workspace-executor/src/language-server/workspace-solutions.ts +2 -2
- package/packages/workspace-executor/src/managed-process.ts +12 -12
- package/packages/workspace-executor/src/module.ts +8 -8
- package/packages/workspace-executor/src/modules.ts +3 -3
- package/packages/workspace-executor/src/paths.ts +11 -11
- package/packages/workspace-executor/src/process-sandbox.ts +3 -3
- package/packages/workspace-executor/src/processes/module.ts +3 -3
- package/packages/workspace-executor/src/processes/process-table.ts +20 -20
- package/packages/workspace-executor/src/processes/scanner.ts +3 -3
- package/packages/workspace-executor/src/processes/snapshot.ts +2 -2
- package/packages/workspace-executor/src/processes/terminator.ts +13 -13
- package/packages/workspace-executor/src/run-folders.ts +3 -3
- package/packages/workspace-executor/src/safe-environment.ts +4 -4
- package/packages/workspace-executor/src/sandbox-tools.ts +28 -28
- package/packages/workspace-executor/src/session-ident.ts +2 -2
- package/packages/workspace-executor/src/shell-platform.ts +2 -2
- package/packages/workspace-executor/src/tools.ts +5 -5
- package/plugins/ragents.activity/web/ActivityHeader.tsx +3 -3
- package/plugins/ragents.activity/web/activity.ts +2 -2
- package/plugins/ragents.actor-programs/server/access-projections.ts +1 -1
- package/plugins/ragents.actor-programs/server/agent-tools.ts +2 -2
- package/plugins/ragents.actor-programs/server/capability-resolver.ts +3 -3
- package/plugins/ragents.actor-programs/server/controls-template.ts +46 -46
- package/plugins/ragents.actor-programs/server/controls-tool.ts +4 -4
- package/plugins/ragents.actor-programs/server/limits.ts +3 -3
- package/plugins/ragents.actor-programs/server/methods.ts +1 -1
- package/plugins/ragents.actor-programs/server/project-diagnostics.ts +8 -8
- package/plugins/ragents.actor-programs/server/routes.ts +8 -8
- package/plugins/ragents.actor-programs/server/runtime.ts +90 -90
- package/plugins/ragents.actor-programs/server/templates.ts +59 -59
- package/plugins/ragents.actor-programs/server/test-report.ts +5 -5
- package/plugins/ragents.actor-programs/server/tool-contributor.ts +1 -1
- package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +17 -17
- package/plugins/ragents.actor-programs/web/AppsPanel.tsx +26 -26
- package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +3 -3
- package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +2 -2
- package/plugins/ragents.actor-programs/web/FunctionForm.tsx +16 -16
- package/plugins/ragents.actor-programs/web/ProgramSource.tsx +5 -5
- package/plugins/ragents.actor-programs/web/api.ts +36 -36
- package/plugins/ragents.actor-programs/web/bridge.ts +8 -8
- package/plugins/ragents.actor-programs/web/chat-state.ts +4 -4
- package/plugins/ragents.actor-programs/web/context.ts +1 -1
- package/plugins/ragents.actor-programs/web/function-input.ts +6 -6
- package/plugins/ragents.actor-programs/web/index.tsx +1 -1
- package/plugins/ragents.actor-programs/web/program-state.ts +4 -4
- package/plugins/ragents.ask/ask-payload.ts +1 -1
- package/plugins/ragents.ask/contract.ts +5 -5
- package/plugins/ragents.ask/server/answer-method.ts +1 -1
- package/plugins/ragents.ask/server/ask-service.ts +9 -9
- package/plugins/ragents.ask/server/ask-tool.ts +10 -10
- package/plugins/ragents.ask/server/contract.ts +5 -5
- package/plugins/ragents.ask/web/AskActionView.tsx +1 -1
- package/plugins/ragents.ask/web/QuestionCard.tsx +22 -22
- package/plugins/ragents.ask/web/index.tsx +2 -2
- package/plugins/ragents.browser/executor/contract.ts +6 -6
- package/plugins/ragents.browser/executor/index.ts +1 -1
- package/plugins/ragents.browser/executor/module.ts +6 -6
- package/plugins/ragents.browser/executor/pages.ts +32 -32
- package/plugins/ragents.browser/executor/playwright.ts +8 -8
- package/plugins/ragents.browser/provision.ts +7 -7
- package/plugins/ragents.browser/server/browser.ts +14 -14
- package/plugins/ragents.browser/server/contract.ts +1 -1
- package/plugins/ragents.browser/server/index.ts +1 -1
- package/plugins/ragents.browser/server/tools.ts +14 -14
- package/plugins/ragents.browser/skills/browser-testing/SKILL.md +30 -30
- package/plugins/ragents.documents/contract.ts +2 -2
- package/plugins/ragents.documents/prompt.hbs +1 -1
- package/plugins/ragents.documents/server/document-write-tool.ts +12 -12
- package/plugins/ragents.documents/server/files-route.ts +6 -6
- package/plugins/ragents.documents/server/show-document-tool.ts +26 -26
- package/plugins/ragents.documents/server/store.ts +1 -1
- package/plugins/ragents.documents/web/DocumentViewer.tsx +37 -37
- package/plugins/ragents.documents/web/index.tsx +11 -11
- package/plugins/ragents.lsp-fsharp/executor.ts +7 -7
- package/plugins/ragents.lsp-fsharp/provision.ts +7 -7
- package/plugins/ragents.lsp-roslyn/executor.ts +5 -5
- package/plugins/ragents.lsp-roslyn/provision.ts +4 -4
- package/plugins/ragents.lsp-roslyn/server/index.ts +5 -5
- package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +13 -13
- package/plugins/ragents.lsp-typescript/executor.ts +3 -3
- package/plugins/ragents.model-relay/server/config.ts +6 -2
- package/plugins/ragents.model-relay/server/index.ts +2 -2
- package/plugins/ragents.model-relay/server/relay.ts +23 -22
- package/plugins/ragents.orchestration/contract.ts +8 -8
- package/plugins/ragents.orchestration/server/index.ts +4 -4
- package/plugins/ragents.orchestration/server/run-stop-tool.ts +3 -3
- package/plugins/ragents.orchestration/server/surface-tool.ts +5 -5
- package/plugins/ragents.orchestration/tiled-layout.ts +11 -11
- package/plugins/ragents.orchestration/web/ActorChat.tsx +2 -2
- package/plugins/ragents.orchestration/web/ActorChatControls.tsx +4 -4
- package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +1 -1
- package/plugins/ragents.orchestration/web/ActorPopout.tsx +1 -1
- package/plugins/ragents.orchestration/web/ActorShortcut.tsx +6 -6
- package/plugins/ragents.orchestration/web/ActorSurfaceControls.tsx +15 -15
- package/plugins/ragents.orchestration/web/Center.tsx +5 -5
- package/plugins/ragents.orchestration/web/DocumentsSection.tsx +2 -2
- package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +15 -15
- package/plugins/ragents.orchestration/web/FlowInspector.tsx +103 -103
- package/plugins/ragents.orchestration/web/JournalStatus.tsx +11 -11
- package/plugins/ragents.orchestration/web/MaterialBody.tsx +2 -2
- package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
- package/plugins/ragents.orchestration/web/TiledSurface.tsx +9 -9
- package/plugins/ragents.orchestration/web/actor-header-settings.ts +5 -5
- package/plugins/ragents.orchestration/web/constants.ts +2 -2
- package/plugins/ragents.orchestration/web/executions.ts +6 -6
- package/plugins/ragents.orchestration/web/format.ts +1 -1
- package/plugins/ragents.orchestration/web/index.tsx +2 -2
- package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +7 -7
- package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +8 -8
- package/plugins/ragents.orchestration/web/run-panel/RunPanel.tsx +22 -22
- package/plugins/ragents.orchestration/web/run-panel/RunPanelSettings.tsx +7 -7
- package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +13 -13
- package/plugins/ragents.orchestration/web/run-panel/run-panel-actors.ts +3 -3
- package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +2 -2
- package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +3 -3
- package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +7 -7
- package/plugins/ragents.orchestration/web/run-panel/sheet-status.ts +9 -9
- package/plugins/ragents.orchestration/web/surface-startup.ts +8 -8
- package/plugins/ragents.orchestration/web/surface-view-settings.ts +1 -1
- package/plugins/ragents.orchestration/web/tiled-view-settings.ts +1 -1
- package/plugins/ragents.overseer/contract.ts +20 -20
- package/plugins/ragents.overseer/server/api.ts +6 -6
- package/plugins/ragents.overseer/server/coordinator-prompt.ts +10 -10
- package/plugins/ragents.overseer/server/coordinator.ts +4 -4
- package/plugins/ragents.overseer/server/index.ts +24 -24
- package/plugins/ragents.overseer/server/orientation.ts +8 -8
- package/plugins/ragents.overseer/server/quick-answer.ts +9 -9
- package/plugins/ragents.overseer/server/run-directory.ts +5 -5
- package/plugins/ragents.overseer/server/settings.ts +6 -6
- package/plugins/ragents.overseer/server/user-location.ts +16 -16
- package/plugins/ragents.overseer/web/ModelSettings.tsx +9 -9
- package/plugins/ragents.overseer/web/index.tsx +20 -20
- package/plugins/ragents.overseer/web/model-settings.ts +1 -1
- package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
- package/plugins/ragents.processes/contract.ts +5 -5
- package/plugins/ragents.processes/server/methods.ts +4 -4
- package/plugins/ragents.processes/server/observer.ts +8 -8
- package/plugins/ragents.processes/server/run-processes.ts +2 -2
- package/plugins/ragents.processes/web/ProcessHeader.tsx +10 -10
- package/plugins/ragents.processes/web/processes.ts +10 -10
- package/plugins/ragents.product/server/config.ts +1 -1
- package/plugins/ragents.product/server/index.ts +4 -4
- package/plugins/ragents.product/server/runtime.ts +9 -10
- package/plugins/ragents.product/web/index.tsx +1 -1
- package/plugins/ragents.profile-distribution/contract.ts +10 -10
- package/plugins/ragents.profile-distribution/server/archive.ts +20 -20
- package/plugins/ragents.profile-distribution/server/config.ts +2 -2
- package/plugins/ragents.profile-distribution/server/index.ts +4 -4
- package/plugins/ragents.reference/examples.ts +27 -27
- package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
- package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
- package/plugins/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
- package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
- package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
- package/plugins/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
- package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
- package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
- package/plugins/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
- package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
- package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
- package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
- package/plugins/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
- package/plugins/ragents.reference/run-scripts/moderated-round/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
- package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
- package/plugins/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
- package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
- package/plugins/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
- package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
- package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
- package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
- package/plugins/ragents.reference/run-scripts/word-game/RUN.md +18 -18
- package/plugins/ragents.reference/run-scripts/word-game/package.json +2 -2
- package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
- package/plugins/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
- package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
- package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
- package/plugins/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
- package/plugins/ragents.reference/skills/decision-brief/SKILL.md +24 -24
- package/plugins/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
- package/plugins/ragents.reference/walkthroughs.ts +128 -128
- package/plugins/ragents.reference/web/StartGuides.tsx +23 -23
- package/plugins/ragents.todo/server/todo-tool.ts +6 -6
- package/plugins/ragents.todo/web/TodoSection.tsx +1 -1
- package/plugins/ragents.transcript/server/transcript.ts +11 -11
- package/plugins/ragents.watch/server/condition.ts +4 -4
- package/plugins/ragents.watch/server/functions.ts +27 -27
- package/plugins/ragents.watch/server/observation.ts +2 -2
- package/plugins/ragents.watch/server/service.ts +14 -14
- package/plugins/ragents.workspace/client/transport.ts +1 -1
- package/plugins/ragents.workspace/client/workspace-client.ts +54 -54
- package/plugins/ragents.workspace/contract.ts +46 -46
- package/plugins/ragents.workspace/server/binding.ts +20 -20
- package/plugins/ragents.workspace/server/browse-route.ts +8 -8
- package/plugins/ragents.workspace/server/clients.ts +42 -42
- package/plugins/ragents.workspace/server/config.ts +7 -7
- package/plugins/ragents.workspace/server/index.ts +3 -3
- package/plugins/ragents.workspace/server/runtime.ts +26 -26
- package/plugins/ragents.workspace/server/shell-platform.ts +1 -1
- package/plugins/ragents.workspace/web/FileBrowser.tsx +10 -10
- package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +24 -24
- package/plugins/ragents.workspace/web/index.tsx +1 -1
- package/ragents.config.core.ts +1 -1
- package/ragents.config.developer.ts +3 -3
- package/ragents.config.showcase.ts +2 -2
- package/scripts/agent/agent-cli.ts +96 -96
- package/scripts/agent/journal.ts +5 -5
- package/scripts/agent/turn-control.ts +4 -4
- package/scripts/package/build-package.ts +29 -29
- package/scripts/package/host-links.mjs +3 -3
- package/scripts/package/publish-package.ts +29 -29
- package/scripts/package/ragents.mjs +19 -19
- package/scripts/plugin/build-builtin-plugins.ts +5 -5
- package/scripts/plugin/plugin-cli.ts +14 -14
- package/scripts/provision/run-provision.ts +14 -15
- package/scripts/remote/connect.ts +46 -46
- package/scripts/remote/start.ts +18 -18
- package/scripts/workspace-client/run-workspace-client.ts +23 -23
- package/apps/web/dist/assets/main-DnnqWHkH.js +0 -11
- package/apps/web/dist/assets/mermaid-HWGCJPDP-BLLeth5_.js +0 -568
- package/apps/web/dist/assets/runPanel-DPm7s3KM.js +0 -21
- package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +0 -7
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +0 -2
- package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +0 -7
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +0 -2
- package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +0 -7
- package/bundles/ragents.ask/web/chunks/chunk-WFN4374U.js.map +0 -7
- package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +0 -2
- /package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js.map → chunk-CFMJD5ZI.js.map} +0 -0
- /package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js.map → chunk-UCIMT2R4.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../plugins/ragents.lsp-fsharp/server/index.ts", "../../../plugins/ragents.lsp-fsharp/executor.ts", "../../../plugins/ragents.lsp-fsharp/provision.ts"],
|
|
4
|
-
"sourcesContent": ["import { createLanguageServerPlugin } from \"@ragents/host/plugin-support/language-server/plugin.js\";\nimport type { PluginModule } from \"@ragents/host/plugin-support/plugin-module.js\";\nimport { fsharpLanguageServer, FSHARP_SERVER_VARIABLE } from \"../executor.js\";\n\nexport const fsharpConfigDescriptors = [\n { key: FSHARP_SERVER_VARIABLE, source: \"environment\" },\n] as const;\n\nexport const plugin: PluginModule = {\n create: () => createLanguageServerPlugin({\n id: \"ragents.lsp-fsharp\",\n languageServer: fsharpLanguageServer,\n tabLabel: \"F#\",\n configDescriptors: fsharpConfigDescriptors,\n }),\n};\n", "import { existsSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { LanguageServerDescription, WorkspaceExecutorContribution } from \"@ragents/workspace-executor\";\n\nexport const FSHARP_SERVER_VARIABLE = \"FSHARP_LANGUAGE_SERVER\";\nexport const FSHARP_SERVER_FILE = \"fsautocomplete/fsautocomplete.dll\";\n\nconst languages = { \".fs\": \"fsharp\", \".fsi\": \"fsharp\", \".fsx\": \"fsharp\" } as const;\n\nexport const fsharpLanguageServer: LanguageServerDescription = {\n id: \"fsharp\",\n label: \"FSAC\",\n languages,\n rootDescription: \"the .sln file (or a single .fsproj)\",\n};\n\nconst PROJECT_LINE = /^Project\\(\"\\{[^}]+\\}\"\\)\\s*=\\s*\"[^\"]*\",\\s*\"([^\"]+)\"/gm;\n\n/**
|
|
5
|
-
"mappings": ";;;;AAAA,SAAS,kCAAkC;;;ACA3C,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AACzB,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAGvB,IAAM,yBAAyB;AAC/B,IAAM,qBAAqB;AAElC,IAAM,YAAY,EAAE,OAAO,UAAU,QAAQ,UAAU,QAAQ,SAAS;AAEjE,IAAM,uBAAkD;AAAA,EAC7D,IAAI;AAAA,EACJ,OAAO;AAAA,EACP;AAAA,EACA,iBAAiB;AACnB;;;ADZO,IAAM,0BAA0B;AAAA,EACrC,EAAE,KAAK,wBAAwB,QAAQ,cAAc;AACvD;AAEO,IAAM,SAAuB;AAAA,EAClC,QAAQ,MAAM,2BAA2B;AAAA,IACvC,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,mBAAmB;AAAA,EACrB,CAAC;AACH;;;AEfA,SAAS,YAAY;AACrB,OAAOA,WAAU;AACjB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAGA,IAAM,yBAAyB;AAEtC,IAAM,OAAO;AACb,IAAM,UAAU;AAChB,IAAM,cAAc;AAEb,IAAM,2BAA2B,GAAG,IAAI,IAAI,OAAO,IAAI,sBAAsB,IAAI,OAAO,IAAI,sBAAsB;AAGzH,IAAM,aAAa,CAAC,OAA0B,WAAsC;AAClF,QAAM,UAAU,MACb,IAAI,CAAC,SAAS,YAAY,KAAK,IAAI,CAAC,EACpC,OAAO,CAAC,UAAoC,UAAU,IAAI,EAC1D,IAAI,CAAC,WAAW,EAAE,QAAQ,MAAM,CAAC,GAAG,OAAO,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE;AACjE,QAAM,SAAS,QAAQ,OAAO,CAAC,UAAU,OAAO,SAAS,MAAM,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,UAAU,MAAM,QAAQ,KAAK,KAAK;AACrH,QAAM,SAAS,OAAO,CAAC;AACvB,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,GAAG,OAAO,IAAI,sBAAsB,eAAe,CAAC,GAAG,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,MAAM,MAAM,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,
|
|
4
|
+
"sourcesContent": ["import { createLanguageServerPlugin } from \"@ragents/host/plugin-support/language-server/plugin.js\";\nimport type { PluginModule } from \"@ragents/host/plugin-support/plugin-module.js\";\nimport { fsharpLanguageServer, FSHARP_SERVER_VARIABLE } from \"../executor.js\";\n\nexport const fsharpConfigDescriptors = [\n { key: FSHARP_SERVER_VARIABLE, source: \"environment\" },\n] as const;\n\nexport const plugin: PluginModule = {\n create: () => createLanguageServerPlugin({\n id: \"ragents.lsp-fsharp\",\n languageServer: fsharpLanguageServer,\n tabLabel: \"F#\",\n configDescriptors: fsharpConfigDescriptors,\n }),\n};\n", "import { existsSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { LanguageServerDescription, WorkspaceExecutorContribution } from \"@ragents/workspace-executor\";\n\nexport const FSHARP_SERVER_VARIABLE = \"FSHARP_LANGUAGE_SERVER\";\nexport const FSHARP_SERVER_FILE = \"fsautocomplete/fsautocomplete.dll\";\n\nconst languages = { \".fs\": \"fsharp\", \".fsi\": \"fsharp\", \".fsx\": \"fsharp\" } as const;\n\nexport const fsharpLanguageServer: LanguageServerDescription = {\n id: \"fsharp\",\n label: \"FSAC\",\n languages,\n rootDescription: \"the .sln file (or a single .fsproj)\",\n};\n\nconst PROJECT_LINE = /^Project\\(\"\\{[^}]+\\}\"\\)\\s*=\\s*\"[^\"]*\",\\s*\"([^\"]+)\"/gm;\n\n/** The projects of a .sln, resolved next to it; solution folder entries do not count. */\nexport const solutionProjects = async (solutionFile: string): Promise<string[]> => {\n const text = await readFile(solutionFile, \"utf8\");\n const directory = path.dirname(solutionFile);\n return [...text.matchAll(PROJECT_LINE)]\n .map((match) => match[1].replaceAll(\"\\\\\", \"/\"))\n .filter((relative) => /\\.[a-z]+proj$/i.test(relative))\n .map((relative) => path.resolve(directory, relative));\n};\n\nconst dotnetCommand = (server: string, args: readonly string[]): { command: string; args: string[] } =>\n server.toLowerCase().endsWith(\".dll\")\n ? { command: \"dotnet\", args: [server, ...args] }\n : { command: server, args: [...args] };\n\nconst serverPath = (toolsDirectory: string): string => {\n const configured = process.env[FSHARP_SERVER_VARIABLE];\n if (configured) return configured;\n const provisioned = path.join(toolsDirectory, ...FSHARP_SERVER_FILE.split(\"/\"));\n if (existsSync(provisioned)) return provisioned;\n throw new Error(\"fsautocomplete does not exist on this machine: neither is \"\n + `${FSHARP_SERVER_VARIABLE} set nor does ${provisioned} exist. A workspace fetches it with `\n + `pnpm provision --workspace, a server via pnpm provision <profile>; ${FSHARP_SERVER_VARIABLE} overrides both`);\n};\n\nconst contentOf = (params: unknown): string => (params as { content?: string } | undefined)?.content ?? \"\";\n\nexport const executor: WorkspaceExecutorContribution = (machine) => ({\n languageServers: [{\n ...fsharpLanguageServer,\n resolveRoot: (workspaceRoot, root) => machine.resolveRootFile(workspaceRoot, root, [\".sln\", \".fsproj\"]),\n rootDirectory: (root) => path.dirname(root),\n launch: async (context, root) => ({\n label: \"FSAC\",\n ...dotnetCommand(serverPath(machine.toolsDirectory), [\"--state-directory\", path.join(context.logDirectory, \"fsautocomplete\")]),\n cwd: path.dirname(root),\n env: context.env,\n uid: context.uid,\n gid: context.gid,\n rootUri: pathToFileURL(path.dirname(root)).href,\n initializationOptions: { AutomaticWorkspaceInit: false },\n languages,\n }),\n open: async (session, root, timeoutMs) => {\n const projects = root.toLowerCase().endsWith(\".sln\")\n ? (await solutionProjects(root)).filter((project) => project.toLowerCase().endsWith(\".fsproj\"))\n : [root];\n if (projects.length === 0) throw new Error(`${path.basename(root)} contains no F# projects`);\n const finished = session.waitForNotification(timeoutMs, \"projects loaded\", (method, params) =>\n method === \"fsharp/notifyWorkspace\"\n && contentOf(params).includes(\"\\\"workspaceLoad\\\"\")\n && contentOf(params).includes(\"\\\"finished\\\"\"));\n await session.request(\"fsharp/workspaceLoad\", {\n textDocuments: projects.map((project) => ({ uri: pathToFileURL(project).href })),\n });\n await finished;\n return `Loaded ${projects.length} F# project${projects.length === 1 ? \"\" : \"s\"} from ${path.basename(root)}`;\n },\n }],\n});\n", "import { stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport {\n DOTNET_INSTRUCTION,\n downloadArchive,\n dotnetRuntimeMajors,\n provisionGap,\n provisionReady,\n readProvisionStamp,\n readZipNames,\n unpackArchive,\n writeProvisionStamp,\n type ArchiveDownload,\n type PluginProvision,\n type ProvisionState,\n} from \"@ragents/host/plugin-support/provision.js\";\nimport { FSHARP_SERVER_FILE } from \"./executor.js\";\n\nexport const FSAUTOCOMPLETE_VERSION = \"0.83.0\";\n\nconst FEED = \"https://api.nuget.org/v3/flatcontainer\";\nconst PACKAGE = \"fsautocomplete\";\nconst TOOL_FOLDER = /^tools\\/net(\\d+)\\.0\\/any\\//;\n\nexport const fsautocompleteArchiveUrl = `${FEED}/${PACKAGE}/${FSAUTOCOMPLETE_VERSION}/${PACKAGE}.${FSAUTOCOMPLETE_VERSION}.nupkg`;\n\n/** The tool package ships one folder per target platform; the highest runtime available here is taken. */\nconst toolPrefix = (names: readonly string[], majors: readonly number[]): string => {\n const offered = names\n .map((name) => TOOL_FOLDER.exec(name))\n .filter((match): match is RegExpExecArray => match !== null)\n .map((match) => ({ prefix: match[0], major: Number(match[1]) }));\n const usable = offered.filter((entry) => majors.includes(entry.major)).sort((left, right) => right.major - left.major);\n const chosen = usable[0];\n if (!chosen) {\n throw new Error(`${PACKAGE} ${FSAUTOCOMPLETE_VERSION} only ships ${[...new Set(offered.map((entry) => `net${entry.major}.0`))].join(\", \")}; `\n + `the installed .NET runtimes are ${majors.join(\", \")}`);\n }\n return chosen.prefix;\n};\n\nexport const createFsharpProvision = (\n download: ArchiveDownload = downloadArchive,\n runtimes: () => Promise<readonly number[] | undefined> = dotnetRuntimeMajors,\n): PluginProvision => {\n const serverFile = (target: string): string => path.join(target, ...FSHARP_SERVER_FILE.split(\"/\"));\n const check = async (target: string): Promise<ProvisionState> => {\n if (await runtimes() === undefined) return provisionGap(\"dotnet\", DOTNET_INSTRUCTION, false);\n const installed = await stat(serverFile(target)).catch(() => undefined);\n if (installed?.isFile() && await readProvisionStamp(target) === FSAUTOCOMPLETE_VERSION) return provisionReady;\n return provisionGap(\"fsautocomplete\", `fsautocomplete ${FSAUTOCOMPLETE_VERSION} is missing at ${serverFile(target)}`, true);\n };\n return {\n check,\n apply: async (target, log) => {\n const state = await check(target);\n if (state.kind === \"ready\") return;\n if (!state.installable) throw new Error(state.instruction);\n const majors = await runtimes();\n if (!majors) throw new Error(DOTNET_INSTRUCTION);\n log(`Downloading fsautocomplete ${FSAUTOCOMPLETE_VERSION}`);\n const archive = await download(fsautocompleteArchiveUrl);\n const prefix = toolPrefix(readZipNames(archive), majors);\n const files = await unpackArchive(archive, prefix, target, \"fsautocomplete\");\n if (!(await stat(serverFile(target)).catch(() => undefined))?.isFile()) {\n throw new Error(`The package ${PACKAGE} ${FSAUTOCOMPLETE_VERSION} does not contain ${prefix}fsautocomplete.dll`);\n }\n await writeProvisionStamp(target, FSAUTOCOMPLETE_VERSION);\n log(`${files} files from ${prefix} to ${path.join(target, \"fsautocomplete\")}`);\n },\n };\n};\n\nexport const provision = createFsharpProvision();\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["path", "path"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=(r,
|
|
1
|
+
var e=(r,o)=>{let t=globalThis.__ragentsHostModules?.[r];if(t===void 0)throw new Error(`The host does not provide ${r}`);if(!(o in t))throw new Error(`The host does not provide ${o} from ${r}; the bundle was built against a newer host`);return t[o]};var a=e("@ragents/web/language-server/language-server-plugin","languageServerWebPlugin");var n=e("react/jsx-runtime","jsx");var b=a("ragents.lsp-fsharp",s);function s(){return n("span",{"aria-hidden":"true",className:"font-mono text-[12px] font-bold",children:"F#"})}export{b as webPlugin};
|
|
2
2
|
//# sourceMappingURL=/plugins/ragents.lsp-fsharp/web/index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["ragents-host-read:read", "ragents-host-value:@ragents/web/language-server/language-server-plugin#languageServerWebPlugin", "ragents-host-value:react/jsx-runtime#jsx", "../../../plugins/ragents.lsp-fsharp/web/index.tsx"],
|
|
4
|
-
"sourcesContent": ["export const read = (specifier, name) => {\n const module = globalThis[\"__ragentsHostModules\"]?.[specifier];\n if (module === undefined) throw new Error(`
|
|
5
|
-
"mappings": "AAAO,IAAMA,EAAO,CAACC,EAAWC,IAAS,CACvC,IAAMC,EAAS,WAAW,uBAA0BF,CAAS,EAC7D,GAAIE,IAAW,OAAW,MAAM,IAAI,MAAM,
|
|
4
|
+
"sourcesContent": ["export const read = (specifier, name) => {\n const module = globalThis[\"__ragentsHostModules\"]?.[specifier];\n if (module === undefined) throw new Error(`The host does not provide ${specifier}`);\n if (!(name in module)) throw new Error(`The host does not provide ${name} from ${specifier}; the bundle was built against a newer host`);\n return module[name];\n};", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/language-server/language-server-plugin\", \"languageServerWebPlugin\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsx\");\n", "import { languageServerWebPlugin } from \"@ragents/web/language-server/language-server-plugin\";\n\nexport const webPlugin = languageServerWebPlugin(\"ragents.lsp-fsharp\", LanguageIcon);\n\nfunction LanguageIcon() {\n return <span aria-hidden=\"true\" className=\"font-mono text-[12px] font-bold\">F#</span>;\n}\n"],
|
|
5
|
+
"mappings": "AAAO,IAAMA,EAAO,CAACC,EAAWC,IAAS,CACvC,IAAMC,EAAS,WAAW,uBAA0BF,CAAS,EAC7D,GAAIE,IAAW,OAAW,MAAM,IAAI,MAAM,6BAA6BF,CAAS,EAAE,EAClF,GAAI,EAAEC,KAAQC,GAAS,MAAM,IAAI,MAAM,6BAA6BD,CAAI,SAASD,CAAS,6CAA6C,EACvI,OAAOE,EAAOD,CAAI,CACpB,ECJA,IAAOE,EAAQC,EAAK,sDAAuD,yBAAyB,ECApG,IAAOC,EAAQC,EAAK,oBAAqB,KAAK,ECCvC,IAAMC,EAAYC,EAAwB,qBAAsBC,CAAY,EAEnF,SAASA,GAAe,CACtB,OAAOC,EAAC,QAAK,cAAY,OAAO,UAAU,kCAAkC,cAAE,CAChF",
|
|
6
6
|
"names": ["read", "specifier", "name", "module", "language_server_plugin_languageServerWebPlugin_default", "read", "jsx_runtime_jsx_default", "read", "webPlugin", "language_server_plugin_languageServerWebPlugin_default", "LanguageIcon", "jsx_runtime_jsx_default"]
|
|
7
7
|
}
|
|
@@ -21,7 +21,7 @@ var serverPath = (toolsDirectory) => {
|
|
|
21
21
|
if (configured) return configured;
|
|
22
22
|
const provisioned = path.join(toolsDirectory, ...ROSLYN_SERVER_FILE.split("/"));
|
|
23
23
|
if (existsSync(provisioned)) return provisioned;
|
|
24
|
-
throw new Error(`Microsoft.CodeAnalysis.LanguageServer
|
|
24
|
+
throw new Error(`Microsoft.CodeAnalysis.LanguageServer does not exist on this machine: neither is ${ROSLYN_SERVER_VARIABLE} set nor does ${provisioned} exist. A workspace fetches it with pnpm provision --workspace, a server via pnpm provision <profile>; ${ROSLYN_SERVER_VARIABLE} overrides both`);
|
|
25
25
|
};
|
|
26
26
|
var executor = (machine) => ({
|
|
27
27
|
languageServers: [{
|
|
@@ -49,13 +49,13 @@ var executor = (machine) => ({
|
|
|
49
49
|
const uri = pathToFileURL(root).href;
|
|
50
50
|
const loaded = session.waitForNotification(
|
|
51
51
|
timeoutMs,
|
|
52
|
-
"
|
|
52
|
+
"projects loaded",
|
|
53
53
|
(method) => method === "workspace/projectInitializationComplete"
|
|
54
54
|
);
|
|
55
55
|
if (root.toLowerCase().endsWith(".csproj")) session.notify("project/open", { projects: [uri] });
|
|
56
56
|
else session.notify("solution/open", { solution: uri });
|
|
57
57
|
await loaded;
|
|
58
|
-
return
|
|
58
|
+
return `Loaded ${path.basename(root)}`;
|
|
59
59
|
}
|
|
60
60
|
}]
|
|
61
61
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../plugins/ragents.lsp-roslyn/executor.ts"],
|
|
4
|
-
"sourcesContent": ["import { existsSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { LanguageServerDescription, WorkspaceExecutorContribution } from \"@ragents/workspace-executor\";\n\nexport const ROSLYN_SERVER_VARIABLE = \"ROSLYN_LANGUAGE_SERVER\";\nexport const ROSLYN_SERVER_FILE = \"roslyn/Microsoft.CodeAnalysis.LanguageServer.dll\";\n\nconst languages = { \".cs\": \"csharp\" } as const;\n\nexport const roslynLanguageServer: LanguageServerDescription = {\n id: \"roslyn\",\n label: \"Roslyn\",\n languages,\n rootDescription: \"the .sln file (or a single .csproj)\",\n solutionExtensions: [\".sln\", \".slnx\"],\n};\n\nconst dotnetCommand = (server: string, args: readonly string[]): { command: string; args: string[] } =>\n server.toLowerCase().endsWith(\".dll\")\n ? { command: \"dotnet\", args: [server, ...args] }\n : { command: server, args: [...args] };\n\nconst serverPath = (toolsDirectory: string): string => {\n const configured = process.env[ROSLYN_SERVER_VARIABLE];\n if (configured) return configured;\n const provisioned = path.join(toolsDirectory, ...ROSLYN_SERVER_FILE.split(\"/\"));\n if (existsSync(provisioned)) return provisioned;\n throw new Error(\"Microsoft.CodeAnalysis.LanguageServer
|
|
5
|
-
"mappings": ";;;;AAAA,SAAS,kBAAkB;AAC3B,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAGvB,IAAM,yBAAyB;AAC/B,IAAM,qBAAqB;AAElC,IAAM,YAAY,EAAE,OAAO,SAAS;AAE7B,IAAM,uBAAkD;AAAA,EAC7D,IAAI;AAAA,EACJ,OAAO;AAAA,EACP;AAAA,EACA,iBAAiB;AAAA,EACjB,oBAAoB,CAAC,QAAQ,OAAO;AACtC;AAEA,IAAM,gBAAgB,CAAC,QAAgB,SACrC,OAAO,YAAY,EAAE,SAAS,MAAM,IAChC,EAAE,SAAS,UAAU,MAAM,CAAC,QAAQ,GAAG,IAAI,EAAE,IAC7C,EAAE,SAAS,QAAQ,MAAM,CAAC,GAAG,IAAI,EAAE;AAEzC,IAAM,aAAa,CAAC,mBAAmC;AACrD,QAAM,aAAa,QAAQ,IAAI,sBAAsB;AACrD,MAAI,WAAY,QAAO;AACvB,QAAM,cAAc,KAAK,KAAK,gBAAgB,GAAG,mBAAmB,MAAM,GAAG,CAAC;AAC9E,MAAI,WAAW,WAAW,EAAG,QAAO;AACpC,QAAM,IAAI,MAAM,
|
|
4
|
+
"sourcesContent": ["import { existsSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { LanguageServerDescription, WorkspaceExecutorContribution } from \"@ragents/workspace-executor\";\n\nexport const ROSLYN_SERVER_VARIABLE = \"ROSLYN_LANGUAGE_SERVER\";\nexport const ROSLYN_SERVER_FILE = \"roslyn/Microsoft.CodeAnalysis.LanguageServer.dll\";\n\nconst languages = { \".cs\": \"csharp\" } as const;\n\nexport const roslynLanguageServer: LanguageServerDescription = {\n id: \"roslyn\",\n label: \"Roslyn\",\n languages,\n rootDescription: \"the .sln file (or a single .csproj)\",\n solutionExtensions: [\".sln\", \".slnx\"],\n};\n\nconst dotnetCommand = (server: string, args: readonly string[]): { command: string; args: string[] } =>\n server.toLowerCase().endsWith(\".dll\")\n ? { command: \"dotnet\", args: [server, ...args] }\n : { command: server, args: [...args] };\n\nconst serverPath = (toolsDirectory: string): string => {\n const configured = process.env[ROSLYN_SERVER_VARIABLE];\n if (configured) return configured;\n const provisioned = path.join(toolsDirectory, ...ROSLYN_SERVER_FILE.split(\"/\"));\n if (existsSync(provisioned)) return provisioned;\n throw new Error(\"Microsoft.CodeAnalysis.LanguageServer does not exist on this machine: neither is \"\n + `${ROSLYN_SERVER_VARIABLE} set nor does ${provisioned} exist. A workspace fetches it with `\n + `pnpm provision --workspace, a server via pnpm provision <profile>; ${ROSLYN_SERVER_VARIABLE} overrides both`);\n};\n\nexport const executor: WorkspaceExecutorContribution = (machine) => ({\n languageServers: [{\n ...roslynLanguageServer,\n resolveRoot: (workspaceRoot, root) => machine.resolveRootFile(workspaceRoot, root, [\".sln\", \".slnx\", \".csproj\"]),\n rootDirectory: (root) => path.dirname(root),\n launch: async (context, root) => ({\n label: \"Roslyn\",\n ...dotnetCommand(serverPath(machine.toolsDirectory), [\n \"--stdio\",\n \"--logLevel\", \"Warning\",\n \"--extensionLogDirectory\", path.join(context.logDirectory, \"roslyn-logs\"),\n ]),\n cwd: path.dirname(root),\n env: context.env,\n uid: context.uid,\n gid: context.gid,\n rootUri: pathToFileURL(path.dirname(root)).href,\n languages,\n newFileSettleMs: 2_000,\n }),\n open: async (session, root, timeoutMs) => {\n const uri = pathToFileURL(root).href;\n const loaded = session.waitForNotification(timeoutMs, \"projects loaded\",\n (method) => method === \"workspace/projectInitializationComplete\");\n if (root.toLowerCase().endsWith(\".csproj\")) session.notify(\"project/open\", { projects: [uri] });\n else session.notify(\"solution/open\", { solution: uri });\n await loaded;\n return `Loaded ${path.basename(root)}`;\n },\n }],\n});\n"],
|
|
5
|
+
"mappings": ";;;;AAAA,SAAS,kBAAkB;AAC3B,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAGvB,IAAM,yBAAyB;AAC/B,IAAM,qBAAqB;AAElC,IAAM,YAAY,EAAE,OAAO,SAAS;AAE7B,IAAM,uBAAkD;AAAA,EAC7D,IAAI;AAAA,EACJ,OAAO;AAAA,EACP;AAAA,EACA,iBAAiB;AAAA,EACjB,oBAAoB,CAAC,QAAQ,OAAO;AACtC;AAEA,IAAM,gBAAgB,CAAC,QAAgB,SACrC,OAAO,YAAY,EAAE,SAAS,MAAM,IAChC,EAAE,SAAS,UAAU,MAAM,CAAC,QAAQ,GAAG,IAAI,EAAE,IAC7C,EAAE,SAAS,QAAQ,MAAM,CAAC,GAAG,IAAI,EAAE;AAEzC,IAAM,aAAa,CAAC,mBAAmC;AACrD,QAAM,aAAa,QAAQ,IAAI,sBAAsB;AACrD,MAAI,WAAY,QAAO;AACvB,QAAM,cAAc,KAAK,KAAK,gBAAgB,GAAG,mBAAmB,MAAM,GAAG,CAAC;AAC9E,MAAI,WAAW,WAAW,EAAG,QAAO;AACpC,QAAM,IAAI,MAAM,oFACT,sBAAsB,iBAAiB,WAAW,0GACiB,sBAAsB,iBAAiB;AACnH;AAEO,IAAM,WAA0C,CAAC,aAAa;AAAA,EACnE,iBAAiB,CAAC;AAAA,IAChB,GAAG;AAAA,IACH,aAAa,CAAC,eAAe,SAAS,QAAQ,gBAAgB,eAAe,MAAM,CAAC,QAAQ,SAAS,SAAS,CAAC;AAAA,IAC/G,eAAe,CAAC,SAAS,KAAK,QAAQ,IAAI;AAAA,IAC1C,QAAQ,OAAO,SAAS,UAAU;AAAA,MAChC,OAAO;AAAA,MACP,GAAG,cAAc,WAAW,QAAQ,cAAc,GAAG;AAAA,QACnD;AAAA,QACA;AAAA,QAAc;AAAA,QACd;AAAA,QAA2B,KAAK,KAAK,QAAQ,cAAc,aAAa;AAAA,MAC1E,CAAC;AAAA,MACD,KAAK,KAAK,QAAQ,IAAI;AAAA,MACtB,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,SAAS,cAAc,KAAK,QAAQ,IAAI,CAAC,EAAE;AAAA,MAC3C;AAAA,MACA,iBAAiB;AAAA,IACnB;AAAA,IACA,MAAM,OAAO,SAAS,MAAM,cAAc;AACxC,YAAM,MAAM,cAAc,IAAI,EAAE;AAChC,YAAM,SAAS,QAAQ;AAAA,QAAoB;AAAA,QAAW;AAAA,QACpD,CAAC,WAAW,WAAW;AAAA,MAAyC;AAClE,UAAI,KAAK,YAAY,EAAE,SAAS,SAAS,EAAG,SAAQ,OAAO,gBAAgB,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC;AAAA,UACzF,SAAQ,OAAO,iBAAiB,EAAE,UAAU,IAAI,CAAC;AACtD,YAAM;AACN,aAAO,UAAU,KAAK,SAAS,IAAI,CAAC;AAAA,IACtC;AAAA,EACF,CAAC;AACH;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
]
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
|
-
"stand": "
|
|
44
|
-
"sourceStand": "
|
|
43
|
+
"stand": "cbe81aa88a4ea56476537fabbbb0995d09ccbfa269dd6a003df50a57c8286b02",
|
|
44
|
+
"sourceStand": "d59f04b1bc34fb9e7a535ec8067a1e7b5c2d89937c3267eabe6a4e2b54a2b55e",
|
|
45
45
|
"server": "server/index.js",
|
|
46
46
|
"web": {
|
|
47
47
|
"entry": "web/index.js",
|
|
@@ -32,8 +32,8 @@ import {
|
|
|
32
32
|
import { DISMISSED_ANSWER } from "@ragents/plugins/ragents.ask/server/contract";
|
|
33
33
|
var SOLUTION_ON_START_VARIABLE = "ROSLYN_SOLUTION_ON_START";
|
|
34
34
|
var SOLUTION_PREFERRED_VARIABLE = "ROSLYN_SOLUTION_PREFERRED";
|
|
35
|
-
var NO_SOLUTION = "
|
|
36
|
-
var SOLUTION_QUESTION = "
|
|
35
|
+
var NO_SOLUTION = "Load none";
|
|
36
|
+
var SOLUTION_QUESTION = "Which solution should Roslyn load for diagnostics?";
|
|
37
37
|
var matchesPreferred = (solution, preferred) => {
|
|
38
38
|
const path4 = solution.toLowerCase();
|
|
39
39
|
const expected = preferred.toLowerCase();
|
|
@@ -69,9 +69,9 @@ var createSolutionOnStart = (options) => {
|
|
|
69
69
|
runtime.enqueueInput(
|
|
70
70
|
{ actorId: runtime.state(runId).ownerId, commandId: `${options.pluginId}.solution-answer:${runId}` },
|
|
71
71
|
runId,
|
|
72
|
-
{ actorId: coordinatorId, content: `
|
|
73
|
-
|
|
74
|
-
${openTool}
|
|
72
|
+
{ actorId: coordinatorId, content: `Answer to the question: ${SOLUTION_QUESTION}
|
|
73
|
+
Answer: ${answer}
|
|
74
|
+
${openTool} loads a solution.` }
|
|
75
75
|
);
|
|
76
76
|
};
|
|
77
77
|
const begin = async (runId, ownerId, coordinatorId, signal) => {
|
|
@@ -83,7 +83,7 @@ ${openTool} l\xE4dt eine Solution.` }
|
|
|
83
83
|
{ runId, agentId: ownerId, turnId: null, commandId: questionCommand(runId) },
|
|
84
84
|
{
|
|
85
85
|
question: SOLUTION_QUESTION,
|
|
86
|
-
description: "
|
|
86
|
+
description: "The workspace contains several solutions; Roslyn loads the chosen one for diagnostics without a build.",
|
|
87
87
|
options: [...step.options],
|
|
88
88
|
recipient: coordinatorId
|
|
89
89
|
},
|
|
@@ -93,12 +93,12 @@ ${openTool} l\xE4dt eine Solution.` }
|
|
|
93
93
|
};
|
|
94
94
|
const finish = (runId, controller, error) => {
|
|
95
95
|
if (error !== void 0 && !controller.signal.aborted) {
|
|
96
|
-
console.error(`${options.pluginId}:
|
|
96
|
+
console.error(`${options.pluginId}: solution not loaded on start of ${runId}: ${messageOf(error)}`);
|
|
97
97
|
}
|
|
98
98
|
if (running.get(runId) === controller) running.delete(runId);
|
|
99
99
|
};
|
|
100
100
|
const stop = ({ runId }) => {
|
|
101
|
-
running.get(runId)?.abort(new Error("
|
|
101
|
+
running.get(runId)?.abort(new Error("The run was stopped"));
|
|
102
102
|
running.delete(runId);
|
|
103
103
|
};
|
|
104
104
|
const opened = (runId) => {
|
|
@@ -106,7 +106,7 @@ ${openTool} l\xE4dt eine Solution.` }
|
|
|
106
106
|
const proposed = options.runtime().events(runId).find((event) => event.type === "action.proposed" && event.commandId === questionCommand(runId));
|
|
107
107
|
if (proposed?.type === "action.proposed") options.ask().withdraw(runId, proposed.payload.actionId);
|
|
108
108
|
} catch (error) {
|
|
109
|
-
console.error(`${options.pluginId}:
|
|
109
|
+
console.error(`${options.pluginId}: start question of ${runId} not dismissed: ${messageOf(error)}`);
|
|
110
110
|
}
|
|
111
111
|
};
|
|
112
112
|
const lifecycle = {
|
|
@@ -121,7 +121,7 @@ ${openTool} l\xE4dt eine Solution.` }
|
|
|
121
121
|
{ pluginId: options.pluginId, scope: { kind: "run" }, state: { version: 1, startEntry: startEntry?.id ?? null } }
|
|
122
122
|
);
|
|
123
123
|
if (startEntry?.action === "script") return;
|
|
124
|
-
if (!primaryActorId) throw new Error(`
|
|
124
|
+
if (!primaryActorId) throw new Error(`The run ${runId} has no coordinator on start that could receive an answer`);
|
|
125
125
|
const controller = new AbortController();
|
|
126
126
|
running.set(runId, controller);
|
|
127
127
|
try {
|
|
@@ -148,7 +148,7 @@ var env = declaredEnvironment(roslynConfigDescriptors);
|
|
|
148
148
|
var solutionOnStart = () => {
|
|
149
149
|
const mode = env.optional(SOLUTION_ON_START_VARIABLE) ?? "off";
|
|
150
150
|
if (mode !== "on" && mode !== "off") {
|
|
151
|
-
throw new Error(`${SOLUTION_ON_START_VARIABLE} in
|
|
151
|
+
throw new Error(`${SOLUTION_ON_START_VARIABLE} in the section ragents.lsp-roslyn is "on" or "off", not "${mode}"`);
|
|
152
152
|
}
|
|
153
153
|
return mode === "on";
|
|
154
154
|
};
|
|
@@ -156,10 +156,10 @@ var preferredSolution = (loadOnStart) => {
|
|
|
156
156
|
const preferred = env.optional(SOLUTION_PREFERRED_VARIABLE);
|
|
157
157
|
if (preferred === void 0) return void 0;
|
|
158
158
|
if (!loadOnStart) {
|
|
159
|
-
throw new Error(`${SOLUTION_PREFERRED_VARIABLE} in
|
|
159
|
+
throw new Error(`${SOLUTION_PREFERRED_VARIABLE} in the section ragents.lsp-roslyn requires ${SOLUTION_ON_START_VARIABLE}: "on"`);
|
|
160
160
|
}
|
|
161
161
|
if (preferred === "" || preferred.includes("\\") || path2.win32.isAbsolute(preferred)) {
|
|
162
|
-
throw new Error(`${SOLUTION_PREFERRED_VARIABLE} in
|
|
162
|
+
throw new Error(`${SOLUTION_PREFERRED_VARIABLE} in the section ragents.lsp-roslyn is a path relative to the workspace with forward slashes, not "${preferred}"`);
|
|
163
163
|
}
|
|
164
164
|
return preferred;
|
|
165
165
|
};
|
|
@@ -218,7 +218,7 @@ var createRoslynProvision = (download = downloadArchive, runtimes = dotnetRuntim
|
|
|
218
218
|
if (await runtimes() === void 0) return provisionGap("dotnet", DOTNET_INSTRUCTION, false);
|
|
219
219
|
const installed = await stat(serverFile(target)).catch(() => void 0);
|
|
220
220
|
if (installed?.isFile() && await readProvisionStamp(target) === ROSLYN_VERSION) return provisionReady;
|
|
221
|
-
return provisionGap("roslyn", `Microsoft.CodeAnalysis.LanguageServer ${ROSLYN_VERSION}
|
|
221
|
+
return provisionGap("roslyn", `Microsoft.CodeAnalysis.LanguageServer ${ROSLYN_VERSION} is missing at ${serverFile(target)}`, true);
|
|
222
222
|
};
|
|
223
223
|
return {
|
|
224
224
|
check,
|
|
@@ -226,13 +226,13 @@ var createRoslynProvision = (download = downloadArchive, runtimes = dotnetRuntim
|
|
|
226
226
|
const state = await check(target);
|
|
227
227
|
if (state.kind === "ready") return;
|
|
228
228
|
if (!state.installable) throw new Error(state.instruction);
|
|
229
|
-
log(`Roslyn ${ROSLYN_VERSION}
|
|
229
|
+
log(`Downloading Roslyn ${ROSLYN_VERSION}`);
|
|
230
230
|
const files = await unpackArchive(await download(roslynArchiveUrl), PREFIX, target, "roslyn");
|
|
231
231
|
if (!(await stat(serverFile(target)).catch(() => void 0))?.isFile()) {
|
|
232
|
-
throw new Error(`
|
|
232
|
+
throw new Error(`The package ${PACKAGE} ${ROSLYN_VERSION} does not contain ${ROSLYN_SERVER_FILE}`);
|
|
233
233
|
}
|
|
234
234
|
await writeProvisionStamp(target, ROSLYN_VERSION);
|
|
235
|
-
log(`${files}
|
|
235
|
+
log(`${files} files to ${path3.join(target, "roslyn")}`);
|
|
236
236
|
}
|
|
237
237
|
};
|
|
238
238
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../plugins/ragents.lsp-roslyn/server/index.ts", "../../../plugins/ragents.lsp-roslyn/executor.ts", "../../../plugins/ragents.lsp-roslyn/server/solution-on-start.ts", "../../../plugins/ragents.lsp-roslyn/provision.ts"],
|
|
4
|
-
"sourcesContent": ["import path from \"node:path\";\nimport { declaredEnvironment } from \"@ragents/host/plugin-support/plugin-config.js\";\nimport { createLanguageServerPlugin } from \"@ragents/host/plugin-support/language-server/plugin.js\";\nimport type { PluginModule } from \"@ragents/host/plugin-support/plugin-module.js\";\nimport { sandboxServicesToken } from \"@ragents/host/plugin-support/workspace-sandbox-host.js\";\nimport { runtimeProviderToken } from \"@ragents/host/ragents/host-services.js\";\nimport { askServiceToken } from \"@ragents/plugins/ragents.ask/server/contract.js\";\nimport { roslynLanguageServer, ROSLYN_SERVER_VARIABLE } from \"../executor.js\";\nimport {\n createSolutionOnStart,\n SOLUTION_ON_START_VARIABLE,\n SOLUTION_PREFERRED_VARIABLE,\n type SolutionOnStart,\n} from \"./solution-on-start.js\";\n\nexport const roslynConfigDescriptors = [\n { key: ROSLYN_SERVER_VARIABLE, source: \"environment\" },\n { key: SOLUTION_ON_START_VARIABLE, source: \"environment\" },\n { key: SOLUTION_PREFERRED_VARIABLE, source: \"environment\" },\n] as const;\n\nconst PLUGIN_ID = \"ragents.lsp-roslyn\";\n\nconst env = declaredEnvironment(roslynConfigDescriptors);\n\n/** Ohne Angabe l\u00E4dt ein neuer Run nichts von selbst; einschalten geht nur ausdr\u00FCcklich mit \"on\". */\nexport const solutionOnStart = (): boolean => {\n const mode = env.optional(SOLUTION_ON_START_VARIABLE) ?? \"off\";\n if (mode !== \"on\" && mode !== \"off\") {\n throw new Error(`${SOLUTION_ON_START_VARIABLE} in der Sektion ragents.lsp-roslyn ist \"on\" oder \"off\", nicht \"${mode}\"`);\n }\n return mode === \"on\";\n};\n\n/** Ein Pfad relativ zur Wurzel des Arbeitsbereichs, wie ihn `roslyn_solutions` nennt; ohne Laden beim Start h\u00E4tte er keine Wirkung. */\nexport const preferredSolution = (loadOnStart: boolean): string | undefined => {\n const preferred = env.optional(SOLUTION_PREFERRED_VARIABLE);\n if (preferred === undefined) return undefined;\n if (!loadOnStart) {\n throw new Error(`${SOLUTION_PREFERRED_VARIABLE} in der Sektion ragents.lsp-roslyn verlangt ${SOLUTION_ON_START_VARIABLE}: \"on\"`);\n }\n if (preferred === \"\" || preferred.includes(\"\\\\\") || path.win32.isAbsolute(preferred)) {\n throw new Error(`${SOLUTION_PREFERRED_VARIABLE} in der Sektion ragents.lsp-roslyn ist ein Pfad relativ zum Arbeitsbereich mit Schr\u00E4gstrichen, nicht \"${preferred}\"`);\n }\n return preferred;\n};\n\nexport const plugin: PluginModule = {\n requires: [\"ragents.ask\"],\n create: () => {\n let startup: SolutionOnStart | undefined;\n const languageServer = createLanguageServerPlugin({\n id: PLUGIN_ID,\n languageServer: roslynLanguageServer,\n configDescriptors: roslynConfigDescriptors,\n onOpened: (runId) => startup?.opened(runId),\n });\n return {\n manifest: languageServer.manifest,\n register: (host) => {\n languageServer.register(host);\n const loadOnStart = solutionOnStart();\n const preferred = preferredSolution(loadOnStart);\n if (!loadOnStart) return;\n startup = createSolutionOnStart({\n pluginId: PLUGIN_ID,\n adapterId: roslynLanguageServer.id,\n preferred,\n sandbox: () => host.service(sandboxServicesToken),\n runtime: () => host.service(runtimeProviderToken)(),\n ask: () => host.service(askServiceToken),\n });\n host.lifecycle(startup.lifecycle);\n },\n };\n },\n};\n", "import { existsSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { LanguageServerDescription, WorkspaceExecutorContribution } from \"@ragents/workspace-executor\";\n\nexport const ROSLYN_SERVER_VARIABLE = \"ROSLYN_LANGUAGE_SERVER\";\nexport const ROSLYN_SERVER_FILE = \"roslyn/Microsoft.CodeAnalysis.LanguageServer.dll\";\n\nconst languages = { \".cs\": \"csharp\" } as const;\n\nexport const roslynLanguageServer: LanguageServerDescription = {\n id: \"roslyn\",\n label: \"Roslyn\",\n languages,\n rootDescription: \"the .sln file (or a single .csproj)\",\n solutionExtensions: [\".sln\", \".slnx\"],\n};\n\nconst dotnetCommand = (server: string, args: readonly string[]): { command: string; args: string[] } =>\n server.toLowerCase().endsWith(\".dll\")\n ? { command: \"dotnet\", args: [server, ...args] }\n : { command: server, args: [...args] };\n\nconst serverPath = (toolsDirectory: string): string => {\n const configured = process.env[ROSLYN_SERVER_VARIABLE];\n if (configured) return configured;\n const provisioned = path.join(toolsDirectory, ...ROSLYN_SERVER_FILE.split(\"/\"));\n if (existsSync(provisioned)) return provisioned;\n throw new Error(\"Microsoft.CodeAnalysis.LanguageServer gibt es auf diesem Rechner nicht: weder \"\n + `${ROSLYN_SERVER_VARIABLE} gesetzt noch ${provisioned} vorhanden. Ein Arbeitsplatz holt ihn mit `\n + `pnpm provision --workspace, ein Server \u00FCber pnpm provision <profil>; ${ROSLYN_SERVER_VARIABLE} \u00FCbersteuert beides`);\n};\n\nexport const executor: WorkspaceExecutorContribution = (machine) => ({\n languageServers: [{\n ...roslynLanguageServer,\n resolveRoot: (workspaceRoot, root) => machine.resolveRootFile(workspaceRoot, root, [\".sln\", \".slnx\", \".csproj\"]),\n rootDirectory: (root) => path.dirname(root),\n launch: async (context, root) => ({\n label: \"Roslyn\",\n ...dotnetCommand(serverPath(machine.toolsDirectory), [\n \"--stdio\",\n \"--logLevel\", \"Warning\",\n \"--extensionLogDirectory\", path.join(context.logDirectory, \"roslyn-logs\"),\n ]),\n cwd: path.dirname(root),\n env: context.env,\n uid: context.uid,\n gid: context.gid,\n rootUri: pathToFileURL(path.dirname(root)).href,\n languages,\n newFileSettleMs: 2_000,\n }),\n open: async (session, root, timeoutMs) => {\n const uri = pathToFileURL(root).href;\n const loaded = session.waitForNotification(timeoutMs, \"Projekte geladen\",\n (method) => method === \"workspace/projectInitializationComplete\");\n if (root.toLowerCase().endsWith(\".csproj\")) session.notify(\"project/open\", { projects: [uri] });\n else session.notify(\"solution/open\", { solution: uri });\n await loaded;\n return `${path.basename(root)} geladen`;\n },\n }],\n});\n", "import type { Orchestration, SessionLifecycleContribution } from \"@ragents/engine\";\nimport {\n languageServerOpenOperation,\n languageServerSolutionsOperation,\n type LanguageServerSolutions,\n} from \"@ragents/workspace-executor\";\nimport type { SandboxServices } from \"@ragents/host/plugin-support/workspace-sandbox-host.js\";\nimport { DISMISSED_ANSWER, type AskService } from \"@ragents/plugins/ragents.ask/server/contract.js\";\n\nexport const SOLUTION_ON_START_VARIABLE = \"ROSLYN_SOLUTION_ON_START\";\nexport const SOLUTION_PREFERRED_VARIABLE = \"ROSLYN_SOLUTION_PREFERRED\";\nexport const NO_SOLUTION = \"Keine laden\";\nexport const SOLUTION_QUESTION = \"Welche Solution soll Roslyn f\u00FCr die Diagnostik laden?\";\n\nexport type SolutionStartStep =\n | { kind: \"none\" }\n | { kind: \"open\"; path: string }\n | { kind: \"ask\"; options: readonly string[] };\n\nexport type SolutionAnswer =\n | { kind: \"none\" }\n | { kind: \"open\"; path: string }\n | { kind: \"forward\" };\n\n/** Die Vorgabe passt auch in einem Unterordner, etwa wenn der Arbeitsbereich der Ordner \u00FCber dem Checkout ist. */\nconst matchesPreferred = (solution: string, preferred: string): boolean => {\n const path = solution.toLowerCase();\n const expected = preferred.toLowerCase();\n return path === expected || path.endsWith(`/${expected}`);\n};\n\n/** Was jemand schon ge\u00F6ffnet hat oder gerade \u00F6ffnet, bleibt ohne Frage und ohne zweites Laden; passt die Vorgabe, z\u00E4hlen nur die passenden Solutions. */\nexport const solutionStartStep = (listing: LanguageServerSolutions, preferred?: string): SolutionStartStep => {\n if (listing.opened || listing.solutions.length === 0) return { kind: \"none\" };\n const paths = listing.solutions.map((solution) => solution.path);\n const matching = preferred === undefined ? [] : paths.filter((path) => matchesPreferred(path, preferred));\n const candidates = matching.length > 0 ? matching : paths;\n if (candidates.length === 1) return { kind: \"open\", path: candidates[0] };\n return { kind: \"ask\", options: [...candidates, NO_SOLUTION] };\n};\n\n/** Eine frei formulierte Antwort bekommt der Koordinator, damit sie nicht verloren geht. */\nexport const solutionAnswer = (options: readonly string[], answer: string): SolutionAnswer => {\n const chosen = answer.trim().replaceAll(\"\\\\\", \"/\");\n if (chosen === NO_SOLUTION || answer === DISMISSED_ANSWER) return { kind: \"none\" };\n return options.includes(chosen) ? { kind: \"open\", path: chosen } : { kind: \"forward\" };\n};\n\nexport interface SolutionOnStartOptions {\n pluginId: string;\n adapterId: string;\n preferred?: string;\n sandbox: () => SandboxServices;\n runtime: () => Orchestration;\n ask: () => AskService;\n}\n\nconst messageOf = (error: unknown): string => error instanceof Error ? error.message : String(error);\n\n/** L\u00E4dt beim Start ohne Run-Script die Vorgabe oder die einzige Solution oder fragt bei mehreren; der Merker im Journal l\u00E4sst das je Run h\u00F6chstens einmal zu. */\nexport interface SolutionOnStart {\n lifecycle: SessionLifecycleContribution;\n /** Jemand hat eine Instanz ge\u00F6ffnet; eine noch offene Startfrage erledigt sich damit ohne Laden und ohne Input. */\n opened: (runId: string) => void;\n}\n\nexport const createSolutionOnStart = (options: SolutionOnStartOptions): SolutionOnStart => {\n const running = new Map<string, AbortController>();\n const openTool = languageServerOpenOperation(options.adapterId);\n const questionCommand = (runId: string): string => `${options.pluginId}.solution-question:${runId}`;\n\n const marked = (runId: string): boolean => options.runtime().view(runId).pluginStates\n .some((entry) => entry.pluginId === options.pluginId && entry.scope.kind === \"run\");\n\n const load = async (runId: string, path: string, ifNoneOpen: boolean, signal: AbortSignal): Promise<void> => {\n await options.sandbox().execute(runId, openTool, { root: path, ifNoneOpen }, { signal });\n };\n\n const answered = async (runId: string, coordinatorId: string, choices: readonly string[], answer: string, signal: AbortSignal) => {\n const outcome = solutionAnswer(choices, answer);\n if (outcome.kind === \"open\") return load(runId, outcome.path, false, signal);\n if (outcome.kind === \"none\") return;\n const runtime = options.runtime();\n runtime.enqueueInput(\n { actorId: runtime.state(runId).ownerId, commandId: `${options.pluginId}.solution-answer:${runId}` },\n runId,\n { actorId: coordinatorId, content: `Antwort auf die Frage: ${SOLUTION_QUESTION}\\nAntwort: ${answer}\\n${openTool} l\u00E4dt eine Solution.` },\n );\n };\n\n const begin = async (runId: string, ownerId: string, coordinatorId: string, signal: AbortSignal): Promise<{ rest: Promise<void> }> => {\n const listing = await options.sandbox().execute(runId, languageServerSolutionsOperation(options.adapterId), null, { signal }) as LanguageServerSolutions;\n const step = solutionStartStep(listing, options.preferred);\n if (step.kind === \"none\") return { rest: Promise.resolve() };\n if (step.kind === \"open\") return { rest: load(runId, step.path, true, signal) };\n const answer = options.ask().ask(\n { runId, agentId: ownerId, turnId: null, commandId: questionCommand(runId) },\n {\n question: SOLUTION_QUESTION,\n description: \"Im Arbeitsbereich liegen mehrere Solutions; die gew\u00E4hlte l\u00E4dt Roslyn f\u00FCr die Diagnostik ohne Build.\",\n options: [...step.options],\n recipient: coordinatorId,\n },\n signal,\n );\n return { rest: answer.then((text) => answered(runId, coordinatorId, step.options, text, signal)) };\n };\n\n const finish = (runId: string, controller: AbortController, error?: unknown): void => {\n if (error !== undefined && !controller.signal.aborted) {\n console.error(`${options.pluginId}: Solution beim Start von ${runId} nicht geladen: ${messageOf(error)}`);\n }\n if (running.get(runId) === controller) running.delete(runId);\n };\n\n const stop = ({ runId }: { runId: string }): void => {\n running.get(runId)?.abort(new Error(\"Der Run wurde gestoppt\"));\n running.delete(runId);\n };\n\n const opened = (runId: string): void => {\n try {\n const proposed = options.runtime().events(runId).find((event) =>\n event.type === \"action.proposed\" && event.commandId === questionCommand(runId));\n if (proposed?.type === \"action.proposed\") options.ask().withdraw(runId, proposed.payload.actionId);\n } catch (error) {\n console.error(`${options.pluginId}: Startfrage von ${runId} nicht verworfen: ${messageOf(error)}`);\n }\n };\n\n const lifecycle: SessionLifecycleContribution = {\n id: `${options.pluginId}.solution-on-start`,\n sessionStarted: async ({ runId, startEntry }) => {\n if (marked(runId)) return;\n const runtime = options.runtime();\n const { ownerId, primaryActorId } = runtime.state(runId);\n runtime.replacePluginState(\n { actorId: ownerId, commandId: `${options.pluginId}.solution-on-start:${runId}` },\n runId,\n { pluginId: options.pluginId, scope: { kind: \"run\" }, state: { version: 1, startEntry: startEntry?.id ?? null } },\n );\n if (startEntry?.action === \"script\") return;\n if (!primaryActorId) throw new Error(`Der Run ${runId} hat beim Start keinen Koordinator, dem eine Antwort zugehen k\u00F6nnte`);\n const controller = new AbortController();\n running.set(runId, controller);\n try {\n const { rest } = await begin(runId, ownerId, primaryActorId, controller.signal);\n void rest.then(() => finish(runId, controller), (error: unknown) => finish(runId, controller, error));\n } catch (error) {\n finish(runId, controller, error);\n }\n },\n stopSession: stop,\n deleteSession: stop,\n };\n return { lifecycle, opened };\n};\n", "import { stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport {\n DOTNET_INSTRUCTION,\n downloadArchive,\n dotnetRuntimeMajors,\n provisionGap,\n provisionReady,\n readProvisionStamp,\n unpackArchive,\n writeProvisionStamp,\n type ArchiveDownload,\n type PluginProvision,\n type ProvisionState,\n} from \"@ragents/host/plugin-support/provision.js\";\nimport { ROSLYN_SERVER_FILE } from \"./executor.js\";\n\nexport const ROSLYN_VERSION = \"5.4.0-2.26179.14\";\n\nconst FEED = \"https://pkgs.dev.azure.com/azure-public/vside/_packaging/vs-impl/nuget/v3/flat2\";\nconst PACKAGE = \"microsoft.codeanalysis.languageserver.neutral\";\nconst PREFIX = \"content/LanguageServer/neutral/\";\n\nexport const roslynArchiveUrl = `${FEED}/${PACKAGE}/${ROSLYN_VERSION}/${PACKAGE}.${ROSLYN_VERSION}.nupkg`;\n\nexport const createRoslynProvision = (\n download: ArchiveDownload = downloadArchive,\n runtimes: () => Promise<readonly number[] | undefined> = dotnetRuntimeMajors,\n): PluginProvision => {\n const serverFile = (target: string): string => path.join(target, ...ROSLYN_SERVER_FILE.split(\"/\"));\n const check = async (target: string): Promise<ProvisionState> => {\n if (await runtimes() === undefined) return provisionGap(\"dotnet\", DOTNET_INSTRUCTION, false);\n const installed = await stat(serverFile(target)).catch(() => undefined);\n if (installed?.isFile() && await readProvisionStamp(target) === ROSLYN_VERSION) return provisionReady;\n return provisionGap(\"roslyn\", `Microsoft.CodeAnalysis.LanguageServer ${ROSLYN_VERSION} fehlt unter ${serverFile(target)}`, true);\n };\n return {\n check,\n apply: async (target, log) => {\n const state = await check(target);\n if (state.kind === \"ready\") return;\n if (!state.installable) throw new Error(state.instruction);\n log(`Roslyn ${ROSLYN_VERSION} laden`);\n const files = await unpackArchive(await download(roslynArchiveUrl), PREFIX, target, \"roslyn\");\n if (!(await stat(serverFile(target)).catch(() => undefined))?.isFile()) {\n throw new Error(`Das Paket ${PACKAGE} ${ROSLYN_VERSION} enth\u00E4lt ${ROSLYN_SERVER_FILE} nicht`);\n }\n await writeProvisionStamp(target, ROSLYN_VERSION);\n log(`${files} Dateien nach ${path.join(target, \"roslyn\")}`);\n },\n };\n};\n\nexport const provision = createRoslynProvision();\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import path from \"node:path\";\nimport { declaredEnvironment } from \"@ragents/host/plugin-support/plugin-config.js\";\nimport { createLanguageServerPlugin } from \"@ragents/host/plugin-support/language-server/plugin.js\";\nimport type { PluginModule } from \"@ragents/host/plugin-support/plugin-module.js\";\nimport { sandboxServicesToken } from \"@ragents/host/plugin-support/workspace-sandbox-host.js\";\nimport { runtimeProviderToken } from \"@ragents/host/ragents/host-services.js\";\nimport { askServiceToken } from \"@ragents/plugins/ragents.ask/server/contract.js\";\nimport { roslynLanguageServer, ROSLYN_SERVER_VARIABLE } from \"../executor.js\";\nimport {\n createSolutionOnStart,\n SOLUTION_ON_START_VARIABLE,\n SOLUTION_PREFERRED_VARIABLE,\n type SolutionOnStart,\n} from \"./solution-on-start.js\";\n\nexport const roslynConfigDescriptors = [\n { key: ROSLYN_SERVER_VARIABLE, source: \"environment\" },\n { key: SOLUTION_ON_START_VARIABLE, source: \"environment\" },\n { key: SOLUTION_PREFERRED_VARIABLE, source: \"environment\" },\n] as const;\n\nconst PLUGIN_ID = \"ragents.lsp-roslyn\";\n\nconst env = declaredEnvironment(roslynConfigDescriptors);\n\n/** If unset, a new run loads nothing by itself; it can only be switched on explicitly with \"on\". */\nexport const solutionOnStart = (): boolean => {\n const mode = env.optional(SOLUTION_ON_START_VARIABLE) ?? \"off\";\n if (mode !== \"on\" && mode !== \"off\") {\n throw new Error(`${SOLUTION_ON_START_VARIABLE} in the section ragents.lsp-roslyn is \"on\" or \"off\", not \"${mode}\"`);\n }\n return mode === \"on\";\n};\n\n/** A path relative to the workspace root, as `roslyn_solutions` names it; without loading on start it would have no effect. */\nexport const preferredSolution = (loadOnStart: boolean): string | undefined => {\n const preferred = env.optional(SOLUTION_PREFERRED_VARIABLE);\n if (preferred === undefined) return undefined;\n if (!loadOnStart) {\n throw new Error(`${SOLUTION_PREFERRED_VARIABLE} in the section ragents.lsp-roslyn requires ${SOLUTION_ON_START_VARIABLE}: \"on\"`);\n }\n if (preferred === \"\" || preferred.includes(\"\\\\\") || path.win32.isAbsolute(preferred)) {\n throw new Error(`${SOLUTION_PREFERRED_VARIABLE} in the section ragents.lsp-roslyn is a path relative to the workspace with forward slashes, not \"${preferred}\"`);\n }\n return preferred;\n};\n\nexport const plugin: PluginModule = {\n requires: [\"ragents.ask\"],\n create: () => {\n let startup: SolutionOnStart | undefined;\n const languageServer = createLanguageServerPlugin({\n id: PLUGIN_ID,\n languageServer: roslynLanguageServer,\n configDescriptors: roslynConfigDescriptors,\n onOpened: (runId) => startup?.opened(runId),\n });\n return {\n manifest: languageServer.manifest,\n register: (host) => {\n languageServer.register(host);\n const loadOnStart = solutionOnStart();\n const preferred = preferredSolution(loadOnStart);\n if (!loadOnStart) return;\n startup = createSolutionOnStart({\n pluginId: PLUGIN_ID,\n adapterId: roslynLanguageServer.id,\n preferred,\n sandbox: () => host.service(sandboxServicesToken),\n runtime: () => host.service(runtimeProviderToken)(),\n ask: () => host.service(askServiceToken),\n });\n host.lifecycle(startup.lifecycle);\n },\n };\n },\n};\n", "import { existsSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { LanguageServerDescription, WorkspaceExecutorContribution } from \"@ragents/workspace-executor\";\n\nexport const ROSLYN_SERVER_VARIABLE = \"ROSLYN_LANGUAGE_SERVER\";\nexport const ROSLYN_SERVER_FILE = \"roslyn/Microsoft.CodeAnalysis.LanguageServer.dll\";\n\nconst languages = { \".cs\": \"csharp\" } as const;\n\nexport const roslynLanguageServer: LanguageServerDescription = {\n id: \"roslyn\",\n label: \"Roslyn\",\n languages,\n rootDescription: \"the .sln file (or a single .csproj)\",\n solutionExtensions: [\".sln\", \".slnx\"],\n};\n\nconst dotnetCommand = (server: string, args: readonly string[]): { command: string; args: string[] } =>\n server.toLowerCase().endsWith(\".dll\")\n ? { command: \"dotnet\", args: [server, ...args] }\n : { command: server, args: [...args] };\n\nconst serverPath = (toolsDirectory: string): string => {\n const configured = process.env[ROSLYN_SERVER_VARIABLE];\n if (configured) return configured;\n const provisioned = path.join(toolsDirectory, ...ROSLYN_SERVER_FILE.split(\"/\"));\n if (existsSync(provisioned)) return provisioned;\n throw new Error(\"Microsoft.CodeAnalysis.LanguageServer does not exist on this machine: neither is \"\n + `${ROSLYN_SERVER_VARIABLE} set nor does ${provisioned} exist. A workspace fetches it with `\n + `pnpm provision --workspace, a server via pnpm provision <profile>; ${ROSLYN_SERVER_VARIABLE} overrides both`);\n};\n\nexport const executor: WorkspaceExecutorContribution = (machine) => ({\n languageServers: [{\n ...roslynLanguageServer,\n resolveRoot: (workspaceRoot, root) => machine.resolveRootFile(workspaceRoot, root, [\".sln\", \".slnx\", \".csproj\"]),\n rootDirectory: (root) => path.dirname(root),\n launch: async (context, root) => ({\n label: \"Roslyn\",\n ...dotnetCommand(serverPath(machine.toolsDirectory), [\n \"--stdio\",\n \"--logLevel\", \"Warning\",\n \"--extensionLogDirectory\", path.join(context.logDirectory, \"roslyn-logs\"),\n ]),\n cwd: path.dirname(root),\n env: context.env,\n uid: context.uid,\n gid: context.gid,\n rootUri: pathToFileURL(path.dirname(root)).href,\n languages,\n newFileSettleMs: 2_000,\n }),\n open: async (session, root, timeoutMs) => {\n const uri = pathToFileURL(root).href;\n const loaded = session.waitForNotification(timeoutMs, \"projects loaded\",\n (method) => method === \"workspace/projectInitializationComplete\");\n if (root.toLowerCase().endsWith(\".csproj\")) session.notify(\"project/open\", { projects: [uri] });\n else session.notify(\"solution/open\", { solution: uri });\n await loaded;\n return `Loaded ${path.basename(root)}`;\n },\n }],\n});\n", "import type { Orchestration, SessionLifecycleContribution } from \"@ragents/engine\";\nimport {\n languageServerOpenOperation,\n languageServerSolutionsOperation,\n type LanguageServerSolutions,\n} from \"@ragents/workspace-executor\";\nimport type { SandboxServices } from \"@ragents/host/plugin-support/workspace-sandbox-host.js\";\nimport { DISMISSED_ANSWER, type AskService } from \"@ragents/plugins/ragents.ask/server/contract.js\";\n\nexport const SOLUTION_ON_START_VARIABLE = \"ROSLYN_SOLUTION_ON_START\";\nexport const SOLUTION_PREFERRED_VARIABLE = \"ROSLYN_SOLUTION_PREFERRED\";\nexport const NO_SOLUTION = \"Load none\";\nexport const SOLUTION_QUESTION = \"Which solution should Roslyn load for diagnostics?\";\n\nexport type SolutionStartStep =\n | { kind: \"none\" }\n | { kind: \"open\"; path: string }\n | { kind: \"ask\"; options: readonly string[] };\n\nexport type SolutionAnswer =\n | { kind: \"none\" }\n | { kind: \"open\"; path: string }\n | { kind: \"forward\" };\n\n/** The preference also matches in a subdirectory, e.g. when the workspace is the folder above the checkout. */\nconst matchesPreferred = (solution: string, preferred: string): boolean => {\n const path = solution.toLowerCase();\n const expected = preferred.toLowerCase();\n return path === expected || path.endsWith(`/${expected}`);\n};\n\n/** 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. */\nexport const solutionStartStep = (listing: LanguageServerSolutions, preferred?: string): SolutionStartStep => {\n if (listing.opened || listing.solutions.length === 0) return { kind: \"none\" };\n const paths = listing.solutions.map((solution) => solution.path);\n const matching = preferred === undefined ? [] : paths.filter((path) => matchesPreferred(path, preferred));\n const candidates = matching.length > 0 ? matching : paths;\n if (candidates.length === 1) return { kind: \"open\", path: candidates[0] };\n return { kind: \"ask\", options: [...candidates, NO_SOLUTION] };\n};\n\n/** A freely worded answer goes to the coordinator so it does not get lost. */\nexport const solutionAnswer = (options: readonly string[], answer: string): SolutionAnswer => {\n const chosen = answer.trim().replaceAll(\"\\\\\", \"/\");\n if (chosen === NO_SOLUTION || answer === DISMISSED_ANSWER) return { kind: \"none\" };\n return options.includes(chosen) ? { kind: \"open\", path: chosen } : { kind: \"forward\" };\n};\n\nexport interface SolutionOnStartOptions {\n pluginId: string;\n adapterId: string;\n preferred?: string;\n sandbox: () => SandboxServices;\n runtime: () => Orchestration;\n ask: () => AskService;\n}\n\nconst messageOf = (error: unknown): string => error instanceof Error ? error.message : String(error);\n\n/** 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. */\nexport interface SolutionOnStart {\n lifecycle: SessionLifecycleContribution;\n /** Someone opened an instance; a still open start question is thereby settled without loading and without input. */\n opened: (runId: string) => void;\n}\n\nexport const createSolutionOnStart = (options: SolutionOnStartOptions): SolutionOnStart => {\n const running = new Map<string, AbortController>();\n const openTool = languageServerOpenOperation(options.adapterId);\n const questionCommand = (runId: string): string => `${options.pluginId}.solution-question:${runId}`;\n\n const marked = (runId: string): boolean => options.runtime().view(runId).pluginStates\n .some((entry) => entry.pluginId === options.pluginId && entry.scope.kind === \"run\");\n\n const load = async (runId: string, path: string, ifNoneOpen: boolean, signal: AbortSignal): Promise<void> => {\n await options.sandbox().execute(runId, openTool, { root: path, ifNoneOpen }, { signal });\n };\n\n const answered = async (runId: string, coordinatorId: string, choices: readonly string[], answer: string, signal: AbortSignal) => {\n const outcome = solutionAnswer(choices, answer);\n if (outcome.kind === \"open\") return load(runId, outcome.path, false, signal);\n if (outcome.kind === \"none\") return;\n const runtime = options.runtime();\n runtime.enqueueInput(\n { actorId: runtime.state(runId).ownerId, commandId: `${options.pluginId}.solution-answer:${runId}` },\n runId,\n { actorId: coordinatorId, content: `Answer to the question: ${SOLUTION_QUESTION}\\nAnswer: ${answer}\\n${openTool} loads a solution.` },\n );\n };\n\n const begin = async (runId: string, ownerId: string, coordinatorId: string, signal: AbortSignal): Promise<{ rest: Promise<void> }> => {\n const listing = await options.sandbox().execute(runId, languageServerSolutionsOperation(options.adapterId), null, { signal }) as LanguageServerSolutions;\n const step = solutionStartStep(listing, options.preferred);\n if (step.kind === \"none\") return { rest: Promise.resolve() };\n if (step.kind === \"open\") return { rest: load(runId, step.path, true, signal) };\n const answer = options.ask().ask(\n { runId, agentId: ownerId, turnId: null, commandId: questionCommand(runId) },\n {\n question: SOLUTION_QUESTION,\n description: \"The workspace contains several solutions; Roslyn loads the chosen one for diagnostics without a build.\",\n options: [...step.options],\n recipient: coordinatorId,\n },\n signal,\n );\n return { rest: answer.then((text) => answered(runId, coordinatorId, step.options, text, signal)) };\n };\n\n const finish = (runId: string, controller: AbortController, error?: unknown): void => {\n if (error !== undefined && !controller.signal.aborted) {\n console.error(`${options.pluginId}: solution not loaded on start of ${runId}: ${messageOf(error)}`);\n }\n if (running.get(runId) === controller) running.delete(runId);\n };\n\n const stop = ({ runId }: { runId: string }): void => {\n running.get(runId)?.abort(new Error(\"The run was stopped\"));\n running.delete(runId);\n };\n\n const opened = (runId: string): void => {\n try {\n const proposed = options.runtime().events(runId).find((event) =>\n event.type === \"action.proposed\" && event.commandId === questionCommand(runId));\n if (proposed?.type === \"action.proposed\") options.ask().withdraw(runId, proposed.payload.actionId);\n } catch (error) {\n console.error(`${options.pluginId}: start question of ${runId} not dismissed: ${messageOf(error)}`);\n }\n };\n\n const lifecycle: SessionLifecycleContribution = {\n id: `${options.pluginId}.solution-on-start`,\n sessionStarted: async ({ runId, startEntry }) => {\n if (marked(runId)) return;\n const runtime = options.runtime();\n const { ownerId, primaryActorId } = runtime.state(runId);\n runtime.replacePluginState(\n { actorId: ownerId, commandId: `${options.pluginId}.solution-on-start:${runId}` },\n runId,\n { pluginId: options.pluginId, scope: { kind: \"run\" }, state: { version: 1, startEntry: startEntry?.id ?? null } },\n );\n if (startEntry?.action === \"script\") return;\n if (!primaryActorId) throw new Error(`The run ${runId} has no coordinator on start that could receive an answer`);\n const controller = new AbortController();\n running.set(runId, controller);\n try {\n const { rest } = await begin(runId, ownerId, primaryActorId, controller.signal);\n void rest.then(() => finish(runId, controller), (error: unknown) => finish(runId, controller, error));\n } catch (error) {\n finish(runId, controller, error);\n }\n },\n stopSession: stop,\n deleteSession: stop,\n };\n return { lifecycle, opened };\n};\n", "import { stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport {\n DOTNET_INSTRUCTION,\n downloadArchive,\n dotnetRuntimeMajors,\n provisionGap,\n provisionReady,\n readProvisionStamp,\n unpackArchive,\n writeProvisionStamp,\n type ArchiveDownload,\n type PluginProvision,\n type ProvisionState,\n} from \"@ragents/host/plugin-support/provision.js\";\nimport { ROSLYN_SERVER_FILE } from \"./executor.js\";\n\nexport const ROSLYN_VERSION = \"5.4.0-2.26179.14\";\n\nconst FEED = \"https://pkgs.dev.azure.com/azure-public/vside/_packaging/vs-impl/nuget/v3/flat2\";\nconst PACKAGE = \"microsoft.codeanalysis.languageserver.neutral\";\nconst PREFIX = \"content/LanguageServer/neutral/\";\n\nexport const roslynArchiveUrl = `${FEED}/${PACKAGE}/${ROSLYN_VERSION}/${PACKAGE}.${ROSLYN_VERSION}.nupkg`;\n\nexport const createRoslynProvision = (\n download: ArchiveDownload = downloadArchive,\n runtimes: () => Promise<readonly number[] | undefined> = dotnetRuntimeMajors,\n): PluginProvision => {\n const serverFile = (target: string): string => path.join(target, ...ROSLYN_SERVER_FILE.split(\"/\"));\n const check = async (target: string): Promise<ProvisionState> => {\n if (await runtimes() === undefined) return provisionGap(\"dotnet\", DOTNET_INSTRUCTION, false);\n const installed = await stat(serverFile(target)).catch(() => undefined);\n if (installed?.isFile() && await readProvisionStamp(target) === ROSLYN_VERSION) return provisionReady;\n return provisionGap(\"roslyn\", `Microsoft.CodeAnalysis.LanguageServer ${ROSLYN_VERSION} is missing at ${serverFile(target)}`, true);\n };\n return {\n check,\n apply: async (target, log) => {\n const state = await check(target);\n if (state.kind === \"ready\") return;\n if (!state.installable) throw new Error(state.instruction);\n log(`Downloading Roslyn ${ROSLYN_VERSION}`);\n const files = await unpackArchive(await download(roslynArchiveUrl), PREFIX, target, \"roslyn\");\n if (!(await stat(serverFile(target)).catch(() => undefined))?.isFile()) {\n throw new Error(`The package ${PACKAGE} ${ROSLYN_VERSION} does not contain ${ROSLYN_SERVER_FILE}`);\n }\n await writeProvisionStamp(target, ROSLYN_VERSION);\n log(`${files} files to ${path.join(target, \"roslyn\")}`);\n },\n };\n};\n\nexport const provision = createRoslynProvision();\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["path", "path", "path", "path", "path"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=(r,
|
|
1
|
+
var e=(r,o)=>{let t=globalThis.__ragentsHostModules?.[r];if(t===void 0)throw new Error(`The host does not provide ${r}`);if(!(o in t))throw new Error(`The host does not provide ${o} from ${r}; the bundle was built against a newer host`);return t[o]};var a=e("@ragents/web/language-server/language-server-plugin","languageServerWebPlugin");var n=e("react/jsx-runtime","jsx");var b=a("ragents.lsp-roslyn",s);function s(){return n("span",{"aria-hidden":"true",className:"font-mono text-[12px] font-bold",children:"C#"})}export{b as webPlugin};
|
|
2
2
|
//# sourceMappingURL=/plugins/ragents.lsp-roslyn/web/index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["ragents-host-read:read", "ragents-host-value:@ragents/web/language-server/language-server-plugin#languageServerWebPlugin", "ragents-host-value:react/jsx-runtime#jsx", "../../../plugins/ragents.lsp-roslyn/web/index.tsx"],
|
|
4
|
-
"sourcesContent": ["export const read = (specifier, name) => {\n const module = globalThis[\"__ragentsHostModules\"]?.[specifier];\n if (module === undefined) throw new Error(`
|
|
5
|
-
"mappings": "AAAO,IAAMA,EAAO,CAACC,EAAWC,IAAS,CACvC,IAAMC,EAAS,WAAW,uBAA0BF,CAAS,EAC7D,GAAIE,IAAW,OAAW,MAAM,IAAI,MAAM,
|
|
4
|
+
"sourcesContent": ["export const read = (specifier, name) => {\n const module = globalThis[\"__ragentsHostModules\"]?.[specifier];\n if (module === undefined) throw new Error(`The host does not provide ${specifier}`);\n if (!(name in module)) throw new Error(`The host does not provide ${name} from ${specifier}; the bundle was built against a newer host`);\n return module[name];\n};", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/language-server/language-server-plugin\", \"languageServerWebPlugin\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsx\");\n", "import { languageServerWebPlugin } from \"@ragents/web/language-server/language-server-plugin\";\n\nexport const webPlugin = languageServerWebPlugin(\"ragents.lsp-roslyn\", LanguageIcon);\n\nfunction LanguageIcon() {\n return <span aria-hidden=\"true\" className=\"font-mono text-[12px] font-bold\">C#</span>;\n}\n"],
|
|
5
|
+
"mappings": "AAAO,IAAMA,EAAO,CAACC,EAAWC,IAAS,CACvC,IAAMC,EAAS,WAAW,uBAA0BF,CAAS,EAC7D,GAAIE,IAAW,OAAW,MAAM,IAAI,MAAM,6BAA6BF,CAAS,EAAE,EAClF,GAAI,EAAEC,KAAQC,GAAS,MAAM,IAAI,MAAM,6BAA6BD,CAAI,SAASD,CAAS,6CAA6C,EACvI,OAAOE,EAAOD,CAAI,CACpB,ECJA,IAAOE,EAAQC,EAAK,sDAAuD,yBAAyB,ECApG,IAAOC,EAAQC,EAAK,oBAAqB,KAAK,ECCvC,IAAMC,EAAYC,EAAwB,qBAAsBC,CAAY,EAEnF,SAASA,GAAe,CACtB,OAAOC,EAAC,QAAK,cAAY,OAAO,UAAU,kCAAkC,cAAE,CAChF",
|
|
6
6
|
"names": ["read", "specifier", "name", "module", "language_server_plugin_languageServerWebPlugin_default", "read", "jsx_runtime_jsx_default", "read", "webPlugin", "language_server_plugin_languageServerWebPlugin_default", "LanguageIcon", "jsx_runtime_jsx_default"]
|
|
7
7
|
}
|
|
@@ -30,7 +30,7 @@ var executor = (machine) => ({
|
|
|
30
30
|
command: process.execPath,
|
|
31
31
|
args: [machine.hostPackageFile(context.hostRoot, "typescript-language-server/lib/cli.mjs"), "--stdio"],
|
|
32
32
|
cwd: root,
|
|
33
|
-
//
|
|
33
|
+
// In the extension host process.execPath is Electron; without this variable it starts the application instead of the script.
|
|
34
34
|
env: { ...context.env, ELECTRON_RUN_AS_NODE: "1" },
|
|
35
35
|
uid: context.uid,
|
|
36
36
|
gid: context.gid,
|
|
@@ -39,7 +39,7 @@ var executor = (machine) => ({
|
|
|
39
39
|
languages,
|
|
40
40
|
publishesOnlyChangedDiagnostics: true
|
|
41
41
|
}),
|
|
42
|
-
open: async (_session, root) => `TypeScript
|
|
42
|
+
open: async (_session, root) => `TypeScript server ready on ${path.basename(root)}; projects are loaded per file from the nearest tsconfig.json`
|
|
43
43
|
}]
|
|
44
44
|
});
|
|
45
45
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../plugins/ragents.lsp-typescript/executor.ts"],
|
|
4
|
-
"sourcesContent": ["import { stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { LanguageServerDescription, WorkspaceExecutorContribution } from \"@ragents/workspace-executor\";\n\nconst languages = {\n \".ts\": \"typescript\",\n \".tsx\": \"typescriptreact\",\n \".mts\": \"typescript\",\n \".cts\": \"typescript\",\n \".js\": \"javascript\",\n \".jsx\": \"javascriptreact\",\n} as const;\n\nexport const typescriptLanguageServer: LanguageServerDescription = {\n id: \"typescript\",\n label: \"TypeScript\",\n languages,\n rootDescription: \"the directory whose tsconfig.json projects should be served (e.g. src)\",\n};\n\nconst hasWorkspaceTypeScript = (root: string): Promise<boolean> =>\n stat(path.join(root, \"node_modules\", \"typescript\", \"lib\", \"tsserver.js\")).then((info) => info.isFile(), () => false);\n\n/**
|
|
5
|
-
"mappings": ";;;;AAAA,SAAS,YAAY;AACrB,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAG9B,IAAM,YAAY;AAAA,EAChB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAEO,IAAM,2BAAsD;AAAA,EACjE,IAAI;AAAA,EACJ,OAAO;AAAA,EACP;AAAA,EACA,iBAAiB;AACnB;AAEA,IAAM,yBAAyB,CAAC,SAC9B,KAAK,KAAK,KAAK,MAAM,gBAAgB,cAAc,OAAO,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,OAAO,GAAG,MAAM,KAAK;AAG9G,IAAM,WAA0C,CAAC,aAAa;AAAA,EACnE,iBAAiB,CAAC;AAAA,IAChB,GAAG;AAAA,IACH,aAAa,QAAQ;AAAA,IACrB,eAAe,CAAC,SAAS;AAAA,IACzB,QAAQ,OAAO,SAAS,UAAU;AAAA,MAChC,OAAO;AAAA,MACP,SAAS,QAAQ;AAAA,MACjB,MAAM,CAAC,QAAQ,gBAAgB,QAAQ,UAAU,wCAAwC,GAAG,SAAS;AAAA,MACrG,KAAK;AAAA;AAAA,MAEL,KAAK,EAAE,GAAG,QAAQ,KAAK,sBAAsB,IAAI;AAAA,MACjD,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,SAAS,cAAc,IAAI,EAAE;AAAA,MAC7B,uBAAuB,MAAM,uBAAuB,IAAI,IACpD,CAAC,IACD,EAAE,UAAU,EAAE,MAAM,KAAK,QAAQ,QAAQ,gBAAgB,QAAQ,UAAU,YAAY,CAAC,EAAE,EAAE;AAAA,MAChG;AAAA,MACA,iCAAiC;AAAA,IACnC;AAAA,IACA,MAAM,OAAO,UAAU,SACrB,
|
|
4
|
+
"sourcesContent": ["import { stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { LanguageServerDescription, WorkspaceExecutorContribution } from \"@ragents/workspace-executor\";\n\nconst languages = {\n \".ts\": \"typescript\",\n \".tsx\": \"typescriptreact\",\n \".mts\": \"typescript\",\n \".cts\": \"typescript\",\n \".js\": \"javascript\",\n \".jsx\": \"javascriptreact\",\n} as const;\n\nexport const typescriptLanguageServer: LanguageServerDescription = {\n id: \"typescript\",\n label: \"TypeScript\",\n languages,\n rootDescription: \"the directory whose tsconfig.json projects should be served (e.g. src)\",\n};\n\nconst hasWorkspaceTypeScript = (root: string): Promise<boolean> =>\n stat(path.join(root, \"node_modules\", \"typescript\", \"lib\", \"tsserver.js\")).then((info) => info.isFile(), () => false);\n\n/** Language server and compiler live in the node_modules of this machine's host; without a host they do not exist here. */\nexport const executor: WorkspaceExecutorContribution = (machine) => ({\n languageServers: [{\n ...typescriptLanguageServer,\n resolveRoot: machine.resolveRootDirectory,\n rootDirectory: (root) => root,\n launch: async (context, root) => ({\n label: \"TypeScript\",\n command: process.execPath,\n args: [machine.hostPackageFile(context.hostRoot, \"typescript-language-server/lib/cli.mjs\"), \"--stdio\"],\n cwd: root,\n // In the extension host process.execPath is Electron; without this variable it starts the application instead of the script.\n env: { ...context.env, ELECTRON_RUN_AS_NODE: \"1\" },\n uid: context.uid,\n gid: context.gid,\n rootUri: pathToFileURL(root).href,\n initializationOptions: await hasWorkspaceTypeScript(root)\n ? {}\n : { tsserver: { path: path.dirname(machine.hostPackageFile(context.hostRoot, \"typescript\")) } },\n languages,\n publishesOnlyChangedDiagnostics: true,\n }),\n open: async (_session, root) =>\n `TypeScript server ready on ${path.basename(root)}; projects are loaded per file from the nearest tsconfig.json`,\n }],\n});\n"],
|
|
5
|
+
"mappings": ";;;;AAAA,SAAS,YAAY;AACrB,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAG9B,IAAM,YAAY;AAAA,EAChB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAEO,IAAM,2BAAsD;AAAA,EACjE,IAAI;AAAA,EACJ,OAAO;AAAA,EACP;AAAA,EACA,iBAAiB;AACnB;AAEA,IAAM,yBAAyB,CAAC,SAC9B,KAAK,KAAK,KAAK,MAAM,gBAAgB,cAAc,OAAO,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,OAAO,GAAG,MAAM,KAAK;AAG9G,IAAM,WAA0C,CAAC,aAAa;AAAA,EACnE,iBAAiB,CAAC;AAAA,IAChB,GAAG;AAAA,IACH,aAAa,QAAQ;AAAA,IACrB,eAAe,CAAC,SAAS;AAAA,IACzB,QAAQ,OAAO,SAAS,UAAU;AAAA,MAChC,OAAO;AAAA,MACP,SAAS,QAAQ;AAAA,MACjB,MAAM,CAAC,QAAQ,gBAAgB,QAAQ,UAAU,wCAAwC,GAAG,SAAS;AAAA,MACrG,KAAK;AAAA;AAAA,MAEL,KAAK,EAAE,GAAG,QAAQ,KAAK,sBAAsB,IAAI;AAAA,MACjD,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,SAAS,cAAc,IAAI,EAAE;AAAA,MAC7B,uBAAuB,MAAM,uBAAuB,IAAI,IACpD,CAAC,IACD,EAAE,UAAU,EAAE,MAAM,KAAK,QAAQ,QAAQ,gBAAgB,QAAQ,UAAU,YAAY,CAAC,EAAE,EAAE;AAAA,MAChG;AAAA,MACA,iCAAiC;AAAA,IACnC;AAAA,IACA,MAAM,OAAO,UAAU,SACrB,8BAA8B,KAAK,SAAS,IAAI,CAAC;AAAA,EACrD,CAAC;AACH;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
]
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
|
-
"stand": "
|
|
21
|
-
"sourceStand": "
|
|
20
|
+
"stand": "8387de707a4fe8fdb8c67315346522b331728f8adf51a7fadda8db662681f0c4",
|
|
21
|
+
"sourceStand": "45a23160cdcf94927628bb838817bef85c424507d20c4241ba97e9f33d9be156",
|
|
22
22
|
"server": "server/index.js",
|
|
23
23
|
"web": {
|
|
24
24
|
"entry": "web/index.js",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../plugins/ragents.lsp-typescript/server/index.ts", "../../../plugins/ragents.lsp-typescript/executor.ts"],
|
|
4
|
-
"sourcesContent": ["import { createLanguageServerPlugin } from \"@ragents/host/plugin-support/language-server/plugin.js\";\nimport type { PluginModule } from \"@ragents/host/plugin-support/plugin-module.js\";\nimport { typescriptLanguageServer } from \"../executor.js\";\n\nexport const plugin: PluginModule = {\n create: () => createLanguageServerPlugin({ id: \"ragents.lsp-typescript\", languageServer: typescriptLanguageServer }),\n};\n", "import { stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { LanguageServerDescription, WorkspaceExecutorContribution } from \"@ragents/workspace-executor\";\n\nconst languages = {\n \".ts\": \"typescript\",\n \".tsx\": \"typescriptreact\",\n \".mts\": \"typescript\",\n \".cts\": \"typescript\",\n \".js\": \"javascript\",\n \".jsx\": \"javascriptreact\",\n} as const;\n\nexport const typescriptLanguageServer: LanguageServerDescription = {\n id: \"typescript\",\n label: \"TypeScript\",\n languages,\n rootDescription: \"the directory whose tsconfig.json projects should be served (e.g. src)\",\n};\n\nconst hasWorkspaceTypeScript = (root: string): Promise<boolean> =>\n stat(path.join(root, \"node_modules\", \"typescript\", \"lib\", \"tsserver.js\")).then((info) => info.isFile(), () => false);\n\n/**
|
|
4
|
+
"sourcesContent": ["import { createLanguageServerPlugin } from \"@ragents/host/plugin-support/language-server/plugin.js\";\nimport type { PluginModule } from \"@ragents/host/plugin-support/plugin-module.js\";\nimport { typescriptLanguageServer } from \"../executor.js\";\n\nexport const plugin: PluginModule = {\n create: () => createLanguageServerPlugin({ id: \"ragents.lsp-typescript\", languageServer: typescriptLanguageServer }),\n};\n", "import { stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { LanguageServerDescription, WorkspaceExecutorContribution } from \"@ragents/workspace-executor\";\n\nconst languages = {\n \".ts\": \"typescript\",\n \".tsx\": \"typescriptreact\",\n \".mts\": \"typescript\",\n \".cts\": \"typescript\",\n \".js\": \"javascript\",\n \".jsx\": \"javascriptreact\",\n} as const;\n\nexport const typescriptLanguageServer: LanguageServerDescription = {\n id: \"typescript\",\n label: \"TypeScript\",\n languages,\n rootDescription: \"the directory whose tsconfig.json projects should be served (e.g. src)\",\n};\n\nconst hasWorkspaceTypeScript = (root: string): Promise<boolean> =>\n stat(path.join(root, \"node_modules\", \"typescript\", \"lib\", \"tsserver.js\")).then((info) => info.isFile(), () => false);\n\n/** Language server and compiler live in the node_modules of this machine's host; without a host they do not exist here. */\nexport const executor: WorkspaceExecutorContribution = (machine) => ({\n languageServers: [{\n ...typescriptLanguageServer,\n resolveRoot: machine.resolveRootDirectory,\n rootDirectory: (root) => root,\n launch: async (context, root) => ({\n label: \"TypeScript\",\n command: process.execPath,\n args: [machine.hostPackageFile(context.hostRoot, \"typescript-language-server/lib/cli.mjs\"), \"--stdio\"],\n cwd: root,\n // In the extension host process.execPath is Electron; without this variable it starts the application instead of the script.\n env: { ...context.env, ELECTRON_RUN_AS_NODE: \"1\" },\n uid: context.uid,\n gid: context.gid,\n rootUri: pathToFileURL(root).href,\n initializationOptions: await hasWorkspaceTypeScript(root)\n ? {}\n : { tsserver: { path: path.dirname(machine.hostPackageFile(context.hostRoot, \"typescript\")) } },\n languages,\n publishesOnlyChangedDiagnostics: true,\n }),\n open: async (_session, root) =>\n `TypeScript server ready on ${path.basename(root)}; projects are loaded per file from the nearest tsconfig.json`,\n }],\n});\n"],
|
|
5
5
|
"mappings": ";;;;AAAA,SAAS,kCAAkC;;;ACA3C,SAAS,YAAY;AACrB,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAG9B,IAAM,YAAY;AAAA,EAChB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAEO,IAAM,2BAAsD;AAAA,EACjE,IAAI;AAAA,EACJ,OAAO;AAAA,EACP;AAAA,EACA,iBAAiB;AACnB;;;ADfO,IAAM,SAAuB;AAAA,EAClC,QAAQ,MAAM,2BAA2B,EAAE,IAAI,0BAA0B,gBAAgB,yBAAyB,CAAC;AACrH;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=(r,
|
|
1
|
+
var e=(r,o)=>{let t=globalThis.__ragentsHostModules?.[r];if(t===void 0)throw new Error(`The host does not provide ${r}`);if(!(o in t))throw new Error(`The host does not provide ${o} from ${r}; the bundle was built against a newer host`);return t[o]};var a=e("@ragents/web/language-server/language-server-plugin","languageServerWebPlugin");var n=e("react/jsx-runtime","jsx");var b=a("ragents.lsp-typescript",s);function s(){return n("span",{"aria-hidden":"true",className:"font-mono text-[12px] font-bold",children:"TS"})}export{b as webPlugin};
|
|
2
2
|
//# sourceMappingURL=/plugins/ragents.lsp-typescript/web/index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["ragents-host-read:read", "ragents-host-value:@ragents/web/language-server/language-server-plugin#languageServerWebPlugin", "ragents-host-value:react/jsx-runtime#jsx", "../../../plugins/ragents.lsp-typescript/web/index.tsx"],
|
|
4
|
-
"sourcesContent": ["export const read = (specifier, name) => {\n const module = globalThis[\"__ragentsHostModules\"]?.[specifier];\n if (module === undefined) throw new Error(`
|
|
5
|
-
"mappings": "AAAO,IAAMA,EAAO,CAACC,EAAWC,IAAS,CACvC,IAAMC,EAAS,WAAW,uBAA0BF,CAAS,EAC7D,GAAIE,IAAW,OAAW,MAAM,IAAI,MAAM,
|
|
4
|
+
"sourcesContent": ["export const read = (specifier, name) => {\n const module = globalThis[\"__ragentsHostModules\"]?.[specifier];\n if (module === undefined) throw new Error(`The host does not provide ${specifier}`);\n if (!(name in module)) throw new Error(`The host does not provide ${name} from ${specifier}; the bundle was built against a newer host`);\n return module[name];\n};", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/language-server/language-server-plugin\", \"languageServerWebPlugin\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsx\");\n", "import { languageServerWebPlugin } from \"@ragents/web/language-server/language-server-plugin\";\n\nexport const webPlugin = languageServerWebPlugin(\"ragents.lsp-typescript\", LanguageIcon);\n\nfunction LanguageIcon() {\n return <span aria-hidden=\"true\" className=\"font-mono text-[12px] font-bold\">TS</span>;\n}\n"],
|
|
5
|
+
"mappings": "AAAO,IAAMA,EAAO,CAACC,EAAWC,IAAS,CACvC,IAAMC,EAAS,WAAW,uBAA0BF,CAAS,EAC7D,GAAIE,IAAW,OAAW,MAAM,IAAI,MAAM,6BAA6BF,CAAS,EAAE,EAClF,GAAI,EAAEC,KAAQC,GAAS,MAAM,IAAI,MAAM,6BAA6BD,CAAI,SAASD,CAAS,6CAA6C,EACvI,OAAOE,EAAOD,CAAI,CACpB,ECJA,IAAOE,EAAQC,EAAK,sDAAuD,yBAAyB,ECApG,IAAOC,EAAQC,EAAK,oBAAqB,KAAK,ECCvC,IAAMC,EAAYC,EAAwB,yBAA0BC,CAAY,EAEvF,SAASA,GAAe,CACtB,OAAOC,EAAC,QAAK,cAAY,OAAO,UAAU,kCAAkC,cAAE,CAChF",
|
|
6
6
|
"names": ["read", "specifier", "name", "module", "language_server_plugin_languageServerWebPlugin_default", "read", "jsx_runtime_jsx_default", "read", "webPlugin", "language_server_plugin_languageServerWebPlugin_default", "LanguageIcon", "jsx_runtime_jsx_default"]
|
|
7
7
|
}
|
|
@@ -10,7 +10,11 @@
|
|
|
10
10
|
"writeJson"
|
|
11
11
|
],
|
|
12
12
|
"@ragents/host/plugin-support/model-aliases": [
|
|
13
|
-
"configuredModelAliases"
|
|
13
|
+
"configuredModelAliases",
|
|
14
|
+
"validatedAliasModel"
|
|
15
|
+
],
|
|
16
|
+
"@ragents/host/plugin-support/model-providers": [
|
|
17
|
+
"configuredModelProviders"
|
|
14
18
|
],
|
|
15
19
|
"@ragents/host/plugin-support/model-upstreams": [
|
|
16
20
|
"modelUpstreamsToken"
|
|
@@ -21,8 +25,8 @@
|
|
|
21
25
|
},
|
|
22
26
|
"web": {}
|
|
23
27
|
},
|
|
24
|
-
"stand": "
|
|
25
|
-
"sourceStand": "
|
|
28
|
+
"stand": "9090692eca49235944f149b25dccdc986a3c638007d8da2fb35f74d942454379",
|
|
29
|
+
"sourceStand": "03bfb335b5c9b61cad1fe16058d6f68391607b4026a28d20b67711972051ea83",
|
|
26
30
|
"server": "server/index.js",
|
|
27
31
|
"exports": {
|
|
28
32
|
"server": {},
|