devchain-cli 0.24.1 → 0.25.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 +11 -2
- package/dist/build-info.json +2 -2
- package/dist/cli.js +40 -10
- package/dist/host-install/devchain-host-bootstrap.tgz +0 -0
- package/dist/host-install/pins.json +32 -2
- package/dist/lib/exclusive-run.js +51 -3
- package/dist/lib/git-owner.js +284 -0
- package/dist/lib/host-install.js +19 -151
- package/dist/lib/local-api.js +175 -0
- package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts +7 -4
- package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts.map +1 -1
- package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js +1 -0
- package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js.map +1 -1
- package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +26 -26
- package/dist/node_modules/@devchain/shared/schemas/host-provider-clis.d.ts +6 -6
- package/dist/node_modules/@devchain/shared/schemas/project-replica.d.ts +3855 -3855
- package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
- package/dist/server/common/config/env.config.d.ts +6 -0
- package/dist/server/common/config/env.config.js +8 -0
- package/dist/server/common/config/env.config.js.map +1 -1
- package/dist/server/common/config/host-image.json +3 -3
- package/dist/server/common/config/integration-admission.d.ts +1 -0
- package/dist/server/common/config/integration-admission.js +6 -2
- package/dist/server/common/config/integration-admission.js.map +1 -1
- package/dist/server/common/constants/syncthing-markers.d.ts +1 -0
- package/dist/server/common/constants/syncthing-markers.js +6 -1
- package/dist/server/common/constants/syncthing-markers.js.map +1 -1
- package/dist/server/common/filesystem/vm-home-path.d.ts +11 -0
- package/dist/server/common/filesystem/vm-home-path.js +48 -0
- package/dist/server/common/filesystem/vm-home-path.js.map +1 -0
- package/dist/server/common/http/browser-request-guard.d.ts +8 -0
- package/dist/server/common/http/browser-request-guard.js +61 -0
- package/dist/server/common/http/browser-request-guard.js.map +1 -0
- package/dist/server/common/process-ids-env.d.ts +1 -0
- package/dist/server/common/process-ids-env.js +13 -0
- package/dist/server/common/process-ids-env.js.map +1 -0
- package/dist/server/common/test/api-test-app.d.ts +12 -0
- package/dist/server/common/test/api-test-app.js +76 -0
- package/dist/server/common/test/api-test-app.js.map +1 -0
- package/dist/server/common/test/app-bootstrap.helper.js +8 -1
- package/dist/server/common/test/app-bootstrap.helper.js.map +1 -1
- package/dist/server/common/test/fake-bootstrap.server.js +3 -2
- package/dist/server/common/test/fake-bootstrap.server.js.map +1 -1
- package/dist/server/common/test/fake-docker-engine.server.d.ts +25 -6
- package/dist/server/common/test/fake-docker-engine.server.js +111 -34
- package/dist/server/common/test/fake-docker-engine.server.js.map +1 -1
- package/dist/server/common/test/fake-proxmox.server.js +4 -4
- package/dist/server/common/test/fake-ssh.server.js +6 -6
- package/dist/server/common/test/fake-ssh.server.js.map +1 -1
- package/dist/server/common/test/test-database.helper.d.ts +6 -0
- package/dist/server/common/test/test-database.helper.js +29 -0
- package/dist/server/common/test/test-database.helper.js.map +1 -0
- package/dist/server/common/test/tls-fixture.d.ts +2 -1
- package/dist/server/common/test/tls-fixture.js +47 -5
- package/dist/server/common/test/tls-fixture.js.map +1 -1
- package/dist/server/modules/agents/agents.module.js +1 -8
- package/dist/server/modules/agents/agents.module.js.map +1 -1
- package/dist/server/modules/agents/controllers/agents.controller.d.ts +4 -4
- package/dist/server/modules/agents/controllers/agents.controller.js +6 -10
- package/dist/server/modules/agents/controllers/agents.controller.js.map +1 -1
- package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js +7 -7
- package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js.map +1 -1
- package/dist/server/modules/cloud/services/cloud-session-manager.service.d.ts +12 -0
- package/dist/server/modules/cloud/services/cloud-session-manager.service.js +78 -9
- package/dist/server/modules/cloud/services/cloud-session-manager.service.js.map +1 -1
- package/dist/server/modules/cloud/services/notification-recipient-resolver.service.d.ts +2 -2
- package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js +9 -3
- package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js +2 -2
- package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.d.ts +4 -4
- package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js +6 -6
- package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.d.ts +2 -2
- package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.d.ts +3 -0
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js +1 -0
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.d.ts +2 -2
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js +3 -2
- package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.d.ts +14 -3
- package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +54 -14
- package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/viewport-streamer.service.d.ts +2 -2
- package/dist/server/modules/core/controllers/docker-archive-owners.d.ts +29 -0
- package/dist/server/modules/core/controllers/docker-archive-owners.js +226 -0
- package/dist/server/modules/core/controllers/docker-archive-owners.js.map +1 -0
- package/dist/server/modules/core/controllers/docker-archive.js +1 -1
- package/dist/server/modules/core/controllers/docker-archive.js.map +1 -1
- package/dist/server/modules/core/controllers/docker-engine.client.d.ts +6 -1
- package/dist/server/modules/core/controllers/docker-engine.client.js +46 -4
- package/dist/server/modules/core/controllers/docker-engine.client.js.map +1 -1
- package/dist/server/modules/core/controllers/docker-image-metadata.d.ts +248 -0
- package/dist/server/modules/core/controllers/docker-image-metadata.js +161 -0
- package/dist/server/modules/core/controllers/docker-image-metadata.js.map +1 -0
- package/dist/server/modules/core/controllers/docker-settings.d.ts +13 -2
- package/dist/server/modules/core/controllers/docker-settings.js +49 -11
- package/dist/server/modules/core/controllers/docker-settings.js.map +1 -1
- package/dist/server/modules/core/controllers/health.controller.d.ts +7 -6
- package/dist/server/modules/core/controllers/health.controller.js +1 -1
- package/dist/server/modules/core/controllers/health.controller.js.map +1 -1
- package/dist/server/modules/core/controllers/host-user-identity.d.ts +34 -0
- package/dist/server/modules/core/controllers/host-user-identity.js +23 -0
- package/dist/server/modules/core/controllers/host-user-identity.js.map +1 -0
- package/dist/server/modules/core/controllers/runtime.controller.d.ts +2 -49
- package/dist/server/modules/core/controllers/runtime.controller.js +2 -0
- package/dist/server/modules/core/controllers/runtime.controller.js.map +1 -1
- package/dist/server/modules/core/services/preflight.service.d.ts +2 -2
- package/dist/server/modules/core/services/preflight.service.js +4 -3
- package/dist/server/modules/core/services/preflight.service.js.map +1 -1
- package/dist/server/modules/e2ee/services/e2ee-device-store.service.d.ts +3 -0
- package/dist/server/modules/e2ee/services/e2ee-device-store.service.js +12 -4
- package/dist/server/modules/e2ee/services/e2ee-device-store.service.js.map +1 -1
- package/dist/server/modules/e2ee/services/e2ee-pairing.service.d.ts +1 -0
- package/dist/server/modules/e2ee/services/e2ee-pairing.service.js +4 -0
- package/dist/server/modules/e2ee/services/e2ee-pairing.service.js.map +1 -1
- package/dist/server/modules/e2ee/services/e2ee-trust.service.d.ts +6 -2
- package/dist/server/modules/e2ee/services/e2ee-trust.service.js +16 -5
- package/dist/server/modules/e2ee/services/e2ee-trust.service.js.map +1 -1
- package/dist/server/modules/epic-time/epic-time.module.js +0 -2
- package/dist/server/modules/epic-time/epic-time.module.js.map +1 -1
- package/dist/server/modules/epic-time/services/agent-time-accounting.service.d.ts +3 -3
- package/dist/server/modules/epic-time/services/agent-time-accounting.service.js +12 -12
- package/dist/server/modules/epic-time/services/agent-time-accounting.service.js.map +1 -1
- package/dist/server/modules/epic-time/services/epic-estimate-logging.service.d.ts +2 -2
- package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js.map +1 -1
- package/dist/server/modules/epic-time/services/epic-time.service.d.ts +3 -3
- package/dist/server/modules/epic-time/services/epic-time.service.js +7 -7
- package/dist/server/modules/epic-time/services/epic-time.service.js.map +1 -1
- package/dist/server/modules/epics/epics.module.js +0 -2
- package/dist/server/modules/epics/epics.module.js.map +1 -1
- package/dist/server/modules/epics/services/epic-relations.service.d.ts +1 -4
- package/dist/server/modules/epics/services/epic-relations.service.js +2 -22
- package/dist/server/modules/epics/services/epic-relations.service.js.map +1 -1
- package/dist/server/modules/epics/services/epics.service.d.ts +4 -4
- package/dist/server/modules/epics/services/epics.service.js +11 -19
- package/dist/server/modules/epics/services/epics.service.js.map +1 -1
- package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.d.ts +2 -2
- package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js +3 -3
- package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js.map +1 -1
- package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.d.ts +2 -2
- package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js +2 -2
- package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js.map +1 -1
- package/dist/server/modules/events/catalog/on-catalog-event.d.ts +5 -0
- package/dist/server/modules/events/catalog/on-catalog-event.js +8 -0
- package/dist/server/modules/events/catalog/on-catalog-event.js.map +1 -0
- package/dist/server/modules/events/signals/session-turn-signals.js.map +1 -0
- package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.d.ts +0 -5
- package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js +8 -44
- package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js.map +1 -1
- package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.d.ts +0 -5
- package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js +9 -45
- package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js.map +1 -1
- package/dist/server/modules/external-integrations/adapters/vendor-shared.d.ts +7 -2
- package/dist/server/modules/external-integrations/adapters/vendor-shared.js +36 -0
- package/dist/server/modules/external-integrations/adapters/vendor-shared.js.map +1 -1
- package/dist/server/modules/external-integrations/connections/integration-connections.service.d.ts +2 -2
- package/dist/server/modules/external-integrations/connections/integration-connections.service.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +2 -2
- package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +2 -2
- package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -1
- package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.d.ts +2 -2
- package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -1
- package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.d.ts +2 -2
- package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.js.map +1 -1
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.d.ts +2 -2
- package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.js.map +1 -1
- package/dist/server/modules/file-sync/build-exclusion-suggestions.d.ts +15 -0
- package/dist/server/modules/file-sync/build-exclusion-suggestions.js +402 -0
- package/dist/server/modules/file-sync/build-exclusion-suggestions.js.map +1 -0
- package/dist/server/modules/file-sync/file-sync-auto-fix.dto.d.ts +102 -0
- package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js +21 -0
- package/dist/server/modules/file-sync/file-sync-auto-fix.dto.js.map +1 -0
- package/dist/server/modules/file-sync/file-sync-auto-fix.store.d.ts +12 -0
- package/dist/server/modules/file-sync/file-sync-auto-fix.store.js +73 -0
- package/dist/server/modules/file-sync/file-sync-auto-fix.store.js.map +1 -0
- package/dist/server/modules/file-sync/file-sync-conflicts.d.ts +3 -0
- package/dist/server/modules/file-sync/file-sync-conflicts.js +191 -0
- package/dist/server/modules/file-sync/file-sync-conflicts.js.map +1 -0
- package/dist/server/modules/file-sync/file-sync-ignores.store.d.ts +5 -1
- package/dist/server/modules/file-sync/file-sync-ignores.store.js +39 -8
- package/dist/server/modules/file-sync/file-sync-ignores.store.js.map +1 -1
- package/dist/server/modules/file-sync/file-sync.controller.d.ts +1 -3
- package/dist/server/modules/file-sync/file-sync.controller.js +5 -14
- package/dist/server/modules/file-sync/file-sync.controller.js.map +1 -1
- package/dist/server/modules/file-sync/file-sync.dto.d.ts +233 -1
- package/dist/server/modules/file-sync/file-sync.dto.js +77 -4
- package/dist/server/modules/file-sync/file-sync.dto.js.map +1 -1
- package/dist/server/modules/file-sync/file-sync.module.js +14 -1
- package/dist/server/modules/file-sync/file-sync.module.js.map +1 -1
- package/dist/server/modules/file-sync/file-sync.service.d.ts +21 -5
- package/dist/server/modules/file-sync/file-sync.service.js +174 -38
- package/dist/server/modules/file-sync/file-sync.service.js.map +1 -1
- package/dist/server/modules/file-sync/git-guard.dto.d.ts +61 -0
- package/dist/server/modules/file-sync/git-guard.dto.js +26 -0
- package/dist/server/modules/file-sync/git-guard.dto.js.map +1 -0
- package/dist/server/modules/file-sync/home-git-guard.service.d.ts +5 -3
- package/dist/server/modules/file-sync/home-git-guard.service.js +50 -25
- package/dist/server/modules/file-sync/home-git-guard.service.js.map +1 -1
- package/dist/server/modules/file-sync/host-git-guard.controller.d.ts +9 -0
- package/dist/server/modules/file-sync/host-git-guard.controller.js +64 -0
- package/dist/server/modules/file-sync/host-git-guard.controller.js.map +1 -0
- package/dist/server/modules/file-sync/host-git-index.controller.d.ts +10 -0
- package/dist/server/modules/file-sync/host-git-index.controller.js +67 -0
- package/dist/server/modules/file-sync/host-git-index.controller.js.map +1 -0
- package/dist/server/modules/file-sync/host-sync.controller.d.ts +20 -10
- package/dist/server/modules/file-sync/host-sync.controller.js +117 -17
- package/dist/server/modules/file-sync/host-sync.controller.js.map +1 -1
- package/dist/server/modules/file-sync/ignore-pattern-matcher.d.ts +33 -0
- package/dist/server/modules/file-sync/ignore-pattern-matcher.js +227 -0
- package/dist/server/modules/file-sync/ignore-pattern-matcher.js.map +1 -0
- package/dist/server/modules/file-sync/project-repository.d.ts +2 -0
- package/dist/server/modules/file-sync/project-repository.js +20 -0
- package/dist/server/modules/file-sync/project-repository.js.map +1 -0
- package/dist/server/modules/file-sync/sync-path-inspection.dto.d.ts +610 -0
- package/dist/server/modules/file-sync/sync-path-inspection.dto.js +100 -0
- package/dist/server/modules/file-sync/sync-path-inspection.dto.js.map +1 -0
- package/dist/server/modules/file-sync/sync-path-inspector.d.ts +12 -0
- package/dist/server/modules/file-sync/sync-path-inspector.js +429 -0
- package/dist/server/modules/file-sync/sync-path-inspector.js.map +1 -0
- package/dist/server/modules/file-sync/syncthing-launcher.d.ts +4 -0
- package/dist/server/modules/file-sync/syncthing-launcher.js +21 -1
- package/dist/server/modules/file-sync/syncthing-launcher.js.map +1 -1
- package/dist/server/modules/file-sync/syncthing-manager.service.d.ts +2 -0
- package/dist/server/modules/file-sync/syncthing-manager.service.js +27 -11
- package/dist/server/modules/file-sync/syncthing-manager.service.js.map +1 -1
- package/dist/server/modules/file-sync/testing/fake-file-sync.service.d.ts +30 -4
- package/dist/server/modules/file-sync/testing/fake-file-sync.service.js +69 -4
- package/dist/server/modules/file-sync/testing/fake-file-sync.service.js.map +1 -1
- package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.d.ts +3 -0
- package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.js +11 -0
- package/dist/server/modules/file-sync/testing/fake-syncthing-launcher.js.map +1 -1
- package/dist/server/modules/file-sync/translate-git-ignore-rule.d.ts +3 -0
- package/dist/server/modules/file-sync/translate-git-ignore-rule.js +30 -0
- package/dist/server/modules/file-sync/translate-git-ignore-rule.js.map +1 -0
- package/dist/server/modules/git/dtos/git.dto.d.ts +4 -4
- package/dist/server/modules/git/services/git.service.d.ts +3 -2
- package/dist/server/modules/git/services/git.service.js +12 -0
- package/dist/server/modules/git/services/git.service.js.map +1 -1
- package/dist/server/modules/guests/guests.module.js +1 -1
- package/dist/server/modules/guests/guests.module.js.map +1 -1
- package/dist/server/modules/guests/services/guest-health.service.d.ts +3 -1
- package/dist/server/modules/guests/services/guest-health.service.js +15 -5
- package/dist/server/modules/guests/services/guest-health.service.js.map +1 -1
- package/dist/server/modules/guests/services/guests.service.d.ts +2 -2
- package/dist/server/modules/guests/services/guests.service.js +0 -2
- package/dist/server/modules/guests/services/guests.service.js.map +1 -1
- package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +4 -4
- package/dist/server/modules/hooks/services/hooks.service.js +1 -1
- package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
- package/dist/server/modules/hooks/services/pending-ask-user-question.service.d.ts +3 -6
- package/dist/server/modules/hooks/services/pending-ask-user-question.service.js +3 -3
- package/dist/server/modules/hooks/services/pending-ask-user-question.service.js.map +1 -1
- package/dist/server/modules/mcp/mcp-full.module.js +0 -2
- package/dist/server/modules/mcp/mcp-full.module.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/chat-context.d.ts +2 -2
- package/dist/server/modules/mcp/services/handlers/chat-tools.js +1 -1
- package/dist/server/modules/mcp/services/handlers/chat-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/skill-tools.js +2 -2
- package/dist/server/modules/mcp/services/handlers/skill-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +3 -4
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +4 -4
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
- package/dist/server/modules/mcp/services/mcp.service.d.ts +2 -2
- package/dist/server/modules/mcp/services/mcp.service.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +4 -4
- package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js +1 -1
- package/dist/server/modules/mcp/tool-descriptors/chat.bindings.js.map +1 -1
- package/dist/server/modules/profiles/controllers/profiles.controller.d.ts +7 -31
- package/dist/server/modules/profiles/controllers/profiles.controller.js +10 -13
- package/dist/server/modules/profiles/controllers/profiles.controller.js.map +1 -1
- package/dist/server/modules/profiles/dto.d.ts +17 -0
- package/dist/server/modules/profiles/dto.js.map +1 -1
- package/dist/server/modules/profiles/profiles.module.js +1 -2
- package/dist/server/modules/profiles/profiles.module.js.map +1 -1
- package/dist/server/modules/profiles/services/provider-configs.service.d.ts +1 -4
- package/dist/server/modules/profiles/services/provider-configs.service.js +3 -12
- package/dist/server/modules/profiles/services/provider-configs.service.js.map +1 -1
- package/dist/server/modules/project-communication/project-communication.module.js +1 -2
- package/dist/server/modules/project-communication/project-communication.module.js.map +1 -1
- package/dist/server/modules/project-communication/project-communication.service.d.ts +4 -4
- package/dist/server/modules/project-communication/project-communication.service.js +8 -8
- package/dist/server/modules/project-communication/project-communication.service.js.map +1 -1
- package/dist/server/modules/projects/controllers/projects.controller.d.ts +4 -17
- package/dist/server/modules/projects/controllers/projects.controller.js +2 -9
- package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
- package/dist/server/modules/projects/dtos/project-presets.dto.d.ts +5 -0
- package/dist/server/modules/projects/dtos/project-presets.dto.js +3 -0
- package/dist/server/modules/projects/dtos/project-presets.dto.js.map +1 -0
- package/dist/server/modules/projects/helpers/project-export.d.ts +2 -2
- package/dist/server/modules/projects/helpers/project-export.js.map +1 -1
- package/dist/server/modules/projects/helpers/project-import.d.ts +3 -2
- package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
- package/dist/server/modules/projects/helpers/project-presets.helpers.d.ts +2 -2
- package/dist/server/modules/projects/helpers/project-presets.helpers.js.map +1 -1
- package/dist/server/modules/projects/helpers/template-loader.d.ts +3 -2
- package/dist/server/modules/projects/helpers/template-loader.js.map +1 -1
- package/dist/server/modules/projects/projects.module.js +0 -2
- package/dist/server/modules/projects/projects.module.js.map +1 -1
- package/dist/server/modules/projects/services/project-provider-provisioning.service.d.ts +2 -2
- package/dist/server/modules/projects/services/project-provider-provisioning.service.js.map +1 -1
- package/dist/server/modules/projects/services/project-registry-import.service.d.ts +2 -2
- package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
- package/dist/server/modules/projects/services/project-template-upgrade.service.d.ts +3 -3
- package/dist/server/modules/projects/services/project-template-upgrade.service.js +6 -7
- package/dist/server/modules/projects/services/project-template-upgrade.service.js.map +1 -1
- package/dist/server/modules/projects/services/projects.service.d.ts +4 -4
- package/dist/server/modules/projects/services/projects.service.js +7 -9
- package/dist/server/modules/projects/services/projects.service.js.map +1 -1
- package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.d.ts +2 -2
- package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.js.map +1 -1
- package/dist/server/modules/projects/template-codec/codecs/teams.codec.d.ts +2 -2
- package/dist/server/modules/projects/template-codec/codecs/teams.codec.js.map +1 -1
- package/dist/server/modules/projects/template-codec/codecs/watchers.codec.d.ts +1 -1
- package/dist/server/modules/projects/template-codec/codecs/watchers.codec.js.map +1 -1
- package/dist/server/modules/projects/template-codec/template-section-codec.d.ts +3 -3
- package/dist/server/modules/prompts/controllers/prompts.controller.d.ts +1 -3
- package/dist/server/modules/prompts/controllers/prompts.controller.js +3 -8
- package/dist/server/modules/prompts/controllers/prompts.controller.js.map +1 -1
- package/dist/server/modules/prompts/prompts.module.js +1 -2
- package/dist/server/modules/prompts/prompts.module.js.map +1 -1
- package/dist/server/modules/providers/adapters/antigravity.adapter.d.ts +1 -1
- package/dist/server/modules/providers/adapters/antigravity.adapter.js +2 -1
- package/dist/server/modules/providers/adapters/antigravity.adapter.js.map +1 -1
- package/dist/server/modules/providers/adapters/antigravity.traits.d.ts +2 -0
- package/dist/server/modules/providers/adapters/antigravity.traits.js +9 -0
- package/dist/server/modules/providers/adapters/antigravity.traits.js.map +1 -0
- package/dist/server/modules/providers/adapters/capabilities/hook.capability.d.ts +0 -1
- package/dist/server/modules/providers/adapters/capabilities/project-provisioning.capability.d.ts +0 -1
- package/dist/server/modules/providers/adapters/capabilities/type-guards.d.ts +0 -1
- package/dist/server/modules/providers/adapters/capabilities/type-guards.js.map +1 -1
- package/dist/server/modules/providers/adapters/claude.adapter.d.ts +1 -3
- package/dist/server/modules/providers/adapters/claude.adapter.js +5 -8
- package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
- package/dist/server/modules/providers/adapters/claude.traits.d.ts +2 -0
- package/dist/server/modules/providers/adapters/claude.traits.js +9 -0
- package/dist/server/modules/providers/adapters/claude.traits.js.map +1 -0
- package/dist/server/modules/providers/adapters/codex.adapter.d.ts +1 -2
- package/dist/server/modules/providers/adapters/codex.adapter.js +3 -5
- package/dist/server/modules/providers/adapters/codex.adapter.js.map +1 -1
- package/dist/server/modules/providers/adapters/codex.traits.d.ts +2 -0
- package/dist/server/modules/providers/adapters/codex.traits.js +9 -0
- package/dist/server/modules/providers/adapters/codex.traits.js.map +1 -0
- package/dist/server/modules/providers/adapters/copilot.adapter.d.ts +1 -3
- package/dist/server/modules/providers/adapters/copilot.adapter.js +3 -6
- package/dist/server/modules/providers/adapters/copilot.adapter.js.map +1 -1
- package/dist/server/modules/providers/adapters/copilot.traits.d.ts +2 -0
- package/dist/server/modules/providers/adapters/copilot.traits.js +9 -0
- package/dist/server/modules/providers/adapters/copilot.traits.js.map +1 -0
- package/dist/server/modules/providers/adapters/opencode.adapter.d.ts +1 -1
- package/dist/server/modules/providers/adapters/opencode.adapter.js +3 -4
- package/dist/server/modules/providers/adapters/opencode.adapter.js.map +1 -1
- package/dist/server/modules/providers/adapters/opencode.traits.d.ts +2 -0
- package/dist/server/modules/providers/adapters/opencode.traits.js +9 -0
- package/dist/server/modules/providers/adapters/opencode.traits.js.map +1 -0
- package/dist/server/modules/providers/adapters/provider-adapter.factory.d.ts +2 -2
- package/dist/server/modules/providers/adapters/provider-adapter.factory.js.map +1 -1
- package/dist/server/modules/providers/adapters/provider-adapter.interface.d.ts +2 -0
- package/dist/server/modules/providers/adapters/provider-traits.d.ts +9 -0
- package/dist/server/modules/providers/adapters/provider-traits.js +28 -0
- package/dist/server/modules/providers/adapters/provider-traits.js.map +1 -0
- package/dist/server/modules/providers/controllers/provider-efforts.controller.d.ts +9 -7
- package/dist/server/modules/providers/controllers/provider-efforts.controller.js.map +1 -1
- package/dist/server/modules/providers/controllers/provider-models.controller.d.ts +1 -1
- package/dist/server/modules/providers/controllers/provider-models.controller.js.map +1 -1
- package/dist/server/modules/providers/controllers/provider-plugin-policy.controller.d.ts +2 -2
- package/dist/server/modules/providers/controllers/provider-plugin-policy.controller.js.map +1 -1
- package/dist/server/modules/providers/controllers/providers.controller.d.ts +1 -1
- package/dist/server/modules/providers/controllers/providers.controller.js.map +1 -1
- package/dist/server/modules/providers/provider-traits.types.d.ts +5 -0
- package/dist/server/modules/providers/provider-traits.types.js +3 -0
- package/dist/server/modules/providers/provider-traits.types.js.map +1 -0
- package/dist/server/modules/providers/providers.module.js +0 -2
- package/dist/server/modules/providers/providers.module.js.map +1 -1
- package/dist/server/modules/providers/services/mcp-provider-registration.service.d.ts +2 -2
- package/dist/server/modules/providers/services/mcp-provider-registration.service.js +2 -1
- package/dist/server/modules/providers/services/mcp-provider-registration.service.js.map +1 -1
- package/dist/server/modules/providers/services/provider-cli-installer.service.d.ts +1 -1
- package/dist/server/modules/providers/services/provider-cli-installer.service.js.map +1 -1
- package/dist/server/modules/providers/services/provider-discovery.service.d.ts +1 -1
- package/dist/server/modules/providers/services/provider-discovery.service.js.map +1 -1
- package/dist/server/modules/providers/services/provider-effort-seeding.service.d.ts +1 -1
- package/dist/server/modules/providers/services/provider-effort-seeding.service.js.map +1 -1
- package/dist/server/modules/providers/services/provider-mcp-ensure.service.d.ts +4 -4
- package/dist/server/modules/providers/services/provider-mcp-ensure.service.js +8 -7
- package/dist/server/modules/providers/services/provider-mcp-ensure.service.js.map +1 -1
- package/dist/server/modules/providers/services/provider-plugin-policy.service.d.ts +2 -2
- package/dist/server/modules/providers/services/provider-plugin-policy.service.js.map +1 -1
- package/dist/server/modules/providers/services/provider-plugins.service.d.ts +1 -1
- package/dist/server/modules/providers/services/provider-plugins.service.js.map +1 -1
- package/dist/server/modules/providers/services/provider-project-sync.service.d.ts +4 -4
- package/dist/server/modules/providers/services/provider-project-sync.service.js +6 -6
- package/dist/server/modules/providers/services/provider-project-sync.service.js.map +1 -1
- package/dist/server/modules/providers/services/provider-state-manager.service.d.ts +2 -2
- package/dist/server/modules/providers/services/provider-state-manager.service.js +1 -1
- package/dist/server/modules/providers/services/provider-state-manager.service.js.map +1 -1
- package/dist/server/modules/providers/utils/claude-config.js.map +1 -0
- package/dist/server/modules/providers/utils/codex-config.js.map +1 -0
- package/dist/server/modules/providers/utils/env-builder.js.map +1 -0
- package/dist/server/modules/{sessions → providers}/utils/profile-options.d.ts +1 -1
- package/dist/server/modules/providers/utils/profile-options.js.map +1 -0
- package/dist/server/modules/registry/controllers/registry.controller.d.ts +2 -2
- package/dist/server/modules/registry/controllers/registry.controller.js.map +1 -1
- package/dist/server/modules/registry/controllers/templates.controller.d.ts +3 -3
- package/dist/server/modules/registry/services/registry-orchestration.service.d.ts +3 -1
- package/dist/server/modules/registry/services/registry-orchestration.service.js +14 -2
- package/dist/server/modules/registry/services/registry-orchestration.service.js.map +1 -1
- package/dist/server/modules/remotes/admission/project-write-admission.module.js +3 -5
- package/dist/server/modules/remotes/admission/project-write-admission.module.js.map +1 -1
- package/dist/server/modules/remotes/admission/project-write-admission.service.d.ts +6 -17
- package/dist/server/modules/remotes/admission/project-write-admission.service.js +11 -62
- package/dist/server/modules/remotes/admission/project-write-admission.service.js.map +1 -1
- package/dist/server/modules/remotes/connect-choices.controller.d.ts +9 -0
- package/dist/server/modules/remotes/connect-choices.controller.js +54 -0
- package/dist/server/modules/remotes/connect-choices.controller.js.map +1 -0
- package/dist/server/modules/remotes/connect-choices.dto.d.ts +52 -0
- package/dist/server/modules/remotes/connect-choices.dto.js +19 -0
- package/dist/server/modules/remotes/connect-choices.dto.js.map +1 -0
- package/dist/server/modules/remotes/connect-choices.store.d.ts +12 -0
- package/dist/server/modules/remotes/connect-choices.store.js +95 -0
- package/dist/server/modules/remotes/connect-choices.store.js.map +1 -0
- package/dist/server/modules/remotes/contract/host-routes.d.ts +27536 -0
- package/dist/server/modules/remotes/contract/host-routes.js +405 -0
- package/dist/server/modules/remotes/contract/host-routes.js.map +1 -0
- package/dist/server/modules/remotes/controllers/remotes.controller.d.ts +3 -0
- package/dist/server/modules/remotes/controllers/remotes.controller.js +9 -1
- package/dist/server/modules/remotes/controllers/remotes.controller.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-compose-user-fix.d.ts +3 -0
- package/dist/server/modules/remotes/docker/docker-compose-user-fix.js +212 -0
- package/dist/server/modules/remotes/docker/docker-compose-user-fix.js.map +1 -0
- package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.d.ts +27 -0
- package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.js +185 -0
- package/dist/server/modules/remotes/docker/docker-copy-back-exclusions.js.map +1 -0
- package/dist/server/modules/remotes/docker/docker-copy-back.d.ts +15 -1
- package/dist/server/modules/remotes/docker/docker-copy-back.dto.d.ts +8 -1
- package/dist/server/modules/remotes/docker/docker-copy-back.dto.js +3 -1
- package/dist/server/modules/remotes/docker/docker-copy-back.dto.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-copy-back.js +770 -144
- package/dist/server/modules/remotes/docker/docker-copy-back.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-data-groups.d.ts +3 -3
- package/dist/server/modules/remotes/docker/docker-data-groups.js +20 -6
- package/dist/server/modules/remotes/docker/docker-data-groups.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-data-representation.d.ts +9 -0
- package/dist/server/modules/remotes/docker/docker-data-representation.js +85 -0
- package/dist/server/modules/remotes/docker/docker-data-representation.js.map +1 -0
- package/dist/server/modules/remotes/docker/docker-handoff.d.ts +9 -4
- package/dist/server/modules/remotes/docker/docker-handoff.js +396 -66
- package/dist/server/modules/remotes/docker/docker-handoff.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-handoff.store.d.ts +40 -7
- package/dist/server/modules/remotes/docker/docker-handoff.store.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-ownership.d.ts +26 -0
- package/dist/server/modules/remotes/docker/docker-ownership.js +182 -0
- package/dist/server/modules/remotes/docker/docker-ownership.js.map +1 -0
- package/dist/server/modules/remotes/docker/docker-plan-files.d.ts +1 -0
- package/dist/server/modules/remotes/docker/docker-plan-files.js +4 -0
- package/dist/server/modules/remotes/docker/docker-plan-files.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan-fit.d.ts +6 -3
- package/dist/server/modules/remotes/docker/docker-plan-fit.js +26 -8
- package/dist/server/modules/remotes/docker/docker-plan-fit.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan-policy.d.ts +7 -3
- package/dist/server/modules/remotes/docker/docker-plan-policy.js +287 -43
- package/dist/server/modules/remotes/docker/docker-plan-policy.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan-source.service.d.ts +57 -8
- package/dist/server/modules/remotes/docker/docker-plan-source.service.js +477 -53
- package/dist/server/modules/remotes/docker/docker-plan-source.service.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan.controller.d.ts +4 -1
- package/dist/server/modules/remotes/docker/docker-plan.controller.js +53 -0
- package/dist/server/modules/remotes/docker/docker-plan.controller.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan.dto.d.ts +158 -15
- package/dist/server/modules/remotes/docker/docker-plan.dto.js +12 -2
- package/dist/server/modules/remotes/docker/docker-plan.dto.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan.service.d.ts +16 -7
- package/dist/server/modules/remotes/docker/docker-plan.service.js +261 -19
- package/dist/server/modules/remotes/docker/docker-plan.service.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-project-compose.d.ts +7 -0
- package/dist/server/modules/remotes/docker/docker-project-compose.js +29 -0
- package/dist/server/modules/remotes/docker/docker-project-compose.js.map +1 -0
- package/dist/server/modules/remotes/docker/docker-project-resources.d.ts +14 -0
- package/dist/server/modules/remotes/docker/docker-project-resources.js +33 -0
- package/dist/server/modules/remotes/docker/docker-project-resources.js.map +1 -0
- package/dist/server/modules/remotes/dtos/remote.dto.d.ts +2 -0
- package/dist/server/modules/remotes/dtos/remote.dto.js.map +1 -1
- package/dist/server/modules/remotes/git-owner.store.d.ts +13 -0
- package/dist/server/modules/remotes/git-owner.store.js +69 -0
- package/dist/server/modules/remotes/git-owner.store.js.map +1 -0
- package/dist/server/modules/remotes/host/host-api-key-io.adapter.js +3 -3
- package/dist/server/modules/remotes/host/host-api-key-io.adapter.js.map +1 -1
- package/dist/server/modules/remotes/host/host-api-key.module.js +3 -2
- package/dist/server/modules/remotes/host/host-api-key.module.js.map +1 -1
- package/dist/server/modules/remotes/host/host-api-key.service.d.ts +6 -4
- package/dist/server/modules/remotes/host/host-api-key.service.js +30 -10
- package/dist/server/modules/remotes/host/host-api-key.service.js.map +1 -1
- package/dist/server/modules/remotes/host/host-docker-volume-associations.store.d.ts +14 -0
- package/dist/server/modules/remotes/host/host-docker-volume-associations.store.js +91 -0
- package/dist/server/modules/remotes/host/host-docker-volume-associations.store.js.map +1 -0
- package/dist/server/modules/remotes/host/host-docker.controller.d.ts +8 -0
- package/dist/server/modules/remotes/host/host-docker.controller.js +22 -6
- package/dist/server/modules/remotes/host/host-docker.controller.js.map +1 -1
- package/dist/server/modules/remotes/host/host-docker.dto.d.ts +647 -0
- package/dist/server/modules/remotes/host/host-docker.dto.js +58 -8
- package/dist/server/modules/remotes/host/host-docker.dto.js.map +1 -1
- package/dist/server/modules/remotes/host/host-docker.service.d.ts +24 -5
- package/dist/server/modules/remotes/host/host-docker.service.js +317 -146
- package/dist/server/modules/remotes/host/host-docker.service.js.map +1 -1
- package/dist/server/modules/remotes/host/host-helper.dto.d.ts +46 -0
- package/dist/server/modules/remotes/host/host-helper.dto.js +56 -0
- package/dist/server/modules/remotes/host/host-helper.dto.js.map +1 -0
- package/dist/server/modules/remotes/host/host-helper.module.d.ts +2 -0
- package/dist/server/modules/remotes/host/host-helper.module.js +23 -0
- package/dist/server/modules/remotes/host/host-helper.module.js.map +1 -0
- package/dist/server/modules/remotes/host/host-helper.service.d.ts +1 -39
- package/dist/server/modules/remotes/host/host-helper.service.js +5 -18
- package/dist/server/modules/remotes/host/host-helper.service.js.map +1 -1
- package/dist/server/modules/remotes/host/host-ipv4-routes.d.ts +4 -0
- package/dist/server/modules/remotes/host/host-ipv4-routes.js +43 -0
- package/dist/server/modules/remotes/host/host-ipv4-routes.js.map +1 -0
- package/dist/server/modules/remotes/host/host-provider-auth.controller.d.ts +4 -2
- package/dist/server/modules/remotes/host/host-provider-auth.controller.js +3 -29
- package/dist/server/modules/remotes/host/host-provider-auth.controller.js.map +1 -1
- package/dist/server/modules/remotes/host/host-provider-auth.dto.d.ts +67 -0
- package/dist/server/modules/remotes/host/host-provider-auth.dto.js +32 -0
- package/dist/server/modules/remotes/host/host-provider-auth.dto.js.map +1 -0
- package/dist/server/modules/remotes/host/host-provider-auth.service.d.ts +1 -8
- package/dist/server/modules/remotes/host/host-provider-auth.service.js.map +1 -1
- package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.d.ts +5 -37
- package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.js +5 -5
- package/dist/server/modules/remotes/host/host-provider-cli-settings.controller.js.map +1 -1
- package/dist/server/modules/remotes/host/host-skill-settings.controller.d.ts +5 -9
- package/dist/server/modules/remotes/host/host-skill-settings.controller.js +2 -1
- package/dist/server/modules/remotes/host/host-skill-settings.controller.js.map +1 -1
- package/dist/server/modules/remotes/host/host-skill-settings.service.d.ts +2 -2
- package/dist/server/modules/remotes/host/host-skill-settings.service.js.map +1 -1
- package/dist/server/modules/remotes/host/host-ssh-keys.controller.js +2 -4
- package/dist/server/modules/remotes/host/host-ssh-keys.controller.js.map +1 -1
- package/dist/server/modules/remotes/host/host-ssh-keys.dto.d.ts +8 -0
- package/dist/server/modules/remotes/host/host-ssh-keys.dto.js +7 -0
- package/dist/server/modules/remotes/host/host-ssh-keys.dto.js.map +1 -0
- package/dist/server/modules/remotes/host/host-transcripts.controller.d.ts +3 -2
- package/dist/server/modules/remotes/host/host-transcripts.controller.js +2 -1
- package/dist/server/modules/remotes/host/host-transcripts.controller.js.map +1 -1
- package/dist/server/modules/remotes/host/host-update.controller.d.ts +6 -11
- package/dist/server/modules/remotes/host/host-update.controller.js +5 -42
- package/dist/server/modules/remotes/host/host-update.controller.js.map +1 -1
- package/dist/server/modules/remotes/host/host.controller.d.ts +10 -14
- package/dist/server/modules/remotes/host/host.controller.js.map +1 -1
- package/dist/server/modules/remotes/host/project-freeze.service.d.ts +4 -5
- package/dist/server/modules/remotes/host/project-freeze.service.js +14 -20
- package/dist/server/modules/remotes/host/project-freeze.service.js.map +1 -1
- package/dist/server/modules/remotes/host/provider-baseline.service.js +1 -1
- package/dist/server/modules/remotes/host/provider-baseline.service.js.map +1 -1
- package/dist/server/modules/remotes/host-image.d.ts +1 -1
- package/dist/server/modules/remotes/host-image.js +1 -1
- package/dist/server/modules/remotes/host-install/host-install-block.d.ts +1 -0
- package/dist/server/modules/remotes/host-install/host-install-block.js +76 -2
- package/dist/server/modules/remotes/host-install/host-install-block.js.map +1 -1
- package/dist/server/modules/remotes/host-install/host-install.service.d.ts +0 -1
- package/dist/server/modules/remotes/host-install/host-install.service.js +9 -26
- package/dist/server/modules/remotes/host-install/host-install.service.js.map +1 -1
- package/dist/server/modules/remotes/operations/attach.operation.d.ts +5 -1
- package/dist/server/modules/remotes/operations/attach.operation.js +40 -5
- package/dist/server/modules/remotes/operations/attach.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/claim.operation.d.ts +1 -0
- package/dist/server/modules/remotes/operations/claim.operation.js +6 -1
- package/dist/server/modules/remotes/operations/claim.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/detach.operation.d.ts +9 -2
- package/dist/server/modules/remotes/operations/detach.operation.js +22 -4
- package/dist/server/modules/remotes/operations/detach.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/docker-import-inventory.store.d.ts +735 -4
- package/dist/server/modules/remotes/operations/docker-import-inventory.store.js +48 -1
- package/dist/server/modules/remotes/operations/docker-import-inventory.store.js.map +1 -1
- package/dist/server/modules/remotes/operations/file-sync-handoff.d.ts +29 -3
- package/dist/server/modules/remotes/operations/file-sync-handoff.js +477 -50
- package/dist/server/modules/remotes/operations/file-sync-handoff.js.map +1 -1
- package/dist/server/modules/remotes/operations/force-sync.operation.d.ts +39 -0
- package/dist/server/modules/remotes/operations/force-sync.operation.js +177 -0
- package/dist/server/modules/remotes/operations/force-sync.operation.js.map +1 -0
- package/dist/server/modules/remotes/operations/git-owner.dto.d.ts +83 -0
- package/dist/server/modules/remotes/operations/git-owner.dto.js +25 -0
- package/dist/server/modules/remotes/operations/git-owner.dto.js.map +1 -0
- package/dist/server/modules/remotes/operations/git-owner.operation.d.ts +35 -0
- package/dist/server/modules/remotes/operations/git-owner.operation.js +216 -0
- package/dist/server/modules/remotes/operations/git-owner.operation.js.map +1 -0
- package/dist/server/modules/remotes/operations/remote-host.client.d.ts +47 -491
- package/dist/server/modules/remotes/operations/remote-host.client.js +192 -414
- package/dist/server/modules/remotes/operations/remote-host.client.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operation.dto.d.ts +38 -12
- package/dist/server/modules/remotes/operations/remote-operation.dto.js +5 -1
- package/dist/server/modules/remotes/operations/remote-operation.dto.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operation.runner.d.ts +5 -1
- package/dist/server/modules/remotes/operations/remote-operation.runner.js +74 -27
- package/dist/server/modules/remotes/operations/remote-operation.runner.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operation.types.d.ts +4 -1
- package/dist/server/modules/remotes/operations/remote-operation.types.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operations.controller.d.ts +5 -0
- package/dist/server/modules/remotes/operations/remote-operations.controller.js +56 -0
- package/dist/server/modules/remotes/operations/remote-operations.controller.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operations.service.d.ts +17 -2
- package/dist/server/modules/remotes/operations/remote-operations.service.js +155 -5
- package/dist/server/modules/remotes/operations/remote-operations.service.js.map +1 -1
- package/dist/server/modules/remotes/operations/update-logins.operation.d.ts +2 -4
- package/dist/server/modules/remotes/operations/update-logins.operation.js +3 -18
- package/dist/server/modules/remotes/operations/update-logins.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/vm-operations.dto.d.ts +7 -7
- package/dist/server/modules/remotes/ports/remote-health.port.d.ts +2 -0
- package/dist/server/modules/remotes/ports/remote-health.port.js.map +1 -1
- package/dist/server/modules/remotes/remotes.module.js +24 -2
- package/dist/server/modules/remotes/remotes.module.js.map +1 -1
- package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.d.ts +2 -2
- package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.js +2 -13
- package/dist/server/modules/remotes/replica/__fixtures__/replica-seed.js.map +1 -1
- package/dist/server/modules/remotes/services/remote-health.service.js +5 -0
- package/dist/server/modules/remotes/services/remote-health.service.js.map +1 -1
- package/dist/server/modules/remotes/services/remote-skill-settings.service.d.ts +2 -2
- package/dist/server/modules/remotes/services/remote-skill-settings.service.js.map +1 -1
- package/dist/server/modules/remotes/sync/file-sync-failures.service.d.ts +18 -0
- package/dist/server/modules/remotes/sync/file-sync-failures.service.js +155 -0
- package/dist/server/modules/remotes/sync/file-sync-failures.service.js.map +1 -0
- package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.d.ts +14 -0
- package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.js +99 -0
- package/dist/server/modules/remotes/sync/file-sync-pattern-preview.service.js.map +1 -0
- package/dist/server/modules/remotes/sync/file-sync-suggestions.service.d.ts +17 -0
- package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js +124 -0
- package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js.map +1 -0
- package/dist/server/modules/remotes/sync/project-file-sync.controller.d.ts +27 -0
- package/dist/server/modules/remotes/sync/project-file-sync.controller.js +146 -0
- package/dist/server/modules/remotes/sync/project-file-sync.controller.js.map +1 -0
- package/dist/server/modules/remotes/sync/remote-file-sync.dto.d.ts +70 -0
- package/dist/server/modules/remotes/sync/remote-file-sync.dto.js +16 -0
- package/dist/server/modules/remotes/sync/remote-file-sync.dto.js.map +1 -0
- package/dist/server/modules/remotes/sync/remote-file-sync.service.d.ts +31 -1
- package/dist/server/modules/remotes/sync/remote-file-sync.service.js +440 -38
- package/dist/server/modules/remotes/sync/remote-file-sync.service.js.map +1 -1
- package/dist/server/modules/remotes/sync/remote-live-sync.service.d.ts +2 -0
- package/dist/server/modules/remotes/sync/remote-live-sync.service.js +26 -12
- package/dist/server/modules/remotes/sync/remote-live-sync.service.js.map +1 -1
- package/dist/server/modules/remotes/time/project-time-settler.dto.d.ts +21 -0
- package/dist/server/modules/remotes/time/project-time-settler.dto.js +12 -0
- package/dist/server/modules/remotes/time/project-time-settler.dto.js.map +1 -0
- package/dist/server/modules/remotes/time/project-time-settler.service.d.ts +2 -21
- package/dist/server/modules/remotes/time/project-time-settler.service.js +1 -9
- package/dist/server/modules/remotes/time/project-time-settler.service.js.map +1 -1
- package/dist/server/modules/remotes/transcripts/transcript-transfer.dto.d.ts +4 -4
- package/dist/server/modules/remotes/transport/host-transport.d.ts +27 -0
- package/dist/server/modules/remotes/transport/host-transport.js +105 -0
- package/dist/server/modules/remotes/transport/host-transport.js.map +1 -0
- package/dist/server/modules/remotes/vm-user-identity.d.ts +30 -0
- package/dist/server/modules/remotes/vm-user-identity.js +52 -0
- package/dist/server/modules/remotes/vm-user-identity.js.map +1 -0
- package/dist/server/modules/reviews/reviews.module.js +1 -9
- package/dist/server/modules/reviews/reviews.module.js.map +1 -1
- package/dist/server/modules/reviews/services/review-suggestion-applier.service.d.ts +4 -4
- package/dist/server/modules/reviews/services/review-suggestion-applier.service.js +6 -6
- package/dist/server/modules/reviews/services/review-suggestion-applier.service.js.map +1 -1
- package/dist/server/modules/reviews/services/reviews.service.d.ts +4 -4
- package/dist/server/modules/reviews/services/reviews.service.js +7 -12
- package/dist/server/modules/reviews/services/reviews.service.js.map +1 -1
- package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js +2 -2
- package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js.map +1 -1
- package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.d.ts +11 -12
- package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js +37 -25
- package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js.map +1 -1
- package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.d.ts +11 -9
- package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js +48 -2
- package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js.map +1 -1
- package/dist/server/modules/runtime-context-capture/index.d.ts +3 -2
- package/dist/server/modules/runtime-context-capture/index.js.map +1 -1
- package/dist/server/modules/runtime-context-capture/provider-artifacts.types.d.ts +41 -0
- package/dist/server/modules/runtime-context-capture/provider-artifacts.types.js +3 -0
- package/dist/server/modules/runtime-context-capture/provider-artifacts.types.js.map +1 -0
- package/dist/server/modules/scheduled-epics/scheduled-epics.module.js +1 -2
- package/dist/server/modules/scheduled-epics/scheduled-epics.module.js.map +1 -1
- package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.d.ts +4 -4
- package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js +6 -6
- package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js.map +1 -1
- package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.d.ts +2 -3
- package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js +9 -12
- package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js.map +1 -1
- package/dist/server/modules/seeders/services/data-seeder.service.d.ts +2 -3
- package/dist/server/modules/seeders/services/data-seeder.service.js.map +1 -1
- package/dist/server/modules/seeders/types/seeder.types.d.ts +2 -2
- package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.d.ts +1 -1
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +4 -2
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +3 -0
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +4 -2
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +3 -0
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.d.ts +1 -1
- package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +2 -0
- package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -1
- package/dist/server/modules/session-reader/data/pricing.json +3228 -3014
- package/dist/server/modules/session-reader/services/transcript-persistence.listener.d.ts +8 -18
- package/dist/server/modules/session-reader/services/transcript-persistence.listener.js +89 -172
- package/dist/server/modules/session-reader/services/transcript-persistence.listener.js.map +1 -1
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js +12 -12
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
- package/dist/server/modules/session-reader/session-reader.module.js +2 -0
- package/dist/server/modules/session-reader/session-reader.module.js.map +1 -1
- package/dist/server/modules/session-terminal-runtime/dtos/active-session-info.dto.js.map +1 -0
- package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js +2 -1
- package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.module.js.map +1 -1
- package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.d.ts +8 -4
- package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js +47 -18
- package/dist/server/modules/session-terminal-runtime/session-terminal-runtime.service.js.map +1 -1
- package/dist/server/modules/sessions/controllers/sessions.controller.d.ts +3 -5
- package/dist/server/modules/sessions/controllers/sessions.controller.js +8 -11
- package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -1
- package/dist/server/modules/sessions/services/active-session-lookup.service.d.ts +4 -5
- package/dist/server/modules/sessions/services/active-session-lookup.service.js +9 -66
- package/dist/server/modules/sessions/services/active-session-lookup.service.js.map +1 -1
- package/dist/server/modules/sessions/services/message-pool.types.d.ts +1 -1
- package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.d.ts +2 -2
- package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +7 -2
- package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js.map +1 -1
- package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.d.ts +3 -5
- package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js +56 -95
- package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-launcher-facade.service.d.ts +1 -1
- package/dist/server/modules/sessions/services/session-launcher-facade.service.js +1 -1
- package/dist/server/modules/sessions/services/session-launcher-facade.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-lifecycle-facade.service.d.ts +3 -3
- package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js +8 -8
- package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +4 -0
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +10 -2
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/ensure-mcp-readiness.d.ts +1 -1
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.d.ts +7 -7
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +30 -29
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.d.ts +4 -2
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +8 -9
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.d.ts +3 -3
- package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js +7 -7
- package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js.map +1 -1
- package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +4 -7
- package/dist/server/modules/sessions/services/sessions-message-pool.service.js +111 -211
- package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
- package/dist/server/modules/sessions/services/sessions.service.d.ts +8 -10
- package/dist/server/modules/sessions/services/sessions.service.js +26 -158
- package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
- package/dist/server/modules/sessions/sessions-lifecycle.module.js +2 -2
- package/dist/server/modules/sessions/sessions-lifecycle.module.js.map +1 -1
- package/dist/server/modules/sessions/sessions-read.module.js +2 -2
- package/dist/server/modules/sessions/sessions-read.module.js.map +1 -1
- package/dist/server/modules/sessions/sessions.module.js +7 -5
- package/dist/server/modules/sessions/sessions.module.js.map +1 -1
- package/dist/server/modules/settings/controllers/settings.controller.d.ts +3 -4
- package/dist/server/modules/settings/controllers/settings.controller.js +6 -31
- package/dist/server/modules/settings/controllers/settings.controller.js.map +1 -1
- package/dist/server/modules/settings/dtos/settings.dto.d.ts +12 -12
- package/dist/server/modules/settings/local/delegates/core-settings.delegate.d.ts +5 -0
- package/dist/server/modules/settings/local/delegates/core-settings.delegate.js +36 -2
- package/dist/server/modules/settings/local/delegates/core-settings.delegate.js.map +1 -1
- package/dist/server/modules/settings/local/delegates/preset-settings.delegate.d.ts +4 -0
- package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js +30 -23
- package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js.map +1 -1
- package/dist/server/modules/settings/local/delegates/registry-settings.delegate.d.ts +2 -0
- package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js +2 -0
- package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js.map +1 -1
- package/dist/server/modules/settings/local/delegates/skills-settings.delegate.d.ts +6 -0
- package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js +26 -0
- package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js.map +1 -1
- package/dist/server/modules/settings/services/settings.service.d.ts +5 -2
- package/dist/server/modules/settings/services/settings.service.js +14 -4
- package/dist/server/modules/settings/services/settings.service.js.map +1 -1
- package/dist/server/modules/settings/settings.module.js +1 -2
- package/dist/server/modules/settings/settings.module.js.map +1 -1
- package/dist/server/modules/skills/adapters/anthropic-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/anthropic-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/adapters/github-directory-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/github-directory-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/adapters/github-skill-source.base.js +4 -3
- package/dist/server/modules/skills/adapters/github-skill-source.base.js.map +1 -1
- package/dist/server/modules/skills/adapters/local-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/local-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/adapters/microsoft-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/microsoft-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/adapters/openai-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/openai-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/adapters/skill-source.adapter.d.ts +5 -0
- package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.d.ts +5 -0
- package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.js +75 -0
- package/dist/server/modules/skills/adapters/skill-sync-temp-cleanup.js.map +1 -0
- package/dist/server/modules/skills/adapters/trailofbits-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/trailofbits-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/adapters/vercel-skill-source.adapter.js +5 -5
- package/dist/server/modules/skills/adapters/vercel-skill-source.adapter.js.map +1 -1
- package/dist/server/modules/skills/controllers/skills.controller.js +2 -2
- package/dist/server/modules/skills/controllers/skills.controller.js.map +1 -1
- package/dist/server/modules/skills/services/skill-source-lifecycle.service.d.ts +5 -5
- package/dist/server/modules/skills/services/skill-source-lifecycle.service.js +9 -4
- package/dist/server/modules/skills/services/skill-source-lifecycle.service.js.map +1 -1
- package/dist/server/modules/skills/services/skill-sync.service.d.ts +3 -3
- package/dist/server/modules/skills/services/skill-sync.service.js +32 -6
- package/dist/server/modules/skills/services/skill-sync.service.js.map +1 -1
- package/dist/server/modules/skills/services/skill-sync.types.d.ts +3 -0
- package/dist/server/modules/skills/services/skills.service.d.ts +3 -1
- package/dist/server/modules/skills/services/skills.service.js +15 -2
- package/dist/server/modules/skills/services/skills.service.js.map +1 -1
- package/dist/server/modules/statuses/controllers/statuses.controller.d.ts +3 -3
- package/dist/server/modules/statuses/controllers/statuses.controller.js +8 -10
- package/dist/server/modules/statuses/controllers/statuses.controller.js.map +1 -1
- package/dist/server/modules/statuses/statuses.module.js +1 -2
- package/dist/server/modules/statuses/statuses.module.js.map +1 -1
- package/dist/server/modules/storage/db/db-file-permissions.d.ts +1 -0
- package/dist/server/modules/storage/db/db-file-permissions.js +24 -0
- package/dist/server/modules/storage/db/db-file-permissions.js.map +1 -0
- package/dist/server/modules/storage/db/db.provider.js +2 -0
- package/dist/server/modules/storage/db/db.provider.js.map +1 -1
- package/dist/server/modules/storage/db/migrate.js +2 -0
- package/dist/server/modules/storage/db/migrate.js.map +1 -1
- package/dist/server/modules/storage/db/schema.d.ts +2 -2
- package/dist/server/modules/storage/db/schema.js +2 -0
- package/dist/server/modules/storage/db/schema.js.map +1 -1
- package/dist/server/modules/storage/interfaces/storage.interface.d.ts +0 -1
- package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/agent-profile.delegate.d.ts +2 -2
- package/dist/server/modules/storage/local/delegates/agent-profile.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/agent.delegate.d.ts +2 -2
- package/dist/server/modules/storage/local/delegates/agent.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/epic.delegate.d.ts +5 -6
- package/dist/server/modules/storage/local/delegates/epic.delegate.js +3 -9
- package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.d.ts +16 -15
- package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js +13 -13
- package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.d.ts +11 -10
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +9 -9
- package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/guest.delegate.d.ts +2 -1
- package/dist/server/modules/storage/local/delegates/guest.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +3 -4
- package/dist/server/modules/storage/local/delegates/integration.delegate.js +1 -1
- package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.d.ts +3 -16
- package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/project-host.delegate.d.ts +2 -2
- package/dist/server/modules/storage/local/delegates/project-host.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.d.ts +2 -2
- package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.js +1 -1
- package/dist/server/modules/storage/local/delegates/project-replica-read.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/project-replica.delegate.d.ts +2 -2
- package/dist/server/modules/storage/local/delegates/project-replica.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/project-workspace.delegate.d.ts +2 -1
- package/dist/server/modules/storage/local/delegates/project-workspace.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/project.delegate.d.ts +4 -2
- package/dist/server/modules/storage/local/delegates/project.delegate.js +4 -0
- package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/prompt.delegate.d.ts +3 -2
- package/dist/server/modules/storage/local/delegates/prompt.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/provider-auth.delegate.d.ts +2 -1
- package/dist/server/modules/storage/local/delegates/provider-auth.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/provider-effort.delegate.d.ts +2 -1
- package/dist/server/modules/storage/local/delegates/provider-effort.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/provider-model.delegate.d.ts +2 -1
- package/dist/server/modules/storage/local/delegates/provider-model.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/provider-plugin-policy.delegate.d.ts +2 -1
- package/dist/server/modules/storage/local/delegates/provider-plugin-policy.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/provider.delegate.d.ts +3 -3
- package/dist/server/modules/storage/local/delegates/provider.delegate.js +9 -23
- package/dist/server/modules/storage/local/delegates/provider.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/record.delegate.d.ts +2 -2
- package/dist/server/modules/storage/local/delegates/remote.delegate.d.ts +2 -2
- package/dist/server/modules/storage/local/delegates/remote.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/review.delegate.d.ts +2 -2
- package/dist/server/modules/storage/local/delegates/review.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.d.ts +2 -2
- package/dist/server/modules/storage/local/delegates/scheduled-epic.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/session.delegate.d.ts +2 -1
- package/dist/server/modules/storage/local/delegates/session.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/skill-source.delegate.d.ts +7 -3
- package/dist/server/modules/storage/local/delegates/skill-source.delegate.js +24 -11
- package/dist/server/modules/storage/local/delegates/skill-source.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/status.delegate.d.ts +2 -2
- package/dist/server/modules/storage/local/delegates/subscriber.delegate.d.ts +2 -1
- package/dist/server/modules/storage/local/delegates/subscriber.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/tag.delegate.d.ts +2 -2
- package/dist/server/modules/storage/local/delegates/watcher.delegate.d.ts +2 -1
- package/dist/server/modules/storage/local/delegates/watcher.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/helpers/device-revocation-history.js.map +1 -0
- package/dist/server/modules/storage/local/local-storage.service.d.ts +6 -361
- package/dist/server/modules/storage/local/local-storage.service.js +119 -908
- package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
- package/dist/server/modules/storage/local/storage-routes.d.ts +1170 -0
- package/dist/server/modules/storage/local/storage-routes.js +465 -0
- package/dist/server/modules/storage/local/storage-routes.js.map +1 -0
- package/dist/server/modules/storage/models/domain.models.d.ts +1 -1
- package/dist/server/modules/storage/models/domain.models.js +2 -0
- package/dist/server/modules/storage/models/domain.models.js.map +1 -1
- package/dist/server/modules/storage/sessions/session-row.store.d.ts +42 -0
- package/dist/server/modules/storage/sessions/session-row.store.js +383 -0
- package/dist/server/modules/storage/sessions/session-row.store.js.map +1 -0
- package/dist/server/modules/storage/sessions/session-rows.module.d.ts +2 -0
- package/dist/server/modules/storage/sessions/session-rows.module.js +19 -0
- package/dist/server/modules/storage/sessions/session-rows.module.js.map +1 -0
- package/dist/server/modules/storage/sessions/session-transcript.types.d.ts +45 -0
- package/dist/server/modules/storage/sessions/session-transcript.types.js +3 -0
- package/dist/server/modules/storage/sessions/session-transcript.types.js.map +1 -0
- package/dist/server/modules/storage/storage.module.d.ts +3 -0
- package/dist/server/modules/storage/storage.module.js +15 -2
- package/dist/server/modules/storage/storage.module.js.map +1 -1
- package/dist/server/modules/storage/write-gate/project-write-gate.d.ts +32 -0
- package/dist/server/modules/storage/write-gate/project-write-gate.js +117 -0
- package/dist/server/modules/storage/write-gate/project-write-gate.js.map +1 -0
- package/dist/server/modules/storage/write-gate/storage-write-scope.d.ts +45 -0
- package/dist/server/modules/storage/write-gate/storage-write-scope.js +103 -0
- package/dist/server/modules/storage/write-gate/storage-write-scope.js.map +1 -0
- package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.d.ts +3 -0
- package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.js +13 -0
- package/dist/server/modules/storage/write-gate/testing/project-write-gate.stub.js.map +1 -0
- package/dist/server/modules/subscribers/actions/action.interface.d.ts +2 -2
- package/dist/server/modules/subscribers/actions/terminate-session.action.d.ts +7 -0
- package/dist/server/modules/subscribers/actions/terminate-session.action.js +58 -6
- package/dist/server/modules/subscribers/actions/terminate-session.action.js.map +1 -1
- package/dist/server/modules/subscribers/services/subscriber-executor.service.d.ts +5 -4
- package/dist/server/modules/subscribers/services/subscriber-executor.service.js +6 -6
- package/dist/server/modules/subscribers/services/subscriber-executor.service.js.map +1 -1
- package/dist/server/modules/subscribers/services/subscribers.service.d.ts +1 -3
- package/dist/server/modules/subscribers/services/subscribers.service.js +2 -8
- package/dist/server/modules/subscribers/services/subscribers.service.js.map +1 -1
- package/dist/server/modules/subscribers/subscribers.module.js +0 -2
- package/dist/server/modules/subscribers/subscribers.module.js.map +1 -1
- package/dist/server/modules/teams/controllers/teams.controller.d.ts +2 -2
- package/dist/server/modules/teams/controllers/teams.controller.js.map +1 -1
- package/dist/server/modules/teams/services/teams.service.d.ts +4 -4
- package/dist/server/modules/teams/services/teams.service.js +8 -18
- package/dist/server/modules/teams/services/teams.service.js.map +1 -1
- package/dist/server/modules/teams/services/teams.validators.d.ts +4 -4
- package/dist/server/modules/teams/services/teams.validators.js.map +1 -1
- package/dist/server/modules/teams/storage/teams.store.d.ts +4 -1
- package/dist/server/modules/teams/storage/teams.store.js +20 -2
- package/dist/server/modules/teams/storage/teams.store.js.map +1 -1
- package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.d.ts +2 -2
- package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js +2 -2
- package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js.map +1 -1
- package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js +3 -3
- package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js.map +1 -1
- package/dist/server/modules/teams/teams.module.js +1 -8
- package/dist/server/modules/teams/teams.module.js.map +1 -1
- package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +10 -29
- package/dist/server/modules/terminal/gateways/terminal.gateway.js +40 -89
- package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
- package/dist/server/modules/terminal/services/guest-delivery.service.js +1 -0
- package/dist/server/modules/terminal/services/guest-delivery.service.js.map +1 -1
- package/dist/server/modules/terminal/services/human-prompt-input.service.d.ts +30 -0
- package/dist/server/modules/terminal/services/human-prompt-input.service.js +69 -0
- package/dist/server/modules/terminal/services/human-prompt-input.service.js.map +1 -0
- package/dist/server/modules/terminal/services/human-prompt-state.service.js +3 -2
- package/dist/server/modules/terminal/services/human-prompt-state.service.js.map +1 -1
- package/dist/server/modules/terminal/services/process-executor/fake-process-executor.d.ts +6 -0
- package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js +23 -1
- package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-activity.service.d.ts +4 -3
- package/dist/server/modules/terminal/services/terminal-activity.service.js +26 -47
- package/dist/server/modules/terminal/services/terminal-activity.service.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-delivery.types.d.ts +1 -1
- package/dist/server/modules/terminal/services/terminal-io/delivery.d.ts +9 -3
- package/dist/server/modules/terminal/services/terminal-io/delivery.js +65 -28
- package/dist/server/modules/terminal/services/terminal-io/delivery.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-io/foreground.d.ts +7 -0
- package/dist/server/modules/terminal/services/terminal-io/foreground.js +35 -0
- package/dist/server/modules/terminal/services/terminal-io/foreground.js.map +1 -0
- package/dist/server/modules/terminal/services/terminal-io/lifecycle.js +15 -3
- package/dist/server/modules/terminal/services/terminal-io/lifecycle.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-io/monitoring.d.ts +3 -0
- package/dist/server/modules/terminal/services/terminal-io/monitoring.js +36 -0
- package/dist/server/modules/terminal/services/terminal-io/monitoring.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.d.ts +3 -0
- package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js +80 -19
- package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-io/types.d.ts +1 -0
- package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.d.ts +6 -11
- package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js +12 -43
- package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js +1 -1
- package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-seed.service.js +0 -4
- package/dist/server/modules/terminal/services/terminal-seed.service.js.map +1 -1
- package/dist/server/modules/terminal/terminal-delivery.module.js +3 -0
- package/dist/server/modules/terminal/terminal-delivery.module.js.map +1 -1
- package/dist/server/modules/terminal/terminal.module.js +2 -0
- package/dist/server/modules/terminal/terminal.module.js.map +1 -1
- package/dist/server/modules/terminal/utils/ansi-sanitizer.d.ts +0 -1
- package/dist/server/modules/terminal/utils/ansi-sanitizer.js +0 -4
- package/dist/server/modules/terminal/utils/ansi-sanitizer.js.map +1 -1
- package/dist/server/modules/watchers/services/watcher-runner.service.d.ts +2 -2
- package/dist/server/modules/watchers/services/watcher-runner.service.js +0 -3
- package/dist/server/modules/watchers/services/watcher-runner.service.js.map +1 -1
- package/dist/server/modules/watchers/services/watchers.service.d.ts +3 -3
- package/dist/server/modules/watchers/services/watchers.service.js +6 -9
- package/dist/server/modules/watchers/services/watchers.service.js.map +1 -1
- package/dist/server/modules/watchers/watchers.module.js +1 -8
- package/dist/server/modules/watchers/watchers.module.js.map +1 -1
- package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.d.ts +2 -2
- package/dist/server/modules/workspaces/services/workspace-mode-coordinator.service.js.map +1 -1
- package/dist/server/modules/workspaces/services/workspaces.service.d.ts +3 -3
- package/dist/server/modules/workspaces/services/workspaces.service.js +7 -7
- package/dist/server/modules/workspaces/services/workspaces.service.js.map +1 -1
- package/dist/server/modules/workspaces/workspaces.module.js +1 -2
- package/dist/server/modules/workspaces/workspaces.module.js.map +1 -1
- package/dist/server/templates/teams-dev.json +277 -261
- package/dist/server/test-setup-node.js +4 -3
- package/dist/server/test-setup-node.js.map +1 -1
- package/dist/server/test-setup.js +7 -0
- package/dist/server/test-setup.js.map +1 -1
- package/dist/server/tsconfig.build.tsbuildinfo +1 -0
- package/dist/server/ui/assets/{ExternalRichEditor-DtNvrV0F.js → ExternalRichEditor-CB-LjWox.js} +24 -24
- package/dist/server/ui/assets/ReviewDetailPage-CpMMjYet.js +6 -0
- package/dist/server/ui/assets/ReviewsPage-Cw17_agp.js +6 -0
- package/dist/server/ui/assets/index-BwuNu70G.css +32 -0
- package/dist/server/ui/assets/index-DmRXRpSy.js +1192 -0
- package/dist/server/ui/assets/useReviewSubscription-wd5iHNQy.js +69 -0
- package/dist/server/ui/index.html +2 -2
- package/dist/templates/teams-dev.json +277 -261
- package/package.json +18 -347
- package/dist/server/common/test/remote-project.fixture.d.ts +0 -32
- package/dist/server/common/test/remote-project.fixture.js +0 -328
- package/dist/server/common/test/remote-project.fixture.js.map +0 -1
- package/dist/server/common/test/two-instance.fixture.d.ts +0 -48
- package/dist/server/common/test/two-instance.fixture.js +0 -269
- package/dist/server/common/test/two-instance.fixture.js.map +0 -1
- package/dist/server/modules/e2ee/services/device-revocation-history.js.map +0 -1
- package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.d.ts +0 -5
- package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js +0 -8
- package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js.map +0 -1
- package/dist/server/modules/reviews/utils/notification-formatter.d.ts +0 -12
- package/dist/server/modules/reviews/utils/notification-formatter.js +0 -60
- package/dist/server/modules/reviews/utils/notification-formatter.js.map +0 -1
- package/dist/server/modules/session-reader/services/transcript-turn-state.d.ts +0 -4
- package/dist/server/modules/session-reader/services/transcript-turn-state.js +0 -20
- package/dist/server/modules/session-reader/services/transcript-turn-state.js.map +0 -1
- package/dist/server/modules/sessions/dtos/active-session-info.dto.js.map +0 -1
- package/dist/server/modules/sessions/utils/claude-config.js.map +0 -1
- package/dist/server/modules/sessions/utils/codex-config.js.map +0 -1
- package/dist/server/modules/sessions/utils/env-builder.js.map +0 -1
- package/dist/server/modules/sessions/utils/profile-options.js.map +0 -1
- package/dist/server/modules/terminal/services/session-turn-signals.js.map +0 -1
- package/dist/server/tsconfig.tsbuildinfo +0 -1
- package/dist/server/ui/assets/ReviewDetailPage-DJzEoM0x.js +0 -6
- package/dist/server/ui/assets/ReviewsPage-z2O8MNEw.js +0 -6
- package/dist/server/ui/assets/index-CC4P3V8L.js +0 -994
- package/dist/server/ui/assets/index-LsJe1ZTS.css +0 -32
- package/dist/server/ui/assets/useReviewSubscription-B7AdJBO2.js +0 -69
- /package/dist/server/modules/{terminal/services → events/signals}/session-turn-signals.d.ts +0 -0
- /package/dist/server/modules/{terminal/services → events/signals}/session-turn-signals.js +0 -0
- /package/dist/server/modules/{sessions → providers}/utils/claude-config.d.ts +0 -0
- /package/dist/server/modules/{sessions → providers}/utils/claude-config.js +0 -0
- /package/dist/server/modules/{sessions → providers}/utils/codex-config.d.ts +0 -0
- /package/dist/server/modules/{sessions → providers}/utils/codex-config.js +0 -0
- /package/dist/server/modules/{sessions → providers}/utils/env-builder.d.ts +0 -0
- /package/dist/server/modules/{sessions → providers}/utils/env-builder.js +0 -0
- /package/dist/server/modules/{sessions → providers}/utils/profile-options.js +0 -0
- /package/dist/server/modules/{sessions → session-terminal-runtime}/dtos/active-session-info.dto.d.ts +0 -0
- /package/dist/server/modules/{sessions → session-terminal-runtime}/dtos/active-session-info.dto.js +0 -0
- /package/dist/server/modules/{e2ee/services → storage/local/helpers}/device-revocation-history.d.ts +0 -0
- /package/dist/server/modules/{e2ee/services → storage/local/helpers}/device-revocation-history.js +0 -0
|
@@ -5,29 +5,85 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.DockerAvailabilityError = exports.DockerPlanSourceService = exports.DOCKER_PLAN_REUSE_MS = void 0;
|
|
12
|
+
exports.DockerAvailabilityError = exports.DockerPlanSourceService = exports.DOCKER_PLAN_REUSE_MS = exports.unknownSize = void 0;
|
|
13
|
+
exports.containerProjectLinks = containerProjectLinks;
|
|
14
|
+
exports.composeLabelSet = composeLabelSet;
|
|
10
15
|
exports.reusable = reusable;
|
|
11
16
|
const common_1 = require("@nestjs/common");
|
|
12
17
|
const node_child_process_1 = require("node:child_process");
|
|
13
18
|
const promises_1 = require("node:fs/promises");
|
|
14
19
|
const node_os_1 = require("node:os");
|
|
15
20
|
const node_path_1 = require("node:path");
|
|
21
|
+
const process_executor_port_1 = require("../../terminal/services/process-executor/process-executor.port");
|
|
16
22
|
const docker_engine_client_1 = require("../../core/controllers/docker-engine.client");
|
|
17
23
|
const docker_settings_1 = require("../../core/controllers/docker-settings");
|
|
18
24
|
const host_docker_dto_1 = require("../host/host-docker.dto");
|
|
25
|
+
const docker_ownership_1 = require("./docker-ownership");
|
|
19
26
|
const docker_plan_files_1 = require("./docker-plan-files");
|
|
27
|
+
const docker_project_compose_1 = require("./docker-project-compose");
|
|
20
28
|
const docker_plan_dto_1 = require("./docker-plan.dto");
|
|
29
|
+
const AGGREGATE_OWNERSHIP_CLASSES = [
|
|
30
|
+
'needs-user-fix',
|
|
31
|
+
'follows-user',
|
|
32
|
+
'image-user-hint',
|
|
33
|
+
];
|
|
34
|
+
function containerProjectLinks(root, inspect) {
|
|
35
|
+
return (0, docker_project_compose_1.composeRootLinks)((inspect.Config.Labels ?? {}), root);
|
|
36
|
+
}
|
|
37
|
+
function composeLabelSet(root, container) {
|
|
38
|
+
const labels = (container.Config.Labels ?? {});
|
|
39
|
+
const encoded = labels[`${host_docker_dto_1.COMPOSE_PROJECT_LABEL}.config_files`];
|
|
40
|
+
if (!encoded)
|
|
41
|
+
return null;
|
|
42
|
+
const directory = (0, node_path_1.resolve)(labels[`${host_docker_dto_1.COMPOSE_PROJECT_LABEL}.working_dir`] || root);
|
|
43
|
+
const files = encoded
|
|
44
|
+
.split(',')
|
|
45
|
+
.filter(Boolean)
|
|
46
|
+
.map((file) => (0, node_path_1.resolve)(directory, file));
|
|
47
|
+
if (!files.length)
|
|
48
|
+
return null;
|
|
49
|
+
return { directory, files, service: labels[host_docker_dto_1.COMPOSE_SERVICE_LABEL] || null };
|
|
50
|
+
}
|
|
51
|
+
function buildsInProject(root, service) {
|
|
52
|
+
if (!service || Object.hasOwn(service, 'image'))
|
|
53
|
+
return false;
|
|
54
|
+
const build = service.build;
|
|
55
|
+
return (typeof build === 'object' &&
|
|
56
|
+
build !== null &&
|
|
57
|
+
'context' in build &&
|
|
58
|
+
typeof build.context === 'string' &&
|
|
59
|
+
(0, node_path_1.isAbsolute)(build.context) &&
|
|
60
|
+
(0, docker_plan_files_1.within)(root, build.context));
|
|
61
|
+
}
|
|
62
|
+
async function hasRootCompose(root) {
|
|
63
|
+
for (const name of docker_project_compose_1.DEFAULT_COMPOSE_FILES) {
|
|
64
|
+
if (await (0, promises_1.access)((0, node_path_1.join)(root, name)).then(() => true, () => false))
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
21
69
|
const unknownSize = () => ({ bytes: 0, unknown: true });
|
|
70
|
+
exports.unknownSize = unknownSize;
|
|
22
71
|
const size = (value) => typeof value === 'number' && value >= 0 && Number.isFinite(value)
|
|
23
72
|
? { bytes: value, unknown: false }
|
|
24
|
-
: unknownSize();
|
|
73
|
+
: (0, exports.unknownSize)();
|
|
25
74
|
exports.DOCKER_PLAN_REUSE_MS = 120_000;
|
|
26
75
|
function reusable(at) {
|
|
27
76
|
return Date.now() - at < exports.DOCKER_PLAN_REUSE_MS;
|
|
28
77
|
}
|
|
29
78
|
let DockerPlanSourceService = class DockerPlanSourceService {
|
|
79
|
+
executor;
|
|
80
|
+
constructor(executor) {
|
|
81
|
+
this.executor = executor;
|
|
82
|
+
}
|
|
30
83
|
recent = null;
|
|
84
|
+
invalidate() {
|
|
85
|
+
this.recent = null;
|
|
86
|
+
}
|
|
31
87
|
async connect(signal) {
|
|
32
88
|
let socket;
|
|
33
89
|
try {
|
|
@@ -56,6 +112,63 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
56
112
|
}
|
|
57
113
|
return client;
|
|
58
114
|
}
|
|
115
|
+
async presence(root, signal) {
|
|
116
|
+
signal?.throwIfAborted();
|
|
117
|
+
if (await hasRootCompose(root)) {
|
|
118
|
+
signal?.throwIfAborted();
|
|
119
|
+
return { state: 'present' };
|
|
120
|
+
}
|
|
121
|
+
const deadline = AbortSignal.timeout(5000);
|
|
122
|
+
const scanSignal = signal ? AbortSignal.any([signal, deadline]) : deadline;
|
|
123
|
+
let onAbort;
|
|
124
|
+
try {
|
|
125
|
+
let socket;
|
|
126
|
+
try {
|
|
127
|
+
socket = await Promise.race([
|
|
128
|
+
this.socket(),
|
|
129
|
+
new Promise((_resolve, reject) => {
|
|
130
|
+
onAbort = () => reject(scanSignal.reason);
|
|
131
|
+
scanSignal.addEventListener('abort', onAbort, { once: true });
|
|
132
|
+
if (scanSignal.aborted)
|
|
133
|
+
onAbort();
|
|
134
|
+
}),
|
|
135
|
+
]);
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
if (scanSignal.aborted)
|
|
139
|
+
throw error;
|
|
140
|
+
return { state: 'absent' };
|
|
141
|
+
}
|
|
142
|
+
try {
|
|
143
|
+
const containers = await new docker_engine_client_1.DockerEngineClient(socket).json('GET', '/containers/json?all=true', undefined, { signal: scanSignal });
|
|
144
|
+
return {
|
|
145
|
+
state: containers.some((container) => (0, docker_project_compose_1.containerLinksProject)(container.Labels, container.Mounts, root))
|
|
146
|
+
? 'present'
|
|
147
|
+
: 'absent',
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
if (scanSignal.aborted)
|
|
152
|
+
throw error;
|
|
153
|
+
const failure = await socketAvailability(socket, error);
|
|
154
|
+
return {
|
|
155
|
+
state: failure instanceof DockerAvailabilityError &&
|
|
156
|
+
(failure.reason === 'no-socket' || failure.reason === 'no-socket-access')
|
|
157
|
+
? 'absent'
|
|
158
|
+
: 'unknown',
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
if (signal?.aborted)
|
|
164
|
+
throw error;
|
|
165
|
+
return { state: 'unknown' };
|
|
166
|
+
}
|
|
167
|
+
finally {
|
|
168
|
+
if (onAbort)
|
|
169
|
+
scanSignal.removeEventListener('abort', onAbort);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
59
172
|
socket() {
|
|
60
173
|
return (0, docker_engine_client_1.resolveDockerSocket)();
|
|
61
174
|
}
|
|
@@ -65,26 +178,34 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
65
178
|
uid() {
|
|
66
179
|
return process.getuid?.() ?? null;
|
|
67
180
|
}
|
|
181
|
+
gid() {
|
|
182
|
+
return process.getgid?.() ?? null;
|
|
183
|
+
}
|
|
68
184
|
measure(path, signal) {
|
|
69
185
|
return (0, docker_plan_files_1.measureDockerBind)(path, undefined, signal);
|
|
70
186
|
}
|
|
71
|
-
async compose(root) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
'compose.yml',
|
|
76
|
-
'docker-compose.yml',
|
|
77
|
-
'docker-compose.yaml',
|
|
78
|
-
]) {
|
|
79
|
-
if (await (0, promises_1.access)((0, node_path_1.join)(root, name)).then(() => true, () => false)) {
|
|
80
|
-
file = name;
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
187
|
+
async compose(root, options = {}) {
|
|
188
|
+
if (!options.files?.length) {
|
|
189
|
+
if (!(await hasRootCompose(root)))
|
|
190
|
+
return null;
|
|
83
191
|
}
|
|
84
|
-
if (!file)
|
|
85
|
-
return null;
|
|
86
192
|
return new Promise((resolveConfig, reject) => {
|
|
87
|
-
(0, node_child_process_1.execFile)('docker', [
|
|
193
|
+
(0, node_child_process_1.execFile)('docker', [
|
|
194
|
+
'compose',
|
|
195
|
+
'--project-directory',
|
|
196
|
+
root,
|
|
197
|
+
...(options.files?.flatMap((path) => ['-f', path]) ?? []),
|
|
198
|
+
...(options.allProfiles ? ['--profile', '*'] : []),
|
|
199
|
+
'config',
|
|
200
|
+
'--format',
|
|
201
|
+
'json',
|
|
202
|
+
], {
|
|
203
|
+
cwd: root,
|
|
204
|
+
timeout: 30_000,
|
|
205
|
+
maxBuffer: 16 * 1024 * 1024,
|
|
206
|
+
signal: options.signal,
|
|
207
|
+
env: options.env ? { ...process.env, ...options.env } : undefined,
|
|
208
|
+
}, (error, stdout) => {
|
|
88
209
|
if (error)
|
|
89
210
|
return reject(new docker_engine_client_1.DockerEngineError('unavailable', 'Cannot read project Docker Compose configuration'));
|
|
90
211
|
try {
|
|
@@ -97,10 +218,66 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
97
218
|
reject(new docker_engine_client_1.DockerEngineError('invalid-response', 'Invalid Docker Compose configuration'));
|
|
98
219
|
}
|
|
99
220
|
});
|
|
221
|
+
}).catch((error) => {
|
|
222
|
+
if (options.allProfiles &&
|
|
223
|
+
!options.signal?.aborted &&
|
|
224
|
+
error instanceof docker_engine_client_1.DockerEngineError &&
|
|
225
|
+
error.code === 'unavailable')
|
|
226
|
+
return this.compose(root, { ...options, allProfiles: false });
|
|
227
|
+
throw error;
|
|
100
228
|
});
|
|
101
229
|
}
|
|
102
|
-
async scan(client, root, signal, { reuse = false } = {}) {
|
|
230
|
+
async scan(client, root, signal, { reuse = false, previousBindPaths = [], dataBindPaths = [], ownership, } = {}) {
|
|
103
231
|
const recent = reuse && this.recent && reusable(this.recent.at) ? this.recent : null;
|
|
232
|
+
const composeCache = new Map(recent?.compose);
|
|
233
|
+
const readCompose = async (directory, files, ids) => {
|
|
234
|
+
const key = JSON.stringify([(0, node_path_1.resolve)(directory), files, ids]);
|
|
235
|
+
if (!composeCache.has(key)) {
|
|
236
|
+
const config = await this.compose(directory, {
|
|
237
|
+
files,
|
|
238
|
+
signal,
|
|
239
|
+
...(ids
|
|
240
|
+
? {
|
|
241
|
+
allProfiles: true,
|
|
242
|
+
env: {
|
|
243
|
+
...process.env,
|
|
244
|
+
DEVCHAIN_UID: String(ids.uid),
|
|
245
|
+
DEVCHAIN_GID: String(ids.gid),
|
|
246
|
+
},
|
|
247
|
+
}
|
|
248
|
+
: {}),
|
|
249
|
+
}).catch((error) => (error instanceof Error ? error : new Error(String(error))));
|
|
250
|
+
signal?.throwIfAborted();
|
|
251
|
+
composeCache.set(key, config);
|
|
252
|
+
}
|
|
253
|
+
return composeCache.get(key);
|
|
254
|
+
};
|
|
255
|
+
const composeOwnershipSets = new Map();
|
|
256
|
+
const readOwnershipCompose = async (directory, files) => {
|
|
257
|
+
if (!ownership)
|
|
258
|
+
return undefined;
|
|
259
|
+
const key = JSON.stringify([(0, node_path_1.resolve)(directory), files]);
|
|
260
|
+
if (!composeOwnershipSets.has(key)) {
|
|
261
|
+
const [home, vm] = await Promise.all([
|
|
262
|
+
readCompose(directory, files, ownership.home),
|
|
263
|
+
readCompose(directory, files, ownership.vm),
|
|
264
|
+
]);
|
|
265
|
+
composeOwnershipSets.set(key, home && vm && !(home instanceof Error) && !(vm instanceof Error)
|
|
266
|
+
? { state: 'resolved', directory, files, home, vm }
|
|
267
|
+
: {
|
|
268
|
+
state: 'unresolved',
|
|
269
|
+
directory,
|
|
270
|
+
files,
|
|
271
|
+
home: home instanceof Error ? null : home,
|
|
272
|
+
vm: vm instanceof Error ? null : vm,
|
|
273
|
+
issue: {
|
|
274
|
+
code: 'compose-ownership-unreadable',
|
|
275
|
+
message: 'Cannot resolve Docker Compose ownership with both home and VM user ids. Fix the Compose configuration and verify again.',
|
|
276
|
+
},
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
return composeOwnershipSets.get(key);
|
|
280
|
+
};
|
|
104
281
|
const [listed, usage, volumes, composeAttempt] = await Promise.all([
|
|
105
282
|
client.json('GET', '/containers/json?all=true', undefined, { signal }),
|
|
106
283
|
recent?.usage ?? client.diskUsage(signal),
|
|
@@ -108,7 +285,10 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
108
285
|
this.compose(root).catch((error) => (error instanceof Error ? error : new Error(String(error)))),
|
|
109
286
|
]);
|
|
110
287
|
const items = [];
|
|
288
|
+
const ownershipConsumers = [];
|
|
289
|
+
const ownershipInputs = new Map();
|
|
111
290
|
const imageCache = new Map();
|
|
291
|
+
const imageUsers = new Map();
|
|
112
292
|
const bindCache = new Map(recent?.folders);
|
|
113
293
|
const image = async (ref) => {
|
|
114
294
|
let result = imageCache.get(ref);
|
|
@@ -122,6 +302,7 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
122
302
|
size: size(usage.Images?.find((entry) => entry.Id === info.Id)?.Size),
|
|
123
303
|
};
|
|
124
304
|
imageCache.set(ref, result);
|
|
305
|
+
imageUsers.set(ref, info.Config?.User);
|
|
125
306
|
}
|
|
126
307
|
return result;
|
|
127
308
|
};
|
|
@@ -133,22 +314,44 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
133
314
|
driver: volumes.Volumes?.find((v) => v.Name === name)?.Driver ?? 'unknown',
|
|
134
315
|
size: size(usage.Volumes?.find((v) => v.Name === name)?.UsageData?.Size),
|
|
135
316
|
});
|
|
136
|
-
const
|
|
317
|
+
const linked = new Set(listed
|
|
318
|
+
.filter((entry) => (0, docker_project_compose_1.containerLinksProject)(entry.Labels, entry.Mounts, root))
|
|
319
|
+
.map((entry) => entry.Id));
|
|
320
|
+
const writableLayers = new Map(recent?.writableLayers);
|
|
321
|
+
const inspects = await Promise.all(listed.map(async (entry) => {
|
|
322
|
+
const measureLayer = linked.has(entry.Id) && !writableLayers.has(entry.Id);
|
|
323
|
+
const inspect = await client.json('GET', `/containers/${encodeURIComponent(entry.Id)}/json${measureLayer ? '?size=true' : ''}`, undefined, { signal });
|
|
324
|
+
if (measureLayer)
|
|
325
|
+
writableLayers.set(entry.Id, size(inspect.SizeRw));
|
|
326
|
+
return inspect;
|
|
327
|
+
}));
|
|
328
|
+
const networkNames = [
|
|
329
|
+
...new Set(inspects.flatMap((inspect) => Object.keys(inspect.NetworkSettings?.Networks ?? {}).filter((name) => !docker_settings_1.DEFAULT_NETWORKS.has(name)))),
|
|
330
|
+
];
|
|
331
|
+
const networkSubnets = new Map(await Promise.all(networkNames.map(async (name) => {
|
|
332
|
+
const network = await client.json('GET', `/networks/${encodeURIComponent(name)}`, undefined, { signal });
|
|
333
|
+
return [name, (0, docker_settings_1.ipv4Ranges)(network.IPAM?.Config).map((range) => range.Subnet)];
|
|
334
|
+
})));
|
|
137
335
|
for (const inspect of inspects) {
|
|
138
336
|
const item = baseItem(inspect.Id, inspect.Name.replace(/^\//, ''), 'container');
|
|
337
|
+
for (const [name, endpoint] of Object.entries(inspect.NetworkSettings?.Networks ?? {})) {
|
|
338
|
+
if (docker_settings_1.DEFAULT_NETWORKS.has(name))
|
|
339
|
+
continue;
|
|
340
|
+
const address = (0, docker_settings_1.fixedIPv4Address)(endpoint);
|
|
341
|
+
const subnets = networkSubnets.get(name) ?? [];
|
|
342
|
+
(item.networks ??= []).push({ name, subnets });
|
|
343
|
+
if (address)
|
|
344
|
+
(item.fixedIPv4 ??= []).push({ network: name, address, subnets });
|
|
345
|
+
}
|
|
139
346
|
const labels = (inspect.Config.Labels ?? {});
|
|
140
347
|
item.composeProject = labels[host_docker_dto_1.COMPOSE_PROJECT_LABEL] ?? null;
|
|
141
348
|
item.temporary = inspect.HostConfig.AutoRemove === true;
|
|
349
|
+
if (inspect.HostConfig.Privileged === true)
|
|
350
|
+
item.privileged = true;
|
|
142
351
|
if (item.temporary)
|
|
143
352
|
item.notes.push(docker_plan_dto_1.DOCKER_TEMPORARY_NOTE);
|
|
144
353
|
item.notes.push(docker_plan_dto_1.DOCKER_WRITABLE_LAYER_NOTE);
|
|
145
|
-
|
|
146
|
-
`${host_docker_dto_1.COMPOSE_PROJECT_LABEL}.working_dir`,
|
|
147
|
-
`${host_docker_dto_1.COMPOSE_PROJECT_LABEL}.config_files`,
|
|
148
|
-
]) {
|
|
149
|
-
if (labels[key]?.split(',').some((path) => path.startsWith('/') && (0, docker_plan_files_1.within)(root, path)))
|
|
150
|
-
item.linkedReasons.push(key);
|
|
151
|
-
}
|
|
354
|
+
item.linkedReasons.push(...containerProjectLinks(root, inspect));
|
|
152
355
|
try {
|
|
153
356
|
(0, docker_settings_1.projectDockerCreate)(inspect, client.socketPath);
|
|
154
357
|
}
|
|
@@ -167,33 +370,49 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
167
370
|
}
|
|
168
371
|
}
|
|
169
372
|
item.images = [await image(inspect.Image)];
|
|
170
|
-
item.writableLayer =
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
item.warnings.push({ code: 'home-uid', message: 'Container runs as the home user uid.' });
|
|
373
|
+
item.writableLayer = linked.has(inspect.Id)
|
|
374
|
+
? (writableLayers.get(inspect.Id) ?? (0, exports.unknownSize)())
|
|
375
|
+
: (0, exports.unknownSize)();
|
|
174
376
|
for (const mount of inspect.Mounts ?? []) {
|
|
175
377
|
if (mount.Type === 'volume') {
|
|
176
378
|
const named = explicitlyNamed(inspect, mount) ||
|
|
177
|
-
Boolean(volumes.Volumes?.find((v) => v.Name === mount.Name)?.Labels?.[
|
|
379
|
+
Boolean(volumes.Volumes?.find((v) => v.Name === mount.Name)?.Labels?.[host_docker_dto_1.COMPOSE_VOLUME_LABEL]);
|
|
178
380
|
item.mounts.push(volumeMount(mount.Name ?? mount.Source, mount.Destination, named, !mount.RW));
|
|
179
381
|
}
|
|
180
382
|
else if (mount.Type === 'bind') {
|
|
181
383
|
const source = (0, node_path_1.resolve)(mount.Source);
|
|
182
|
-
const kind = this.bindKind(root, source, !mount.RW);
|
|
183
|
-
if (kind === 'project-bind')
|
|
384
|
+
const kind = await this.bindKind(root, source, !mount.RW, dataBindPaths, signal);
|
|
385
|
+
if (kind === 'project-bind' || kind === 'project-code')
|
|
184
386
|
item.linkedReasons.push(`bind:${source}`);
|
|
185
|
-
const copyable = docker_plan_dto_1.COPYABLE_MOUNT_KINDS.includes(kind);
|
|
186
|
-
if (copyable && !bindCache.has(source))
|
|
187
|
-
bindCache.set(source, await this.measure(source, signal));
|
|
188
387
|
item.mounts.push({
|
|
189
388
|
kind,
|
|
190
389
|
source,
|
|
191
390
|
destination: mount.Destination,
|
|
192
391
|
readOnly: !mount.RW,
|
|
193
|
-
size:
|
|
392
|
+
size: (0, exports.unknownSize)(),
|
|
194
393
|
});
|
|
195
394
|
}
|
|
196
395
|
}
|
|
396
|
+
const composeSet = item.linkedReasons.length ? composeLabelSet(root, inspect) : null;
|
|
397
|
+
if (composeSet?.service) {
|
|
398
|
+
const configs = await readOwnershipCompose(composeSet.directory, composeSet.files);
|
|
399
|
+
if (configs?.state === 'unresolved')
|
|
400
|
+
item.blockers.push(configs.issue);
|
|
401
|
+
ownershipInputs.set(item.id, {
|
|
402
|
+
inspect,
|
|
403
|
+
compose: { ...composeSet, service: composeSet.service },
|
|
404
|
+
configs,
|
|
405
|
+
});
|
|
406
|
+
const config = configs?.home ?? (await readCompose(composeSet.directory, composeSet.files));
|
|
407
|
+
if (configs?.state === 'unresolved' && config && !(config instanceof Error))
|
|
408
|
+
configs.fallback = config;
|
|
409
|
+
if (!(config instanceof Error) &&
|
|
410
|
+
buildsInProject(root, config?.services?.[composeSet.service]))
|
|
411
|
+
item.buildsFromProject = true;
|
|
412
|
+
}
|
|
413
|
+
if (!ownershipInputs.has(item.id))
|
|
414
|
+
ownershipInputs.set(item.id, { inspect });
|
|
415
|
+
item.runtimeUser = inspect.Config.User;
|
|
197
416
|
items.push(item);
|
|
198
417
|
}
|
|
199
418
|
if (composeAttempt instanceof Error) {
|
|
@@ -201,6 +420,8 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
201
420
|
const item = baseItem(`compose:${name}`, name, 'compose-project');
|
|
202
421
|
item.composeProject = name;
|
|
203
422
|
item.linkedReasons.push('compose-file-at-project-root');
|
|
423
|
+
if (ownership)
|
|
424
|
+
item.ownership = { ...ownership, class: 'exact' };
|
|
204
425
|
item.blockers.push({
|
|
205
426
|
code: 'compose-unreadable',
|
|
206
427
|
message: `${name}: ${composeAttempt.message}`,
|
|
@@ -210,9 +431,15 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
210
431
|
else if (composeAttempt &&
|
|
211
432
|
!items.some((item) => item.composeProject === composeAttempt.name)) {
|
|
212
433
|
const compose = composeAttempt;
|
|
434
|
+
const configs = await readOwnershipCompose(root, []);
|
|
213
435
|
const item = baseItem(`compose:${compose.name}`, compose.name, 'compose-project');
|
|
214
436
|
item.composeProject = compose.name;
|
|
215
437
|
item.linkedReasons.push('compose-file-at-project-root');
|
|
438
|
+
if (configs?.state === 'unresolved') {
|
|
439
|
+
configs.fallback = compose;
|
|
440
|
+
item.blockers.push(configs.issue);
|
|
441
|
+
item.ownership = { ...ownership, class: 'exact', refusalReasons: [configs.issue] };
|
|
442
|
+
}
|
|
216
443
|
item.notes.push('compose up recreates the containers on the VM. Only existing volumes and present images are copied.');
|
|
217
444
|
for (const [service, config] of Object.entries(compose.services ?? {})) {
|
|
218
445
|
try {
|
|
@@ -231,8 +458,169 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
231
458
|
if (volumes.Volumes?.some((v) => v.Name === name))
|
|
232
459
|
item.mounts.push(volumeMount(name, '', true, false));
|
|
233
460
|
}
|
|
461
|
+
for (const config of Object.values(compose.services ?? {}))
|
|
462
|
+
for (const mount of config.volumes ?? []) {
|
|
463
|
+
if (mount.type !== 'bind' || !mount.source)
|
|
464
|
+
continue;
|
|
465
|
+
const source = (0, node_path_1.resolve)(root, mount.source);
|
|
466
|
+
if (!(0, docker_plan_files_1.strictlyWithin)(root, source) ||
|
|
467
|
+
!previousBindPaths.some((path) => (0, docker_plan_files_1.within)(path, source) || (0, docker_plan_files_1.within)(source, path)))
|
|
468
|
+
continue;
|
|
469
|
+
item.mounts.push({
|
|
470
|
+
kind: await this.bindKind(root, source, mount.read_only ?? false, dataBindPaths, signal),
|
|
471
|
+
source,
|
|
472
|
+
destination: mount.target ?? '',
|
|
473
|
+
readOnly: mount.read_only ?? false,
|
|
474
|
+
size: (0, exports.unknownSize)(),
|
|
475
|
+
});
|
|
476
|
+
}
|
|
234
477
|
items.push(item);
|
|
235
478
|
}
|
|
479
|
+
const previous = await Promise.all([...new Set(previousBindPaths)]
|
|
480
|
+
.filter((path) => (0, docker_plan_files_1.within)(root, path))
|
|
481
|
+
.map(async (path) => ({
|
|
482
|
+
source: path,
|
|
483
|
+
kind: await this.bindKind(root, path, false, dataBindPaths, signal),
|
|
484
|
+
})));
|
|
485
|
+
const projectMounts = items
|
|
486
|
+
.flatMap((item) => item.mounts)
|
|
487
|
+
.filter((mount) => mount.kind === 'project-bind' || mount.kind === 'project-code');
|
|
488
|
+
const dataPaths = [
|
|
489
|
+
...projectMounts
|
|
490
|
+
.filter((mount) => mount.kind === 'project-bind')
|
|
491
|
+
.map((mount) => mount.source),
|
|
492
|
+
...previous.filter((mount) => mount.kind === 'project-bind').map((mount) => mount.source),
|
|
493
|
+
...dataBindPaths.filter((path) => (0, docker_plan_files_1.strictlyWithin)(root, path)),
|
|
494
|
+
];
|
|
495
|
+
const classified = [...projectMounts, ...previous];
|
|
496
|
+
for (const mount of classified)
|
|
497
|
+
if (mount.kind === 'project-code' && dataPaths.some((path) => (0, docker_plan_files_1.within)(path, mount.source)))
|
|
498
|
+
mount.kind = 'project-bind';
|
|
499
|
+
const codePaths = [
|
|
500
|
+
...new Set(classified.filter((mount) => mount.kind === 'project-code').map((mount) => mount.source)),
|
|
501
|
+
];
|
|
502
|
+
if (ownership) {
|
|
503
|
+
for (const item of items) {
|
|
504
|
+
const input = ownershipInputs.get(item.id);
|
|
505
|
+
if (!input)
|
|
506
|
+
continue;
|
|
507
|
+
const { inspect, compose, configs } = input;
|
|
508
|
+
const imageUser = imageUsers.get(inspect.Image);
|
|
509
|
+
const homeService = compose ? configs?.home?.services?.[compose.service] : undefined;
|
|
510
|
+
const vmService = compose ? configs?.vm?.services?.[compose.service] : undefined;
|
|
511
|
+
item.ownership = item.linkedReasons.length
|
|
512
|
+
? (0, docker_ownership_1.classifyDockerOwnership)(ownership, item.runtimeUser, imageUser, item.mounts.some((mount) => mount.kind === 'project-code'), compose && configs?.state === 'resolved'
|
|
513
|
+
? {
|
|
514
|
+
source: compose,
|
|
515
|
+
homeUser: homeService?.user,
|
|
516
|
+
vmUser: vmService?.user,
|
|
517
|
+
vmGroupAdd: vmService?.group_add,
|
|
518
|
+
}
|
|
519
|
+
: undefined, item.composeProject !== null, (inspect.HostConfig.GroupAdd ?? []).map(String))
|
|
520
|
+
: { ...ownership, class: 'exact' };
|
|
521
|
+
if (configs?.state === 'unresolved') {
|
|
522
|
+
item.ownership.compose = compose;
|
|
523
|
+
item.ownership.refusalReasons = [configs.issue];
|
|
524
|
+
}
|
|
525
|
+
ownershipConsumers.push({
|
|
526
|
+
name: item.name,
|
|
527
|
+
itemId: item.id,
|
|
528
|
+
ownership: item.ownership,
|
|
529
|
+
user: homeService?.user ?? item.runtimeUser,
|
|
530
|
+
imageUser,
|
|
531
|
+
literalHomeUser: Boolean(configs?.state === 'resolved' &&
|
|
532
|
+
(0, docker_ownership_1.literalHomeComposeUser)(ownership, homeService?.user, vmService?.user)),
|
|
533
|
+
volumes: item.mounts
|
|
534
|
+
.filter((mount) => (0, docker_plan_dto_1.isVolumeMount)(mount.kind))
|
|
535
|
+
.map((mount) => mount.source),
|
|
536
|
+
bindPaths: item.mounts
|
|
537
|
+
.filter((mount) => !(0, docker_plan_dto_1.isVolumeMount)(mount.kind))
|
|
538
|
+
.map((mount) => mount.source),
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
for (const set of composeOwnershipSets.values()) {
|
|
542
|
+
const config = set.home ?? set.vm ?? (set.state === 'unresolved' ? set.fallback : null);
|
|
543
|
+
if (!config)
|
|
544
|
+
continue;
|
|
545
|
+
const aggregate = items.find((item) => item.kind === 'compose-project' && item.composeProject === config.name);
|
|
546
|
+
for (const [service, serviceConfig] of Object.entries(config.services ?? {})) {
|
|
547
|
+
const inspected = [...ownershipInputs.values()].find((input) => input.configs === set && input.compose?.service === service);
|
|
548
|
+
const ref = inspected?.inspect.Image ?? serviceConfig.image ?? `${config.name}-${service}`;
|
|
549
|
+
let imageUser = imageUsers.get(ref);
|
|
550
|
+
if (!imageCache.has(ref)) {
|
|
551
|
+
try {
|
|
552
|
+
await image(ref);
|
|
553
|
+
imageUser = imageUsers.get(ref);
|
|
554
|
+
}
|
|
555
|
+
catch (error) {
|
|
556
|
+
if (!(0, docker_engine_client_1.isDockerNotFound)(error))
|
|
557
|
+
throw error;
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
const mounts = await Promise.all((serviceConfig.volumes ?? []).map(async (mount) => ({
|
|
561
|
+
...mount,
|
|
562
|
+
kind: mount.type === 'bind' && mount.source
|
|
563
|
+
? await this.bindKind(root, (0, node_path_1.resolve)(set.directory, mount.source), mount.read_only ?? false, dataBindPaths, signal)
|
|
564
|
+
: undefined,
|
|
565
|
+
})));
|
|
566
|
+
const vmConfig = set.vm?.services?.[service];
|
|
567
|
+
const decision = set.state === 'resolved'
|
|
568
|
+
? (0, docker_ownership_1.classifyDockerOwnership)(ownership, serviceConfig.user ?? imageUser, imageUser, mounts.some((mount) => mount.kind === 'project-code'), {
|
|
569
|
+
source: { directory: set.directory, files: set.files, service },
|
|
570
|
+
homeUser: serviceConfig.user,
|
|
571
|
+
vmUser: vmConfig?.user,
|
|
572
|
+
vmGroupAdd: vmConfig?.group_add,
|
|
573
|
+
}, true)
|
|
574
|
+
: {
|
|
575
|
+
...ownership,
|
|
576
|
+
class: 'exact',
|
|
577
|
+
compose: { directory: set.directory, files: set.files, service },
|
|
578
|
+
refusalReasons: [set.issue],
|
|
579
|
+
};
|
|
580
|
+
if (aggregate)
|
|
581
|
+
(aggregate.serviceOwnership ??= []).push({ service, ownership: decision });
|
|
582
|
+
ownershipConsumers.push({
|
|
583
|
+
name: `${config.name}/${service}`,
|
|
584
|
+
itemId: aggregate?.id,
|
|
585
|
+
user: serviceConfig.user ?? imageUser,
|
|
586
|
+
imageUser,
|
|
587
|
+
ownership: decision,
|
|
588
|
+
literalHomeUser: set.state === 'resolved' &&
|
|
589
|
+
(0, docker_ownership_1.literalHomeComposeUser)(ownership, serviceConfig.user, vmConfig?.user),
|
|
590
|
+
volumes: mounts
|
|
591
|
+
.filter((mount) => mount.type === 'volume' && mount.source)
|
|
592
|
+
.map((mount) => {
|
|
593
|
+
const volume = config.volumes?.[mount.source];
|
|
594
|
+
return (volume?.name ??
|
|
595
|
+
(volume?.external ? mount.source : `${config.name}_${mount.source}`));
|
|
596
|
+
}),
|
|
597
|
+
bindPaths: mounts
|
|
598
|
+
.filter((mount) => mount.type === 'bind' && mount.source)
|
|
599
|
+
.map((mount) => (0, node_path_1.resolve)(set.directory, mount.source)),
|
|
600
|
+
});
|
|
601
|
+
}
|
|
602
|
+
if (aggregate) {
|
|
603
|
+
const classes = aggregate.serviceOwnership?.map((entry) => entry.ownership.class) ?? [];
|
|
604
|
+
aggregate.ownership = {
|
|
605
|
+
...ownership,
|
|
606
|
+
...(set.state === 'unresolved' ? { refusalReasons: [set.issue] } : {}),
|
|
607
|
+
class: AGGREGATE_OWNERSHIP_CLASSES.find((cls) => classes.includes(cls)) ?? 'exact',
|
|
608
|
+
};
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
for (const mount of items.flatMap((item) => item.mounts)) {
|
|
613
|
+
if ((0, docker_plan_dto_1.isVolumeMount)(mount.kind))
|
|
614
|
+
continue;
|
|
615
|
+
if (docker_plan_dto_1.COPYABLE_MOUNT_KINDS.includes(mount.kind)) {
|
|
616
|
+
if (!bindCache.has(mount.source))
|
|
617
|
+
bindCache.set(mount.source, await this.measure(mount.source, signal));
|
|
618
|
+
mount.size = bindCache.get(mount.source) ?? (0, exports.unknownSize)();
|
|
619
|
+
}
|
|
620
|
+
else if (mount.kind === 'project-code') {
|
|
621
|
+
mount.size = { bytes: 0, unknown: false };
|
|
622
|
+
}
|
|
623
|
+
}
|
|
236
624
|
for (const item of items) {
|
|
237
625
|
const group = [item];
|
|
238
626
|
for (const member of group)
|
|
@@ -242,11 +630,18 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
242
630
|
item.writerGroup = group.map((member) => member.id).sort();
|
|
243
631
|
}
|
|
244
632
|
const folders = new Map([...bindCache].filter(([, size]) => !size.unknown));
|
|
245
|
-
this.recent = {
|
|
633
|
+
this.recent = {
|
|
634
|
+
at: recent?.at ?? Date.now(),
|
|
635
|
+
usage,
|
|
636
|
+
writableLayers: new Map([...writableLayers].filter(([, size]) => !size.unknown)),
|
|
637
|
+
folders,
|
|
638
|
+
compose: composeCache,
|
|
639
|
+
};
|
|
246
640
|
return {
|
|
247
641
|
items,
|
|
248
642
|
homePath: this.homePath(),
|
|
249
|
-
|
|
643
|
+
codePaths,
|
|
644
|
+
...(ownership ? { ownershipConsumers } : {}),
|
|
250
645
|
holders: inspects.map((c) => ({
|
|
251
646
|
volumes: (c.Mounts ?? []).filter((m) => m.Type === 'volume').map((m) => m.Name ?? m.Source),
|
|
252
647
|
bindPaths: (c.Mounts ?? []).filter((m) => m.Type === 'bind').map((m) => m.Source),
|
|
@@ -254,9 +649,35 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
254
649
|
})),
|
|
255
650
|
};
|
|
256
651
|
}
|
|
257
|
-
bindKind(root, source, readOnly) {
|
|
258
|
-
|
|
259
|
-
|
|
652
|
+
async bindKind(root, source, readOnly, dataBindPaths, signal) {
|
|
653
|
+
signal?.throwIfAborted();
|
|
654
|
+
if ((0, node_path_1.resolve)(root) === (0, node_path_1.resolve)(source))
|
|
655
|
+
return 'project-code';
|
|
656
|
+
if ((0, docker_plan_files_1.within)(root, source)) {
|
|
657
|
+
if (dataBindPaths.some((path) => (0, node_path_1.resolve)(path) === (0, node_path_1.resolve)(source)))
|
|
658
|
+
return 'project-bind';
|
|
659
|
+
try {
|
|
660
|
+
const result = await this.executor.run({
|
|
661
|
+
argv: ['git', 'ls-files', '-z', '--', `:(literal)${(0, node_path_1.relative)(root, source)}`],
|
|
662
|
+
mode: 'pipe',
|
|
663
|
+
cwd: root,
|
|
664
|
+
timeout: 10_000,
|
|
665
|
+
outputLimits: { maxBytes: 4096 },
|
|
666
|
+
});
|
|
667
|
+
signal?.throwIfAborted();
|
|
668
|
+
if (result.success) {
|
|
669
|
+
const tracked = result.truncated ||
|
|
670
|
+
result.stdout
|
|
671
|
+
.split('\0')
|
|
672
|
+
.some((path) => path && !['.gitkeep', '.keep', '.gitignore'].includes((0, node_path_1.basename)(path)));
|
|
673
|
+
return tracked ? 'project-code' : 'project-bind';
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
catch {
|
|
677
|
+
signal?.throwIfAborted();
|
|
678
|
+
}
|
|
679
|
+
return readOnly ? 'project-code' : 'project-bind';
|
|
680
|
+
}
|
|
260
681
|
if ((0, docker_plan_files_1.within)(this.homePath(), source))
|
|
261
682
|
return 'home-bind';
|
|
262
683
|
return readOnly ? 'readonly-external-bind' : 'external-bind';
|
|
@@ -282,7 +703,8 @@ let DockerPlanSourceService = class DockerPlanSourceService {
|
|
|
282
703
|
};
|
|
283
704
|
exports.DockerPlanSourceService = DockerPlanSourceService;
|
|
284
705
|
exports.DockerPlanSourceService = DockerPlanSourceService = __decorate([
|
|
285
|
-
(0, common_1.Injectable)()
|
|
706
|
+
(0, common_1.Injectable)(),
|
|
707
|
+
__metadata("design:paramtypes", [process_executor_port_1.ProcessExecutor])
|
|
286
708
|
], DockerPlanSourceService);
|
|
287
709
|
class DockerAvailabilityError extends docker_engine_client_1.DockerEngineError {
|
|
288
710
|
reason;
|
|
@@ -347,15 +769,17 @@ function explicitlyNamed(inspect, mount) {
|
|
|
347
769
|
}
|
|
348
770
|
function sharesData(a, b) {
|
|
349
771
|
const copied = (mount) => docker_plan_dto_1.COPYABLE_MOUNT_KINDS.includes(mount.kind);
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
772
|
+
const writer = (mount) => copied(mount) || (mount.kind === 'project-code' && !mount.readOnly);
|
|
773
|
+
return a.mounts.some((x) => b.mounts.some((y) => {
|
|
774
|
+
if (x.readOnly && y.readOnly)
|
|
775
|
+
return false;
|
|
776
|
+
if (!(copied(x) && writer(y)) && !(copied(y) && writer(x)))
|
|
777
|
+
return false;
|
|
778
|
+
const xv = (0, docker_plan_dto_1.isVolumeMount)(x.kind);
|
|
779
|
+
const yv = (0, docker_plan_dto_1.isVolumeMount)(y.kind);
|
|
780
|
+
return xv && yv
|
|
781
|
+
? x.source === y.source
|
|
782
|
+
: !xv && !yv && ((0, docker_plan_files_1.within)(x.source, y.source) || (0, docker_plan_files_1.within)(y.source, x.source));
|
|
783
|
+
}));
|
|
360
784
|
}
|
|
361
785
|
//# sourceMappingURL=docker-plan-source.service.js.map
|