devchain-cli 0.25.0 → 0.26.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 +1 -1
- package/dist/build-info.json +2 -2
- package/dist/cli.js +34 -76
- package/dist/drizzle/0094_agent_worktree_lanes.sql +20 -0
- package/dist/drizzle/meta/0094_snapshot.json +7810 -0
- package/dist/drizzle/meta/_journal.json +7 -0
- package/dist/host-cli-pins.json +1 -1
- package/dist/host-install/devchain-host-bootstrap.tgz +0 -0
- package/dist/host-install/pins.json +2 -1
- package/dist/lib/git-owner.js +30 -205
- package/dist/lib/git-shim.js +417 -0
- package/dist/lib/git-supervisor.js +289 -0
- package/dist/lib/host-api-key.js +75 -19
- package/dist/lib/local-api.js +4 -2
- package/dist/lib/local-app-process.js +77 -0
- package/dist/node_modules/@devchain/shared/index.d.ts +1 -0
- package/dist/node_modules/@devchain/shared/index.d.ts.map +1 -1
- package/dist/node_modules/@devchain/shared/index.js +1 -0
- package/dist/node_modules/@devchain/shared/index.js.map +1 -1
- package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.d.ts +510 -5
- 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 +55 -0
- package/dist/node_modules/@devchain/shared/mobile-rpc-contract/index.js.map +1 -1
- package/dist/node_modules/@devchain/shared/schemas/index.d.ts +1 -0
- package/dist/node_modules/@devchain/shared/schemas/index.d.ts.map +1 -1
- package/dist/node_modules/@devchain/shared/schemas/index.js +1 -0
- package/dist/node_modules/@devchain/shared/schemas/index.js.map +1 -1
- package/dist/node_modules/@devchain/shared/schemas/provider-clis.js +1 -1
- package/dist/node_modules/@devchain/shared/schemas/provider-clis.js.map +1 -1
- package/dist/node_modules/@devchain/shared/schemas/provider-usage.d.ts +350 -0
- package/dist/node_modules/@devchain/shared/schemas/provider-usage.d.ts.map +1 -0
- package/dist/node_modules/@devchain/shared/schemas/provider-usage.js +71 -0
- package/dist/node_modules/@devchain/shared/schemas/provider-usage.js.map +1 -0
- package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
- package/dist/server/app.module.js +4 -0
- package/dist/server/app.module.js.map +1 -1
- 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/config/vm-destroy-fence.d.ts +18 -0
- package/dist/server/common/config/vm-destroy-fence.js +38 -0
- package/dist/server/common/config/vm-destroy-fence.js.map +1 -0
- package/dist/server/common/errors/error-types.d.ts +3 -0
- package/dist/server/common/errors/error-types.js +10 -1
- package/dist/server/common/errors/error-types.js.map +1 -1
- package/dist/server/common/git-shim-paths.d.ts +4 -0
- package/dist/server/common/git-shim-paths.js +24 -0
- package/dist/server/common/git-shim-paths.js.map +1 -0
- package/dist/server/common/test/fake-bootstrap.server.d.ts +5 -0
- package/dist/server/common/test/fake-bootstrap.server.js +12 -3
- package/dist/server/common/test/fake-bootstrap.server.js.map +1 -1
- package/dist/server/common/test/shared-vm.stub.d.ts +2 -0
- package/dist/server/common/test/shared-vm.stub.js +13 -0
- package/dist/server/common/test/shared-vm.stub.js.map +1 -0
- package/dist/server/main.js +2 -0
- package/dist/server/main.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js +2 -0
- package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.d.ts +5 -1
- package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js +11 -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 +506 -1
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-contract.generated.js +56 -1
- 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 +1 -0
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js +1 -0
- package/dist/server/modules/cloud-tunnel/services/mobile-rpc-workspace-access.service.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +1 -0
- package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
- package/dist/server/modules/events/catalog/broadcast-registry.js +8 -0
- package/dist/server/modules/events/catalog/broadcast-registry.js.map +1 -1
- package/dist/server/modules/events/catalog/index.d.ts +18 -11
- package/dist/server/modules/events/catalog/index.js +3 -0
- package/dist/server/modules/events/catalog/index.js.map +1 -1
- package/dist/server/modules/events/catalog/provider-usage.updated.d.ts +12 -0
- package/dist/server/modules/events/catalog/provider-usage.updated.js +13 -0
- package/dist/server/modules/events/catalog/provider-usage.updated.js.map +1 -0
- package/dist/server/modules/events/catalog/review.comment.created.d.ts +2 -2
- package/dist/server/modules/events/catalog/review.created.d.ts +8 -8
- package/dist/server/modules/file-sync/file-sync.dto.d.ts +18 -0
- package/dist/server/modules/file-sync/file-sync.dto.js +12 -2
- package/dist/server/modules/file-sync/file-sync.dto.js.map +1 -1
- package/dist/server/modules/file-sync/file-sync.module.js +17 -2
- package/dist/server/modules/file-sync/file-sync.module.js.map +1 -1
- package/dist/server/modules/file-sync/file-sync.service.d.ts +4 -0
- package/dist/server/modules/file-sync/file-sync.service.js +35 -0
- package/dist/server/modules/file-sync/file-sync.service.js.map +1 -1
- package/dist/server/modules/file-sync/git-guard.dto.d.ts +0 -21
- package/dist/server/modules/file-sync/git-guard.dto.js +1 -7
- package/dist/server/modules/file-sync/git-guard.dto.js.map +1 -1
- package/dist/server/modules/file-sync/home-git-guard.service.d.ts +3 -0
- package/dist/server/modules/file-sync/home-git-guard.service.js +128 -22
- 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 +3 -1
- package/dist/server/modules/file-sync/host-git-guard.controller.js +11 -5
- package/dist/server/modules/file-sync/host-git-guard.controller.js.map +1 -1
- package/dist/server/modules/file-sync/host-sync.controller.d.ts +11 -7
- package/dist/server/modules/file-sync/host-sync.controller.js +53 -20
- package/dist/server/modules/file-sync/host-sync.controller.js.map +1 -1
- package/dist/server/modules/file-sync/syncthing-launcher.d.ts +1 -0
- package/dist/server/modules/file-sync/syncthing-launcher.js +2 -1
- package/dist/server/modules/file-sync/syncthing-launcher.js.map +1 -1
- package/dist/server/modules/file-sync/testing/fake-file-sync.service.d.ts +2 -1
- package/dist/server/modules/file-sync/testing/fake-file-sync.service.js +6 -0
- package/dist/server/modules/file-sync/testing/fake-file-sync.service.js.map +1 -1
- package/dist/server/modules/git/dtos/git.dto.d.ts +4 -4
- package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +95 -1
- package/dist/server/modules/mcp/dtos/mcp.dto.js +45 -2
- package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
- package/dist/server/modules/mcp/mcp-full.module.js +2 -0
- package/dist/server/modules/mcp/mcp-full.module.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/epic-context.d.ts +2 -2
- package/dist/server/modules/mcp/services/handlers/epic-tools.js +16 -0
- package/dist/server/modules/mcp/services/handlers/epic-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/teams-tools.d.ts +1 -0
- package/dist/server/modules/mcp/services/handlers/teams-tools.js +51 -0
- package/dist/server/modules/mcp/services/handlers/teams-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/worktree-context.d.ts +6 -0
- package/dist/server/modules/mcp/services/handlers/worktree-context.js +3 -0
- package/dist/server/modules/mcp/services/handlers/worktree-context.js.map +1 -0
- package/dist/server/modules/mcp/services/handlers/worktree-tools.d.ts +7 -0
- package/dist/server/modules/mcp/services/handlers/worktree-tools.js +77 -0
- package/dist/server/modules/mcp/services/handlers/worktree-tools.js.map +1 -0
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +2 -1
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +6 -2
- package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +4 -2
- package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js +2 -2
- package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/index.js +2 -0
- package/dist/server/modules/mcp/tool-descriptors/index.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js +2 -0
- package/dist/server/modules/mcp/tool-descriptors/runtime-bindings.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/team.bindings.js +1 -0
- package/dist/server/modules/mcp/tool-descriptors/team.bindings.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/team.metadata.js +33 -0
- package/dist/server/modules/mcp/tool-descriptors/team.metadata.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/worktree.bindings.d.ts +1 -0
- package/dist/server/modules/mcp/tool-descriptors/worktree.bindings.js +20 -0
- package/dist/server/modules/mcp/tool-descriptors/worktree.bindings.js.map +1 -0
- package/dist/server/modules/mcp/tool-descriptors/worktree.metadata.d.ts +2 -0
- package/dist/server/modules/mcp/tool-descriptors/worktree.metadata.js +105 -0
- package/dist/server/modules/mcp/tool-descriptors/worktree.metadata.js.map +1 -0
- package/dist/server/modules/provider-auth/opencode-credential-family.v2.d.ts +4 -0
- package/dist/server/modules/provider-auth/opencode-credential-family.v2.js +41 -0
- package/dist/server/modules/provider-auth/opencode-credential-family.v2.js.map +1 -0
- package/dist/server/modules/provider-auth/opencode-credentials.d.ts +25 -0
- package/dist/server/modules/provider-auth/opencode-credentials.js +102 -0
- package/dist/server/modules/provider-auth/opencode-credentials.js.map +1 -0
- package/dist/server/modules/provider-auth/opencode-pc-logins.service.d.ts +11 -0
- package/dist/server/modules/provider-auth/opencode-pc-logins.service.js +62 -0
- package/dist/server/modules/provider-auth/opencode-pc-logins.service.js.map +1 -0
- package/dist/server/modules/provider-auth/opencode-pc-logins.v1.d.ts +1 -0
- package/dist/server/modules/provider-auth/opencode-pc-logins.v1.js +25 -0
- package/dist/server/modules/provider-auth/opencode-pc-logins.v1.js.map +1 -0
- package/dist/server/modules/provider-auth/opencode-pc-logins.v2.d.ts +3 -0
- package/dist/server/modules/provider-auth/opencode-pc-logins.v2.js +25 -0
- package/dist/server/modules/provider-auth/opencode-pc-logins.v2.js.map +1 -0
- package/dist/server/modules/provider-auth/provider-auth-adapters.d.ts +4 -1
- package/dist/server/modules/provider-auth/provider-auth-adapters.js +65 -33
- package/dist/server/modules/provider-auth/provider-auth-adapters.js.map +1 -1
- package/dist/server/modules/provider-auth/provider-auth-generator.service.d.ts +3 -1
- package/dist/server/modules/provider-auth/provider-auth-generator.service.js +12 -6
- package/dist/server/modules/provider-auth/provider-auth-generator.service.js.map +1 -1
- package/dist/server/modules/provider-auth/provider-auth-vault.service.d.ts +3 -2
- package/dist/server/modules/provider-auth/provider-auth-vault.service.js +8 -25
- package/dist/server/modules/provider-auth/provider-auth-vault.service.js.map +1 -1
- package/dist/server/modules/provider-auth/provider-auth-watcher.service.d.ts +5 -1
- package/dist/server/modules/provider-auth/provider-auth-watcher.service.js +32 -1
- package/dist/server/modules/provider-auth/provider-auth-watcher.service.js.map +1 -1
- package/dist/server/modules/provider-auth/provider-auth.module.js +4 -0
- package/dist/server/modules/provider-auth/provider-auth.module.js.map +1 -1
- package/dist/server/modules/provider-usage/checkers/agy.checker.d.ts +15 -0
- package/dist/server/modules/provider-usage/checkers/agy.checker.js +129 -0
- package/dist/server/modules/provider-usage/checkers/agy.checker.js.map +1 -0
- package/dist/server/modules/provider-usage/checkers/checker-helpers.d.ts +4 -0
- package/dist/server/modules/provider-usage/checkers/checker-helpers.js +12 -0
- package/dist/server/modules/provider-usage/checkers/checker-helpers.js.map +1 -0
- package/dist/server/modules/provider-usage/checkers/claude-login.checker.d.ts +10 -0
- package/dist/server/modules/provider-usage/checkers/claude-login.checker.js +92 -0
- package/dist/server/modules/provider-usage/checkers/claude-login.checker.js.map +1 -0
- package/dist/server/modules/provider-usage/checkers/claude-token.checker.d.ts +5 -0
- package/dist/server/modules/provider-usage/checkers/claude-token.checker.js +80 -0
- package/dist/server/modules/provider-usage/checkers/claude-token.checker.js.map +1 -0
- package/dist/server/modules/provider-usage/checkers/claude-usage-parser.d.ts +12 -0
- package/dist/server/modules/provider-usage/checkers/claude-usage-parser.js +113 -0
- package/dist/server/modules/provider-usage/checkers/claude-usage-parser.js.map +1 -0
- package/dist/server/modules/provider-usage/checkers/codex.checker.d.ts +7 -0
- package/dist/server/modules/provider-usage/checkers/codex.checker.js +159 -0
- package/dist/server/modules/provider-usage/checkers/codex.checker.js.map +1 -0
- package/dist/server/modules/provider-usage/checkers/private-cwd.d.ts +1 -0
- package/dist/server/modules/provider-usage/checkers/private-cwd.js +8 -0
- package/dist/server/modules/provider-usage/checkers/private-cwd.js.map +1 -0
- package/dist/server/modules/provider-usage/controllers/provider-usage.controller.d.ts +7 -0
- package/dist/server/modules/provider-usage/controllers/provider-usage.controller.js +51 -0
- package/dist/server/modules/provider-usage/controllers/provider-usage.controller.js.map +1 -0
- package/dist/server/modules/provider-usage/provider-usage.module.d.ts +2 -0
- package/dist/server/modules/provider-usage/provider-usage.module.js +58 -0
- package/dist/server/modules/provider-usage/provider-usage.module.js.map +1 -0
- package/dist/server/modules/provider-usage/provider-usage.types.d.ts +26 -0
- package/dist/server/modules/provider-usage/provider-usage.types.js +5 -0
- package/dist/server/modules/provider-usage/provider-usage.types.js.map +1 -0
- package/dist/server/modules/provider-usage/services/provider-usage-accounts.d.ts +5 -0
- package/dist/server/modules/provider-usage/services/provider-usage-accounts.js +94 -0
- package/dist/server/modules/provider-usage/services/provider-usage-accounts.js.map +1 -0
- package/dist/server/modules/provider-usage/services/provider-usage-accounts.service.d.ts +23 -0
- package/dist/server/modules/provider-usage/services/provider-usage-accounts.service.js +81 -0
- package/dist/server/modules/provider-usage/services/provider-usage-accounts.service.js.map +1 -0
- package/dist/server/modules/provider-usage/services/provider-usage.service.d.ts +37 -0
- package/dist/server/modules/provider-usage/services/provider-usage.service.js +262 -0
- package/dist/server/modules/provider-usage/services/provider-usage.service.js.map +1 -0
- package/dist/server/modules/providers/adapters/capabilities/index.d.ts +2 -2
- package/dist/server/modules/providers/adapters/capabilities/index.js +2 -1
- package/dist/server/modules/providers/adapters/capabilities/index.js.map +1 -1
- package/dist/server/modules/providers/adapters/capabilities/provider-plugin.capability.d.ts +16 -2
- package/dist/server/modules/providers/adapters/capabilities/session-command.capability.d.ts +5 -0
- package/dist/server/modules/providers/adapters/capabilities/session-command.capability.js +3 -0
- package/dist/server/modules/providers/adapters/capabilities/session-command.capability.js.map +1 -0
- package/dist/server/modules/providers/adapters/capabilities/type-guards.d.ts +4 -1
- package/dist/server/modules/providers/adapters/capabilities/type-guards.js +5 -3
- package/dist/server/modules/providers/adapters/capabilities/type-guards.js.map +1 -1
- package/dist/server/modules/providers/adapters/claude.adapter.d.ts +6 -3
- package/dist/server/modules/providers/adapters/claude.adapter.js +7 -2
- package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
- package/dist/server/modules/providers/adapters/codex.adapter.d.ts +6 -6
- package/dist/server/modules/providers/adapters/codex.adapter.js +47 -41
- package/dist/server/modules/providers/adapters/codex.adapter.js.map +1 -1
- package/dist/server/modules/providers/adapters/opencode-cli-version.d.ts +13 -0
- package/dist/server/modules/providers/adapters/opencode-cli-version.js +24 -0
- package/dist/server/modules/providers/adapters/opencode-cli-version.js.map +1 -0
- package/dist/server/modules/providers/adapters/opencode-config-content.d.ts +1 -0
- package/dist/server/modules/providers/adapters/opencode-config-content.js +43 -0
- package/dist/server/modules/providers/adapters/opencode-config-content.js.map +1 -0
- package/dist/server/modules/providers/adapters/opencode-launch.v1.d.ts +4 -0
- package/dist/server/modules/providers/adapters/opencode-launch.v1.js +10 -0
- package/dist/server/modules/providers/adapters/opencode-launch.v1.js.map +1 -0
- package/dist/server/modules/providers/adapters/opencode-launch.v2.d.ts +2 -0
- package/dist/server/modules/providers/adapters/opencode-launch.v2.js +18 -0
- package/dist/server/modules/providers/adapters/opencode-launch.v2.js.map +1 -0
- package/dist/server/modules/providers/adapters/opencode.adapter.d.ts +3 -4
- package/dist/server/modules/providers/adapters/opencode.adapter.js +11 -42
- package/dist/server/modules/providers/adapters/opencode.adapter.js.map +1 -1
- package/dist/server/modules/providers/adapters/plugin-catalog.utils.d.ts +3 -0
- package/dist/server/modules/providers/adapters/plugin-catalog.utils.js +10 -0
- package/dist/server/modules/providers/adapters/plugin-catalog.utils.js.map +1 -1
- package/dist/server/modules/providers/adapters/provider-adapter.interface.d.ts +9 -3
- package/dist/server/modules/providers/adapters/provider-cli-policy.d.ts +3 -0
- package/dist/server/modules/providers/adapters/provider-cli-policy.js +8 -0
- package/dist/server/modules/providers/adapters/provider-cli-policy.js.map +1 -1
- package/dist/server/modules/providers/controllers/provider-models.controller.d.ts +3 -1
- package/dist/server/modules/providers/controllers/provider-models.controller.js +18 -3
- package/dist/server/modules/providers/controllers/provider-models.controller.js.map +1 -1
- package/dist/server/modules/providers/providers.module.js +5 -0
- package/dist/server/modules/providers/providers.module.js.map +1 -1
- package/dist/server/modules/providers/services/codex-app-server.client.d.ts +11 -0
- package/dist/server/modules/providers/services/codex-app-server.client.js +129 -0
- package/dist/server/modules/providers/services/codex-app-server.client.js.map +1 -0
- package/dist/server/modules/providers/services/provider-cli-version-probe.module.d.ts +2 -0
- package/dist/server/modules/providers/services/provider-cli-version-probe.module.js +23 -0
- package/dist/server/modules/providers/services/provider-cli-version-probe.module.js.map +1 -0
- package/dist/server/modules/providers/services/provider-cli-version-probe.service.d.ts +8 -0
- package/dist/server/modules/providers/services/provider-cli-version-probe.service.js +65 -0
- package/dist/server/modules/providers/services/provider-cli-version-probe.service.js.map +1 -0
- package/dist/server/modules/providers/services/provider-plugins.service.d.ts +5 -1
- package/dist/server/modules/providers/services/provider-plugins.service.js +43 -16
- package/dist/server/modules/providers/services/provider-plugins.service.js.map +1 -1
- package/dist/server/modules/providers/utils/codex-config.d.ts +9 -0
- package/dist/server/modules/providers/utils/codex-config.js +34 -16
- package/dist/server/modules/providers/utils/codex-config.js.map +1 -1
- package/dist/server/modules/providers/utils/private-cwd.d.ts +1 -0
- package/dist/server/modules/providers/utils/private-cwd.js +12 -0
- package/dist/server/modules/providers/utils/private-cwd.js.map +1 -0
- package/dist/server/modules/remotes/contract/host-routes.d.ts +2180 -35
- package/dist/server/modules/remotes/contract/host-routes.js +168 -16
- package/dist/server/modules/remotes/contract/host-routes.js.map +1 -1
- package/dist/server/modules/remotes/controllers/home-shared-vm-notices.controller.d.ts +10 -0
- package/dist/server/modules/remotes/controllers/home-shared-vm-notices.controller.js +59 -0
- package/dist/server/modules/remotes/controllers/home-shared-vm-notices.controller.js.map +1 -0
- package/dist/server/modules/remotes/controllers/remotes.controller.js +1 -0
- package/dist/server/modules/remotes/controllers/remotes.controller.js.map +1 -1
- package/dist/server/modules/remotes/dtos/remote-notices.dto.d.ts +4 -0
- package/dist/server/modules/remotes/dtos/remote-notices.dto.js +3 -0
- package/dist/server/modules/remotes/dtos/remote-notices.dto.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/dtos/shared-vm.dto.d.ts +488 -0
- package/dist/server/modules/remotes/dtos/shared-vm.dto.js +60 -0
- package/dist/server/modules/remotes/dtos/shared-vm.dto.js.map +1 -0
- package/dist/server/modules/remotes/git-coordinator/git-checkpoint.d.ts +5 -0
- package/dist/server/modules/remotes/git-coordinator/git-checkpoint.js +95 -0
- package/dist/server/modules/remotes/git-coordinator/git-checkpoint.js.map +1 -0
- package/dist/server/modules/remotes/git-coordinator/git-coordinator-index.service.d.ts +18 -0
- package/dist/server/modules/remotes/git-coordinator/git-coordinator-index.service.js +192 -0
- package/dist/server/modules/remotes/git-coordinator/git-coordinator-index.service.js.map +1 -0
- package/dist/server/modules/remotes/git-coordinator/git-coordinator.dto.d.ts +519 -0
- package/dist/server/modules/remotes/git-coordinator/git-coordinator.dto.js +104 -0
- package/dist/server/modules/remotes/git-coordinator/git-coordinator.dto.js.map +1 -0
- package/dist/server/modules/remotes/git-coordinator/git-coordinator.service.d.ts +66 -0
- package/dist/server/modules/remotes/git-coordinator/git-coordinator.service.js +555 -0
- package/dist/server/modules/remotes/git-coordinator/git-coordinator.service.js.map +1 -0
- package/dist/server/modules/remotes/git-coordinator/git-coordinator.store.d.ts +11 -0
- package/dist/server/modules/remotes/git-coordinator/git-coordinator.store.js +69 -0
- package/dist/server/modules/remotes/git-coordinator/git-coordinator.store.js.map +1 -0
- package/dist/server/modules/remotes/git-coordinator/git-process-identity.d.ts +3 -0
- package/dist/server/modules/remotes/git-coordinator/git-process-identity.js +71 -0
- package/dist/server/modules/remotes/git-coordinator/git-process-identity.js.map +1 -0
- package/dist/server/modules/remotes/git-coordinator/host-git-coordinator.controller.d.ts +19 -0
- package/dist/server/modules/remotes/git-coordinator/host-git-coordinator.controller.js +181 -0
- package/dist/server/modules/remotes/git-coordinator/host-git-coordinator.controller.js.map +1 -0
- package/dist/server/modules/remotes/git-coordinator/loopback.d.ts +2 -0
- package/dist/server/modules/remotes/git-coordinator/loopback.js +10 -0
- package/dist/server/modules/remotes/git-coordinator/loopback.js.map +1 -0
- package/dist/server/modules/remotes/git-coordinator/vm-git-coordinator.controller.d.ts +9 -0
- package/dist/server/modules/remotes/git-coordinator/vm-git-coordinator.controller.js +66 -0
- package/dist/server/modules/remotes/git-coordinator/vm-git-coordinator.controller.js.map +1 -0
- package/dist/server/modules/remotes/git-owner.store.d.ts +102 -1
- package/dist/server/modules/remotes/git-owner.store.js +37 -11
- package/dist/server/modules/remotes/git-owner.store.js.map +1 -1
- package/dist/server/modules/remotes/git-shim/git-shim-registry.service.d.ts +31 -0
- package/dist/server/modules/remotes/git-shim/git-shim-registry.service.js +175 -0
- package/dist/server/modules/remotes/git-shim/git-shim-registry.service.js.map +1 -0
- package/dist/server/modules/remotes/git-writes/change-barrier.d.ts +16 -0
- package/dist/server/modules/remotes/git-writes/change-barrier.js +40 -0
- package/dist/server/modules/remotes/git-writes/change-barrier.js.map +1 -0
- package/dist/server/modules/remotes/git-writes/home-git-handover.service.d.ts +42 -0
- package/dist/server/modules/remotes/git-writes/home-git-handover.service.js +349 -0
- package/dist/server/modules/remotes/git-writes/home-git-handover.service.js.map +1 -0
- package/dist/server/modules/remotes/git-writes/home-git-transitions.d.ts +16 -0
- package/dist/server/modules/remotes/git-writes/home-git-transitions.js +12 -0
- package/dist/server/modules/remotes/git-writes/home-git-transitions.js.map +1 -0
- package/dist/server/modules/remotes/git-writes/home-git-write.controller.d.ts +10 -0
- package/dist/server/modules/remotes/git-writes/home-git-write.controller.js +74 -0
- package/dist/server/modules/remotes/git-writes/home-git-write.controller.js.map +1 -0
- package/dist/server/modules/remotes/git-writes/home-git-write.service.d.ts +72 -0
- package/dist/server/modules/remotes/git-writes/home-git-write.service.js +481 -0
- package/dist/server/modules/remotes/git-writes/home-git-write.service.js.map +1 -0
- package/dist/server/modules/remotes/git-writes/home-git-write.store.d.ts +39 -0
- package/dist/server/modules/remotes/git-writes/home-git-write.store.js +78 -0
- package/dist/server/modules/remotes/git-writes/home-git-write.store.js.map +1 -0
- package/dist/server/modules/remotes/host/host-helper.dto.d.ts +4 -0
- package/dist/server/modules/remotes/host/host-helper.dto.js +14 -1
- package/dist/server/modules/remotes/host/host-helper.dto.js.map +1 -1
- package/dist/server/modules/remotes/host/host-helper.service.d.ts +5 -1
- package/dist/server/modules/remotes/host/host-helper.service.js +9 -3
- package/dist/server/modules/remotes/host/host-helper.service.js.map +1 -1
- package/dist/server/modules/remotes/host/host-opencode-credentials.v2.d.ts +7 -0
- package/dist/server/modules/remotes/host/host-opencode-credentials.v2.js +46 -0
- package/dist/server/modules/remotes/host/host-opencode-credentials.v2.js.map +1 -0
- package/dist/server/modules/remotes/host/host-provider-auth.service.d.ts +11 -2
- package/dist/server/modules/remotes/host/host-provider-auth.service.js +92 -14
- package/dist/server/modules/remotes/host/host-provider-auth.service.js.map +1 -1
- package/dist/server/modules/remotes/host/host-provider-usage-revision.d.ts +2 -0
- package/dist/server/modules/remotes/host/host-provider-usage-revision.js +11 -0
- package/dist/server/modules/remotes/host/host-provider-usage-revision.js.map +1 -0
- package/dist/server/modules/remotes/host/host-provider-usage-settings.controller.d.ts +11 -0
- package/dist/server/modules/remotes/host/host-provider-usage-settings.controller.js +62 -0
- package/dist/server/modules/remotes/host/host-provider-usage-settings.controller.js.map +1 -0
- package/dist/server/modules/remotes/host/host-provider-usage-settings.service.d.ts +9 -0
- package/dist/server/modules/remotes/host/host-provider-usage-settings.service.js +35 -0
- package/dist/server/modules/remotes/host/host-provider-usage-settings.service.js.map +1 -0
- package/dist/server/modules/remotes/host/host-shared-vm.controller.d.ts +24 -0
- package/dist/server/modules/remotes/host/host-shared-vm.controller.js +183 -0
- package/dist/server/modules/remotes/host/host-shared-vm.controller.js.map +1 -0
- package/dist/server/modules/remotes/host/host-shared-vm.service.d.ts +28 -0
- package/dist/server/modules/remotes/host/host-shared-vm.service.js +159 -0
- package/dist/server/modules/remotes/host/host-shared-vm.service.js.map +1 -0
- package/dist/server/modules/remotes/host/host-shared-vm.store.d.ts +18 -0
- package/dist/server/modules/remotes/host/host-shared-vm.store.js +105 -0
- package/dist/server/modules/remotes/host/host-shared-vm.store.js.map +1 -0
- package/dist/server/modules/remotes/host/host-update.controller.js +3 -3
- package/dist/server/modules/remotes/host/host-update.controller.js.map +1 -1
- package/dist/server/modules/remotes/host/host.service.d.ts +3 -1
- package/dist/server/modules/remotes/host/host.service.js +9 -2
- package/dist/server/modules/remotes/host/host.service.js.map +1 -1
- package/dist/server/modules/remotes/host/shared-vm.contract.d.ts +184 -0
- package/dist/server/modules/remotes/host/shared-vm.contract.js +44 -0
- package/dist/server/modules/remotes/host/shared-vm.contract.js.map +1 -0
- package/dist/server/modules/remotes/host-install/host-install-block.d.ts +2 -0
- package/dist/server/modules/remotes/host-install/host-install-block.js +3 -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 +2 -0
- package/dist/server/modules/remotes/host-install/host-install.service.js +10 -0
- package/dist/server/modules/remotes/host-install/host-install.service.js.map +1 -1
- package/dist/server/modules/remotes/host-install/host-join-block.d.ts +16 -0
- package/dist/server/modules/remotes/host-install/host-join-block.js +122 -0
- package/dist/server/modules/remotes/host-install/host-join-block.js.map +1 -0
- package/dist/server/modules/remotes/host-install/ssh-runner.d.ts +1 -0
- package/dist/server/modules/remotes/host-install/ssh-runner.js +2 -2
- package/dist/server/modules/remotes/host-install/ssh-runner.js.map +1 -1
- package/dist/server/modules/remotes/operations/attach.operation.d.ts +9 -2
- package/dist/server/modules/remotes/operations/attach.operation.js +38 -11
- package/dist/server/modules/remotes/operations/attach.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/claim.operation.d.ts +4 -0
- package/dist/server/modules/remotes/operations/claim.operation.js +15 -0
- package/dist/server/modules/remotes/operations/claim.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/claude-user-instructions.d.ts +2 -0
- package/dist/server/modules/remotes/operations/claude-user-instructions.js +23 -0
- package/dist/server/modules/remotes/operations/claude-user-instructions.js.map +1 -0
- package/dist/server/modules/remotes/operations/destroy-vm.operation.d.ts +4 -2
- package/dist/server/modules/remotes/operations/destroy-vm.operation.js +43 -23
- package/dist/server/modules/remotes/operations/destroy-vm.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/detach.operation.d.ts +12 -1
- package/dist/server/modules/remotes/operations/detach.operation.js +106 -29
- package/dist/server/modules/remotes/operations/detach.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/disconnect-all.operation.d.ts +50 -0
- package/dist/server/modules/remotes/operations/disconnect-all.operation.js +222 -0
- package/dist/server/modules/remotes/operations/disconnect-all.operation.js.map +1 -0
- package/dist/server/modules/remotes/operations/file-sync-handoff.d.ts +3 -1
- package/dist/server/modules/remotes/operations/file-sync-handoff.js +69 -68
- package/dist/server/modules/remotes/operations/file-sync-handoff.js.map +1 -1
- package/dist/server/modules/remotes/operations/git-owner.dto.d.ts +10 -44
- package/dist/server/modules/remotes/operations/git-owner.dto.js +1 -12
- package/dist/server/modules/remotes/operations/git-owner.dto.js.map +1 -1
- package/dist/server/modules/remotes/operations/guarded-vm-destroy.d.ts +2 -0
- package/dist/server/modules/remotes/operations/guarded-vm-destroy.js +14 -0
- package/dist/server/modules/remotes/operations/guarded-vm-destroy.js.map +1 -1
- package/dist/server/modules/remotes/operations/install-host.operation.d.ts +21 -1
- package/dist/server/modules/remotes/operations/install-host.operation.js +285 -27
- package/dist/server/modules/remotes/operations/install-host.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-host.client.d.ts +51 -12
- package/dist/server/modules/remotes/operations/remote-host.client.js +129 -23
- package/dist/server/modules/remotes/operations/remote-host.client.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operation.dto.d.ts +161 -0
- package/dist/server/modules/remotes/operations/remote-operation.dto.js +12 -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 +4 -2
- package/dist/server/modules/remotes/operations/remote-operation.runner.js +53 -9
- package/dist/server/modules/remotes/operations/remote-operation.runner.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operation.types.d.ts +6 -3
- package/dist/server/modules/remotes/operations/remote-operation.types.js +10 -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 +2 -3
- package/dist/server/modules/remotes/operations/remote-operations.controller.js +20 -25
- package/dist/server/modules/remotes/operations/remote-operations.controller.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-operations.service.d.ts +11 -9
- package/dist/server/modules/remotes/operations/remote-operations.service.js +123 -118
- package/dist/server/modules/remotes/operations/remote-operations.service.js.map +1 -1
- package/dist/server/modules/remotes/operations/remote-worktree-guard.d.ts +16 -0
- package/dist/server/modules/remotes/operations/remote-worktree-guard.js +100 -0
- package/dist/server/modules/remotes/operations/remote-worktree-guard.js.map +1 -0
- package/dist/server/modules/remotes/operations/reset-vm.operation.d.ts +15 -2
- package/dist/server/modules/remotes/operations/reset-vm.operation.js +115 -15
- package/dist/server/modules/remotes/operations/reset-vm.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/update-host.operation.d.ts +2 -0
- package/dist/server/modules/remotes/operations/update-host.operation.js +11 -5
- package/dist/server/modules/remotes/operations/update-host.operation.js.map +1 -1
- package/dist/server/modules/remotes/operations/vm-operations.controller.d.ts +5 -1
- package/dist/server/modules/remotes/operations/vm-operations.controller.js +36 -2
- package/dist/server/modules/remotes/operations/vm-operations.controller.js.map +1 -1
- package/dist/server/modules/remotes/operations/vm-operations.dto.d.ts +150 -0
- package/dist/server/modules/remotes/operations/vm-operations.dto.js +9 -1
- package/dist/server/modules/remotes/operations/vm-operations.dto.js.map +1 -1
- package/dist/server/modules/remotes/operations/vm-operations.service.d.ts +3 -1
- package/dist/server/modules/remotes/operations/vm-operations.service.js +38 -15
- package/dist/server/modules/remotes/operations/vm-operations.service.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 +53 -2
- package/dist/server/modules/remotes/remotes.module.js.map +1 -1
- package/dist/server/modules/remotes/services/home-shared-vm-notices.service.d.ts +18 -0
- package/dist/server/modules/remotes/services/home-shared-vm-notices.service.js +81 -0
- package/dist/server/modules/remotes/services/home-shared-vm-notices.service.js.map +1 -0
- package/dist/server/modules/remotes/services/remote-forced-detach.service.d.ts +11 -0
- package/dist/server/modules/remotes/services/remote-forced-detach.service.js +69 -0
- package/dist/server/modules/remotes/services/remote-forced-detach.service.js.map +1 -0
- package/dist/server/modules/remotes/services/remote-forced-detach.store.d.ts +23 -0
- package/dist/server/modules/remotes/services/remote-forced-detach.store.js +73 -0
- package/dist/server/modules/remotes/services/remote-forced-detach.store.js.map +1 -0
- package/dist/server/modules/remotes/services/remote-health.service.d.ts +7 -1
- package/dist/server/modules/remotes/services/remote-health.service.js +41 -4
- package/dist/server/modules/remotes/services/remote-health.service.js.map +1 -1
- package/dist/server/modules/remotes/services/remote-provider-usage-settings.service.d.ts +13 -0
- package/dist/server/modules/remotes/services/remote-provider-usage-settings.service.js +57 -0
- package/dist/server/modules/remotes/services/remote-provider-usage-settings.service.js.map +1 -0
- package/dist/server/modules/remotes/services/remote-shared-vm.service.d.ts +37 -0
- package/dist/server/modules/remotes/services/remote-shared-vm.service.js +184 -0
- package/dist/server/modules/remotes/services/remote-shared-vm.service.js.map +1 -0
- package/dist/server/modules/remotes/services/remote-shared-vm.store.d.ts +11 -0
- package/dist/server/modules/remotes/services/remote-shared-vm.store.js +75 -0
- package/dist/server/modules/remotes/services/remote-shared-vm.store.js.map +1 -0
- package/dist/server/modules/remotes/sync/remote-file-sync.service.d.ts +5 -1
- package/dist/server/modules/remotes/sync/remote-file-sync.service.js +95 -41
- package/dist/server/modules/remotes/sync/remote-file-sync.service.js.map +1 -1
- package/dist/server/modules/remotes/time/project-time-settler.dto.d.ts +2 -2
- package/dist/server/modules/remotes/transport/host-transport.d.ts +2 -0
- package/dist/server/modules/remotes/transport/host-transport.js +7 -0
- package/dist/server/modules/remotes/transport/host-transport.js.map +1 -1
- package/dist/server/modules/reviews/dtos/review.dto.d.ts +2 -2
- package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.d.ts +5 -1
- package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js +25 -5
- package/dist/server/modules/runtime-context-capture/codex-plugin-profile-materializer.service.js.map +1 -1
- package/dist/server/modules/session-reader/__fixtures__/opencode-fixture-db.d.ts +6 -4
- package/dist/server/modules/session-reader/__fixtures__/opencode-fixture-db.js +17 -20
- package/dist/server/modules/session-reader/__fixtures__/opencode-fixture-db.js.map +1 -1
- package/dist/server/modules/session-reader/__fixtures__/opencode-v2-fixture-db.d.ts +61 -0
- package/dist/server/modules/session-reader/__fixtures__/opencode-v2-fixture-db.js +250 -0
- package/dist/server/modules/session-reader/__fixtures__/opencode-v2-fixture-db.js.map +1 -0
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +1 -0
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +1 -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 +3 -1
- package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.js +34 -13
- package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +1 -0
- package/dist/server/modules/session-reader/data/pricing.json +302 -61
- package/dist/server/modules/session-reader/readers/opencode-sqlite.db.d.ts +73 -0
- package/dist/server/modules/session-reader/readers/opencode-sqlite.db.js +176 -0
- package/dist/server/modules/session-reader/readers/opencode-sqlite.db.js.map +1 -0
- package/dist/server/modules/session-reader/readers/opencode-sqlite.v1.reader.d.ts +45 -0
- package/dist/server/modules/session-reader/readers/{opencode-sqlite.reader.js → opencode-sqlite.v1.reader.js} +171 -164
- package/dist/server/modules/session-reader/readers/opencode-sqlite.v1.reader.js.map +1 -0
- package/dist/server/modules/session-reader/readers/opencode-sqlite.v2.reader.d.ts +15 -0
- package/dist/server/modules/session-reader/readers/opencode-sqlite.v2.reader.js +474 -0
- package/dist/server/modules/session-reader/readers/opencode-sqlite.v2.reader.js.map +1 -0
- package/dist/server/modules/session-reader/services/pricing.interface.d.ts +1 -0
- package/dist/server/modules/session-reader/services/pricing.interface.js.map +1 -1
- package/dist/server/modules/session-reader/services/pricing.service.d.ts +1 -0
- package/dist/server/modules/session-reader/services/pricing.service.js +3 -0
- package/dist/server/modules/session-reader/services/pricing.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/session-reader.service.js +6 -1
- package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
- package/dist/server/modules/sessions/services/message-enqueue.service.d.ts +3 -0
- package/dist/server/modules/sessions/services/message-enqueue.service.js +1 -0
- package/dist/server/modules/sessions/services/message-enqueue.service.js.map +1 -1
- package/dist/server/modules/sessions/services/message-pool.types.d.ts +6 -0
- package/dist/server/modules/sessions/services/message-pool.types.js +6 -1
- package/dist/server/modules/sessions/services/message-pool.types.js.map +1 -1
- package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.d.ts +2 -0
- package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +18 -1
- 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 +5 -1
- package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js +26 -2
- package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-lifecycle-facade.service.d.ts +7 -2
- package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js +4 -4
- package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js.map +1 -1
- package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +1 -0
- package/dist/server/modules/sessions/services/sessions-message-pool.service.js +30 -0
- package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
- package/dist/server/modules/sessions/sessions.module.js +5 -0
- package/dist/server/modules/sessions/sessions.module.js.map +1 -1
- package/dist/server/modules/settings/dtos/settings.dto.d.ts +33 -0
- package/dist/server/modules/settings/dtos/settings.dto.js +2 -0
- package/dist/server/modules/settings/dtos/settings.dto.js.map +1 -1
- package/dist/server/modules/settings/local/delegates/core-settings.delegate.d.ts +3 -0
- package/dist/server/modules/settings/local/delegates/core-settings.delegate.js +35 -0
- package/dist/server/modules/settings/local/delegates/core-settings.delegate.js.map +1 -1
- package/dist/server/modules/settings/local/delegates/provider-cli-settings.delegate.js +6 -1
- package/dist/server/modules/settings/local/delegates/provider-cli-settings.delegate.js.map +1 -1
- package/dist/server/modules/settings/services/settings.service.d.ts +2 -1
- package/dist/server/modules/settings/services/settings.service.js +3 -0
- package/dist/server/modules/settings/services/settings.service.js.map +1 -1
- package/dist/server/modules/storage/db/schema.d.ts +235 -0
- package/dist/server/modules/storage/db/schema.js +22 -1
- package/dist/server/modules/storage/db/schema.js.map +1 -1
- package/dist/server/modules/storage/interfaces/storage.interface.d.ts +10 -2
- package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/project-replica.delegate.js +7 -0
- package/dist/server/modules/storage/local/delegates/project-replica.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/worktree.delegate.d.ts +14 -0
- package/dist/server/modules/storage/local/delegates/worktree.delegate.js +89 -0
- package/dist/server/modules/storage/local/delegates/worktree.delegate.js.map +1 -0
- package/dist/server/modules/storage/local/helpers/host-abandoned-projects.d.ts +5 -0
- package/dist/server/modules/storage/local/helpers/host-abandoned-projects.js +39 -0
- package/dist/server/modules/storage/local/helpers/host-abandoned-projects.js.map +1 -0
- package/dist/server/modules/storage/local/local-storage.service.js +2 -0
- package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
- package/dist/server/modules/storage/local/storage-routes.d.ts +26 -0
- package/dist/server/modules/storage/local/storage-routes.js +9 -0
- package/dist/server/modules/storage/local/storage-routes.js.map +1 -1
- package/dist/server/modules/storage/models/domain.models.d.ts +20 -1
- package/dist/server/modules/storage/models/domain.models.js +1 -0
- package/dist/server/modules/storage/models/domain.models.js.map +1 -1
- package/dist/server/modules/storage/write-gate/storage-write-scope.d.ts +1 -0
- package/dist/server/modules/storage/write-gate/storage-write-scope.js +1 -0
- package/dist/server/modules/storage/write-gate/storage-write-scope.js.map +1 -1
- package/dist/server/modules/teams/services/teams.service.d.ts +46 -6
- package/dist/server/modules/teams/services/teams.service.js +129 -8
- package/dist/server/modules/teams/services/teams.service.js.map +1 -1
- package/dist/server/modules/teams/teams.module.js +14 -1
- package/dist/server/modules/teams/teams.module.js.map +1 -1
- package/dist/server/modules/vm-providers/proxmox-vm.provider.d.ts +1 -0
- package/dist/server/modules/vm-providers/proxmox-vm.provider.js +17 -0
- package/dist/server/modules/vm-providers/proxmox-vm.provider.js.map +1 -1
- package/dist/server/modules/worktrees/git-output.d.ts +5 -0
- package/dist/server/modules/worktrees/git-output.js +53 -0
- package/dist/server/modules/worktrees/git-output.js.map +1 -0
- package/dist/server/modules/worktrees/host-worktrees.controller.d.ts +10 -0
- package/dist/server/modules/worktrees/host-worktrees.controller.js +59 -0
- package/dist/server/modules/worktrees/host-worktrees.controller.js.map +1 -0
- package/dist/server/modules/worktrees/host-worktrees.dto.d.ts +40 -0
- package/dist/server/modules/worktrees/host-worktrees.dto.js +9 -0
- package/dist/server/modules/worktrees/host-worktrees.dto.js.map +1 -0
- package/dist/server/modules/worktrees/project-git-mutex.d.ts +5 -0
- package/dist/server/modules/worktrees/project-git-mutex.js +38 -0
- package/dist/server/modules/worktrees/project-git-mutex.js.map +1 -0
- package/dist/server/modules/worktrees/worktree-admission.service.d.ts +15 -0
- package/dist/server/modules/worktrees/worktree-admission.service.js +87 -0
- package/dist/server/modules/worktrees/worktree-admission.service.js.map +1 -0
- package/dist/server/modules/worktrees/worktree-git-runner.d.ts +12 -0
- package/dist/server/modules/worktrees/worktree-git-runner.js +57 -0
- package/dist/server/modules/worktrees/worktree-git-runner.js.map +1 -0
- package/dist/server/modules/worktrees/worktrees.errors.d.ts +5 -0
- package/dist/server/modules/worktrees/worktrees.errors.js +11 -0
- package/dist/server/modules/worktrees/worktrees.errors.js.map +1 -0
- package/dist/server/modules/worktrees/worktrees.module.d.ts +2 -0
- package/dist/server/modules/worktrees/worktrees.module.js +37 -0
- package/dist/server/modules/worktrees/worktrees.module.js.map +1 -0
- package/dist/server/modules/worktrees/worktrees.service.d.ts +50 -0
- package/dist/server/modules/worktrees/worktrees.service.js +586 -0
- package/dist/server/modules/worktrees/worktrees.service.js.map +1 -0
- package/dist/server/modules/worktrees/worktrees.types.d.ts +58 -0
- package/dist/server/modules/worktrees/worktrees.types.js +3 -0
- package/dist/server/modules/worktrees/worktrees.types.js.map +1 -0
- package/dist/server/templates/teams-dev.json +6 -6
- package/dist/server/tsconfig.build.tsbuildinfo +1 -1
- package/dist/server/ui/assets/{ExternalRichEditor-CB-LjWox.js → ExternalRichEditor-NpBNzn_X.js} +1 -1
- package/dist/server/ui/assets/{ReviewDetailPage-CpMMjYet.js → ReviewDetailPage-DxVCE1zh.js} +1 -1
- package/dist/server/ui/assets/{ReviewsPage-Cw17_agp.js → ReviewsPage-Bx6jkULr.js} +1 -1
- package/dist/server/ui/assets/index-BZjQEWOy.css +32 -0
- package/dist/server/ui/assets/{index-DmRXRpSy.js → index-CLPZxkZt.js} +263 -263
- package/dist/server/ui/assets/{useReviewSubscription-wd5iHNQy.js → useReviewSubscription-BLuFzXjh.js} +1 -1
- package/dist/server/ui/index.html +2 -2
- package/dist/templates/teams-dev.json +6 -6
- package/npm-shrinkwrap.json +6189 -0
- package/package.json +19 -13
- package/dist/server/modules/file-sync/host-git-index.controller.d.ts +0 -10
- package/dist/server/modules/file-sync/host-git-index.controller.js +0 -67
- package/dist/server/modules/file-sync/host-git-index.controller.js.map +0 -1
- package/dist/server/modules/remotes/operations/git-owner.operation.d.ts +0 -35
- package/dist/server/modules/remotes/operations/git-owner.operation.js +0 -216
- package/dist/server/modules/remotes/operations/git-owner.operation.js.map +0 -1
- package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.d.ts +0 -73
- package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.js.map +0 -1
- package/dist/server/ui/assets/index-BwuNu70G.css +0 -32
|
@@ -23,6 +23,7 @@ const project_sessions_stopper_service_1 = require("../services/project-sessions
|
|
|
23
23
|
const project_replica_applier_1 = require("../replica/project-replica.applier");
|
|
24
24
|
const project_replica_builder_1 = require("../replica/project-replica.builder");
|
|
25
25
|
const project_freeze_service_1 = require("./project-freeze.service");
|
|
26
|
+
const git_coordinator_service_1 = require("../git-coordinator/git-coordinator.service");
|
|
26
27
|
const host_skill_settings_service_1 = require("./host-skill-settings.service");
|
|
27
28
|
const project_time_settler_service_1 = require("../time/project-time-settler.service");
|
|
28
29
|
const logger = (0, logger_1.createLogger)('HostService');
|
|
@@ -36,7 +37,8 @@ let HostService = class HostService {
|
|
|
36
37
|
timeSettler;
|
|
37
38
|
skillSettings;
|
|
38
39
|
settings;
|
|
39
|
-
|
|
40
|
+
gitCoordinator;
|
|
41
|
+
constructor(builder, applier, freeze, storage, sessionsStopper, timeSettler, skillSettings, settings, gitCoordinator) {
|
|
40
42
|
this.builder = builder;
|
|
41
43
|
this.applier = applier;
|
|
42
44
|
this.freeze = freeze;
|
|
@@ -45,6 +47,7 @@ let HostService = class HostService {
|
|
|
45
47
|
this.timeSettler = timeSettler;
|
|
46
48
|
this.skillSettings = skillSettings;
|
|
47
49
|
this.settings = settings;
|
|
50
|
+
this.gitCoordinator = gitCoordinator;
|
|
48
51
|
}
|
|
49
52
|
async importProject(body, options) {
|
|
50
53
|
const replica = shared_1.ProjectReplicaV1Schema.parse(body);
|
|
@@ -73,6 +76,8 @@ let HostService = class HostService {
|
|
|
73
76
|
throw error;
|
|
74
77
|
}
|
|
75
78
|
this.skillSettings.syncSourcesTurnedOn(sourcesEnabledBefore);
|
|
79
|
+
if (!options.resnapshot)
|
|
80
|
+
await this.gitCoordinator.forget(projectId);
|
|
76
81
|
logger.info({ projectId, resnapshot: options.resnapshot }, 'Imported project replica');
|
|
77
82
|
return { projectId, cursor };
|
|
78
83
|
}
|
|
@@ -111,6 +116,7 @@ let HostService = class HostService {
|
|
|
111
116
|
async releaseProject(projectId) {
|
|
112
117
|
await this.storage.releaseProject(projectId);
|
|
113
118
|
this.freeze.forget(projectId);
|
|
119
|
+
await this.gitCoordinator.forget(projectId);
|
|
114
120
|
}
|
|
115
121
|
async findEpicByIdempotencyKey(projectId, key) {
|
|
116
122
|
const epicId = await this.storage.findEpicIdByIdempotencyKey(projectId, key);
|
|
@@ -129,7 +135,8 @@ exports.HostService = HostService = __decorate([
|
|
|
129
135
|
project_freeze_service_1.ProjectFreezeService, Object, project_sessions_stopper_service_1.ProjectSessionsStopper,
|
|
130
136
|
project_time_settler_service_1.ProjectTimeSettler,
|
|
131
137
|
host_skill_settings_service_1.HostSkillSettingsService,
|
|
132
|
-
settings_service_1.SettingsService
|
|
138
|
+
settings_service_1.SettingsService,
|
|
139
|
+
git_coordinator_service_1.GitCoordinatorService])
|
|
133
140
|
], HostService);
|
|
134
141
|
function unwrap(result) {
|
|
135
142
|
if (result.ok)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.service.js","sourceRoot":"","sources":["../../../../src/modules/remotes/host/host.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6CAM0B;AAC1B,oEAI4C;AAC5C,2DAA8D;AAC9D,+EAA2E;AAC3E,kFAIoD;AACpD,mGAAsF;AACtF,gFAA2E;AAC3E,gFAG4C;AAC5C,qEAAgE;AAChE,+EAAyE;AAEzE,uFAG8C;AAE9C,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,aAAa,CAAC,CAAC;AAM9B,QAAA,kBAAkB,GAAG,KAAK,CAAC;AAIjC,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEH;IACA;IACA;IACyB;IACzB;IACA;IACA;IACA;
|
|
1
|
+
{"version":3,"file":"host.service.js","sourceRoot":"","sources":["../../../../src/modules/remotes/host/host.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export { SharedVmRosterSchema } from '../dtos/shared-vm.dto';
|
|
3
|
+
export type { SharedVmRoster } from '../dtos/shared-vm.dto';
|
|
4
|
+
export declare const SharedVmActionSchema: z.ZodEnum<["reset", "destroy", "forced"]>;
|
|
5
|
+
export declare const SharedVmNotifySchema: z.ZodObject<{
|
|
6
|
+
action: z.ZodEnum<["reset", "destroy", "forced"]>;
|
|
7
|
+
message: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, "strict", z.ZodTypeAny, {
|
|
9
|
+
action: "destroy" | "reset" | "forced";
|
|
10
|
+
message?: string | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
action: "destroy" | "reset" | "forced";
|
|
13
|
+
message?: string | undefined;
|
|
14
|
+
}>;
|
|
15
|
+
export declare const SharedVmInboxSchema: z.ZodObject<{
|
|
16
|
+
action: z.ZodEnum<["reset", "destroy", "forced"]>;
|
|
17
|
+
message: z.ZodOptional<z.ZodString>;
|
|
18
|
+
} & {
|
|
19
|
+
fromUser: z.ZodString;
|
|
20
|
+
at: z.ZodString;
|
|
21
|
+
}, "strict", z.ZodTypeAny, {
|
|
22
|
+
at: string;
|
|
23
|
+
action: "destroy" | "reset" | "forced";
|
|
24
|
+
fromUser: string;
|
|
25
|
+
message?: string | undefined;
|
|
26
|
+
}, {
|
|
27
|
+
at: string;
|
|
28
|
+
action: "destroy" | "reset" | "forced";
|
|
29
|
+
fromUser: string;
|
|
30
|
+
message?: string | undefined;
|
|
31
|
+
}>;
|
|
32
|
+
export declare const SharedVmNoticeSchema: z.ZodObject<{
|
|
33
|
+
action: z.ZodEnum<["reset", "destroy", "forced"]>;
|
|
34
|
+
message: z.ZodOptional<z.ZodString>;
|
|
35
|
+
} & {
|
|
36
|
+
fromUser: z.ZodString;
|
|
37
|
+
at: z.ZodString;
|
|
38
|
+
} & {
|
|
39
|
+
id: z.ZodString;
|
|
40
|
+
}, "strict", z.ZodTypeAny, {
|
|
41
|
+
at: string;
|
|
42
|
+
id: string;
|
|
43
|
+
action: "destroy" | "reset" | "forced";
|
|
44
|
+
fromUser: string;
|
|
45
|
+
message?: string | undefined;
|
|
46
|
+
}, {
|
|
47
|
+
at: string;
|
|
48
|
+
id: string;
|
|
49
|
+
action: "destroy" | "reset" | "forced";
|
|
50
|
+
fromUser: string;
|
|
51
|
+
message?: string | undefined;
|
|
52
|
+
}>;
|
|
53
|
+
export declare const SharedVmNoticesSchema: z.ZodObject<{
|
|
54
|
+
notices: z.ZodArray<z.ZodObject<{
|
|
55
|
+
action: z.ZodEnum<["reset", "destroy", "forced"]>;
|
|
56
|
+
message: z.ZodOptional<z.ZodString>;
|
|
57
|
+
} & {
|
|
58
|
+
fromUser: z.ZodString;
|
|
59
|
+
at: z.ZodString;
|
|
60
|
+
} & {
|
|
61
|
+
id: z.ZodString;
|
|
62
|
+
}, "strict", z.ZodTypeAny, {
|
|
63
|
+
at: string;
|
|
64
|
+
id: string;
|
|
65
|
+
action: "destroy" | "reset" | "forced";
|
|
66
|
+
fromUser: string;
|
|
67
|
+
message?: string | undefined;
|
|
68
|
+
}, {
|
|
69
|
+
at: string;
|
|
70
|
+
id: string;
|
|
71
|
+
action: "destroy" | "reset" | "forced";
|
|
72
|
+
fromUser: string;
|
|
73
|
+
message?: string | undefined;
|
|
74
|
+
}>, "many">;
|
|
75
|
+
}, "strip", z.ZodTypeAny, {
|
|
76
|
+
notices: {
|
|
77
|
+
at: string;
|
|
78
|
+
id: string;
|
|
79
|
+
action: "destroy" | "reset" | "forced";
|
|
80
|
+
fromUser: string;
|
|
81
|
+
message?: string | undefined;
|
|
82
|
+
}[];
|
|
83
|
+
}, {
|
|
84
|
+
notices: {
|
|
85
|
+
at: string;
|
|
86
|
+
id: string;
|
|
87
|
+
action: "destroy" | "reset" | "forced";
|
|
88
|
+
fromUser: string;
|
|
89
|
+
message?: string | undefined;
|
|
90
|
+
}[];
|
|
91
|
+
}>;
|
|
92
|
+
export declare const SharedVmDismissSchema: z.ZodObject<{
|
|
93
|
+
id: z.ZodString;
|
|
94
|
+
}, "strict", z.ZodTypeAny, {
|
|
95
|
+
id: string;
|
|
96
|
+
}, {
|
|
97
|
+
id: string;
|
|
98
|
+
}>;
|
|
99
|
+
export declare const SharedVmAbandonSchema: z.ZodObject<{
|
|
100
|
+
projectId: z.ZodString;
|
|
101
|
+
}, "strict", z.ZodTypeAny, {
|
|
102
|
+
projectId: string;
|
|
103
|
+
}, {
|
|
104
|
+
projectId: string;
|
|
105
|
+
}>;
|
|
106
|
+
export declare const SharedVmCountSchema: z.ZodEffects<z.ZodObject<{
|
|
107
|
+
connectedCount: z.ZodNumber;
|
|
108
|
+
connectedProjectIds: z.ZodArray<z.ZodString, "many">;
|
|
109
|
+
}, "strip", z.ZodTypeAny, {
|
|
110
|
+
connectedCount: number;
|
|
111
|
+
connectedProjectIds: string[];
|
|
112
|
+
}, {
|
|
113
|
+
connectedCount: number;
|
|
114
|
+
connectedProjectIds: string[];
|
|
115
|
+
}>, {
|
|
116
|
+
connectedCount: number;
|
|
117
|
+
connectedProjectIds: string[];
|
|
118
|
+
}, {
|
|
119
|
+
connectedCount: number;
|
|
120
|
+
connectedProjectIds: string[];
|
|
121
|
+
}>;
|
|
122
|
+
export declare const SharedVmNotifyResultSchema: z.ZodObject<{
|
|
123
|
+
results: z.ZodArray<z.ZodObject<{
|
|
124
|
+
user: z.ZodString;
|
|
125
|
+
delivered: z.ZodBoolean;
|
|
126
|
+
}, "strip", z.ZodTypeAny, {
|
|
127
|
+
user: string;
|
|
128
|
+
delivered: boolean;
|
|
129
|
+
}, {
|
|
130
|
+
user: string;
|
|
131
|
+
delivered: boolean;
|
|
132
|
+
}>, "many">;
|
|
133
|
+
}, "strip", z.ZodTypeAny, {
|
|
134
|
+
results: {
|
|
135
|
+
user: string;
|
|
136
|
+
delivered: boolean;
|
|
137
|
+
}[];
|
|
138
|
+
}, {
|
|
139
|
+
results: {
|
|
140
|
+
user: string;
|
|
141
|
+
delivered: boolean;
|
|
142
|
+
}[];
|
|
143
|
+
}>;
|
|
144
|
+
export declare const SharedVmFenceRequestSchema: z.ZodObject<{
|
|
145
|
+
mode: z.ZodEnum<["set", "clear"]>;
|
|
146
|
+
operationId: z.ZodString;
|
|
147
|
+
}, "strict", z.ZodTypeAny, {
|
|
148
|
+
mode: "set" | "clear";
|
|
149
|
+
operationId: string;
|
|
150
|
+
}, {
|
|
151
|
+
mode: "set" | "clear";
|
|
152
|
+
operationId: string;
|
|
153
|
+
}>;
|
|
154
|
+
export declare const SharedVmFenceResultSchema: z.ZodObject<{
|
|
155
|
+
fence: z.ZodNullable<z.ZodObject<{
|
|
156
|
+
ownerUser: z.ZodString;
|
|
157
|
+
operationId: z.ZodString;
|
|
158
|
+
expiresAt: z.ZodString;
|
|
159
|
+
}, "strict", z.ZodTypeAny, {
|
|
160
|
+
operationId: string;
|
|
161
|
+
expiresAt: string;
|
|
162
|
+
ownerUser: string;
|
|
163
|
+
}, {
|
|
164
|
+
operationId: string;
|
|
165
|
+
expiresAt: string;
|
|
166
|
+
ownerUser: string;
|
|
167
|
+
}>>;
|
|
168
|
+
}, "strip", z.ZodTypeAny, {
|
|
169
|
+
fence: {
|
|
170
|
+
operationId: string;
|
|
171
|
+
expiresAt: string;
|
|
172
|
+
ownerUser: string;
|
|
173
|
+
} | null;
|
|
174
|
+
}, {
|
|
175
|
+
fence: {
|
|
176
|
+
operationId: string;
|
|
177
|
+
expiresAt: string;
|
|
178
|
+
ownerUser: string;
|
|
179
|
+
} | null;
|
|
180
|
+
}>;
|
|
181
|
+
export type SharedVmNotice = z.infer<typeof SharedVmNoticeSchema>;
|
|
182
|
+
export type SharedVmInbox = z.infer<typeof SharedVmInboxSchema>;
|
|
183
|
+
export type SharedVmNotify = z.infer<typeof SharedVmNotifySchema>;
|
|
184
|
+
export type SharedVmNotifyResult = z.infer<typeof SharedVmNotifyResultSchema>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SharedVmFenceResultSchema = exports.SharedVmFenceRequestSchema = exports.SharedVmNotifyResultSchema = exports.SharedVmCountSchema = exports.SharedVmAbandonSchema = exports.SharedVmDismissSchema = exports.SharedVmNoticesSchema = exports.SharedVmNoticeSchema = exports.SharedVmInboxSchema = exports.SharedVmNotifySchema = exports.SharedVmActionSchema = exports.SharedVmRosterSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const vm_destroy_fence_1 = require("../../../common/config/vm-destroy-fence");
|
|
6
|
+
const host_dto_1 = require("./host.dto");
|
|
7
|
+
var shared_vm_dto_1 = require("../dtos/shared-vm.dto");
|
|
8
|
+
Object.defineProperty(exports, "SharedVmRosterSchema", { enumerable: true, get: function () { return shared_vm_dto_1.SharedVmRosterSchema; } });
|
|
9
|
+
exports.SharedVmActionSchema = zod_1.z.enum(['reset', 'destroy', 'forced']);
|
|
10
|
+
exports.SharedVmNotifySchema = zod_1.z
|
|
11
|
+
.object({
|
|
12
|
+
action: exports.SharedVmActionSchema,
|
|
13
|
+
message: zod_1.z.string().max(2000).optional(),
|
|
14
|
+
})
|
|
15
|
+
.strict();
|
|
16
|
+
exports.SharedVmInboxSchema = exports.SharedVmNotifySchema.extend({
|
|
17
|
+
fromUser: vm_destroy_fence_1.InstanceUserNameSchema,
|
|
18
|
+
at: zod_1.z.string().datetime({ offset: true }),
|
|
19
|
+
}).strict();
|
|
20
|
+
exports.SharedVmNoticeSchema = exports.SharedVmInboxSchema.extend({ id: zod_1.z.string().uuid() });
|
|
21
|
+
exports.SharedVmNoticesSchema = zod_1.z.object({ notices: zod_1.z.array(exports.SharedVmNoticeSchema) });
|
|
22
|
+
exports.SharedVmDismissSchema = zod_1.z.object({ id: zod_1.z.string().uuid() }).strict();
|
|
23
|
+
exports.SharedVmAbandonSchema = zod_1.z.object({ projectId: host_dto_1.HostProjectIdSchema }).strict();
|
|
24
|
+
exports.SharedVmCountSchema = zod_1.z
|
|
25
|
+
.object({
|
|
26
|
+
connectedCount: zod_1.z.number().int().nonnegative(),
|
|
27
|
+
connectedProjectIds: zod_1.z.array(zod_1.z.string()),
|
|
28
|
+
})
|
|
29
|
+
.refine(({ connectedCount, connectedProjectIds }) => connectedCount === connectedProjectIds.length &&
|
|
30
|
+
new Set(connectedProjectIds).size === connectedCount);
|
|
31
|
+
exports.SharedVmNotifyResultSchema = zod_1.z.object({
|
|
32
|
+
results: zod_1.z.array(zod_1.z.object({
|
|
33
|
+
user: zod_1.z.string(),
|
|
34
|
+
delivered: zod_1.z.boolean(),
|
|
35
|
+
})),
|
|
36
|
+
});
|
|
37
|
+
exports.SharedVmFenceRequestSchema = zod_1.z
|
|
38
|
+
.object({
|
|
39
|
+
mode: zod_1.z.enum(['set', 'clear']),
|
|
40
|
+
operationId: zod_1.z.string().regex(/^[A-Za-z0-9_-]{1,128}$/),
|
|
41
|
+
})
|
|
42
|
+
.strict();
|
|
43
|
+
exports.SharedVmFenceResultSchema = zod_1.z.object({ fence: vm_destroy_fence_1.VmDestroyFenceSchema.nullable() });
|
|
44
|
+
//# sourceMappingURL=shared-vm.contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-vm.contract.js","sourceRoot":"","sources":["../../../../src/modules/remotes/host/shared-vm.contract.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,8EAGiD;AACjD,yCAAiD;AACjD,uDAA6D;AAApD,qHAAA,oBAAoB,OAAA;AAGhB,QAAA,oBAAoB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9D,QAAA,oBAAoB,GAAG,OAAC;KAClC,MAAM,CAAC;IACN,MAAM,EAAE,4BAAoB;IAC5B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,MAAM,EAAE,CAAC;AACC,QAAA,mBAAmB,GAAG,4BAAoB,CAAC,MAAM,CAAC;IAC7D,QAAQ,EAAE,yCAAsB;IAChC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;CAC1C,CAAC,CAAC,MAAM,EAAE,CAAC;AACC,QAAA,oBAAoB,GAAG,2BAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC7E,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,4BAAoB,CAAC,EAAE,CAAC,CAAC;AAC7E,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AACrE,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,8BAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9E,QAAA,mBAAmB,GAAG,OAAC;KACjC,MAAM,CAAC;IACN,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC9C,mBAAmB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;CACzC,CAAC;KACD,MAAM,CACL,CAAC,EAAE,cAAc,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAC1C,cAAc,KAAK,mBAAmB,CAAC,MAAM;IAC7C,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,KAAK,cAAc,CACvD,CAAC;AACS,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,OAAC,CAAC,KAAK,CACd,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;QAChB,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE;KACvB,CAAC,CACH;CACF,CAAC,CAAC;AACU,QAAA,0BAA0B,GAAG,OAAC;KACxC,MAAM,CAAC;IACN,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC;CACxD,CAAC;KACD,MAAM,EAAE,CAAC;AACC,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,uCAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC"}
|
|
@@ -2,7 +2,9 @@ export declare const HOST_INSTALL_BOOTSTRAP_PORT = 3000;
|
|
|
2
2
|
export declare const HOST_CERTIFICATE_PATH = "/etc/devchain-host/tls/cert.pem";
|
|
3
3
|
export declare const HOST_CERTIFICATE_FINGERPRINT_COMMAND = "openssl x509 -in /etc/devchain-host/tls/cert.pem -noout -fingerprint -sha256";
|
|
4
4
|
export declare const HOST_INSTALL_MIN_MEMORY_MIB = 3584;
|
|
5
|
+
export declare const SHARED_VM_PROTOCOL = 1;
|
|
5
6
|
export interface HostInstallPins {
|
|
7
|
+
sharedVmProtocol?: number;
|
|
6
8
|
nodeVersion: string;
|
|
7
9
|
syncthingVersion: string;
|
|
8
10
|
npmRegistry: string;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HOST_INSTALL_MIN_MEMORY_MIB = exports.HOST_CERTIFICATE_FINGERPRINT_COMMAND = exports.HOST_CERTIFICATE_PATH = exports.HOST_INSTALL_BOOTSTRAP_PORT = void 0;
|
|
3
|
+
exports.SHARED_VM_PROTOCOL = exports.HOST_INSTALL_MIN_MEMORY_MIB = exports.HOST_CERTIFICATE_FINGERPRINT_COMMAND = exports.HOST_CERTIFICATE_PATH = exports.HOST_INSTALL_BOOTSTRAP_PORT = void 0;
|
|
4
4
|
exports.baseHostInstallAptPackages = baseHostInstallAptPackages;
|
|
5
5
|
exports.generateHostInstallBlock = generateHostInstallBlock;
|
|
6
6
|
exports.HOST_INSTALL_BOOTSTRAP_PORT = 3000;
|
|
7
7
|
exports.HOST_CERTIFICATE_PATH = '/etc/devchain-host/tls/cert.pem';
|
|
8
8
|
exports.HOST_CERTIFICATE_FINGERPRINT_COMMAND = `openssl x509 -in ${exports.HOST_CERTIFICATE_PATH} -noout -fingerprint -sha256`;
|
|
9
9
|
exports.HOST_INSTALL_MIN_MEMORY_MIB = 3584;
|
|
10
|
+
exports.SHARED_VM_PROTOCOL = 1;
|
|
10
11
|
function shellQuote(value) {
|
|
11
12
|
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
12
13
|
}
|
|
@@ -305,7 +306,7 @@ devchain_host_install() {
|
|
|
305
306
|
done < <(ip -o -4 addr show scope global 2>/dev/null | awk '{ print $4 }')
|
|
306
307
|
fi
|
|
307
308
|
if command -v ufw >/dev/null 2>&1 && ufw status 2>/dev/null | grep -q '^Status: active'; then
|
|
308
|
-
devchain_warn "ufw is active; allow TCP ports $DEVCHAIN_BOOTSTRAP_PORT
|
|
309
|
+
devchain_warn "ufw is active; allow TCP ports $DEVCHAIN_BOOTSTRAP_PORT and $DEVCHAIN_HOME_PORT from this PC. After setup, allow the Syncthing listen port shown in VM details."
|
|
309
310
|
fi
|
|
310
311
|
local account=''
|
|
311
312
|
if command -v getent >/dev/null 2>&1; then account="$(getent passwd "$DEVCHAIN_HOME_USER" 2>/dev/null || true)"; fi
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-install-block.js","sourceRoot":"","sources":["../../../../src/modules/remotes/host-install/host-install-block.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"host-install-block.js","sourceRoot":"","sources":["../../../../src/modules/remotes/host-install/host-install-block.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ProcessExecutor } from '../../terminal/services/process-executor/process-executor.port';
|
|
2
2
|
import { type HostInstallBlockOptions, type HostInstallPins } from './host-install-block';
|
|
3
|
+
import { type HostJoinRenderOptions } from './host-join-block';
|
|
3
4
|
export interface HostInstallInputs {
|
|
4
5
|
pins: HostInstallPins;
|
|
5
6
|
bootstrapTgzBase64: string;
|
|
@@ -23,6 +24,7 @@ export declare class HostInstallService {
|
|
|
23
24
|
constructor(processExecutor: ProcessExecutor, paths?: HostInstallPaths);
|
|
24
25
|
render(options: HostInstallRenderOptions): Promise<string>;
|
|
25
26
|
loadInputs(): Promise<HostInstallInputs>;
|
|
27
|
+
renderJoin(options: HostJoinRenderOptions): Promise<string>;
|
|
26
28
|
private readInputs;
|
|
27
29
|
private packSourceInputs;
|
|
28
30
|
}
|
|
@@ -24,6 +24,7 @@ const env_config_1 = require("../../../common/config/env.config");
|
|
|
24
24
|
const db_config_1 = require("../../storage/db/db.config");
|
|
25
25
|
const process_executor_port_1 = require("../../terminal/services/process-executor/process-executor.port");
|
|
26
26
|
const host_install_block_1 = require("./host-install-block");
|
|
27
|
+
const host_join_block_1 = require("./host-join-block");
|
|
27
28
|
const SOURCE_PACK_TIMEOUT_MS = 120_000;
|
|
28
29
|
exports.HOST_INSTALL_PATHS = Symbol('HOST_INSTALL_PATHS');
|
|
29
30
|
const HOST_INSTALL_FILES = [
|
|
@@ -130,6 +131,14 @@ let HostInstallService = class HostInstallService {
|
|
|
130
131
|
}
|
|
131
132
|
return this.sourceInputsPromise;
|
|
132
133
|
}
|
|
134
|
+
async renderJoin(options) {
|
|
135
|
+
const inputs = await this.loadInputs();
|
|
136
|
+
return (0, host_join_block_1.generateHostJoinBlock)({
|
|
137
|
+
...options,
|
|
138
|
+
pins: inputs.pins,
|
|
139
|
+
bootstrapTgzBase64: inputs.bootstrapTgzBase64,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
133
142
|
async readInputs(directory) {
|
|
134
143
|
const [archive, unit, sysctl, aptPreference, pinsText] = await Promise.all([
|
|
135
144
|
(0, promises_1.readFile)((0, node_path_1.join)(directory, 'devchain-host-bootstrap.tgz')),
|
|
@@ -186,6 +195,7 @@ let HostInstallService = class HostInstallService {
|
|
|
186
195
|
const archive = await (0, promises_1.readFile)((0, node_path_1.join)(this.paths.dataDirectory, filename));
|
|
187
196
|
const versions = parseVersionsEnv(await (0, promises_1.readFile)((0, node_path_1.join)(repositoryRoot, 'apps/host-image/versions.env'), 'utf8'));
|
|
188
197
|
const pins = {
|
|
198
|
+
sharedVmProtocol: host_install_block_1.SHARED_VM_PROTOCOL,
|
|
189
199
|
nodeVersion: versions.NODE_VERSION,
|
|
190
200
|
syncthingVersion: versions.SYNCTHING_VERSION,
|
|
191
201
|
npmRegistry: versions.NPM_REGISTRY,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-install.service.js","sourceRoot":"","sources":["../../../../src/modules/remotes/host-install/host-install.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"host-install.service.js","sourceRoot":"","sources":["../../../../src/modules/remotes/host-install/host-install.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAmEA,kDAaC;AASD,4CAmBC;AA5GD,2CAA8D;AAC9D,6CAAyC;AACzC,qCAAqC;AACrC,+CAAmD;AACnD,yCAAkE;AAClE,kEAAiE;AACjE,0DAAyD;AACzD,0GAAiG;AACjG,6DAK8B;AAC9B,uDAAsF;AAEtF,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAqB1B,QAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAE/D,MAAM,kBAAkB,GAAG;IACzB,6BAA6B;IAC7B,4BAA4B;IAC5B,0BAA0B;IAC1B,8BAA8B;IAC9B,WAAW;CACH,CAAC;AAEX,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAG,MAAgB;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,GAAG,IAAA,mBAAO,EAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,OAAO,CAAC,CAAC;YAChC,IAAI,MAAM,KAAK,OAAO;gBAAE,MAAM;YAC9B,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,mBAAmB,CAAC,eAAuB;IAKzD,MAAM,UAAU,GAAG,IAAA,mBAAO,EAAC,eAAe,CAAC,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,IAAA,gBAAI,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,eAAG,CAAC;YAAE,SAAS;QACjD,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC7C,IAAI,mBAAmB,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,eAAuB,EAAE,GAAW;IAC9D,KAAK,MAAM,IAAI,IAAI,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE,CAAC;QAC7D,IAAI,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IAC1E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5C,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QACnF,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,KAAK,MAAM,IAAI,IAAI;QACjB,cAAc;QACd,mBAAmB;QACnB,cAAc;QACd,4BAA4B;QAC5B,wBAAwB;KACzB,EAAE,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,aAAa,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAKV;IAJX,mBAAmB,GAAsC,IAAI,CAAC;IACrD,KAAK,CAAmB;IAEzC,YACmB,eAAgC,EACT,KAAwB;QAD/C,oBAAe,GAAf,eAAe,CAAiB;QAGjD,IAAI,CAAC,KAAK;YACR,KAAK;gBACJ;oBACC,eAAe,EAAE,SAAS;oBAC1B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;oBAClB,aAAa,EAAE,IAAA,mBAAO,EAAC,IAAA,uBAAW,GAAE,CAAC,MAAM,CAAC;iBACjB,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAiC;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAA,yBAAY,GAAE,CAAC,iBAAiB,CAAC;QAClD,OAAO,IAAA,6CAAwB,EAAC;YAC9B,GAAG,MAAM;YACT,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YACxE,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACtE,IAAI,aAAa;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAEzD,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA8B;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,OAAO,IAAA,uCAAqB,EAAC;YAC3B,GAAG,OAAO;YACV,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;SAC9C,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,SAAiB;QACxC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACzE,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;YACxD,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,4BAA4B,CAAC,EAAE,MAAM,CAAC;YAC/D,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,0BAA0B,CAAC,EAAE,MAAM,CAAC;YAC7D,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,8BAA8B,CAAC,EAAE,MAAM,CAAC;YACjE,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC;SAC/C,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAoB;YAC7C,kBAAkB,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC9C,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,MAAM;YACpB,aAAa;SACd,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,cAAsB;QACnD,MAAM,aAAa,GAAG,IAAA,gBAAI,EAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;QAClE,MAAM,IAAA,gBAAK,EAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,aAAa,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAGzF,CAAC;QACF,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;YAC5C,IAAI,EAAE;gBACJ,KAAK;gBACL,MAAM;gBACN,kBAAkB;gBAClB,QAAQ;gBACR,oBAAoB;gBACpB,IAAI,CAAC,KAAK,CAAC,aAAa;aACzB;YACD,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,aAAa;YAClB,OAAO,EAAE,sBAAsB;YAC/B,YAAY,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,0CAA0C,MAAM,CAAC,MAAM,IAAI,iBAAiB,EAAE,CAC/E,CAAC;QACJ,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,QAAQ,GACZ,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAC1E,CAAC,CAAE,MAAM,CAAC,CAAC,CAA4B,CAAC,QAAQ;YAChD,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,IAAA,oBAAQ,EAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,MAAM,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,cAAc,EAAE,8BAA8B,CAAC,EAAE,MAAM,CAAC,CAC7E,CAAC;QACF,MAAM,IAAI,GAAoB;YAC5B,gBAAgB,EAAE,uCAAkB;YACpC,WAAW,EAAE,QAAQ,CAAC,YAAY;YAClC,gBAAgB,EAAE,QAAQ,CAAC,iBAAiB;YAC5C,WAAW,EAAE,QAAQ,CAAC,YAAY;YAClC,SAAS,EAAE;gBACT,OAAO,EAAE,WAAW,CAAC,IAAI;gBACzB,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,MAAM,EAAE,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC3D;YACD,WAAW,EAAE,QAAQ,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC;YAC7D,YAAY,EAAE,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC;SAC3D,CAAC;QACF,OAAO;YACL,IAAI;YACJ,kBAAkB,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC9C,aAAa,EAAE,MAAM,IAAA,mBAAQ,EAC3B,IAAA,gBAAI,EAAC,aAAa,EAAE,oCAAoC,CAAC,EACzD,MAAM,CACP;YACD,YAAY,EAAE,MAAM,IAAA,mBAAQ,EAC1B,IAAA,gBAAI,EAAC,cAAc,EAAE,gDAAgD,CAAC,EACtE,MAAM,CACP;YACD,aAAa,EAAE,MAAM,IAAA,mBAAQ,EAC3B,IAAA,gBAAI,EAAC,cAAc,EAAE,oDAAoD,CAAC,EAC1E,MAAM,CACP;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAnJY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;IAOR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,0BAAkB,CAAC,CAAA;qCADL,uCAAe;GALxC,kBAAkB,CAmJ9B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type HostInstallPins } from './host-install-block';
|
|
2
|
+
export interface HostJoinRenderOptions {
|
|
3
|
+
homeUser: string;
|
|
4
|
+
homePath: string;
|
|
5
|
+
homePort: number;
|
|
6
|
+
uid?: number;
|
|
7
|
+
gid?: number;
|
|
8
|
+
minDiskGib: number;
|
|
9
|
+
requestId: string;
|
|
10
|
+
checkOnly?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface HostJoinBlockOptions extends HostJoinRenderOptions {
|
|
13
|
+
pins: HostInstallPins;
|
|
14
|
+
bootstrapTgzBase64: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function generateHostJoinBlock(options: HostJoinBlockOptions): string;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateHostJoinBlock = generateHostJoinBlock;
|
|
4
|
+
const claim_operation_1 = require("../operations/claim.operation");
|
|
5
|
+
const host_install_block_1 = require("./host-install-block");
|
|
6
|
+
function generateHostJoinBlock(options) {
|
|
7
|
+
if (!claim_operation_1.USER_NAME.test(options.homeUser) ||
|
|
8
|
+
!/^[A-Za-z0-9_-]{1,128}$/.test(options.requestId) ||
|
|
9
|
+
!Number.isSafeInteger(options.minDiskGib) ||
|
|
10
|
+
options.minDiskGib < 1 ||
|
|
11
|
+
!/^[a-f0-9]{64}$/.test(options.pins.bootstrap.sha256) ||
|
|
12
|
+
!/^\/(home|Users|var\/home)\/[A-Za-z0-9._/-]+$/.test(options.homePath))
|
|
13
|
+
throw new Error('Invalid host join inputs.');
|
|
14
|
+
const settings = {
|
|
15
|
+
userName: options.homeUser,
|
|
16
|
+
homePath: options.homePath,
|
|
17
|
+
port: options.homePort,
|
|
18
|
+
uid: options.uid,
|
|
19
|
+
minDiskGib: options.minDiskGib,
|
|
20
|
+
requestId: options.requestId,
|
|
21
|
+
sha256: options.pins.bootstrap.sha256,
|
|
22
|
+
archive: options.bootstrapTgzBase64,
|
|
23
|
+
checkOnly: options.checkOnly === true,
|
|
24
|
+
};
|
|
25
|
+
return `#!/bin/bash
|
|
26
|
+
set -Eeuo pipefail
|
|
27
|
+
export PATH="\${DEVCHAIN_HOST_JOIN_PATH:-/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin}"
|
|
28
|
+
export HOME="\${HOME:-/root}"
|
|
29
|
+
umask 077
|
|
30
|
+
flock --exclusive "\${DEVCHAIN_HOST_JOIN_ROOT:-}/etc/devchain-host/registry.lock" node <<'DEVCHAIN_HOST_JOIN'
|
|
31
|
+
const fs = require('node:fs/promises');
|
|
32
|
+
const path = require('node:path');
|
|
33
|
+
const { createHash } = require('node:crypto');
|
|
34
|
+
const { promisify } = require('node:util');
|
|
35
|
+
const run = promisify(require('node:child_process').execFile);
|
|
36
|
+
const settings = ${JSON.stringify(settings)};
|
|
37
|
+
const root = process.env.DEVCHAIN_HOST_JOIN_ROOT || '';
|
|
38
|
+
const at = (name) => path.join(root, name);
|
|
39
|
+
const userPattern = /^[a-z_][a-z0-9_-]{0,31}$/;
|
|
40
|
+
const versionPattern = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$/;
|
|
41
|
+
const fail = (code, message, extra) => { throw Object.assign(new Error(message), { code, ...extra }); };
|
|
42
|
+
const json = async (file) => JSON.parse(await fs.readFile(file, 'utf8'));
|
|
43
|
+
async function present(file) { try { await fs.lstat(file); return true; } catch (error) { if (error.code === 'ENOENT') return false; throw error; } }
|
|
44
|
+
async function check() {
|
|
45
|
+
if (!root && process.getuid() !== 0) fail('HOST_JOIN_CHECK_FAILED', 'Run the VM join as root.');
|
|
46
|
+
if (await present(at('/etc/devchain-host/fence.json'))) fail('HOST_JOIN_FENCED', 'This VM is being destroyed; joining is refused.');
|
|
47
|
+
const legacyFile = at('/etc/devchain-host/claim.json');
|
|
48
|
+
if (!(await present(legacyFile))) fail('HOST_NOT_CLAIMED', 'This VM is not a claimed DevChain host.');
|
|
49
|
+
const records = [];
|
|
50
|
+
try {
|
|
51
|
+
records.push({ claim: await json(legacyFile), installRoot: at('/opt/devchain-host') });
|
|
52
|
+
const dir = at('/etc/devchain-host/instances');
|
|
53
|
+
if (await present(dir)) for (const entry of await fs.readdir(dir, { withFileTypes: true })) {
|
|
54
|
+
if (!entry.isDirectory() || !userPattern.test(entry.name)) fail('HOST_JOIN_CHECK_FAILED', 'The instance registry is invalid.');
|
|
55
|
+
const ownDir = path.join(dir, entry.name);
|
|
56
|
+
const claimFile = path.join(ownDir, 'claim.json');
|
|
57
|
+
if (await present(claimFile)) {
|
|
58
|
+
const claim = await json(claimFile);
|
|
59
|
+
if (claim.userName !== entry.name) fail('HOST_JOIN_CHECK_FAILED', 'An instance claim does not match its registry entry.');
|
|
60
|
+
records.push({ claim, installRoot: at('/opt/devchain-host/instances/' + entry.name) });
|
|
61
|
+
} else if (entry.name === settings.userName && await present(path.join(ownDir, 'join.json'))) {
|
|
62
|
+
const join = await json(path.join(ownDir, 'join.json'));
|
|
63
|
+
if (join.requestId !== settings.requestId && (join.claimStartedAt || Date.parse(join.expiresAt) > Date.now()))
|
|
64
|
+
fail('INSTANCE_EXISTS', 'This VM already runs DevChain for ' + entry.name + ' on port ' + join.port + '.');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
} catch (error) {
|
|
68
|
+
if (error.code === 'HOST_JOIN_CHECK_FAILED' || error.code === 'INSTANCE_EXISTS') throw error;
|
|
69
|
+
fail('HOST_JOIN_CHECK_FAILED', 'Cannot read the VM instance registry.');
|
|
70
|
+
}
|
|
71
|
+
const unsupported = [];
|
|
72
|
+
for (const { claim, installRoot } of records) {
|
|
73
|
+
if (!userPattern.test(claim.userName) || !versionPattern.test(claim.version) || typeof claim.homePath !== 'string' || !Number.isInteger(claim.port))
|
|
74
|
+
fail('HOST_JOIN_CHECK_FAILED', 'An instance claim is invalid.');
|
|
75
|
+
let capable = false;
|
|
76
|
+
try { capable = (await json(path.join(installRoot, 'versions', claim.version, 'lib/node_modules/devchain-cli/dist/host-install/pins.json'))).sharedVmProtocol === ${host_install_block_1.SHARED_VM_PROTOCOL}; } catch {}
|
|
77
|
+
if (!capable) unsupported.push(claim.userName + ' (' + claim.version + ')');
|
|
78
|
+
}
|
|
79
|
+
if (unsupported.length) fail('HOST_JOIN_VERSION_UNSUPPORTED', 'Update these VM instances to a shared-capable DevChain version before joining: ' + unsupported.join(', ') + '.');
|
|
80
|
+
const duplicate = records.find(({ claim }) => claim.userName === settings.userName)?.claim;
|
|
81
|
+
if (duplicate) fail('INSTANCE_EXISTS', duplicate.homePath === settings.homePath
|
|
82
|
+
? 'DevChain already runs for ' + duplicate.userName + ' on port ' + duplicate.port + '. Add it by address.'
|
|
83
|
+
: 'This VM already runs DevChain for ' + duplicate.userName + ' on port ' + duplicate.port + '.');
|
|
84
|
+
let account;
|
|
85
|
+
try { account = (await run('getent', ['passwd', settings.userName])).stdout.trim().split(':'); }
|
|
86
|
+
catch (error) { if (error.code !== 2) fail('HOST_INSTALL_ACCOUNT_CHECK_FAILED', 'Could not check the requested account on the VM.'); }
|
|
87
|
+
if (account && account[5] !== settings.homePath)
|
|
88
|
+
fail('HOST_INSTALL_ACCOUNT_COLLISION', 'The VM account uses another home folder.', { accountHome: account[5] });
|
|
89
|
+
const memory = await fs.readFile(at('/proc/meminfo'), 'utf8');
|
|
90
|
+
const available = Number(memory.match(/^MemAvailable:\\s+(\\d+)/m)?.[1]);
|
|
91
|
+
if (!Number.isFinite(available)) fail('HOST_JOIN_CHECK_FAILED', 'Cannot inspect the VM available memory.');
|
|
92
|
+
if (available < 2048 * 1024) console.log('WARNING: The VM has ' + Math.floor(available / 1024) + ' MiB available memory; at least 2048 MiB is recommended when joining.');
|
|
93
|
+
const free = Number((await run('df', ['-Pk', root || '/'])).stdout.trim().split('\\n')[1]?.trim().split(/\\s+/)[3]);
|
|
94
|
+
if (!Number.isFinite(free) || free < settings.minDiskGib * 1024 * 1024)
|
|
95
|
+
fail('HOST_INSTALL_DISK_TOO_SMALL', 'At least ' + settings.minDiskGib + ' GiB of free disk space is required for this join.');
|
|
96
|
+
let syncthing;
|
|
97
|
+
try { syncthing = (await run('syncthing', ['--version'])).stdout; } catch {}
|
|
98
|
+
if (!/^syncthing v2\\./.test(syncthing || '')) fail('HOST_JOIN_SYNCTHING_UNSUPPORTED', 'The VM must already have Syncthing v2 before joining.');
|
|
99
|
+
}
|
|
100
|
+
async function main() {
|
|
101
|
+
await check();
|
|
102
|
+
if (settings.checkOnly) { console.log('Pre-validation passed.'); return; }
|
|
103
|
+
const dir = await fs.mkdtemp(at('/tmp/devchain-host-join-'));
|
|
104
|
+
try {
|
|
105
|
+
const archive = Buffer.from(settings.archive, 'base64');
|
|
106
|
+
if (createHash('sha256').update(archive).digest('hex') !== settings.sha256) fail('HOST_JOIN_PACKAGE_INVALID', 'The bootstrap package SHA-256 does not match.');
|
|
107
|
+
const file = path.join(dir, 'bootstrap.tgz');
|
|
108
|
+
await fs.writeFile(file, archive, { mode: 0o600 });
|
|
109
|
+
await run('npm', ['install', '-g', '--prefix=' + at('/opt/devchain-host/instances/' + settings.userName + '/helper'), '--omit=dev', '--no-fund', '--no-audit', '--ignore-scripts', file], { timeout: 15 * 60_000, maxBuffer: 1000000 });
|
|
110
|
+
const lib = at('/opt/devchain-host/instances/' + settings.userName + '/helper/lib/node_modules/devchain-host-bootstrap/lib');
|
|
111
|
+
const sys = require(path.join(lib, 'system')).createSystem(root ? { paths: { etcDir: at('/etc/devchain-host'), installRoot: at('/opt/devchain-host'), tlsDir: at('/etc/devchain-host/tls'), systemdDir: at('/etc/systemd/system'), sudoersDir: at('/etc/sudoers.d'), profileDir: at('/etc/profile.d'), binDir: at('/usr/local/bin'), cliPrefix: at('/usr/local'), manifestFile: at('/usr/share/devchain-host/manifest.json') } } : {});
|
|
112
|
+
// The wrapper already holds this kernel lock; acquiring it again would deadlock.
|
|
113
|
+
sys.withHostLock = async (action) => action();
|
|
114
|
+
await require(path.join(lib, 'instances')).reserveJoin({ userName: settings.userName, homePath: settings.homePath, port: settings.port, requestId: settings.requestId, ...(settings.uid !== undefined ? { uid: settings.uid } : {}) }, sys);
|
|
115
|
+
console.log('The instance bootstrap is installed and its join is reserved.');
|
|
116
|
+
} finally { await fs.rm(dir, { recursive: true, force: true }); }
|
|
117
|
+
}
|
|
118
|
+
main().catch((error) => { process.stderr.write(JSON.stringify({ code: error.code || 'HOST_JOIN_CHECK_FAILED', message: error.code ? error.message : 'The VM join check or helper installation failed.', ...(error.accountHome ? { accountHome: error.accountHome } : {}) }) + '\\n'); process.exitCode = 1; });
|
|
119
|
+
DEVCHAIN_HOST_JOIN
|
|
120
|
+
`;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=host-join-block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-join-block.js","sourceRoot":"","sources":["../../../../src/modules/remotes/host-install/host-join-block.ts"],"names":[],"mappings":";;AAoBA,sDAqHC;AAzID,mEAA0D;AAC1D,6DAAgF;AAmBhF,SAAgB,qBAAqB,CAAC,OAA6B;IACjE,IACE,CAAC,2BAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACjC,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACjD,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC;QACzC,OAAO,CAAC,UAAU,GAAG,CAAC;QACtB,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACrD,CAAC,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG;QACf,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,OAAO,CAAC,QAAQ;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM;QACrC,OAAO,EAAE,OAAO,CAAC,kBAAkB;QACnC,SAAS,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI;KACtC,CAAC;IACF,OAAO;;;;;;;;;;;mBAWU,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wKAwC6H,uCAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CzL,CAAC;AACF,CAAC"}
|
|
@@ -188,8 +188,8 @@ class ClientSshSession {
|
|
|
188
188
|
return;
|
|
189
189
|
}
|
|
190
190
|
channelToClose = channel;
|
|
191
|
-
const stdout = new StreamingCapture(this.secrets);
|
|
192
|
-
const stderr = new StreamingCapture(this.secrets);
|
|
191
|
+
const stdout = new StreamingCapture(options.capture === 'private' ? [] : this.secrets);
|
|
192
|
+
const stderr = new StreamingCapture(options.capture === 'private' ? [] : this.secrets);
|
|
193
193
|
channel.on('data', (chunk) => stdout.push(chunk));
|
|
194
194
|
channel.stderr.on('data', (chunk) => stderr.push(chunk));
|
|
195
195
|
channel.once('error', (streamError) => {
|