devchain-cli 0.24.1 → 0.24.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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 +31 -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/server/common/config/env.config.d.ts +3 -0
- package/dist/server/common/config/env.config.js +1 -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/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/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 +17 -6
- package/dist/server/common/test/fake-docker-engine.server.js +77 -33
- 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/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 +2 -1
- package/dist/server/modules/core/controllers/docker-engine.client.js +8 -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/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 +11 -4
- 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/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 +22 -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 +220 -1
- package/dist/server/modules/file-sync/file-sync.dto.js +70 -4
- package/dist/server/modules/file-sync/file-sync.dto.js.map +1 -1
- package/dist/server/modules/file-sync/file-sync.module.js +16 -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 +18 -4
- package/dist/server/modules/file-sync/file-sync.service.js +166 -34
- 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 +4 -2
- 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 +10 -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 +9 -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 +15 -2
- package/dist/server/modules/file-sync/host-sync.controller.js +122 -14
- package/dist/server/modules/file-sync/host-sync.controller.js.map +1 -1
- package/dist/server/modules/file-sync/ignore-pattern-matcher.d.ts +30 -0
- package/dist/server/modules/file-sync/ignore-pattern-matcher.js +183 -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-chown.dto.d.ts +99 -0
- package/dist/server/modules/file-sync/sync-chown.dto.js +46 -0
- package/dist/server/modules/file-sync/sync-chown.dto.js.map +1 -0
- package/dist/server/modules/file-sync/sync-chown.service.d.ts +12 -0
- package/dist/server/modules/file-sync/sync-chown.service.js +230 -0
- package/dist/server/modules/file-sync/sync-chown.service.js.map +1 -0
- package/dist/server/modules/file-sync/sync-path-inspection.dto.d.ts +626 -0
- package/dist/server/modules/file-sync/sync-path-inspection.dto.js +108 -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 +413 -0
- package/dist/server/modules/file-sync/sync-path-inspector.js.map +1 -0
- package/dist/server/modules/file-sync/testing/fake-file-sync.service.d.ts +27 -4
- package/dist/server/modules/file-sync/testing/fake-file-sync.service.js +66 -4
- package/dist/server/modules/file-sync/testing/fake-file-sync.service.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/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/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/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-copy-back.js +40 -16
- package/dist/server/modules/remotes/docker/docker-copy-back.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-handoff.d.ts +5 -3
- package/dist/server/modules/remotes/docker/docker-handoff.js +146 -42
- package/dist/server/modules/remotes/docker/docker-handoff.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-handoff.store.d.ts +3 -0
- package/dist/server/modules/remotes/docker/docker-handoff.store.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan-fit.d.ts +4 -1
- package/dist/server/modules/remotes/docker/docker-plan-fit.js +19 -6
- package/dist/server/modules/remotes/docker/docker-plan-fit.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan-policy.d.ts +6 -2
- package/dist/server/modules/remotes/docker/docker-plan-policy.js +191 -38
- 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 +52 -8
- package/dist/server/modules/remotes/docker/docker-plan-source.service.js +273 -50
- 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 +2 -1
- package/dist/server/modules/remotes/docker/docker-plan.controller.js +14 -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 +46 -1
- package/dist/server/modules/remotes/docker/docker-plan.dto.js +1 -0
- package/dist/server/modules/remotes/docker/docker-plan.dto.js.map +1 -1
- package/dist/server/modules/remotes/docker/docker-plan.service.d.ts +13 -7
- package/dist/server/modules/remotes/docker/docker-plan.service.js +57 -13
- 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 +30 -0
- package/dist/server/modules/remotes/docker/docker-project-compose.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-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 +606 -0
- package/dist/server/modules/remotes/host/host-docker.dto.js +47 -7
- package/dist/server/modules/remotes/host/host-docker.dto.js.map +1 -1
- package/dist/server/modules/remotes/host/host-docker.service.d.ts +16 -4
- package/dist/server/modules/remotes/host/host-docker.service.js +157 -82
- package/dist/server/modules/remotes/host/host-docker.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-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 +4 -1
- package/dist/server/modules/remotes/operations/detach.operation.js +10 -2
- package/dist/server/modules/remotes/operations/detach.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/docker-import-inventory.store.d.ts +4 -0
- package/dist/server/modules/remotes/operations/docker-import-inventory.store.js +11 -0
- 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 +71 -7
- package/dist/server/modules/remotes/operations/remote-host.client.js +141 -11
- package/dist/server/modules/remotes/operations/remote-host.client.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operation.dto.d.ts +19 -0
- 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 +3 -1
- package/dist/server/modules/remotes/operations/remote-operation.runner.js +52 -21
- 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 +16 -1
- 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 +1 -3
- 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/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 +18 -0
- 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/sync/file-sync-failures.service.d.ts +18 -0
- package/dist/server/modules/remotes/sync/file-sync-failures.service.js +157 -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 +15 -0
- package/dist/server/modules/remotes/sync/file-sync-suggestions.service.js +90 -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 +29 -0
- package/dist/server/modules/remotes/sync/project-file-sync.controller.js +160 -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 +72 -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 +32 -1
- package/dist/server/modules/remotes/sync/remote-file-sync.service.js +499 -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/vm-user-identity.d.ts +29 -0
- package/dist/server/modules/remotes/vm-user-identity.js +45 -0
- package/dist/server/modules/remotes/vm-user-identity.js.map +1 -0
- package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js +5 -1
- package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js.map +1 -1
- package/dist/server/modules/session-reader/data/pricing.json +55 -7
- package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +5 -0
- package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.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 +3 -1
- package/dist/server/modules/settings/services/settings.service.js +6 -0
- package/dist/server/modules/settings/services/settings.service.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 +3 -3
- 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/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/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/terminal/gateways/terminal.gateway.d.ts +3 -1
- package/dist/server/modules/terminal/gateways/terminal.gateway.js +9 -4
- package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-activity.service.d.ts +0 -1
- package/dist/server/modules/terminal/services/terminal-activity.service.js +0 -3
- package/dist/server/modules/terminal/services/terminal-activity.service.js.map +1 -1
- 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/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/templates/teams-dev.json +11 -11
- 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.tsbuildinfo +1 -1
- package/dist/server/ui/assets/{ExternalRichEditor-DtNvrV0F.js → ExternalRichEditor-CIZPhssf.js} +24 -24
- package/dist/server/ui/assets/ReviewDetailPage-winyLSQ7.js +6 -0
- package/dist/server/ui/assets/ReviewsPage-BYKBReMp.js +6 -0
- package/dist/server/ui/assets/index-CiDJX6Hn.js +1191 -0
- package/dist/server/ui/assets/index-f1WOAqXB.css +32 -0
- package/dist/server/ui/assets/useReviewSubscription-v3Cto0y4.js +69 -0
- package/dist/server/ui/index.html +2 -2
- package/dist/templates/teams-dev.json +11 -11
- package/package.json +8 -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/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
|
@@ -29,6 +29,8 @@ const destroy_vm_operation_1 = require("./destroy-vm.operation");
|
|
|
29
29
|
const remote_operation_types_1 = require("./remote-operation.types");
|
|
30
30
|
const update_logins_operation_1 = require("./update-logins.operation");
|
|
31
31
|
const install_host_operation_1 = require("./install-host.operation");
|
|
32
|
+
const force_sync_operation_1 = require("./force-sync.operation");
|
|
33
|
+
const git_owner_operation_1 = require("./git-owner.operation");
|
|
32
34
|
const logger = (0, logger_1.createLogger)('RemoteOperationRunner');
|
|
33
35
|
exports.REMOTE_OPERATIONS_TOPIC = 'remote-operations';
|
|
34
36
|
exports.PROGRESS_PUBLISH_INTERVAL_MS = 1_000;
|
|
@@ -40,13 +42,15 @@ let RemoteOperationRunner = class RemoteOperationRunner {
|
|
|
40
42
|
cancelRequested = new Set();
|
|
41
43
|
lastPublishedAt = new Map();
|
|
42
44
|
stopped = false;
|
|
43
|
-
constructor(storage, broadcaster, attach, detach, claim, updateHost, createVm, resetVm, destroyVm, installHost, updateLogins) {
|
|
45
|
+
constructor(storage, broadcaster, attach, detach, claim, updateHost, createVm, resetVm, destroyVm, installHost, updateLogins, forceSync, gitOwner) {
|
|
44
46
|
this.storage = storage;
|
|
45
47
|
this.broadcaster = broadcaster;
|
|
46
48
|
this.definitions = new Map([
|
|
47
49
|
[attach.kind, attach],
|
|
48
50
|
...(updateLogins ? [[updateLogins.kind, updateLogins]] : []),
|
|
49
51
|
[detach.kind, detach],
|
|
52
|
+
...(forceSync ? [[forceSync.kind, forceSync]] : []),
|
|
53
|
+
...(gitOwner ? [[gitOwner.kind, gitOwner]] : []),
|
|
50
54
|
[claim.kind, claim],
|
|
51
55
|
[updateHost.kind, updateHost],
|
|
52
56
|
...(installHost ? [[installHost.kind, installHost]] : []),
|
|
@@ -59,6 +63,14 @@ let RemoteOperationRunner = class RemoteOperationRunner {
|
|
|
59
63
|
const unfinished = await this.storage.listRemoteOperations({ states: ['running'] });
|
|
60
64
|
for (const operation of unfinished) {
|
|
61
65
|
logger.info({ operationId: operation.id, kind: operation.kind }, 'Resuming remote operation');
|
|
66
|
+
try {
|
|
67
|
+
const from = this.definitions.get(operation.kind)?.resumeFrom?.(operation) ?? null;
|
|
68
|
+
if (from !== null)
|
|
69
|
+
await this.persist(operation, { steps: stepsFrom(operation.steps, from, false) });
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
logger.warn({ error, operationId: operation.id }, 'Remote operation resume step reset failed');
|
|
73
|
+
}
|
|
62
74
|
this.launch(operation.id);
|
|
63
75
|
}
|
|
64
76
|
}
|
|
@@ -94,14 +106,10 @@ let RemoteOperationRunner = class RemoteOperationRunner {
|
|
|
94
106
|
});
|
|
95
107
|
}
|
|
96
108
|
const from = this.definition(current.kind).retryFrom?.(current) ?? null;
|
|
97
|
-
const fromIndex = from === null ? -1 : current.steps.findIndex((step) => step.id === from);
|
|
98
109
|
const operation = await this.persist(current, {
|
|
99
110
|
state: 'running',
|
|
100
111
|
expectedState: 'failed',
|
|
101
|
-
steps: current.steps
|
|
102
|
-
(fromIndex >= 0 && index >= fromIndex && step.state !== 'skipped')
|
|
103
|
-
? { ...step, state: 'pending', error: null }
|
|
104
|
-
: step),
|
|
112
|
+
steps: stepsFrom(current.steps, from, true),
|
|
105
113
|
});
|
|
106
114
|
this.launch(id);
|
|
107
115
|
return operation;
|
|
@@ -331,29 +339,41 @@ let RemoteOperationRunner = class RemoteOperationRunner {
|
|
|
331
339
|
let timer = null;
|
|
332
340
|
let writing = Promise.resolve();
|
|
333
341
|
let closed = false;
|
|
334
|
-
const write = () => {
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
if (closed || this.stopped)
|
|
342
|
+
const write = (durable = false) => {
|
|
343
|
+
const snapshot = { ...details };
|
|
344
|
+
const saved = writing.then(async () => {
|
|
345
|
+
if (!durable && (closed || this.stopped))
|
|
338
346
|
return;
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
this.publish(updated);
|
|
342
|
-
}
|
|
343
|
-
catch (error) {
|
|
344
|
-
logger.warn({ error, operationId: id }, 'Remote operation progress was not saved');
|
|
345
|
-
}
|
|
347
|
+
const updated = await this.storage.updateRemoteOperation(id, { details: snapshot });
|
|
348
|
+
this.publish(updated);
|
|
346
349
|
});
|
|
350
|
+
writing = saved.catch((error) => {
|
|
351
|
+
logger.warn({ error, operationId: id }, 'Remote operation progress was not saved');
|
|
352
|
+
});
|
|
353
|
+
return saved;
|
|
347
354
|
};
|
|
348
355
|
return {
|
|
349
|
-
report: async (patch) => {
|
|
350
|
-
if (closed)
|
|
356
|
+
report: async (patch, options) => {
|
|
357
|
+
if (closed) {
|
|
358
|
+
if (options?.durable)
|
|
359
|
+
throw new Error('The operation step has ended.');
|
|
351
360
|
return;
|
|
361
|
+
}
|
|
352
362
|
Object.assign(details, patch);
|
|
363
|
+
if (options?.durable) {
|
|
364
|
+
if (timer)
|
|
365
|
+
clearTimeout(timer);
|
|
366
|
+
timer = null;
|
|
367
|
+
await write(true);
|
|
368
|
+
return;
|
|
369
|
+
}
|
|
353
370
|
if (timer)
|
|
354
371
|
return;
|
|
355
372
|
const since = Date.now() - (this.lastPublishedAt.get(id) ?? 0);
|
|
356
|
-
timer = setTimeout(
|
|
373
|
+
timer = setTimeout(() => {
|
|
374
|
+
timer = null;
|
|
375
|
+
void write().catch(() => undefined);
|
|
376
|
+
}, Math.max(0, exports.PROGRESS_PUBLISH_INTERVAL_MS - since));
|
|
357
377
|
timer.unref?.();
|
|
358
378
|
},
|
|
359
379
|
close: async () => {
|
|
@@ -376,6 +396,8 @@ exports.RemoteOperationRunner = RemoteOperationRunner = __decorate([
|
|
|
376
396
|
__param(8, (0, common_1.Optional)()),
|
|
377
397
|
__param(9, (0, common_1.Optional)()),
|
|
378
398
|
__param(10, (0, common_1.Optional)()),
|
|
399
|
+
__param(11, (0, common_1.Optional)()),
|
|
400
|
+
__param(12, (0, common_1.Optional)()),
|
|
379
401
|
__metadata("design:paramtypes", [Object, Object, attach_operation_1.AttachOperation,
|
|
380
402
|
detach_operation_1.DetachOperation,
|
|
381
403
|
claim_operation_1.ClaimOperation,
|
|
@@ -384,11 +406,20 @@ exports.RemoteOperationRunner = RemoteOperationRunner = __decorate([
|
|
|
384
406
|
reset_vm_operation_1.ResetVmOperation,
|
|
385
407
|
destroy_vm_operation_1.DestroyVmOperation,
|
|
386
408
|
install_host_operation_1.InstallHostOperation,
|
|
387
|
-
update_logins_operation_1.UpdateLoginsOperation
|
|
409
|
+
update_logins_operation_1.UpdateLoginsOperation,
|
|
410
|
+
force_sync_operation_1.ForceSyncOperation,
|
|
411
|
+
git_owner_operation_1.GitOwnerOperation])
|
|
388
412
|
], RemoteOperationRunner);
|
|
389
413
|
function withStep(steps, index, patch) {
|
|
390
414
|
return steps.map((step, i) => (i === index ? { ...step, ...patch } : step));
|
|
391
415
|
}
|
|
416
|
+
function stepsFrom(steps, from, failed) {
|
|
417
|
+
const fromIndex = from === null ? -1 : steps.findIndex((step) => step.id === from);
|
|
418
|
+
return steps.map((step, index) => (failed && step.state === 'failed') ||
|
|
419
|
+
(fromIndex >= 0 && index >= fromIndex && step.state !== 'skipped')
|
|
420
|
+
? { ...step, state: 'pending', error: null }
|
|
421
|
+
: step);
|
|
422
|
+
}
|
|
392
423
|
const MAX_ERROR_MESSAGE_LENGTH = 2_000;
|
|
393
424
|
function toStepError(error) {
|
|
394
425
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-operation.runner.js","sourceRoot":"","sources":["../../../../src/modules/remotes/operations/remote-operation.runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remote-operation.runner.js","sourceRoot":"","sources":["../../../../src/modules/remotes/operations/remote-operation.runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,9 @@ import type { RemoteOperation, RemoteOperationKind } from '../../storage/models/
|
|
|
2
2
|
export interface RemoteOperationStepRun {
|
|
3
3
|
readonly operation: RemoteOperation;
|
|
4
4
|
readonly details: Record<string, unknown>;
|
|
5
|
-
progress(patch: Record<string, unknown
|
|
5
|
+
progress(patch: Record<string, unknown>, options?: {
|
|
6
|
+
durable?: boolean;
|
|
7
|
+
}): Promise<void>;
|
|
6
8
|
}
|
|
7
9
|
export interface RemoteOperationStepDefinition {
|
|
8
10
|
id: string;
|
|
@@ -20,6 +22,7 @@ export interface RemoteOperationDefinition {
|
|
|
20
22
|
forget?(operationId: string): void;
|
|
21
23
|
interrupt?(operationId: string): Promise<void>;
|
|
22
24
|
retryFrom?(operation: RemoteOperation): string | null;
|
|
25
|
+
resumeFrom?(operation: RemoteOperation): string | null;
|
|
23
26
|
}
|
|
24
27
|
export declare function requireProjectId(operation: RemoteOperation): string;
|
|
25
28
|
export declare function stepStarted(operation: RemoteOperation, stepId: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-operation.types.js","sourceRoot":"","sources":["../../../../src/modules/remotes/operations/remote-operation.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"remote-operation.types.js","sourceRoot":"","sources":["../../../../src/modules/remotes/operations/remote-operation.types.ts"],"names":[],"mappings":";;;AAiEA,4CAKC;AAMD,kCAIC;AAgBD,wCAOC;AAMD,kCAUC;AAtDD,SAAgB,gBAAgB,CAAC,SAA0B;IACzD,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,oBAAoB,SAAS,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,SAAS,CAAC,SAAS,CAAC;AAC7B,CAAC;AAMD,SAAgB,WAAW,CAAC,SAA0B,EAAE,MAAc;IACpE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAC1E,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;AAC3F,CAAC;AAGY,QAAA,kBAAkB,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAU,CAAC;AACtE,QAAA,oBAAoB,GAAG;IAClC,OAAO;IACP,cAAc;IACd,aAAa;IACb,eAAe;IACf,GAAG,0BAAkB;CACb,CAAC;AAMX,SAAgB,cAAc,CAAC,SAA0B,EAAE,MAAc;IACvE,OAAO;QACL,GAAG,SAAS;QACZ,KAAK,EAAE,SAAS,CAAC,KAAK;aACnB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aAC5C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KAClE,CAAC;AACJ,CAAC;AAMD,SAAgB,WAAW,CACzB,KAA+C,EAC/C,MAAc;IAEd,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,EAAE,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;KACrF,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import type { FastifyReply } from 'fastify';
|
|
1
2
|
import type { RemoteOperation } from '../../storage/models/domain.models';
|
|
2
3
|
import { RemoteOperationsService } from './remote-operations.service';
|
|
4
|
+
import { type GitOwnerStartResult, type GitOwnerStatus } from './git-owner.dto';
|
|
3
5
|
export declare class RemoteOperationsController {
|
|
4
6
|
private readonly operations;
|
|
5
7
|
constructor(operations: RemoteOperationsService);
|
|
@@ -8,6 +10,9 @@ export declare class RemoteOperationsController {
|
|
|
8
10
|
updateLogins(id: string, body: unknown): Promise<RemoteOperation>;
|
|
9
11
|
attach(id: string, body: unknown): Promise<RemoteOperation>;
|
|
10
12
|
detach(id: string, body: unknown): Promise<RemoteOperation>;
|
|
13
|
+
forceSync(id: string, body: unknown): Promise<RemoteOperation>;
|
|
14
|
+
gitOwner(id: string, body: unknown, reply: FastifyReply): Promise<GitOwnerStartResult>;
|
|
15
|
+
gitOwnerStatus(query: unknown): Promise<GitOwnerStatus>;
|
|
11
16
|
list(query: unknown): Promise<{
|
|
12
17
|
items: RemoteOperation[];
|
|
13
18
|
}>;
|
|
@@ -16,9 +16,11 @@ exports.RemoteOperationsController = void 0;
|
|
|
16
16
|
const remote_operation_dto_1 = require("./remote-operation.dto");
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
18
|
const zod_1 = require("zod");
|
|
19
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
19
20
|
const logger_1 = require("../../../common/logging/logger");
|
|
20
21
|
const remote_operation_dto_2 = require("./remote-operation.dto");
|
|
21
22
|
const remote_operations_service_1 = require("./remote-operations.service");
|
|
23
|
+
const git_owner_dto_1 = require("./git-owner.dto");
|
|
22
24
|
const logger = (0, logger_1.createLogger)('RemoteOperationsController');
|
|
23
25
|
const RemoteIdSchema = zod_1.z.string().uuid();
|
|
24
26
|
let RemoteOperationsController = class RemoteOperationsController {
|
|
@@ -51,6 +53,20 @@ let RemoteOperationsController = class RemoteOperationsController {
|
|
|
51
53
|
logger.info({ remoteId, projectId, force, dockerCopyBack: dockerCopyBack !== undefined }, 'POST /api/remotes/:id/detach');
|
|
52
54
|
return this.operations.detach(remoteId, projectId, force, dockerCopyBack);
|
|
53
55
|
}
|
|
56
|
+
forceSync(id, body) {
|
|
57
|
+
const { projectId, source } = remote_operation_dto_2.ForceSyncProjectSchema.parse(body);
|
|
58
|
+
return this.operations.forceSync(RemoteIdSchema.parse(id), projectId, source);
|
|
59
|
+
}
|
|
60
|
+
async gitOwner(id, body, reply) {
|
|
61
|
+
const { projectId, owner, force } = git_owner_dto_1.GitOwnerProjectSchema.parse(body);
|
|
62
|
+
const result = await this.operations.gitOwner(RemoteIdSchema.parse(id), projectId, owner, force);
|
|
63
|
+
if ('changed' in result)
|
|
64
|
+
reply.code(200);
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
gitOwnerStatus(query) {
|
|
68
|
+
return this.operations.gitOwnerStatus(git_owner_dto_1.GitOwnerStatusQuerySchema.parse(query).projectId);
|
|
69
|
+
}
|
|
54
70
|
async list(query) {
|
|
55
71
|
const filter = remote_operation_dto_2.ListRemoteOperationsQuerySchema.parse(query);
|
|
56
72
|
return { items: await this.operations.list(filter) };
|
|
@@ -115,6 +131,45 @@ __decorate([
|
|
|
115
131
|
__metadata("design:paramtypes", [String, Object]),
|
|
116
132
|
__metadata("design:returntype", Promise)
|
|
117
133
|
], RemoteOperationsController.prototype, "detach", null);
|
|
134
|
+
__decorate([
|
|
135
|
+
(0, common_1.Post)(':id/force-sync'),
|
|
136
|
+
(0, common_1.HttpCode)(202),
|
|
137
|
+
(0, swagger_1.ApiOperation)({ summary: "Rebuild project file sync from this PC's or the VM's files" }),
|
|
138
|
+
(0, swagger_1.ApiResponse)({ status: 202, description: 'Persisted force sync operation' }),
|
|
139
|
+
(0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid remote, project or source' }),
|
|
140
|
+
(0, swagger_1.ApiResponse)({
|
|
141
|
+
status: 409,
|
|
142
|
+
description: 'Force sync is unavailable or another operation is open',
|
|
143
|
+
}),
|
|
144
|
+
__param(0, (0, common_1.Param)('id')),
|
|
145
|
+
__param(1, (0, common_1.Body)()),
|
|
146
|
+
__metadata("design:type", Function),
|
|
147
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
148
|
+
__metadata("design:returntype", Promise)
|
|
149
|
+
], RemoteOperationsController.prototype, "forceSync", null);
|
|
150
|
+
__decorate([
|
|
151
|
+
(0, common_1.Post)(':id/git-owner'),
|
|
152
|
+
(0, common_1.HttpCode)(202),
|
|
153
|
+
(0, swagger_1.ApiOperation)({ summary: 'Move Git control between this PC and its connected VM' }),
|
|
154
|
+
(0, swagger_1.ApiResponse)({ status: 202, description: 'Persisted Git switch operation' }),
|
|
155
|
+
(0, swagger_1.ApiResponse)({ status: 200, description: 'Git already belongs to the requested side' }),
|
|
156
|
+
(0, swagger_1.ApiResponse)({ status: 409, description: 'Switch refused before saving an operation' }),
|
|
157
|
+
__param(0, (0, common_1.Param)('id')),
|
|
158
|
+
__param(1, (0, common_1.Body)()),
|
|
159
|
+
__param(2, (0, common_1.Res)({ passthrough: true })),
|
|
160
|
+
__metadata("design:type", Function),
|
|
161
|
+
__metadata("design:paramtypes", [String, Object, Object]),
|
|
162
|
+
__metadata("design:returntype", Promise)
|
|
163
|
+
], RemoteOperationsController.prototype, "gitOwner", null);
|
|
164
|
+
__decorate([
|
|
165
|
+
(0, common_1.Get)('git-owner'),
|
|
166
|
+
(0, swagger_1.ApiOperation)({ summary: 'Read current Git control and any unfinished switch' }),
|
|
167
|
+
(0, swagger_1.ApiResponse)({ status: 200, description: 'Current Git owner and recovery status' }),
|
|
168
|
+
__param(0, (0, common_1.Query)()),
|
|
169
|
+
__metadata("design:type", Function),
|
|
170
|
+
__metadata("design:paramtypes", [Object]),
|
|
171
|
+
__metadata("design:returntype", Promise)
|
|
172
|
+
], RemoteOperationsController.prototype, "gitOwnerStatus", null);
|
|
118
173
|
__decorate([
|
|
119
174
|
(0, common_1.Get)('operations'),
|
|
120
175
|
__param(0, (0, common_1.Query)()),
|
|
@@ -148,6 +203,7 @@ __decorate([
|
|
|
148
203
|
], RemoteOperationsController.prototype, "cancel", null);
|
|
149
204
|
exports.RemoteOperationsController = RemoteOperationsController = __decorate([
|
|
150
205
|
(0, common_1.Controller)('api/remotes'),
|
|
206
|
+
(0, swagger_1.ApiTags)('Remote operations'),
|
|
151
207
|
__metadata("design:paramtypes", [remote_operations_service_1.RemoteOperationsService])
|
|
152
208
|
], RemoteOperationsController);
|
|
153
209
|
//# sourceMappingURL=remote-operations.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-operations.controller.js","sourceRoot":"","sources":["../../../../src/modules/remotes/operations/remote-operations.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iEAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"remote-operations.controller.js","sourceRoot":"","sources":["../../../../src/modules/remotes/operations/remote-operations.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,13 @@ import type { UpdateLoginsData, ClaimRemoteData, InstallHostData, ProviderAuthSe
|
|
|
11
11
|
import { RemoteOperationRunner } from './remote-operation.runner';
|
|
12
12
|
import { InstallHostOperation } from './install-host.operation';
|
|
13
13
|
import { SshKeyService } from '../host-install/ssh-key.service';
|
|
14
|
+
import { ConnectChoicesStore } from '../connect-choices.store';
|
|
15
|
+
import { RemoteFileSyncService } from '../sync/remote-file-sync.service';
|
|
16
|
+
import type { ForceSyncSource } from './remote-operation.dto';
|
|
17
|
+
import { GitOwnerOperation } from './git-owner.operation';
|
|
18
|
+
import { GitOwnerStore, type GitOwner } from '../git-owner.store';
|
|
19
|
+
import { RemoteHostClient } from './remote-host.client';
|
|
20
|
+
import { type GitOwnerStartResult, type GitOwnerStatus } from './git-owner.dto';
|
|
14
21
|
export declare class RemoteOperationsService {
|
|
15
22
|
private readonly storage;
|
|
16
23
|
private readonly runner;
|
|
@@ -20,7 +27,14 @@ export declare class RemoteOperationsService {
|
|
|
20
27
|
private readonly installHostOperation;
|
|
21
28
|
private readonly sshKeys;
|
|
22
29
|
private readonly health;
|
|
23
|
-
|
|
30
|
+
private readonly choices;
|
|
31
|
+
private readonly files;
|
|
32
|
+
private readonly gitSwitch;
|
|
33
|
+
private readonly gitOwners;
|
|
34
|
+
private readonly host;
|
|
35
|
+
constructor(storage: StorageService, runner: RemoteOperationRunner, remotes: RemotesService, vault: ProviderAuthVaultService, providers: ProviderAdapterFactory, installHostOperation: InstallHostOperation, sshKeys: SshKeyService, health: RemoteHealthPort, choices: ConnectChoicesStore, files: RemoteFileSyncService, gitSwitch: GitOwnerOperation, gitOwners: GitOwnerStore, host: RemoteHostClient);
|
|
36
|
+
gitOwner(remoteId: string, projectId: string, owner: GitOwner, force: boolean): Promise<GitOwnerStartResult>;
|
|
37
|
+
gitOwnerStatus(projectId: string): Promise<GitOwnerStatus>;
|
|
24
38
|
claim(input: ClaimRemoteData): Promise<RemoteOperation>;
|
|
25
39
|
installHost(input: InstallHostData): Promise<RemoteOperation>;
|
|
26
40
|
claimDetails(input: {
|
|
@@ -33,6 +47,7 @@ export declare class RemoteOperationsService {
|
|
|
33
47
|
updateHost(remoteId: string, installDocker?: boolean): Promise<RemoteOperation>;
|
|
34
48
|
updateLogins(remoteId: string, input: UpdateLoginsData): Promise<RemoteOperation>;
|
|
35
49
|
attach(remoteId: string, projectId: string, docker?: DockerSelection): Promise<RemoteOperation>;
|
|
50
|
+
forceSync(remoteId: string, projectId: string, source: ForceSyncSource): Promise<RemoteOperation>;
|
|
36
51
|
detach(remoteId: string, projectId: string, force: boolean, dockerCopyBack?: DockerCopyBackRequest): Promise<RemoteOperation>;
|
|
37
52
|
private supersedeOpenOperation;
|
|
38
53
|
list(filter: {
|
|
@@ -32,6 +32,13 @@ const remote_operation_types_1 = require("./remote-operation.types");
|
|
|
32
32
|
const remote_address_1 = require("../remote-address");
|
|
33
33
|
const install_host_operation_1 = require("./install-host.operation");
|
|
34
34
|
const ssh_key_service_1 = require("../host-install/ssh-key.service");
|
|
35
|
+
const connect_choices_store_1 = require("../connect-choices.store");
|
|
36
|
+
const remote_file_sync_service_1 = require("../sync/remote-file-sync.service");
|
|
37
|
+
const git_owner_operation_1 = require("./git-owner.operation");
|
|
38
|
+
const git_owner_store_1 = require("../git-owner.store");
|
|
39
|
+
const remote_host_client_1 = require("./remote-host.client");
|
|
40
|
+
const remote_operation_errors_1 = require("./remote-operation.errors");
|
|
41
|
+
const terminal_activity_service_1 = require("../../terminal/services/terminal-activity.service");
|
|
35
42
|
const logger = (0, logger_1.createLogger)('RemoteOperationsService');
|
|
36
43
|
let RemoteOperationsService = class RemoteOperationsService {
|
|
37
44
|
storage;
|
|
@@ -42,7 +49,12 @@ let RemoteOperationsService = class RemoteOperationsService {
|
|
|
42
49
|
installHostOperation;
|
|
43
50
|
sshKeys;
|
|
44
51
|
health;
|
|
45
|
-
|
|
52
|
+
choices;
|
|
53
|
+
files;
|
|
54
|
+
gitSwitch;
|
|
55
|
+
gitOwners;
|
|
56
|
+
host;
|
|
57
|
+
constructor(storage, runner, remotes, vault, providers, installHostOperation, sshKeys, health, choices, files, gitSwitch, gitOwners, host) {
|
|
46
58
|
this.storage = storage;
|
|
47
59
|
this.runner = runner;
|
|
48
60
|
this.remotes = remotes;
|
|
@@ -51,6 +63,112 @@ let RemoteOperationsService = class RemoteOperationsService {
|
|
|
51
63
|
this.installHostOperation = installHostOperation;
|
|
52
64
|
this.sshKeys = sshKeys;
|
|
53
65
|
this.health = health;
|
|
66
|
+
this.choices = choices;
|
|
67
|
+
this.files = files;
|
|
68
|
+
this.gitSwitch = gitSwitch;
|
|
69
|
+
this.gitOwners = gitOwners;
|
|
70
|
+
this.host = host;
|
|
71
|
+
}
|
|
72
|
+
async gitOwner(remoteId, projectId, owner, force) {
|
|
73
|
+
(0, remote_address_1.requireRemoteAddress)(await this.storage.getRemote(remoteId));
|
|
74
|
+
await this.assertNoOpenVmOperation(remoteId);
|
|
75
|
+
await this.storage.getProject(projectId);
|
|
76
|
+
if (owner === 'vm' && force)
|
|
77
|
+
throw new remote_operation_errors_1.RemoteOperationStepRefusedError('GIT_RETURN_FORCE_UNSUPPORTED', 'Return does not support --force. Run `devchain git return`.');
|
|
78
|
+
const [open] = await this.storage.listRemoteOperations({
|
|
79
|
+
projectId,
|
|
80
|
+
states: ['running', 'failed'],
|
|
81
|
+
limit: 1,
|
|
82
|
+
});
|
|
83
|
+
let cancelledOperationId;
|
|
84
|
+
if (open) {
|
|
85
|
+
if (open.kind !== 'git_owner' || open.remoteId !== remoteId)
|
|
86
|
+
throw inProgress(open, 'Another operation is open for this project.');
|
|
87
|
+
if (open.state === 'running')
|
|
88
|
+
return open;
|
|
89
|
+
await this.runner.whenIdle(open.id);
|
|
90
|
+
const current = await this.storage.getRemoteOperation(open.id);
|
|
91
|
+
if (current.state === 'running')
|
|
92
|
+
return current;
|
|
93
|
+
if (current.state === 'failed') {
|
|
94
|
+
if (current.details.owner === owner && (current.details.force === true) === force)
|
|
95
|
+
return this.retry(current.id);
|
|
96
|
+
await this.runner.cancel(current.id);
|
|
97
|
+
cancelledOperationId = current.id;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const binding = await this.storage.getRemoteProjectBinding(projectId);
|
|
101
|
+
if (binding?.state !== 'remote' || binding.remoteId !== remoteId)
|
|
102
|
+
throw new remote_operation_errors_1.RemoteOperationStepRefusedError('GIT_PROJECT_NOT_CONNECTED', 'The project must be connected to this VM to move Git.', { projectId, remoteId });
|
|
103
|
+
if (this.gitOwners.get(projectId) === owner)
|
|
104
|
+
return { owner, changed: false, ...(cancelledOperationId && { cancelledOperationId }) };
|
|
105
|
+
await this.gitSwitch.validate(remoteId, projectId);
|
|
106
|
+
const unknownAgents = [];
|
|
107
|
+
if (owner === 'home' && !force) {
|
|
108
|
+
let busy;
|
|
109
|
+
try {
|
|
110
|
+
const sessions = await this.host.listSessions(remoteId, projectId);
|
|
111
|
+
busy = [];
|
|
112
|
+
for (const session of sessions) {
|
|
113
|
+
if (session.status !== 'running' || !session.agentId || session.activityState === 'idle')
|
|
114
|
+
continue;
|
|
115
|
+
const agent = await this.storage.getAgent(session.agentId);
|
|
116
|
+
const starting = session.activityState !== 'busy' &&
|
|
117
|
+
Date.now() - Date.parse(session.startedAt) < terminal_activity_service_1.TURN_FALLBACK_IDLE_MS;
|
|
118
|
+
const state = session.activityState === 'busy' ? 'busy' : starting ? 'starting' : 'unknown';
|
|
119
|
+
const info = {
|
|
120
|
+
agentName: agent.name,
|
|
121
|
+
state,
|
|
122
|
+
since: state === 'busy' ? (session.busySince ?? session.startedAt) : session.startedAt,
|
|
123
|
+
};
|
|
124
|
+
if (state === 'unknown')
|
|
125
|
+
unknownAgents.push(info);
|
|
126
|
+
else
|
|
127
|
+
busy.push(info);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
logger.warn({ error, projectId, remoteId }, 'VM agent sessions could not be checked');
|
|
132
|
+
throw new remote_operation_errors_1.RemoteOperationStepRefusedError('GIT_TAKE_AGENTS_UNKNOWN', 'Agent sessions on the VM could not be checked. Try again, or use `devchain git take --force`.');
|
|
133
|
+
}
|
|
134
|
+
if (busy.length)
|
|
135
|
+
throw new remote_operation_errors_1.RemoteOperationStepRefusedError('GIT_TAKE_AGENTS_BUSY', 'Agents on the VM are busy or starting. Wait for them to finish, or use `devchain git take --force`.', { agents: busy });
|
|
136
|
+
}
|
|
137
|
+
return this.runner.start({
|
|
138
|
+
kind: 'git_owner',
|
|
139
|
+
remoteId,
|
|
140
|
+
projectId,
|
|
141
|
+
details: { owner, force, unknownAgents },
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
async gitOwnerStatus(projectId) {
|
|
145
|
+
await this.storage.getProject(projectId);
|
|
146
|
+
const binding = await this.storage.getRemoteProjectBinding(projectId);
|
|
147
|
+
const [operation] = await this.storage.listRemoteOperations({
|
|
148
|
+
projectId,
|
|
149
|
+
kinds: ['git_owner'],
|
|
150
|
+
states: ['running', 'failed'],
|
|
151
|
+
limit: 1,
|
|
152
|
+
});
|
|
153
|
+
const remote = binding ? await this.storage.getRemote(binding.remoteId) : null;
|
|
154
|
+
const step = operation?.steps.find((item) => item.state === 'running' || item.state === 'failed') ??
|
|
155
|
+
operation?.steps.find((item) => item.state === 'pending');
|
|
156
|
+
return {
|
|
157
|
+
connected: binding?.state === 'remote',
|
|
158
|
+
remoteId: binding?.remoteId ?? null,
|
|
159
|
+
remoteName: remote?.name ?? null,
|
|
160
|
+
owner: binding ? this.gitOwners.get(projectId) : 'home',
|
|
161
|
+
open: operation
|
|
162
|
+
? {
|
|
163
|
+
operationId: operation.id,
|
|
164
|
+
owner: operation.details.owner,
|
|
165
|
+
force: operation.details.force === true,
|
|
166
|
+
state: operation.state === 'failed' ? 'failed' : 'running',
|
|
167
|
+
step: step?.id ?? null,
|
|
168
|
+
error: step?.error ?? null,
|
|
169
|
+
}
|
|
170
|
+
: null,
|
|
171
|
+
};
|
|
54
172
|
}
|
|
55
173
|
async claim(input) {
|
|
56
174
|
const port = input.port ?? (0, env_config_1.getEnvConfig)().PORT;
|
|
@@ -143,6 +261,7 @@ let RemoteOperationsService = class RemoteOperationsService {
|
|
|
143
261
|
userName: identity.user,
|
|
144
262
|
homePath: identity.homePath,
|
|
145
263
|
...(identity.uid !== null ? { uid: identity.uid } : {}),
|
|
264
|
+
...(identity.gid !== null ? { gid: identity.gid } : {}),
|
|
146
265
|
version: (0, app_version_1.getAppVersion)(),
|
|
147
266
|
port: input.port ?? (0, env_config_1.getEnvConfig)().PORT,
|
|
148
267
|
providerAuth,
|
|
@@ -227,11 +346,28 @@ let RemoteOperationsService = class RemoteOperationsService {
|
|
|
227
346
|
(0, remote_address_1.requireRemoteAddress)(await this.storage.getRemote(remoteId));
|
|
228
347
|
await this.assertNoOpenVmOperation(remoteId);
|
|
229
348
|
await this.storage.getProject(projectId);
|
|
230
|
-
|
|
349
|
+
const includeDocker = Boolean(docker?.items.length);
|
|
350
|
+
const operation = await this.runner.start({
|
|
231
351
|
kind: 'attach',
|
|
232
352
|
remoteId,
|
|
233
353
|
projectId,
|
|
234
|
-
details:
|
|
354
|
+
details: includeDocker ? { dockerSelection: docker } : {},
|
|
355
|
+
});
|
|
356
|
+
this.choices.recordAttach(projectId, remoteId, includeDocker);
|
|
357
|
+
return operation;
|
|
358
|
+
}
|
|
359
|
+
async forceSync(remoteId, projectId, source) {
|
|
360
|
+
(0, remote_address_1.requireRemoteAddress)(await this.storage.getRemote(remoteId));
|
|
361
|
+
await this.assertNoOpenVmOperation(remoteId);
|
|
362
|
+
await this.storage.getProject(projectId);
|
|
363
|
+
const offer = await this.files.forceSyncOffer(projectId);
|
|
364
|
+
if (!offer.offered)
|
|
365
|
+
throw new error_types_1.ConflictError(offer.reason ?? 'Force sync is not available for this project.');
|
|
366
|
+
return this.runner.start({
|
|
367
|
+
kind: 'force_sync',
|
|
368
|
+
remoteId,
|
|
369
|
+
projectId,
|
|
370
|
+
details: { source, forceSync: { source } },
|
|
235
371
|
});
|
|
236
372
|
}
|
|
237
373
|
async detach(remoteId, projectId, force, dockerCopyBack) {
|
|
@@ -274,7 +410,13 @@ let RemoteOperationsService = class RemoteOperationsService {
|
|
|
274
410
|
if (current.kind === 'detach' && !force) {
|
|
275
411
|
throw inProgress(current, 'A disconnect failed; retry it or force a new disconnect.');
|
|
276
412
|
}
|
|
277
|
-
if (current.kind
|
|
413
|
+
if ((current.kind === 'force_sync' || current.kind === 'git_owner') && !force) {
|
|
414
|
+
throw inProgress(current, `${current.kind === 'git_owner' ? 'The Git switch' : 'Force sync'} failed; retry it, or force a disconnect.`);
|
|
415
|
+
}
|
|
416
|
+
if (current.kind !== 'attach' &&
|
|
417
|
+
current.kind !== 'detach' &&
|
|
418
|
+
current.kind !== 'force_sync' &&
|
|
419
|
+
current.kind !== 'git_owner') {
|
|
278
420
|
throw inProgress(current, 'Another operation is open for this project.');
|
|
279
421
|
}
|
|
280
422
|
return this.runner.supersede(current, { supersededAt: new Date().toISOString() });
|
|
@@ -291,6 +433,10 @@ let RemoteOperationsService = class RemoteOperationsService {
|
|
|
291
433
|
}
|
|
292
434
|
async retry(id, providerAuth, ssh) {
|
|
293
435
|
const operation = await this.storage.getRemoteOperation(id);
|
|
436
|
+
if (operation.kind === 'git_owner' && operation.state === 'failed') {
|
|
437
|
+
await this.runner.whenIdle(id);
|
|
438
|
+
await this.gitSwitch.validate(operation.remoteId, operation.projectId, operation);
|
|
439
|
+
}
|
|
294
440
|
const mismatch = (0, home_identity_1.claimIdentityMismatch)(operation.kind, operation.details);
|
|
295
441
|
if (mismatch) {
|
|
296
442
|
throw new error_types_1.ValidationError(mismatch, {
|
|
@@ -444,7 +590,11 @@ exports.RemoteOperationsService = RemoteOperationsService = __decorate([
|
|
|
444
590
|
provider_auth_vault_service_1.ProviderAuthVaultService,
|
|
445
591
|
provider_adapter_factory_1.ProviderAdapterFactory,
|
|
446
592
|
install_host_operation_1.InstallHostOperation,
|
|
447
|
-
ssh_key_service_1.SshKeyService, Object
|
|
593
|
+
ssh_key_service_1.SshKeyService, Object, connect_choices_store_1.ConnectChoicesStore,
|
|
594
|
+
remote_file_sync_service_1.RemoteFileSyncService,
|
|
595
|
+
git_owner_operation_1.GitOwnerOperation,
|
|
596
|
+
git_owner_store_1.GitOwnerStore,
|
|
597
|
+
remote_host_client_1.RemoteHostClient])
|
|
448
598
|
], RemoteOperationsService);
|
|
449
599
|
function portOf(baseUrl) {
|
|
450
600
|
const url = new URL(baseUrl);
|