@cat-factory/integrations 0.94.1 → 0.96.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.
Files changed (45) hide show
  1. package/dist/index.d.ts +7 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +14 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/modules/environments/environments.logic.d.ts +6 -2
  6. package/dist/modules/environments/environments.logic.d.ts.map +1 -1
  7. package/dist/modules/environments/environments.logic.js +9 -42
  8. package/dist/modules/environments/environments.logic.js.map +1 -1
  9. package/dist/modules/notificationWebhook/NotificationWebhookService.d.ts +25 -0
  10. package/dist/modules/notificationWebhook/NotificationWebhookService.d.ts.map +1 -0
  11. package/dist/modules/notificationWebhook/NotificationWebhookService.js +49 -0
  12. package/dist/modules/notificationWebhook/NotificationWebhookService.js.map +1 -0
  13. package/dist/modules/notificationWebhook/WebhookNotificationChannel.d.ts +39 -0
  14. package/dist/modules/notificationWebhook/WebhookNotificationChannel.d.ts.map +1 -0
  15. package/dist/modules/notificationWebhook/WebhookNotificationChannel.js +154 -0
  16. package/dist/modules/notificationWebhook/WebhookNotificationChannel.js.map +1 -0
  17. package/dist/modules/notificationWebhook/support.d.ts +42 -0
  18. package/dist/modules/notificationWebhook/support.d.ts.map +1 -0
  19. package/dist/modules/notificationWebhook/support.js +37 -0
  20. package/dist/modules/notificationWebhook/support.js.map +1 -0
  21. package/dist/modules/notificationWebhook/webhookSignature.d.ts +17 -0
  22. package/dist/modules/notificationWebhook/webhookSignature.d.ts.map +1 -0
  23. package/dist/modules/notificationWebhook/webhookSignature.js +42 -0
  24. package/dist/modules/notificationWebhook/webhookSignature.js.map +1 -0
  25. package/dist/modules/notificationWebhook/webhookUrl.d.ts +9 -0
  26. package/dist/modules/notificationWebhook/webhookUrl.d.ts.map +1 -0
  27. package/dist/modules/notificationWebhook/webhookUrl.js +26 -0
  28. package/dist/modules/notificationWebhook/webhookUrl.js.map +1 -0
  29. package/dist/modules/publicApi/PublicApiKeyService.d.ts +6 -3
  30. package/dist/modules/publicApi/PublicApiKeyService.d.ts.map +1 -1
  31. package/dist/modules/publicApi/PublicApiKeyService.js +9 -4
  32. package/dist/modules/publicApi/PublicApiKeyService.js.map +1 -1
  33. package/dist/modules/runners/HttpRunnerPoolProvider.d.ts +6 -0
  34. package/dist/modules/runners/HttpRunnerPoolProvider.d.ts.map +1 -1
  35. package/dist/modules/runners/HttpRunnerPoolProvider.js +57 -0
  36. package/dist/modules/runners/HttpRunnerPoolProvider.js.map +1 -1
  37. package/dist/modules/shared/url-guard.d.ts +24 -0
  38. package/dist/modules/shared/url-guard.d.ts.map +1 -0
  39. package/dist/modules/shared/url-guard.js +53 -0
  40. package/dist/modules/shared/url-guard.js.map +1 -0
  41. package/dist/modules/validation/ValidationConfigService.d.ts +54 -0
  42. package/dist/modules/validation/ValidationConfigService.d.ts.map +1 -0
  43. package/dist/modules/validation/ValidationConfigService.js +103 -0
  44. package/dist/modules/validation/ValidationConfigService.js.map +1 -0
  45. package/package.json +4 -4
@@ -0,0 +1,37 @@
1
+ import { NotificationWebhookService } from './NotificationWebhookService.js';
2
+ import { WebhookNotificationChannel } from './WebhookNotificationChannel.js';
3
+ /**
4
+ * HKDF `info` tag the notification-webhook signing secret is sealed under, so it is
5
+ * cryptographically isolated from every other sealed credential class (Slack tokens, tracker
6
+ * credentials, package-registry auth) even though they share the deployment master key.
7
+ */
8
+ export const NOTIFICATION_WEBHOOK_CIPHER_INFO = 'cat-factory:notification-webhook';
9
+ /**
10
+ * Build BOTH halves of the notification-webhook feature from one dependency set: the management
11
+ * service (behind the workspace controller) and the delivery channel (composed into the facade's
12
+ * `CompositeNotificationChannel`).
13
+ *
14
+ * They exist as one builder because they MUST read the same rows through the same cipher —
15
+ * a facade that wired the service against one repository and the channel against another would
16
+ * present a webhook as configured while delivering nothing, and each facade wiring them
17
+ * separately is exactly how that drift happens. Both runtimes call this with their own repo.
18
+ */
19
+ export function buildNotificationWebhookSupport(deps) {
20
+ return {
21
+ service: new NotificationWebhookService({
22
+ notificationWebhookRepository: deps.notificationWebhookRepository,
23
+ secretCipher: deps.secretCipher,
24
+ clock: deps.clock,
25
+ urlSafetyPolicy: deps.urlSafetyPolicy,
26
+ }),
27
+ channel: new WebhookNotificationChannel({
28
+ notificationWebhookRepository: deps.notificationWebhookRepository,
29
+ secretCipher: deps.secretCipher,
30
+ clock: deps.clock,
31
+ urlSafetyPolicy: deps.urlSafetyPolicy,
32
+ fetchImpl: deps.fetchImpl,
33
+ onError: deps.onError,
34
+ }),
35
+ };
36
+ }
37
+ //# sourceMappingURL=support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support.js","sourceRoot":"","sources":["../../../src/modules/notificationWebhook/support.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAE5E;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,kCAAkC,CAAA;AAoBlF;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAA4C;IAI1F,OAAO;QACL,OAAO,EAAE,IAAI,0BAA0B,CAAC;YACtC,6BAA6B,EAAE,IAAI,CAAC,6BAA6B;YACjE,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QACF,OAAO,EAAE,IAAI,0BAA0B,CAAC;YACtC,6BAA6B,EAAE,IAAI,CAAC,6BAA6B;YACjE,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;KACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ /** Header names a receiver reads to verify a delivery. */
2
+ export declare const WEBHOOK_SIGNATURE_HEADERS: {
3
+ /** Epoch-ms the delivery was produced; part of the signed string (replay window). */
4
+ readonly timestamp: 'x-cat-factory-timestamp';
5
+ /** `v1=<hex HMAC-SHA256>` over `<timestamp>.<body>`. */
6
+ readonly signature: 'x-cat-factory-signature';
7
+ };
8
+ /**
9
+ * Sign a delivery body, returning the headers to send with it.
10
+ *
11
+ * The signed string is `<timestamp>.<body>`, NOT the body alone: binding the timestamp INTO the
12
+ * MAC is what makes the timestamp header trustworthy, so a receiver can reject a replayed delivery
13
+ * by rejecting an old timestamp. Signing the body alone would leave the timestamp freely rewritable
14
+ * by anyone replaying the capture, making the whole replay window decorative.
15
+ */
16
+ export declare function signWebhookDelivery(secret: string, body: string, timestamp: number): Promise<Record<string, string>>;
17
+ //# sourceMappingURL=webhookSignature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhookSignature.d.ts","sourceRoot":"","sources":["../../../src/modules/notificationWebhook/webhookSignature.ts"],"names":[],"mappings":"AAWA,0DAA0D;AAC1D,eAAO,MAAM,yBAAyB;IACpC,qFAAqF;aACrF,SAAS,EAAE,yBAAyB;IACpC,wDAAwD;aACxD,SAAS,EAAE,yBAAyB;CAC5B,CAAA;AAKV;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAiBjC"}
@@ -0,0 +1,42 @@
1
+ // Detached HMAC signature over an outbound webhook body — the proof a receiver uses to decide that
2
+ // a delivery really came from this deployment and was not replayed or tampered with.
3
+ //
4
+ // NOTE on why this is not the server's `HmacSigner` (`@cat-factory/server` `auth/signing.ts`):
5
+ // that primitive mints self-contained TOKENS (`base64url(payload).base64url(mac)`) whose payload
6
+ // travels inside the signed string, and it is audience-keyed for the session/OAuth/container/ws
7
+ // token classes. A webhook needs the opposite shape — a signature DETACHED from a body the
8
+ // receiver already has — and, decisively, `@cat-factory/server` sits ABOVE this package in the
9
+ // layering, so importing it here would invert the dependency. The construction below is the plain
10
+ // Web Crypto HMAC-SHA256 both use underneath, so it runs unchanged on workerd and Node.
11
+ /** Header names a receiver reads to verify a delivery. */
12
+ export const WEBHOOK_SIGNATURE_HEADERS = {
13
+ /** Epoch-ms the delivery was produced; part of the signed string (replay window). */
14
+ timestamp: 'x-cat-factory-timestamp',
15
+ /** `v1=<hex HMAC-SHA256>` over `<timestamp>.<body>`. */
16
+ signature: 'x-cat-factory-signature',
17
+ };
18
+ /** The signature scheme version, so the format can change without silently breaking receivers. */
19
+ const SCHEME = 'v1';
20
+ /**
21
+ * Sign a delivery body, returning the headers to send with it.
22
+ *
23
+ * The signed string is `<timestamp>.<body>`, NOT the body alone: binding the timestamp INTO the
24
+ * MAC is what makes the timestamp header trustworthy, so a receiver can reject a replayed delivery
25
+ * by rejecting an old timestamp. Signing the body alone would leave the timestamp freely rewritable
26
+ * by anyone replaying the capture, making the whole replay window decorative.
27
+ */
28
+ export async function signWebhookDelivery(secret, body, timestamp) {
29
+ const key = await crypto.subtle.importKey('raw', new TextEncoder().encode(secret), { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
30
+ const mac = await crypto.subtle.sign('HMAC', key, new TextEncoder().encode(`${timestamp}.${body}`));
31
+ return {
32
+ [WEBHOOK_SIGNATURE_HEADERS.timestamp]: String(timestamp),
33
+ [WEBHOOK_SIGNATURE_HEADERS.signature]: `${SCHEME}=${toHex(new Uint8Array(mac))}`,
34
+ };
35
+ }
36
+ function toHex(bytes) {
37
+ let out = '';
38
+ for (const b of bytes)
39
+ out += b.toString(16).padStart(2, '0');
40
+ return out;
41
+ }
42
+ //# sourceMappingURL=webhookSignature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhookSignature.js","sourceRoot":"","sources":["../../../src/modules/notificationWebhook/webhookSignature.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,qFAAqF;AACrF,EAAE;AACF,+FAA+F;AAC/F,iGAAiG;AACjG,gGAAgG;AAChG,2FAA2F;AAC3F,+FAA+F;AAC/F,kGAAkG;AAClG,wFAAwF;AAExF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,qFAAqF;IACrF,SAAS,EAAE,yBAAyB;IACpC,wDAAwD;IACxD,SAAS,EAAE,yBAAyB;CAC5B,CAAA;AAEV,kGAAkG;AAClG,MAAM,MAAM,GAAG,IAAI,CAAA;AAEnB;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,IAAY,EACZ,SAAiB;IAEjB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CACvC,KAAK,EACL,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAChC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EACjC,KAAK,EACL,CAAC,MAAM,CAAC,CACT,CAAA;IACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAClC,MAAM,EACN,GAAG,EACH,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CACjD,CAAA;IACD,OAAO;QACL,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;QACxD,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;KACjF,CAAA;AACH,CAAC;AAED,SAAS,KAAK,CAAC,KAAiB;IAC9B,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC7D,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { UrlSafetyPolicy } from '@cat-factory/kernel';
2
+ /**
3
+ * Validate a notification-webhook endpoint. Strict by default — `https` only, no private/internal
4
+ * or cloud-metadata host — widened only by the deployment's own
5
+ * `NOTIFICATION_WEBHOOK_ALLOW_URL_HOSTS` / `_ALLOW_HTTP_URLS` slice, which a developer running a
6
+ * receiver on `localhost` genuinely needs. Throws `ValidationError` (a 400 at the controller).
7
+ */
8
+ export declare function assertSafeNotificationWebhookUrl(url: string, policy?: UrlSafetyPolicy): void;
9
+ //# sourceMappingURL=webhookUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhookUrl.d.ts","sourceRoot":"","sources":["../../../src/modules/notificationWebhook/webhookUrl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAe1D;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAM5F"}
@@ -0,0 +1,26 @@
1
+ import { assertSafePublicUrl } from '../shared/url-guard.js';
2
+ // The notification-webhook face of the shared SSRF guard. Applied in BOTH places a URL can enter
3
+ // the system, which is the point:
4
+ //
5
+ // - the WRITE boundary (`NotificationWebhookService.put`), so a private/internal endpoint is
6
+ // rejected with a clear message when an operator registers it, not silently at 3am;
7
+ // - every REDIRECT hop of a delivery (`WebhookNotificationChannel` via `safeFetch`), because the
8
+ // write-time check only ever vouched for the FIRST URL and a receiver is free to 302 the
9
+ // delivery — body, signature headers and all — at an internal target.
10
+ //
11
+ // The contract schema's `https://` prefix check is kept as well: it is the friendly wire-level
12
+ // message, whereas this is the guard that actually holds.
13
+ /**
14
+ * Validate a notification-webhook endpoint. Strict by default — `https` only, no private/internal
15
+ * or cloud-metadata host — widened only by the deployment's own
16
+ * `NOTIFICATION_WEBHOOK_ALLOW_URL_HOSTS` / `_ALLOW_HTTP_URLS` slice, which a developer running a
17
+ * receiver on `localhost` genuinely needs. Throws `ValidationError` (a 400 at the controller).
18
+ */
19
+ export function assertSafeNotificationWebhookUrl(url, policy) {
20
+ assertSafePublicUrl(url, {
21
+ subject: 'Notification webhook',
22
+ label: 'endpoint',
23
+ ...(policy ? { policy } : {}),
24
+ });
25
+ }
26
+ //# sourceMappingURL=webhookUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhookUrl.js","sourceRoot":"","sources":["../../../src/modules/notificationWebhook/webhookUrl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAE5D,iGAAiG;AACjG,kCAAkC;AAClC,EAAE;AACF,8FAA8F;AAC9F,uFAAuF;AACvF,kGAAkG;AAClG,4FAA4F;AAC5F,yEAAyE;AACzE,EAAE;AACF,+FAA+F;AAC/F,0DAA0D;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAAC,GAAW,EAAE,MAAwB;IACpF,mBAAmB,CAAC,GAAG,EAAE;QACvB,OAAO,EAAE,sBAAsB;QAC/B,KAAK,EAAE,UAAU;QACjB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC,CAAA;AACJ,CAAC"}
@@ -16,13 +16,16 @@ export interface PublicApiKeyAuth {
16
16
  keyId: string;
17
17
  accountId: string;
18
18
  workspaceId: string;
19
- /** What this key may do (read ⊂ write ⊂ admin) — the public surface gates each route on it. */
19
+ /**
20
+ * What this key may do (read ⊂ write ⊂ decide ⊂ admin) — the public surface gates each
21
+ * route on it.
22
+ */
20
23
  scope: PublicApiScope;
21
24
  }
22
25
  /**
23
26
  * Whether a key that HOLDS `have` satisfies an endpoint that NEEDS `need`. The ladder is
24
- * inclusive — an `admin` key satisfies a `write` or `read` requirement — so this is a simple
25
- * rank comparison, the single source of truth for every `/api/v1` scope gate.
27
+ * inclusive — an `admin` key satisfies a `decide`, `write` or `read` requirement — so this is
28
+ * a simple rank comparison, the single source of truth for every `/api/v1` scope gate.
26
29
  */
27
30
  export declare function scopeSatisfies(have: PublicApiScope, need: PublicApiScope): boolean;
28
31
  /** The result of issuing a key: the stored record + the one-time raw secret to hand back. */
@@ -1 +1 @@
1
- {"version":3,"file":"PublicApiKeyService.d.ts","sourceRoot":"","sources":["../../../src/modules/publicApi/PublicApiKeyService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;AA0B/E,MAAM,WAAW,+BAA+B;IAC9C,UAAU,EAAE,sBAAsB,CAAA;IAClC;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;CACb;AAED,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,+FAA+F;IAC/F,KAAK,EAAE,cAAc,CAAA;CACtB;AAKD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAElF;AAED,6FAA6F;AAC7F,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,mBAAmB;IAGlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,cAAc,CAAC,CAAoB;IAE3C,YAA6B,IAAI,EAAE,+BAA+B,EAAI;IAEtE;;;OAGG;IACG,KAAK,CACT,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAClF,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,cAAwB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CA8B7B;IAED,qEAAqE;IAC/D,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAE7D;IAED,yDAAyD;IACnD,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;IAED;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAmB/E;IAED;;;;;OAKG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9C;IAED,OAAO,CAAC,OAAO;YAaD,IAAI;CAQnB"}
1
+ {"version":3,"file":"PublicApiKeyService.d.ts","sourceRoot":"","sources":["../../../src/modules/publicApi/PublicApiKeyService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;AA0B/E,MAAM,WAAW,+BAA+B;IAC9C,UAAU,EAAE,sBAAsB,CAAA;IAClC;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;CACb;AAED,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,KAAK,EAAE,cAAc,CAAA;CACtB;AAYD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAElF;AAED,6FAA6F;AAC7F,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,mBAAmB;IAGlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,cAAc,CAAC,CAAoB;IAE3C,YAA6B,IAAI,EAAE,+BAA+B,EAAI;IAEtE;;;OAGG;IACG,KAAK,CACT,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAClF,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,cAAwB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CA8B7B;IAED,qEAAqE;IAC/D,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAE7D;IAED,yDAAyD;IACnD,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;IAED;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAmB/E;IAED;;;;;OAKG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9C;IAED,OAAO,CAAC,OAAO;YAaD,IAAI;CAQnB"}
@@ -22,12 +22,17 @@ const MAX_KEYS_PER_WORKSPACE = 50;
22
22
  * collapses that write amplification.
23
23
  */
24
24
  const LAST_USED_STAMP_THROTTLE_MS = 60_000;
25
- /** The scope ladder as a rank, so a `have ≥ need` check is one comparison. */
26
- const SCOPE_RANK = { read: 0, write: 1, admin: 2 };
25
+ /**
26
+ * The scope ladder as a rank, so a `have ≥ need` check is one comparison. DERIVED from the
27
+ * contract's `PUBLIC_API_SCOPES` array order rather than hand-listed, so inserting a rung
28
+ * (as `decide` was, between `write` and `admin`) cannot leave the wire vocabulary and the
29
+ * server-side check disagreeing about the ladder.
30
+ */
31
+ const SCOPE_RANK = Object.fromEntries(PUBLIC_API_SCOPES.map((scope, rank) => [scope, rank]));
27
32
  /**
28
33
  * Whether a key that HOLDS `have` satisfies an endpoint that NEEDS `need`. The ladder is
29
- * inclusive — an `admin` key satisfies a `write` or `read` requirement — so this is a simple
30
- * rank comparison, the single source of truth for every `/api/v1` scope gate.
34
+ * inclusive — an `admin` key satisfies a `decide`, `write` or `read` requirement — so this is
35
+ * a simple rank comparison, the single source of truth for every `/api/v1` scope gate.
31
36
  */
32
37
  export function scopeSatisfies(have, need) {
33
38
  return SCOPE_RANK[have] >= SCOPE_RANK[need];
@@ -1 +1 @@
1
- {"version":3,"file":"PublicApiKeyService.js","sourceRoot":"","sources":["../../../src/modules/publicApi/PublicApiKeyService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PublicApiKeyService.js","sourceRoot":"","sources":["../../../src/modules/publicApi/PublicApiKeyService.ts"],"names":[],"mappings":"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"}
@@ -70,5 +70,11 @@ export declare class HttpRunnerPoolProvider implements RunnerPoolProvider {
70
70
  * channels can't validate a call differently on a pool-backed run.
71
71
  */
72
72
  private mapCallMetrics;
73
+ /**
74
+ * Project the scheduler's live pre-PR validation report onto the canonical view, when the
75
+ * manifest maps it. Runs the SAME coercion as the terminal result envelope so the live and
76
+ * terminal channels can't validate a report differently on a pool-backed run.
77
+ */
78
+ private mapValidationReport;
73
79
  }
74
80
  //# sourceMappingURL=HttpRunnerPoolProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpRunnerPoolProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/runners/HttpRunnerPoolProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,mBAAmB,EACnB,qBAAqB,EAErB,aAAa,EACb,iBAAiB,EAEjB,+BAA+B,EAC/B,kBAAkB,EAClB,kBAAkB,EAGlB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAyC5B;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAEzC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AAMD,MAAM,WAAW,6BAA6B;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iFAAiF;IACjF,SAAS,CAAC,EAAE,eAAe,CAAA;CAC5B;AAED,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0D;IAErF,YAAY,OAAO,GAAE,6BAAkC,EAGtD;IAEK,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxD;IAEK,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAQzD;IAEK,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnD;IAED,uFAAuF;IACvF,cAAc,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,CAGnE;IAED,uFAAuF;IACjF,cAAc,CAAC,GAAG,EAAE,+BAA+B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CASxF;IAID;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,KAAK;YAmBC,OAAO;IAyDrB,OAAO,CAAC,QAAQ;YAoBF,WAAW;YAgCX,UAAU;IA2DxB,iFAAiF;IACjF,OAAO,CAAC,UAAU;IA0ElB,+FAA+F;IAC/F,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,WAAW;IAkBnB,yFAAyF;IACzF,OAAO,CAAC,YAAY;IAwBpB;;;;OAIG;IACH,OAAO,CAAC,cAAc;CASvB"}
1
+ {"version":3,"file":"HttpRunnerPoolProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/runners/HttpRunnerPoolProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,mBAAmB,EACnB,qBAAqB,EAGrB,aAAa,EACb,iBAAiB,EAEjB,+BAA+B,EAC/B,kBAAkB,EAClB,kBAAkB,EAGlB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAyC5B;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAEzC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AAMD,MAAM,WAAW,6BAA6B;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iFAAiF;IACjF,SAAS,CAAC,EAAE,eAAe,CAAA;CAC5B;AAED,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0D;IAErF,YAAY,OAAO,GAAE,6BAAkC,EAGtD;IAEK,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxD;IAEK,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAQzD;IAEK,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnD;IAED,uFAAuF;IACvF,cAAc,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,CAGnE;IAED,uFAAuF;IACjF,cAAc,CAAC,GAAG,EAAE,+BAA+B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CASxF;IAID;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,KAAK;YAmBC,OAAO;IAyDrB,OAAO,CAAC,QAAQ;YAoBF,WAAW;YAgCX,UAAU;IA2DxB,iFAAiF;IACjF,OAAO,CAAC,UAAU;IAgFlB,+FAA+F;IAC/F,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,WAAW;IAkBnB,yFAAyF;IACzF,OAAO,CAAC,YAAY;IAwBpB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;CAQ5B"}
@@ -286,6 +286,12 @@ export class HttpRunnerPoolProvider {
286
286
  const callMetrics = this.mapCallMetrics(manifest, json);
287
287
  if (callMetrics)
288
288
  view.callMetrics = callMetrics;
289
+ // The latest pre-PR validation attempt, when the manifest maps it — so a pool-backed run
290
+ // shows the repair loop while it runs, exactly like a Cloudflare/local container. Unlike the
291
+ // drain channels above this is a latest-value publish, so re-reading it is harmless.
292
+ const validationReport = this.mapValidationReport(manifest, json);
293
+ if (validationReport)
294
+ view.validationReport = validationReport;
289
295
  // The harness's structured failure cause + extended diagnostic, when the manifest maps
290
296
  // them — so a pool that proxies the executor-harness verbatim classifies a failure exactly
291
297
  // like a Cloudflare container, instead of degrading to the engine's error-string regex.
@@ -391,6 +397,50 @@ export class HttpRunnerPoolProvider {
391
397
  const metrics = coerceCallMetrics(environmentsLogic.extractByPath(json, path));
392
398
  return metrics.length > 0 ? metrics : undefined;
393
399
  }
400
+ /**
401
+ * Project the scheduler's live pre-PR validation report onto the canonical view, when the
402
+ * manifest maps it. Runs the SAME coercion as the terminal result envelope so the live and
403
+ * terminal channels can't validate a report differently on a pool-backed run.
404
+ */
405
+ mapValidationReport(manifest, json) {
406
+ const path = manifest.response.validationReportPath;
407
+ if (!path)
408
+ return undefined;
409
+ return coerceValidationReport(environmentsLogic.extractByPath(json, path));
410
+ }
411
+ }
412
+ /**
413
+ * Coerce a scheduler's pre-PR `validationReport` envelope into the canonical
414
+ * {@link RunnerValidationReport}, keeping only well-formed per-command outcomes. Returns
415
+ * undefined for anything that isn't a report-shaped object, so a malformed/absent envelope
416
+ * injects nothing (and the run behaves as if the service configured no checks — which, for a
417
+ * pool that doesn't proxy the field, it effectively did). Mirrors the executor-harness's shape.
418
+ */
419
+ function coerceValidationReport(raw) {
420
+ if (typeof raw !== 'object' || raw === null)
421
+ return undefined;
422
+ const o = raw;
423
+ if (!Array.isArray(o.outcomes))
424
+ return undefined;
425
+ const outcomes = o.outcomes
426
+ .filter((x) => typeof x === 'object' && x !== null)
427
+ .filter((x) => typeof x.label === 'string' && typeof x.exitCode === 'number')
428
+ .map((x) => ({
429
+ label: x.label,
430
+ command: typeof x.command === 'string' ? x.command : '',
431
+ exitCode: x.exitCode,
432
+ passed: x.passed === true,
433
+ ...(typeof x.outputTail === 'string' ? { outputTail: x.outputTail } : {}),
434
+ ...(typeof x.durationMs === 'number' ? { durationMs: x.durationMs } : {}),
435
+ ...(x.timedOut === true ? { timedOut: true } : {}),
436
+ }));
437
+ return {
438
+ passed: o.passed === true,
439
+ attempts: typeof o.attempts === 'number' ? o.attempts : 1,
440
+ maxAttempts: typeof o.maxAttempts === 'number' ? o.maxAttempts : outcomes.length > 0 ? 1 : 0,
441
+ outcomes,
442
+ ...(typeof o.at === 'number' ? { at: o.at } : {}),
443
+ };
394
444
  }
395
445
  /**
396
446
  * Coerce a scheduler's `result` envelope into the canonical {@link RunnerJobResult},
@@ -463,6 +513,13 @@ function coerceRunnerResult(raw) {
463
513
  const effortReport = coerceEffortReport(o.effortReport);
464
514
  if (effortReport)
465
515
  out.effortReport = effortReport;
516
+ // The pre-PR validation report: on a passing run it is the captured proof the checkout was
517
+ // green before the PR opened; on a failed one it is the evidence behind the failure. Dropping
518
+ // it here would leave a pool-backed run with a bare "validation failed" and no output, while
519
+ // the Cloudflare/local transports (which return the harness view verbatim) show every command.
520
+ const validationReport = coerceValidationReport(o.validationReport);
521
+ if (validationReport)
522
+ out.validationReport = validationReport;
466
523
  return out;
467
524
  }
468
525
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"HttpRunnerPoolProvider.js","sourceRoot":"","sources":["../../../src/modules/runners/HttpRunnerPoolProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpRunnerPoolProvider.js","sourceRoot":"","sources":["../../../src/modules/runners/HttpRunnerPoolProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { UrlSafetyPolicy } from '@cat-factory/kernel';
2
+ /** Per-call wording + policy for {@link assertSafePublicUrl}. */
3
+ export interface PublicUrlGuardOptions {
4
+ /** What owns the URL, capitalised for the message ('Environment', 'Notification webhook'). */
5
+ subject: string;
6
+ /** Which URL of that subject ('base URL', 'endpoint', 'OAuth token URL'). */
7
+ label?: string;
8
+ /**
9
+ * The widened policy, when the deployment configured one. Defaults to
10
+ * {@link STRICT_URL_SAFETY_POLICY} — `https` only, no private/internal hosts.
11
+ */
12
+ policy?: UrlSafetyPolicy;
13
+ }
14
+ /**
15
+ * Validate a URL before it is stored or fetched. The default policy requires `https` and rejects
16
+ * internal/private hosts (loopback, RFC1918, the link-local range including the 169.254.169.254
17
+ * cloud-metadata endpoint); a trusted operator-installed integration can pass a widened policy to
18
+ * permit specific schemes/hosts. Embedded credentials are forbidden regardless of policy.
19
+ *
20
+ * Parsed by hand (no `URL` global) so this stays in the platform-agnostic core and behaves
21
+ * identically on workerd and Node.
22
+ */
23
+ export declare function assertSafePublicUrl(url: string, options: PublicUrlGuardOptions): void;
24
+ //# sourceMappingURL=url-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-guard.d.ts","sourceRoot":"","sources":["../../../src/modules/shared/url-guard.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAa1D,iEAAiE;AACjE,MAAM,WAAW,qBAAqB;IACpC,8FAA8F;IAC9F,OAAO,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,IAAI,CA0BrF"}
@@ -0,0 +1,53 @@
1
+ import { isBlockedPrivateHost, STRICT_URL_SAFETY_POLICY, ValidationError, } from '@cat-factory/kernel';
2
+ /**
3
+ * Validate a URL before it is stored or fetched. The default policy requires `https` and rejects
4
+ * internal/private hosts (loopback, RFC1918, the link-local range including the 169.254.169.254
5
+ * cloud-metadata endpoint); a trusted operator-installed integration can pass a widened policy to
6
+ * permit specific schemes/hosts. Embedded credentials are forbidden regardless of policy.
7
+ *
8
+ * Parsed by hand (no `URL` global) so this stays in the platform-agnostic core and behaves
9
+ * identically on workerd and Node.
10
+ */
11
+ export function assertSafePublicUrl(url, options) {
12
+ const { subject, label = 'URL', policy = STRICT_URL_SAFETY_POLICY } = options;
13
+ const invalid = () => new ValidationError(`${subject} ${label} is not a valid URL: '${url}'`);
14
+ const match = url.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):\/\/([^/?#]*)/);
15
+ if (!match)
16
+ throw invalid();
17
+ if (!policy.schemes.includes(match[1].toLowerCase())) {
18
+ const allowed = policy.schemes.join('/') || '(none)';
19
+ throw new ValidationError(`${subject} ${label} must use ${allowed}`);
20
+ }
21
+ const authority = match[2];
22
+ if (authority.includes('@')) {
23
+ throw new ValidationError(`${subject} ${label} must not contain credentials`);
24
+ }
25
+ let host;
26
+ if (authority.startsWith('[')) {
27
+ const end = authority.indexOf(']');
28
+ if (end === -1)
29
+ throw invalid();
30
+ host = authority.slice(1, end);
31
+ }
32
+ else {
33
+ host = authority.split(':')[0];
34
+ }
35
+ if (host === '')
36
+ throw invalid();
37
+ if (!hostExempt(host, policy) && isBlockedPrivateHost(host)) {
38
+ throw new ValidationError(`${subject} ${label} must be a public host`);
39
+ }
40
+ }
41
+ /**
42
+ * Whether `host` is exempt from the private/internal-host block under `policy`.
43
+ * An allow-list entry matches the hostname case-insensitively, either exactly or as a
44
+ * dot suffix when it begins with `.` (`.internal` matches `a.b.internal`).
45
+ */
46
+ function hostExempt(host, policy) {
47
+ const h = host.toLowerCase().replace(/^\[|\]$/g, '');
48
+ return policy.allowHosts.some((entry) => {
49
+ const e = entry.toLowerCase();
50
+ return e.startsWith('.') ? h === e.slice(1) || h.endsWith(e) : h === e;
51
+ });
52
+ }
53
+ //# sourceMappingURL=url-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-guard.js","sourceRoot":"","sources":["../../../src/modules/shared/url-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,GAChB,MAAM,qBAAqB,CAAA;AA2B5B;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,OAA8B;IAC7E,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,GAAG,wBAAwB,EAAE,GAAG,OAAO,CAAA;IAC7E,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,GAAG,OAAO,IAAI,KAAK,yBAAyB,GAAG,GAAG,CAAC,CAAA;IAC7F,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;IACnE,IAAI,CAAC,KAAK;QAAE,MAAM,OAAO,EAAE,CAAA;IAE3B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAA;QACpD,MAAM,IAAI,eAAe,CAAC,GAAG,OAAO,IAAI,KAAK,aAAa,OAAO,EAAE,CAAC,CAAA;IACtE,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;IAC3B,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CAAC,GAAG,OAAO,IAAI,KAAK,+BAA+B,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,IAAY,CAAA;IAChB,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,MAAM,OAAO,EAAE,CAAA;QAC/B,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;IACjC,CAAC;IACD,IAAI,IAAI,KAAK,EAAE;QAAE,MAAM,OAAO,EAAE,CAAA;IAChC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,eAAe,CAAC,GAAG,OAAO,IAAI,KAAK,wBAAwB,CAAC,CAAA;IACxE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,MAAuB;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACpD,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAC7B,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { BlockRepository, Clock, ValidationConfigRepository } from '@cat-factory/kernel';
2
+ import type { ResolvedValidationChecks, ServiceValidationConfig, UpsertServiceValidationConfigInput } from '@cat-factory/contracts';
3
+ export interface ValidationConfigServiceDependencies {
4
+ validationConfigRepository: ValidationConfigRepository;
5
+ /** Reads the target block so a write can reject a non-frame (the checks are keyed by frame). */
6
+ blockRepository: BlockRepository;
7
+ clock: Clock;
8
+ }
9
+ /**
10
+ * Owns a service's PRE-PR VALIDATION CHECKS — the shell commands the executor-harness runs
11
+ * against the checkout after the coding agent settles and BEFORE the PR opens (see
12
+ * `docs/initiatives/pre-pr-validation.md`).
13
+ *
14
+ * The CRUD surface ({@link getView}/{@link set}/{@link deleteFor}) operates on the exact SERVICE
15
+ * FRAME block the inspector edits. The resolution surface ({@link resolveForFrame}) reads the
16
+ * checks for the frame a dispatch resolved, and is the SINGLE seam a dispatch resolves checks
17
+ * through — so adding a second source later (a checked-in repo manifest, see the tracker's D1) is
18
+ * a change inside that method plus a precedence rule, not a new path through the executor.
19
+ *
20
+ * Nothing here is a secret: the commands are operator-authored strings that run inside the run's
21
+ * own sandboxed container, the same trust boundary as the coding agent.
22
+ */
23
+ export declare class ValidationConfigService {
24
+ private readonly repo;
25
+ private readonly blocks;
26
+ private readonly clock;
27
+ constructor(deps: ValidationConfigServiceDependencies);
28
+ /** The checks configured for a service frame (empty when it has none). */
29
+ getView(workspaceId: string, blockId: string): Promise<ServiceValidationConfig>;
30
+ /** Every configured service's checks in the workspace (the inspector store's hydrate read). */
31
+ list(workspaceId: string): Promise<ServiceValidationConfig[]>;
32
+ /**
33
+ * Set/replace a service frame's validation checks. An empty list deletes the row (a service
34
+ * with no checks carries none), so a cleared inspector restores the exact pre-feature
35
+ * behaviour rather than leaving an empty config that still has to be resolved.
36
+ */
37
+ set(workspaceId: string, blockId: string, input: UpsertServiceValidationConfigInput): Promise<ServiceValidationConfig>;
38
+ /** Remove a service frame's validation checks. */
39
+ deleteFor(workspaceId: string, blockId: string): Promise<void>;
40
+ /**
41
+ * The checks that apply to a run dispatched against SERVICE FRAME `frameId`. This is what the
42
+ * engine folds onto the agent run context and the container executor forwards on the coding job
43
+ * body. `null` when the frame configured no checks, which is what keeps an unconfigured
44
+ * deployment byte-for-byte on the old code path.
45
+ *
46
+ * Takes the frame the CALLER already resolved rather than a run block, deliberately: the
47
+ * engine's `AgentContextBuilder` walks the frame→module→task ancestry exactly ONCE per dispatch
48
+ * and threads the result into every frame-scoped resolver (environment, service config,
49
+ * frontend, fragments). Re-deriving it here would put two extra block point-reads on every
50
+ * dispatch to reach a frame the caller is already holding.
51
+ */
52
+ resolveForFrame(workspaceId: string, frameId: string): Promise<ResolvedValidationChecks | null>;
53
+ }
54
+ //# sourceMappingURL=ValidationConfigService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationConfigService.d.ts","sourceRoot":"","sources":["../../../src/modules/validation/ValidationConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,KAAK,EAEL,0BAA0B,EAC3B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,kCAAkC,EACnC,MAAM,wBAAwB,CAAA;AAG/B,MAAM,WAAW,mCAAmC;IAClD,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,gGAAgG;IAChG,eAAe,EAAE,eAAe,CAAA;IAChC,KAAK,EAAE,KAAK,CAAA;CACb;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAE7B,YAAY,IAAI,EAAE,mCAAmC,EAIpD;IAED,0EAA0E;IACpE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAGpF;IAED,+FAA+F;IACzF,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAGlE;IAED;;;;OAIG;IACG,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAAC,uBAAuB,CAAC,CA0BlC;IAED,kDAAkD;IAC5C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;IAED;;;;;;;;;;;OAWG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAO1C;CACF"}