@abot-ai/runtime 1.3.1 → 1.4.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/dist/plugins/system/source/application-catalog.d.ts +14 -0
- package/dist/plugins/system/source/application-catalog.js +185 -0
- package/dist/plugins/system/source/application-launch.d.ts +10 -0
- package/dist/plugins/system/source/application-launch.js +80 -0
- package/dist/plugins/system/source/application-observation.d.ts +25 -0
- package/dist/plugins/system/source/application-observation.js +53 -0
- package/dist/plugins/system/source/commands.d.ts +7 -0
- package/dist/plugins/system/source/commands.js +71 -0
- package/dist/plugins/system/source/companion/autostart.d.ts +16 -0
- package/dist/plugins/system/source/companion/autostart.js +146 -0
- package/dist/plugins/system/source/companion/broker-location.d.ts +11 -0
- package/dist/plugins/system/source/companion/broker-location.js +76 -0
- package/dist/plugins/system/source/companion/broker-server.d.ts +4 -0
- package/dist/plugins/system/source/companion/broker-server.js +147 -0
- package/dist/plugins/system/source/companion/connection.d.ts +25 -0
- package/dist/plugins/system/source/companion/connection.js +182 -0
- package/dist/plugins/system/source/companion/liveness.d.ts +3 -0
- package/dist/plugins/system/source/companion/liveness.js +20 -0
- package/dist/plugins/system/source/companion/native-address.d.ts +12 -0
- package/dist/plugins/system/source/companion/native-address.js +41 -0
- package/dist/plugins/system/source/companion/native-identity.d.ts +2 -0
- package/dist/plugins/system/source/companion/native-identity.js +23 -0
- package/dist/plugins/system/source/companion/native-messages.d.ts +9 -0
- package/dist/plugins/system/source/companion/native-messages.js +77 -0
- package/dist/plugins/system/source/companion/native-session.d.ts +19 -0
- package/dist/plugins/system/source/companion/native-session.js +205 -0
- package/dist/plugins/system/source/companion/native-state.d.ts +22 -0
- package/dist/plugins/system/source/companion/native-state.js +126 -0
- package/dist/plugins/system/source/companion/native-supervisor.d.ts +10 -0
- package/dist/plugins/system/source/companion/native-supervisor.js +93 -0
- package/dist/plugins/system/source/companion/pairing-store.d.ts +22 -0
- package/dist/plugins/system/source/companion/pairing-store.js +102 -0
- package/dist/plugins/system/source/companion/private-store.d.ts +4 -0
- package/dist/plugins/system/source/companion/private-store.js +59 -0
- package/dist/plugins/system/source/companion/process-owner-identity.d.ts +22 -0
- package/dist/plugins/system/source/companion/process-owner-identity.js +144 -0
- package/dist/plugins/system/source/companion/protocol.d.ts +57 -0
- package/dist/plugins/system/source/companion/protocol.js +66 -0
- package/dist/plugins/system/source/contracts.d.ts +38 -0
- package/dist/plugins/system/source/contracts.js +7 -0
- package/dist/plugins/system/source/elevation.d.ts +8 -0
- package/dist/plugins/system/source/elevation.js +57 -0
- package/dist/plugins/system/source/handlers.d.ts +3 -0
- package/dist/plugins/system/source/handlers.js +90 -0
- package/dist/plugins/system/source/host-evidence.d.ts +4 -0
- package/dist/plugins/system/source/host-evidence.js +52 -0
- package/dist/plugins/system/source/host-observation.d.ts +25 -0
- package/dist/plugins/system/source/host-observation.js +59 -0
- package/dist/plugins/system/source/process-result.d.ts +4 -0
- package/dist/plugins/system/source/process-result.js +86 -0
- package/dist/plugins/system/source/process-runner.d.ts +3 -0
- package/dist/plugins/system/source/process-runner.js +103 -0
- package/dist/plugins/system/source/target-observation.d.ts +18 -0
- package/dist/plugins/system/source/target-observation.js +29 -0
- package/dist/plugins/system/source/targets.d.ts +8 -0
- package/dist/plugins/system/source/targets.js +101 -0
- package/dist/scripts/add-runtime-model.js +10 -53
- package/dist/scripts/runtime-model-addition.d.ts +13 -0
- package/dist/scripts/runtime-model-addition.js +53 -0
- package/dist/scripts/runtime-setup-files.d.ts +3 -1
- package/dist/scripts/runtime-setup-files.js +18 -1
- package/dist/src/capabilities/file-output-presentation.d.ts +43 -0
- package/dist/src/capabilities/file-output-presentation.js +133 -0
- package/dist/src/capabilities/tool-definition-validator/definition-parser.js +2 -0
- package/dist/src/capabilities/tool-definition-validator/event-input-text-options.d.ts +5 -0
- package/dist/src/capabilities/tool-definition-validator/event-input-text-options.js +37 -0
- package/dist/src/capabilities/tool-definition-validator/event-presentation.js +3 -0
- package/dist/src/capabilities/tool-definition-validator/module-registry.js +12 -0
- package/dist/src/capabilities/tool-event-input-text.d.ts +9 -0
- package/dist/src/capabilities/tool-event-input-text.js +64 -0
- package/dist/src/capabilities/tool-event-metadata.js +10 -0
- package/dist/src/capabilities/tool-executor.d.ts +1 -0
- package/dist/src/capabilities/tool-executor.js +1 -0
- package/dist/src/capabilities/tool-permission-mode.d.ts +7 -0
- package/dist/src/capabilities/tool-permission-mode.js +27 -0
- package/dist/src/capabilities/tool-types.d.ts +18 -2
- package/dist/src/cli/abot.js +18 -15
- package/dist/src/cli/host-companion-bundle.mjs +5201 -0
- package/dist/src/cli/host-companion-entry.d.ts +8 -0
- package/dist/src/cli/host-companion-entry.js +70 -0
- package/dist/src/cli/host-companion-startup.d.ts +4 -0
- package/dist/src/cli/host-companion-startup.js +35 -0
- package/dist/src/cli/host-companion.d.ts +5 -0
- package/dist/src/cli/host-companion.js +203 -0
- package/dist/src/model-gateway/server/configuration.js +4 -1
- package/dist/src/model-gateway/server/contracts.d.ts +2 -0
- package/dist/src/plugin-contract/entrypoint.d.ts +4 -2
- package/dist/src/plugin-contract/manifest.d.ts +1 -0
- package/dist/src/runtime/adapters/config-file-transaction.d.ts +46 -0
- package/dist/src/runtime/adapters/config-file-transaction.js +158 -0
- package/dist/src/runtime/adapters/configured-skill-provider.js +3 -3
- package/dist/src/runtime/adapters/in-memory-session-store.js +11 -1
- package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +7 -3
- package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.d.ts +4 -1
- package/dist/src/runtime/adapters/long-term-memory/file-lock/install.d.ts +1 -1
- package/dist/src/runtime/adapters/long-term-memory/file-lock/install.js +5 -1
- package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-identity.d.ts +3 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-identity.js +15 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.js +2 -0
- package/dist/src/runtime/adapters/long-term-memory/onboarding-config-repository.js +17 -43
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/catalog/registrations.js +6 -2
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.js +10 -1
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/execution-binding.d.ts +11 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/execution-binding.js +37 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/file-output-presentation.d.ts +7 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/file-output-presentation.js +105 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.js +29 -3
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.d.ts +1 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.js +1 -0
- package/dist/src/runtime/capabilities/configured-tool-registry.js +9 -1
- package/dist/src/runtime/capabilities/file-output-root-identity.d.ts +5 -0
- package/dist/src/runtime/capabilities/file-output-root-identity.js +146 -0
- package/dist/src/runtime/capabilities/file-output-root-marker-creation.d.ts +5 -0
- package/dist/src/runtime/capabilities/file-output-root-marker-creation.js +63 -0
- package/dist/src/runtime/capabilities/request-bound-tool-registry.d.ts +1 -0
- package/dist/src/runtime/capabilities/request-bound-tool-registry.js +6 -1
- package/dist/src/runtime/capabilities/request-module-preparation.d.ts +3 -0
- package/dist/src/runtime/capabilities/request-module-preparation.js +102 -0
- package/dist/src/runtime/capabilities/request-permission-catalog.d.ts +10 -0
- package/dist/src/runtime/capabilities/request-permission-catalog.js +50 -0
- package/dist/src/runtime/capabilities/request-permission-tool-registry.d.ts +4 -0
- package/dist/src/runtime/capabilities/request-permission-tool-registry.js +61 -0
- package/dist/src/runtime/capabilities/request-runtime-tool-registry.d.ts +3 -0
- package/dist/src/runtime/capabilities/request-runtime-tool-registry.js +5 -2
- package/dist/src/runtime/capabilities/request-working-directory.d.ts +3 -0
- package/dist/src/runtime/capabilities/request-working-directory.js +12 -0
- package/dist/src/runtime/composition.d.ts +2 -0
- package/dist/src/runtime/config/runner/loader.d.ts +4 -0
- package/dist/src/runtime/config/runner/loader.js +23 -3
- package/dist/src/runtime/context/capability-brief-budget.d.ts +18 -0
- package/dist/src/runtime/context/capability-brief-budget.js +38 -0
- package/dist/src/runtime/context/capability-brief-readmission.d.ts +21 -0
- package/dist/src/runtime/context/capability-brief-readmission.js +47 -0
- package/dist/src/runtime/context/capability-brief.d.ts +9 -2
- package/dist/src/runtime/context/capability-brief.js +21 -39
- package/dist/src/runtime/context/capability-descriptions.d.ts +3 -0
- package/dist/src/runtime/context/capability-descriptions.js +23 -0
- package/dist/src/runtime/default-environment-adapters.js +3 -4
- package/dist/src/runtime/local-application.d.ts +18 -0
- package/dist/src/runtime/local-application.js +12 -0
- package/dist/src/runtime/local-host/app-service-dispatch.d.ts +1 -0
- package/dist/src/runtime/local-host/app-service-dispatch.js +9 -0
- package/dist/src/runtime/local-host/client-services.d.ts +16 -0
- package/dist/src/runtime/local-host/client-services.js +3 -2
- package/dist/src/runtime/local-host/contracts.d.ts +4 -0
- package/dist/src/runtime/local-host/startup-connection.js +22 -7
- package/dist/src/runtime/local-host/transport.js +14 -2
- package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +5 -2
- package/dist/src/runtime/orchestration/role-calls/command-decoder.js +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/work-plan-transition.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/work-plan-transition.js +46 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +3 -0
- package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +8 -4
- package/dist/src/runtime/orchestration/role-calls/transactions.js +2 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-contracts.d.ts +48 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-contracts.js +9 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-source.d.ts +7 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-source.js +85 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-transactions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-transactions.js +17 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-validation.d.ts +10 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-validation.js +149 -0
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +1 -1
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +1 -1
- package/dist/src/runtime/plugins/compiled-catalog.d.ts +2 -1
- package/dist/src/runtime/plugins/configured-manifests.d.ts +3 -0
- package/dist/src/runtime/plugins/configured-manifests.js +37 -0
- package/dist/src/runtime/plugins/entrypoint-validation.d.ts +6 -0
- package/dist/src/runtime/plugins/entrypoint-validation.js +74 -0
- package/dist/src/runtime/plugins/loader.js +11 -123
- package/dist/src/runtime/plugins/manifest-discovery.d.ts +4 -1
- package/dist/src/runtime/plugins/manifest-discovery.js +8 -1
- package/dist/src/runtime/plugins/manifest-projection.js +3 -0
- package/dist/src/runtime/plugins/manifest-validator.js +7 -1
- package/dist/src/runtime/plugins/runtime-capability-plugins.d.ts +4 -0
- package/dist/src/runtime/plugins/runtime-capability-plugins.js +7 -0
- package/dist/src/runtime/plugins/selection.d.ts +14 -0
- package/dist/src/runtime/plugins/selection.js +38 -0
- package/dist/src/runtime/ports.d.ts +8 -2
- package/dist/src/runtime/projects/contracts.d.ts +40 -0
- package/dist/src/runtime/projects/contracts.js +10 -0
- package/dist/src/runtime/projects/folders.d.ts +7 -0
- package/dist/src/runtime/projects/folders.js +110 -0
- package/dist/src/runtime/projects/repository.d.ts +10 -0
- package/dist/src/runtime/projects/repository.js +54 -0
- package/dist/src/runtime/projects/service.d.ts +3 -0
- package/dist/src/runtime/projects/service.js +34 -0
- package/dist/src/runtime/projects/session-paths.d.ts +5 -0
- package/dist/src/runtime/projects/session-paths.js +13 -0
- package/dist/src/runtime/request/execution-agent-plan-update.d.ts +4 -0
- package/dist/src/runtime/request/execution-agent-plan-update.js +13 -0
- package/dist/src/runtime/request/execution-agent-root-execution.js +9 -1
- package/dist/src/runtime/request/handler.js +9 -2
- package/dist/src/runtime/request/input.d.ts +2 -1
- package/dist/src/runtime/request/input.js +1 -6
- package/dist/src/runtime/request/role-call-planner-events.js +4 -0
- package/dist/src/runtime/request/role-executor-composition.js +9 -1
- package/dist/src/runtime/request/root-contract.d.ts +6 -1
- package/dist/src/runtime/request/root-execution-kernel.js +17 -0
- package/dist/src/runtime/request/root-plan-event-projection.d.ts +3 -0
- package/dist/src/runtime/request/root-plan-event-projection.js +32 -0
- package/dist/src/runtime/request/root-plan-update.d.ts +15 -0
- package/dist/src/runtime/request/root-plan-update.js +20 -0
- package/dist/src/runtime/request/worker-capability-composition.d.ts +1 -0
- package/dist/src/runtime/request/worker-capability-composition.js +2 -0
- package/dist/src/runtime/runtime-environment.d.ts +1 -0
- package/dist/src/runtime/runtime-environment.js +2 -0
- package/dist/src/runtime/steps/auditor-decision/advisory-receipt.d.ts +32 -0
- package/dist/src/runtime/steps/auditor-decision/advisory-receipt.js +106 -0
- package/dist/src/runtime/steps/auditor-decision/advisory-result-budget.d.ts +5 -0
- package/dist/src/runtime/steps/auditor-decision/advisory-result-budget.js +40 -0
- package/dist/src/runtime/steps/auditor-decision/audit-input-state.d.ts +12 -0
- package/dist/src/runtime/steps/auditor-decision/audit-input-state.js +101 -0
- package/dist/src/runtime/steps/auditor-decision/contracts.d.ts +31 -16
- package/dist/src/runtime/steps/auditor-decision/contracts.js +3 -3
- package/dist/src/runtime/steps/auditor-decision/evidence-binding.d.ts +5 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-binding.js +43 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-coverage.d.ts +2 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-coverage.js +71 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-inventory.d.ts +13 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-inventory.js +89 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-representation.d.ts +10 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-representation.js +56 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-selection.d.ts +9 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-selection.js +71 -0
- package/dist/src/runtime/steps/auditor-decision/format.js +44 -2
- package/dist/src/runtime/steps/auditor-decision/index.d.ts +3 -0
- package/dist/src/runtime/steps/auditor-decision/index.js +3 -0
- package/dist/src/runtime/steps/auditor-decision/input.d.ts +2 -2
- package/dist/src/runtime/steps/auditor-decision/input.js +64 -20
- package/dist/src/runtime/steps/auditor-decision/parser.js +38 -23
- package/dist/src/runtime/steps/auditor-decision/projection.js +49 -99
- package/dist/src/runtime/steps/auditor-decision/prompt.d.ts +1 -1
- package/dist/src/runtime/steps/auditor-decision/prompt.js +9 -4
- package/dist/src/runtime/steps/auditor-decision/run.js +79 -47
- package/dist/src/runtime/steps/execution-agent/contracts.d.ts +8 -1
- package/dist/src/runtime/steps/execution-agent/contracts.js +2 -0
- package/dist/src/runtime/steps/execution-agent/decision-parsing.js +4 -0
- package/dist/src/runtime/steps/execution-agent/format.js +4 -3
- package/dist/src/runtime/steps/execution-agent/input.js +10 -11
- package/dist/src/runtime/steps/execution-agent/prompt.d.ts +1 -0
- package/dist/src/runtime/steps/execution-agent/prompt.js +11 -4
- package/dist/src/runtime/steps/execution-agent/state-context.js +10 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-contract.d.ts +18 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-contract.js +86 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-decision-parsing.d.ts +2 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-decision-parsing.js +38 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-sources.d.ts +6 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-sources.js +54 -0
- package/dist/src/runtime/steps/planner-decision/capability-brief.d.ts +40 -0
- package/dist/src/runtime/steps/planner-decision/capability-brief.js +47 -0
- package/dist/src/runtime/steps/planner-decision/input.d.ts +4 -2
- package/dist/src/runtime/steps/planner-decision/input.js +23 -13
- package/dist/src/runtime/steps/planner-decision/prompt.js +2 -2
- package/dist/src/runtime/steps/planner-decision/run.js +11 -7
- package/dist/src/runtime/steps/planner-graph/parser.js +0 -11
- package/dist/src/runtime/steps/planner-graph/prompt.js +2 -1
- package/dist/src/runtime/steps/supervisor-decision/capability-brief-readmission.d.ts +10 -0
- package/dist/src/runtime/steps/supervisor-decision/capability-brief-readmission.js +39 -0
- package/dist/src/runtime/steps/supervisor-decision/run.js +2 -1
- package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.d.ts +3 -1
- package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.js +20 -1
- package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.d.ts +1 -1
- package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.js +6 -6
- package/dist/src/runtime/steps/worker-decision/parser/capability-invocation-validation.js +2 -1
- package/dist/src/sessions/project-binding.d.ts +12 -0
- package/dist/src/sessions/project-binding.js +49 -0
- package/dist/src/sessions/record/projection.d.ts +6 -1
- package/dist/src/sessions/record/projection.js +1 -0
- package/dist/src/sessions/session-service.d.ts +2 -1
- package/dist/src/sessions/session-service.js +11 -1
- package/dist/src/sessions/types.d.ts +7 -0
- package/dist/src/web-ui/app/ARCHITECTURE.md +121 -1
- package/dist/src/web-ui/app/app-bootstrap.js +3 -0
- package/dist/src/web-ui/app/app-dom.js +3 -0
- package/dist/src/web-ui/app/app-state.js +38 -0
- package/dist/src/web-ui/app/app.js +76 -67
- package/dist/src/web-ui/app/components/config-workspace/config-model.js +23 -3
- package/dist/src/web-ui/app/components/config-workspace/dashboard-rendering.js +2 -0
- package/dist/src/web-ui/app/components/config-workspace/field-rendering.js +2 -0
- package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +6 -0
- package/dist/src/web-ui/app/components/config-workspace/model-setup-entry.js +27 -0
- package/dist/src/web-ui/app/components/config-workspace/raw-config-repair.js +28 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +5 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +23 -3
- package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +26 -8
- package/dist/src/web-ui/app/components/config-workspace/workspace-view.js +56 -0
- package/dist/src/web-ui/app/components/config-workspace.js +11 -0
- package/dist/src/web-ui/app/components/conversation-activity.d.ts +6 -0
- package/dist/src/web-ui/app/components/conversation-activity.js +10 -2
- package/dist/src/web-ui/app/components/conversation-file-action.js +33 -0
- package/dist/src/web-ui/app/components/conversation-file-focus.d.ts +12 -0
- package/dist/src/web-ui/app/components/conversation-file-focus.js +149 -0
- package/dist/src/web-ui/app/components/conversation-file-preview.d.ts +23 -0
- package/dist/src/web-ui/app/components/conversation-file-preview.js +247 -0
- package/dist/src/web-ui/app/components/conversation-role-cards.d.ts +6 -0
- package/dist/src/web-ui/app/components/conversation-role-cards.js +10 -2
- package/dist/src/web-ui/app/components/conversation-tool-evidence.d.ts +9 -0
- package/dist/src/web-ui/app/components/conversation-tool-evidence.js +129 -0
- package/dist/src/web-ui/app/components/conversation-tools.d.ts +6 -0
- package/dist/src/web-ui/app/components/conversation-tools.js +25 -105
- package/dist/src/web-ui/app/components/conversation-view.js +10 -1
- package/dist/src/web-ui/app/components/dashboard/workspace.js +19 -7
- package/dist/src/web-ui/app/components/model-setup/rendering.js +99 -0
- package/dist/src/web-ui/app/components/model-setup/save-flow.js +111 -0
- package/dist/src/web-ui/app/components/model-setup/save-outcome.js +16 -0
- package/dist/src/web-ui/app/components/model-setup/validation.js +125 -0
- package/dist/src/web-ui/app/components/model-setup/wizard.d.ts +44 -0
- package/dist/src/web-ui/app/components/model-setup/wizard.js +370 -0
- package/dist/src/web-ui/app/components/plugins/manager.js +200 -0
- package/dist/src/web-ui/app/components/plugins/rendering.js +124 -0
- package/dist/src/web-ui/app/components/plugins/view-state.js +123 -0
- package/dist/src/web-ui/app/components/project-creation.js +119 -0
- package/dist/src/web-ui/app/components/project-session-groups.js +95 -0
- package/dist/src/web-ui/app/components/runtime-config-activation.js +83 -0
- package/dist/src/web-ui/app/components/runtime-setup/bridge-guide.d.ts +9 -0
- package/dist/src/web-ui/app/components/runtime-setup/bridge-guide.js +198 -0
- package/dist/src/web-ui/app/components/runtime-setup/bridge-rendering.js +107 -0
- package/dist/src/web-ui/app/components/runtime-setup/commands.js +54 -0
- package/dist/src/web-ui/app/components/runtime-setup/configuration-recovery.js +25 -0
- package/dist/src/web-ui/app/components/runtime-setup/connection-form.js +154 -0
- package/dist/src/web-ui/app/components/runtime-setup/connection-state.js +71 -0
- package/dist/src/web-ui/app/components/runtime-setup/context-window.js +18 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding-credential-status.d.ts +15 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding-credential-status.js +87 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding-provider-receipt.js +30 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding-rendering.js +57 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding.js +284 -0
- package/dist/src/web-ui/app/components/runtime-setup/optional-steps.js +117 -0
- package/dist/src/web-ui/app/components/runtime-setup/plugins.js +173 -0
- package/dist/src/web-ui/app/components/runtime-setup/rendering.js +141 -0
- package/dist/src/web-ui/app/components/runtime-setup/validation.js +69 -0
- package/dist/src/web-ui/app/components/runtime-setup/view-state.js +58 -0
- package/dist/src/web-ui/app/components/runtime-setup/wizard-shell.js +27 -0
- package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +66 -5
- package/dist/src/web-ui/app/components/runtime-setup-guide.js +415 -461
- package/dist/src/web-ui/app/components/system-host/download.js +38 -0
- package/dist/src/web-ui/app/components/system-host/manager.js +249 -0
- package/dist/src/web-ui/app/components/system-host/rendering.js +88 -0
- package/dist/src/web-ui/app/components/system-host/setup-notice.js +87 -0
- package/dist/src/web-ui/app/components/system-host/visibility.js +35 -0
- package/dist/src/web-ui/app/components/tool-approval-card.d.ts +4 -0
- package/dist/src/web-ui/app/components/tool-approval-card.js +15 -0
- package/dist/src/web-ui/app/configuration-environment-refresh.js +118 -0
- package/dist/src/web-ui/app/configuration-feature.js +125 -4
- package/dist/src/web-ui/app/controllers/app-event-bindings.js +2 -0
- package/dist/src/web-ui/app/controllers/composer-workspace-controller.d.ts +1 -0
- package/dist/src/web-ui/app/controllers/composer-workspace-controller.js +4 -3
- package/dist/src/web-ui/app/controllers/conversation-file-preview-controller.d.ts +24 -0
- package/dist/src/web-ui/app/controllers/conversation-file-preview-controller.js +158 -0
- package/dist/src/web-ui/app/controllers/conversation-file-preview-feature.d.ts +19 -0
- package/dist/src/web-ui/app/controllers/conversation-file-preview-feature.js +63 -0
- package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +1 -0
- package/dist/src/web-ui/app/controllers/conversation-session-controller.js +2 -0
- package/dist/src/web-ui/app/controllers/conversation-view-feature.js +28 -0
- package/dist/src/web-ui/app/controllers/dashboard-controller.js +17 -0
- package/dist/src/web-ui/app/controllers/projects-controller.d.ts +45 -0
- package/dist/src/web-ui/app/controllers/projects-controller.js +278 -0
- package/dist/src/web-ui/app/controllers/realtime-event-controller.js +3 -0
- package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.js +13 -6
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +7 -1
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +11 -95
- package/dist/src/web-ui/app/controllers/session-controller.js +64 -57
- package/dist/src/web-ui/app/controllers/tool-permission-mode-controller.d.ts +20 -0
- package/dist/src/web-ui/app/controllers/tool-permission-mode-controller.js +116 -0
- package/dist/src/web-ui/app/dashboard-feature.js +32 -10
- package/dist/src/web-ui/app/index.html +44 -7
- package/dist/src/web-ui/app/lib/conversation-file-preview.d.ts +12 -0
- package/dist/src/web-ui/app/lib/conversation-file-reference.d.ts +30 -0
- package/dist/src/web-ui/app/lib/conversation-file-reference.js +66 -0
- package/dist/src/web-ui/app/lib/tool-activity-event.d.ts +2 -0
- package/dist/src/web-ui/app/lib/tool-activity-event.js +18 -6
- package/dist/src/web-ui/app/lib/tool-activity-model.d.ts +2 -0
- package/dist/src/web-ui/app/lib/tool-activity-model.js +4 -2
- package/dist/src/web-ui/app/lib/tool-permission-mode.d.ts +16 -0
- package/dist/src/web-ui/app/lib/tool-permission-mode.js +60 -0
- package/dist/src/web-ui/app/lib/tool-process-activity-fields.js +102 -0
- package/dist/src/web-ui/app/projects-feature.js +134 -0
- package/dist/src/web-ui/app/runtime-onboarding-feature.d.ts +34 -0
- package/dist/src/web-ui/app/runtime-onboarding-feature.js +92 -0
- package/dist/src/web-ui/app/runtime-setup-page-lifecycle.d.ts +5 -0
- package/dist/src/web-ui/app/runtime-setup-page-lifecycle.js +13 -0
- package/dist/src/web-ui/app/services/client-preferences.d.ts +24 -0
- package/dist/src/web-ui/app/services/client-preferences.js +32 -19
- package/dist/src/web-ui/app/services/runtime-web-client/configuration.js +46 -0
- package/dist/src/web-ui/app/services/runtime-web-client/conversation-files.d.ts +28 -0
- package/dist/src/web-ui/app/services/runtime-web-client/conversation-files.js +75 -0
- package/dist/src/web-ui/app/services/runtime-web-client/projects.d.ts +19 -0
- package/dist/src/web-ui/app/services/runtime-web-client/projects.js +34 -0
- package/dist/src/web-ui/app/services/runtime-web-client/system-host.js +27 -0
- package/dist/src/web-ui/app/services/runtime-web-client.d.ts +52 -0
- package/dist/src/web-ui/app/services/runtime-web-client.js +35 -4
- package/dist/src/web-ui/app/styles/13-projects.css +272 -0
- package/dist/src/web-ui/app/styles/18-dashboard.css +0 -5
- package/dist/src/web-ui/app/styles/19-runtime-setup.css +411 -0
- package/dist/src/web-ui/app/styles/20-chat-composer.css +0 -384
- package/dist/src/web-ui/app/styles/29-conversation-file-preview.css +254 -0
- package/dist/src/web-ui/app/styles/37-runtime-activation.css +26 -0
- package/dist/src/web-ui/app/styles/38-schedule-workspace.css +1 -10
- package/dist/src/web-ui/app/styles/41-plugin-management.css +351 -0
- package/dist/src/web-ui/app/styles/42-runtime-setup-plugins.css +179 -0
- package/dist/src/web-ui/app/styles/43-model-setup.css +73 -0
- package/dist/src/web-ui/app/styles/44-model-provider-cards.css +63 -0
- package/dist/src/web-ui/app/styles/45-bridge-setup.css +44 -0
- package/dist/src/web-ui/app/styles/46-system-host.css +132 -0
- package/dist/src/web-ui/app/styles.css +10 -0
- package/dist/src/web-ui/config-dashboard-backend.d.ts +5 -0
- package/dist/src/web-ui/config-dashboard-backend.js +94 -114
- package/dist/src/web-ui/config-dashboard-model-identity.d.ts +7 -0
- package/dist/src/web-ui/config-dashboard-model-identity.js +45 -0
- package/dist/src/web-ui/config-dashboard-save-transaction.d.ts +5 -0
- package/dist/src/web-ui/config-dashboard-save-transaction.js +21 -0
- package/dist/src/web-ui/environment-config.d.ts +17 -0
- package/dist/src/web-ui/environment-config.js +60 -0
- package/dist/src/web-ui/forwarded-loopback-policy.d.ts +2 -0
- package/dist/src/web-ui/forwarded-loopback-policy.js +14 -0
- package/dist/src/web-ui/local-runtime/api-router.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/api-router.js +136 -12
- package/dist/src/web-ui/local-runtime/config-mutation-request.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/config-mutation-request.js +55 -0
- package/dist/src/web-ui/local-runtime/configuration-activation-environments.d.ts +22 -0
- package/dist/src/web-ui/local-runtime/configuration-activation-environments.js +106 -0
- package/dist/src/web-ui/local-runtime/configuration-activation-source.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/configuration-activation-source.js +36 -0
- package/dist/src/web-ui/local-runtime/configuration-activation.d.ts +20 -0
- package/dist/src/web-ui/local-runtime/configuration-activation.js +107 -0
- package/dist/src/web-ui/local-runtime/contracts.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/conversation-file-access.d.ts +30 -0
- package/dist/src/web-ui/local-runtime/conversation-file-access.js +131 -0
- package/dist/src/web-ui/local-runtime/conversation-file-content.d.ts +21 -0
- package/dist/src/web-ui/local-runtime/conversation-file-content.js +75 -0
- package/dist/src/web-ui/local-runtime/conversation-file-format.d.ts +12 -0
- package/dist/src/web-ui/local-runtime/conversation-file-format.js +87 -0
- package/dist/src/web-ui/local-runtime/conversation-file-native-open.d.ts +10 -0
- package/dist/src/web-ui/local-runtime/conversation-file-native-open.js +94 -0
- package/dist/src/web-ui/local-runtime/conversation-file-native-request.d.ts +4 -0
- package/dist/src/web-ui/local-runtime/conversation-file-native-request.js +72 -0
- package/dist/src/web-ui/local-runtime/conversation-file-routes.d.ts +11 -0
- package/dist/src/web-ui/local-runtime/conversation-file-routes.js +105 -0
- package/dist/src/web-ui/local-runtime/conversation-file-target.d.ts +14 -0
- package/dist/src/web-ui/local-runtime/conversation-file-target.js +158 -0
- package/dist/src/web-ui/local-runtime/environment-registry.d.ts +14 -0
- package/dist/src/web-ui/local-runtime/environment-registry.js +121 -6
- package/dist/src/web-ui/local-runtime/memory-onboarding-routes.d.ts +2 -1
- package/dist/src/web-ui/local-runtime/memory-onboarding-routes.js +15 -10
- package/dist/src/web-ui/local-runtime/model-setup-catalog.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/model-setup-catalog.js +45 -0
- package/dist/src/web-ui/local-runtime/model-setup-identity.d.ts +16 -0
- package/dist/src/web-ui/local-runtime/model-setup-identity.js +20 -0
- package/dist/src/web-ui/local-runtime/model-setup-input.d.ts +24 -0
- package/dist/src/web-ui/local-runtime/model-setup-input.js +107 -0
- package/dist/src/web-ui/local-runtime/model-setup-provider.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/model-setup-provider.js +68 -0
- package/dist/src/web-ui/local-runtime/model-setup-retry.d.ts +14 -0
- package/dist/src/web-ui/local-runtime/model-setup-retry.js +47 -0
- package/dist/src/web-ui/local-runtime/model-setup-routes.d.ts +12 -0
- package/dist/src/web-ui/local-runtime/model-setup-routes.js +50 -0
- package/dist/src/web-ui/local-runtime/model-setup-service.d.ts +30 -0
- package/dist/src/web-ui/local-runtime/model-setup-service.js +93 -0
- package/dist/src/web-ui/local-runtime/model-setup-validation.d.ts +5 -0
- package/dist/src/web-ui/local-runtime/model-setup-validation.js +33 -0
- package/dist/src/web-ui/local-runtime/plugin-management-routes.d.ts +14 -0
- package/dist/src/web-ui/local-runtime/plugin-management-routes.js +50 -0
- package/dist/src/web-ui/local-runtime/project-routes.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/project-routes.js +93 -0
- package/dist/src/web-ui/local-runtime/provider-credential-identity.d.ts +3 -0
- package/dist/src/web-ui/local-runtime/provider-credential-identity.js +18 -0
- package/dist/src/web-ui/local-runtime/request-execution.d.ts +1 -0
- package/dist/src/web-ui/local-runtime/request-execution.js +8 -0
- package/dist/src/web-ui/local-runtime/runtime-availability.js +36 -7
- package/dist/src/web-ui/local-runtime/runtime-setup-completion.d.ts +13 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-completion.js +28 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.d.ts +13 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.js +110 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-credential-completion.d.ts +4 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-credential-completion.js +21 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-credentials.d.ts +14 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-credentials.js +148 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-draft-recovery.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-draft-recovery.js +18 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-draft.d.ts +21 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-draft.js +105 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-embedding-invalidation.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-embedding-invalidation.js +40 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-environment-assignment.d.ts +1 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-environment-assignment.js +27 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-input.d.ts +19 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-input.js +82 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-model-file.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-model-file.js +35 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-provider-ownership-recovery.d.ts +4 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-provider-ownership-recovery.js +23 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-provider-retention.d.ts +11 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-provider-retention.js +31 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-provider.d.ts +11 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-provider.js +60 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-receipt-file.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-receipt-file.js +77 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-routes.d.ts +35 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-routes.js +56 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-scaffold.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-scaffold.js +229 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-service.d.ts +65 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-service.js +195 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-validation.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-validation.js +35 -0
- package/dist/src/web-ui/local-runtime/saved-model-catalog.d.ts +3 -0
- package/dist/src/web-ui/local-runtime/saved-model-catalog.js +20 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-input.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-input.js +71 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-provider.d.ts +13 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-provider.js +114 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-routes.d.ts +12 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-routes.js +53 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-service.d.ts +32 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-service.js +59 -0
- package/dist/src/web-ui/local-runtime-backend.d.ts +1 -0
- package/dist/src/web-ui/local-runtime-backend.js +3 -0
- package/dist/src/web-ui/plugin-capability-selection.d.ts +14 -0
- package/dist/src/web-ui/plugin-capability-selection.js +48 -0
- package/dist/src/web-ui/plugin-management-catalog.d.ts +26 -0
- package/dist/src/web-ui/plugin-management-catalog.js +56 -0
- package/dist/src/web-ui/plugin-management-selection.d.ts +16 -0
- package/dist/src/web-ui/plugin-management-selection.js +71 -0
- package/dist/src/web-ui/plugin-management-service.d.ts +29 -0
- package/dist/src/web-ui/plugin-management-service.js +150 -0
- package/dist/src/web-ui/request-authority.d.ts +8 -0
- package/dist/src/web-ui/request-authority.js +129 -0
- package/dist/src/web-ui/runtime-setup-gateway-address.d.ts +3 -0
- package/dist/src/web-ui/runtime-setup-gateway-address.js +26 -0
- package/dist/src/web-ui/runtime-setup-gateway.d.ts +29 -0
- package/dist/src/web-ui/runtime-setup-gateway.js +177 -0
- package/dist/src/web-ui/runtime-setup-shutdown.d.ts +2 -0
- package/dist/src/web-ui/runtime-setup-shutdown.js +20 -0
- package/dist/src/web-ui/server.d.ts +7 -14
- package/dist/src/web-ui/server.js +53 -63
- package/dist/src/web-ui/session-read-state/service.d.ts +12 -2
- package/dist/src/web-ui/system-host-service.d.ts +19 -0
- package/dist/src/web-ui/system-host-service.js +159 -0
- package/dist/src/web-ui/system-host-setup/companion-bundle.d.ts +2 -0
- package/dist/src/web-ui/system-host-setup/companion-bundle.js +12 -0
- package/dist/src/web-ui/system-host-setup/companion-macos.d.ts +2 -0
- package/dist/src/web-ui/system-host-setup/companion-macos.js +74 -0
- package/dist/src/web-ui/system-host-setup/companion-windows.d.ts +2 -0
- package/dist/src/web-ui/system-host-setup/companion-windows.js +105 -0
- package/dist/src/web-ui/system-host-setup/installer-contract.d.ts +18 -0
- package/dist/src/web-ui/system-host-setup/installer-contract.js +51 -0
- package/dist/src/web-ui/system-host-setup/installers.d.ts +6 -0
- package/dist/src/web-ui/system-host-setup/installers.js +30 -0
- package/dist/src/web-ui/system-host-setup/native-authorization.d.ts +3 -0
- package/dist/src/web-ui/system-host-setup/native-authorization.js +11 -0
- package/dist/src/web-ui/system-host-setup/node-distribution.d.ts +19 -0
- package/dist/src/web-ui/system-host-setup/node-distribution.js +9 -0
- package/dist/src/web-ui/system-host-setup/readiness.d.ts +18 -0
- package/dist/src/web-ui/system-host-setup/readiness.js +70 -0
- package/dist/src/web-ui/system-host-setup/routes.d.ts +20 -0
- package/dist/src/web-ui/system-host-setup/routes.js +121 -0
- package/dist/src/web-ui/system-host-setup/windows-script-wrapper.d.ts +2 -0
- package/dist/src/web-ui/system-host-setup/windows-script-wrapper.js +17 -0
- package/dist/src/web-ui/system-host-setup/wsl-interop-config.d.ts +3 -0
- package/dist/src/web-ui/system-host-setup/wsl-interop-config.js +67 -0
- package/dist/src/web-ui/system-host-setup/wsl-interop-windows.d.ts +1 -0
- package/dist/src/web-ui/system-host-setup/wsl-interop-windows.js +49 -0
- package/dist/src/web-ui/system-host-upgrade-authority.d.ts +5 -0
- package/dist/src/web-ui/system-host-upgrade-authority.js +13 -0
- package/docs/architecture.md +6 -1
- package/docs/installation.md +53 -17
- package/docs/known-limitations.md +14 -0
- package/docs/plugins.md +124 -19
- package/docs/projects-and-full-plus.md +218 -0
- package/docs/runtime-invariant-coverage.md +6 -3
- package/docs/runtime-prompt-policy-contracts.md +37 -5
- package/docs/runtime-public-contracts.md +17 -0
- package/package.json +5 -2
- package/plugins/exec/plugin.json +30 -9
- package/plugins/exec/skills/exec_process_skill/SKILL.md +1 -0
- package/plugins/exec/skills/exec_skill/SKILL.md +9 -10
- package/plugins/exec/source/handlers.ts +4 -38
- package/plugins/exec/source/paths.ts +53 -49
- package/plugins/exec/source/types.ts +6 -4
- package/plugins/exec/source/validation.ts +33 -198
- package/plugins/exec/src/index.cjs +62 -204
- package/plugins/filesystem/plugin.json +1 -1
- package/plugins/filesystem/skills/dev_view_skill/SKILL.md +7 -0
- package/plugins/filesystem/source/atomic-write.ts +6 -3
- package/plugins/filesystem/source/dev-view.ts +2 -1
- package/plugins/filesystem/source/directory-authority-write.ts +4 -0
- package/plugins/filesystem/source/edit-file.ts +3 -0
- package/plugins/filesystem/source/file-output-presentation.ts +42 -0
- package/plugins/filesystem/source/mutation-parent.ts +18 -9
- package/plugins/filesystem/source/view-locator.ts +141 -0
- package/plugins/filesystem/source/view-window.ts +12 -25
- package/plugins/filesystem/source/write-file.ts +8 -0
- package/plugins/filesystem/src/index.cjs +162 -35
- package/plugins/system/plugin.json +374 -0
- package/plugins/system/skills/system_actions/SKILL.md +31 -0
- package/plugins/system/source/application-catalog.ts +237 -0
- package/plugins/system/source/application-launch.ts +113 -0
- package/plugins/system/source/application-observation.ts +78 -0
- package/plugins/system/source/commands.ts +106 -0
- package/plugins/system/source/companion/autostart.ts +185 -0
- package/plugins/system/source/companion/broker-client.ts +183 -0
- package/plugins/system/source/companion/broker-location.ts +89 -0
- package/plugins/system/source/companion/broker-server.ts +169 -0
- package/plugins/system/source/companion/connection.ts +211 -0
- package/plugins/system/source/companion/liveness.ts +23 -0
- package/plugins/system/source/companion/native-address.ts +55 -0
- package/plugins/system/source/companion/native-identity.ts +26 -0
- package/plugins/system/source/companion/native-messages.ts +100 -0
- package/plugins/system/source/companion/native-session.ts +268 -0
- package/plugins/system/source/companion/native-state.ts +135 -0
- package/plugins/system/source/companion/native-supervisor.ts +98 -0
- package/plugins/system/source/companion/pairing-store.ts +110 -0
- package/plugins/system/source/companion/private-store.ts +58 -0
- package/plugins/system/source/companion/process-owner-identity.ts +190 -0
- package/plugins/system/source/companion/protocol.ts +108 -0
- package/plugins/system/source/contracts.ts +44 -0
- package/plugins/system/source/elevation.ts +88 -0
- package/plugins/system/source/handlers.ts +120 -0
- package/plugins/system/source/host-dispatch.ts +106 -0
- package/plugins/system/source/host-evidence.ts +72 -0
- package/plugins/system/source/host-observation.ts +66 -0
- package/plugins/system/source/index.ts +8 -0
- package/plugins/system/source/process-result.ts +111 -0
- package/plugins/system/source/process-runner.ts +104 -0
- package/plugins/system/source/request-system-modules.ts +117 -0
- package/plugins/system/source/request-target-snapshot.ts +163 -0
- package/plugins/system/source/target-observation.ts +43 -0
- package/plugins/system/source/targets.ts +147 -0
- package/plugins/system/src/index.cjs +1730 -0
- package/src/runtime/README.md +36 -8
- package/src/runtime/local-host/README.md +7 -0
- package/dist/src/runtime/steps/planner-decision/capability-catalog-context.d.ts +0 -14
- package/dist/src/runtime/steps/planner-decision/capability-catalog-context.js +0 -87
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SessionProject } from "./project-binding.js";
|
|
1
2
|
import type { AgentMode } from "../shared/types.js";
|
|
2
3
|
import type { RuntimeAttachmentReference } from "../shared/attachments.js";
|
|
3
4
|
import type { SessionMemoryCheckpoint } from "./memory/contracts.js";
|
|
@@ -50,6 +51,8 @@ export type SessionRuntimeEvent = {
|
|
|
50
51
|
export type SessionRequestRecord = {
|
|
51
52
|
requestId: string;
|
|
52
53
|
sessionId: string;
|
|
54
|
+
/** Absent for legacy records and records recreated by late event appends. */
|
|
55
|
+
generation?: string;
|
|
53
56
|
status: SessionRequestStatus;
|
|
54
57
|
createdAt: string;
|
|
55
58
|
updatedAt: string;
|
|
@@ -68,10 +71,12 @@ export type SessionRequestFinalState = {
|
|
|
68
71
|
export type SessionRequestReplay = {
|
|
69
72
|
requestId: string;
|
|
70
73
|
sessionId: string;
|
|
74
|
+
generation?: string;
|
|
71
75
|
events: Record<string, unknown>[];
|
|
72
76
|
finalState: SessionRequestFinalState | null;
|
|
73
77
|
};
|
|
74
78
|
export type SessionListItem = {
|
|
79
|
+
project?: SessionProject;
|
|
75
80
|
id: string;
|
|
76
81
|
title: string;
|
|
77
82
|
createdAt: number;
|
|
@@ -110,6 +115,7 @@ export type SessionSnapshotRequest = {
|
|
|
110
115
|
finalState: SessionRequestFinalState | null;
|
|
111
116
|
};
|
|
112
117
|
export type SessionSnapshot = {
|
|
118
|
+
project?: SessionProject;
|
|
113
119
|
sessionId: string;
|
|
114
120
|
title: string;
|
|
115
121
|
messages: SessionSnapshotMessage[];
|
|
@@ -156,6 +162,7 @@ export type SessionMessage = {
|
|
|
156
162
|
attachments?: RuntimeAttachmentReference[];
|
|
157
163
|
};
|
|
158
164
|
export type SessionRecord = {
|
|
165
|
+
project?: SessionProject;
|
|
159
166
|
id: string;
|
|
160
167
|
title: string;
|
|
161
168
|
createdAt: string;
|
|
@@ -48,6 +48,17 @@ the completion-event boundary: tool output, canonical evidence and model context
|
|
|
48
48
|
are unchanged. The Web UI does not fetch a file or memory record again to recreate
|
|
49
49
|
historical evidence. Passive Runtime memory remains outside tool activity.
|
|
50
50
|
|
|
51
|
+
`tool-process-activity-fields.js` projects declared process display fields without
|
|
52
|
+
branching on tool identities. Opted-in commands retain up to 4,096 characters and
|
|
53
|
+
whitespace; shared `conversation-tool-evidence.js` renders them as inert
|
|
54
|
+
preformatted text in both activity and approval disclosures. Working
|
|
55
|
+
directory, target, exit code and recorded process evidence remain distinct from
|
|
56
|
+
model-authored intent. Result output stays a bounded excerpt, and completion or
|
|
57
|
+
exit zero does not establish an application window or independent outcome check.
|
|
58
|
+
Terminal failures preserve recorded result fields and clipping flags. Old events
|
|
59
|
+
without declared input/output evidence remain unavailable; the UI never guesses
|
|
60
|
+
commands from rationale or opaque parameter summaries.
|
|
61
|
+
|
|
51
62
|
Web sources appear in a separate Activity section alongside role cards and the event timeline. `web-source-event.js` projects only successful `web_search` and `web_fetch` completions; `web-sources.js` validates bounded plugin receipts and groups them by recorded call. `conversation-sources.js` renders links and retrieval/presentation states without interpreting answer text. Source-bearing events retain their own identity before display grouping, and stored session events use the same projection as live events. Session switching clears them with the existing Activity state.
|
|
52
63
|
|
|
53
64
|
The optional `meta.webSources` version 1 receipt describes the final bounded **tool output**, not whether a later model invocation consumed or cited it. Older events can show found/fetched URLs with unknown output visibility; absent or unsupported receipts never imply full content. Favicons are best-effort browser requests to the source origin's `/favicon.ico`, loaded lazily with no referrer and a local fallback. No third-party icon service or server proxy is used. Source URL policy rejects unsafe schemes and credentials, and prevents automatic image loads for local/private IP literals; origin DNS, redirects, cookies, and browser image policy remain browser concerns. Icons carry no evidence and never block tool execution.
|
|
@@ -80,6 +91,36 @@ The native conversation list uses the existing `SessionService` disk reader and
|
|
|
80
91
|
|
|
81
92
|
Read-state persistence is an optional Web UI projection. `session-read-state/availability.ts` isolates sidecar failures from listing, loading, clearing and deleting conversations. A failure returns `readStateStatus: "unavailable"` and unknown counts, preserves the sidecar for diagnosis, and leaves read acknowledgements unsuccessful. The browser keeps the last known receipt, labels unavailable tracking explicitly and resumes normal counts after a healthy list refresh. Canonical session and attachment failures remain errors. Workspace visibility is committed before change callbacks attempt to acknowledge visible messages, including drawer closure and responsive layout changes.
|
|
82
93
|
|
|
94
|
+
## Conversation file preview
|
|
95
|
+
|
|
96
|
+
`conversation-file-reference.js` projects only explicit successful file-output
|
|
97
|
+
receipts from tool events. Activity keeps this reference separate from the
|
|
98
|
+
historical sent/received fields and excerpt. `conversation-file-action.js` makes
|
|
99
|
+
the existing filename an inline preview control inside the tool summary. Its click suppresses disclosure activation;
|
|
100
|
+
other summary interactions retain the recorded evidence disclosure.
|
|
101
|
+
|
|
102
|
+
`conversation-file-preview-controller.js` owns scoped loading and stale-response
|
|
103
|
+
rejection. The feature adapter mounts the viewer outside the message subtree and
|
|
104
|
+
preserves conversation scroll while the layout changes. Session resets and
|
|
105
|
+
workspace departure close it; responsive focus and Escape behavior belong to
|
|
106
|
+
`conversation-file-focus.js`. Transport stays in the conversation-files service.
|
|
107
|
+
|
|
108
|
+
The local backend's `conversation-file-access.ts` admits only a saved or scoped
|
|
109
|
+
active completion belonging to the requested environment, session and request.
|
|
110
|
+
`conversation-file-target.ts` owns the held file and root/containment identity
|
|
111
|
+
checks shared by content reads and native opening. The route revalidates request
|
|
112
|
+
generation and completion before returning bytes or handing off to a Mac app.
|
|
113
|
+
`conversation-file-native-request.ts` limits native opening to same-origin JSON
|
|
114
|
+
POSTs from a local browser on macOS. `conversation-file-native-open.ts` restricts
|
|
115
|
+
file types and invokes the fixed OS opener without a shell. The viewer exposes
|
|
116
|
+
this action only when its preview response includes `nativeOpenAvailable: true`;
|
|
117
|
+
its controller scopes busy/failure feedback to the selected file. The OS app
|
|
118
|
+
resolves the original pathname after handoff; that asynchronous read is outside
|
|
119
|
+
the preview reader's held-descriptor guarantee. The receipt
|
|
120
|
+
is presentation-only: the optional filesystem report callback feeds event
|
|
121
|
+
metadata, never the canonical tool result or model context. No file registry or
|
|
122
|
+
historical content snapshot is created.
|
|
123
|
+
|
|
83
124
|
## Styles
|
|
84
125
|
|
|
85
126
|
`styles.css` is the ordered manifest. The modules under `styles/` own:
|
|
@@ -97,7 +138,6 @@ Keep responsive overrides last and avoid moving declarations between modules wit
|
|
|
97
138
|
|
|
98
139
|
Visual components may format or group events, but they never accept transport frames or construct Runtime API payloads. Realtime frame parsing belongs to `realtime-transport.js`; request sequence and terminal-state reduction belong to `realtime-event-controller.js`; endpoint construction and HTTP payload serialization belong to `runtime-web-client.js` and its feature request modules; and feature controllers own when those operations occur. Config remains explicit-save; presentation changes must never introduce autosave.
|
|
99
140
|
|
|
100
|
-
|
|
101
141
|
## Core schedules
|
|
102
142
|
|
|
103
143
|
`schedules-feature.js` composes the scheduler browser feature from its controller,
|
|
@@ -125,3 +165,83 @@ run identity before activating the ordinary realtime request lifecycle. Duplicat
|
|
|
125
165
|
trigger delivery cannot add another user message or reactivate a completed run.
|
|
126
166
|
The scheduler page and chat card are presentation-only consumers; the runtime
|
|
127
167
|
scheduler remains the sole owner of Job state and dispatch decisions.
|
|
168
|
+
|
|
169
|
+
## Interactive setup and configuration activation
|
|
170
|
+
|
|
171
|
+
The setup guide composes focused rendering/validation modules and receives
|
|
172
|
+
configuration transport callbacks. Runtime onboarding retains catalog authority
|
|
173
|
+
over chat readiness. Home suppresses its dashboard data and shortcuts while
|
|
174
|
+
setup is required; the guide has one scroll owner in either Home or Chat.
|
|
175
|
+
OpenAI credentials live only in the current password input and one save payload.
|
|
176
|
+
They never enter browser state, HTML attributes, preferences or control logs.
|
|
177
|
+
|
|
178
|
+
The setup sequence is Provider, Connection, Embedding, Plugins and Ready.
|
|
179
|
+
The onboarding feature assembles transport dependencies outside app.js; focused
|
|
180
|
+
step modules own embedding and plugin card selection. Chat connection writes
|
|
181
|
+
defer activation in the wizard, while ordinary setup API callers retain their
|
|
182
|
+
existing immediate-activation behavior. The pending-activation gate keeps the
|
|
183
|
+
catalog unavailable until the explicit final apply, including browser reload in
|
|
184
|
+
the same Web process. Optional choices are read back from canonical saved files.
|
|
185
|
+
|
|
186
|
+
Embedding setup prepares only the requested provider and its private credential,
|
|
187
|
+
then delegates to the existing memory probe-before-save service. Probe dimensions
|
|
188
|
+
and fingerprints come from the provider response; the UI never invents them.
|
|
189
|
+
Provider preparation may survive a later probe failure, which is reported without
|
|
190
|
+
exposing credentials. The memory Web router resolves the current configuration
|
|
191
|
+
path per request so first-time setup uses local/runtime.config.json correctly.
|
|
192
|
+
Plugin cards reuse the existing manifest selection API, preserving sibling tools
|
|
193
|
+
and saved policies. Fresh installations start with all plugins and tools selected.
|
|
194
|
+
The onboarding plugin cards display every tool checkbox directly. Their dedicated
|
|
195
|
+
stylesheet widens only this step and keeps the outer workspace as the scroll owner.
|
|
196
|
+
|
|
197
|
+
Configuration composes a plugin manager using the canonical manifest selection
|
|
198
|
+
projection. The separate activation control explicitly applies saved files.
|
|
199
|
+
The server checks synchronous owner admission, refuses busy or externally owned
|
|
200
|
+
environments, and refreshes its gateway through the owning lifecycle callback.
|
|
201
|
+
Browser reload and saved selection are not evidence of live activation.
|
|
202
|
+
|
|
203
|
+
### Additive model setup
|
|
204
|
+
|
|
205
|
+
Configuration composes a separate Provider / Model / Ready dialog in
|
|
206
|
+
components/model-setup/. It shares the wizard shell and connection form with
|
|
207
|
+
first setup, while retaining its own additive save/apply lifecycle. The dialog
|
|
208
|
+
is outside the dashboard so refresh and mutation locking cannot detach it.
|
|
209
|
+
An entered API key remains only in the mounted password field until final save;
|
|
210
|
+
review and back navigation do not copy it into state or markup.
|
|
211
|
+
|
|
212
|
+
configuration-feature.js guards opening against existing configuration drafts,
|
|
213
|
+
blocks workspace/environment navigation while the dialog is open, and holds the
|
|
214
|
+
external mutation lock during save, Apply and refresh. Saved model identity
|
|
215
|
+
survives Apply failure; successful Apply survives refresh failure. Completion
|
|
216
|
+
refreshes Memory provider choices and chat models, selects the new profile, and
|
|
217
|
+
focuses it only after closing the modal and releasing the lock.
|
|
218
|
+
|
|
219
|
+
local-runtime/model-setup-\* owns catalog/input/credential/addition behavior.
|
|
220
|
+
It uses the canonical configuration repository and shared CLI merge helper,
|
|
221
|
+
preserving existing profiles, references, defaults and connection settings.
|
|
222
|
+
Only new OpenAI/Ollama connections are created here; existing provider IDs are
|
|
223
|
+
resolved by adapter type. The transport exposes no secret values and requires
|
|
224
|
+
the same-origin JSON mutation guard. This flow does not invoke a model.
|
|
225
|
+
|
|
226
|
+
## Projects and permission modes
|
|
227
|
+
|
|
228
|
+
`projects-feature.js` composes project UI; `projects-controller.js` owns project
|
|
229
|
+
and folder loading, creation and stale-response rejection. Presentation modules
|
|
230
|
+
render the creation form and sidebar groups, while `runtime-web-client/projects.js`
|
|
231
|
+
owns transport. The folder form occupies the chat canvas without resetting the
|
|
232
|
+
active conversation or draft. It closes the file viewer through its existing
|
|
233
|
+
presentation lifecycle. Creation calls the owner API; a saved project session is
|
|
234
|
+
opened through the canonical conversation controller without a model request.
|
|
235
|
+
|
|
236
|
+
The session controller remains the owner of session row actions and read state.
|
|
237
|
+
Its injected group renderer places project groups above ordinary conversations,
|
|
238
|
+
including projects with no sessions. The session's saved project snapshot also
|
|
239
|
+
provides the visible working-folder label. Neither project presentation nor client
|
|
240
|
+
request payloads overwrite global runtime paths.
|
|
241
|
+
|
|
242
|
+
`tool-permission-mode-controller.js` owns the permission selector and explicit
|
|
243
|
+
per-session preference changes; `lib/tool-permission-mode.js` owns known browser
|
|
244
|
+
values and server compatibility. FULL+ requires advertised server support, and
|
|
245
|
+
transport rejects unsupported requests without a silent downgrade. The existing
|
|
246
|
+
composer queue keeps its captured mode. Project membership never selects FULL+.
|
|
247
|
+
`app-state.js` constructs the same one shared browser state identity for `app.js`.
|
|
@@ -8,6 +8,7 @@ export async function bootstrapWebApp({
|
|
|
8
8
|
homeComposer,
|
|
9
9
|
dashboard,
|
|
10
10
|
schedules,
|
|
11
|
+
projects,
|
|
11
12
|
selection,
|
|
12
13
|
client,
|
|
13
14
|
bindables,
|
|
@@ -30,6 +31,7 @@ export async function bootstrapWebApp({
|
|
|
30
31
|
renderMessages();
|
|
31
32
|
state.config = await client.loadWebConfig();
|
|
32
33
|
schedules.refreshAvailability();
|
|
34
|
+
projects?.refreshAvailability();
|
|
33
35
|
selection.renderEnvironmentOptions();
|
|
34
36
|
const options = selection.environmentOptions();
|
|
35
37
|
const saved = preferences.environmentId();
|
|
@@ -42,6 +44,7 @@ export async function bootstrapWebApp({
|
|
|
42
44
|
selection.renderAgentPicker();
|
|
43
45
|
realtime.connect();
|
|
44
46
|
await Promise.allSettled([
|
|
47
|
+
projects?.load(),
|
|
45
48
|
selection.loadModels(),
|
|
46
49
|
selection.loadAgentMode(),
|
|
47
50
|
operations.loadRuntimeStatus(),
|
|
@@ -26,6 +26,8 @@ export function findAppDom(documentRoot = document) {
|
|
|
26
26
|
environmentSelect: documentRoot.getElementById("environmentSelect"),
|
|
27
27
|
agentPickerButton: documentRoot.getElementById("agentPickerButton"),
|
|
28
28
|
agentPickerMenu: documentRoot.getElementById("agentPickerMenu"),
|
|
29
|
+
newProjectButton: documentRoot.getElementById("newProjectButton"),
|
|
30
|
+
projectCreationRoot: documentRoot.getElementById("projectCreationRoot"),
|
|
29
31
|
newSessionButton: documentRoot.getElementById("newSessionButton"),
|
|
30
32
|
refreshSessionsButton: documentRoot.getElementById("refreshSessionsButton"),
|
|
31
33
|
closeSessionsButton: documentRoot.getElementById("closeSessionsButton"),
|
|
@@ -33,6 +35,7 @@ export function findAppDom(documentRoot = document) {
|
|
|
33
35
|
sessionSearchInput: documentRoot.getElementById("sessionSearchInput"),
|
|
34
36
|
sessionsCount: documentRoot.getElementById("sessionsCount"),
|
|
35
37
|
sessionsList: documentRoot.getElementById("sessionsList"),
|
|
38
|
+
currentProjectContext: documentRoot.getElementById("currentProjectContext"),
|
|
36
39
|
sessionTitle: documentRoot.getElementById("sessionTitle"),
|
|
37
40
|
agentModeButton: documentRoot.getElementById("agentModeButton"),
|
|
38
41
|
agentModeMenu: documentRoot.getElementById("agentModeMenu"),
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export function createAppState() {
|
|
2
|
+
return {
|
|
3
|
+
config: null,
|
|
4
|
+
connected: false,
|
|
5
|
+
sessions: [],
|
|
6
|
+
pinnedSessionIds: [],
|
|
7
|
+
sessionModes: {},
|
|
8
|
+
sessionModels: {},
|
|
9
|
+
lastModelByEnvironment: {},
|
|
10
|
+
agentMode: "reasoning",
|
|
11
|
+
supportedAgentModes: ["fast", "reasoning", "deep", "auto"],
|
|
12
|
+
agentModeMenuOpen: false,
|
|
13
|
+
permissionModeMenuOpen: false,
|
|
14
|
+
agentPickerOpen: false,
|
|
15
|
+
busySessionIds: new Set(),
|
|
16
|
+
messages: [],
|
|
17
|
+
events: [],
|
|
18
|
+
taskProgressByRequest: new Map(),
|
|
19
|
+
contextWindowByRequest: new Map(),
|
|
20
|
+
submittedToolApprovalIds: new Set(),
|
|
21
|
+
requestMessages: new Map(),
|
|
22
|
+
currentSessionId: "",
|
|
23
|
+
activeRequestId: "",
|
|
24
|
+
sessionViewVersion: 0,
|
|
25
|
+
lastSeqByRequest: new Map(),
|
|
26
|
+
modelProfiles: [],
|
|
27
|
+
defaultModelProfileId: "",
|
|
28
|
+
runtimeAvailability: { status: "loading" },
|
|
29
|
+
pendingAttachments: [],
|
|
30
|
+
pendingAttachmentUploadCounts: new Map(),
|
|
31
|
+
composerAttachmentGeneration: 0,
|
|
32
|
+
composerSending: false,
|
|
33
|
+
composerQueueDrainingScopes: new Set(),
|
|
34
|
+
composerQueueRecoveredReleaseTokens: new Set(),
|
|
35
|
+
activeComposerQueueRecovery: null,
|
|
36
|
+
sessionQuery: "",
|
|
37
|
+
};
|
|
38
|
+
}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createAppState } from "./app-state.js";
|
|
2
|
+
import { createProjectsFeature } from "./projects-feature.js";
|
|
3
|
+
import {
|
|
4
|
+
captureComposerSubmissionScope,
|
|
5
|
+
isCurrentComposerSubmissionScope,
|
|
6
|
+
} from "./lib/composer-submission-scope.js";
|
|
2
7
|
import { createComposerSurfaceController } from "./controllers/composer-surface-controller.js";
|
|
3
8
|
import { bootstrapWebApp } from "./app-bootstrap.js";
|
|
4
|
-
import {
|
|
9
|
+
import { bindRuntimeSetupPageLifecycle } from "./runtime-setup-page-lifecycle.js";
|
|
10
|
+
import { createConfigurationFeature } from "./configuration-environment-refresh.js";
|
|
5
11
|
import { createDashboardFeature } from "./dashboard-feature.js";
|
|
6
12
|
import { createComposerWorkspaceController } from "./controllers/composer-workspace-controller.js";
|
|
7
13
|
import { createHomeComposerFeature } from "./controllers/home-composer-feature.js";
|
|
@@ -11,11 +17,11 @@ import { createSchedulesFeature } from "./schedules-feature.js";
|
|
|
11
17
|
import { createWorkspaceShell } from "./components/workspace-shell.js";
|
|
12
18
|
import { createComposerActions } from "./components/composer-actions.js";
|
|
13
19
|
import { createModelSelector } from "./components/model-selector.js";
|
|
14
|
-
import {
|
|
20
|
+
import { createRuntimeOnboardingFeature } from "./runtime-onboarding-feature.js";
|
|
15
21
|
import { createSessionActionsMenu } from "./components/session-actions-menu.js";
|
|
16
22
|
import { createToolApprovalCard } from "./components/tool-approval-card.js";
|
|
17
23
|
import { textOf } from "./lib/text-format.js";
|
|
18
|
-
import { createConversationView } from "./
|
|
24
|
+
import { createConversationViewFeature as createConversationView } from "./controllers/conversation-view-feature.js";
|
|
19
25
|
import { createSessionComposerQueue } from "./lib/session-composer-queue.js";
|
|
20
26
|
import { createRuntimeWebClient } from "./services/runtime-web-client.js";
|
|
21
27
|
import { createClientPreferences } from "./services/client-preferences.js";
|
|
@@ -27,49 +33,13 @@ import { createComposerAttachmentsController } from "./controllers/composer-atta
|
|
|
27
33
|
import { createComposerQueueController } from "./controllers/composer-queue-controller.js";
|
|
28
34
|
import { createRealtimeEventController } from "./controllers/realtime-event-controller.js";
|
|
29
35
|
import { createRuntimeSelectionController } from "./controllers/runtime-selection-controller.js";
|
|
30
|
-
import { createRuntimeOnboardingController } from "./controllers/runtime-onboarding-controller.js";
|
|
31
36
|
import { createAppEventBindings } from "./controllers/app-event-bindings.js";
|
|
32
37
|
import { createConversationSessionController } from "./controllers/conversation-session-controller.js";
|
|
33
38
|
import { createChatRequestController } from "./controllers/chat-request-controller.js";
|
|
34
39
|
import { createToolApprovalController } from "./controllers/tool-approval-controller.js";
|
|
35
40
|
import { createComposerSubmitController } from "./controllers/composer-submit-controller.js";
|
|
36
41
|
|
|
37
|
-
const state =
|
|
38
|
-
config: null,
|
|
39
|
-
connected: false,
|
|
40
|
-
sessions: [],
|
|
41
|
-
pinnedSessionIds: [],
|
|
42
|
-
sessionModes: {},
|
|
43
|
-
sessionModels: {},
|
|
44
|
-
lastModelByEnvironment: {},
|
|
45
|
-
agentMode: "reasoning",
|
|
46
|
-
supportedAgentModes: ["fast", "reasoning", "deep", "auto"],
|
|
47
|
-
agentModeMenuOpen: false,
|
|
48
|
-
permissionModeMenuOpen: false,
|
|
49
|
-
agentPickerOpen: false,
|
|
50
|
-
busySessionIds: new Set(),
|
|
51
|
-
messages: [],
|
|
52
|
-
events: [],
|
|
53
|
-
taskProgressByRequest: new Map(),
|
|
54
|
-
contextWindowByRequest: new Map(),
|
|
55
|
-
submittedToolApprovalIds: new Set(),
|
|
56
|
-
requestMessages: new Map(),
|
|
57
|
-
currentSessionId: "",
|
|
58
|
-
activeRequestId: "",
|
|
59
|
-
sessionViewVersion: 0,
|
|
60
|
-
lastSeqByRequest: new Map(),
|
|
61
|
-
modelProfiles: [],
|
|
62
|
-
defaultModelProfileId: "",
|
|
63
|
-
runtimeAvailability: { status: "loading" },
|
|
64
|
-
pendingAttachments: [],
|
|
65
|
-
pendingAttachmentUploadCounts: new Map(),
|
|
66
|
-
composerAttachmentGeneration: 0,
|
|
67
|
-
composerSending: false,
|
|
68
|
-
composerQueueDrainingScopes: new Set(),
|
|
69
|
-
composerQueueRecoveredReleaseTokens: new Set(),
|
|
70
|
-
activeComposerQueueRecovery: null,
|
|
71
|
-
sessionQuery: "",
|
|
72
|
-
};
|
|
42
|
+
const state = createAppState();
|
|
73
43
|
|
|
74
44
|
const dom = findAppDom();
|
|
75
45
|
|
|
@@ -89,6 +59,7 @@ let schedulesFeature;
|
|
|
89
59
|
let dashboardFeature;
|
|
90
60
|
let homeComposer;
|
|
91
61
|
let runtimeSelection;
|
|
62
|
+
let projectsFeature;
|
|
92
63
|
const operationsController = createOperationsController({
|
|
93
64
|
dom,
|
|
94
65
|
client: runtimeClient,
|
|
@@ -141,6 +112,9 @@ const shell = createWorkspaceShell({
|
|
|
141
112
|
onWorkspaceChange: (workspace) => {
|
|
142
113
|
runtimeSelection?.rememberModelSelection();
|
|
143
114
|
homeComposer?.setWorkspace(workspace);
|
|
115
|
+
conversationView?.setWorkspace(workspace);
|
|
116
|
+
projectsFeature?.workspaceChanged(workspace);
|
|
117
|
+
runtimeSetupGuide.clearSecret();
|
|
144
118
|
schedulesFeature?.setActive(workspace === "schedules");
|
|
145
119
|
dashboardFeature?.setActive(workspace === "home");
|
|
146
120
|
runtimeSelection?.applyModelSelection();
|
|
@@ -157,23 +131,21 @@ const shell = createWorkspaceShell({
|
|
|
157
131
|
return configWorkspace.prepareDiscardChanges("leave configuration");
|
|
158
132
|
},
|
|
159
133
|
});
|
|
160
|
-
const runtimeSetupGuide =
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
},
|
|
176
|
-
});
|
|
134
|
+
const { guide: runtimeSetupGuide, controller: runtimeOnboarding } =
|
|
135
|
+
createRuntimeOnboardingFeature({
|
|
136
|
+
dom,
|
|
137
|
+
runtimeClient,
|
|
138
|
+
selectedEnvironmentId,
|
|
139
|
+
state,
|
|
140
|
+
reloadModels: () => configWorkspace.reloadAppliedEnvironmentModels(),
|
|
141
|
+
reloadCatalog: loadModels,
|
|
142
|
+
setMessageStatus: setMessageActivityStatus,
|
|
143
|
+
onStateChange: () => {
|
|
144
|
+
updateComposerSendState();
|
|
145
|
+
renderAttachmentComposer();
|
|
146
|
+
dashboardFeature?.runtimeAvailabilityChanged();
|
|
147
|
+
},
|
|
148
|
+
});
|
|
177
149
|
|
|
178
150
|
const composerActions = createComposerActions({
|
|
179
151
|
dom,
|
|
@@ -200,6 +172,7 @@ dashboardFeature = createDashboardFeature({
|
|
|
200
172
|
isComposerAvailable: runtimeOnboarding.isReady,
|
|
201
173
|
});
|
|
202
174
|
const composerWorkspace = createComposerWorkspaceController({
|
|
175
|
+
onSessionCreated: (sessionId) => runtimeSelection.initializeSessionMode(sessionId),
|
|
203
176
|
state,
|
|
204
177
|
dom,
|
|
205
178
|
homeComposerHost: dashboardFeature.composerHost,
|
|
@@ -231,6 +204,7 @@ const sessionController = createSessionController({
|
|
|
231
204
|
state,
|
|
232
205
|
dom,
|
|
233
206
|
sessionActionsMenu,
|
|
207
|
+
renderGroups: (input) => projectsFeature?.renderSessionGroups(input) ?? false,
|
|
234
208
|
shell,
|
|
235
209
|
preferences,
|
|
236
210
|
client: runtimeClient,
|
|
@@ -276,12 +250,10 @@ const toolApprovalController = createToolApprovalController({
|
|
|
276
250
|
createCard: createToolApprovalCard,
|
|
277
251
|
});
|
|
278
252
|
conversationView = createConversationView({
|
|
279
|
-
dom
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
composerPlan: dom.composerPlan,
|
|
284
|
-
},
|
|
253
|
+
dom,
|
|
254
|
+
filePreviewClient: runtimeClient,
|
|
255
|
+
getFileEnvironmentId: selectedEnvironmentId,
|
|
256
|
+
getFileSessionId: () => state.currentSessionId,
|
|
285
257
|
getMessages: () => state.messages,
|
|
286
258
|
getActiveRequestId: () => state.activeRequestId,
|
|
287
259
|
isConnected: () => state.connected,
|
|
@@ -301,6 +273,7 @@ conversationView = createConversationView({
|
|
|
301
273
|
canOpenSchedule: runtimeClient.supportsSchedules,
|
|
302
274
|
});
|
|
303
275
|
conversationSession = createConversationSessionController({
|
|
276
|
+
onSessionCreated: (sessionId) => runtimeSelection.initializeSessionMode(sessionId),
|
|
304
277
|
state,
|
|
305
278
|
dom,
|
|
306
279
|
client: runtimeClient,
|
|
@@ -335,6 +308,23 @@ conversationSession = createConversationSessionController({
|
|
|
335
308
|
isCurrentComposerScope: (scope) =>
|
|
336
309
|
composerQueueController.isCurrentScope(scope),
|
|
337
310
|
});
|
|
311
|
+
projectsFeature = createProjectsFeature({
|
|
312
|
+
onSessionCreated: (sessionId) => runtimeSelection.initializeSessionMode(sessionId),
|
|
313
|
+
dom,
|
|
314
|
+
state,
|
|
315
|
+
client: runtimeClient,
|
|
316
|
+
shell,
|
|
317
|
+
selectedEnvironmentId,
|
|
318
|
+
conversationSession,
|
|
319
|
+
renderSessions,
|
|
320
|
+
closeFilePreview: conversationView.closeFilePreview,
|
|
321
|
+
prepareConversation: () => {
|
|
322
|
+
const activate = shell.prepareWorkspaceActivation("chat", { focus: false });
|
|
323
|
+
if (!activate) return false;
|
|
324
|
+
if (!composerQueueController.suspendRecoveryForNavigation()) return false;
|
|
325
|
+
return activate() !== false;
|
|
326
|
+
},
|
|
327
|
+
});
|
|
338
328
|
chatRequests = createChatRequestController({
|
|
339
329
|
state,
|
|
340
330
|
client: runtimeClient,
|
|
@@ -472,16 +462,24 @@ homeComposer = createHomeComposerFeature({
|
|
|
472
462
|
updateComposerSendState,
|
|
473
463
|
}),
|
|
474
464
|
sendMessage: async (text) => {
|
|
475
|
-
const scope = captureComposerSubmissionScope(
|
|
465
|
+
const scope = captureComposerSubmissionScope(
|
|
466
|
+
state,
|
|
467
|
+
selectedEnvironmentId(),
|
|
468
|
+
);
|
|
476
469
|
state.composerSending = true;
|
|
477
470
|
updateComposerSendState();
|
|
478
471
|
try {
|
|
479
472
|
await chatRequests.sendMessage(text);
|
|
480
473
|
} catch (error) {
|
|
481
|
-
if (
|
|
474
|
+
if (
|
|
475
|
+
!isCurrentComposerSubmissionScope(scope, state, selectedEnvironmentId())
|
|
476
|
+
)
|
|
477
|
+
return;
|
|
482
478
|
conversationSession.appendRequestError(error);
|
|
483
479
|
} finally {
|
|
484
|
-
if (
|
|
480
|
+
if (
|
|
481
|
+
isCurrentComposerSubmissionScope(scope, state, selectedEnvironmentId())
|
|
482
|
+
) {
|
|
485
483
|
state.composerSending = false;
|
|
486
484
|
updateComposerSendState();
|
|
487
485
|
}
|
|
@@ -489,6 +487,7 @@ homeComposer = createHomeComposerFeature({
|
|
|
489
487
|
},
|
|
490
488
|
});
|
|
491
489
|
const appEventBindings = createAppEventBindings({
|
|
490
|
+
onSessionCreated: (sessionId) => runtimeSelection.initializeSessionMode(sessionId),
|
|
492
491
|
state,
|
|
493
492
|
dom,
|
|
494
493
|
shell,
|
|
@@ -535,6 +534,9 @@ const appEventBindings = createAppEventBindings({
|
|
|
535
534
|
});
|
|
536
535
|
|
|
537
536
|
configWorkspace = createConfigurationFeature({
|
|
537
|
+
state,
|
|
538
|
+
selection: runtimeSelection,
|
|
539
|
+
onConfigurationApplied: loadModels,
|
|
538
540
|
dom,
|
|
539
541
|
runtimeClient,
|
|
540
542
|
selectedEnvironmentId,
|
|
@@ -726,6 +728,11 @@ async function loadSystemHealth() {
|
|
|
726
728
|
|
|
727
729
|
function bindEvents() {
|
|
728
730
|
appEventBindings.bind();
|
|
731
|
+
bindRuntimeSetupPageLifecycle({
|
|
732
|
+
page: window,
|
|
733
|
+
dispose: runtimeSetupGuide.dispose,
|
|
734
|
+
reloadModels: loadModels,
|
|
735
|
+
});
|
|
729
736
|
document.addEventListener(
|
|
730
737
|
"visibilitychange",
|
|
731
738
|
conversationSession.markCurrentSessionReadSoon,
|
|
@@ -748,10 +755,12 @@ void bootstrapWebApp({
|
|
|
748
755
|
homeComposer,
|
|
749
756
|
dashboard: dashboardFeature,
|
|
750
757
|
schedules: schedulesFeature,
|
|
758
|
+
projects: projectsFeature,
|
|
751
759
|
selection: runtimeSelection,
|
|
752
760
|
client: runtimeClient,
|
|
753
761
|
bindables: [
|
|
754
762
|
sessionActionsMenu,
|
|
763
|
+
projectsFeature,
|
|
755
764
|
conversationView,
|
|
756
765
|
configWorkspace,
|
|
757
766
|
composerActions,
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
malformedConfigRaw,
|
|
3
|
+
configRequiresRawRepair,
|
|
4
|
+
} from "./raw-config-repair.js";
|
|
1
5
|
import { textOf } from "../../lib/text-format.js";
|
|
2
6
|
|
|
3
|
-
export const CONFIG_CATEGORIES = [
|
|
7
|
+
export const CONFIG_CATEGORIES = [
|
|
8
|
+
"memory",
|
|
9
|
+
"pipeline",
|
|
10
|
+
"models",
|
|
11
|
+
"plugins",
|
|
12
|
+
"computer",
|
|
13
|
+
"advanced",
|
|
14
|
+
];
|
|
4
15
|
|
|
5
16
|
const DEFAULT_MODEL_EXECUTION_POLICY = "supervisor-worker-v1";
|
|
6
17
|
|
|
@@ -120,6 +131,7 @@ export function createConfigWorkspaceModel() {
|
|
|
120
131
|
configDashboard: null,
|
|
121
132
|
baselinesByKey: new Map(),
|
|
122
133
|
rawDraftsByKey: new Map(),
|
|
134
|
+
appliedJsonRepairKeys: new Set(),
|
|
123
135
|
savingKeys: new Set(),
|
|
124
136
|
savedKeys: new Set(),
|
|
125
137
|
expandedCalibrationKeys: new Set(),
|
|
@@ -165,11 +177,15 @@ export function createConfigWorkspaceModel() {
|
|
|
165
177
|
function captureBaselines() {
|
|
166
178
|
state.baselinesByKey.clear();
|
|
167
179
|
state.rawDraftsByKey.clear();
|
|
180
|
+
state.appliedJsonRepairKeys.clear();
|
|
168
181
|
state.savedKeys.clear();
|
|
169
182
|
for (const file of configFileEntries()) {
|
|
170
183
|
const key = configFileKey(file);
|
|
171
184
|
state.baselinesByKey.set(key, cloneConfig(file.config));
|
|
172
|
-
state.rawDraftsByKey.set(
|
|
185
|
+
state.rawDraftsByKey.set(
|
|
186
|
+
key,
|
|
187
|
+
malformedConfigRaw(file) ?? formattedConfig(file.config),
|
|
188
|
+
);
|
|
173
189
|
}
|
|
174
190
|
}
|
|
175
191
|
|
|
@@ -178,6 +194,7 @@ export function createConfigWorkspaceModel() {
|
|
|
178
194
|
}
|
|
179
195
|
|
|
180
196
|
function isFileDirty(file) {
|
|
197
|
+
if (state.appliedJsonRepairKeys.has(configFileKey(file))) return true;
|
|
181
198
|
const baseline = baselineFor(file);
|
|
182
199
|
return baseline ? !configValuesEqual(file.config, baseline) : false;
|
|
183
200
|
}
|
|
@@ -186,10 +203,13 @@ export function createConfigWorkspaceModel() {
|
|
|
186
203
|
const key = configFileKey(file);
|
|
187
204
|
return state.rawDraftsByKey.has(key)
|
|
188
205
|
? state.rawDraftsByKey.get(key)
|
|
189
|
-
: formattedConfig(file.config);
|
|
206
|
+
: (malformedConfigRaw(file) ?? formattedConfig(file.config));
|
|
190
207
|
}
|
|
191
208
|
|
|
192
209
|
function hasRawDraftChanges(file) {
|
|
210
|
+
const appliedRepair = state.appliedJsonRepairKeys.has(configFileKey(file));
|
|
211
|
+
if (configRequiresRawRepair(file, appliedRepair))
|
|
212
|
+
return rawDraftFor(file) !== malformedConfigRaw(file);
|
|
193
213
|
return rawConfigDraftHasChanges(rawDraftFor(file), file.config);
|
|
194
214
|
}
|
|
195
215
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { configRepairGuidance } from "./raw-config-repair.js";
|
|
1
2
|
import { escapeAttribute, escapeHtml } from "../../lib/text-format.js";
|
|
2
3
|
|
|
3
4
|
export function createConfigDashboardRendering({
|
|
@@ -78,6 +79,7 @@ export function createConfigDashboardRendering({
|
|
|
78
79
|
>Save file</button>
|
|
79
80
|
</div>
|
|
80
81
|
</div>
|
|
82
|
+
<p id="configRawRepairGuidance" class="error-text" ${configRepairGuidance(file) ? "" : "hidden"}>${escapeHtml(configRepairGuidance(file))}</p>
|
|
81
83
|
<textarea
|
|
82
84
|
id="configRawEditor"
|
|
83
85
|
class="config-view"
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { malformedConfigRaw } from "./raw-config-repair.js";
|
|
1
2
|
import { escapeAttribute, escapeHtml, textOf } from "../../lib/text-format.js";
|
|
2
3
|
import {
|
|
3
4
|
isConfigObject,
|
|
@@ -224,6 +225,7 @@ export function createConfigFieldRendering({
|
|
|
224
225
|
if (hasRawDraftChanges(file)) return "Raw draft not applied";
|
|
225
226
|
if (isFileDirty(file)) return "Unsaved changes";
|
|
226
227
|
if (state.savedKeys.has(key)) return "Saved";
|
|
228
|
+
if (malformedConfigRaw(file) !== undefined) return "Invalid JSON";
|
|
227
229
|
return "Clean";
|
|
228
230
|
}
|
|
229
231
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { configRequiresRawRepair } from "./raw-config-repair.js";
|
|
1
2
|
import { escapeAttribute, escapeHtml, textOf } from "../../lib/text-format.js";
|
|
2
3
|
import { isConfigObject } from "./config-model.js";
|
|
3
4
|
|
|
@@ -152,6 +153,11 @@ export function createConfigModelRendering({
|
|
|
152
153
|
return '<div class="empty-state compact">No model configs found</div>';
|
|
153
154
|
}
|
|
154
155
|
state.selectedConfigModelId = model.id;
|
|
156
|
+
if (configRequiresRawRepair(
|
|
157
|
+
model,
|
|
158
|
+
state.appliedJsonRepairKeys.has(configFileKey(model)),
|
|
159
|
+
))
|
|
160
|
+
return '<p class="error-text">Repair this linked file in Advanced → Raw JSON before editing model settings.</p>';
|
|
155
161
|
const calibration = isConfigObject(model.config?.calibration)
|
|
156
162
|
? model.config.calibration
|
|
157
163
|
: {};
|