@cat-factory/worker 0.6.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/LICENSE +21 -0
- package/dist/app.d.ts +22 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +49 -0
- package/dist/app.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +234 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/ai/CloudflareModelProvider.d.ts +23 -0
- package/dist/infrastructure/ai/CloudflareModelProvider.d.ts.map +1 -0
- package/dist/infrastructure/ai/CloudflareModelProvider.js +62 -0
- package/dist/infrastructure/ai/CloudflareModelProvider.js.map +1 -0
- package/dist/infrastructure/ai/CompositeAgentExecutor.d.ts +2 -0
- package/dist/infrastructure/ai/CompositeAgentExecutor.d.ts.map +1 -0
- package/dist/infrastructure/ai/CompositeAgentExecutor.js +5 -0
- package/dist/infrastructure/ai/CompositeAgentExecutor.js.map +1 -0
- package/dist/infrastructure/ai/ContainerAgentExecutor.d.ts +2 -0
- package/dist/infrastructure/ai/ContainerAgentExecutor.d.ts.map +1 -0
- package/dist/infrastructure/ai/ContainerAgentExecutor.js +5 -0
- package/dist/infrastructure/ai/ContainerAgentExecutor.js.map +1 -0
- package/dist/infrastructure/ai/ContainerRepoBootstrapper.d.ts +2 -0
- package/dist/infrastructure/ai/ContainerRepoBootstrapper.d.ts.map +1 -0
- package/dist/infrastructure/ai/ContainerRepoBootstrapper.js +5 -0
- package/dist/infrastructure/ai/ContainerRepoBootstrapper.js.map +1 -0
- package/dist/infrastructure/ai/ContainerRepoScanner.d.ts +39 -0
- package/dist/infrastructure/ai/ContainerRepoScanner.d.ts.map +1 -0
- package/dist/infrastructure/ai/ContainerRepoScanner.js +115 -0
- package/dist/infrastructure/ai/ContainerRepoScanner.js.map +1 -0
- package/dist/infrastructure/ai/LlmFragmentSelector.d.ts +2 -0
- package/dist/infrastructure/ai/LlmFragmentSelector.d.ts.map +1 -0
- package/dist/infrastructure/ai/LlmFragmentSelector.js +4 -0
- package/dist/infrastructure/ai/LlmFragmentSelector.js.map +1 -0
- package/dist/infrastructure/ai/RunnerJobClient.d.ts +2 -0
- package/dist/infrastructure/ai/RunnerJobClient.d.ts.map +1 -0
- package/dist/infrastructure/ai/RunnerJobClient.js +5 -0
- package/dist/infrastructure/ai/RunnerJobClient.js.map +1 -0
- package/dist/infrastructure/ai/WorkersAiLlmUpstream.d.ts +28 -0
- package/dist/infrastructure/ai/WorkersAiLlmUpstream.d.ts.map +1 -0
- package/dist/infrastructure/ai/WorkersAiLlmUpstream.js +486 -0
- package/dist/infrastructure/ai/WorkersAiLlmUpstream.js.map +1 -0
- package/dist/infrastructure/ai/providerEndpoints.d.ts +17 -0
- package/dist/infrastructure/ai/providerEndpoints.d.ts.map +1 -0
- package/dist/infrastructure/ai/providerEndpoints.js +42 -0
- package/dist/infrastructure/ai/providerEndpoints.js.map +1 -0
- package/dist/infrastructure/ai/registries.d.ts +11 -0
- package/dist/infrastructure/ai/registries.d.ts.map +1 -0
- package/dist/infrastructure/ai/registries.js +14 -0
- package/dist/infrastructure/ai/registries.js.map +1 -0
- package/dist/infrastructure/auth/GitHubOAuth.d.ts +2 -0
- package/dist/infrastructure/auth/GitHubOAuth.d.ts.map +1 -0
- package/dist/infrastructure/auth/GitHubOAuth.js +3 -0
- package/dist/infrastructure/auth/GitHubOAuth.js.map +1 -0
- package/dist/infrastructure/auth/middleware.d.ts +2 -0
- package/dist/infrastructure/auth/middleware.d.ts.map +1 -0
- package/dist/infrastructure/auth/middleware.js +3 -0
- package/dist/infrastructure/auth/middleware.js.map +1 -0
- package/dist/infrastructure/auth/signing.d.ts +3 -0
- package/dist/infrastructure/auth/signing.d.ts.map +1 -0
- package/dist/infrastructure/auth/signing.js +3 -0
- package/dist/infrastructure/auth/signing.js.map +1 -0
- package/dist/infrastructure/config/agents.d.ts +6 -0
- package/dist/infrastructure/config/agents.d.ts.map +1 -0
- package/dist/infrastructure/config/agents.js +100 -0
- package/dist/infrastructure/config/agents.js.map +1 -0
- package/dist/infrastructure/config/auth.d.ts +13 -0
- package/dist/infrastructure/config/auth.d.ts.map +1 -0
- package/dist/infrastructure/config/auth.js +80 -0
- package/dist/infrastructure/config/auth.js.map +1 -0
- package/dist/infrastructure/config/cors.d.ts +2 -0
- package/dist/infrastructure/config/cors.d.ts.map +1 -0
- package/dist/infrastructure/config/cors.js +3 -0
- package/dist/infrastructure/config/cors.js.map +1 -0
- package/dist/infrastructure/config/datadog.d.ts +6 -0
- package/dist/infrastructure/config/datadog.d.ts.map +1 -0
- package/dist/infrastructure/config/datadog.js +22 -0
- package/dist/infrastructure/config/datadog.js.map +1 -0
- package/dist/infrastructure/config/documents.d.ts +5 -0
- package/dist/infrastructure/config/documents.d.ts.map +1 -0
- package/dist/infrastructure/config/documents.js +36 -0
- package/dist/infrastructure/config/documents.js.map +1 -0
- package/dist/infrastructure/config/email.d.ts +5 -0
- package/dist/infrastructure/config/email.d.ts.map +1 -0
- package/dist/infrastructure/config/email.js +12 -0
- package/dist/infrastructure/config/email.js.map +1 -0
- package/dist/infrastructure/config/environments.d.ts +5 -0
- package/dist/infrastructure/config/environments.d.ts.map +1 -0
- package/dist/infrastructure/config/environments.js +15 -0
- package/dist/infrastructure/config/environments.js.map +1 -0
- package/dist/infrastructure/config/execution.d.ts +5 -0
- package/dist/infrastructure/config/execution.d.ts.map +1 -0
- package/dist/infrastructure/config/execution.js +21 -0
- package/dist/infrastructure/config/execution.js.map +1 -0
- package/dist/infrastructure/config/fragmentLibrary.d.ts +5 -0
- package/dist/infrastructure/config/fragmentLibrary.d.ts.map +1 -0
- package/dist/infrastructure/config/fragmentLibrary.js +7 -0
- package/dist/infrastructure/config/fragmentLibrary.js.map +1 -0
- package/dist/infrastructure/config/github.d.ts +5 -0
- package/dist/infrastructure/config/github.d.ts.map +1 -0
- package/dist/infrastructure/config/github.js +25 -0
- package/dist/infrastructure/config/github.js.map +1 -0
- package/dist/infrastructure/config/index.d.ts +20 -0
- package/dist/infrastructure/config/index.d.ts.map +1 -0
- package/dist/infrastructure/config/index.js +52 -0
- package/dist/infrastructure/config/index.js.map +1 -0
- package/dist/infrastructure/config/langfuse.d.ts +10 -0
- package/dist/infrastructure/config/langfuse.d.ts.map +1 -0
- package/dist/infrastructure/config/langfuse.js +17 -0
- package/dist/infrastructure/config/langfuse.js.map +1 -0
- package/dist/infrastructure/config/observability.d.ts +10 -0
- package/dist/infrastructure/config/observability.d.ts.map +1 -0
- package/dist/infrastructure/config/observability.js +11 -0
- package/dist/infrastructure/config/observability.js.map +1 -0
- package/dist/infrastructure/config/retention.d.ts +5 -0
- package/dist/infrastructure/config/retention.d.ts.map +1 -0
- package/dist/infrastructure/config/retention.js +15 -0
- package/dist/infrastructure/config/retention.js.map +1 -0
- package/dist/infrastructure/config/runners.d.ts +5 -0
- package/dist/infrastructure/config/runners.d.ts.map +1 -0
- package/dist/infrastructure/config/runners.js +13 -0
- package/dist/infrastructure/config/runners.js.map +1 -0
- package/dist/infrastructure/config/slack.d.ts +5 -0
- package/dist/infrastructure/config/slack.d.ts.map +1 -0
- package/dist/infrastructure/config/slack.js +17 -0
- package/dist/infrastructure/config/slack.js.map +1 -0
- package/dist/infrastructure/config/spending.d.ts +4 -0
- package/dist/infrastructure/config/spending.d.ts.map +1 -0
- package/dist/infrastructure/config/spending.js +36 -0
- package/dist/infrastructure/config/spending.js.map +1 -0
- package/dist/infrastructure/config/tasks.d.ts +5 -0
- package/dist/infrastructure/config/tasks.d.ts.map +1 -0
- package/dist/infrastructure/config/tasks.js +31 -0
- package/dist/infrastructure/config/tasks.js.map +1 -0
- package/dist/infrastructure/config/utils.d.ts +6 -0
- package/dist/infrastructure/config/utils.d.ts.map +1 -0
- package/dist/infrastructure/config/utils.js +24 -0
- package/dist/infrastructure/config/utils.js.map +1 -0
- package/dist/infrastructure/container.d.ts +8 -0
- package/dist/infrastructure/container.d.ts.map +1 -0
- package/dist/infrastructure/container.js +1157 -0
- package/dist/infrastructure/container.js.map +1 -0
- package/dist/infrastructure/containers/CloudflareContainerTransport.d.ts +22 -0
- package/dist/infrastructure/containers/CloudflareContainerTransport.d.ts.map +1 -0
- package/dist/infrastructure/containers/CloudflareContainerTransport.js +129 -0
- package/dist/infrastructure/containers/CloudflareContainerTransport.js.map +1 -0
- package/dist/infrastructure/containers/ContainerInstanceRegistry.d.ts +62 -0
- package/dist/infrastructure/containers/ContainerInstanceRegistry.d.ts.map +1 -0
- package/dist/infrastructure/containers/ContainerInstanceRegistry.js +74 -0
- package/dist/infrastructure/containers/ContainerInstanceRegistry.js.map +1 -0
- package/dist/infrastructure/containers/ContainerSessionService.d.ts +2 -0
- package/dist/infrastructure/containers/ContainerSessionService.d.ts.map +1 -0
- package/dist/infrastructure/containers/ContainerSessionService.js +3 -0
- package/dist/infrastructure/containers/ContainerSessionService.js.map +1 -0
- package/dist/infrastructure/containers/ExecutionContainer.d.ts +48 -0
- package/dist/infrastructure/containers/ExecutionContainer.d.ts.map +1 -0
- package/dist/infrastructure/containers/ExecutionContainer.js +88 -0
- package/dist/infrastructure/containers/ExecutionContainer.js.map +1 -0
- package/dist/infrastructure/documents/ConfluenceProvider.d.ts +29 -0
- package/dist/infrastructure/documents/ConfluenceProvider.d.ts.map +1 -0
- package/dist/infrastructure/documents/ConfluenceProvider.js +179 -0
- package/dist/infrastructure/documents/ConfluenceProvider.js.map +1 -0
- package/dist/infrastructure/documents/GitHubDocsProvider.d.ts +42 -0
- package/dist/infrastructure/documents/GitHubDocsProvider.d.ts.map +1 -0
- package/dist/infrastructure/documents/GitHubDocsProvider.js +85 -0
- package/dist/infrastructure/documents/GitHubDocsProvider.js.map +1 -0
- package/dist/infrastructure/documents/NotionProvider.d.ts +32 -0
- package/dist/infrastructure/documents/NotionProvider.d.ts.map +1 -0
- package/dist/infrastructure/documents/NotionProvider.js +220 -0
- package/dist/infrastructure/documents/NotionProvider.js.map +1 -0
- package/dist/infrastructure/durable-objects/WorkspaceEventsHub.d.ts +20 -0
- package/dist/infrastructure/durable-objects/WorkspaceEventsHub.d.ts.map +1 -0
- package/dist/infrastructure/durable-objects/WorkspaceEventsHub.js +62 -0
- package/dist/infrastructure/durable-objects/WorkspaceEventsHub.js.map +1 -0
- package/dist/infrastructure/env.d.ts +370 -0
- package/dist/infrastructure/env.d.ts.map +1 -0
- package/dist/infrastructure/env.js +2 -0
- package/dist/infrastructure/env.js.map +1 -0
- package/dist/infrastructure/environments/HttpEnvironmentProvider.d.ts +27 -0
- package/dist/infrastructure/environments/HttpEnvironmentProvider.d.ts.map +1 -0
- package/dist/infrastructure/environments/HttpEnvironmentProvider.js +314 -0
- package/dist/infrastructure/environments/HttpEnvironmentProvider.js.map +1 -0
- package/dist/infrastructure/environments/WebCryptoSecretCipher.d.ts +2 -0
- package/dist/infrastructure/environments/WebCryptoSecretCipher.d.ts.map +1 -0
- package/dist/infrastructure/environments/WebCryptoSecretCipher.js +5 -0
- package/dist/infrastructure/environments/WebCryptoSecretCipher.js.map +1 -0
- package/dist/infrastructure/environments/sweep.d.ts +5 -0
- package/dist/infrastructure/environments/sweep.d.ts.map +1 -0
- package/dist/infrastructure/environments/sweep.js +16 -0
- package/dist/infrastructure/environments/sweep.js.map +1 -0
- package/dist/infrastructure/events/DurableObjectEventPublisher.d.ts +25 -0
- package/dist/infrastructure/events/DurableObjectEventPublisher.d.ts.map +1 -0
- package/dist/infrastructure/events/DurableObjectEventPublisher.js +64 -0
- package/dist/infrastructure/events/DurableObjectEventPublisher.js.map +1 -0
- package/dist/infrastructure/events/InAppNotificationChannel.d.ts +19 -0
- package/dist/infrastructure/events/InAppNotificationChannel.d.ts.map +1 -0
- package/dist/infrastructure/events/InAppNotificationChannel.js +22 -0
- package/dist/infrastructure/events/InAppNotificationChannel.js.map +1 -0
- package/dist/infrastructure/gateways/DoRealtimeGateway.d.ts +15 -0
- package/dist/infrastructure/gateways/DoRealtimeGateway.d.ts.map +1 -0
- package/dist/infrastructure/gateways/DoRealtimeGateway.js +20 -0
- package/dist/infrastructure/gateways/DoRealtimeGateway.js.map +1 -0
- package/dist/infrastructure/gateways/GitHubGateways.d.ts +27 -0
- package/dist/infrastructure/gateways/GitHubGateways.d.ts.map +1 -0
- package/dist/infrastructure/gateways/GitHubGateways.js +48 -0
- package/dist/infrastructure/gateways/GitHubGateways.js.map +1 -0
- package/dist/infrastructure/github/FetchGitHubClient.d.ts +2 -0
- package/dist/infrastructure/github/FetchGitHubClient.d.ts.map +1 -0
- package/dist/infrastructure/github/FetchGitHubClient.js +4 -0
- package/dist/infrastructure/github/FetchGitHubClient.js.map +1 -0
- package/dist/infrastructure/github/FetchGitHubProvisioningClient.d.ts +2 -0
- package/dist/infrastructure/github/FetchGitHubProvisioningClient.d.ts.map +1 -0
- package/dist/infrastructure/github/FetchGitHubProvisioningClient.js +5 -0
- package/dist/infrastructure/github/FetchGitHubProvisioningClient.js.map +1 -0
- package/dist/infrastructure/github/GitHubAppAuth.d.ts +2 -0
- package/dist/infrastructure/github/GitHubAppAuth.d.ts.map +1 -0
- package/dist/infrastructure/github/GitHubAppAuth.js +5 -0
- package/dist/infrastructure/github/GitHubAppAuth.js.map +1 -0
- package/dist/infrastructure/github/GitHubAppRegistry.d.ts +2 -0
- package/dist/infrastructure/github/GitHubAppRegistry.d.ts.map +1 -0
- package/dist/infrastructure/github/GitHubAppRegistry.js +4 -0
- package/dist/infrastructure/github/GitHubAppRegistry.js.map +1 -0
- package/dist/infrastructure/github/GitHubCiStatusProvider.d.ts +2 -0
- package/dist/infrastructure/github/GitHubCiStatusProvider.d.ts.map +1 -0
- package/dist/infrastructure/github/GitHubCiStatusProvider.js +4 -0
- package/dist/infrastructure/github/GitHubCiStatusProvider.js.map +1 -0
- package/dist/infrastructure/github/GitHubMergeabilityProvider.d.ts +2 -0
- package/dist/infrastructure/github/GitHubMergeabilityProvider.d.ts.map +1 -0
- package/dist/infrastructure/github/GitHubMergeabilityProvider.js +4 -0
- package/dist/infrastructure/github/GitHubMergeabilityProvider.js.map +1 -0
- package/dist/infrastructure/github/GitHubPullRequestMerger.d.ts +2 -0
- package/dist/infrastructure/github/GitHubPullRequestMerger.d.ts.map +1 -0
- package/dist/infrastructure/github/GitHubPullRequestMerger.js +4 -0
- package/dist/infrastructure/github/GitHubPullRequestMerger.js.map +1 -0
- package/dist/infrastructure/github/WebCryptoWebhookVerifier.d.ts +2 -0
- package/dist/infrastructure/github/WebCryptoWebhookVerifier.d.ts.map +1 -0
- package/dist/infrastructure/github/WebCryptoWebhookVerifier.js +5 -0
- package/dist/infrastructure/github/WebCryptoWebhookVerifier.js.map +1 -0
- package/dist/infrastructure/github/encoding.d.ts +2 -0
- package/dist/infrastructure/github/encoding.d.ts.map +1 -0
- package/dist/infrastructure/github/encoding.js +3 -0
- package/dist/infrastructure/github/encoding.js.map +1 -0
- package/dist/infrastructure/github/state.d.ts +2 -0
- package/dist/infrastructure/github/state.d.ts.map +1 -0
- package/dist/infrastructure/github/state.js +3 -0
- package/dist/infrastructure/github/state.js.map +1 -0
- package/dist/infrastructure/github/sync-consumer.d.ts +16 -0
- package/dist/infrastructure/github/sync-consumer.d.ts.map +1 -0
- package/dist/infrastructure/github/sync-consumer.js +130 -0
- package/dist/infrastructure/github/sync-consumer.js.map +1 -0
- package/dist/infrastructure/http/errorHandler.d.ts +2 -0
- package/dist/infrastructure/http/errorHandler.d.ts.map +1 -0
- package/dist/infrastructure/http/errorHandler.js +3 -0
- package/dist/infrastructure/http/errorHandler.js.map +1 -0
- package/dist/infrastructure/http/params.d.ts +2 -0
- package/dist/infrastructure/http/params.d.ts.map +1 -0
- package/dist/infrastructure/http/params.js +3 -0
- package/dist/infrastructure/http/params.js.map +1 -0
- package/dist/infrastructure/http/types.d.ts +12 -0
- package/dist/infrastructure/http/types.d.ts.map +1 -0
- package/dist/infrastructure/http/types.js +2 -0
- package/dist/infrastructure/http/types.js.map +1 -0
- package/dist/infrastructure/http/validation.d.ts +2 -0
- package/dist/infrastructure/http/validation.d.ts.map +1 -0
- package/dist/infrastructure/http/validation.js +3 -0
- package/dist/infrastructure/http/validation.js.map +1 -0
- package/dist/infrastructure/observability/logger.d.ts +3 -0
- package/dist/infrastructure/observability/logger.d.ts.map +1 -0
- package/dist/infrastructure/observability/logger.js +4 -0
- package/dist/infrastructure/observability/logger.js.map +1 -0
- package/dist/infrastructure/repositories/D1AccountInvitationRepository.d.ts +15 -0
- package/dist/infrastructure/repositories/D1AccountInvitationRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1AccountInvitationRepository.js +63 -0
- package/dist/infrastructure/repositories/D1AccountInvitationRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1AccountRepository.d.ts +15 -0
- package/dist/infrastructure/repositories/D1AccountRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1AccountRepository.js +52 -0
- package/dist/infrastructure/repositories/D1AccountRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1AgentRunRepository.d.ts +18 -0
- package/dist/infrastructure/repositories/D1AgentRunRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1AgentRunRepository.js +34 -0
- package/dist/infrastructure/repositories/D1AgentRunRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1BlockRepository.d.ts +23 -0
- package/dist/infrastructure/repositories/D1BlockRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1BlockRepository.js +101 -0
- package/dist/infrastructure/repositories/D1BlockRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1BootstrapJobRepository.d.ts +16 -0
- package/dist/infrastructure/repositories/D1BootstrapJobRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1BootstrapJobRepository.js +209 -0
- package/dist/infrastructure/repositories/D1BootstrapJobRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1BranchProjectionRepository.d.ts +12 -0
- package/dist/infrastructure/repositories/D1BranchProjectionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1BranchProjectionRepository.js +29 -0
- package/dist/infrastructure/repositories/D1BranchProjectionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1CheckRunProjectionRepository.d.ts +12 -0
- package/dist/infrastructure/repositories/D1CheckRunProjectionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1CheckRunProjectionRepository.js +29 -0
- package/dist/infrastructure/repositories/D1CheckRunProjectionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1ClarityReviewRepository.d.ts +19 -0
- package/dist/infrastructure/repositories/D1ClarityReviewRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1ClarityReviewRepository.js +75 -0
- package/dist/infrastructure/repositories/D1ClarityReviewRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1CommitProjectionRepository.d.ts +13 -0
- package/dist/infrastructure/repositories/D1CommitProjectionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1CommitProjectionRepository.js +48 -0
- package/dist/infrastructure/repositories/D1CommitProjectionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1ConsensusSessionRepository.d.ts +19 -0
- package/dist/infrastructure/repositories/D1ConsensusSessionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1ConsensusSessionRepository.js +88 -0
- package/dist/infrastructure/repositories/D1ConsensusSessionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1DatadogConnectionRepository.d.ts +17 -0
- package/dist/infrastructure/repositories/D1DatadogConnectionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1DatadogConnectionRepository.js +47 -0
- package/dist/infrastructure/repositories/D1DatadogConnectionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1DocumentConnectionRepository.d.ts +27 -0
- package/dist/infrastructure/repositories/D1DocumentConnectionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1DocumentConnectionRepository.js +89 -0
- package/dist/infrastructure/repositories/D1DocumentConnectionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1DocumentRepository.d.ts +15 -0
- package/dist/infrastructure/repositories/D1DocumentRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1DocumentRepository.js +66 -0
- package/dist/infrastructure/repositories/D1DocumentRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1EmailConnectionRepository.d.ts +13 -0
- package/dist/infrastructure/repositories/D1EmailConnectionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1EmailConnectionRepository.js +46 -0
- package/dist/infrastructure/repositories/D1EmailConnectionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1EnvironmentConnectionRepository.d.ts +13 -0
- package/dist/infrastructure/repositories/D1EnvironmentConnectionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1EnvironmentConnectionRepository.js +48 -0
- package/dist/infrastructure/repositories/D1EnvironmentConnectionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1EnvironmentRegistryRepository.d.ts +17 -0
- package/dist/infrastructure/repositories/D1EnvironmentRegistryRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1EnvironmentRegistryRepository.js +95 -0
- package/dist/infrastructure/repositories/D1EnvironmentRegistryRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1ExecutionRepository.d.ts +28 -0
- package/dist/infrastructure/repositories/D1ExecutionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1ExecutionRepository.js +113 -0
- package/dist/infrastructure/repositories/D1ExecutionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1FragmentSourceRepository.d.ts +15 -0
- package/dist/infrastructure/repositories/D1FragmentSourceRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1FragmentSourceRepository.js +66 -0
- package/dist/infrastructure/repositories/D1FragmentSourceRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1GitHubInstallationRepository.d.ts +17 -0
- package/dist/infrastructure/repositories/D1GitHubInstallationRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1GitHubInstallationRepository.js +79 -0
- package/dist/infrastructure/repositories/D1GitHubInstallationRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1IssueProjectionRepository.d.ts +13 -0
- package/dist/infrastructure/repositories/D1IssueProjectionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1IssueProjectionRepository.js +36 -0
- package/dist/infrastructure/repositories/D1IssueProjectionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1LiveContainerRepository.d.ts +17 -0
- package/dist/infrastructure/repositories/D1LiveContainerRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1LiveContainerRepository.js +40 -0
- package/dist/infrastructure/repositories/D1LiveContainerRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1LlmCallMetricRepository.d.ts +15 -0
- package/dist/infrastructure/repositories/D1LlmCallMetricRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1LlmCallMetricRepository.js +123 -0
- package/dist/infrastructure/repositories/D1LlmCallMetricRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1LocalModelEndpointRepository.d.ts +15 -0
- package/dist/infrastructure/repositories/D1LocalModelEndpointRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1LocalModelEndpointRepository.js +63 -0
- package/dist/infrastructure/repositories/D1LocalModelEndpointRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1MembershipRepository.d.ts +15 -0
- package/dist/infrastructure/repositories/D1MembershipRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1MembershipRepository.js +58 -0
- package/dist/infrastructure/repositories/D1MembershipRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1MergePresetRepository.d.ts +21 -0
- package/dist/infrastructure/repositories/D1MergePresetRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1MergePresetRepository.js +88 -0
- package/dist/infrastructure/repositories/D1MergePresetRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1ModelDefaultsRepository.d.ts +18 -0
- package/dist/infrastructure/repositories/D1ModelDefaultsRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1ModelDefaultsRepository.js +47 -0
- package/dist/infrastructure/repositories/D1ModelDefaultsRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1NotificationRepository.d.ts +20 -0
- package/dist/infrastructure/repositories/D1NotificationRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1NotificationRepository.js +81 -0
- package/dist/infrastructure/repositories/D1NotificationRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1PersonalSubscriptionRepository.d.ts +28 -0
- package/dist/infrastructure/repositories/D1PersonalSubscriptionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1PersonalSubscriptionRepository.js +142 -0
- package/dist/infrastructure/repositories/D1PersonalSubscriptionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1PipelineRepository.d.ts +15 -0
- package/dist/infrastructure/repositories/D1PipelineRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1PipelineRepository.js +46 -0
- package/dist/infrastructure/repositories/D1PipelineRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1PipelineScheduleRepository.d.ts +26 -0
- package/dist/infrastructure/repositories/D1PipelineScheduleRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1PipelineScheduleRepository.js +192 -0
- package/dist/infrastructure/repositories/D1PipelineScheduleRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1PromptFragmentRepository.d.ts +15 -0
- package/dist/infrastructure/repositories/D1PromptFragmentRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1PromptFragmentRepository.js +90 -0
- package/dist/infrastructure/repositories/D1PromptFragmentRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1ProviderApiKeyRepository.d.ts +21 -0
- package/dist/infrastructure/repositories/D1ProviderApiKeyRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1ProviderApiKeyRepository.js +108 -0
- package/dist/infrastructure/repositories/D1ProviderApiKeyRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1ProviderSubscriptionTokenRepository.d.ts +19 -0
- package/dist/infrastructure/repositories/D1ProviderSubscriptionTokenRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1ProviderSubscriptionTokenRepository.js +78 -0
- package/dist/infrastructure/repositories/D1ProviderSubscriptionTokenRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1PullRequestProjectionRepository.d.ts +13 -0
- package/dist/infrastructure/repositories/D1PullRequestProjectionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1PullRequestProjectionRepository.js +32 -0
- package/dist/infrastructure/repositories/D1PullRequestProjectionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1RateLimitRepository.d.ts +18 -0
- package/dist/infrastructure/repositories/D1RateLimitRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1RateLimitRepository.js +30 -0
- package/dist/infrastructure/repositories/D1RateLimitRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1ReferenceArchitectureRepository.d.ts +15 -0
- package/dist/infrastructure/repositories/D1ReferenceArchitectureRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1ReferenceArchitectureRepository.js +77 -0
- package/dist/infrastructure/repositories/D1ReferenceArchitectureRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1ReleaseHealthConfigRepository.d.ts +17 -0
- package/dist/infrastructure/repositories/D1ReleaseHealthConfigRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1ReleaseHealthConfigRepository.js +64 -0
- package/dist/infrastructure/repositories/D1ReleaseHealthConfigRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1RepoBlueprintRepository.d.ts +20 -0
- package/dist/infrastructure/repositories/D1RepoBlueprintRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1RepoBlueprintRepository.js +64 -0
- package/dist/infrastructure/repositories/D1RepoBlueprintRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1RepoProjectionRepository.d.ts +20 -0
- package/dist/infrastructure/repositories/D1RepoProjectionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1RepoProjectionRepository.js +121 -0
- package/dist/infrastructure/repositories/D1RepoProjectionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1RequirementReviewRepository.d.ts +20 -0
- package/dist/infrastructure/repositories/D1RequirementReviewRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1RequirementReviewRepository.js +76 -0
- package/dist/infrastructure/repositories/D1RequirementReviewRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1RunnerPoolConnectionRepository.d.ts +13 -0
- package/dist/infrastructure/repositories/D1RunnerPoolConnectionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1RunnerPoolConnectionRepository.js +48 -0
- package/dist/infrastructure/repositories/D1RunnerPoolConnectionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1ServiceFragmentDefaultsRepository.d.ts +16 -0
- package/dist/infrastructure/repositories/D1ServiceFragmentDefaultsRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1ServiceFragmentDefaultsRepository.js +27 -0
- package/dist/infrastructure/repositories/D1ServiceFragmentDefaultsRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1ServiceRepository.d.ts +19 -0
- package/dist/infrastructure/repositories/D1ServiceRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1ServiceRepository.js +114 -0
- package/dist/infrastructure/repositories/D1ServiceRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1SlackRepositories.d.ts +29 -0
- package/dist/infrastructure/repositories/D1SlackRepositories.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1SlackRepositories.js +119 -0
- package/dist/infrastructure/repositories/D1SlackRepositories.js.map +1 -0
- package/dist/infrastructure/repositories/D1TaskConnectionRepository.d.ts +27 -0
- package/dist/infrastructure/repositories/D1TaskConnectionRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1TaskConnectionRepository.js +89 -0
- package/dist/infrastructure/repositories/D1TaskConnectionRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1TaskRepository.d.ts +15 -0
- package/dist/infrastructure/repositories/D1TaskRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1TaskRepository.js +90 -0
- package/dist/infrastructure/repositories/D1TaskRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1TokenUsageRepository.d.ts +13 -0
- package/dist/infrastructure/repositories/D1TokenUsageRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1TokenUsageRepository.js +41 -0
- package/dist/infrastructure/repositories/D1TokenUsageRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1TrackerSettingsRepository.d.ts +12 -0
- package/dist/infrastructure/repositories/D1TrackerSettingsRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1TrackerSettingsRepository.js +32 -0
- package/dist/infrastructure/repositories/D1TrackerSettingsRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1UserRepository.d.ts +19 -0
- package/dist/infrastructure/repositories/D1UserRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1UserRepository.js +108 -0
- package/dist/infrastructure/repositories/D1UserRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1WorkspaceMountRepository.d.ts +19 -0
- package/dist/infrastructure/repositories/D1WorkspaceMountRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1WorkspaceMountRepository.js +115 -0
- package/dist/infrastructure/repositories/D1WorkspaceMountRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1WorkspaceRepository.d.ts +18 -0
- package/dist/infrastructure/repositories/D1WorkspaceRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1WorkspaceRepository.js +77 -0
- package/dist/infrastructure/repositories/D1WorkspaceRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1WorkspaceSettingsRepository.d.ts +17 -0
- package/dist/infrastructure/repositories/D1WorkspaceSettingsRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1WorkspaceSettingsRepository.js +50 -0
- package/dist/infrastructure/repositories/D1WorkspaceSettingsRepository.js.map +1 -0
- package/dist/infrastructure/repositories/chunk.d.ts +11 -0
- package/dist/infrastructure/repositories/chunk.d.ts.map +1 -0
- package/dist/infrastructure/repositories/chunk.js +17 -0
- package/dist/infrastructure/repositories/chunk.js.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/branch.d.ts +11 -0
- package/dist/infrastructure/repositories/github-mappers/branch.d.ts.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/branch.js +22 -0
- package/dist/infrastructure/repositories/github-mappers/branch.js.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/check-run.d.ts +13 -0
- package/dist/infrastructure/repositories/github-mappers/check-run.d.ts.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/check-run.js +24 -0
- package/dist/infrastructure/repositories/github-mappers/check-run.js.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/commit.d.ts +12 -0
- package/dist/infrastructure/repositories/github-mappers/commit.d.ts.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/commit.js +22 -0
- package/dist/infrastructure/repositories/github-mappers/commit.js.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/index.d.ts +11 -0
- package/dist/infrastructure/repositories/github-mappers/index.d.ts.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/index.js +14 -0
- package/dist/infrastructure/repositories/github-mappers/index.js.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/installation.d.ts +16 -0
- package/dist/infrastructure/repositories/github-mappers/installation.d.ts.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/installation.js +29 -0
- package/dist/infrastructure/repositories/github-mappers/installation.js.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/issue.d.ts +15 -0
- package/dist/infrastructure/repositories/github-mappers/issue.d.ts.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/issue.js +29 -0
- package/dist/infrastructure/repositories/github-mappers/issue.js.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/pull-request.d.ts +18 -0
- package/dist/infrastructure/repositories/github-mappers/pull-request.d.ts.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/pull-request.js +36 -0
- package/dist/infrastructure/repositories/github-mappers/pull-request.js.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/repo.d.ts +15 -0
- package/dist/infrastructure/repositories/github-mappers/repo.d.ts.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/repo.js +31 -0
- package/dist/infrastructure/repositories/github-mappers/repo.js.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/serialize.d.ts +3 -0
- package/dist/infrastructure/repositories/github-mappers/serialize.d.ts.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/serialize.js +4 -0
- package/dist/infrastructure/repositories/github-mappers/serialize.js.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/sync-cursor.d.ts +8 -0
- package/dist/infrastructure/repositories/github-mappers/sync-cursor.d.ts.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/sync-cursor.js +4 -0
- package/dist/infrastructure/repositories/github-mappers/sync-cursor.js.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/upsert.d.ts +11 -0
- package/dist/infrastructure/repositories/github-mappers/upsert.d.ts.map +1 -0
- package/dist/infrastructure/repositories/github-mappers/upsert.js +18 -0
- package/dist/infrastructure/repositories/github-mappers/upsert.js.map +1 -0
- package/dist/infrastructure/repositories/mappers.d.ts +2 -0
- package/dist/infrastructure/repositories/mappers.d.ts.map +1 -0
- package/dist/infrastructure/repositories/mappers.js +4 -0
- package/dist/infrastructure/repositories/mappers.js.map +1 -0
- package/dist/infrastructure/runners/HttpRunnerPoolProvider.d.ts +2 -0
- package/dist/infrastructure/runners/HttpRunnerPoolProvider.d.ts.map +1 -0
- package/dist/infrastructure/runners/HttpRunnerPoolProvider.js +5 -0
- package/dist/infrastructure/runners/HttpRunnerPoolProvider.js.map +1 -0
- package/dist/infrastructure/runners/RunnerPoolTransport.d.ts +2 -0
- package/dist/infrastructure/runners/RunnerPoolTransport.d.ts.map +1 -0
- package/dist/infrastructure/runners/RunnerPoolTransport.js +5 -0
- package/dist/infrastructure/runners/RunnerPoolTransport.js.map +1 -0
- package/dist/infrastructure/runtime.d.ts +8 -0
- package/dist/infrastructure/runtime.d.ts.map +1 -0
- package/dist/infrastructure/runtime.js +13 -0
- package/dist/infrastructure/runtime.js.map +1 -0
- package/dist/infrastructure/tasks/GitHubIssuesProvider.d.ts +50 -0
- package/dist/infrastructure/tasks/GitHubIssuesProvider.d.ts.map +1 -0
- package/dist/infrastructure/tasks/GitHubIssuesProvider.js +91 -0
- package/dist/infrastructure/tasks/GitHubIssuesProvider.js.map +1 -0
- package/dist/infrastructure/tasks/JiraProvider.d.ts +29 -0
- package/dist/infrastructure/tasks/JiraProvider.d.ts.map +1 -0
- package/dist/infrastructure/tasks/JiraProvider.js +109 -0
- package/dist/infrastructure/tasks/JiraProvider.js.map +1 -0
- package/dist/infrastructure/workflows/BootstrapWorkflow.d.ts +21 -0
- package/dist/infrastructure/workflows/BootstrapWorkflow.d.ts.map +1 -0
- package/dist/infrastructure/workflows/BootstrapWorkflow.js +72 -0
- package/dist/infrastructure/workflows/BootstrapWorkflow.js.map +1 -0
- package/dist/infrastructure/workflows/ExecutionWorkflow.d.ts +15 -0
- package/dist/infrastructure/workflows/ExecutionWorkflow.d.ts.map +1 -0
- package/dist/infrastructure/workflows/ExecutionWorkflow.js +169 -0
- package/dist/infrastructure/workflows/ExecutionWorkflow.js.map +1 -0
- package/dist/infrastructure/workflows/GitHubBackfillWorkflow.d.ts +17 -0
- package/dist/infrastructure/workflows/GitHubBackfillWorkflow.d.ts.map +1 -0
- package/dist/infrastructure/workflows/GitHubBackfillWorkflow.js +24 -0
- package/dist/infrastructure/workflows/GitHubBackfillWorkflow.js.map +1 -0
- package/dist/infrastructure/workflows/WorkflowsBootstrapRunner.d.ts +15 -0
- package/dist/infrastructure/workflows/WorkflowsBootstrapRunner.d.ts.map +1 -0
- package/dist/infrastructure/workflows/WorkflowsBootstrapRunner.js +34 -0
- package/dist/infrastructure/workflows/WorkflowsBootstrapRunner.js.map +1 -0
- package/dist/infrastructure/workflows/WorkflowsWorkRunner.d.ts +31 -0
- package/dist/infrastructure/workflows/WorkflowsWorkRunner.d.ts.map +1 -0
- package/dist/infrastructure/workflows/WorkflowsWorkRunner.js +55 -0
- package/dist/infrastructure/workflows/WorkflowsWorkRunner.js.map +1 -0
- package/dist/infrastructure/workflows/retention.d.ts +35 -0
- package/dist/infrastructure/workflows/retention.d.ts.map +1 -0
- package/dist/infrastructure/workflows/retention.js +26 -0
- package/dist/infrastructure/workflows/retention.js.map +1 -0
- package/dist/infrastructure/workflows/sweeper.d.ts +57 -0
- package/dist/infrastructure/workflows/sweeper.d.ts.map +1 -0
- package/dist/infrastructure/workflows/sweeper.js +62 -0
- package/dist/infrastructure/workflows/sweeper.js.map +1 -0
- package/migrations/0001_init.sql +677 -0
- package/migrations/0002_clarity_reviews.sql +19 -0
- package/migrations/0002_consensus.sql +38 -0
- package/migrations/0002_llm_reasoning_text.sql +6 -0
- package/migrations/0002_local_model_endpoints.sql +16 -0
- package/migrations/0003_pipeline_labels_archive.sql +13 -0
- package/migrations/0003_release_health.sql +34 -0
- package/migrations/0004_run_timing_task_types.sql +24 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1EmailConnectionRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1EmailConnectionRepository.ts"],"names":[],"mappings":"AAiBA,SAAS,WAAW,CAAC,GAAuB;IAC1C,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,QAAQ,EAAE,GAAG,CAAC,QAA6B;QAC3C,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,YAAY,EAAE,GAAG,CAAC,cAAc;QAChC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAA;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,OAAO,2BAA2B;IACrB,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAsB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CAAC,6EAA6E,CAAC;aACtF,IAAI,CAAC,SAAS,CAAC;aACf,KAAK,EAAsB,CAAA;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAA6B;QACxC,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN;;;;;;;;4CAQoC,CACrC;aACA,IAAI,CACH,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,CACjB;aACA,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,EAAU;QAC5C,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CAAC,kFAAkF,CAAC;aAC3F,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC;aACvB,GAAG,EAAE,CAAA;IACV,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { EnvironmentConnectionRecord, EnvironmentConnectionRepository } from '@cat-factory/kernel';
|
|
2
|
+
import type { D1Database } from '@cloudflare/workers-types';
|
|
3
|
+
/** D1-backed store of workspace → environment provider bindings (migration 0008). */
|
|
4
|
+
export declare class D1EnvironmentConnectionRepository implements EnvironmentConnectionRepository {
|
|
5
|
+
private readonly db;
|
|
6
|
+
constructor({ db }: {
|
|
7
|
+
db: D1Database;
|
|
8
|
+
});
|
|
9
|
+
getByWorkspace(workspaceId: string): Promise<EnvironmentConnectionRecord | null>;
|
|
10
|
+
upsert(record: EnvironmentConnectionRecord): Promise<void>;
|
|
11
|
+
softDelete(workspaceId: string, at: number): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=D1EnvironmentConnectionRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1EnvironmentConnectionRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1EnvironmentConnectionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,+BAA+B,EAChC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AA0B3D,qFAAqF;AACrF,qBAAa,iCAAkC,YAAW,+BAA+B;IACvF,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAQrF;IAEK,MAAM,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/D;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/D;CACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
function rowToRecord(row) {
|
|
2
|
+
return {
|
|
3
|
+
workspaceId: row.workspace_id,
|
|
4
|
+
providerId: row.provider_id,
|
|
5
|
+
label: row.label,
|
|
6
|
+
baseUrl: row.base_url,
|
|
7
|
+
manifestJson: row.manifest_json,
|
|
8
|
+
secretsCipher: row.secrets_cipher,
|
|
9
|
+
createdAt: row.created_at,
|
|
10
|
+
deletedAt: row.deleted_at,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/** D1-backed store of workspace → environment provider bindings (migration 0008). */
|
|
14
|
+
export class D1EnvironmentConnectionRepository {
|
|
15
|
+
db;
|
|
16
|
+
constructor({ db }) {
|
|
17
|
+
this.db = db;
|
|
18
|
+
}
|
|
19
|
+
async getByWorkspace(workspaceId) {
|
|
20
|
+
const row = await this.db
|
|
21
|
+
.prepare('SELECT * FROM environment_connections WHERE workspace_id = ? AND deleted_at IS NULL')
|
|
22
|
+
.bind(workspaceId)
|
|
23
|
+
.first();
|
|
24
|
+
return row ? rowToRecord(row) : null;
|
|
25
|
+
}
|
|
26
|
+
async upsert(record) {
|
|
27
|
+
// A workspace has a single live provider: clear any prior binding (live or
|
|
28
|
+
// tombstoned) before inserting, so re-registering a different provider can't
|
|
29
|
+
// collide on the (workspace_id, provider_id) primary key.
|
|
30
|
+
await this.db
|
|
31
|
+
.prepare('DELETE FROM environment_connections WHERE workspace_id = ?')
|
|
32
|
+
.bind(record.workspaceId)
|
|
33
|
+
.run();
|
|
34
|
+
await this.db
|
|
35
|
+
.prepare(`INSERT INTO environment_connections
|
|
36
|
+
(workspace_id, provider_id, label, base_url, manifest_json, secrets_cipher, created_at, deleted_at)
|
|
37
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, NULL)`)
|
|
38
|
+
.bind(record.workspaceId, record.providerId, record.label, record.baseUrl, record.manifestJson, record.secretsCipher, record.createdAt)
|
|
39
|
+
.run();
|
|
40
|
+
}
|
|
41
|
+
async softDelete(workspaceId, at) {
|
|
42
|
+
await this.db
|
|
43
|
+
.prepare('UPDATE environment_connections SET deleted_at = ? WHERE workspace_id = ? AND deleted_at IS NULL')
|
|
44
|
+
.bind(at, workspaceId)
|
|
45
|
+
.run();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=D1EnvironmentConnectionRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1EnvironmentConnectionRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1EnvironmentConnectionRepository.ts"],"names":[],"mappings":"AAiBA,SAAS,WAAW,CAAC,GAA6B;IAChD,OAAO;QACL,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAA;AACH,CAAC;AAED,qFAAqF;AACrF,MAAM,OAAO,iCAAiC;IAC3B,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAsB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CACN,qFAAqF,CACtF;aACA,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,EAA4B,CAAA;QACpC,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAmC;QAC9C,2EAA2E;QAC3E,6EAA6E;QAC7E,0DAA0D;QAC1D,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CAAC,4DAA4D,CAAC;aACrE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;aACxB,GAAG,EAAE,CAAA;QACR,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN;;4CAEoC,CACrC;aACA,IAAI,CACH,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,SAAS,CACjB;aACA,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,EAAU;QAC9C,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN,iGAAiG,CAClG;aACA,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC;aACrB,GAAG,EAAE,CAAA;IACV,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EnvironmentRecord, EnvironmentRecordPatch, EnvironmentRegistryRepository } from '@cat-factory/kernel';
|
|
2
|
+
import type { D1Database } from '@cloudflare/workers-types';
|
|
3
|
+
/** D1-backed registry of provisioned environments (migration 0008). */
|
|
4
|
+
export declare class D1EnvironmentRegistryRepository implements EnvironmentRegistryRepository {
|
|
5
|
+
private readonly db;
|
|
6
|
+
constructor({ db }: {
|
|
7
|
+
db: D1Database;
|
|
8
|
+
});
|
|
9
|
+
insert(record: EnvironmentRecord): Promise<void>;
|
|
10
|
+
update(workspaceId: string, id: string, patch: EnvironmentRecordPatch): Promise<void>;
|
|
11
|
+
get(workspaceId: string, id: string): Promise<EnvironmentRecord | null>;
|
|
12
|
+
getByBlock(workspaceId: string, blockId: string): Promise<EnvironmentRecord | null>;
|
|
13
|
+
listByWorkspace(workspaceId: string): Promise<EnvironmentRecord[]>;
|
|
14
|
+
listExpired(nowEpochMs: number): Promise<EnvironmentRecord[]>;
|
|
15
|
+
softDelete(workspaceId: string, id: string, at: number): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=D1EnvironmentRegistryRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1EnvironmentRegistryRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1EnvironmentRegistryRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAiD3D,uEAAuE;AACvE,qBAAa,+BAAgC,YAAW,6BAA6B;IACnF,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBrD;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1F;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAQ5E;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAUxF;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAQvE;IAEK,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CASlE;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3E;CACF"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
function rowToRecord(row) {
|
|
2
|
+
return {
|
|
3
|
+
id: row.id,
|
|
4
|
+
workspaceId: row.workspace_id,
|
|
5
|
+
blockId: row.block_id,
|
|
6
|
+
executionId: row.execution_id,
|
|
7
|
+
providerId: row.provider_id,
|
|
8
|
+
externalId: row.external_id,
|
|
9
|
+
url: row.url,
|
|
10
|
+
status: row.status,
|
|
11
|
+
accessCipher: row.access_cipher,
|
|
12
|
+
provisionFieldsCipher: row.provision_fields_cipher,
|
|
13
|
+
createdAt: row.created_at,
|
|
14
|
+
expiresAt: row.expires_at,
|
|
15
|
+
lastError: row.last_error,
|
|
16
|
+
deletedAt: row.deleted_at,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/** Maps a patch field name to its DB column. */
|
|
20
|
+
const PATCH_COLUMNS = {
|
|
21
|
+
externalId: 'external_id',
|
|
22
|
+
url: 'url',
|
|
23
|
+
status: 'status',
|
|
24
|
+
accessCipher: 'access_cipher',
|
|
25
|
+
provisionFieldsCipher: 'provision_fields_cipher',
|
|
26
|
+
expiresAt: 'expires_at',
|
|
27
|
+
lastError: 'last_error',
|
|
28
|
+
};
|
|
29
|
+
/** D1-backed registry of provisioned environments (migration 0008). */
|
|
30
|
+
export class D1EnvironmentRegistryRepository {
|
|
31
|
+
db;
|
|
32
|
+
constructor({ db }) {
|
|
33
|
+
this.db = db;
|
|
34
|
+
}
|
|
35
|
+
async insert(record) {
|
|
36
|
+
await this.db
|
|
37
|
+
.prepare(`INSERT INTO environments
|
|
38
|
+
(id, workspace_id, block_id, execution_id, provider_id, external_id, url, status,
|
|
39
|
+
access_cipher, provision_fields_cipher, created_at, expires_at, last_error, deleted_at)
|
|
40
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL)`)
|
|
41
|
+
.bind(record.id, record.workspaceId, record.blockId, record.executionId, record.providerId, record.externalId, record.url, record.status, record.accessCipher, record.provisionFieldsCipher, record.createdAt, record.expiresAt, record.lastError)
|
|
42
|
+
.run();
|
|
43
|
+
}
|
|
44
|
+
async update(workspaceId, id, patch) {
|
|
45
|
+
const entries = Object.entries(patch).filter(([, value]) => value !== undefined);
|
|
46
|
+
if (entries.length === 0)
|
|
47
|
+
return;
|
|
48
|
+
const setClause = entries
|
|
49
|
+
.map(([key]) => `${PATCH_COLUMNS[key]} = ?`)
|
|
50
|
+
.join(', ');
|
|
51
|
+
const values = entries.map(([, value]) => value);
|
|
52
|
+
await this.db
|
|
53
|
+
.prepare(`UPDATE environments SET ${setClause} WHERE workspace_id = ? AND id = ? AND deleted_at IS NULL`)
|
|
54
|
+
.bind(...values, workspaceId, id)
|
|
55
|
+
.run();
|
|
56
|
+
}
|
|
57
|
+
async get(workspaceId, id) {
|
|
58
|
+
const row = await this.db
|
|
59
|
+
.prepare('SELECT * FROM environments WHERE workspace_id = ? AND id = ? AND deleted_at IS NULL')
|
|
60
|
+
.bind(workspaceId, id)
|
|
61
|
+
.first();
|
|
62
|
+
return row ? rowToRecord(row) : null;
|
|
63
|
+
}
|
|
64
|
+
async getByBlock(workspaceId, blockId) {
|
|
65
|
+
const row = await this.db
|
|
66
|
+
.prepare(`SELECT * FROM environments
|
|
67
|
+
WHERE workspace_id = ? AND block_id = ? AND deleted_at IS NULL
|
|
68
|
+
ORDER BY created_at DESC LIMIT 1`)
|
|
69
|
+
.bind(workspaceId, blockId)
|
|
70
|
+
.first();
|
|
71
|
+
return row ? rowToRecord(row) : null;
|
|
72
|
+
}
|
|
73
|
+
async listByWorkspace(workspaceId) {
|
|
74
|
+
const { results } = await this.db
|
|
75
|
+
.prepare('SELECT * FROM environments WHERE workspace_id = ? AND deleted_at IS NULL ORDER BY created_at DESC')
|
|
76
|
+
.bind(workspaceId)
|
|
77
|
+
.all();
|
|
78
|
+
return (results ?? []).map(rowToRecord);
|
|
79
|
+
}
|
|
80
|
+
async listExpired(nowEpochMs) {
|
|
81
|
+
const { results } = await this.db
|
|
82
|
+
.prepare(`SELECT * FROM environments
|
|
83
|
+
WHERE deleted_at IS NULL AND expires_at IS NOT NULL AND expires_at <= ?`)
|
|
84
|
+
.bind(nowEpochMs)
|
|
85
|
+
.all();
|
|
86
|
+
return (results ?? []).map(rowToRecord);
|
|
87
|
+
}
|
|
88
|
+
async softDelete(workspaceId, id, at) {
|
|
89
|
+
await this.db
|
|
90
|
+
.prepare('UPDATE environments SET deleted_at = ? WHERE workspace_id = ? AND id = ? AND deleted_at IS NULL')
|
|
91
|
+
.bind(at, workspaceId, id)
|
|
92
|
+
.run();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=D1EnvironmentRegistryRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1EnvironmentRegistryRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1EnvironmentRegistryRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { AgentFailure, Clock, ExecutionRepository, RunRef } from '@cat-factory/kernel';
|
|
2
|
+
import type { ExecutionInstance } from '@cat-factory/contracts';
|
|
3
|
+
import type { D1Database } from '@cloudflare/workers-types';
|
|
4
|
+
/**
|
|
5
|
+
* Execution runs, stored as `kind='execution'` rows of the unified `agent_runs`
|
|
6
|
+
* table (migration 0019). Every statement is scoped by `kind='execution'` so the
|
|
7
|
+
* bootstrap flow's rows (owned by {@link D1BootstrapJobRepository}) never collide
|
|
8
|
+
* — in particular `deleteByBlock` must NOT delete the bootstrap run that created a
|
|
9
|
+
* service frame when an execution on that block is replaced/cancelled.
|
|
10
|
+
*/
|
|
11
|
+
export declare class D1ExecutionRepository implements ExecutionRepository {
|
|
12
|
+
private readonly db;
|
|
13
|
+
private readonly clock;
|
|
14
|
+
constructor({ db, clock }: {
|
|
15
|
+
db: D1Database;
|
|
16
|
+
clock: Clock;
|
|
17
|
+
});
|
|
18
|
+
listByWorkspace(workspaceId: string): Promise<ExecutionInstance[]>;
|
|
19
|
+
listByService(serviceId: string): Promise<ExecutionInstance[]>;
|
|
20
|
+
listByServices(serviceIds: string[]): Promise<ExecutionInstance[]>;
|
|
21
|
+
get(workspaceId: string, id: string): Promise<ExecutionInstance | null>;
|
|
22
|
+
getByBlock(workspaceId: string, blockId: string): Promise<ExecutionInstance | null>;
|
|
23
|
+
upsert(workspaceId: string, execution: ExecutionInstance): Promise<void>;
|
|
24
|
+
deleteByBlock(workspaceId: string, blockId: string): Promise<void>;
|
|
25
|
+
listStale(olderThanEpochMs: number): Promise<RunRef[]>;
|
|
26
|
+
markFailed(workspaceId: string, id: string, failure: AgentFailure): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=D1ExecutionRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1ExecutionRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1ExecutionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAI3D;;;;;;GAMG;AACH,qBAAa,qBAAsB,YAAW,mBAAmB;IAC/D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAE7B,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAG1D;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAQvE;IAEK,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAQnE;IAEK,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAevE;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAM5E;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAQxF;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC7E;IAEK,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvE;IAEK,SAAS,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAU3D;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAStF;CACF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { chunkForIn } from './chunk';
|
|
2
|
+
import { executionToDetail, rowToExecution } from './mappers';
|
|
3
|
+
/**
|
|
4
|
+
* Execution runs, stored as `kind='execution'` rows of the unified `agent_runs`
|
|
5
|
+
* table (migration 0019). Every statement is scoped by `kind='execution'` so the
|
|
6
|
+
* bootstrap flow's rows (owned by {@link D1BootstrapJobRepository}) never collide
|
|
7
|
+
* — in particular `deleteByBlock` must NOT delete the bootstrap run that created a
|
|
8
|
+
* service frame when an execution on that block is replaced/cancelled.
|
|
9
|
+
*/
|
|
10
|
+
export class D1ExecutionRepository {
|
|
11
|
+
db;
|
|
12
|
+
clock;
|
|
13
|
+
constructor({ db, clock }) {
|
|
14
|
+
this.db = db;
|
|
15
|
+
this.clock = clock;
|
|
16
|
+
}
|
|
17
|
+
async listByWorkspace(workspaceId) {
|
|
18
|
+
const { results } = await this.db
|
|
19
|
+
.prepare(`SELECT * FROM agent_runs WHERE workspace_id = ? AND kind = 'execution' ORDER BY created_at`)
|
|
20
|
+
.bind(workspaceId)
|
|
21
|
+
.all();
|
|
22
|
+
return results.map(rowToExecution);
|
|
23
|
+
}
|
|
24
|
+
async listByService(serviceId) {
|
|
25
|
+
const { results } = await this.db
|
|
26
|
+
.prepare(`SELECT * FROM agent_runs WHERE service_id = ? AND kind = 'execution' ORDER BY created_at`)
|
|
27
|
+
.bind(serviceId)
|
|
28
|
+
.all();
|
|
29
|
+
return results.map(rowToExecution);
|
|
30
|
+
}
|
|
31
|
+
async listByServices(serviceIds) {
|
|
32
|
+
if (serviceIds.length === 0)
|
|
33
|
+
return [];
|
|
34
|
+
const out = [];
|
|
35
|
+
// Chunk the IN list to stay under D1's bound-parameter limit.
|
|
36
|
+
for (const chunk of chunkForIn(serviceIds)) {
|
|
37
|
+
const placeholders = chunk.map(() => '?').join(', ');
|
|
38
|
+
const { results } = await this.db
|
|
39
|
+
.prepare(`SELECT * FROM agent_runs WHERE service_id IN (${placeholders}) AND kind = 'execution' ORDER BY created_at`)
|
|
40
|
+
.bind(...chunk)
|
|
41
|
+
.all();
|
|
42
|
+
for (const row of results)
|
|
43
|
+
out.push(rowToExecution(row));
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
async get(workspaceId, id) {
|
|
48
|
+
const row = await this.db
|
|
49
|
+
.prepare(`SELECT * FROM agent_runs WHERE workspace_id = ? AND id = ? AND kind = 'execution'`)
|
|
50
|
+
.bind(workspaceId, id)
|
|
51
|
+
.first();
|
|
52
|
+
return row ? rowToExecution(row) : null;
|
|
53
|
+
}
|
|
54
|
+
async getByBlock(workspaceId, blockId) {
|
|
55
|
+
const row = await this.db
|
|
56
|
+
.prepare(`SELECT * FROM agent_runs WHERE workspace_id = ? AND block_id = ? AND kind = 'execution'`)
|
|
57
|
+
.bind(workspaceId, blockId)
|
|
58
|
+
.first();
|
|
59
|
+
return row ? rowToExecution(row) : null;
|
|
60
|
+
}
|
|
61
|
+
async upsert(workspaceId, execution) {
|
|
62
|
+
// The pipeline shape lives in `detail`; lifecycle is top-level. `updated_at`
|
|
63
|
+
// is refreshed on every write so it doubles as the sweeper's lease.
|
|
64
|
+
// `error`/`failure`/`workflow_instance_id` are deliberately left out of the
|
|
65
|
+
// conflict update so they survive normal step writes (see markFailed).
|
|
66
|
+
const now = this.clock.now();
|
|
67
|
+
const detail = executionToDetail(execution);
|
|
68
|
+
// Stamp `service_id` from the run's block so the run is discoverable by service (in-org
|
|
69
|
+
// sharing): a shared service's runs surface on every board that mounts it via
|
|
70
|
+
// `listByService`. Derived here (not carried on ExecutionInstance) and refreshed on every
|
|
71
|
+
// write so it follows a reparent that re-homes the block to another service.
|
|
72
|
+
await this.db
|
|
73
|
+
.prepare(`INSERT INTO agent_runs
|
|
74
|
+
(workspace_id, id, kind, block_id, status, detail, created_at, updated_at,
|
|
75
|
+
workflow_instance_id, service_id)
|
|
76
|
+
VALUES (?, ?, 'execution', ?, ?, ?, ?, ?, ?,
|
|
77
|
+
(SELECT service_id FROM blocks WHERE workspace_id = ? AND id = ?))
|
|
78
|
+
ON CONFLICT (workspace_id, id) DO UPDATE SET
|
|
79
|
+
block_id = excluded.block_id,
|
|
80
|
+
status = excluded.status,
|
|
81
|
+
detail = excluded.detail,
|
|
82
|
+
updated_at = excluded.updated_at,
|
|
83
|
+
service_id = excluded.service_id`)
|
|
84
|
+
.bind(workspaceId, execution.id, execution.blockId, execution.status, detail, now, now,
|
|
85
|
+
// Instance id == execution id today; stored for forward-compatibility.
|
|
86
|
+
execution.id, workspaceId, execution.blockId)
|
|
87
|
+
.run();
|
|
88
|
+
}
|
|
89
|
+
async deleteByBlock(workspaceId, blockId) {
|
|
90
|
+
await this.db
|
|
91
|
+
.prepare(`DELETE FROM agent_runs WHERE workspace_id = ? AND block_id = ? AND kind = 'execution'`)
|
|
92
|
+
.bind(workspaceId, blockId)
|
|
93
|
+
.run();
|
|
94
|
+
}
|
|
95
|
+
async listStale(olderThanEpochMs) {
|
|
96
|
+
const { results } = await this.db
|
|
97
|
+
.prepare(`SELECT workspace_id, id FROM agent_runs
|
|
98
|
+
WHERE kind = 'execution' AND status = 'running' AND updated_at < ?
|
|
99
|
+
ORDER BY updated_at`)
|
|
100
|
+
.bind(olderThanEpochMs)
|
|
101
|
+
.all();
|
|
102
|
+
return results.map((r) => ({ workspaceId: r.workspace_id, id: r.id }));
|
|
103
|
+
}
|
|
104
|
+
async markFailed(workspaceId, id, failure) {
|
|
105
|
+
await this.db
|
|
106
|
+
.prepare(`UPDATE agent_runs
|
|
107
|
+
SET status = 'failed', error = ?, failure = ?, updated_at = ?
|
|
108
|
+
WHERE workspace_id = ? AND id = ? AND kind = 'execution'`)
|
|
109
|
+
.bind(failure.message, JSON.stringify(failure), this.clock.now(), workspaceId, id)
|
|
110
|
+
.run();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=D1ExecutionRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1ExecutionRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1ExecutionRepository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAqB,iBAAiB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhF;;;;;;GAMG;AACH,MAAM,OAAO,qBAAqB;IACf,EAAE,CAAY;IACd,KAAK,CAAO;IAE7B,YAAY,EAAE,EAAE,EAAE,KAAK,EAAoC;QACzD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CACN,4FAA4F,CAC7F;aACA,IAAI,CAAC,WAAW,CAAC;aACjB,GAAG,EAAgB,CAAA;QACtB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CACN,0FAA0F,CAC3F;aACA,IAAI,CAAC,SAAS,CAAC;aACf,GAAG,EAAgB,CAAA;QACtB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,UAAoB;QACvC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QACtC,MAAM,GAAG,GAAwB,EAAE,CAAA;QACnC,8DAA8D;QAC9D,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;iBAC9B,OAAO,CACN,iDAAiD,YAAY,8CAA8C,CAC5G;iBACA,IAAI,CAAC,GAAG,KAAK,CAAC;iBACd,GAAG,EAAgB,CAAA;YACtB,KAAK,MAAM,GAAG,IAAI,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,WAAmB,EAAE,EAAU;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CAAC,mFAAmF,CAAC;aAC5F,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;aACrB,KAAK,EAAgB,CAAA;QACxB,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,OAAe;QACnD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CACN,yFAAyF,CAC1F;aACA,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;aAC1B,KAAK,EAAgB,CAAA;QACxB,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,SAA4B;QAC5D,6EAA6E;QAC7E,oEAAoE;QACpE,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAA;QAC3C,wFAAwF;QACxF,8EAA8E;QAC9E,0FAA0F;QAC1F,6EAA6E;QAC7E,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN;;;;;;;;;;4CAUoC,CACrC;aACA,IAAI,CACH,WAAW,EACX,SAAS,CAAC,EAAE,EACZ,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,MAAM,EAChB,MAAM,EACN,GAAG,EACH,GAAG;QACH,uEAAuE;QACvE,SAAS,CAAC,EAAE,EACZ,WAAW,EACX,SAAS,CAAC,OAAO,CAClB;aACA,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,OAAe;QACtD,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN,uFAAuF,CACxF;aACA,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;aAC1B,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,gBAAwB;QACtC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CACN;;6BAEqB,CACtB;aACA,IAAI,CAAC,gBAAgB,CAAC;aACtB,GAAG,EAAwC,CAAA;QAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,EAAU,EAAE,OAAqB;QACrE,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN;;kEAE0D,CAC3D;aACA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC;aACjF,GAAG,EAAE,CAAA;IACV,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FragmentOwnerKind, FragmentSourceRecord, FragmentSourceRepository } from '@cat-factory/kernel';
|
|
2
|
+
import type { D1Database } from '@cloudflare/workers-types';
|
|
3
|
+
/** D1-backed store of fragment-source repo linkages (migration 0020). */
|
|
4
|
+
export declare class D1FragmentSourceRepository implements FragmentSourceRepository {
|
|
5
|
+
private readonly db;
|
|
6
|
+
constructor({ db }: {
|
|
7
|
+
db: D1Database;
|
|
8
|
+
});
|
|
9
|
+
listByOwner(ownerKind: FragmentOwnerKind, ownerId: string): Promise<FragmentSourceRecord[]>;
|
|
10
|
+
get(id: string): Promise<FragmentSourceRecord | null>;
|
|
11
|
+
upsert(record: FragmentSourceRecord): Promise<void>;
|
|
12
|
+
updateSyncState(id: string, lastSyncedSha: string, lastSyncedAt: number): Promise<void>;
|
|
13
|
+
softDelete(id: string, at: number): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=D1FragmentSourceRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1FragmentSourceRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1FragmentSourceRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAgC3D,yEAAyE;AACzE,qBAAa,0BAA2B,YAAW,wBAAwB;IACzE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,WAAW,CACf,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAQjC;IAEK,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAM1D;IAEK,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BxD;IAEK,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK5F;IAEK,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKtD;CACF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
function rowToRecord(row) {
|
|
2
|
+
return {
|
|
3
|
+
id: row.id,
|
|
4
|
+
ownerKind: row.owner_kind,
|
|
5
|
+
ownerId: row.owner_id,
|
|
6
|
+
repoOwner: row.repo_owner,
|
|
7
|
+
repoName: row.repo_name,
|
|
8
|
+
gitRef: row.git_ref,
|
|
9
|
+
dirPath: row.dir_path,
|
|
10
|
+
lastSyncedSha: row.last_synced_sha,
|
|
11
|
+
lastSyncedAt: row.last_synced_at,
|
|
12
|
+
createdAt: row.created_at,
|
|
13
|
+
deletedAt: row.deleted_at,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/** D1-backed store of fragment-source repo linkages (migration 0020). */
|
|
17
|
+
export class D1FragmentSourceRepository {
|
|
18
|
+
db;
|
|
19
|
+
constructor({ db }) {
|
|
20
|
+
this.db = db;
|
|
21
|
+
}
|
|
22
|
+
async listByOwner(ownerKind, ownerId) {
|
|
23
|
+
const { results } = await this.db
|
|
24
|
+
.prepare('SELECT * FROM fragment_sources WHERE owner_kind = ? AND owner_id = ? AND deleted_at IS NULL ORDER BY created_at DESC')
|
|
25
|
+
.bind(ownerKind, ownerId)
|
|
26
|
+
.all();
|
|
27
|
+
return results.map(rowToRecord);
|
|
28
|
+
}
|
|
29
|
+
async get(id) {
|
|
30
|
+
const row = await this.db
|
|
31
|
+
.prepare('SELECT * FROM fragment_sources WHERE id = ?')
|
|
32
|
+
.bind(id)
|
|
33
|
+
.first();
|
|
34
|
+
return row ? rowToRecord(row) : null;
|
|
35
|
+
}
|
|
36
|
+
async upsert(record) {
|
|
37
|
+
await this.db
|
|
38
|
+
.prepare(`INSERT INTO fragment_sources
|
|
39
|
+
(id, owner_kind, owner_id, repo_owner, repo_name, git_ref, dir_path,
|
|
40
|
+
last_synced_sha, last_synced_at, created_at, deleted_at)
|
|
41
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
42
|
+
ON CONFLICT (id) DO UPDATE SET
|
|
43
|
+
repo_owner = excluded.repo_owner,
|
|
44
|
+
repo_name = excluded.repo_name,
|
|
45
|
+
git_ref = excluded.git_ref,
|
|
46
|
+
dir_path = excluded.dir_path,
|
|
47
|
+
last_synced_sha = excluded.last_synced_sha,
|
|
48
|
+
last_synced_at = excluded.last_synced_at,
|
|
49
|
+
deleted_at = excluded.deleted_at`)
|
|
50
|
+
.bind(record.id, record.ownerKind, record.ownerId, record.repoOwner, record.repoName, record.gitRef, record.dirPath, record.lastSyncedSha, record.lastSyncedAt, record.createdAt, record.deletedAt)
|
|
51
|
+
.run();
|
|
52
|
+
}
|
|
53
|
+
async updateSyncState(id, lastSyncedSha, lastSyncedAt) {
|
|
54
|
+
await this.db
|
|
55
|
+
.prepare('UPDATE fragment_sources SET last_synced_sha = ?, last_synced_at = ? WHERE id = ?')
|
|
56
|
+
.bind(lastSyncedSha, lastSyncedAt, id)
|
|
57
|
+
.run();
|
|
58
|
+
}
|
|
59
|
+
async softDelete(id, at) {
|
|
60
|
+
await this.db
|
|
61
|
+
.prepare('UPDATE fragment_sources SET deleted_at = ? WHERE id = ?')
|
|
62
|
+
.bind(at, id)
|
|
63
|
+
.run();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=D1FragmentSourceRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1FragmentSourceRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1FragmentSourceRepository.ts"],"names":[],"mappings":"AAqBA,SAAS,WAAW,CAAC,GAAsB;IACzC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,GAAG,CAAC,UAA+B;QAC9C,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,aAAa,EAAE,GAAG,CAAC,eAAe;QAClC,YAAY,EAAE,GAAG,CAAC,cAAc;QAChC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAA;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,OAAO,0BAA0B;IACpB,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAsB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAC,WAAW,CACf,SAA4B,EAC5B,OAAe;QAEf,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CACN,sHAAsH,CACvH;aACA,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;aACxB,GAAG,EAAqB,CAAA;QAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CAAC,6CAA6C,CAAC;aACtD,IAAI,CAAC,EAAE,CAAC;aACR,KAAK,EAAqB,CAAA;QAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAA4B;QACvC,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN;;;;;;;;;;;4CAWoC,CACrC;aACA,IAAI,CACH,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,CACjB;aACA,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU,EAAE,aAAqB,EAAE,YAAoB;QAC3E,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CAAC,kFAAkF,CAAC;aAC3F,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE,CAAC;aACrC,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,EAAU;QACrC,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CAAC,yDAAyD,CAAC;aAClE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;aACZ,GAAG,EAAE,CAAA;IACV,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { GitHubInstallation, GitHubInstallationRepository } from '@cat-factory/kernel';
|
|
2
|
+
import type { D1Database } from '@cloudflare/workers-types';
|
|
3
|
+
/** D1-backed store of workspace → GitHub App installation bindings (migration 0004). */
|
|
4
|
+
export declare class D1GitHubInstallationRepository implements GitHubInstallationRepository {
|
|
5
|
+
private readonly db;
|
|
6
|
+
constructor({ db }: {
|
|
7
|
+
db: D1Database;
|
|
8
|
+
});
|
|
9
|
+
getByInstallationId(installationId: number): Promise<GitHubInstallation | null>;
|
|
10
|
+
getByWorkspace(workspaceId: string): Promise<GitHubInstallation | null>;
|
|
11
|
+
listWorkspacesForInstallation(installationId: number): Promise<string[]>;
|
|
12
|
+
listActive(): Promise<GitHubInstallation[]>;
|
|
13
|
+
upsert(installation: GitHubInstallation): Promise<void>;
|
|
14
|
+
updateCachedToken(installationId: number, token: string, expiresAt: number): Promise<void>;
|
|
15
|
+
softDelete(installationId: number, at: number): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=D1GitHubInstallationRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1GitHubInstallationRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1GitHubInstallationRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAQ3D,wFAAwF;AACxF,qBAAa,8BAA+B,YAAW,4BAA4B;IACjF,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAMpF;IAEK,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAoB5E;IAEK,6BAA6B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkB7E;IAEK,UAAU,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAKhD;IAEK,MAAM,CAAC,YAAY,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5D;IAEK,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/F;IAEK,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlE;CACF"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { buildUpsert, installationValues, rowToInstallation, } from './github-mappers';
|
|
2
|
+
/** D1-backed store of workspace → GitHub App installation bindings (migration 0004). */
|
|
3
|
+
export class D1GitHubInstallationRepository {
|
|
4
|
+
db;
|
|
5
|
+
constructor({ db }) {
|
|
6
|
+
this.db = db;
|
|
7
|
+
}
|
|
8
|
+
async getByInstallationId(installationId) {
|
|
9
|
+
const row = await this.db
|
|
10
|
+
.prepare('SELECT * FROM github_installations WHERE installation_id = ?')
|
|
11
|
+
.bind(installationId)
|
|
12
|
+
.first();
|
|
13
|
+
return row ? rowToInstallation(row) : null;
|
|
14
|
+
}
|
|
15
|
+
async getByWorkspace(workspaceId) {
|
|
16
|
+
// The installation backing a workspace is either its own direct binding
|
|
17
|
+
// (the connector, or the auth-disabled path where account_id is null) OR one
|
|
18
|
+
// shared via the workspace's account. Prefer the direct binding when both
|
|
19
|
+
// exist. The account match is gated on a non-null account so unrelated
|
|
20
|
+
// null-account dev rows never collide.
|
|
21
|
+
const row = await this.db
|
|
22
|
+
.prepare(`SELECT i.* FROM github_installations i
|
|
23
|
+
WHERE i.deleted_at IS NULL AND (
|
|
24
|
+
i.workspace_id = ?1
|
|
25
|
+
OR (i.account_id IS NOT NULL
|
|
26
|
+
AND i.account_id = (SELECT w.account_id FROM workspaces w WHERE w.id = ?1))
|
|
27
|
+
)
|
|
28
|
+
ORDER BY (i.workspace_id = ?1) DESC
|
|
29
|
+
LIMIT 1`)
|
|
30
|
+
.bind(workspaceId)
|
|
31
|
+
.first();
|
|
32
|
+
return row ? rowToInstallation(row) : null;
|
|
33
|
+
}
|
|
34
|
+
async listWorkspacesForInstallation(installationId) {
|
|
35
|
+
// The connector workspace, plus every workspace in the installation's account.
|
|
36
|
+
const { results } = await this.db
|
|
37
|
+
.prepare(`SELECT i.workspace_id AS id
|
|
38
|
+
FROM github_installations i
|
|
39
|
+
WHERE i.installation_id = ?1 AND i.deleted_at IS NULL
|
|
40
|
+
UNION
|
|
41
|
+
SELECT w.id AS id
|
|
42
|
+
FROM workspaces w
|
|
43
|
+
WHERE w.account_id IS NOT NULL AND w.account_id = (
|
|
44
|
+
SELECT i.account_id FROM github_installations i
|
|
45
|
+
WHERE i.installation_id = ?1 AND i.deleted_at IS NULL
|
|
46
|
+
)`)
|
|
47
|
+
.bind(installationId)
|
|
48
|
+
.all();
|
|
49
|
+
return results.map((r) => r.id);
|
|
50
|
+
}
|
|
51
|
+
async listActive() {
|
|
52
|
+
const { results } = await this.db
|
|
53
|
+
.prepare('SELECT * FROM github_installations WHERE deleted_at IS NULL')
|
|
54
|
+
.all();
|
|
55
|
+
return results.map(rowToInstallation);
|
|
56
|
+
}
|
|
57
|
+
async upsert(installation) {
|
|
58
|
+
const { sql, binds } = buildUpsert('github_installations', installationValues(installation), [
|
|
59
|
+
'installation_id',
|
|
60
|
+
]);
|
|
61
|
+
await this.db
|
|
62
|
+
.prepare(sql)
|
|
63
|
+
.bind(...binds)
|
|
64
|
+
.run();
|
|
65
|
+
}
|
|
66
|
+
async updateCachedToken(installationId, token, expiresAt) {
|
|
67
|
+
await this.db
|
|
68
|
+
.prepare('UPDATE github_installations SET cached_token = ?, token_expires_at = ? WHERE installation_id = ?')
|
|
69
|
+
.bind(token, expiresAt, installationId)
|
|
70
|
+
.run();
|
|
71
|
+
}
|
|
72
|
+
async softDelete(installationId, at) {
|
|
73
|
+
await this.db
|
|
74
|
+
.prepare('UPDATE github_installations SET deleted_at = ? WHERE installation_id = ?')
|
|
75
|
+
.bind(at, installationId)
|
|
76
|
+
.run();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=D1GitHubInstallationRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1GitHubInstallationRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1GitHubInstallationRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,WAAW,EACX,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,kBAAkB,CAAA;AAEzB,wFAAwF;AACxF,MAAM,OAAO,8BAA8B;IACxB,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAsB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,cAAsB;QAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CAAC,8DAA8D,CAAC;aACvE,IAAI,CAAC,cAAc,CAAC;aACpB,KAAK,EAAyB,CAAA;QACjC,OAAO,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,wEAAwE;QACxE,6EAA6E;QAC7E,0EAA0E;QAC1E,uEAAuE;QACvE,uCAAuC;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CACN;;;;;;;iBAOS,CACV;aACA,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,EAAyB,CAAA;QACjC,OAAO,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,cAAsB;QACxD,+EAA+E;QAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CACN;;;;;;;;;YASI,CACL;aACA,IAAI,CAAC,cAAc,CAAC;aACpB,GAAG,EAAkB,CAAA;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CAAC,6DAA6D,CAAC;aACtE,GAAG,EAAyB,CAAA;QAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,YAAgC;QAC3C,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,YAAY,CAAC,EAAE;YAC3F,iBAAiB;SAClB,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CAAC,GAAG,CAAC;aACZ,IAAI,CAAC,GAAG,KAAK,CAAC;aACd,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,cAAsB,EAAE,KAAa,EAAE,SAAiB;QAC9E,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN,kGAAkG,CACnG;aACA,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC;aACtC,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,cAAsB,EAAE,EAAU;QACjD,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CAAC,0EAA0E,CAAC;aACnF,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC;aACxB,GAAG,EAAE,CAAA;IACV,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { GitHubIssue, IssueProjectionRepository } from '@cat-factory/kernel';
|
|
2
|
+
import type { D1Database } from '@cloudflare/workers-types';
|
|
3
|
+
/** D1-backed projection of issues (migration 0004). */
|
|
4
|
+
export declare class D1IssueProjectionRepository implements IssueProjectionRepository {
|
|
5
|
+
private readonly db;
|
|
6
|
+
constructor({ db }: {
|
|
7
|
+
db: D1Database;
|
|
8
|
+
});
|
|
9
|
+
upsertMany(workspaceId: string, issues: GitHubIssue[]): Promise<void>;
|
|
10
|
+
listByRepo(workspaceId: string, repoGithubId: number): Promise<GitHubIssue[]>;
|
|
11
|
+
listByWorkspace(workspaceId: string): Promise<GitHubIssue[]>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=D1IssueProjectionRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1IssueProjectionRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1IssueProjectionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAG3D,uDAAuD;AACvD,qBAAa,2BAA4B,YAAW,yBAAyB;IAC3E,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAW1E;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAQlF;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAQjE;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { buildUpsert, issueValues, rowToIssue } from './github-mappers';
|
|
2
|
+
/** D1-backed projection of issues (migration 0004). */
|
|
3
|
+
export class D1IssueProjectionRepository {
|
|
4
|
+
db;
|
|
5
|
+
constructor({ db }) {
|
|
6
|
+
this.db = db;
|
|
7
|
+
}
|
|
8
|
+
async upsertMany(workspaceId, issues) {
|
|
9
|
+
if (issues.length === 0)
|
|
10
|
+
return;
|
|
11
|
+
const statements = issues.map((issue) => {
|
|
12
|
+
const { sql, binds } = buildUpsert('github_issues', issueValues(workspaceId, issue), [
|
|
13
|
+
'workspace_id',
|
|
14
|
+
'repo_github_id',
|
|
15
|
+
'number',
|
|
16
|
+
]);
|
|
17
|
+
return this.db.prepare(sql).bind(...binds);
|
|
18
|
+
});
|
|
19
|
+
await this.db.batch(statements);
|
|
20
|
+
}
|
|
21
|
+
async listByRepo(workspaceId, repoGithubId) {
|
|
22
|
+
const { results } = await this.db
|
|
23
|
+
.prepare('SELECT * FROM github_issues WHERE workspace_id = ? AND repo_github_id = ? AND deleted_at IS NULL ORDER BY number DESC')
|
|
24
|
+
.bind(workspaceId, repoGithubId)
|
|
25
|
+
.all();
|
|
26
|
+
return results.map(rowToIssue);
|
|
27
|
+
}
|
|
28
|
+
async listByWorkspace(workspaceId) {
|
|
29
|
+
const { results } = await this.db
|
|
30
|
+
.prepare('SELECT * FROM github_issues WHERE workspace_id = ? AND deleted_at IS NULL ORDER BY gh_updated_at DESC')
|
|
31
|
+
.bind(workspaceId)
|
|
32
|
+
.all();
|
|
33
|
+
return results.map(rowToIssue);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=D1IssueProjectionRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"D1IssueProjectionRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1IssueProjectionRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE5F,uDAAuD;AACvD,MAAM,OAAO,2BAA2B;IACrB,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAsB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,MAAqB;QACzD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACtC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE;gBACnF,cAAc;gBACd,gBAAgB;gBAChB,QAAQ;aACT,CAAC,CAAA;YACF,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,YAAoB;QACxD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CACN,uHAAuH,CACxH;aACA,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC;aAC/B,GAAG,EAAkB,CAAA;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CACN,uGAAuG,CACxG;aACA,IAAI,CAAC,WAAW,CAAC;aACjB,GAAG,EAAkB,CAAA;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAChC,CAAC;CACF"}
|