@abot-ai/runtime 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/src/bridge/request-steering.js +60 -15
- package/dist/src/capabilities/normal-invocation/contracts.d.ts +3 -0
- package/dist/src/capabilities/normal-invocation/output-channels.d.ts +10 -0
- package/dist/src/capabilities/normal-invocation/output-channels.js +29 -0
- package/dist/src/capabilities/normal-invocation/validator.js +4 -2
- package/dist/src/capabilities/tool-types.d.ts +1 -1
- package/dist/src/cli/host-companion-bundle.mjs +7570 -6781
- package/dist/src/cli/host-companion-entry.js +5 -22
- package/dist/src/cli/host-companion-input.d.ts +3 -0
- package/dist/src/cli/host-companion-input.js +21 -0
- package/dist/src/cli/host-companion-lifecycle.d.ts +11 -0
- package/dist/src/cli/host-companion-lifecycle.js +32 -0
- package/dist/src/cli/host-companion-setup-target.d.ts +4 -0
- package/dist/src/cli/host-companion-setup-target.js +17 -0
- package/dist/src/cli/host-companion-startup.d.ts +2 -0
- package/dist/src/cli/host-companion-startup.js +7 -2
- package/dist/src/cli/host-companion.d.ts +6 -0
- package/dist/src/cli/host-companion.js +30 -27
- package/dist/src/cli/windows-companion-store-entry.d.ts +9 -0
- package/dist/src/cli/windows-companion-store-entry.js +67 -0
- package/dist/src/computer-access/command-output-capture.d.ts +37 -0
- package/dist/src/computer-access/command-output-capture.js +136 -0
- package/dist/src/computer-access/command-output-retention.d.ts +5 -0
- package/dist/src/computer-access/command-output-retention.js +90 -0
- package/dist/src/computer-access/command-output.d.ts +7 -0
- package/dist/src/computer-access/command-output.js +1 -0
- package/dist/src/computer-access/commands.d.ts +1 -0
- package/dist/src/computer-access/commands.js +1 -1
- package/dist/src/computer-access/companion/command-output-protocol.d.ts +12 -0
- package/dist/src/computer-access/companion/command-output-protocol.js +28 -0
- package/dist/src/computer-access/companion/command-output.d.ts +13 -0
- package/dist/src/computer-access/companion/command-output.js +110 -0
- package/dist/src/computer-access/companion/install-link-macos.d.ts +7 -0
- package/dist/src/computer-access/companion/install-link-macos.js +48 -0
- package/dist/src/computer-access/companion/install-link-registration.d.ts +4 -0
- package/dist/src/computer-access/companion/install-link-registration.js +184 -0
- package/dist/src/computer-access/companion/install-link-windows.d.ts +4 -0
- package/dist/src/computer-access/companion/install-link-windows.js +65 -0
- package/dist/src/computer-access/companion/install-link.d.ts +9 -0
- package/dist/src/computer-access/companion/install-link.js +54 -0
- package/dist/src/computer-access/companion/native-messages.js +3 -0
- package/dist/src/computer-access/companion/native-session.d.ts +1 -0
- package/dist/src/computer-access/companion/native-session.js +14 -2
- package/dist/src/computer-access/companion/native-supervisor.js +1 -0
- package/dist/src/computer-access/companion/notification-windows.d.ts +1 -1
- package/dist/src/computer-access/companion/notification-windows.js +8 -3
- package/dist/src/computer-access/companion/protocol.d.ts +1 -1
- package/dist/src/computer-access/companion/protocol.js +6 -0
- package/dist/src/computer-access/companion/release-version.d.ts +1 -1
- package/dist/src/computer-access/companion/release-version.js +1 -1
- package/dist/src/computer-access/companion/windows-store/connection-error.d.ts +7 -0
- package/dist/src/computer-access/companion/windows-store/connection-error.js +19 -0
- package/dist/src/computer-access/companion/windows-store/connection-link.d.ts +13 -0
- package/dist/src/computer-access/companion/windows-store/connection-link.js +109 -0
- package/dist/src/computer-access/companion/windows-store/identity.d.ts +13 -0
- package/dist/src/computer-access/companion/windows-store/identity.js +13 -0
- package/dist/src/computer-access/companion/windows-store/lifecycle.d.ts +5 -0
- package/dist/src/computer-access/companion/windows-store/lifecycle.js +90 -0
- package/dist/src/computer-access/contracts.d.ts +1 -1
- package/dist/src/computer-access/handlers.d.ts +2 -1
- package/dist/src/computer-access/handlers.js +5 -1
- package/dist/src/computer-access/process-capture.d.ts +6 -0
- package/dist/src/computer-access/process-capture.js +1 -0
- package/dist/src/computer-access/process-result.d.ts +2 -0
- package/dist/src/computer-access/process-result.js +14 -6
- package/dist/src/computer-access/process-runner.d.ts +2 -1
- package/dist/src/computer-access/process-runner.js +21 -13
- package/dist/src/model-gateway/server/configuration.d.ts +2 -0
- package/dist/src/model-gateway/server/configuration.js +73 -21
- package/dist/src/plugin-contract/install-source.d.ts +13 -0
- package/dist/src/plugin-contract/install-source.js +99 -0
- package/dist/src/plugin-contract/manifest.d.ts +2 -1
- package/dist/src/plugin-sdk/computer-access.d.ts +8 -0
- package/dist/src/plugin-sdk/computer-access.js +5 -0
- package/dist/src/runtime/adapters/in-memory-session-store.js +6 -16
- package/dist/src/runtime/admin/config-control.js +2 -1
- package/dist/src/runtime/automations/catalog.d.ts +3 -0
- package/dist/src/runtime/automations/catalog.js +1 -0
- package/dist/src/runtime/automations/model-dependency-projection.d.ts +2 -0
- package/dist/src/runtime/automations/service.d.ts +2 -0
- package/dist/src/runtime/capabilities/automation-builder/authoring-reference.d.ts +10 -5
- package/dist/src/runtime/capabilities/automation-builder/authoring-reference.js +8 -7
- package/dist/src/runtime/capabilities/automation-builder/payload-instructions.d.ts +2 -2
- package/dist/src/runtime/capabilities/automation-builder/payload-instructions.js +2 -2
- package/dist/src/runtime/capabilities/automation-builder/tool-contract.d.ts +2 -2
- package/dist/src/runtime/capabilities/automations/authoring-catalog.js +1 -1
- package/dist/src/runtime/capabilities/automations/authoring-preparation.d.ts +11 -5
- package/dist/src/runtime/capabilities/automations/tool-module.js +1 -1
- package/dist/src/runtime/capabilities/request-permission-catalog.d.ts +3 -1
- package/dist/src/runtime/capabilities/request-permission-catalog.js +21 -2
- package/dist/src/runtime/capabilities/request-permission-tool-registry.d.ts +2 -1
- package/dist/src/runtime/capabilities/request-permission-tool-registry.js +18 -10
- package/dist/src/runtime/capabilities/request-runtime-tool-registry.d.ts +2 -0
- package/dist/src/runtime/capabilities/request-runtime-tool-registry.js +1 -1
- package/dist/src/runtime/capabilities/scheduling/create-operations.d.ts +6 -0
- package/dist/src/runtime/config/builders.js +6 -5
- package/dist/src/runtime/config/effective-model-config-validation.js +4 -35
- package/dist/src/runtime/config/fields.js +15 -0
- package/dist/src/runtime/config/model-context-capacity.d.ts +20 -0
- package/dist/src/runtime/config/model-context-capacity.js +55 -0
- package/dist/src/runtime/config/model-execution-policy.d.ts +5 -1
- package/dist/src/runtime/config/model-execution-policy.js +16 -0
- package/dist/src/runtime/config/model-plugin-config.d.ts +8 -0
- package/dist/src/runtime/config/model-plugin-config.js +40 -0
- package/dist/src/runtime/config/schema.js +5 -1
- package/dist/src/runtime/config/validation/model-profile-validation.js +2 -0
- package/dist/src/runtime/config/validation/runtime-config-validation-contract.d.ts +3 -1
- package/dist/src/runtime/config/validation/runtime-config-validation-contract.js +3 -1
- package/dist/src/runtime/config/validation/runtime-root-section-validation.js +11 -4
- package/dist/src/runtime/config/validation/web-ui-config-validation.js +3 -2
- package/dist/src/runtime/config/web-ui.d.ts +5 -0
- package/dist/src/runtime/config/web-ui.js +5 -0
- package/dist/src/runtime/config.js +2 -0
- package/dist/src/runtime/local-application.d.ts +2 -0
- package/dist/src/runtime/local-host/app-owner.js +50 -6
- package/dist/src/runtime/local-host/app-request-control.d.ts +3 -1
- package/dist/src/runtime/local-host/app-request-control.js +91 -11
- package/dist/src/runtime/local-host/client-requests.js +32 -5
- package/dist/src/runtime/local-host/client-services.d.ts +2 -0
- package/dist/src/runtime/local-host/local-request-diagnostics.d.ts +9 -0
- package/dist/src/runtime/local-host/local-request-diagnostics.js +47 -0
- package/dist/src/runtime/local-host/saved-approvals.js +23 -2
- package/dist/src/runtime/model/model-selection.js +4 -1
- package/dist/src/runtime/observability/request-control-diagnostics.d.ts +6 -0
- package/dist/src/runtime/observability/request-control-diagnostics.js +52 -0
- package/dist/src/runtime/plugins/configuration-context.d.ts +9 -0
- package/dist/src/runtime/plugins/configuration-context.js +42 -0
- package/dist/src/runtime/plugins/configuration-settings.d.ts +2 -0
- package/dist/src/runtime/plugins/configuration-settings.js +26 -0
- package/dist/src/runtime/plugins/configuration-store.d.ts +23 -0
- package/dist/src/runtime/plugins/configuration-store.js +100 -0
- package/dist/src/runtime/plugins/configuration-write.d.ts +5 -0
- package/dist/src/runtime/plugins/configuration-write.js +58 -0
- package/dist/src/runtime/plugins/installation/archive.d.ts +2 -0
- package/dist/src/runtime/plugins/installation/archive.js +107 -0
- package/dist/src/runtime/plugins/installation/github-download.d.ts +9 -0
- package/dist/src/runtime/plugins/installation/github-download.js +72 -0
- package/dist/src/runtime/plugins/installation/installed-package.d.ts +9 -0
- package/dist/src/runtime/plugins/installation/installed-package.js +66 -0
- package/dist/src/runtime/plugins/installation/package.d.ts +45 -0
- package/dist/src/runtime/plugins/installation/package.js +79 -0
- package/dist/src/runtime/plugins/installation/portable-path.d.ts +2 -0
- package/dist/src/runtime/plugins/installation/portable-path.js +10 -0
- package/dist/src/runtime/plugins/installation/publication.d.ts +10 -0
- package/dist/src/runtime/plugins/installation/publication.js +17 -0
- package/dist/src/runtime/plugins/installation/service.d.ts +41 -0
- package/dist/src/runtime/plugins/installation/service.js +80 -0
- package/dist/src/runtime/plugins/loader.js +15 -29
- package/dist/src/runtime/plugins/manifest-projection.js +1 -0
- package/dist/src/runtime/plugins/manifest-validator.js +3 -0
- package/dist/src/runtime/plugins/module-cache.d.ts +2 -0
- package/dist/src/runtime/plugins/module-cache.js +19 -0
- package/dist/src/runtime/plugins/selection.d.ts +2 -0
- package/dist/src/runtime/plugins/selection.js +16 -11
- package/dist/src/runtime/ports.d.ts +6 -4
- package/dist/src/runtime/request/dependencies.d.ts +2 -1
- package/dist/src/runtime/request/execution-payload-compacted-evidence.d.ts +1 -1
- package/dist/src/runtime/request/handler.js +8 -0
- package/dist/src/runtime/request/prepared-execution.js +6 -1
- package/dist/src/runtime/request/request-steering.d.ts +4 -0
- package/dist/src/runtime/request/request-steering.js +37 -12
- package/dist/src/runtime/request/worker-capability-composition.d.ts +2 -0
- package/dist/src/runtime/request/worker-capability-composition.js +4 -1
- package/dist/src/runtime/scheduler/journal-index-state.d.ts +1 -1
- package/dist/src/sessions/assistant-initiative-message.d.ts +3 -0
- package/dist/src/sessions/assistant-initiative-message.js +12 -0
- package/dist/src/sessions/assistant-initiative.d.ts +2 -2
- package/dist/src/sessions/assistant-initiative.js +1 -7
- package/dist/src/sessions/durable-session-commit.d.ts +2 -1
- package/dist/src/sessions/durable-session-commit.js +6 -1
- package/dist/src/sessions/metadata/projection.d.ts +15 -0
- package/dist/src/sessions/metadata/projection.js +55 -0
- package/dist/src/sessions/metadata/publication.d.ts +12 -0
- package/dist/src/sessions/metadata/publication.js +78 -0
- package/dist/src/sessions/metadata/source-receipt.d.ts +5 -0
- package/dist/src/sessions/metadata/source-receipt.js +42 -0
- package/dist/src/sessions/metadata/store.d.ts +7 -0
- package/dist/src/sessions/metadata/store.js +119 -0
- package/dist/src/sessions/record/projection.d.ts +3 -1
- package/dist/src/sessions/record/projection.js +26 -18
- package/dist/src/sessions/request-lifecycle/service.js +3 -3
- package/dist/src/sessions/session-service.d.ts +2 -4
- package/dist/src/sessions/session-service.js +4 -16
- package/dist/src/sessions/session-store.d.ts +2 -1
- package/dist/src/sessions/session-store.js +9 -3
- package/dist/src/sessions/snapshot.d.ts +17 -0
- package/dist/src/sessions/snapshot.js +105 -0
- package/dist/src/sessions/types.d.ts +2 -0
- package/dist/src/shared/tool-selection.d.ts +2 -0
- package/dist/src/shared/tool-selection.js +7 -0
- package/dist/src/web-ui/app/ARCHITECTURE.md +14 -0
- package/dist/src/web-ui/app/app.js +6 -3
- package/dist/src/web-ui/app/components/config-workspace/config-model.js +2 -0
- package/dist/src/web-ui/app/components/config-workspace/model-plugin-permissions.js +130 -0
- package/dist/src/web-ui/app/components/config-workspace/model-plugin-selection.js +180 -0
- package/dist/src/web-ui/app/components/config-workspace/model-plugin-view-state.js +114 -0
- package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +3 -0
- package/dist/src/web-ui/app/components/config-workspace/model-summary.js +39 -0
- package/dist/src/web-ui/app/components/config-workspace/summary-rendering.js +30 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +37 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +2 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +9 -1
- package/dist/src/web-ui/app/components/config-workspace/workspace-view.js +23 -67
- package/dist/src/web-ui/app/components/config-workspace.js +11 -2
- package/dist/src/web-ui/app/components/conversation-view.js +36 -5
- package/dist/src/web-ui/app/components/dashboard/recent-conversations.js +2 -1
- package/dist/src/web-ui/app/components/dashboard/workspace.js +2 -1
- package/dist/src/web-ui/app/components/operations-summary.js +105 -0
- package/dist/src/web-ui/app/components/passive-learning/home.js +1 -9
- package/dist/src/web-ui/app/components/plugins/configuration-draft.js +34 -0
- package/dist/src/web-ui/app/components/plugins/configuration-editor.js +147 -0
- package/dist/src/web-ui/app/components/plugins/configuration-fields.js +103 -0
- package/dist/src/web-ui/app/components/plugins/configuration-retained-secrets.js +20 -0
- package/dist/src/web-ui/app/components/plugins/configuration-settings.js +108 -0
- package/dist/src/web-ui/app/components/plugins/discovery-rendering.js +37 -0
- package/dist/src/web-ui/app/components/plugins/installation.js +212 -0
- package/dist/src/web-ui/app/components/plugins/manager.js +160 -6
- package/dist/src/web-ui/app/components/plugins/removal.js +130 -0
- package/dist/src/web-ui/app/components/plugins/rendering.js +14 -2
- package/dist/src/web-ui/app/components/plugins/summary.js +54 -0
- package/dist/src/web-ui/app/components/plugins/tabs.js +31 -0
- package/dist/src/web-ui/app/components/plugins/view-state.js +3 -1
- package/dist/src/web-ui/app/components/runtime-setup/connection-form.js +5 -2
- package/dist/src/web-ui/app/components/runtime-setup/connection-state.js +9 -1
- package/dist/src/web-ui/app/components/runtime-setup/context-window-feedback.js +71 -0
- package/dist/src/web-ui/app/components/runtime-setup/optional-steps.js +2 -0
- package/dist/src/web-ui/app/components/runtime-setup-guide.js +15 -3
- package/dist/src/web-ui/app/components/spark-chat/empty-state.js +1 -0
- package/dist/src/web-ui/app/components/spark-chat/panel.js +1 -0
- package/dist/src/web-ui/app/components/system-host/connection-card.js +35 -0
- package/dist/src/web-ui/app/components/system-host/macos-setup.js +1 -1
- package/dist/src/web-ui/app/components/system-host/manager.js +45 -12
- package/dist/src/web-ui/app/components/system-host/rendering.js +111 -106
- package/dist/src/web-ui/app/components/system-host/windows-store-setup.js +293 -0
- package/dist/src/web-ui/app/components/workspace-shell.js +6 -0
- package/dist/src/web-ui/app/computer-access-feature.js +22 -5
- package/dist/src/web-ui/app/configuration-feature.js +35 -2
- package/dist/src/web-ui/app/controllers/app-event-bindings.js +4 -1
- package/dist/src/web-ui/app/controllers/conversation-read-state-controller.d.ts +1 -0
- package/dist/src/web-ui/app/controllers/conversation-read-state-controller.js +7 -3
- package/dist/src/web-ui/app/controllers/conversation-request-hydration.js +88 -0
- package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +9 -3
- package/dist/src/web-ui/app/controllers/conversation-session-controller.js +52 -144
- package/dist/src/web-ui/app/controllers/history-pagination.js +111 -0
- package/dist/src/web-ui/app/controllers/operations-controller.d.ts +12 -0
- package/dist/src/web-ui/app/controllers/operations-controller.js +28 -21
- package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.d.ts +1 -0
- package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.js +11 -0
- package/dist/src/web-ui/app/controllers/session-controller.js +10 -2
- package/dist/src/web-ui/app/controllers/session-list-pagination.js +71 -0
- package/dist/src/web-ui/app/controllers/session-sidebar-controller.js +6 -4
- package/dist/src/web-ui/app/controllers/spark-chat-reading.js +1 -0
- package/dist/src/web-ui/app/controllers/spark-chat-sync.js +24 -5
- package/dist/src/web-ui/app/controllers/workspace-route-controller.js +21 -19
- package/dist/src/web-ui/app/dashboard-feature.js +2 -2
- package/dist/src/web-ui/app/index.html +6 -2
- package/dist/src/web-ui/app/lib/history-page-messages.js +49 -0
- package/dist/src/web-ui/app/lib/request-lifecycle-view.js +8 -0
- package/dist/src/web-ui/app/lib/workspace-route.d.ts +3 -0
- package/dist/src/web-ui/app/lib/workspace-route.js +4 -0
- package/dist/src/web-ui/app/passive-learning-feature.js +0 -1
- package/dist/src/web-ui/app/runtime-onboarding-feature.js +3 -0
- package/dist/src/web-ui/app/schedules-feature.js +1 -1
- package/dist/src/web-ui/app/services/runtime-web-client/configuration.js +20 -0
- package/dist/src/web-ui/app/services/runtime-web-client/plugin-configuration.js +19 -0
- package/dist/src/web-ui/app/services/runtime-web-client/spark-chat.js +4 -4
- package/dist/src/web-ui/app/services/runtime-web-client/system-host.js +2 -0
- package/dist/src/web-ui/app/services/runtime-web-client.d.ts +6 -1
- package/dist/src/web-ui/app/services/runtime-web-client.js +12 -3
- package/dist/src/web-ui/app/spark-chat-feature.js +76 -19
- package/dist/src/web-ui/app/styles/11-product-links.css +30 -0
- package/dist/src/web-ui/app/styles/41-plugin-configuration.css +79 -0
- package/dist/src/web-ui/app/styles/41-plugin-discovery.css +132 -0
- package/dist/src/web-ui/app/styles/41-plugin-management.css +6 -0
- package/dist/src/web-ui/app/styles/42-model-plugin-permissions.css +173 -0
- package/dist/src/web-ui/app/styles/46-system-host.css +61 -107
- package/dist/src/web-ui/app/styles/47-config-controls.css +13 -1
- package/dist/src/web-ui/app/styles/54-spark-chat.css +33 -1
- package/dist/src/web-ui/app/styles.css +4 -0
- package/dist/src/web-ui/local-runtime/api-router.js +11 -6
- package/dist/src/web-ui/local-runtime/approval-request-attachment.js +14 -5
- package/dist/src/web-ui/local-runtime/configuration-activation-source.d.ts +1 -1
- package/dist/src/web-ui/local-runtime/configuration-activation-source.js +9 -3
- package/dist/src/web-ui/local-runtime/contracts.d.ts +4 -3
- package/dist/src/web-ui/local-runtime/environment-registry.d.ts +5 -1
- package/dist/src/web-ui/local-runtime/environment-registry.js +53 -11
- package/dist/src/web-ui/local-runtime/history-pagination.d.ts +16 -0
- package/dist/src/web-ui/local-runtime/history-pagination.js +20 -0
- package/dist/src/web-ui/local-runtime/plugin-configuration-routes.d.ts +16 -0
- package/dist/src/web-ui/local-runtime/plugin-configuration-routes.js +68 -0
- package/dist/src/web-ui/local-runtime/plugin-installation-routes.d.ts +16 -0
- package/dist/src/web-ui/local-runtime/plugin-installation-routes.js +96 -0
- package/dist/src/web-ui/local-runtime/plugin-management-routes.d.ts +8 -1
- package/dist/src/web-ui/local-runtime/plugin-management-routes.js +17 -0
- package/dist/src/web-ui/local-runtime/plugin-mutation-admission.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/plugin-mutation-admission.js +17 -0
- package/dist/src/web-ui/local-runtime/plugin-removal-routes.d.ts +18 -0
- package/dist/src/web-ui/local-runtime/plugin-removal-routes.js +60 -0
- package/dist/src/web-ui/local-runtime/realtime-controller.js +41 -2
- package/dist/src/web-ui/local-runtime/request-cancellation-route.js +28 -1
- package/dist/src/web-ui/local-runtime/request-control-observation.d.ts +19 -0
- package/dist/src/web-ui/local-runtime/request-control-observation.js +80 -0
- package/dist/src/web-ui/local-runtime/request-execution.js +69 -37
- package/dist/src/web-ui/local-runtime/runtime-setup-context-window.d.ts +20 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-context-window.js +44 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-routes.js +2 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-validation.js +9 -2
- package/dist/src/web-ui/local-runtime/session-routes.d.ts +1 -0
- package/dist/src/web-ui/local-runtime/session-routes.js +16 -4
- package/dist/src/web-ui/local-runtime/spark-chat-routes.js +4 -3
- package/dist/src/web-ui/plugin-capability-selection.js +4 -1
- package/dist/src/web-ui/plugin-configuration-input.d.ts +12 -0
- package/dist/src/web-ui/plugin-configuration-input.js +68 -0
- package/dist/src/web-ui/plugin-configuration-retained-secrets.d.ts +9 -0
- package/dist/src/web-ui/plugin-configuration-retained-secrets.js +48 -0
- package/dist/src/web-ui/plugin-configuration-service.d.ts +52 -0
- package/dist/src/web-ui/plugin-configuration-service.js +66 -0
- package/dist/src/web-ui/plugin-configuration-view.d.ts +25 -0
- package/dist/src/web-ui/plugin-configuration-view.js +45 -0
- package/dist/src/web-ui/plugin-disabled-selection.d.ts +7 -0
- package/dist/src/web-ui/plugin-disabled-selection.js +17 -0
- package/dist/src/web-ui/plugin-management-catalog.d.ts +3 -1
- package/dist/src/web-ui/plugin-management-catalog.js +11 -1
- package/dist/src/web-ui/plugin-management-selection.js +22 -9
- package/dist/src/web-ui/plugin-management-service.d.ts +5 -1
- package/dist/src/web-ui/plugin-management-service.js +11 -7
- package/dist/src/web-ui/plugin-removal-error.d.ts +7 -0
- package/dist/src/web-ui/plugin-removal-error.js +16 -0
- package/dist/src/web-ui/plugin-removal-service.d.ts +30 -0
- package/dist/src/web-ui/plugin-removal-service.js +109 -0
- package/dist/src/web-ui/runtime-setup-gateway.d.ts +6 -2
- package/dist/src/web-ui/runtime-setup-gateway.js +30 -10
- package/dist/src/web-ui/server.js +6 -2
- package/dist/src/web-ui/session-read-state/overview.d.ts +42 -0
- package/dist/src/web-ui/session-read-state/overview.js +16 -0
- package/dist/src/web-ui/session-read-state/pagination.d.ts +15 -0
- package/dist/src/web-ui/session-read-state/pagination.js +42 -0
- package/dist/src/web-ui/session-read-state/projection.d.ts +4 -3
- package/dist/src/web-ui/session-read-state/service.d.ts +213 -20
- package/dist/src/web-ui/session-read-state/service.js +25 -23
- package/dist/src/web-ui/session-read-state/visible-messages.d.ts +3 -3
- package/dist/src/web-ui/system-host-setup/companion-linux.js +1 -1
- package/dist/src/web-ui/system-host-setup/installer-contract.d.ts +1 -1
- package/dist/src/web-ui/system-host-setup/installer-contract.js +2 -2
- package/dist/src/web-ui/system-host-setup/installers.js +0 -7
- package/dist/src/web-ui/system-host-setup/local-connection.d.ts +4 -1
- package/dist/src/web-ui/system-host-setup/local-connection.js +10 -17
- package/dist/src/web-ui/system-host-setup/routes.d.ts +2 -0
- package/dist/src/web-ui/system-host-setup/routes.js +32 -9
- package/dist/src/web-ui/system-host-setup/setup-mutation.d.ts +9 -0
- package/dist/src/web-ui/system-host-setup/setup-mutation.js +27 -0
- package/dist/src/web-ui/system-host-setup/windows-store-route.d.ts +13 -0
- package/dist/src/web-ui/system-host-setup/windows-store-route.js +68 -0
- package/docs/configuration.md +46 -0
- package/docs/installation.md +45 -24
- package/docs/plugins.md +165 -2
- package/docs/projects-and-full-plus.md +2 -6
- package/docs/runtime-library.md +0 -1
- package/docs/windows-companion-store.md +127 -0
- package/package.json +3 -3
- package/plugins/document-reader/plugin.json +1 -0
- package/plugins/exec/plugin.json +3 -0
- package/plugins/filesystem/plugin.json +2 -0
- package/plugins/local-search/plugin.json +1 -0
- package/plugins/system/README.md +43 -3
- package/plugins/system/plugin.json +5 -0
- package/plugins/system/source/companion-command-output.ts +82 -0
- package/plugins/system/source/host-dispatch.ts +4 -0
- package/plugins/system/source/index.ts +11 -5
- package/plugins/system/source/local-command-output.ts +61 -0
- package/plugins/system/source/request-system-modules.ts +2 -0
- package/plugins/system/src/index.cjs +474 -39
- package/plugins/web/README.md +2 -2
- package/plugins/web/plugin.json +4 -0
- package/runtime.config.schema.json +25 -1
- package/src/runtime/README.md +12 -2
- package/dist/src/web-ui/system-host-setup/companion-windows.d.ts +0 -2
- package/dist/src/web-ui/system-host-setup/companion-windows.js +0 -108
- package/docs/publishing.md +0 -167
|
@@ -15,11 +15,26 @@ export function createSparkChatFeature({ dom, state: appState, client, shell, re
|
|
|
15
15
|
let configuration;
|
|
16
16
|
let readState;
|
|
17
17
|
let environmentId = "";
|
|
18
|
+
let available = false;
|
|
19
|
+
let accessRevision = 0;
|
|
18
20
|
let sync;
|
|
19
21
|
let settings;
|
|
20
22
|
let conversation;
|
|
21
23
|
let awaitingOpening = false;
|
|
22
|
-
|
|
24
|
+
let restoringOpen = false;
|
|
25
|
+
function isSparkAvailable() {
|
|
26
|
+
if (client.supportsSparkChat?.() !== true) return false;
|
|
27
|
+
return shell.isWorkspaceAvailable("learning");
|
|
28
|
+
}
|
|
29
|
+
function canCompleteSparkOpening(scope, revision) {
|
|
30
|
+
if (!isSparkAvailable()) return false;
|
|
31
|
+
if (scope !== getEnvironmentId()) return false;
|
|
32
|
+
return revision === accessRevision;
|
|
33
|
+
}
|
|
34
|
+
function hasSparkAccessChanged(nextEnvironment, nextAvailable) {
|
|
35
|
+
if (environmentId !== nextEnvironment) return true;
|
|
36
|
+
return available !== nextAvailable;
|
|
37
|
+
}
|
|
23
38
|
const getSubmissionBlock = () => {
|
|
24
39
|
if (!configuration?.sessionId) return { message: "SPARK conversation is loading." };
|
|
25
40
|
if (isSparkModelUnavailable(configuration)) return { message: "Choose a model under Proactive mode in SPARK settings." };
|
|
@@ -68,7 +83,7 @@ export function createSparkChatFeature({ dom, state: appState, client, shell, re
|
|
|
68
83
|
onComposerStateChange: (sending) => sync?.composerChanged(sending),
|
|
69
84
|
});
|
|
70
85
|
sync = createSparkChatSync({
|
|
71
|
-
client, getEnvironmentId, conversation, isAvailable,
|
|
86
|
+
client, getEnvironmentId, conversation, isAvailable: isSparkAvailable,
|
|
72
87
|
onConfiguration: (next) => {
|
|
73
88
|
const changedModel = configuration?.modelProfileId !== next.modelProfileId;
|
|
74
89
|
configuration = next; settings?.render(next, getEnvironmentId());
|
|
@@ -108,37 +123,75 @@ export function createSparkChatFeature({ dom, state: appState, client, shell, re
|
|
|
108
123
|
panel.dom.settingsButton.addEventListener("click", openSettings);
|
|
109
124
|
panel.onToggle((opened) => {
|
|
110
125
|
if (!opened) { conversation.view.closeFilePreview(); return; }
|
|
111
|
-
if (!
|
|
112
|
-
|
|
113
|
-
void sync.refresh();
|
|
126
|
+
if (!isSparkAvailable()) { panel.setOpen(false, { focus: false }); return; }
|
|
127
|
+
if (!restoringOpen) void open();
|
|
114
128
|
});
|
|
115
129
|
|
|
116
130
|
async function open(messageId, reference) {
|
|
117
|
-
if (!
|
|
131
|
+
if (!isSparkAvailable()) return false;
|
|
118
132
|
const scope = getEnvironmentId();
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
133
|
+
const revision = accessRevision;
|
|
134
|
+
try { await sync.refresh({ wait: true }); }
|
|
135
|
+
catch (error) {
|
|
136
|
+
if (!canCompleteSparkOpening(scope, revision)) return false;
|
|
137
|
+
shell.showToast(`SPARK could not be opened: ${error.message}`, "failed");
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
if (!canCompleteSparkOpening(scope, revision)) return false;
|
|
122
141
|
if (!configuration) return false;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
142
|
+
const requestedTarget = messageId ?? readState?.unreadMessageIds?.[0];
|
|
143
|
+
if (!await ensureSparkTargetHistory(requestedTarget, reference, scope, revision)) return false;
|
|
144
|
+
if (!canCompleteSparkOpening(scope, revision)) return false;
|
|
145
|
+
const target = resolveSparkMessageTarget(conversation.state.messages, requestedTarget, reference);
|
|
146
|
+
reading.open(target); restoringOpen = true; panel.setOpen(true); restoringOpen = false;
|
|
147
|
+
conversation.render(); conversation.update();
|
|
126
148
|
return true;
|
|
127
149
|
}
|
|
150
|
+
async function ensureSparkTargetHistory(target, reference, scope, revision) {
|
|
151
|
+
if (target == null) return true;
|
|
152
|
+
if (reference === null) return true;
|
|
153
|
+
if (resolveSparkMessageTarget(conversation.state.messages, target, reference)) return true;
|
|
154
|
+
try {
|
|
155
|
+
await conversation.session.openSession(configuration.sessionId, { preserveCurrentWindow: true, page: {
|
|
156
|
+
targetMessageId: String(target), targetCreatedAt: reference?.createdAt,
|
|
157
|
+
targetRequestId: reference?.requestId ?? undefined,
|
|
158
|
+
} });
|
|
159
|
+
} catch (error) {
|
|
160
|
+
if (!canCompleteSparkOpening(scope, revision)) return false;
|
|
161
|
+
shell.showToast(`SPARK history unavailable: ${error.message}`, "failed");
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
return canCompleteSparkOpening(scope, revision);
|
|
165
|
+
}
|
|
166
|
+
function shouldRestoreUnavailableSparkFocus(nextAvailable) {
|
|
167
|
+
if (nextAvailable) return false;
|
|
168
|
+
const home = dom.homeWorkspaceButton;
|
|
169
|
+
if (!home) return false;
|
|
170
|
+
if (home.disabled) return false;
|
|
171
|
+
if (home.hidden) return false;
|
|
172
|
+
if (home.inert) return false;
|
|
173
|
+
if (home.closest?.("[hidden], [inert]")) return false;
|
|
174
|
+
const focused = document.activeElement;
|
|
175
|
+
if (!focused) return false;
|
|
176
|
+
if (panel.root?.contains(focused)) return true;
|
|
177
|
+
return panel.dom.launcherButton?.contains(focused) === true;
|
|
178
|
+
}
|
|
128
179
|
function environmentChanged() {
|
|
129
180
|
const next = getEnvironmentId();
|
|
130
|
-
|
|
131
|
-
if (
|
|
132
|
-
|
|
181
|
+
const nextAvailable = isSparkAvailable();
|
|
182
|
+
if (shouldRestoreUnavailableSparkFocus(nextAvailable)) dom.homeWorkspaceButton.focus({ preventScroll: true });
|
|
183
|
+
panel.setAvailable(nextAvailable);
|
|
184
|
+
if (!hasSparkAccessChanged(next, nextAvailable)) return;
|
|
185
|
+
environmentId = next; available = nextAvailable; accessRevision += 1;
|
|
133
186
|
configuration = undefined; readState = undefined;
|
|
134
187
|
awaitingOpening = panel.isOpen();
|
|
135
188
|
sync.reset(); reading.reset(); notices.reset(); conversation.reset(); panel.hideNotice();
|
|
136
189
|
settings.render(undefined, next);
|
|
137
|
-
if (
|
|
190
|
+
if (isSparkAvailable()) void sync.refresh({ consolidated: true });
|
|
138
191
|
}
|
|
139
192
|
function handleRealtime(message) {
|
|
140
193
|
environmentChanged();
|
|
141
|
-
if (!
|
|
194
|
+
if (!isSparkAvailable()) return;
|
|
142
195
|
const environment = message.environmentId || message.environment;
|
|
143
196
|
if (environment && environment !== getEnvironmentId()) return;
|
|
144
197
|
if (message.type === "learning.changed") { sync.modelChanged(); return; }
|
|
@@ -160,14 +213,17 @@ export function createSparkChatFeature({ dom, state: appState, client, shell, re
|
|
|
160
213
|
open, environmentChanged,
|
|
161
214
|
prepareEnvironmentChange: conversation.prepareEnvironmentChange,
|
|
162
215
|
async openSession(sessionId, messageId, reference) {
|
|
163
|
-
if (!
|
|
216
|
+
if (!isSparkAvailable()) return false;
|
|
217
|
+
if (!sessionId) return false;
|
|
164
218
|
const scope = getEnvironmentId();
|
|
219
|
+
const revision = accessRevision;
|
|
165
220
|
try { if (!configuration) await sync.refresh({ wait: true }); }
|
|
166
221
|
catch (error) {
|
|
222
|
+
if (!canCompleteSparkOpening(scope, revision)) return false;
|
|
167
223
|
shell.showToast(`SPARK could not be opened: ${error.message}`, "failed");
|
|
168
224
|
return true;
|
|
169
225
|
}
|
|
170
|
-
if (scope
|
|
226
|
+
if (!canCompleteSparkOpening(scope, revision)) return true;
|
|
171
227
|
if (sessionId !== configuration?.sessionId) return false;
|
|
172
228
|
return open(messageId, reference);
|
|
173
229
|
},
|
|
@@ -177,6 +233,7 @@ export function createSparkChatFeature({ dom, state: appState, client, shell, re
|
|
|
177
233
|
realtime.subscribeConnectionChanged?.(() => conversation.update());
|
|
178
234
|
realtime.subscribeConnected(() => { environmentChanged(); void sync.refresh({ consolidated: true, rehydrate: true }); });
|
|
179
235
|
dom.environmentSelect.addEventListener("change", () => queueMicrotask(environmentChanged));
|
|
236
|
+
shell.subscribeRuntimeAvailabilityChange(environmentChanged);
|
|
180
237
|
shell.subscribeWorkspaceChange(() => { environmentChanged(); if (panel.isOpen()) reading.scheduleRead(); });
|
|
181
238
|
document.addEventListener("visibilitychange", () => {
|
|
182
239
|
if (document.visibilityState === "visible") void sync.refresh({ consolidated: true });
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/* Official website links in the brand and configuration header. */
|
|
2
|
+
.product-site-link {
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
gap: 3px;
|
|
6
|
+
color: var(--muted);
|
|
7
|
+
font-size: var(--font-size-xs);
|
|
8
|
+
line-height: 18px;
|
|
9
|
+
text-decoration: none;
|
|
10
|
+
white-space: nowrap;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.product-site-link:hover {
|
|
14
|
+
color: var(--text-strong);
|
|
15
|
+
text-decoration: underline;
|
|
16
|
+
text-underline-offset: 3px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.product-site-link:focus-visible {
|
|
20
|
+
outline: 2px solid var(--accent);
|
|
21
|
+
outline-offset: 3px;
|
|
22
|
+
border-radius: 2px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@media (min-width: 761px) {
|
|
26
|
+
.workspace-brand {
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
gap: 1px;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
.plugin-configuration-fields {
|
|
2
|
+
border: 0;
|
|
3
|
+
padding: 0;
|
|
4
|
+
margin: 1.5rem 0;
|
|
5
|
+
display: grid;
|
|
6
|
+
gap: 1rem;
|
|
7
|
+
min-width: 0;
|
|
8
|
+
}
|
|
9
|
+
.plugin-configuration-fields legend {
|
|
10
|
+
font-weight: 600;
|
|
11
|
+
margin-bottom: 0.5rem;
|
|
12
|
+
}
|
|
13
|
+
.plugin-configuration-fields > p,
|
|
14
|
+
.plugin-configuration-fields small {
|
|
15
|
+
color: var(--muted);
|
|
16
|
+
font-size: 0.875rem;
|
|
17
|
+
}
|
|
18
|
+
.plugin-configuration-fields label {
|
|
19
|
+
display: grid;
|
|
20
|
+
gap: 0.4rem;
|
|
21
|
+
}
|
|
22
|
+
.plugin-configuration-fields input:not([type="checkbox"]),
|
|
23
|
+
.plugin-configuration-fields textarea,
|
|
24
|
+
.plugin-configuration-fields select {
|
|
25
|
+
width: 100%;
|
|
26
|
+
box-sizing: border-box;
|
|
27
|
+
}
|
|
28
|
+
.plugin-configuration-fields textarea {
|
|
29
|
+
resize: vertical;
|
|
30
|
+
font-family: monospace;
|
|
31
|
+
}
|
|
32
|
+
.plugin-configuration-fields .plugin-setting-checkbox {
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: center;
|
|
35
|
+
}
|
|
36
|
+
.plugin-secret-field {
|
|
37
|
+
display: grid;
|
|
38
|
+
gap: 0.5rem;
|
|
39
|
+
}
|
|
40
|
+
.plugin-secret-field input[hidden] {
|
|
41
|
+
display: none;
|
|
42
|
+
}
|
|
43
|
+
.plugin-configuration-dialog {
|
|
44
|
+
color: var(--text);
|
|
45
|
+
background: var(--panel);
|
|
46
|
+
border: 1px solid var(--line);
|
|
47
|
+
border-radius: 10px;
|
|
48
|
+
width: min(38rem, calc(100vw - 2rem));
|
|
49
|
+
max-height: calc(100dvh - 3rem);
|
|
50
|
+
padding: 1.5rem;
|
|
51
|
+
}
|
|
52
|
+
.plugin-configuration-dialog::backdrop {
|
|
53
|
+
background: rgb(0 0 0 / 55%);
|
|
54
|
+
}
|
|
55
|
+
.plugin-configuration-dialog h2 {
|
|
56
|
+
margin: 0 0 1rem;
|
|
57
|
+
}
|
|
58
|
+
.plugin-configuration-actions {
|
|
59
|
+
display: flex;
|
|
60
|
+
justify-content: flex-end;
|
|
61
|
+
gap: 0.75rem;
|
|
62
|
+
margin-top: 1rem;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.plugin-setting-source {
|
|
66
|
+
display: flex;
|
|
67
|
+
align-items: center;
|
|
68
|
+
justify-content: space-between;
|
|
69
|
+
gap: 0.75rem;
|
|
70
|
+
margin-top: 0.3rem;
|
|
71
|
+
}
|
|
72
|
+
.plugin-setting-source button {
|
|
73
|
+
border: 0;
|
|
74
|
+
padding: 0;
|
|
75
|
+
background: transparent;
|
|
76
|
+
color: var(--muted);
|
|
77
|
+
font-size: 0.8rem;
|
|
78
|
+
text-decoration: underline;
|
|
79
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
.plugin-workspace {
|
|
2
|
+
width: 100%;
|
|
3
|
+
}
|
|
4
|
+
.plugin-workspace > .config-category-nav {
|
|
5
|
+
grid-template-columns: repeat(2, minmax(0, 180px));
|
|
6
|
+
margin-bottom: 4px;
|
|
7
|
+
}
|
|
8
|
+
.plugin-discovery {
|
|
9
|
+
display: grid;
|
|
10
|
+
gap: 28px;
|
|
11
|
+
max-width: 880px;
|
|
12
|
+
margin: 0 auto;
|
|
13
|
+
padding: 12px 0 24px;
|
|
14
|
+
}
|
|
15
|
+
.plugin-marketplace-card,
|
|
16
|
+
.plugin-source-card {
|
|
17
|
+
padding: 0;
|
|
18
|
+
background: transparent;
|
|
19
|
+
}
|
|
20
|
+
.plugin-source-card {
|
|
21
|
+
border-top: 1px solid var(--config-line);
|
|
22
|
+
padding-top: 28px;
|
|
23
|
+
}
|
|
24
|
+
.plugin-marketplace-card h2,
|
|
25
|
+
.plugin-source-card h2 {
|
|
26
|
+
margin: 0 0 10px;
|
|
27
|
+
font-size: 20px;
|
|
28
|
+
font-weight: 400;
|
|
29
|
+
}
|
|
30
|
+
.plugin-marketplace-card p,
|
|
31
|
+
.plugin-source-card > p {
|
|
32
|
+
color: var(--muted);
|
|
33
|
+
line-height: 1.6;
|
|
34
|
+
max-width: 66ch;
|
|
35
|
+
}
|
|
36
|
+
.plugin-marketplace-card a {
|
|
37
|
+
display: inline-block;
|
|
38
|
+
color: var(--text);
|
|
39
|
+
}
|
|
40
|
+
.plugin-source-card form,
|
|
41
|
+
.plugin-source-card label {
|
|
42
|
+
display: grid;
|
|
43
|
+
gap: 8px;
|
|
44
|
+
}
|
|
45
|
+
.plugin-source-card form {
|
|
46
|
+
gap: 16px;
|
|
47
|
+
margin-top: 20px;
|
|
48
|
+
}
|
|
49
|
+
.plugin-source-card input {
|
|
50
|
+
width: 100%;
|
|
51
|
+
box-sizing: border-box;
|
|
52
|
+
}
|
|
53
|
+
.plugin-source-card form > button {
|
|
54
|
+
justify-self: start;
|
|
55
|
+
}
|
|
56
|
+
.plugin-source-options {
|
|
57
|
+
display: grid;
|
|
58
|
+
grid-template-columns: 1fr 1fr;
|
|
59
|
+
gap: 16px;
|
|
60
|
+
}
|
|
61
|
+
.plugin-source-card small {
|
|
62
|
+
color: var(--muted);
|
|
63
|
+
font-weight: normal;
|
|
64
|
+
}
|
|
65
|
+
.plugin-install-review {
|
|
66
|
+
margin-top: 24px;
|
|
67
|
+
padding-top: 20px;
|
|
68
|
+
border-top: 1px solid var(--config-line);
|
|
69
|
+
}
|
|
70
|
+
.plugin-install-heading {
|
|
71
|
+
display: flex;
|
|
72
|
+
align-items: center;
|
|
73
|
+
justify-content: space-between;
|
|
74
|
+
flex-wrap: wrap;
|
|
75
|
+
gap: 12px;
|
|
76
|
+
}
|
|
77
|
+
.plugin-install-heading h3 {
|
|
78
|
+
margin: 0;
|
|
79
|
+
}
|
|
80
|
+
.plugin-install-heading p {
|
|
81
|
+
margin: 6px 0 0;
|
|
82
|
+
color: var(--muted);
|
|
83
|
+
font-size: 12px;
|
|
84
|
+
}
|
|
85
|
+
.plugin-install-review dl {
|
|
86
|
+
display: grid;
|
|
87
|
+
grid-template-columns: auto 1fr;
|
|
88
|
+
gap: 8px 16px;
|
|
89
|
+
font-size: 12px;
|
|
90
|
+
}
|
|
91
|
+
.plugin-install-review dd {
|
|
92
|
+
margin: 0;
|
|
93
|
+
overflow-wrap: anywhere;
|
|
94
|
+
}
|
|
95
|
+
.plugin-install-review dt {
|
|
96
|
+
color: var(--muted);
|
|
97
|
+
}
|
|
98
|
+
.plugin-install-capabilities {
|
|
99
|
+
list-style: none;
|
|
100
|
+
padding: 0;
|
|
101
|
+
display: grid;
|
|
102
|
+
gap: 12px;
|
|
103
|
+
}
|
|
104
|
+
.plugin-install-capabilities li {
|
|
105
|
+
border-bottom: 1px solid var(--config-line);
|
|
106
|
+
padding: 12px 0;
|
|
107
|
+
}
|
|
108
|
+
.plugin-install-capabilities p {
|
|
109
|
+
margin: 6px 0;
|
|
110
|
+
color: var(--muted);
|
|
111
|
+
}
|
|
112
|
+
.plugin-install-capabilities span {
|
|
113
|
+
font-size: 12px;
|
|
114
|
+
overflow-wrap: anywhere;
|
|
115
|
+
}
|
|
116
|
+
.plugin-install-trust {
|
|
117
|
+
padding: 8px 0;
|
|
118
|
+
color: var(--muted);
|
|
119
|
+
line-height: 1.6;
|
|
120
|
+
}
|
|
121
|
+
@media (max-width: 620px) {
|
|
122
|
+
.plugin-source-options {
|
|
123
|
+
grid-template-columns: 1fr;
|
|
124
|
+
}
|
|
125
|
+
.plugin-marketplace-card a {
|
|
126
|
+
display: block;
|
|
127
|
+
margin: 16px 0 0;
|
|
128
|
+
}
|
|
129
|
+
.plugin-install-review dl {
|
|
130
|
+
grid-template-columns: 1fr;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
.model-plugin-permissions {
|
|
2
|
+
min-width: 0;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.model-plugin-row > details > summary {
|
|
6
|
+
display: flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
gap: 10px;
|
|
9
|
+
min-height: 48px;
|
|
10
|
+
min-width: 0;
|
|
11
|
+
cursor: pointer;
|
|
12
|
+
list-style: none;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.model-plugin-row > details > summary::-webkit-details-marker {
|
|
16
|
+
display: none;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.model-plugin-row > details > summary::before {
|
|
20
|
+
content: "";
|
|
21
|
+
flex: 0 0 6px;
|
|
22
|
+
width: 6px;
|
|
23
|
+
height: 6px;
|
|
24
|
+
margin-inline: 2px 4px;
|
|
25
|
+
border-inline-end: 1px solid var(--muted);
|
|
26
|
+
border-bottom: 1px solid var(--muted);
|
|
27
|
+
transform: rotate(-45deg);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.model-plugin-row > details[open] > summary::before {
|
|
31
|
+
transform: rotate(45deg);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.model-plugin-permissions summary:focus-visible {
|
|
35
|
+
outline: 2px solid var(--accent);
|
|
36
|
+
outline-offset: 3px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.model-plugin-summary-count,
|
|
40
|
+
.model-plugin-global-note {
|
|
41
|
+
color: var(--muted);
|
|
42
|
+
font-size: var(--font-size-xs);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.model-plugin-summary-count {
|
|
46
|
+
margin-inline-start: auto;
|
|
47
|
+
text-align: end;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.model-plugin-permissions-body {
|
|
51
|
+
display: grid;
|
|
52
|
+
gap: 14px;
|
|
53
|
+
min-width: 0;
|
|
54
|
+
padding: 4px 0 12px;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.model-plugin-help,
|
|
58
|
+
.model-plugin-description,
|
|
59
|
+
.model-plugin-policy,
|
|
60
|
+
.model-plugin-saved-rules p {
|
|
61
|
+
margin: 0;
|
|
62
|
+
color: var(--muted);
|
|
63
|
+
font-size: var(--font-size-xs);
|
|
64
|
+
line-height: 1.6;
|
|
65
|
+
overflow-wrap: anywhere;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.model-plugin-list {
|
|
69
|
+
min-width: 0;
|
|
70
|
+
border: 1px solid var(--config-line);
|
|
71
|
+
border-radius: 8px;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.model-plugin-row {
|
|
75
|
+
position: relative;
|
|
76
|
+
min-width: 0;
|
|
77
|
+
padding-inline: 12px;
|
|
78
|
+
border-top: 1px solid var(--config-line);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.model-plugin-row:first-child {
|
|
82
|
+
border-top: 0;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.model-plugin-row > details > summary {
|
|
86
|
+
padding-inline-end: 56px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.model-plugin-name {
|
|
90
|
+
min-width: 0;
|
|
91
|
+
overflow-wrap: anywhere;
|
|
92
|
+
font-size: var(--font-size-sm);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.model-plugin-row-status {
|
|
96
|
+
display: flex;
|
|
97
|
+
align-items: center;
|
|
98
|
+
justify-content: flex-end;
|
|
99
|
+
flex-wrap: wrap;
|
|
100
|
+
gap: 4px 10px;
|
|
101
|
+
margin-inline-start: auto;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.model-plugin-master-switch {
|
|
105
|
+
position: absolute;
|
|
106
|
+
inset-block-start: 2px;
|
|
107
|
+
inset-inline-end: 12px;
|
|
108
|
+
width: 44px;
|
|
109
|
+
margin: 0;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.model-plugin-details-body {
|
|
113
|
+
display: grid;
|
|
114
|
+
gap: 10px;
|
|
115
|
+
padding: 0 0 14px 16px;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.model-plugin-policy {
|
|
119
|
+
color: var(--amber);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.model-plugin-capability-list {
|
|
123
|
+
overflow: visible;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.model-plugin-saved-rules summary {
|
|
127
|
+
cursor: pointer;
|
|
128
|
+
color: var(--muted);
|
|
129
|
+
font-size: var(--font-size-xs);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.model-plugin-saved-rules summary span {
|
|
133
|
+
margin-inline-start: 5px;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.model-plugin-saved-rules p {
|
|
137
|
+
margin-top: 10px;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.model-plugin-saved-rules ul {
|
|
141
|
+
display: flex;
|
|
142
|
+
flex-wrap: wrap;
|
|
143
|
+
gap: 6px 16px;
|
|
144
|
+
padding: 0;
|
|
145
|
+
list-style: none;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.model-plugin-saved-rules code {
|
|
149
|
+
font-size: var(--font-size-xs);
|
|
150
|
+
overflow-wrap: anywhere;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
@media (max-width: 600px) {
|
|
154
|
+
.model-plugin-permissions > summary {
|
|
155
|
+
flex-wrap: wrap;
|
|
156
|
+
padding-block: 10px;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.model-plugin-summary-count {
|
|
160
|
+
width: 100%;
|
|
161
|
+
padding-inline-start: 16px;
|
|
162
|
+
text-align: start;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.model-plugin-global-note {
|
|
166
|
+
display: none;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.model-plugin-row-status .plugin-selection-state {
|
|
170
|
+
padding: 4px 5px;
|
|
171
|
+
font-size: 11px;
|
|
172
|
+
}
|
|
173
|
+
}
|