devchain-cli 0.25.0 → 0.26.1
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 +5 -0
- package/dist/server/common/git-shim-paths.js +25 -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 +30 -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 +47 -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/launch-script.d.ts +5 -0
- package/dist/server/modules/sessions/services/provider-runtime-preparation/launch-script.js +37 -0
- package/dist/server/modules/sessions/services/provider-runtime-preparation/launch-script.js.map +1 -0
- package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.d.ts +8 -1
- package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js +50 -2
- package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.service.js.map +1 -1
- package/dist/server/modules/sessions/services/provider-runtime-preparation/provider-runtime-preparation.types.d.ts +1 -0
- 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/session-runtime/__test-utils__/pipeline-harness.d.ts +2 -0
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +2 -0
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +6 -7
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +1 -2
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.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 +15 -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/terminal/services/terminal-io/delivery.d.ts +2 -2
- package/dist/server/modules/terminal/services/terminal-io/delivery.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.d.ts +1 -1
- package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js +6 -1
- package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.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 +22 -22
- 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
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CodexChecker = exports.CODEX_USAGE_MAX_OUTPUT_BYTES = exports.CODEX_USAGE_TIMEOUT_MS = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const child_process_1 = require("child_process");
|
|
12
|
+
const app_version_1 = require("../../../common/app-version");
|
|
13
|
+
const provider_cli_policy_1 = require("../../providers/adapters/provider-cli-policy");
|
|
14
|
+
const checker_helpers_1 = require("./checker-helpers");
|
|
15
|
+
const private_cwd_1 = require("./private-cwd");
|
|
16
|
+
exports.CODEX_USAGE_TIMEOUT_MS = 20_000;
|
|
17
|
+
exports.CODEX_USAGE_MAX_OUTPUT_BYTES = 256 * 1024;
|
|
18
|
+
const KILL_GRACE_MS = 2_000;
|
|
19
|
+
const PLAN_RE = /^[A-Za-z0-9_-]{1,40}$/;
|
|
20
|
+
const INITIALIZE_ID = 1;
|
|
21
|
+
const RATE_LIMITS_ID = 2;
|
|
22
|
+
let CodexChecker = class CodexChecker {
|
|
23
|
+
kind = 'codex';
|
|
24
|
+
async check(_account, env, binPath) {
|
|
25
|
+
const command = (0, provider_cli_policy_1.applyProviderCliNoUpdate)('codex', [binPath, 'app-server'], env);
|
|
26
|
+
const cwd = await (0, private_cwd_1.ensureUsageCheckCwd)('codex-cwd');
|
|
27
|
+
const rateLimits = await readRateLimits(command.argv, command.env, cwd);
|
|
28
|
+
if (!(0, checker_helpers_1.isObject)(rateLimits))
|
|
29
|
+
throw new Error('codex app-server returned no rate limits');
|
|
30
|
+
return mapCodexRateLimits(rateLimits);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.CodexChecker = CodexChecker;
|
|
34
|
+
exports.CodexChecker = CodexChecker = __decorate([
|
|
35
|
+
(0, common_1.Injectable)()
|
|
36
|
+
], CodexChecker);
|
|
37
|
+
function mapCodexRateLimits(limits) {
|
|
38
|
+
const windows = [limits.primary, limits.secondary].flatMap((raw) => {
|
|
39
|
+
const window = mapWindow(raw);
|
|
40
|
+
return window ? [window] : [];
|
|
41
|
+
});
|
|
42
|
+
const plan = typeof limits.planType === 'string' && PLAN_RE.test(limits.planType) ? limits.planType : null;
|
|
43
|
+
if (plan === null && windows.length === 0) {
|
|
44
|
+
return { kind: 'not-available', error: 'No subscription usage' };
|
|
45
|
+
}
|
|
46
|
+
const unique = windows.filter((w, index) => windows.findIndex((o) => o.id === w.id) === index);
|
|
47
|
+
return { kind: 'ok', windows: unique, extras: [], plan, source: 'cli' };
|
|
48
|
+
}
|
|
49
|
+
function mapWindow(raw) {
|
|
50
|
+
if (!(0, checker_helpers_1.isObject)(raw))
|
|
51
|
+
return null;
|
|
52
|
+
const { usedPercent, resetsAt, windowDurationMins } = raw;
|
|
53
|
+
if (typeof usedPercent !== 'number' || !Number.isFinite(usedPercent) || usedPercent < 0) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const reset = typeof resetsAt === 'number' && Number.isFinite(resetsAt) ? resetsAt : null;
|
|
57
|
+
const minutes = typeof windowDurationMins === 'number' && windowDurationMins > 0 ? windowDurationMins : null;
|
|
58
|
+
if (minutes === 300)
|
|
59
|
+
return (0, checker_helpers_1.standardWindow)('5h', usedPercent, reset);
|
|
60
|
+
if (minutes === 10080)
|
|
61
|
+
return (0, checker_helpers_1.standardWindow)('weekly', usedPercent, reset);
|
|
62
|
+
const hours = minutes === null ? null : Math.round((minutes / 60) * 10) / 10;
|
|
63
|
+
return {
|
|
64
|
+
id: minutes === null ? 'other' : `other-${minutes}`,
|
|
65
|
+
label: hours === null ? 'Usage limit' : `${hours} h limit`,
|
|
66
|
+
kind: 'other',
|
|
67
|
+
usedPercent,
|
|
68
|
+
resetsAt: reset,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function readRateLimits(argv, env, cwd) {
|
|
72
|
+
return new Promise((resolve, reject) => {
|
|
73
|
+
const child = (0, child_process_1.spawn)(argv[0], argv.slice(1), {
|
|
74
|
+
cwd,
|
|
75
|
+
env,
|
|
76
|
+
shell: false,
|
|
77
|
+
stdio: ['pipe', 'pipe', 'ignore'],
|
|
78
|
+
});
|
|
79
|
+
let buffer = '';
|
|
80
|
+
let bytes = 0;
|
|
81
|
+
let done = false;
|
|
82
|
+
let exited = false;
|
|
83
|
+
let killTimer;
|
|
84
|
+
const send = (message) => {
|
|
85
|
+
child.stdin?.write(`${JSON.stringify(message)}\n`);
|
|
86
|
+
};
|
|
87
|
+
const stop = () => {
|
|
88
|
+
clearTimeout(timer);
|
|
89
|
+
if (exited)
|
|
90
|
+
return;
|
|
91
|
+
child.kill('SIGTERM');
|
|
92
|
+
killTimer = setTimeout(() => child.kill('SIGKILL'), KILL_GRACE_MS);
|
|
93
|
+
killTimer.unref?.();
|
|
94
|
+
};
|
|
95
|
+
const finish = (outcome) => {
|
|
96
|
+
if (done)
|
|
97
|
+
return;
|
|
98
|
+
done = true;
|
|
99
|
+
stop();
|
|
100
|
+
if ('error' in outcome)
|
|
101
|
+
reject(new Error(outcome.error));
|
|
102
|
+
else
|
|
103
|
+
resolve(outcome.value);
|
|
104
|
+
};
|
|
105
|
+
const timer = setTimeout(() => finish({ error: 'codex app-server timed out' }), exports.CODEX_USAGE_TIMEOUT_MS);
|
|
106
|
+
const handleLine = (line) => {
|
|
107
|
+
let message;
|
|
108
|
+
try {
|
|
109
|
+
message = JSON.parse(line);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (!(0, checker_helpers_1.isObject)(message))
|
|
115
|
+
return;
|
|
116
|
+
if (message.id === INITIALIZE_ID) {
|
|
117
|
+
if (message.error !== undefined)
|
|
118
|
+
return finish({ error: 'codex app-server rejected initialize' });
|
|
119
|
+
send({ method: 'initialized' });
|
|
120
|
+
send({ id: RATE_LIMITS_ID, method: 'account/rateLimits/read' });
|
|
121
|
+
}
|
|
122
|
+
else if (message.id === RATE_LIMITS_ID) {
|
|
123
|
+
if (message.error !== undefined || !(0, checker_helpers_1.isObject)(message.result)) {
|
|
124
|
+
return finish({ error: 'codex app-server returned an error' });
|
|
125
|
+
}
|
|
126
|
+
finish({ value: message.result.rateLimits });
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
child.stdout?.setEncoding('utf8');
|
|
130
|
+
child.stdout?.on('data', (chunk) => {
|
|
131
|
+
bytes += Buffer.byteLength(chunk);
|
|
132
|
+
if (bytes > exports.CODEX_USAGE_MAX_OUTPUT_BYTES) {
|
|
133
|
+
return finish({ error: 'codex app-server output too large' });
|
|
134
|
+
}
|
|
135
|
+
buffer += chunk;
|
|
136
|
+
let newline = buffer.indexOf('\n');
|
|
137
|
+
while (newline >= 0) {
|
|
138
|
+
const line = buffer.slice(0, newline).trim();
|
|
139
|
+
buffer = buffer.slice(newline + 1);
|
|
140
|
+
if (line)
|
|
141
|
+
handleLine(line);
|
|
142
|
+
newline = buffer.indexOf('\n');
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
child.stdin?.on('error', () => undefined);
|
|
146
|
+
child.on('error', () => finish({ error: 'codex app-server failed to start' }));
|
|
147
|
+
child.on('close', () => {
|
|
148
|
+
exited = true;
|
|
149
|
+
clearTimeout(killTimer);
|
|
150
|
+
finish({ error: 'codex app-server exited before replying' });
|
|
151
|
+
});
|
|
152
|
+
send({
|
|
153
|
+
id: INITIALIZE_ID,
|
|
154
|
+
method: 'initialize',
|
|
155
|
+
params: { clientInfo: { name: 'devchain', version: (0, app_version_1.getAppVersion)() } },
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=codex.checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.checker.js","sourceRoot":"","sources":["../../../../src/modules/provider-usage/checkers/codex.checker.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAE5C,iDAAsC;AACtC,6DAA4D;AAC5D,sFAAwF;AAMxF,uDAA8E;AAC9E,+CAAoD;AAEvC,QAAA,sBAAsB,GAAG,MAAM,CAAC;AAChC,QAAA,4BAA4B,GAAG,GAAG,GAAG,IAAI,CAAC;AACvD,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,MAAM,OAAO,GAAG,uBAAuB,CAAC;AAExC,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,cAAc,GAAG,CAAC,CAAC;AAQlB,IAAM,YAAY,GAAlB,MAAM,YAAY;IACd,IAAI,GAAG,OAAgB,CAAC;IAEjC,KAAK,CAAC,KAAK,CACT,QAA8B,EAC9B,GAAqC,EACrC,OAAe;QAEf,MAAM,OAAO,GAAG,IAAA,8CAAwB,EAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;QAChF,MAAM,GAAG,GAAG,MAAM,IAAA,iCAAmB,EAAC,WAAW,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxE,IAAI,CAAC,IAAA,0BAAQ,EAAC,UAAU,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACvF,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;CACF,CAAA;AAdY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;GACA,YAAY,CAcxB;AAGD,SAAS,kBAAkB,CAAC,MAAkB;IAC5C,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACjE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GACR,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhG,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACnE,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;IAC/F,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,IAAI,CAAC,IAAA,0BAAQ,EAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAC;IAC1D,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACxF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1F,MAAM,OAAO,GACX,OAAO,kBAAkB,KAAK,QAAQ,IAAI,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/F,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,IAAA,gCAAc,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,IAAA,gCAAc,EAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAC7E,OAAO;QACL,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE;QACnD,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU;QAC1D,IAAI,EAAE,OAAO;QACb,WAAW;QACX,QAAQ,EAAE,KAAK;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,IAAuB,EACvB,GAA2B,EAC3B,GAAW;IAEX,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC1C,GAAG;YACH,GAAG;YACH,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,SAAoD,CAAC;QAEzD,MAAM,IAAI,GAAG,CAAC,OAAmB,EAAQ,EAAE;YACzC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,MAAM;gBAAE,OAAO;YACnB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC;YACnE,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QACtB,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,OAA+C,EAAQ,EAAE;YACvE,IAAI,IAAI;gBAAE,OAAO;YACjB,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,EAAE,CAAC;YACP,IAAI,OAAO,IAAI,OAAO;gBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;;gBACpD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,EACrD,8BAAsB,CACvB,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAQ,EAAE;YACxC,IAAI,OAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAA,0BAAQ,EAAC,OAAO,CAAC;gBAAE,OAAO;YAC/B,IAAI,OAAO,CAAC,EAAE,KAAK,aAAa,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;oBAC7B,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;gBACnE,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;gBAChC,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;YAClE,CAAC;iBAAM,IAAI,OAAO,CAAC,EAAE,KAAK,cAAc,EAAE,CAAC;gBACzC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,IAAA,0BAAQ,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7D,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,KAAK,GAAG,oCAA4B,EAAE,CAAC;gBACzC,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,IAAI,KAAK,CAAC;YAChB,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,OAAO,IAAI,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACnC,IAAI,IAAI;oBAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC3B,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC,CAAC,CAAC;QAC/E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,MAAM,GAAG,IAAI,CAAC;YACd,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,CAAC,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAA,2BAAa,GAAE,EAAE,EAAE;SACvE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function ensureUsageCheckCwd(name: string): Promise<string>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ensureUsageCheckCwd = ensureUsageCheckCwd;
|
|
4
|
+
const private_cwd_1 = require("../../providers/utils/private-cwd");
|
|
5
|
+
function ensureUsageCheckCwd(name) {
|
|
6
|
+
return (0, private_cwd_1.ensurePrivateCwd)('provider-usage', name);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=private-cwd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private-cwd.js","sourceRoot":"","sources":["../../../../src/modules/provider-usage/checkers/private-cwd.ts"],"names":[],"mappings":";;AAGA,kDAEC;AALD,mEAAqE;AAGrE,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,OAAO,IAAA,8BAAgB,EAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ProviderUsageResponse } from '@devchain/shared';
|
|
2
|
+
import { ProviderUsageService } from '../services/provider-usage.service';
|
|
3
|
+
export declare class ProviderUsageController {
|
|
4
|
+
private readonly usage;
|
|
5
|
+
constructor(usage: ProviderUsageService);
|
|
6
|
+
get(query: unknown): Promise<ProviderUsageResponse>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ProviderUsageController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const zod_1 = require("zod");
|
|
18
|
+
const shared_1 = require("@devchain/shared");
|
|
19
|
+
const provider_usage_service_1 = require("../services/provider-usage.service");
|
|
20
|
+
const ProviderUsageQuerySchema = zod_1.z.object({
|
|
21
|
+
projectId: zod_1.z.string().min(1),
|
|
22
|
+
maxAgeSec: zod_1.z.coerce
|
|
23
|
+
.number()
|
|
24
|
+
.int()
|
|
25
|
+
.min(shared_1.PROVIDER_USAGE_INTERVAL_LIMITS.hoverMaxAgeSec.min)
|
|
26
|
+
.max(shared_1.PROVIDER_USAGE_INTERVAL_LIMITS.openProjectMaxAgeMin.max * 60)
|
|
27
|
+
.optional(),
|
|
28
|
+
});
|
|
29
|
+
let ProviderUsageController = class ProviderUsageController {
|
|
30
|
+
usage;
|
|
31
|
+
constructor(usage) {
|
|
32
|
+
this.usage = usage;
|
|
33
|
+
}
|
|
34
|
+
async get(query) {
|
|
35
|
+
const { projectId, maxAgeSec } = ProviderUsageQuerySchema.parse(query);
|
|
36
|
+
return this.usage.getProjectUsage(projectId, maxAgeSec);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
exports.ProviderUsageController = ProviderUsageController;
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, common_1.Get)(),
|
|
42
|
+
__param(0, (0, common_1.Query)()),
|
|
43
|
+
__metadata("design:type", Function),
|
|
44
|
+
__metadata("design:paramtypes", [Object]),
|
|
45
|
+
__metadata("design:returntype", Promise)
|
|
46
|
+
], ProviderUsageController.prototype, "get", null);
|
|
47
|
+
exports.ProviderUsageController = ProviderUsageController = __decorate([
|
|
48
|
+
(0, common_1.Controller)('api/provider-usage'),
|
|
49
|
+
__metadata("design:paramtypes", [provider_usage_service_1.ProviderUsageService])
|
|
50
|
+
], ProviderUsageController);
|
|
51
|
+
//# sourceMappingURL=provider-usage.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-usage.controller.js","sourceRoot":"","sources":["../../../../src/modules/provider-usage/controllers/provider-usage.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6BAAwB;AACxB,6CAA8F;AAC9F,+EAA0E;AAE1E,MAAM,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5B,SAAS,EAAE,OAAC,CAAC,MAAM;SAChB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,uCAA8B,CAAC,cAAc,CAAC,GAAG,CAAC;SACtD,GAAG,CAAC,uCAA8B,CAAC,oBAAoB,CAAC,GAAG,GAAG,EAAE,CAAC;SACjE,QAAQ,EAAE;CACd,CAAC,CAAC;AAGI,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IACL;IAA7B,YAA6B,KAA2B;QAA3B,UAAK,GAAL,KAAK,CAAsB;IAAG,CAAC;IAGtD,AAAN,KAAK,CAAC,GAAG,CAAU,KAAc;QAC/B,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;CACF,CAAA;AARY,0DAAuB;AAI5B;IADL,IAAA,YAAG,GAAE;IACK,WAAA,IAAA,cAAK,GAAE,CAAA;;;;kDAGjB;kCAPU,uBAAuB;IADnC,IAAA,mBAAU,EAAC,oBAAoB,CAAC;qCAEK,6CAAoB;GAD7C,uBAAuB,CAQnC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ProviderUsageModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const events_core_module_1 = require("../events/events-core.module");
|
|
12
|
+
const provider_cli_version_probe_module_1 = require("../providers/services/provider-cli-version-probe.module");
|
|
13
|
+
const settings_module_1 = require("../settings/settings.module");
|
|
14
|
+
const session_rows_module_1 = require("../storage/sessions/session-rows.module");
|
|
15
|
+
const storage_module_1 = require("../storage/storage.module");
|
|
16
|
+
const process_executor_module_1 = require("../terminal/services/process-executor/process-executor.module");
|
|
17
|
+
const agy_checker_1 = require("./checkers/agy.checker");
|
|
18
|
+
const claude_login_checker_1 = require("./checkers/claude-login.checker");
|
|
19
|
+
const claude_token_checker_1 = require("./checkers/claude-token.checker");
|
|
20
|
+
const codex_checker_1 = require("./checkers/codex.checker");
|
|
21
|
+
const provider_usage_controller_1 = require("./controllers/provider-usage.controller");
|
|
22
|
+
const provider_usage_types_1 = require("./provider-usage.types");
|
|
23
|
+
const provider_usage_accounts_service_1 = require("./services/provider-usage-accounts.service");
|
|
24
|
+
const provider_usage_service_1 = require("./services/provider-usage.service");
|
|
25
|
+
const CHECKERS = [
|
|
26
|
+
claude_login_checker_1.ClaudeLoginChecker,
|
|
27
|
+
claude_token_checker_1.ClaudeTokenChecker,
|
|
28
|
+
codex_checker_1.CodexChecker,
|
|
29
|
+
agy_checker_1.AgyChecker,
|
|
30
|
+
];
|
|
31
|
+
let ProviderUsageModule = class ProviderUsageModule {
|
|
32
|
+
};
|
|
33
|
+
exports.ProviderUsageModule = ProviderUsageModule;
|
|
34
|
+
exports.ProviderUsageModule = ProviderUsageModule = __decorate([
|
|
35
|
+
(0, common_1.Module)({
|
|
36
|
+
imports: [
|
|
37
|
+
storage_module_1.StorageModule,
|
|
38
|
+
settings_module_1.SettingsModule,
|
|
39
|
+
session_rows_module_1.SessionRowsModule,
|
|
40
|
+
process_executor_module_1.ProcessExecutorModule,
|
|
41
|
+
provider_cli_version_probe_module_1.ProviderCliVersionProbeModule,
|
|
42
|
+
events_core_module_1.EventsCoreModule,
|
|
43
|
+
],
|
|
44
|
+
controllers: [provider_usage_controller_1.ProviderUsageController],
|
|
45
|
+
exports: [provider_usage_service_1.ProviderUsageService],
|
|
46
|
+
providers: [
|
|
47
|
+
...CHECKERS,
|
|
48
|
+
{
|
|
49
|
+
provide: provider_usage_types_1.PROVIDER_USAGE_CHECKERS,
|
|
50
|
+
useFactory: (...checkers) => checkers,
|
|
51
|
+
inject: CHECKERS,
|
|
52
|
+
},
|
|
53
|
+
provider_usage_accounts_service_1.ProviderUsageAccountsService,
|
|
54
|
+
provider_usage_service_1.ProviderUsageService,
|
|
55
|
+
],
|
|
56
|
+
})
|
|
57
|
+
], ProviderUsageModule);
|
|
58
|
+
//# sourceMappingURL=provider-usage.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-usage.module.js","sourceRoot":"","sources":["../../../src/modules/provider-usage/provider-usage.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAmD;AACnD,qEAAgE;AAChE,+GAAwG;AACxG,iEAA6D;AAC7D,iFAA4E;AAC5E,8DAA0D;AAC1D,2GAAsG;AACtG,wDAAoD;AACpD,0EAAqE;AACrE,0EAAqE;AACrE,4DAAwD;AACxD,uFAAkF;AAClF,iEAA4F;AAC5F,gGAA0F;AAC1F,8EAAyE;AAGzE,MAAM,QAAQ,GAAiC;IAC7C,yCAAkB;IAClB,yCAAkB;IAClB,4BAAY;IACZ,wBAAU;CACX,CAAC;AAwBK,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAAG,CAAA;AAAtB,kDAAmB;8BAAnB,mBAAmB;IAtB/B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,8BAAa;YACb,gCAAc;YACd,uCAAiB;YACjB,+CAAqB;YACrB,iEAA6B;YAC7B,qCAAgB;SACjB;QACD,WAAW,EAAE,CAAC,mDAAuB,CAAC;QACtC,OAAO,EAAE,CAAC,6CAAoB,CAAC;QAC/B,SAAS,EAAE;YACT,GAAG,QAAQ;YACX;gBACE,OAAO,EAAE,8CAAuB;gBAChC,UAAU,EAAE,CAAC,GAAG,QAAgC,EAAE,EAAE,CAAC,QAAQ;gBAC7D,MAAM,EAAE,QAAQ;aACjB;YACD,8DAA4B;YAC5B,6CAAoB;SACrB;KACF,CAAC;GACW,mBAAmB,CAAG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ProviderUsageProvider, UsageWindow } from '@devchain/shared';
|
|
2
|
+
export type ProviderUsageCheckerKind = 'claude-login' | 'claude-token' | 'codex' | 'agy';
|
|
3
|
+
export interface ProviderUsageAccount {
|
|
4
|
+
key: string;
|
|
5
|
+
provider: ProviderUsageProvider;
|
|
6
|
+
kind: ProviderUsageCheckerKind;
|
|
7
|
+
label: string;
|
|
8
|
+
}
|
|
9
|
+
export type ProviderUsageCheckResult = {
|
|
10
|
+
kind: 'ok';
|
|
11
|
+
windows: UsageWindow[];
|
|
12
|
+
extras: UsageWindow[];
|
|
13
|
+
plan: string | null;
|
|
14
|
+
source: 'cli' | 'headers';
|
|
15
|
+
} | {
|
|
16
|
+
kind: 'not-available';
|
|
17
|
+
error: string;
|
|
18
|
+
} | {
|
|
19
|
+
kind: 'unsupported';
|
|
20
|
+
error: string;
|
|
21
|
+
};
|
|
22
|
+
export interface ProviderUsageChecker {
|
|
23
|
+
readonly kind: ProviderUsageCheckerKind;
|
|
24
|
+
check(account: ProviderUsageAccount, env: Readonly<Record<string, string>>, binPath: string): Promise<ProviderUsageCheckResult>;
|
|
25
|
+
}
|
|
26
|
+
export declare const PROVIDER_USAGE_CHECKERS: unique symbol;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-usage.types.js","sourceRoot":"","sources":["../../../src/modules/provider-usage/provider-usage.types.ts"],"names":[],"mappings":";;;AAqCa,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ProviderUsageAccount } from '../provider-usage.types';
|
|
2
|
+
export declare function buildEffectiveEnv(processEnv: NodeJS.ProcessEnv, providerEnv: Record<string, string> | null, configEnv: Record<string, string> | null): Record<string, string>;
|
|
3
|
+
export declare function resolveUsageAccount(providerName: string, env: Readonly<Record<string, string>>): ProviderUsageAccount | null;
|
|
4
|
+
export declare function claudeConfigDir(env: Readonly<Record<string, string>>): string;
|
|
5
|
+
export declare function compareUsageAccounts(a: ProviderUsageAccount, b: ProviderUsageAccount): number;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildEffectiveEnv = buildEffectiveEnv;
|
|
4
|
+
exports.resolveUsageAccount = resolveUsageAccount;
|
|
5
|
+
exports.claudeConfigDir = claudeConfigDir;
|
|
6
|
+
exports.compareUsageAccounts = compareUsageAccounts;
|
|
7
|
+
const crypto_1 = require("crypto");
|
|
8
|
+
const os_1 = require("os");
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const shared_1 = require("@devchain/shared");
|
|
11
|
+
const CLAUDE_NON_SUBSCRIPTION_ENV = [
|
|
12
|
+
'ANTHROPIC_BASE_URL',
|
|
13
|
+
'ANTHROPIC_AUTH_TOKEN',
|
|
14
|
+
'ANTHROPIC_API_KEY',
|
|
15
|
+
'CLAUDE_CODE_USE_BEDROCK',
|
|
16
|
+
'CLAUDE_CODE_USE_VERTEX',
|
|
17
|
+
'CLAUDE_CODE_USE_FOUNDRY',
|
|
18
|
+
];
|
|
19
|
+
const CODEX_IDENTITY_ENV = ['OPENAI_API_KEY', 'CODEX_API_KEY', 'OPENAI_BASE_URL'];
|
|
20
|
+
function buildEffectiveEnv(processEnv, providerEnv, configEnv) {
|
|
21
|
+
const env = {};
|
|
22
|
+
for (const [key, value] of Object.entries(processEnv)) {
|
|
23
|
+
if (value !== undefined)
|
|
24
|
+
env[key] = value;
|
|
25
|
+
}
|
|
26
|
+
return { ...env, ...(providerEnv ?? {}), ...(configEnv ?? {}) };
|
|
27
|
+
}
|
|
28
|
+
function resolveUsageAccount(providerName, env) {
|
|
29
|
+
const home = homeDir(env);
|
|
30
|
+
switch (providerName.toLowerCase()) {
|
|
31
|
+
case 'claude': {
|
|
32
|
+
if (CLAUDE_NON_SUBSCRIPTION_ENV.some((key) => valueOf(env, key) !== null))
|
|
33
|
+
return null;
|
|
34
|
+
const token = valueOf(env, 'CLAUDE_CODE_OAUTH_TOKEN');
|
|
35
|
+
if (token !== null) {
|
|
36
|
+
const id = sha256Prefix(token);
|
|
37
|
+
return {
|
|
38
|
+
key: `claude:token:${id}`,
|
|
39
|
+
provider: 'claude',
|
|
40
|
+
kind: 'claude-token',
|
|
41
|
+
label: `Claude token ${id.slice(0, 6)}`,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const configDir = claudeConfigDir(env);
|
|
45
|
+
return {
|
|
46
|
+
key: `claude:login:${configDir}`,
|
|
47
|
+
provider: 'claude',
|
|
48
|
+
kind: 'claude-login',
|
|
49
|
+
label: valueOf(env, 'CLAUDE_CONFIG_DIR') !== null ? `Claude (${(0, path_1.basename)(configDir)})` : 'Claude',
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
case 'codex': {
|
|
53
|
+
const customHome = valueOf(env, 'CODEX_HOME');
|
|
54
|
+
const codexHome = customHome !== null ? (0, path_1.resolve)(customHome) : (0, path_1.join)(home, '.codex');
|
|
55
|
+
const identity = CODEX_IDENTITY_ENV.flatMap((key) => {
|
|
56
|
+
const value = valueOf(env, key);
|
|
57
|
+
return value !== null ? [`${key}=${value}`] : [];
|
|
58
|
+
}).join('\n');
|
|
59
|
+
const id = identity ? sha256Prefix(identity) : 'none';
|
|
60
|
+
const suffixes = [
|
|
61
|
+
customHome !== null ? (0, path_1.basename)(codexHome) : null,
|
|
62
|
+
identity ? `key ${id.slice(0, 6)}` : null,
|
|
63
|
+
].filter((part) => part !== null);
|
|
64
|
+
return {
|
|
65
|
+
key: `codex:${codexHome}:${id}`,
|
|
66
|
+
provider: 'codex',
|
|
67
|
+
kind: 'codex',
|
|
68
|
+
label: suffixes.length > 0 ? `Codex (${suffixes.join(', ')})` : 'Codex',
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
case 'agy':
|
|
72
|
+
return { key: `agy:${home}`, provider: 'agy', kind: 'agy', label: 'agy' };
|
|
73
|
+
default:
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function claudeConfigDir(env) {
|
|
78
|
+
const customDir = valueOf(env, 'CLAUDE_CONFIG_DIR');
|
|
79
|
+
return customDir !== null ? (0, path_1.resolve)(customDir) : (0, path_1.join)(homeDir(env), '.claude');
|
|
80
|
+
}
|
|
81
|
+
function compareUsageAccounts(a, b) {
|
|
82
|
+
return (shared_1.PROVIDER_USAGE_PROVIDERS.indexOf(a.provider) - shared_1.PROVIDER_USAGE_PROVIDERS.indexOf(b.provider));
|
|
83
|
+
}
|
|
84
|
+
function homeDir(env) {
|
|
85
|
+
return valueOf(env, 'HOME') ?? (0, os_1.homedir)();
|
|
86
|
+
}
|
|
87
|
+
function valueOf(env, key) {
|
|
88
|
+
const value = env[key];
|
|
89
|
+
return value === undefined || value === '' ? null : value;
|
|
90
|
+
}
|
|
91
|
+
function sha256Prefix(value) {
|
|
92
|
+
return (0, crypto_1.createHash)('sha256').update(value).digest('hex').slice(0, 12);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=provider-usage-accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-usage-accounts.js","sourceRoot":"","sources":["../../../../src/modules/provider-usage/services/provider-usage-accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type StorageService } from '../../storage/interfaces/storage.interface';
|
|
2
|
+
import type { ProfileProviderConfig, Provider } from '../../storage/models/domain.models';
|
|
3
|
+
import type { ProviderUsageAccount } from '../provider-usage.types';
|
|
4
|
+
export interface ResolvedUsageAccount {
|
|
5
|
+
account: ProviderUsageAccount;
|
|
6
|
+
env: Readonly<Record<string, string>>;
|
|
7
|
+
binPath: string | null;
|
|
8
|
+
}
|
|
9
|
+
type AccountsStorage = Pick<StorageService, 'getProject' | 'listAgents' | 'getAgent' | 'listProfileProviderConfigsByProfile' | 'getProvider' | 'getProviderEnvForProject'>;
|
|
10
|
+
export interface ResolveMemo {
|
|
11
|
+
configsByProfile: Map<string, Promise<ProfileProviderConfig[]>>;
|
|
12
|
+
providers: Map<string, Promise<Provider>>;
|
|
13
|
+
results: Map<string, ResolvedUsageAccount | null>;
|
|
14
|
+
}
|
|
15
|
+
export declare class ProviderUsageAccountsService {
|
|
16
|
+
private readonly storage;
|
|
17
|
+
constructor(storage: AccountsStorage);
|
|
18
|
+
listForProject(projectId: string): Promise<ResolvedUsageAccount[]>;
|
|
19
|
+
resolveForAgent(agentId: string, memo?: ResolveMemo): Promise<ResolvedUsageAccount | null>;
|
|
20
|
+
private resolveAgent;
|
|
21
|
+
}
|
|
22
|
+
export declare function createMemo(): ResolveMemo;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ProviderUsageAccountsService = void 0;
|
|
16
|
+
exports.createMemo = createMemo;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const storage_interface_1 = require("../../storage/interfaces/storage.interface");
|
|
19
|
+
const provider_usage_accounts_1 = require("./provider-usage-accounts");
|
|
20
|
+
const MAX_PROJECT_AGENTS = 1000;
|
|
21
|
+
let ProviderUsageAccountsService = class ProviderUsageAccountsService {
|
|
22
|
+
storage;
|
|
23
|
+
constructor(storage) {
|
|
24
|
+
this.storage = storage;
|
|
25
|
+
}
|
|
26
|
+
async listForProject(projectId) {
|
|
27
|
+
await this.storage.getProject(projectId);
|
|
28
|
+
const { items: agents } = await this.storage.listAgents(projectId, {
|
|
29
|
+
limit: MAX_PROJECT_AGENTS,
|
|
30
|
+
});
|
|
31
|
+
const memo = createMemo();
|
|
32
|
+
const byKey = new Map();
|
|
33
|
+
for (const agent of agents) {
|
|
34
|
+
const resolved = await this.resolveAgent(agent, memo);
|
|
35
|
+
if (resolved && !byKey.has(resolved.account.key))
|
|
36
|
+
byKey.set(resolved.account.key, resolved);
|
|
37
|
+
}
|
|
38
|
+
return [...byKey.values()].sort((a, b) => (0, provider_usage_accounts_1.compareUsageAccounts)(a.account, b.account));
|
|
39
|
+
}
|
|
40
|
+
async resolveForAgent(agentId, memo = createMemo()) {
|
|
41
|
+
const agent = await this.storage.getAgent(agentId);
|
|
42
|
+
return this.resolveAgent(agent, memo);
|
|
43
|
+
}
|
|
44
|
+
async resolveAgent(agent, memo) {
|
|
45
|
+
let configs = memo.configsByProfile.get(agent.profileId);
|
|
46
|
+
if (!configs) {
|
|
47
|
+
configs = this.storage.listProfileProviderConfigsByProfile(agent.profileId);
|
|
48
|
+
memo.configsByProfile.set(agent.profileId, configs);
|
|
49
|
+
}
|
|
50
|
+
const profileConfigs = await configs;
|
|
51
|
+
const config = profileConfigs.find((candidate) => candidate.id === agent.providerConfigId) ??
|
|
52
|
+
profileConfigs[0];
|
|
53
|
+
if (!config)
|
|
54
|
+
return null;
|
|
55
|
+
const resultKey = `${config.id}\0${agent.projectId}`;
|
|
56
|
+
const known = memo.results.get(resultKey);
|
|
57
|
+
if (known !== undefined)
|
|
58
|
+
return known;
|
|
59
|
+
let provider = memo.providers.get(config.providerId);
|
|
60
|
+
if (!provider) {
|
|
61
|
+
provider = this.storage.getProvider(config.providerId);
|
|
62
|
+
memo.providers.set(config.providerId, provider);
|
|
63
|
+
}
|
|
64
|
+
const { id, name, binPath } = await provider;
|
|
65
|
+
const env = (0, provider_usage_accounts_1.buildEffectiveEnv)(process.env, this.storage.getProviderEnvForProject(id, agent.projectId), config.env);
|
|
66
|
+
const account = (0, provider_usage_accounts_1.resolveUsageAccount)(name, env);
|
|
67
|
+
const resolved = account ? { account, env, binPath } : null;
|
|
68
|
+
memo.results.set(resultKey, resolved);
|
|
69
|
+
return resolved;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
exports.ProviderUsageAccountsService = ProviderUsageAccountsService;
|
|
73
|
+
exports.ProviderUsageAccountsService = ProviderUsageAccountsService = __decorate([
|
|
74
|
+
(0, common_1.Injectable)(),
|
|
75
|
+
__param(0, (0, common_1.Inject)(storage_interface_1.STORAGE_SERVICE)),
|
|
76
|
+
__metadata("design:paramtypes", [Object])
|
|
77
|
+
], ProviderUsageAccountsService);
|
|
78
|
+
function createMemo() {
|
|
79
|
+
return { configsByProfile: new Map(), providers: new Map(), results: new Map() };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=provider-usage-accounts.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-usage-accounts.service.js","sourceRoot":"","sources":["../../../../src/modules/provider-usage/services/provider-usage-accounts.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import type { ProviderUsageResponse } from '@devchain/shared';
|
|
3
|
+
import { EventsService } from '../../events/services/events.service';
|
|
4
|
+
import { SettingsService } from '../../settings/services/settings.service';
|
|
5
|
+
import { SessionRowStore } from '../../storage/sessions/session-row.store';
|
|
6
|
+
import { type ProviderUsageChecker } from '../provider-usage.types';
|
|
7
|
+
import { ProviderUsageAccountsService, type ResolvedUsageAccount } from './provider-usage-accounts.service';
|
|
8
|
+
export declare const PROVIDER_USAGE_TICK_MS = 60000;
|
|
9
|
+
export declare const PROVIDER_USAGE_MAX_PARALLEL_CHECKS = 2;
|
|
10
|
+
export declare const PROVIDER_USAGE_CHECK_TIMEOUT_MS = 60000;
|
|
11
|
+
export declare class ProviderUsageService implements OnModuleInit, OnModuleDestroy {
|
|
12
|
+
private readonly accounts;
|
|
13
|
+
private readonly settings;
|
|
14
|
+
private readonly sessionRows;
|
|
15
|
+
private readonly events;
|
|
16
|
+
private readonly entries;
|
|
17
|
+
private readonly checkers;
|
|
18
|
+
private readonly waitingForSlot;
|
|
19
|
+
private activeChecks;
|
|
20
|
+
private timer;
|
|
21
|
+
private ticking;
|
|
22
|
+
constructor(accounts: ProviderUsageAccountsService, settings: SettingsService, sessionRows: SessionRowStore, events: EventsService, checkers: ProviderUsageChecker[]);
|
|
23
|
+
onModuleInit(): void;
|
|
24
|
+
onModuleDestroy(): void;
|
|
25
|
+
getProjectUsage(projectId: string, maxAgeSec?: number): Promise<ProviderUsageResponse>;
|
|
26
|
+
tick(): Promise<void>;
|
|
27
|
+
requestCheck(resolved: ResolvedUsageAccount): Promise<void>;
|
|
28
|
+
private runCheck;
|
|
29
|
+
private acquireSlot;
|
|
30
|
+
private releaseSlot;
|
|
31
|
+
private publishUpdated;
|
|
32
|
+
private resolveRunningAgent;
|
|
33
|
+
private runningMaxAgeMs;
|
|
34
|
+
private isDue;
|
|
35
|
+
private entryFor;
|
|
36
|
+
private toSnapshot;
|
|
37
|
+
}
|