@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
|
@@ -3,10 +3,12 @@ import { hostSetupIsReady, renderSystemHostConnection } from "./rendering.js";
|
|
|
3
3
|
import { createSystemHostVisibility } from "./visibility.js";
|
|
4
4
|
import { createMacConnectionActions } from "./macos-connection-actions.js";
|
|
5
5
|
import { createMacPermissionPreparation } from "./macos-permission-preparation.js";
|
|
6
|
+
import { createWindowsStoreConnectionActions, windowsStoreSetupIsAvailable } from "./windows-store-setup.js";
|
|
6
7
|
|
|
7
8
|
export function createSystemHostConnectionManager({
|
|
8
9
|
loadConnection,
|
|
9
10
|
downloadSetup,
|
|
11
|
+
requestStoreConnection,
|
|
10
12
|
connectLocal,
|
|
11
13
|
createPairing,
|
|
12
14
|
requestPermissions,
|
|
@@ -32,6 +34,8 @@ export function createSystemHostConnectionManager({
|
|
|
32
34
|
statusUnavailable: false,
|
|
33
35
|
downloaded: null,
|
|
34
36
|
manualMac: null,
|
|
37
|
+
windowsStoreInvitation: null,
|
|
38
|
+
windowsStoreAttempt: null,
|
|
35
39
|
managementOpen: false,
|
|
36
40
|
macPermissions: null,
|
|
37
41
|
macPermissionError: "",
|
|
@@ -68,6 +72,12 @@ export function createSystemHostConnectionManager({
|
|
|
68
72
|
getSurfaceRevision: () => surfaceRevision,
|
|
69
73
|
isVisible: () => visibility.isVisible(),
|
|
70
74
|
});
|
|
75
|
+
const windowsStore = createWindowsStoreConnectionActions({
|
|
76
|
+
state, requestStoreConnection, canInstallOnPlatform, beginRequest, finishRequest,
|
|
77
|
+
revokeConnection, receiveUnpairedConnection, getEnvironmentId,
|
|
78
|
+
isCurrentResponse, getSurfaceRevision: () => surfaceRevision,
|
|
79
|
+
isVisible: () => visibility.isVisible(), notify,
|
|
80
|
+
});
|
|
71
81
|
function markup() {
|
|
72
82
|
return renderSystemHostConnection({
|
|
73
83
|
...state,
|
|
@@ -78,6 +88,16 @@ export function createSystemHostConnectionManager({
|
|
|
78
88
|
}
|
|
79
89
|
function afterPaint(root = state.root) {
|
|
80
90
|
permissions.afterPaint(root);
|
|
91
|
+
root?.querySelector("[data-system-host-store-connect]")
|
|
92
|
+
?.addEventListener("click", () => void windowsStore.connectWindowsStore());
|
|
93
|
+
root?.querySelector("[data-system-host-store-launch]")
|
|
94
|
+
?.addEventListener("click", windowsStore.markLaunchRequested);
|
|
95
|
+
root?.querySelector("[data-system-host-store-repair]")
|
|
96
|
+
?.addEventListener("click", windowsStore.beginWindowsStoreRepair);
|
|
97
|
+
root?.querySelector("[data-system-host-store-repair-confirm]")
|
|
98
|
+
?.addEventListener("click", () => void windowsStore.confirmWindowsStoreRepair());
|
|
99
|
+
root?.querySelector("[data-system-host-store-repair-cancel]")
|
|
100
|
+
?.addEventListener("click", windowsStore.cancelWindowsStoreRepair);
|
|
81
101
|
const management = root?.querySelector("[data-system-host-management]");
|
|
82
102
|
management?.addEventListener("toggle", () => {
|
|
83
103
|
if (management !== state.root?.querySelector("[data-system-host-management]")) return;
|
|
@@ -137,6 +157,7 @@ export function createSystemHostConnectionManager({
|
|
|
137
157
|
wasVisible = visible;
|
|
138
158
|
if (!visible) {
|
|
139
159
|
state.manualMac = null;
|
|
160
|
+
windowsStore.clear({ preserveWaiting: true });
|
|
140
161
|
permissions.clear();
|
|
141
162
|
notify();
|
|
142
163
|
stopPolling();
|
|
@@ -147,8 +168,9 @@ export function createSystemHostConnectionManager({
|
|
|
147
168
|
function isCurrentResponse(operation) {
|
|
148
169
|
return operation === revision;
|
|
149
170
|
}
|
|
150
|
-
function beginRequest(background = false) {
|
|
171
|
+
function beginRequest(background = false, preserveStoreWaiting = false) {
|
|
151
172
|
stopPolling();
|
|
173
|
+
if (!background) windowsStore.clear({ preserveWaiting: preserveStoreWaiting });
|
|
152
174
|
state.busy = !background;
|
|
153
175
|
backgroundPending = background;
|
|
154
176
|
if (!background) state.error = "";
|
|
@@ -172,17 +194,19 @@ export function createSystemHostConnectionManager({
|
|
|
172
194
|
notify();
|
|
173
195
|
return false;
|
|
174
196
|
}
|
|
175
|
-
const operation = beginRequest(background);
|
|
197
|
+
const operation = beginRequest(background, true);
|
|
176
198
|
const environment = getEnvironmentId();
|
|
177
199
|
try {
|
|
178
200
|
const snapshot = await loadConnection();
|
|
179
201
|
if (!isCurrentResponse(operation)) return false;
|
|
180
202
|
if (environment !== getEnvironmentId()) return false;
|
|
181
203
|
state.snapshot = snapshot;
|
|
204
|
+
if (!windowsStoreSetupIsAvailable(snapshot)) windowsStore.clear();
|
|
182
205
|
permissions.reconcile();
|
|
183
206
|
state.statusUnavailable = false;
|
|
184
207
|
state.error = "";
|
|
185
208
|
if (hostSetupIsReady(snapshot)) {
|
|
209
|
+
windowsStore.clear();
|
|
186
210
|
state.manualMac = null;
|
|
187
211
|
state.downloaded = null;
|
|
188
212
|
state.message = "";
|
|
@@ -191,11 +215,10 @@ export function createSystemHostConnectionManager({
|
|
|
191
215
|
return true;
|
|
192
216
|
} catch {
|
|
193
217
|
if (!isCurrentResponse(operation)) return false;
|
|
218
|
+
windowsStore.clear();
|
|
194
219
|
state.statusUnavailable = true;
|
|
195
220
|
permissions.clear();
|
|
196
|
-
state.error =
|
|
197
|
-
? "Waiting for WSL and ABot to return after setup."
|
|
198
|
-
: "Could not check this computer. Refresh to try again.";
|
|
221
|
+
state.error = "Could not check this computer. Refresh to try again.";
|
|
199
222
|
return false;
|
|
200
223
|
} finally {
|
|
201
224
|
finishRequest(operation);
|
|
@@ -216,6 +239,7 @@ export function createSystemHostConnectionManager({
|
|
|
216
239
|
}
|
|
217
240
|
async function install(platform) {
|
|
218
241
|
if (platform === "macos") return false;
|
|
242
|
+
if (platform === "windows") return windowsStore.connectWindowsStore();
|
|
219
243
|
if (!canInstallOnPlatform(platform)) return false;
|
|
220
244
|
state.manualMac = null;
|
|
221
245
|
const operation = beginRequest();
|
|
@@ -229,7 +253,6 @@ export function createSystemHostConnectionManager({
|
|
|
229
253
|
state.downloaded = {
|
|
230
254
|
filename: receipt.filename,
|
|
231
255
|
expiresAt: receipt.expiresAt,
|
|
232
|
-
restartRequired: receipt.restartRequired === true,
|
|
233
256
|
};
|
|
234
257
|
state.message =
|
|
235
258
|
"Setup downloaded. Open the downloaded file and follow its instructions. Waiting for verification…";
|
|
@@ -242,19 +265,23 @@ export function createSystemHostConnectionManager({
|
|
|
242
265
|
finishRequest(operation);
|
|
243
266
|
}
|
|
244
267
|
}
|
|
268
|
+
function receiveUnpairedConnection(snapshot) {
|
|
269
|
+
state.snapshot = snapshot;
|
|
270
|
+
permissions.clear();
|
|
271
|
+
state.downloaded = null;
|
|
272
|
+
state.manualMac = null;
|
|
273
|
+
state.statusUnavailable = false;
|
|
274
|
+
state.message = "Computer unpaired.";
|
|
275
|
+
}
|
|
245
276
|
async function revoke() {
|
|
246
277
|
if (state.busy) return false;
|
|
247
278
|
if (!supportsConnection()) return false;
|
|
279
|
+
windowsStore.clear();
|
|
248
280
|
const operation = beginRequest();
|
|
249
281
|
try {
|
|
250
282
|
const snapshot = await revokeConnection();
|
|
251
283
|
if (!isCurrentResponse(operation)) return false;
|
|
252
|
-
|
|
253
|
-
permissions.clear();
|
|
254
|
-
state.downloaded = null;
|
|
255
|
-
state.manualMac = null;
|
|
256
|
-
state.statusUnavailable = false;
|
|
257
|
-
state.message = "Computer unpaired.";
|
|
284
|
+
receiveUnpairedConnection(snapshot);
|
|
258
285
|
return true;
|
|
259
286
|
} catch {
|
|
260
287
|
if (isCurrentResponse(operation))
|
|
@@ -278,6 +305,7 @@ export function createSystemHostConnectionManager({
|
|
|
278
305
|
state.statusUnavailable = false;
|
|
279
306
|
state.downloaded = null;
|
|
280
307
|
state.manualMac = null;
|
|
308
|
+
windowsStore.clear();
|
|
281
309
|
state.error = "";
|
|
282
310
|
state.actionError = "";
|
|
283
311
|
state.message = "";
|
|
@@ -291,6 +319,10 @@ export function createSystemHostConnectionManager({
|
|
|
291
319
|
state,
|
|
292
320
|
load,
|
|
293
321
|
install,
|
|
322
|
+
connectWindowsStore: windowsStore.connectWindowsStore,
|
|
323
|
+
beginWindowsStoreRepair: windowsStore.beginWindowsStoreRepair,
|
|
324
|
+
cancelWindowsStoreRepair: windowsStore.cancelWindowsStoreRepair,
|
|
325
|
+
confirmWindowsStoreRepair: windowsStore.confirmWindowsStoreRepair,
|
|
294
326
|
...mac,
|
|
295
327
|
checkPermissions: permissions.checkPermissions,
|
|
296
328
|
requestPermission: permissions.requestPermission,
|
|
@@ -302,6 +334,7 @@ export function createSystemHostConnectionManager({
|
|
|
302
334
|
state.busy = false;
|
|
303
335
|
backgroundPending = false;
|
|
304
336
|
state.snapshot = null;
|
|
337
|
+
windowsStore.clear();
|
|
305
338
|
permissions.clear();
|
|
306
339
|
notify();
|
|
307
340
|
if (visibility.isVisible()) void load();
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { escapeHtml } from "../../lib/text-format.js";
|
|
2
|
+
import { renderWindowsStoreSetup, windowsStorePanelIsAvailable } from "./windows-store-setup.js";
|
|
3
|
+
import { renderConnectionCard, renderComputerMetadata } from "./connection-card.js";
|
|
2
4
|
import { macPermissionSummary, renderMacPermissionPreparation } from "./macos-permission-rendering.js";
|
|
3
5
|
import {
|
|
4
6
|
renderMacSetupAction,
|
|
@@ -17,136 +19,139 @@ function pairedCompanionIsOffline(snapshot) {
|
|
|
17
19
|
if (!snapshot?.paired) return false;
|
|
18
20
|
return snapshot.connected === false;
|
|
19
21
|
}
|
|
22
|
+
function hasDirectAccess(snapshot) {
|
|
23
|
+
return ["native", "wsl_interop"].includes(snapshot?.readiness?.route);
|
|
24
|
+
}
|
|
20
25
|
function connectionStatus(snapshot, statusUnavailable, busy) {
|
|
21
26
|
if (statusUnavailable) return "Status unavailable";
|
|
22
|
-
if (busy || !snapshot) return "Checking
|
|
27
|
+
if (busy || !snapshot) return "Checking";
|
|
23
28
|
if (hostSetupIsReady(snapshot)) return snapshot.identity?.os === "macos" ? "Connected" : "Ready";
|
|
24
29
|
if (pairedCompanionIsOffline(snapshot)) return "Paired · offline";
|
|
25
30
|
if (hostCompanionUpdateRequired(snapshot)) return "Update needed";
|
|
26
31
|
if (snapshot.connected) return "Computer access unavailable";
|
|
27
32
|
if (snapshot?.readiness?.directAccessReady) return "Direct access available";
|
|
28
|
-
return "
|
|
33
|
+
return "Not connected";
|
|
29
34
|
}
|
|
30
35
|
function hostAccessIsAvailable(snapshot, supported, statusUnavailable, busy) {
|
|
31
36
|
if (!supported || statusUnavailable || busy) return false;
|
|
32
37
|
return hostSetupIsReady(snapshot);
|
|
33
38
|
}
|
|
34
39
|
function readyDescription(snapshot) {
|
|
35
|
-
if (
|
|
40
|
+
if (hasDirectAccess(snapshot))
|
|
36
41
|
return "Direct commands are available. No extra installation is needed for direct commands.";
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
];
|
|
49
|
-
return
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
42
|
+
return "You can use computer tools from your ABot chat. Permissions and Spark collection are managed separately.";
|
|
43
|
+
}
|
|
44
|
+
function connectionTitle({ snapshot, supported, statusUnavailable, busy }) {
|
|
45
|
+
if (!supported) return "Computer connection unavailable";
|
|
46
|
+
if (statusUnavailable) return "Check your computer connection";
|
|
47
|
+
if (busy || !snapshot) return "Checking this computer…";
|
|
48
|
+
if (hostSetupIsReady(snapshot)) return hasDirectAccess(snapshot) ? "Direct computer access is ready" : "Your computer is ready";
|
|
49
|
+
if (pairedCompanionIsOffline(snapshot)) return "Your computer is offline";
|
|
50
|
+
if (hostCompanionUpdateRequired(snapshot)) return "Update your computer connection";
|
|
51
|
+
if (snapshot.connected) return "Check your computer connection";
|
|
52
|
+
const platforms = snapshot.readiness?.platforms || [];
|
|
53
|
+
if (platforms.length === 1 && platforms[0] === "macos") return "Connect your Mac";
|
|
54
|
+
if (platforms.length === 1 && platforms[0] === "linux") return "Connect your Linux computer";
|
|
55
|
+
return "Connect your computer";
|
|
56
|
+
}
|
|
57
|
+
function connectionDescription({ snapshot, supported, statusUnavailable, busy }) {
|
|
58
|
+
if (!supported) return "Computer access setup requires the local Runtime backend.";
|
|
59
|
+
if (statusUnavailable) return "The current connection status could not be checked. Refresh to try again.";
|
|
60
|
+
if (busy || !snapshot) return "Waiting for the current connection status…";
|
|
61
|
+
if (hostSetupIsReady(snapshot)) return readyDescription(snapshot);
|
|
62
|
+
if (pairedCompanionIsOffline(snapshot)) return "Reconnect Companion on this computer. Your saved connection is still available.";
|
|
63
|
+
if (hostCompanionUpdateRequired(snapshot)) return "Update Companion, then return here to check the connection.";
|
|
64
|
+
return "Connect this computer to use its apps and desktop tools from ABot.";
|
|
56
65
|
}
|
|
57
66
|
function renderSetupActions(snapshot, disabled) {
|
|
58
67
|
if (hostSetupIsReady(snapshot)) return "";
|
|
59
68
|
const platforms = snapshot?.readiness?.platforms || [];
|
|
60
|
-
const setupLabels = {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const labels = hostCompanionUpdateRequired(snapshot)
|
|
69
|
-
? updateLabels
|
|
70
|
-
: setupLabels;
|
|
71
|
-
return (
|
|
72
|
-
renderMacSetupAction(snapshot, disabled) +
|
|
73
|
-
platforms
|
|
74
|
-
.filter((platform) => Object.hasOwn(labels, platform))
|
|
75
|
-
.map(
|
|
76
|
-
(platform) =>
|
|
77
|
-
`<button type="button" data-system-host-install="${platform}" ${disabled ? "disabled" : ""}>${labels[platform]}</button>`,
|
|
78
|
-
)
|
|
79
|
-
.join("")
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
function hasInstallablePlatform(snapshot) {
|
|
69
|
+
const setupLabels = { linux: "Set up Linux access" };
|
|
70
|
+
const updateLabels = { linux: "Update Linux connection" };
|
|
71
|
+
const labels = hostCompanionUpdateRequired(snapshot) ? updateLabels : setupLabels;
|
|
72
|
+
return renderMacSetupAction(snapshot, disabled) + platforms
|
|
73
|
+
.filter((platform) => Object.hasOwn(labels, platform))
|
|
74
|
+
.map((platform) => `<button type="button" class="system-host-card-primary" data-system-host-install="${platform}" ${disabled ? "disabled" : ""}>${labels[platform]}</button>`).join("");
|
|
75
|
+
}
|
|
76
|
+
function hasDownloadablePlatform(snapshot) {
|
|
83
77
|
if (hostSetupIsReady(snapshot)) return false;
|
|
84
|
-
return (
|
|
85
|
-
snapshot?.readiness?.platforms?.some((platform) =>
|
|
86
|
-
["windows", "linux"].includes(platform),
|
|
87
|
-
) === true
|
|
88
|
-
);
|
|
78
|
+
return snapshot?.readiness?.platforms?.includes("linux") === true;
|
|
89
79
|
}
|
|
90
80
|
function setupDownloadHasExpired(downloaded) {
|
|
91
81
|
if (!downloaded?.expiresAt) return false;
|
|
92
82
|
return Date.parse(downloaded.expiresAt) <= Date.now();
|
|
93
83
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
84
|
+
function shouldShowSetupReadinessNote(snapshot) {
|
|
85
|
+
if (hostSetupIsReady(snapshot)) return false;
|
|
86
|
+
const platforms = snapshot?.readiness?.platforms || [];
|
|
87
|
+
if (platforms.length === 1 && platforms[0] === "windows") return false;
|
|
88
|
+
return Boolean(snapshot?.readiness?.message);
|
|
89
|
+
}
|
|
90
|
+
function renderSetupDownload(downloaded) {
|
|
91
|
+
if (!downloaded) return "";
|
|
92
|
+
const expired = setupDownloadHasExpired(downloaded);
|
|
93
|
+
return `<div class="system-host-download"><p><strong>Downloaded:</strong> ${escapeHtml(downloaded.filename)}</p><p>${expired ? "Setup download expired. Download setup again." : "Open this file to continue. A download alone does not mean access is ready."}</p>${downloaded.expiresAt && !expired ? `<p class="system-host-note">Open before ${escapeHtml(new Date(downloaded.expiresAt).toLocaleTimeString())}.</p>` : ""}</div>`;
|
|
94
|
+
}
|
|
95
|
+
function renderOtherPlatformSetup({ snapshot, busy, manualMac, downloaded }) {
|
|
96
|
+
const actions = renderSetupActions(snapshot, busy);
|
|
97
|
+
const download = renderSetupDownload(downloaded);
|
|
98
|
+
const instructions = renderMacConnectionInstructions(manualMac);
|
|
99
|
+
if (!actions && !download && !instructions) return "";
|
|
100
|
+
return `<div class="system-host-card-other">${renderMacSetupNotice(snapshot)}${instructions}${download}${hasDownloadablePlatform(snapshot) ? "<p>Download setup for the computer hosting ABot, then open the downloaded file. Follow any permission prompts shown by your operating system.</p>" : ""}${actions ? `<div class="system-host-actions">${actions}</div>` : ""}</div>`;
|
|
101
|
+
}
|
|
102
|
+
function connectedCardHidesPermissions(input) {
|
|
103
|
+
if (!input.snapshot?.connected || !canRenderCompactConnection(input)) return false;
|
|
104
|
+
if (input.managementOpen || input.macPermissionError || input.nativeMacPermissionError) return false;
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
function renderPermissionDetails(input) {
|
|
108
|
+
if (!input.supported || connectedCardHidesPermissions(input)) return "";
|
|
109
|
+
const content = renderMacPermissionPreparation(input);
|
|
110
|
+
if (!content || !input.compact) return content;
|
|
111
|
+
const summary = macPermissionSummary(input.snapshot, input.macPermissions, input.nativeMacPermissions);
|
|
112
|
+
const open = input.managementOpen || input.macPermissionError || input.nativeMacPermissionError;
|
|
113
|
+
return `<details class="system-host-permission-details" data-system-host-management ${open ? "open" : ""}>
|
|
114
|
+
<summary>Mac permissions<span class="system-host-summary-permissions">${escapeHtml(summary)}</span></summary>
|
|
115
|
+
${content}
|
|
110
116
|
</details>`;
|
|
111
117
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
snapshot,
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
</section>`;
|
|
118
|
+
function canRenderCompactConnection(input) {
|
|
119
|
+
if (!input.compact) return false;
|
|
120
|
+
if (!hostAccessIsAvailable(input.snapshot, input.supported, input.statusUnavailable, input.busy)) return false;
|
|
121
|
+
if (input.error || input.message) return false;
|
|
122
|
+
if (input.downloaded || input.manualMac) return false;
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
export function renderSystemHostConnection(input) {
|
|
126
|
+
if (input.supported && windowsStorePanelIsAvailable(input.snapshot)) {
|
|
127
|
+
return renderWindowsStoreSetup({
|
|
128
|
+
snapshot: input.snapshot, invitation: input.windowsStoreInvitation,
|
|
129
|
+
attempt: input.windowsStoreAttempt, disabled: input.busy,
|
|
130
|
+
statusUnavailable: input.statusUnavailable, error: input.error, message: input.message,
|
|
131
|
+
compact: input.compact,
|
|
132
|
+
otherSetup: renderOtherPlatformSetup(input),
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
const ready = hostAccessIsAvailable(input.snapshot, input.supported, input.statusUnavailable, input.busy);
|
|
136
|
+
const compact = canRenderCompactConnection(input);
|
|
137
|
+
const permissions = renderPermissionDetails(input);
|
|
138
|
+
const metadata = renderComputerMetadata(input.snapshot, input.busy || !input.supported);
|
|
139
|
+
const snapshot = input.snapshot;
|
|
140
|
+
const setup = input.supported ? renderSetupActions(snapshot, input.busy) : "";
|
|
141
|
+
const refresh = '<button type="button" class="system-host-card-secondary" data-system-host-refresh' +
|
|
142
|
+
(input.busy || !input.supported ? " disabled" : "") + '>Refresh status</button>';
|
|
143
|
+
return renderConnectionCard({
|
|
144
|
+
title: connectionTitle(input), status: input.supported ? connectionStatus(snapshot, input.statusUnavailable, input.busy) : "Unavailable",
|
|
145
|
+
ready, compact, disabled: input.busy, metadata,
|
|
146
|
+
description: connectionDescription(input),
|
|
147
|
+
actions: setup + refresh,
|
|
148
|
+
error: input.error, message: input.message,
|
|
149
|
+
details: compact ? permissions : `
|
|
150
|
+
${input.supported ? renderMacSetupNotice(snapshot) + renderMacConnectionInstructions(input.manualMac) : ""}
|
|
151
|
+
${shouldShowSetupReadinessNote(snapshot) ? `<p class="system-host-note">${escapeHtml(snapshot.readiness.message)}</p>` : ""}
|
|
152
|
+
${hasDownloadablePlatform(snapshot) && input.supported ? "<p class=\"system-host-note\">Download setup for the computer hosting ABot, then open the downloaded file. It checks prerequisites and connects automatically. Follow any permission prompts shown by your operating system.</p>" : ""}
|
|
153
|
+
${renderSetupDownload(input.downloaded)}
|
|
154
|
+
${permissions}
|
|
155
|
+
`,
|
|
156
|
+
});
|
|
152
157
|
}
|