@cat-factory/worker 0.102.0 → 0.104.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/dist/infrastructure/config/index.d.ts +2 -1
- package/dist/infrastructure/config/index.d.ts.map +1 -1
- package/dist/infrastructure/config/index.js +2 -0
- package/dist/infrastructure/config/index.js.map +1 -1
- package/dist/infrastructure/config/notificationWebhooks.d.ts +12 -0
- package/dist/infrastructure/config/notificationWebhooks.d.ts.map +1 -0
- package/dist/infrastructure/config/notificationWebhooks.js +15 -0
- package/dist/infrastructure/config/notificationWebhooks.js.map +1 -0
- package/dist/infrastructure/container-assembly.d.ts +12 -1
- package/dist/infrastructure/container-assembly.d.ts.map +1 -1
- package/dist/infrastructure/container-assembly.js +29 -4
- package/dist/infrastructure/container-assembly.js.map +1 -1
- package/dist/infrastructure/container.d.ts +31 -7
- package/dist/infrastructure/container.d.ts.map +1 -1
- package/dist/infrastructure/container.js +68 -37
- package/dist/infrastructure/container.js.map +1 -1
- package/dist/infrastructure/env.d.ts +9 -0
- package/dist/infrastructure/env.d.ts.map +1 -1
- package/dist/infrastructure/env.js.map +1 -1
- package/dist/infrastructure/repositories/D1NotificationWebhookRepository.d.ts +13 -0
- package/dist/infrastructure/repositories/D1NotificationWebhookRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1NotificationWebhookRepository.js +45 -0
- package/dist/infrastructure/repositories/D1NotificationWebhookRepository.js.map +1 -0
- package/dist/infrastructure/repositories/D1ValidationConfigRepository.d.ts +19 -0
- package/dist/infrastructure/repositories/D1ValidationConfigRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/D1ValidationConfigRepository.js +77 -0
- package/dist/infrastructure/repositories/D1ValidationConfigRepository.js.map +1 -0
- package/dist/infrastructure/wireCredentialServices.d.ts +18 -1
- package/dist/infrastructure/wireCredentialServices.d.ts.map +1 -1
- package/dist/infrastructure/wireCredentialServices.js +40 -1
- package/dist/infrastructure/wireCredentialServices.js.map +1 -1
- package/migrations/0061_notification_webhooks.sql +18 -0
- package/migrations/0061_validation_configs.sql +14 -0
- package/package.json +18 -18
|
@@ -9,6 +9,7 @@ import { type TasksConfig } from './tasks';
|
|
|
9
9
|
import { type EnvironmentsConfig } from './environments';
|
|
10
10
|
import { type RunnerPoolConfig } from './runners';
|
|
11
11
|
import { type SlackConfig } from './slack';
|
|
12
|
+
import { type NotificationWebhookConfig } from './notificationWebhooks';
|
|
12
13
|
import { type ReleaseHealthConfig } from './releaseHealth';
|
|
13
14
|
import { type EmailConfig } from './email';
|
|
14
15
|
import { type RetentionConfig } from './retention';
|
|
@@ -16,6 +17,6 @@ import { type FragmentLibraryConfig } from './fragmentLibrary';
|
|
|
16
17
|
import { type ObservabilityConfig } from './observability';
|
|
17
18
|
import { type LangfuseConfig } from './langfuse';
|
|
18
19
|
import { type OtelConfig } from './otel';
|
|
19
|
-
export type { AgentsConfig, AppConfig, ExecutionConfig, GitHubConfig, AuthConfig, DocumentsConfig, TasksConfig, EnvironmentsConfig, RunnerPoolConfig, SlackConfig, ReleaseHealthConfig, EmailConfig, RetentionConfig, FragmentLibraryConfig, ObservabilityConfig, LangfuseConfig, OtelConfig, };
|
|
20
|
+
export type { AgentsConfig, AppConfig, ExecutionConfig, GitHubConfig, AuthConfig, DocumentsConfig, TasksConfig, EnvironmentsConfig, RunnerPoolConfig, SlackConfig, NotificationWebhookConfig, ReleaseHealthConfig, EmailConfig, RetentionConfig, FragmentLibraryConfig, ObservabilityConfig, LangfuseConfig, OtelConfig, };
|
|
20
21
|
export declare function loadConfig(env: Env): AppConfig;
|
|
21
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,qBAAqB,CAAA;AAO5B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,UAAU,CAAA;AAC9D,OAAO,EAAE,KAAK,eAAe,EAAuB,MAAM,aAAa,CAAA;AAEvE,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,UAAU,CAAA;AAE9D,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,QAAQ,CAAA;AACxD,OAAO,EAAE,KAAK,eAAe,EAAuB,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAE,KAAK,kBAAkB,EAA0B,MAAM,gBAAgB,CAAA;AAChF,OAAO,EAAE,KAAK,gBAAgB,EAAwB,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAE,KAAK,mBAAmB,EAA2B,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAE,KAAK,eAAe,EAAuB,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,KAAK,qBAAqB,EAA6B,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAE,KAAK,mBAAmB,EAA2B,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,YAAY,CAAA;AACpE,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,QAAQ,CAAA;AAUxD,YAAY,EACV,YAAY,EACZ,SAAS,EACT,eAAe,EACf,YAAY,EACZ,UAAU,EACV,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,UAAU,GACX,CAAA;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,qBAAqB,CAAA;AAO5B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,UAAU,CAAA;AAC9D,OAAO,EAAE,KAAK,eAAe,EAAuB,MAAM,aAAa,CAAA;AAEvE,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,UAAU,CAAA;AAE9D,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,QAAQ,CAAA;AACxD,OAAO,EAAE,KAAK,eAAe,EAAuB,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAE,KAAK,kBAAkB,EAA0B,MAAM,gBAAgB,CAAA;AAChF,OAAO,EAAE,KAAK,gBAAgB,EAAwB,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,SAAS,CAAA;AAC3D,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,KAAK,mBAAmB,EAA2B,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAE,KAAK,eAAe,EAAuB,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,KAAK,qBAAqB,EAA6B,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAE,KAAK,mBAAmB,EAA2B,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,YAAY,CAAA;AACpE,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,QAAQ,CAAA;AAUxD,YAAY,EACV,YAAY,EACZ,SAAS,EACT,eAAe,EACf,YAAY,EACZ,UAAU,EACV,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,yBAAyB,EACzB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,UAAU,GACX,CAAA;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAmD9C"}
|
|
@@ -12,6 +12,7 @@ import { loadTasksConfig } from './tasks';
|
|
|
12
12
|
import { loadEnvironmentsConfig } from './environments';
|
|
13
13
|
import { loadRunnerPoolConfig } from './runners';
|
|
14
14
|
import { loadSlackConfig } from './slack';
|
|
15
|
+
import { loadNotificationWebhookConfig, } from './notificationWebhooks';
|
|
15
16
|
import { loadReleaseHealthConfig } from './releaseHealth';
|
|
16
17
|
import { loadEmailConfig } from './email';
|
|
17
18
|
import { loadRetentionConfig } from './retention';
|
|
@@ -49,6 +50,7 @@ export function loadConfig(env) {
|
|
|
49
50
|
environments: loadEnvironmentsConfig(env),
|
|
50
51
|
runners: loadRunnerPoolConfig(env),
|
|
51
52
|
slack: loadSlackConfig(env),
|
|
53
|
+
notificationWebhooks: loadNotificationWebhookConfig(env),
|
|
52
54
|
releaseHealth: loadReleaseHealthConfig(env),
|
|
53
55
|
email: loadEmailConfig(env),
|
|
54
56
|
retention: loadRetentionConfig(env),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,wBAAwB,EAExB,gBAAgB,GACjB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAqB,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,EAAwB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAqB,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAmB,cAAc,EAAE,MAAM,QAAQ,CAAA;AACxD,OAAO,EAAwB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAoB,eAAe,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,EAA2B,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAChF,OAAO,EAAyB,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACvE,OAAO,EAAoB,eAAe,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,EAA4B,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAoB,eAAe,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAwB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAA8B,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAA4B,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAuB,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,EAAmB,cAAc,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { NotificationWebhookConfig } from '@cat-factory/server';
|
|
2
|
+
import type { Env } from '../env';
|
|
3
|
+
export type { NotificationWebhookConfig };
|
|
4
|
+
/**
|
|
5
|
+
* The outbound notification webhook has no enable flag — it assembles wherever the shared
|
|
6
|
+
* ENCRYPTION_KEY is set (the signing secret must be sealable), and delivery is governed by whether
|
|
7
|
+
* a workspace registered an endpoint. Only the SSRF guard is configurable: the strict
|
|
8
|
+
* public-https default holds unless the operator names hosts to exempt (a receiver on an internal
|
|
9
|
+
* / VPN host, or a developer's localhost listener).
|
|
10
|
+
*/
|
|
11
|
+
export declare function loadNotificationWebhookConfig(env: Env): NotificationWebhookConfig;
|
|
12
|
+
//# sourceMappingURL=notificationWebhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notificationWebhooks.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/config/notificationWebhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAGjC,YAAY,EAAE,yBAAyB,EAAE,CAAA;AAEzC;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,GAAG,GAAG,yBAAyB,CAKjF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { csv } from './utils';
|
|
2
|
+
/**
|
|
3
|
+
* The outbound notification webhook has no enable flag — it assembles wherever the shared
|
|
4
|
+
* ENCRYPTION_KEY is set (the signing secret must be sealable), and delivery is governed by whether
|
|
5
|
+
* a workspace registered an endpoint. Only the SSRF guard is configurable: the strict
|
|
6
|
+
* public-https default holds unless the operator names hosts to exempt (a receiver on an internal
|
|
7
|
+
* / VPN host, or a developer's localhost listener).
|
|
8
|
+
*/
|
|
9
|
+
export function loadNotificationWebhookConfig(env) {
|
|
10
|
+
return {
|
|
11
|
+
allowUrlHosts: csv(env.NOTIFICATION_WEBHOOK_ALLOW_URL_HOSTS),
|
|
12
|
+
allowHttpUrls: env.NOTIFICATION_WEBHOOK_ALLOW_HTTP_URLS === 'true',
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=notificationWebhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notificationWebhooks.js","sourceRoot":"","sources":["../../../src/infrastructure/config/notificationWebhooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAI7B;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,GAAQ;IACpD,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,oCAAoC,CAAC;QAC5D,aAAa,EAAE,GAAG,CAAC,oCAAoC,KAAK,MAAM;KACnE,CAAA;AACH,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type AppCaches, type Clock, type ExecutionEventPublisher, type IdGenerator, type ResolveBinaryArtifactStore } from '@cat-factory/kernel';
|
|
2
2
|
import { type CoreDependencies, AgentContextObservabilityService, SearchQueryObservabilityService } from '@cat-factory/orchestration';
|
|
3
|
-
import type { AccountSettingsService, ApiKeyService, LocalModelEndpointService, OpenRouterCatalogService, PersonalSubscriptionService, ProviderSubscriptionService, PublicApiKeyService, TestSecretsService, UserSecretService } from '@cat-factory/integrations';
|
|
3
|
+
import type { AccountSettingsService, ApiKeyService, LocalModelEndpointService, NotificationWebhookService, OpenRouterCatalogService, PersonalSubscriptionService, ProviderSubscriptionService, PublicApiKeyService, TestSecretsService, ValidationConfigService, UserSecretService } from '@cat-factory/integrations';
|
|
4
4
|
import { type ServerContainer, type WebSearchUpstream } from '@cat-factory/server';
|
|
5
5
|
import { type GateProviderOverrides } from '@cat-factory/gates';
|
|
6
|
+
import type { NotificationChannel } from '@cat-factory/kernel';
|
|
6
7
|
import type { AppConfig } from './config';
|
|
7
8
|
import type { Env } from './env';
|
|
8
9
|
import type { WorkerRegistries } from './container-registries.js';
|
|
@@ -34,9 +35,19 @@ export interface WorkerContainerAssemblyInput {
|
|
|
34
35
|
resolveTransport: ResolveRunnerTransport | null;
|
|
35
36
|
subscriptions: ProviderSubscriptionService | undefined;
|
|
36
37
|
testSecretsService: TestSecretsService | undefined;
|
|
38
|
+
validationConfigService: ValidationConfigService;
|
|
37
39
|
personalSubscriptions: PersonalSubscriptionService | undefined;
|
|
38
40
|
apiKeys: ApiKeyService | undefined;
|
|
39
41
|
publicApiKeys: PublicApiKeyService | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* The outbound notification-webhook feature (management service + delivery channel), or null
|
|
44
|
+
* when the deployment has no encryption key to seal the signing secret with. Both halves arrive
|
|
45
|
+
* together from one builder so they can't drift apart.
|
|
46
|
+
*/
|
|
47
|
+
notificationWebhookSupport: {
|
|
48
|
+
service: NotificationWebhookService;
|
|
49
|
+
channel: NotificationChannel;
|
|
50
|
+
} | null;
|
|
40
51
|
localModelEndpoints: LocalModelEndpointService | undefined;
|
|
41
52
|
userSecrets: UserSecretService | undefined;
|
|
42
53
|
openRouterCatalog: OpenRouterCatalogService | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-assembly.d.ts","sourceRoot":"","sources":["../../src/infrastructure/container-assembly.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,KAAK,EAEV,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAChC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,gBAAgB,EACrB,gCAAgC,EAChC,+BAA+B,EAEhC,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACb,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAOL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAEjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEzE,OAAO,EAAE,qBAAqB,EAA8B,MAAM,2BAA2B,CAAA;AAoB7F,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAA;
|
|
1
|
+
{"version":3,"file":"container-assembly.d.ts","sourceRoot":"","sources":["../../src/infrastructure/container-assembly.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ import { D1SealedSecretInventory } from './repositories/D1SealedSecretInventory'
|
|
|
31
31
|
import { D1ServiceRepository } from './repositories/D1ServiceRepository';
|
|
32
32
|
import { D1SubscriptionActivationRepository } from './repositories/D1PersonalSubscriptionRepository';
|
|
33
33
|
import { D1TestSecretsRepository } from './repositories/D1TestSecretsRepository';
|
|
34
|
+
import { D1ValidationConfigRepository } from './repositories/D1ValidationConfigRepository';
|
|
34
35
|
import { D1TokenUsageRepository } from './repositories/D1TokenUsageRepository';
|
|
35
36
|
import { D1UserRepoAccessRepository } from './repositories/D1UserRepoAccessRepository';
|
|
36
37
|
import { D1UserRepository } from './repositories/D1UserRepository';
|
|
@@ -57,7 +58,7 @@ import { selectGitHubDeps } from './github-deps.js';
|
|
|
57
58
|
* behaviour change.
|
|
58
59
|
*/
|
|
59
60
|
function buildWorkerCoreDependencies(input) {
|
|
60
|
-
const { env, config, db, telemetryDb, clock, idGenerator, caches, overrides, cloudflareModelsEnabled, registries, provisioningLogRepository, resolveTransport, subscriptions, testSecretsService, personalSubscriptions, apiKeys, localModelEndpoints, openRouterCatalog, eventPublisher, agentContextObservability, searchQueryObservability, accountSettings, resolveBinaryArtifactStore, githubWebhookIngest, } = input;
|
|
61
|
+
const { env, config, db, telemetryDb, clock, idGenerator, caches, overrides, cloudflareModelsEnabled, registries, provisioningLogRepository, resolveTransport, subscriptions, testSecretsService, validationConfigService, personalSubscriptions, apiKeys, notificationWebhookSupport, localModelEndpoints, openRouterCatalog, eventPublisher, agentContextObservability, searchQueryObservability, accountSettings, resolveBinaryArtifactStore, githubWebhookIngest, } = input;
|
|
61
62
|
const { environmentBackendRegistry, runnerBackendRegistry, customManifestTypeRegistry, agentKindRegistry, gateRegistry, stepResolverRegistry, initiativePresetRegistry, providerRegistry, } = registries;
|
|
62
63
|
return {
|
|
63
64
|
// App-owned backend registries (kind → provider) the connection services resolve through.
|
|
@@ -162,7 +163,15 @@ function buildWorkerCoreDependencies(input) {
|
|
|
162
163
|
? new WorkflowsEnvironmentTestRunner(env.ENV_TEST_WORKFLOW)
|
|
163
164
|
: undefined,
|
|
164
165
|
...selectGitHubDeps(env, config, db, clock, idGenerator, caches.repoFiles),
|
|
165
|
-
...selectMergeLifecycleDeps(
|
|
166
|
+
...selectMergeLifecycleDeps({
|
|
167
|
+
env,
|
|
168
|
+
config,
|
|
169
|
+
db,
|
|
170
|
+
clock,
|
|
171
|
+
idGenerator,
|
|
172
|
+
providerRegistry,
|
|
173
|
+
webhookChannel: notificationWebhookSupport?.channel,
|
|
174
|
+
}),
|
|
166
175
|
// A fresh workspace's model-preset library is seeded with Kimi K2.7 as the default
|
|
167
176
|
// (Cloudflare-runnable on the bare AI binding). A deployment overrides the out-of-the-box
|
|
168
177
|
// default by passing `defaultModelPresetId` through `createApp`'s / `buildContainer`'s
|
|
@@ -178,6 +187,12 @@ function buildWorkerCoreDependencies(input) {
|
|
|
178
187
|
resolveTestSecretRefs: (workspaceId, blockId) => testSecretsService.resolveRefsForBlock(workspaceId, blockId),
|
|
179
188
|
}
|
|
180
189
|
: {}),
|
|
190
|
+
// Fold the service frame's PRE-PR VALIDATION CHECKS onto the agent run context, so a
|
|
191
|
+
// PR-opening coding dispatch carries them in its job body and the harness gates the PR on
|
|
192
|
+
// them. Nothing sealed here (the commands run in the run's own container), so — unlike the
|
|
193
|
+
// test secrets above — this needs no ENCRYPTION_KEY and is always wired. Resolves to `null`
|
|
194
|
+
// for a service with no checks, which is the exact pre-feature behaviour.
|
|
195
|
+
resolveValidationChecks: (workspaceId, frameId) => validationConfigService.resolveForFrame(workspaceId, frameId),
|
|
181
196
|
...selectIncidentEnrichmentDeps(env, db, providerRegistry),
|
|
182
197
|
...selectPackageRegistryDeps(env, db),
|
|
183
198
|
...(accountSettings ? { accountSettings } : {}),
|
|
@@ -226,7 +241,7 @@ function buildWorkerCoreDependencies(input) {
|
|
|
226
241
|
}
|
|
227
242
|
export function assembleWorkerContainer(input) {
|
|
228
243
|
const { env, config, db, clock, registries, resolveTransport, gateProviders } = input;
|
|
229
|
-
const { subscriptions, testSecretsService, personalSubscriptions, apiKeys, publicApiKeys, localModelEndpoints, userSecrets, openRouterCatalog, cloudflareModelsEnabled, defaultWebSearchUpstream, resolveBinaryArtifactStore, githubWebhookIngest, } = input;
|
|
244
|
+
const { subscriptions, testSecretsService, validationConfigService, personalSubscriptions, apiKeys, publicApiKeys, notificationWebhookSupport, localModelEndpoints, userSecrets, openRouterCatalog, cloudflareModelsEnabled, defaultWebSearchUpstream, resolveBinaryArtifactStore, githubWebhookIngest, } = input;
|
|
230
245
|
const { environmentBackendRegistry, runnerBackendRegistry, providerRegistry, vcsRegistry } = registries;
|
|
231
246
|
// The domain dependency object (built in its own function to stay within the size budget);
|
|
232
247
|
// the post-override wiring below still reads + mutates THIS instance, exactly as before.
|
|
@@ -262,7 +277,7 @@ export function assembleWorkerContainer(input) {
|
|
|
262
277
|
const agentRunRepository = new D1AgentRunRepository({ db });
|
|
263
278
|
// The EXTERNAL (non-in-app) delivery channels, for the mothership delivery seam below. Built
|
|
264
279
|
// from the same source of truth `selectMergeLifecycleDeps` composes into the engine's fan-out.
|
|
265
|
-
const externalNotificationChannel = buildExternalNotificationChannel(config, db);
|
|
280
|
+
const externalNotificationChannel = buildExternalNotificationChannel(config, db, notificationWebhookSupport?.channel);
|
|
266
281
|
return {
|
|
267
282
|
...createCore(dependencies),
|
|
268
283
|
config,
|
|
@@ -339,6 +354,11 @@ export function assembleWorkerContainer(input) {
|
|
|
339
354
|
// proxied (decrypted service-side under the LOCAL key), like the observability/runner-pool
|
|
340
355
|
// connections.
|
|
341
356
|
testSecretsRepository: new D1TestSecretsRepository({ db }),
|
|
357
|
+
// Same reasoning for the per-service PRE-PR VALIDATION CHECKS: the engine reads them via
|
|
358
|
+
// the `resolveValidationChecks` FUNCTION, and the inspector CRUD goes through the service,
|
|
359
|
+
// so the repo isn't in `CoreDependencies` — reflect it explicitly or a mothership-mode
|
|
360
|
+
// node's dispatch resolution + inspector reads come back `... is not wired`.
|
|
361
|
+
validationConfigRepository: new D1ValidationConfigRepository({ db }),
|
|
342
362
|
// GitHub projection + installation reads the mothership serves over the persistence RPC even
|
|
343
363
|
// when its OWN github service is off. A mothership-mode local node reaches GitHub by token
|
|
344
364
|
// DELEGATION (no local App), which enables `container.github`, so its board snapshot
|
|
@@ -370,6 +390,9 @@ export function assembleWorkerContainer(input) {
|
|
|
370
390
|
// The sensitive per-service test-credential store the shared test-secrets controller reads;
|
|
371
391
|
// present when the shared ENCRYPTION_KEY is configured.
|
|
372
392
|
...(testSecretsService ? { testSecrets: testSecretsService } : {}),
|
|
393
|
+
// The per-service pre-PR validation-check store the shared controller reads. Always present
|
|
394
|
+
// (no secret material), unlike the sealed stores around it.
|
|
395
|
+
validationConfig: validationConfigService,
|
|
373
396
|
// The vendor-credential (subscription token pool) service the shared controller
|
|
374
397
|
// reads; present when the shared ENCRYPTION_KEY is configured.
|
|
375
398
|
subscriptions,
|
|
@@ -381,6 +404,8 @@ export function assembleWorkerContainer(input) {
|
|
|
381
404
|
apiKeys,
|
|
382
405
|
// The inbound public-API key store; present when the shared ENCRYPTION_KEY is configured.
|
|
383
406
|
publicApiKeys,
|
|
407
|
+
// The per-workspace outbound notification-webhook config; present when ENCRYPTION_KEY is set.
|
|
408
|
+
notificationWebhooks: notificationWebhookSupport?.service,
|
|
384
409
|
// Whether the opt-in Cloudflare Workers AI lib is enabled (the `AI` binding).
|
|
385
410
|
cloudflareModelsEnabled,
|
|
386
411
|
// The direct-provider base-URL resolver the catalog uses to gate selectability on a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-assembly.js","sourceRoot":"","sources":["../../src/infrastructure/container-assembly.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"container-assembly.js","sourceRoot":"","sources":["../../src/infrastructure/container-assembly.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,uBAAuB,GAIxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,gCAAgC,EAChC,+BAA+B,EAC/B,UAAU,GACX,MAAM,4BAA4B,CAAA;AAcnC,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,4BAA4B,EAC5B,2BAA2B,EAC3B,uBAAuB,GAIxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAA;AAK3B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAA;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAC/E,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAA;AAC3F,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAA;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAA;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAA;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAA;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAA;AAC9F,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAA;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAA;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAA;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAA;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAA;AACxF,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAA;AACpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAA;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,kCAAkC,EAAE,MAAM,iDAAiD,CAAA;AACpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAA;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAA;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAA;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAA;AACxF,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAA;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EACL,gBAAgB,EAChB,gCAAgC,EAChC,sBAAsB,EACtB,8BAA8B,EAC9B,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAoDnD;;;;;;;;GAQG;AACH;;;;;;;GAOG;AACH,SAAS,2BAA2B,CAAC,KAAmC;IACtE,MAAM,EACJ,GAAG,EACH,MAAM,EACN,EAAE,EACF,WAAW,EACX,KAAK,EACL,WAAW,EACX,MAAM,EACN,SAAS,EACT,uBAAuB,EACvB,UAAU,EACV,yBAAyB,EACzB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,OAAO,EACP,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,GACpB,GAAG,KAAK,CAAA;IACT,MAAM,EACJ,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,GACjB,GAAG,UAAU,CAAA;IAEd,OAAO;QACL,0FAA0F;QAC1F,0BAA0B;QAC1B,qBAAqB;QACrB,oFAAoF;QACpF,6FAA6F;QAC7F,mCAAmC;QACnC,0BAA0B;QAC1B,uEAAuE;QACvE,yEAAyE;QACzE,0BAA0B;QAC1B,mBAAmB,EAAE,IAAI,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC;QACtD,yBAAyB,EAAE,IAAI,2BAA2B,CAAC,EAAE,EAAE,EAAE,CAAC;QAClE,iBAAiB,EAAE,IAAI,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC;QAClD,oBAAoB,EAAE,IAAI,sBAAsB,CAAC,EAAE,EAAE,EAAE,CAAC;QACxD,cAAc,EAAE,IAAI,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC;QAC5C,cAAc,EAAE,IAAI,uBAAuB,EAAE;QAC7C,eAAe,EAAE,IAAI,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC;QAC9C,kBAAkB,EAAE,IAAI,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC;QACpD,mBAAmB,EAAE,IAAI,qBAAqB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QAC7D,8FAA8F;QAC9F,gCAAgC,EAAE,IAAI,kCAAkC,CAAC,EAAE,EAAE,EAAE,CAAC;QAChF,iBAAiB,EAAE,IAAI,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC;QAClD,wBAAwB,EAAE,IAAI,0BAA0B,CAAC,EAAE,EAAE,EAAE,CAAC;QAChE,oBAAoB,EAAE,IAAI,sBAAsB,CAAC,EAAE,EAAE,EAAE,CAAC;QACxD,0DAA0D;QAC1D,uBAAuB,EAAE,IAAI,yBAAyB,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;QAC3E,kGAAkG;QAClG,yBAAyB,EAAE,IAAI,2BAA2B,CAAC,EAAE,EAAE,EAAE,CAAC;QAClE,kFAAkF;QAClF,mFAAmF;QACnF,oCAAoC;QACpC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,gBAAgB,EAAE,MAAM,CAAC,aAAa,CAAC,aAAa;QACpD,mFAAmF;QACnF,iEAAiE;QACjE,yBAAyB;QACzB,mFAAmF;QACnF,sDAAsD;QACtD,wBAAwB;QACxB,WAAW;QACX,KAAK;QACL,+EAA+E;QAC/E,+EAA+E;QAC/E,6EAA6E;QAC7E,6EAA6E;QAC7E,aAAa,EACX,SAAS,CAAC,aAAa;YACvB,kBAAkB,CAChB,mBAAmB,CAAC;gBAClB,GAAG;gBACH,MAAM;gBACN,EAAE;gBACF,KAAK;gBACL,gBAAgB;gBAChB,iBAAiB;gBACjB,aAAa;gBACb,qBAAqB;gBACrB,yBAAyB;aAC1B,CAAC,EACF,GAAG,EACH,MAAM,EACN,EAAE,EACF,cAAc,EACd,iBAAiB,CAClB;QACH,iBAAiB;QACjB,4FAA4F;QAC5F,uFAAuF;QACvF,YAAY;QACZ,oBAAoB;QACpB,8FAA8F;QAC9F,2DAA2D;QAC3D,gBAAgB;QAChB,wBAAwB;QACxB,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC;QACjC,uBAAuB,EAAE,cAAc;QACvC,YAAY,EAAE,MAAM,CAAC,KAAK;QAC1B,gFAAgF;QAChF,sEAAsE;QACtE,qBAAqB,EAAE,iBAAiB;YACtC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/C,CAAC,CAAC,SAAS;QACb,gFAAgF;QAChF,+EAA+E;QAC/E,+BAA+B,EAAE,IAAI,iCAAiC,CAAC,EAAE,EAAE,EAAE,CAAC;QAC9E,sBAAsB,EAAE,IAAI,wBAAwB,CAAC,EAAE,EAAE,EAAE,CAAC;QAC5D,gBAAgB,EAAE,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,CAAC;QAC/F,6EAA6E;QAC7E,6EAA6E;QAC7E,eAAe,EAAE,GAAG,CAAC,kBAAkB;YACrC,CAAC,CAAC,IAAI,wBAAwB,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACtD,CAAC,CAAC,SAAS;QACb,iFAAiF;QACjF,sFAAsF;QACtF,gFAAgF;QAChF,mFAAmF;QACnF,4BAA4B,EAAE,IAAI,8BAA8B,CAAC,EAAE,EAAE,EAAE,CAAC;QACxE,qBAAqB,EAAE,GAAG,CAAC,0BAA0B;YACnD,CAAC,CAAC,IAAI,8BAA8B,CAAC,GAAG,CAAC,0BAA0B,CAAC;YACpE,CAAC,CAAC,SAAS;QACb,uFAAuF;QACvF,uFAAuF;QACvF,uFAAuF;QACvF,sFAAsF;QACtF,aAAa;QACb,4BAA4B,EAAE,IAAI,8BAA8B,CAAC,EAAE,EAAE,EAAE,CAAC;QACxE,qBAAqB,EAAE,GAAG,CAAC,iBAAiB;YAC1C,CAAC,CAAC,IAAI,8BAA8B,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC3D,CAAC,CAAC,SAAS;QACb,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC;QAC1E,GAAG,wBAAwB,CAAC;YAC1B,GAAG;YACH,MAAM;YACN,EAAE;YACF,KAAK;YACL,WAAW;YACX,gBAAgB;YAChB,cAAc,EAAE,0BAA0B,EAAE,OAAO;SACpD,CAAC;QACF,mFAAmF;QACnF,0FAA0F;QAC1F,uFAAuF;QACvF,wFAAwF;QACxF,4FAA4F;QAC5F,4FAA4F;QAC5F,oBAAoB,EAAE,SAAS,CAAC,oBAAoB,IAAI,uBAAuB;QAC/E,GAAG,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,CAAC;QAC7D,4FAA4F;QAC5F,mEAAmE;QACnE,GAAG,CAAC,kBAAkB;YACpB,CAAC,CAAC;gBACE,qBAAqB,EAAE,CAAC,WAAmB,EAAE,OAAe,EAAE,EAAE,CAC9D,kBAAkB,CAAC,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC;aAC/D;YACH,CAAC,CAAC,EAAE,CAAC;QACP,qFAAqF;QACrF,0FAA0F;QAC1F,2FAA2F;QAC3F,4FAA4F;QAC5F,0EAA0E;QAC1E,uBAAuB,EAAE,CAAC,WAAmB,EAAE,OAAe,EAAE,EAAE,CAChE,uBAAuB,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC;QAC/D,GAAG,4BAA4B,CAAC,GAAG,EAAE,EAAE,EAAE,gBAAgB,CAAC;QAC1D,GAAG,yBAAyB,CAAC,GAAG,EAAE,EAAE,CAAC;QACrC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9B,GAAG,yBAAyB,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,GAAG,eAAe,CAAC,MAAM,CAAC;QAC1B,GAAG,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC;QAC3D,GAAG,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC;QAC3D,GAAG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC;QACvD,GAAG,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;QAC1C,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;QACpC,GAAG,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;QAC1C,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC;QAC3C,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;QACrC,GAAG,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;QAC7C,GAAG,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;QAC1C,yFAAyF;QACzF,wFAAwF;QACxF,6BAA6B;QAC7B,kBAAkB,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;YACpD,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACjE,CAAC;QACD,0FAA0F;QAC1F,6FAA6F;QAC7F,8EAA8E;QAC9E,MAAM;QACN,mFAAmF;QACnF,2BAA2B,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,CACxD,4BAA4B,CAC1B;YACE,OAAO;YACP,aAAa;YACb,qBAAqB;YACrB,uBAAuB;YACvB,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;YACnD,mBAAmB;YACnB,iBAAiB;YACjB,eAAe;YACf,kBAAkB,EAAE,CAAC,WAAW,EAAE,EAAE,CAClC,IAAI,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;YAC1D,oBAAoB,EAAE,MAAM,CAAC,cAAc,EAAE,WAAW,EAAE,SAAS,IAAI,KAAK;YAC5E,MAAM;SACP,EACD,WAAW,EACX,WAAW,CACZ;QACH,qFAAqF;QACrF,yEAAyE;QACzE,iBAAiB,EAAE,gBAAgB;QACnC,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAmC;IACzE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,KAAK,CAAA;IACrF,MAAM,EACJ,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,OAAO,EACP,aAAa,EACb,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,GACpB,GAAG,KAAK,CAAA;IACT,MAAM,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,GACxF,UAAU,CAAA;IACZ,2FAA2F;IAC3F,yFAAyF;IACzF,MAAM,YAAY,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAA;IAEvD,uFAAuF;IACvF,sFAAsF;IACtF,2FAA2F;IAC3F,uFAAuF;IACvF,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;QAChD,GAAG;QACH,MAAM;QACN,EAAE;QACF,KAAK;QACL,gBAAgB;QAChB,QAAQ,EAAE,YAAY,CAAC,mBAAmB;QAC1C,0BAA0B;KAC3B,CAAC,CAAA;IACF,sFAAsF;IACtF,gFAAgF;IAChF,IAAI,iBAAiB,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACzD,YAAY,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;IACpD,CAAC;IAED,8FAA8F;IAC9F,4FAA4F;IAC5F,iGAAiG;IACjG,kBAAkB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;IACnD,wFAAwF;IACxF,yFAAyF;IACzF,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;IAE1C,kFAAkF;IAClF,+FAA+F;IAC/F,4EAA4E;IAC5E,MAAM,kBAAkB,GAAG,IAAI,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC3D,6FAA6F;IAC7F,+FAA+F;IAC/F,MAAM,2BAA2B,GAAG,gCAAgC,CAClE,MAAM,EACN,EAAE,EACF,0BAA0B,EAAE,OAAO,CACpC,CAAA;IAED,OAAO;QACL,GAAG,UAAU,CAAC,YAAY,CAAC;QAC3B,MAAM;QACN,+FAA+F;QAC/F,6FAA6F;QAC7F,gGAAgG;QAChG,mDAAmD;QACnD,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,yFAAyF;QACzF,8FAA8F;QAC9F,yFAAyF;QACzF,sFAAsF;QACtF,uFAAuF;QACvF,WAAW,EAAE,8BAA8B,CAAC,MAAM,CAAC;QACnD,0FAA0F;QAC1F,WAAW;QACX,uFAAuF;QACvF,kFAAkF;QAClF,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;QACzD,sFAAsF;QACtF,uFAAuF;QACvF,iBAAiB,EAAE,sBAAsB,CAAC,EAAE,CAAC;QAC7C,kBAAkB;QAClB,2FAA2F;QAC3F,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;QACrD,wFAAwF;QACxF,yFAAyF;QACzF,yFAAyF;QACzF,sFAAsF;QACtF,0CAA0C;QAC1C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;YACvB,CAAC,CAAC,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE;YACrE,CAAC,CAAC,EAAE,CAAC;QACP,2FAA2F;QAC3F,+FAA+F;QAC/F,8FAA8F;QAC9F,4FAA4F;QAC5F,2FAA2F;QAC3F,iBAAiB;QACjB,GAAG,CAAC,GAAG,CAAC,gBAAgB;YACtB,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,8BAA8B,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YACjF,CAAC,CAAC,EAAE,CAAC;QACP,oFAAoF;QACpF,uFAAuF;QACvF,8FAA8F;QAC9F,0FAA0F;QAC1F,4FAA4F;QAC5F,yFAAyF;QACzF,+DAA+D;QAC/D,GAAG,CAAC,2BAA2B;YAC7B,CAAC,CAAC,EAAE,2BAA2B,EAAE,2BAA2B,EAAE;YAC9D,CAAC,CAAC,EAAE,CAAC;QACP,6FAA6F;QAC7F,4FAA4F;QAC5F,0FAA0F;QAC1F,8FAA8F;QAC9F,6FAA6F;QAC7F,6FAA6F;QAC7F,0FAA0F;QAC1F,gFAAgF;QAChF,YAAY,EAAE;YACZ,GAAG,YAAY;YACf,kBAAkB;YAClB,0FAA0F;YAC1F,2FAA2F;YAC3F,6FAA6F;YAC7F,6FAA6F;YAC7F,uCAAuC;YACvC,2BAA2B,EAAE,IAAI,6BAA6B,CAAC,EAAE,EAAE,EAAE,CAAC;YACtE,4FAA4F;YAC5F,iFAAiF;YACjF,0FAA0F;YAC1F,2FAA2F;YAC3F,2FAA2F;YAC3F,eAAe;YACf,qBAAqB,EAAE,IAAI,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC;YAC1D,yFAAyF;YACzF,2FAA2F;YAC3F,uFAAuF;YACvF,6EAA6E;YAC7E,0BAA0B,EAAE,IAAI,4BAA4B,CAAC,EAAE,EAAE,EAAE,CAAC;YACpE,6FAA6F;YAC7F,2FAA2F;YAC3F,qFAAqF;YACrF,8FAA8F;YAC9F,6FAA6F;YAC7F,yFAAyF;YACzF,8FAA8F;YAC9F,8FAA8F;YAC9F,8FAA8F;YAC9F,yDAAyD;YACzD,wBAAwB,EAAE,IAAI,0BAA0B,CAAC,EAAE,EAAE,EAAE,CAAC;YAChE,4BAA4B,EAAE,IAAI,8BAA8B,CAAC,EAAE,EAAE,EAAE,CAAC;SACvC;QACnC,kFAAkF;QAClF,0FAA0F;QAC1F,0BAA0B;QAC1B,qBAAqB;QACrB,kFAAkF;QAClF,mFAAmF;QACnF,0BAA0B,EAAE,IAAI,4BAA4B,CAAC,EAAE,EAAE,EAAE,CAAC;QACpE,gFAAgF;QAChF,iFAAiF;QACjF,0BAA0B;QAC1B,6FAA6F;QAC7F,8FAA8F;QAC9F,8FAA8F;QAC9F,2FAA2F;QAC3F,oCAAoC,EAAE,CAAC,2BAA2B,CAAC,MAAM,CAAC,cAAc,CAAC;QACzF,4FAA4F;QAC5F,wDAAwD;QACxD,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,4FAA4F;QAC5F,4DAA4D;QAC5D,gBAAgB,EAAE,uBAAuB;QACzC,gFAAgF;QAChF,+DAA+D;QAC/D,aAAa;QACb,8EAA8E;QAC9E,uCAAuC;QACvC,qBAAqB;QACrB,8EAA8E;QAC9E,uCAAuC;QACvC,OAAO;QACP,0FAA0F;QAC1F,aAAa;QACb,8FAA8F;QAC9F,oBAAoB,EAAE,0BAA0B,EAAE,OAAO;QACzD,8EAA8E;QAC9E,uBAAuB;QACvB,oFAAoF;QACpF,uFAAuF;QACvF,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;QACnD,sFAAsF;QACtF,mBAAmB;QACnB,yFAAyF;QACzF,WAAW;QACX,yFAAyF;QACzF,cAAc,EAAE,IAAI,0BAA0B,CAAC,EAAE,EAAE,EAAE,CAAC;QACtD,+FAA+F;QAC/F,gEAAgE;QAChE,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE;YAC5B,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;YAChE,CAAC,CAAC,EAAE,CAAC;QACP,wFAAwF;QACxF,iBAAiB;QACjB,QAAQ,EAAE;YACR,6EAA6E;YAC7E,4EAA4E;YAC5E,QAAQ,EAAE,IAAI,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACrD,gFAAgF;YAChF,+EAA+E;YAC/E,cAAc,EAAE,IAAI,0BAA0B,CAAC,GAAG,CAAC,wBAAwB,CAAC;YAC5E,aAAa,EAAE,mBAAmB;YAClC,iFAAiF;YACjF,uDAAuD;YACvD,WAAW,EAAE,IAAI,oBAAoB,CAAC,GAAG,CAAC;YAC1C,gFAAgF;YAChF,+EAA+E;YAC/E,kCAAkC;SACnC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -80,7 +80,25 @@ export declare function buildAppRegistry(env: Env, config: AppConfig, db: D1Data
|
|
|
80
80
|
* handle via `createGitHubModule`, so their invalidation code path stays symmetric.
|
|
81
81
|
*/
|
|
82
82
|
export declare function buildResolveRepoTarget(db: D1Database): ResolveRepoTarget;
|
|
83
|
-
|
|
83
|
+
/** What {@link selectMergeLifecycleDeps} needs. An options object rather than a positional tail:
|
|
84
|
+
* it already carried six parameters, and the notification channels it composes will keep
|
|
85
|
+
* growing (in-app, Slack, the outbound webhook, …) — a named bag stays readable and keeps the
|
|
86
|
+
* call site honest about which of the several same-typed handles is which. */
|
|
87
|
+
export interface MergeLifecycleDepsInput {
|
|
88
|
+
env: Env;
|
|
89
|
+
config: AppConfig;
|
|
90
|
+
db: D1Database;
|
|
91
|
+
clock: Clock;
|
|
92
|
+
idGenerator: IdGenerator;
|
|
93
|
+
providerRegistry: ProviderRegistry;
|
|
94
|
+
/**
|
|
95
|
+
* The outbound notification-webhook delivery channel, when the deployment configured one. Built
|
|
96
|
+
* by the caller (alongside its management service, from ONE builder) so both halves are
|
|
97
|
+
* guaranteed to read the same rows through the same cipher.
|
|
98
|
+
*/
|
|
99
|
+
webhookChannel?: NotificationChannel;
|
|
100
|
+
}
|
|
101
|
+
export declare function selectMergeLifecycleDeps(input: MergeLifecycleDepsInput): Partial<CoreDependencies>;
|
|
84
102
|
/**
|
|
85
103
|
* Wire the observability post-release-health gate when enabled (+ ENCRYPTION_KEY): the
|
|
86
104
|
* connection + per-block config repos, the cipher that seals the credentials, the pluggable
|
|
@@ -114,17 +132,23 @@ export declare function selectIncidentEnrichmentDeps(env: Env, db: D1Database, p
|
|
|
114
132
|
export declare function buildCloudflareArtifactStoreResolver(env: Env, db: D1Database, clock: Clock, idGenerator: IdGenerator): ResolveBinaryArtifactStore;
|
|
115
133
|
/**
|
|
116
134
|
* This deployment's EXTERNAL notification channels — everything that is NOT the in-app push
|
|
117
|
-
* (Slack
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
135
|
+
* (Slack, plus a workspace's outbound notification webhook). Two consumers:
|
|
136
|
+
* {@link selectMergeLifecycleDeps} composes it into the engine's own fan-out, and the
|
|
137
|
+
* ServerContainer attaches it as `machineNotificationDelivery`, the seam the mothership-mode
|
|
138
|
+
* `POST /internal/notifications/deliver` endpoint delivers a laptop-raised notification through
|
|
139
|
+
* (its credentials never leave this deployment). In-app is excluded there on purpose: a laptop's
|
|
140
|
+
* in-app frame already arrives over the real-time upstream relay.
|
|
141
|
+
*
|
|
142
|
+
* The webhook belongs in this set for the same reason Slack does — its signing secret is sealed
|
|
143
|
+
* with THIS deployment's key, so this is the only side that can decrypt and deliver it. Keeping it
|
|
144
|
+
* out would leave a mothership-mode laptop failing every delivery on a decrypt it cannot perform
|
|
145
|
+
* while the mothership never attempted one. Symmetric with the Node facade.
|
|
122
146
|
*
|
|
123
147
|
* Called once per consumer (so the seam gets its own instance), exactly like `buildAppRegistry`,
|
|
124
148
|
* which the `githubTokenDelegation` seam also re-builds — the channel is a stateless adapter over
|
|
125
149
|
* D1 reads plus a cipher, so a second instance costs nothing.
|
|
126
150
|
*/
|
|
127
|
-
export declare function buildExternalNotificationChannel(config: AppConfig, db: D1Database): NotificationChannel | null;
|
|
151
|
+
export declare function buildExternalNotificationChannel(config: AppConfig, db: D1Database, webhookChannel?: NotificationChannel): NotificationChannel | null;
|
|
128
152
|
/**
|
|
129
153
|
* Wire the Slack management module (per-account connect + per-workspace routing +
|
|
130
154
|
* member map). Wired only when the integration is enabled; the actual delivery is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/infrastructure/container.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,KAAK,EAIV,KAAK,uBAAuB,EAI5B,KAAK,WAAW,EAGhB,KAAK,mBAAmB,EAIxB,KAAK,0BAA0B,EAK/B,KAAK,mBAAmB,EAExB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,KAAK,iBAAiB,EAKvB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EASL,KAAK,0BAA0B,EAI/B,2BAA2B,EAC3B,2BAA2B,EAqB5B,MAAM,2BAA2B,CAAA;AAUlC,OAAO,EAGL,KAAK,gBAAgB,EAMtB,MAAM,4BAA4B,CAAA;AAInC,OAAO,EAGL,0BAA0B,EAsB1B,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,KAAK,SAAS,EAAoD,MAAM,UAAU,CAAA;AAI3F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAKhC,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,sBAAsB,EAC5B,MAAM,6BAA6B,CAAA;AAMpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAoE1E,OAAO,EACL,KAAK,qBAAqB,EAO3B,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/infrastructure/container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CompositeNotificationChannel, composeTraceSinks, NoopWorkRunner, } from '@cat-factory/kernel';
|
|
2
2
|
import { AiAgentExecutor, inlineWebSearchOptionsFromEnv, resolveAgentConfig, isProxyableProvider, vendorConcurrencyLimiterFromEnv, } from '@cat-factory/agents';
|
|
3
3
|
import { cloudflareBindingRegistry } from '@cat-factory/provider-cloudflare';
|
|
4
|
-
import { ConfluenceProvider, FigmaProvider, ZeplinProvider, GitHubDocsProvider, GitHubIssuesProvider, JiraProvider, LinearDocumentProvider, LinearTaskProvider, NotionProvider, EMAIL_CIPHER_INFO, PersonalSubscriptionService, ProviderSubscriptionService, RunnerPoolConnectionService, ProvisioningLogRecorder, LoggingRunnerTransport, SLACK_CIPHER_INFO, SlackNotificationChannel, TicketTrackerService, IssueWritebackService, githubIssuesLogic, OBSERVABILITY_CIPHER_INFO, RegistryReleaseHealthProvider, defaultObservabilityRegistry, RegistrySubscriptionQuotaProvider, defaultSubscriptionQuotaRegistry, WorkspaceIncidentEnrichmentProvider, INCIDENT_ENRICHMENT_CIPHER_INFO, AccountSettingsService, ACCOUNT_SETTINGS_CIPHER_INFO,
|
|
4
|
+
import { ConfluenceProvider, FigmaProvider, ZeplinProvider, GitHubDocsProvider, GitHubIssuesProvider, JiraProvider, LinearDocumentProvider, LinearTaskProvider, NotionProvider, EMAIL_CIPHER_INFO, PersonalSubscriptionService, ProviderSubscriptionService, RunnerPoolConnectionService, ProvisioningLogRecorder, LoggingRunnerTransport, SLACK_CIPHER_INFO, NOTIFICATION_WEBHOOK_CIPHER_INFO, SlackNotificationChannel, buildNotificationWebhookSupport, TicketTrackerService, IssueWritebackService, githubIssuesLogic, OBSERVABILITY_CIPHER_INFO, RegistryReleaseHealthProvider, defaultObservabilityRegistry, RegistrySubscriptionQuotaProvider, defaultSubscriptionQuotaRegistry, WorkspaceIncidentEnrichmentProvider, INCIDENT_ENRICHMENT_CIPHER_INFO, AccountSettingsService, ACCOUNT_SETTINGS_CIPHER_INFO, createEmailSender, } from '@cat-factory/integrations';
|
|
5
5
|
// Opt-in AWS EKS backends (runner + environment), registered by reference on BOTH facades so
|
|
6
6
|
// the runtimes stay symmetric with the native `kubernetes` backend they extend (which likewise
|
|
7
7
|
// rides both). They are pass-throughs until a workspace connects an `eks` backend, and carry NO
|
|
@@ -76,7 +76,6 @@ import { D1UserSettingsRepository } from './repositories/D1UserSettingsRepositor
|
|
|
76
76
|
import { D1ObservabilityConnectionRepository } from './repositories/D1ObservabilityConnectionRepository';
|
|
77
77
|
import { D1SubscriptionQuotaCycleRepository } from './repositories/D1SubscriptionQuotaCycleRepository';
|
|
78
78
|
import { D1PackageRegistryConnectionRepository } from './repositories/D1PackageRegistryConnectionRepository';
|
|
79
|
-
import { D1TestSecretsRepository } from './repositories/D1TestSecretsRepository';
|
|
80
79
|
import { D1IncidentEnrichmentConnectionRepository } from './repositories/D1IncidentEnrichmentConnectionRepository';
|
|
81
80
|
import { D1AccountSettingsRepository } from './repositories/D1AccountSettingsRepository';
|
|
82
81
|
import { D1ReleaseHealthConfigRepository } from './repositories/D1ReleaseHealthConfigRepository';
|
|
@@ -95,6 +94,7 @@ import { GitHubMergeabilityProvider } from './github/GitHubMergeabilityProvider'
|
|
|
95
94
|
import { GitHubBranchUpdater } from './github/GitHubBranchUpdater';
|
|
96
95
|
import { GitHubPullRequestMerger } from './github/GitHubPullRequestMerger';
|
|
97
96
|
import { WebCryptoSecretCipher } from './environments/WebCryptoSecretCipher';
|
|
97
|
+
import { D1NotificationWebhookRepository } from './repositories/D1NotificationWebhookRepository';
|
|
98
98
|
import { GitHubAppAuth } from './github/GitHubAppAuth';
|
|
99
99
|
import { GitHubAppRegistry } from './github/GitHubAppRegistry';
|
|
100
100
|
import { FetchGitHubClient } from './github/FetchGitHubClient';
|
|
@@ -106,7 +106,7 @@ import { D1FragmentSourceRepository } from './repositories/D1FragmentSourceRepos
|
|
|
106
106
|
import { D1AccountSkillRepository } from './repositories/D1AccountSkillRepository';
|
|
107
107
|
import { D1SkillSourceRepository } from './repositories/D1SkillSourceRepository';
|
|
108
108
|
import { LlmFragmentSelector } from './ai/LlmFragmentSelector';
|
|
109
|
-
import { buildApiKeyService, buildLocalModelEndpointService, buildOpenRouterCatalogService, buildPersonalSubscriptionService, buildPublicApiKeyService, buildResolveUserGitHubToken, buildSubscriptionService, buildUserSecretService, } from './wireCredentialServices';
|
|
109
|
+
import { buildApiKeyService, buildLocalModelEndpointService, buildOpenRouterCatalogService, buildPersonalSubscriptionService, buildPublicApiKeyService, buildResolveUserGitHubToken, buildSubscriptionService, buildTestSecretsService, buildUserSecretService, buildValidationConfigService, } from './wireCredentialServices';
|
|
110
110
|
import { CryptoIdGenerator, SystemClock } from './runtime';
|
|
111
111
|
/**
|
|
112
112
|
* The Worker's {@link ModelProvider}: the base registry plus any extra provider
|
|
@@ -410,7 +410,8 @@ function selectEngineVcsClient(env, config, db, clock, idGenerator) {
|
|
|
410
410
|
}
|
|
411
411
|
return undefined;
|
|
412
412
|
}
|
|
413
|
-
export function selectMergeLifecycleDeps(
|
|
413
|
+
export function selectMergeLifecycleDeps(input) {
|
|
414
|
+
const { env, config, db, clock, idGenerator, providerRegistry, webhookChannel } = input;
|
|
414
415
|
const deps = {
|
|
415
416
|
notificationRepository: new D1NotificationRepository({ db }),
|
|
416
417
|
riskPolicyRepository: new D1RiskPolicyRepository({ db }),
|
|
@@ -424,15 +425,18 @@ export function selectMergeLifecycleDeps(env, config, db, clock, idGenerator, pr
|
|
|
424
425
|
serviceFragmentDefaultsRepository: new D1ServiceFragmentDefaultsRepository({ db }),
|
|
425
426
|
initiativeRepository: new D1InitiativeRepository({ db }),
|
|
426
427
|
};
|
|
427
|
-
// Compose the delivery channels: in-app push (when the events binding is present)
|
|
428
|
-
//
|
|
429
|
-
// port and fan out via CompositeNotificationChannel —
|
|
430
|
-
// port documents, with no change to the engine call sites that
|
|
428
|
+
// Compose the delivery channels: in-app push (when the events binding is present), Slack (when
|
|
429
|
+
// the integration is enabled) and the outbound webhook (when a workspace registered one) all
|
|
430
|
+
// implement the same NotificationChannel port and fan out via CompositeNotificationChannel —
|
|
431
|
+
// realizing the seam the kernel port documents, with no change to the engine call sites that
|
|
432
|
+
// raise notifications. The webhook channel is what a HEADLESS caller relies on: it has no
|
|
433
|
+
// in-app inbox and no browser WebSocket, so a parked run would otherwise reach it only by
|
|
434
|
+
// polling (see docs/initiatives/headless-clarification-loop.md).
|
|
431
435
|
const channels = [];
|
|
432
436
|
const publisher = selectEventPublisher(env, db);
|
|
433
437
|
if (publisher)
|
|
434
438
|
channels.push(new InAppNotificationChannel(publisher));
|
|
435
|
-
const externalChannel = buildExternalNotificationChannel(config, db);
|
|
439
|
+
const externalChannel = buildExternalNotificationChannel(config, db, webhookChannel);
|
|
436
440
|
if (externalChannel)
|
|
437
441
|
channels.push(externalChannel);
|
|
438
442
|
if (channels.length === 1)
|
|
@@ -549,27 +553,6 @@ function buildResolvePackageRegistries(env, db) {
|
|
|
549
553
|
});
|
|
550
554
|
return (workspaceId) => resolvePackageRegistriesForDispatch(repository, cipher, workspaceId);
|
|
551
555
|
}
|
|
552
|
-
/**
|
|
553
|
-
* Build the SENSITIVE per-service test-credential store (sealed), or undefined when the shared
|
|
554
|
-
* encryption key is absent (the cipher must exist to seal/unseal). Backs the test-secrets CRUD
|
|
555
|
-
* controller, the engine's prompt refs (non-secret key + description), and the executor's
|
|
556
|
-
* out-of-band value injection into the Tester container. Stateless, so building a fresh instance
|
|
557
|
-
* per call site is safe (mirrors `buildResolvePackageRegistries`).
|
|
558
|
-
*/
|
|
559
|
-
function buildTestSecretsService(env, db, clock) {
|
|
560
|
-
const encryptionKey = env.ENCRYPTION_KEY?.trim();
|
|
561
|
-
if (!encryptionKey)
|
|
562
|
-
return undefined;
|
|
563
|
-
return new TestSecretsService({
|
|
564
|
-
testSecretsRepository: new D1TestSecretsRepository({ db }),
|
|
565
|
-
secretCipher: new WebCryptoSecretCipher({
|
|
566
|
-
masterKeyBase64: encryptionKey,
|
|
567
|
-
info: TEST_SECRETS_CIPHER_INFO,
|
|
568
|
-
}),
|
|
569
|
-
blockRepository: new D1BlockRepository({ db }),
|
|
570
|
-
clock,
|
|
571
|
-
});
|
|
572
|
-
}
|
|
573
556
|
/**
|
|
574
557
|
* Wire the per-workspace incident-enrichment integration (PagerDuty + incident.io). The
|
|
575
558
|
* credentials moved out of env into a sealed per-workspace row; the provider resolves +
|
|
@@ -697,20 +680,61 @@ function buildSlackChannel(config, db) {
|
|
|
697
680
|
onError: (error, ctx) => logger.warn({ err: error instanceof Error ? error.message : String(error), ...ctx }, 'slack notification delivery failed'),
|
|
698
681
|
});
|
|
699
682
|
}
|
|
683
|
+
/**
|
|
684
|
+
* Build the outbound notification-webhook feature (management service + delivery channel) when the
|
|
685
|
+
* shared encryption key is present — the signing secret must be sealable. Both halves come from
|
|
686
|
+
* one builder so they can't drift onto different repositories/ciphers. Null when no key is set;
|
|
687
|
+
* then the management surface 503s and no deliveries are attempted.
|
|
688
|
+
*/
|
|
689
|
+
function buildNotificationWebhookSupportForWorker(env, config, db, clock) {
|
|
690
|
+
const encryptionKey = env.ENCRYPTION_KEY?.trim();
|
|
691
|
+
if (!encryptionKey)
|
|
692
|
+
return null;
|
|
693
|
+
// The endpoint guard, resolved from the webhook's OWN config slice (undefined ⇒ the strict
|
|
694
|
+
// public-https default). Handed to the builder, which gives it to both the write boundary and
|
|
695
|
+
// the delivery path so they can't admit/reject different endpoints.
|
|
696
|
+
const urlSafetyPolicy = resolveUrlSafetyPolicy(config.notificationWebhooks);
|
|
697
|
+
return buildNotificationWebhookSupport({
|
|
698
|
+
notificationWebhookRepository: new D1NotificationWebhookRepository({ db }),
|
|
699
|
+
secretCipher: new WebCryptoSecretCipher({
|
|
700
|
+
masterKeyBase64: encryptionKey,
|
|
701
|
+
info: NOTIFICATION_WEBHOOK_CIPHER_INFO,
|
|
702
|
+
}),
|
|
703
|
+
clock,
|
|
704
|
+
...(urlSafetyPolicy ? { urlSafetyPolicy } : {}),
|
|
705
|
+
// Best-effort delivery still surfaces failures (a dead endpoint, a rejected signature)
|
|
706
|
+
// through the structured logger so a broken receiver is diagnosable.
|
|
707
|
+
onError: (error, ctx) => logger.warn({ err: error instanceof Error ? error.message : String(error), ...ctx }, 'notification webhook delivery failed'),
|
|
708
|
+
});
|
|
709
|
+
}
|
|
700
710
|
/**
|
|
701
711
|
* This deployment's EXTERNAL notification channels — everything that is NOT the in-app push
|
|
702
|
-
* (Slack
|
|
703
|
-
*
|
|
704
|
-
*
|
|
705
|
-
*
|
|
706
|
-
*
|
|
712
|
+
* (Slack, plus a workspace's outbound notification webhook). Two consumers:
|
|
713
|
+
* {@link selectMergeLifecycleDeps} composes it into the engine's own fan-out, and the
|
|
714
|
+
* ServerContainer attaches it as `machineNotificationDelivery`, the seam the mothership-mode
|
|
715
|
+
* `POST /internal/notifications/deliver` endpoint delivers a laptop-raised notification through
|
|
716
|
+
* (its credentials never leave this deployment). In-app is excluded there on purpose: a laptop's
|
|
717
|
+
* in-app frame already arrives over the real-time upstream relay.
|
|
718
|
+
*
|
|
719
|
+
* The webhook belongs in this set for the same reason Slack does — its signing secret is sealed
|
|
720
|
+
* with THIS deployment's key, so this is the only side that can decrypt and deliver it. Keeping it
|
|
721
|
+
* out would leave a mothership-mode laptop failing every delivery on a decrypt it cannot perform
|
|
722
|
+
* while the mothership never attempted one. Symmetric with the Node facade.
|
|
707
723
|
*
|
|
708
724
|
* Called once per consumer (so the seam gets its own instance), exactly like `buildAppRegistry`,
|
|
709
725
|
* which the `githubTokenDelegation` seam also re-builds — the channel is a stateless adapter over
|
|
710
726
|
* D1 reads plus a cipher, so a second instance costs nothing.
|
|
711
727
|
*/
|
|
712
|
-
export function buildExternalNotificationChannel(config, db) {
|
|
713
|
-
|
|
728
|
+
export function buildExternalNotificationChannel(config, db, webhookChannel) {
|
|
729
|
+
const channels = [];
|
|
730
|
+
const slackChannel = buildSlackChannel(config, db);
|
|
731
|
+
if (slackChannel)
|
|
732
|
+
channels.push(slackChannel);
|
|
733
|
+
if (webhookChannel)
|
|
734
|
+
channels.push(webhookChannel);
|
|
735
|
+
if (channels.length === 0)
|
|
736
|
+
return null;
|
|
737
|
+
return channels.length === 1 ? channels[0] : new CompositeNotificationChannel(channels);
|
|
714
738
|
}
|
|
715
739
|
/**
|
|
716
740
|
* Wire the Slack management module (per-account connect + per-workspace routing +
|
|
@@ -1636,6 +1660,7 @@ export function buildContainer(env, overrides = {}, opts = {}) {
|
|
|
1636
1660
|
// The sensitive per-service test-credential store (sealed) — shared by the test-secrets
|
|
1637
1661
|
// CRUD controller and the engine's prompt refs (the executor builds its own value resolver).
|
|
1638
1662
|
const testSecretsService = buildTestSecretsService(env, db, clock);
|
|
1663
|
+
const validationConfigService = buildValidationConfigService(db, clock);
|
|
1639
1664
|
// The per-user individual-usage subscription store (Claude) — shared by the
|
|
1640
1665
|
// personal-subscription controller and the container executor's personal lease.
|
|
1641
1666
|
const personalSubscriptions = buildPersonalSubscriptionService(env, db, clock);
|
|
@@ -1710,6 +1735,10 @@ export function buildContainer(env, overrides = {}, opts = {}) {
|
|
|
1710
1735
|
// once so the engine's skill-freshness fan-out (slice 4) enqueues through the SAME seam the
|
|
1711
1736
|
// gateway exposes, rather than reaching for the queue binding a second time.
|
|
1712
1737
|
const githubWebhookIngest = new CfGitHubWebhookIngest(env.GITHUB_SYNC_QUEUE);
|
|
1738
|
+
// The outbound notification webhook: management service + delivery channel from ONE builder, so
|
|
1739
|
+
// the surface that reports an endpoint as configured and the channel that delivers to it can
|
|
1740
|
+
// never end up on different repositories/ciphers.
|
|
1741
|
+
const notificationWebhookSupport = buildNotificationWebhookSupportForWorker(env, config, db, clock);
|
|
1713
1742
|
return assembleWorkerContainer({
|
|
1714
1743
|
env,
|
|
1715
1744
|
config,
|
|
@@ -1737,6 +1766,7 @@ export function buildContainer(env, overrides = {}, opts = {}) {
|
|
|
1737
1766
|
resolveTransport,
|
|
1738
1767
|
subscriptions,
|
|
1739
1768
|
testSecretsService,
|
|
1769
|
+
validationConfigService,
|
|
1740
1770
|
personalSubscriptions,
|
|
1741
1771
|
apiKeys,
|
|
1742
1772
|
publicApiKeys,
|
|
@@ -1750,6 +1780,7 @@ export function buildContainer(env, overrides = {}, opts = {}) {
|
|
|
1750
1780
|
defaultWebSearchUpstream,
|
|
1751
1781
|
resolveBinaryArtifactStore,
|
|
1752
1782
|
githubWebhookIngest,
|
|
1783
|
+
notificationWebhookSupport,
|
|
1753
1784
|
});
|
|
1754
1785
|
}
|
|
1755
1786
|
//# sourceMappingURL=container.js.map
|