@cat-factory/contracts 0.197.0 → 0.198.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/events.d.ts +28 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/infra-setup.d.ts +65 -4
- package/dist/infra-setup.d.ts.map +1 -1
- package/dist/infra-setup.js +80 -1
- package/dist/infra-setup.js.map +1 -1
- package/dist/notification-webhooks.d.ts +8 -5
- package/dist/notification-webhooks.d.ts.map +1 -1
- package/dist/notification-webhooks.js +4 -2
- package/dist/notification-webhooks.js.map +1 -1
- package/dist/notifications.d.ts +30 -6
- package/dist/notifications.d.ts.map +1 -1
- package/dist/notifications.js +26 -4
- package/dist/notifications.js.map +1 -1
- package/dist/public-api.d.ts +2 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/routes/notification-webhooks.d.ts +3 -3
- package/dist/routes/notifications.d.ts +6 -3
- package/dist/routes/notifications.d.ts.map +1 -1
- package/dist/routes/public-api.d.ts +6 -3
- package/dist/routes/public-api.d.ts.map +1 -1
- package/dist/routes/slack.d.ts +3 -3
- package/dist/routes/workspaces.d.ts +10 -8
- package/dist/routes/workspaces.d.ts.map +1 -1
- package/dist/slack.d.ts +2 -2
- package/dist/snapshot.d.ts +5 -4
- package/dist/snapshot.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/events.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { ExecutionInstance } from './execution.js';
|
|
|
3
3
|
import type { BootstrapJob } from './bootstrap.js';
|
|
4
4
|
import type { EnvConfigRepairJob } from './env-config-repair.js';
|
|
5
5
|
import type { EnvironmentTestRun } from './environment-test.js';
|
|
6
|
+
import type { InfraSetupArea, InfraSetupStatus } from './infra-setup.js';
|
|
6
7
|
import type { Notification } from './notifications.js';
|
|
7
8
|
import type { LlmCallActivity } from './observability.js';
|
|
8
9
|
import type { RequirementReview } from './requirements.js';
|
|
@@ -68,6 +69,33 @@ export type WorkspaceEvent =
|
|
|
68
69
|
run: EnvironmentTestRun;
|
|
69
70
|
at: number;
|
|
70
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* One infrastructure area's reachability changed, so the client patches its `infraSetup`
|
|
74
|
+
* projection in place and the setup banner appears or clears IMMEDIATELY.
|
|
75
|
+
*
|
|
76
|
+
* Without this the projection is only recomputed when a workspace snapshot (re)loads, which is
|
|
77
|
+
* fine for the operator-decision states — nobody un-configures a runner pool behind your back —
|
|
78
|
+
* but useless for `unreachable`: a cluster that dies mid-session would stay invisible until
|
|
79
|
+
* somebody happened to reload the app, which in practice means the next day. A dead environment
|
|
80
|
+
* provider silently fails every testing agent in the meantime, so it has to push.
|
|
81
|
+
*
|
|
82
|
+
* Published on TRANSITION only, never per probe: the watcher polls on a sweep cadence, so
|
|
83
|
+
* re-announcing an ongoing outage every pass would turn this into a standing event storm on the
|
|
84
|
+
* workspace bus.
|
|
85
|
+
*
|
|
86
|
+
* `detail` is the probe's own operator-facing reason (a refused connection reads very
|
|
87
|
+
* differently from a rejected token) and is deliberately NOT persisted on the notification the
|
|
88
|
+
* watcher raises: it varies between passes, and the card re-delivers whenever its content
|
|
89
|
+
* changes, so carrying it there would re-toast the inbox for the whole outage. It therefore
|
|
90
|
+
* rides the live transition only — which is exactly when someone is looking.
|
|
91
|
+
*/
|
|
92
|
+
| {
|
|
93
|
+
type: 'infraSetup';
|
|
94
|
+
area: InfraSetupArea;
|
|
95
|
+
status: InfraSetupStatus;
|
|
96
|
+
detail?: string;
|
|
97
|
+
at: number;
|
|
98
|
+
}
|
|
71
99
|
/**
|
|
72
100
|
* A human-actionable notification was raised or resolved (a PR needs review, a
|
|
73
101
|
* pipeline finished and wants confirmation, CI fixing gave up). The client
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/infra-setup.d.ts
CHANGED
|
@@ -6,22 +6,44 @@ import * as v from 'valibot';
|
|
|
6
6
|
* - `configured` — a connection / backend is defined.
|
|
7
7
|
* - `not_applicable` — this runtime doesn't need it (the integration isn't wired),
|
|
8
8
|
* so there is nothing to nag about.
|
|
9
|
+
* - `unreachable` — it IS configured, but a live probe could not reach it.
|
|
10
|
+
*
|
|
11
|
+
* `unreachable` is deliberately carried by this SETUP projection even though it reports runtime
|
|
12
|
+
* health, because the consequence is identical to `not_defined` — a whole class of agents cannot
|
|
13
|
+
* run — and the operator surface that fixes it is the same one. Sharing the projection means
|
|
14
|
+
* sharing the banner, its deep-link and its i18n instead of growing a second "your infra is
|
|
15
|
+
* broken" surface.
|
|
16
|
+
*
|
|
17
|
+
* It is NOT interchangeable with the other three in one respect, and consumers MUST honour the
|
|
18
|
+
* difference: those are stable operator decisions, so the banner offers a PERMANENT per-user
|
|
19
|
+
* "don't notify me again" dismissal. Applying that to `unreachable` would let one click
|
|
20
|
+
* permanently silence every future outage, so a health state is dismissible for the SESSION
|
|
21
|
+
* only and must re-nag when it recurs. See {@link isInfraSetupHealthStatus} and
|
|
22
|
+
* `InfraSetupBanner.vue`.
|
|
9
23
|
*/
|
|
10
|
-
export declare const infraSetupStatusSchema: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
24
|
+
export declare const infraSetupStatusSchema: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
11
25
|
export type InfraSetupStatus = v.InferOutput<typeof infraSetupStatusSchema>;
|
|
26
|
+
/**
|
|
27
|
+
* The {@link InfraSetupStatus} values describing a live-HEALTH problem rather than an operator
|
|
28
|
+
* decision. Exported so the SPA's dismissal fork keys off ONE definition instead of re-listing
|
|
29
|
+
* the literal at each site.
|
|
30
|
+
*/
|
|
31
|
+
export declare const INFRA_SETUP_HEALTH_STATUSES: readonly ['unreachable'];
|
|
32
|
+
/** Whether a status is a transient health failure (session-only dismissal, re-nag on recurrence). */
|
|
33
|
+
export declare function isInfraSetupHealthStatus(status: InfraSetupStatus): boolean;
|
|
12
34
|
/** The per-area infrastructure-setup status projection carried on the snapshot. */
|
|
13
35
|
export declare const infraSetupSchema: v.ObjectSchema<{
|
|
14
36
|
/** Ephemeral test environments (deployer / provisioning). Relevant on every runtime. */
|
|
15
|
-
readonly ephemeralEnvironments: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
37
|
+
readonly ephemeralEnvironments: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
16
38
|
/** The container agent executor (self-hosted runner pool). Relevant only on remote Node. */
|
|
17
|
-
readonly agentExecutor: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
39
|
+
readonly agentExecutor: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
18
40
|
/**
|
|
19
41
|
* Binary/object storage for UI screenshots + reference images. Every facade wires an
|
|
20
42
|
* artifact-store resolver, so this is `configured`/`not_defined` on every runtime — not just
|
|
21
43
|
* remote Node: a Cloudflare deployment WITHOUT an `ARTIFACT_BUCKET` binding (or any account
|
|
22
44
|
* that selected no backend) reads `not_defined` too.
|
|
23
45
|
*/
|
|
24
|
-
readonly binaryStorage: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
46
|
+
readonly binaryStorage: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
25
47
|
}, undefined>;
|
|
26
48
|
export type InfraSetup = v.InferOutput<typeof infraSetupSchema>;
|
|
27
49
|
/** The infrastructure areas the setup banner surfaces (leaf names mirror {@link infraSetupSchema}). */
|
|
@@ -29,6 +51,45 @@ export declare const infraSetupAreaSchema: v.PicklistSchema<["ephemeralEnvironme
|
|
|
29
51
|
export type InfraSetupArea = v.InferOutput<typeof infraSetupAreaSchema>;
|
|
30
52
|
/** Every infra-setup area, as a plain readonly tuple (the source of truth for iteration). */
|
|
31
53
|
export declare const INFRA_SETUP_AREAS: ["ephemeralEnvironments", "agentExecutor", "binaryStorage"];
|
|
54
|
+
/**
|
|
55
|
+
* The areas the reachability watcher can report `unreachable` for — those backed by a connection
|
|
56
|
+
* whose provider exposes a live connection probe. `binaryStorage` is deliberately ABSENT: it
|
|
57
|
+
* resolves an artifact store from account settings and has no cheap reachability probe, so it
|
|
58
|
+
* stays a pure operator-decision area and a dead bucket surfaces where it always did (on the
|
|
59
|
+
* write that needs it). Shared so the watcher, the projection fold and the tests agree on ONE
|
|
60
|
+
* list rather than each re-deriving "which areas can be unreachable".
|
|
61
|
+
*/
|
|
62
|
+
export declare const INFRA_SETUP_PROBED_AREAS: readonly ["ephemeralEnvironments", "agentExecutor"];
|
|
63
|
+
/** An area the reachability watcher can report on (a member of {@link INFRA_SETUP_PROBED_AREAS}). */
|
|
64
|
+
export type InfraSetupProbedArea = (typeof INFRA_SETUP_PROBED_AREAS)[number];
|
|
65
|
+
/**
|
|
66
|
+
* Whether an area is one the watcher probes — a TYPE GUARD, so a consumer keyed on the probed
|
|
67
|
+
* subset (the outage copy has a per-area title; `binaryStorage` has none because it can never be
|
|
68
|
+
* unreachable) narrows instead of carrying a dead entry for an area that cannot reach it.
|
|
69
|
+
*/
|
|
70
|
+
export declare function isInfraSetupProbedArea(area: InfraSetupArea): area is InfraSetupProbedArea;
|
|
71
|
+
/**
|
|
72
|
+
* Apply ONE observed reachability status to an area of a setup projection.
|
|
73
|
+
*
|
|
74
|
+
* This is the single definition of which prior state a probe verdict may overwrite, and BOTH
|
|
75
|
+
* delivery paths fold through it: the backend's snapshot projection (kernel's
|
|
76
|
+
* `applyInfraReachability`, folding the areas recorded on the open card) and the SPA store's
|
|
77
|
+
* live `infraSetup` event patch. They diverged once — the snapshot guarded the write and the live
|
|
78
|
+
* patch assigned unconditionally — so a pushed `unreachable` rendered a red "check that the
|
|
79
|
+
* service is running" banner for an area the projection called `not_applicable`, which then
|
|
80
|
+
* vanished on the next reload. Live and reloaded state must agree, so the rule lives here.
|
|
81
|
+
*
|
|
82
|
+
* Only a `configured` area may become `unreachable`: the other states OUT-RANK a probe verdict.
|
|
83
|
+
* `not_defined` means the connection is gone (the actionable nag is "set it up", and a lingering
|
|
84
|
+
* outage would report on something that no longer exists) and `not_applicable` means this
|
|
85
|
+
* deployment does not use the area at all. Symmetrically, a recovery only clears an area this
|
|
86
|
+
* projection currently calls `unreachable`, so a stale in-flight push cannot overwrite a
|
|
87
|
+
* freshly-read `not_defined` with `configured`.
|
|
88
|
+
*
|
|
89
|
+
* Returns the projection UNCHANGED (by identity) when the status may not be applied, so a caller
|
|
90
|
+
* can cheaply tell "nothing moved" from a real transition.
|
|
91
|
+
*/
|
|
92
|
+
export declare function applyInfraSetupTransition(projection: InfraSetup, area: InfraSetupArea, status: InfraSetupStatus): InfraSetup;
|
|
32
93
|
/**
|
|
33
94
|
* The `localStorage` key under which the SPA's `InfraSetupBanner` persists its PERMANENT,
|
|
34
95
|
* per-user "don't notify me again" dismissals ({@link InfraSetupArea}[] keyed by user id).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infra-setup.d.ts","sourceRoot":"","sources":["../src/infra-setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AA4B5B
|
|
1
|
+
{"version":3,"file":"infra-setup.d.ts","sourceRoot":"","sources":["../src/infra-setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AA4B5B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,sBAAsB,6FAKjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,YAAI,aAAa,CAAU,CAAA;AAEnE,qGAAqG;AACrG,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE1E;AAED,mFAAmF;AACnF,eAAO,MAAM,gBAAgB;IAC3B,wFAAwF;;IAExF,4FAA4F;;IAE5F;;;;;OAKG;;aAEH,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D,uGAAuG;AACvG,eAAO,MAAM,oBAAoB,0FAI/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,6DAA+B,CAAA;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,qDAGS,CAAA;AAE9C,qGAAqG;AACrG,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5E;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,IAAI,oBAAoB,CAEzF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,gBAAgB,GACvB,UAAU,CAOZ;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,sCAAsC,CAAA"}
|
package/dist/infra-setup.js
CHANGED
|
@@ -31,8 +31,37 @@ import * as v from 'valibot';
|
|
|
31
31
|
* - `configured` — a connection / backend is defined.
|
|
32
32
|
* - `not_applicable` — this runtime doesn't need it (the integration isn't wired),
|
|
33
33
|
* so there is nothing to nag about.
|
|
34
|
+
* - `unreachable` — it IS configured, but a live probe could not reach it.
|
|
35
|
+
*
|
|
36
|
+
* `unreachable` is deliberately carried by this SETUP projection even though it reports runtime
|
|
37
|
+
* health, because the consequence is identical to `not_defined` — a whole class of agents cannot
|
|
38
|
+
* run — and the operator surface that fixes it is the same one. Sharing the projection means
|
|
39
|
+
* sharing the banner, its deep-link and its i18n instead of growing a second "your infra is
|
|
40
|
+
* broken" surface.
|
|
41
|
+
*
|
|
42
|
+
* It is NOT interchangeable with the other three in one respect, and consumers MUST honour the
|
|
43
|
+
* difference: those are stable operator decisions, so the banner offers a PERMANENT per-user
|
|
44
|
+
* "don't notify me again" dismissal. Applying that to `unreachable` would let one click
|
|
45
|
+
* permanently silence every future outage, so a health state is dismissible for the SESSION
|
|
46
|
+
* only and must re-nag when it recurs. See {@link isInfraSetupHealthStatus} and
|
|
47
|
+
* `InfraSetupBanner.vue`.
|
|
34
48
|
*/
|
|
35
|
-
export const infraSetupStatusSchema = v.picklist([
|
|
49
|
+
export const infraSetupStatusSchema = v.picklist([
|
|
50
|
+
'not_defined',
|
|
51
|
+
'configured',
|
|
52
|
+
'not_applicable',
|
|
53
|
+
'unreachable',
|
|
54
|
+
]);
|
|
55
|
+
/**
|
|
56
|
+
* The {@link InfraSetupStatus} values describing a live-HEALTH problem rather than an operator
|
|
57
|
+
* decision. Exported so the SPA's dismissal fork keys off ONE definition instead of re-listing
|
|
58
|
+
* the literal at each site.
|
|
59
|
+
*/
|
|
60
|
+
export const INFRA_SETUP_HEALTH_STATUSES = ['unreachable'];
|
|
61
|
+
/** Whether a status is a transient health failure (session-only dismissal, re-nag on recurrence). */
|
|
62
|
+
export function isInfraSetupHealthStatus(status) {
|
|
63
|
+
return INFRA_SETUP_HEALTH_STATUSES.includes(status);
|
|
64
|
+
}
|
|
36
65
|
/** The per-area infrastructure-setup status projection carried on the snapshot. */
|
|
37
66
|
export const infraSetupSchema = v.object({
|
|
38
67
|
/** Ephemeral test environments (deployer / provisioning). Relevant on every runtime. */
|
|
@@ -55,6 +84,56 @@ export const infraSetupAreaSchema = v.picklist([
|
|
|
55
84
|
]);
|
|
56
85
|
/** Every infra-setup area, as a plain readonly tuple (the source of truth for iteration). */
|
|
57
86
|
export const INFRA_SETUP_AREAS = infraSetupAreaSchema.options;
|
|
87
|
+
/**
|
|
88
|
+
* The areas the reachability watcher can report `unreachable` for — those backed by a connection
|
|
89
|
+
* whose provider exposes a live connection probe. `binaryStorage` is deliberately ABSENT: it
|
|
90
|
+
* resolves an artifact store from account settings and has no cheap reachability probe, so it
|
|
91
|
+
* stays a pure operator-decision area and a dead bucket surfaces where it always did (on the
|
|
92
|
+
* write that needs it). Shared so the watcher, the projection fold and the tests agree on ONE
|
|
93
|
+
* list rather than each re-deriving "which areas can be unreachable".
|
|
94
|
+
*/
|
|
95
|
+
export const INFRA_SETUP_PROBED_AREAS = [
|
|
96
|
+
'ephemeralEnvironments',
|
|
97
|
+
'agentExecutor',
|
|
98
|
+
];
|
|
99
|
+
/**
|
|
100
|
+
* Whether an area is one the watcher probes — a TYPE GUARD, so a consumer keyed on the probed
|
|
101
|
+
* subset (the outage copy has a per-area title; `binaryStorage` has none because it can never be
|
|
102
|
+
* unreachable) narrows instead of carrying a dead entry for an area that cannot reach it.
|
|
103
|
+
*/
|
|
104
|
+
export function isInfraSetupProbedArea(area) {
|
|
105
|
+
return INFRA_SETUP_PROBED_AREAS.includes(area);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Apply ONE observed reachability status to an area of a setup projection.
|
|
109
|
+
*
|
|
110
|
+
* This is the single definition of which prior state a probe verdict may overwrite, and BOTH
|
|
111
|
+
* delivery paths fold through it: the backend's snapshot projection (kernel's
|
|
112
|
+
* `applyInfraReachability`, folding the areas recorded on the open card) and the SPA store's
|
|
113
|
+
* live `infraSetup` event patch. They diverged once — the snapshot guarded the write and the live
|
|
114
|
+
* patch assigned unconditionally — so a pushed `unreachable` rendered a red "check that the
|
|
115
|
+
* service is running" banner for an area the projection called `not_applicable`, which then
|
|
116
|
+
* vanished on the next reload. Live and reloaded state must agree, so the rule lives here.
|
|
117
|
+
*
|
|
118
|
+
* Only a `configured` area may become `unreachable`: the other states OUT-RANK a probe verdict.
|
|
119
|
+
* `not_defined` means the connection is gone (the actionable nag is "set it up", and a lingering
|
|
120
|
+
* outage would report on something that no longer exists) and `not_applicable` means this
|
|
121
|
+
* deployment does not use the area at all. Symmetrically, a recovery only clears an area this
|
|
122
|
+
* projection currently calls `unreachable`, so a stale in-flight push cannot overwrite a
|
|
123
|
+
* freshly-read `not_defined` with `configured`.
|
|
124
|
+
*
|
|
125
|
+
* Returns the projection UNCHANGED (by identity) when the status may not be applied, so a caller
|
|
126
|
+
* can cheaply tell "nothing moved" from a real transition.
|
|
127
|
+
*/
|
|
128
|
+
export function applyInfraSetupTransition(projection, area, status) {
|
|
129
|
+
const current = projection[area];
|
|
130
|
+
const allowed = isInfraSetupHealthStatus(status)
|
|
131
|
+
? current === 'configured'
|
|
132
|
+
: current === 'unreachable';
|
|
133
|
+
if (!allowed || current === status)
|
|
134
|
+
return projection;
|
|
135
|
+
return { ...projection, [area]: status };
|
|
136
|
+
}
|
|
58
137
|
/**
|
|
59
138
|
* The `localStorage` key under which the SPA's `InfraSetupBanner` persists its PERMANENT,
|
|
60
139
|
* per-user "don't notify me again" dismissals ({@link InfraSetupArea}[] keyed by user id).
|
package/dist/infra-setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infra-setup.js","sourceRoot":"","sources":["../src/infra-setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,iFAAiF;AACjF,gFAAgF;AAChF,gFAAgF;AAChF,iFAAiF;AACjF,+EAA+E;AAC/E,kFAAkF;AAClF,2DAA2D;AAC3D,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,iFAAiF;AACjF,iFAAiF;AACjF,+EAA+E;AAC/E,gFAAgF;AAChF,oFAAoF;AACpF,oFAAoF;AACpF,sFAAsF;AACtF,sFAAsF;AACtF,oFAAoF;AACpF,qFAAqF;AACrF,qFAAqF;AACrF,oFAAoF;AACpF,iEAAiE;AACjE,8EAA8E;AAE9E
|
|
1
|
+
{"version":3,"file":"infra-setup.js","sourceRoot":"","sources":["../src/infra-setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,iFAAiF;AACjF,gFAAgF;AAChF,gFAAgF;AAChF,iFAAiF;AACjF,+EAA+E;AAC/E,kFAAkF;AAClF,2DAA2D;AAC3D,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,iFAAiF;AACjF,iFAAiF;AACjF,+EAA+E;AAC/E,gFAAgF;AAChF,oFAAoF;AACpF,oFAAoF;AACpF,sFAAsF;AACtF,sFAAsF;AACtF,oFAAoF;AACpF,qFAAqF;AACrF,qFAAqF;AACrF,oFAAoF;AACpF,iEAAiE;AACjE,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC/C,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,aAAa;CACd,CAAC,CAAA;AAGF;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,aAAa,CAAU,CAAA;AAEnE,qGAAqG;AACrG,MAAM,UAAU,wBAAwB,CAAC,MAAwB;IAC/D,OAAQ,2BAAiD,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC5E,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,wFAAwF;IACxF,qBAAqB,EAAE,sBAAsB;IAC7C,4FAA4F;IAC5F,aAAa,EAAE,sBAAsB;IACrC;;;;;OAKG;IACH,aAAa,EAAE,sBAAsB;CACtC,CAAC,CAAA;AAGF,uGAAuG;AACvG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC7C,uBAAuB;IACvB,eAAe;IACf,eAAe;CAChB,CAAC,CAAA;AAGF,6FAA6F;AAC7F,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAA;AAE7D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,uBAAuB;IACvB,eAAe;CAC6B,CAAA;AAK9C;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAoB;IACzD,OAAQ,wBAAsD,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC/E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAsB,EACtB,IAAoB,EACpB,MAAwB;IAExB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC;QAC9C,CAAC,CAAC,OAAO,KAAK,YAAY;QAC1B,CAAC,CAAC,OAAO,KAAK,aAAa,CAAA;IAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,UAAU,CAAA;IACrD,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,mCAAmC,CAAA"}
|
|
@@ -8,7 +8,7 @@ export declare const notificationWebhookSchema: v.ObjectSchema<{
|
|
|
8
8
|
* headless overseer cares about — rather than "everything", so registering an endpoint can't
|
|
9
9
|
* accidentally fire-hose every card at an integration that only wanted to hear about parks.
|
|
10
10
|
*/
|
|
11
|
-
readonly types: v.ArraySchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>, undefined>;
|
|
11
|
+
readonly types: v.ArraySchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>, undefined>;
|
|
12
12
|
/** Whether deliveries are currently attempted. Registering an endpoint enables it. */
|
|
13
13
|
readonly enabled: v.BooleanSchema<undefined>;
|
|
14
14
|
/** Whether a signing secret is set (the secret itself is never returned). */
|
|
@@ -24,7 +24,7 @@ export type NotificationWebhook = v.InferOutput<typeof notificationWebhookSchema
|
|
|
24
24
|
export declare const putNotificationWebhookSchema: v.ObjectSchema<{
|
|
25
25
|
readonly url: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.UrlAction<string, undefined>, v.StartsWithAction<string, "https://", "The webhook endpoint must be an https:// URL">, v.MaxLengthAction<string, 2000, undefined>]>;
|
|
26
26
|
/** Omit ⇒ deliver the default parking types. */
|
|
27
|
-
readonly types: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>, undefined>, undefined>;
|
|
27
|
+
readonly types: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>, undefined>, undefined>;
|
|
28
28
|
readonly enabled: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
29
29
|
/** New signing secret; omit to keep the current one. */
|
|
30
30
|
readonly secret: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 16, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
@@ -52,7 +52,7 @@ export declare const notificationWebhookDeliverySchema: v.ObjectSchema<{
|
|
|
52
52
|
readonly taskId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
53
53
|
readonly notification: v.ObjectSchema<{
|
|
54
54
|
readonly id: v.StringSchema<undefined>;
|
|
55
|
-
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
55
|
+
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
56
56
|
readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
57
57
|
readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
|
|
58
58
|
readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -91,6 +91,7 @@ export declare const notificationWebhookDeliverySchema: v.ObjectSchema<{
|
|
|
91
91
|
readonly unmergedRepos: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
92
92
|
readonly platformWindow: v.OptionalSchema<v.PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
|
|
93
93
|
readonly platformAlerts: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
94
|
+
readonly unreachableAreas: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
94
95
|
readonly driftAffected: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
95
96
|
readonly source: v.StringSchema<undefined>;
|
|
96
97
|
readonly id: v.StringSchema<undefined>;
|
|
@@ -110,8 +111,10 @@ export type NotificationWebhookDelivery = v.InferOutput<typeof notificationWebho
|
|
|
110
111
|
* The notification types delivered when a webhook declares no explicit `types` filter: the
|
|
111
112
|
* human-parking cards a headless overseer must react to, plus the failure tails it can act on
|
|
112
113
|
* through the public notification surface. Deliberately NOT every type — the block-less/system
|
|
113
|
-
* cards (`platform_health`, `budget_paused`, `key_drift`, `initiative`) are
|
|
114
|
-
* no external action, and shipping them by default turns the endpoint into a
|
|
114
|
+
* cards (`platform_health`, `infra_unreachable`, `budget_paused`, `key_drift`, `initiative`) are
|
|
115
|
+
* operator concerns with no external action, and shipping them by default turns the endpoint into a
|
|
116
|
+
* firehose. A deployment that DOES want an infrastructure outage on its webhook can name it in the
|
|
117
|
+
* per-webhook `types` filter, which is exactly what that filter is for.
|
|
115
118
|
*/
|
|
116
119
|
export declare const DEFAULT_NOTIFICATION_WEBHOOK_TYPES: readonly ["requirement_review", "clarity_review", "decision_required", "fork_decision_pending", "merge_review", "pipeline_complete", "ci_failed", "test_failed"];
|
|
117
120
|
//# sourceMappingURL=notification-webhooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-webhooks.d.ts","sourceRoot":"","sources":["../src/notification-webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAmB5B,+FAA+F;AAC/F,eAAO,MAAM,yBAAyB;IACpC,mDAAmD;;IAEnD;;;;OAIG;;IAEH,sFAAsF;;IAEtF,6EAA6E;;;aAG7E,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;IAQvC,gDAAgD;;;IAGhD,wDAAwD;;aAExD,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAE5F;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iCAAiC;;IAE5C,kGAAkG;;;IAGlG,4DAA4D;;IAE5D,mEAAmE
|
|
1
|
+
{"version":3,"file":"notification-webhooks.d.ts","sourceRoot":"","sources":["../src/notification-webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAmB5B,+FAA+F;AAC/F,eAAO,MAAM,yBAAyB;IACpC,mDAAmD;;IAEnD;;;;OAIG;;IAEH,sFAAsF;;IAEtF,6EAA6E;;;aAG7E,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;IAQvC,gDAAgD;;;IAGhD,wDAAwD;;aAExD,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAE5F;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iCAAiC;;IAE5C,kGAAkG;;;IAGlG,4DAA4D;;IAE5D,mEAAmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAGnE,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAEjG;;;;;;;;GAQG;AACH,eAAO,MAAM,kCAAkC,kKAS6B,CAAA"}
|
|
@@ -70,8 +70,10 @@ export const notificationWebhookDeliverySchema = v.object({
|
|
|
70
70
|
* The notification types delivered when a webhook declares no explicit `types` filter: the
|
|
71
71
|
* human-parking cards a headless overseer must react to, plus the failure tails it can act on
|
|
72
72
|
* through the public notification surface. Deliberately NOT every type — the block-less/system
|
|
73
|
-
* cards (`platform_health`, `budget_paused`, `key_drift`, `initiative`) are
|
|
74
|
-
* no external action, and shipping them by default turns the endpoint into a
|
|
73
|
+
* cards (`platform_health`, `infra_unreachable`, `budget_paused`, `key_drift`, `initiative`) are
|
|
74
|
+
* operator concerns with no external action, and shipping them by default turns the endpoint into a
|
|
75
|
+
* firehose. A deployment that DOES want an infrastructure outage on its webhook can name it in the
|
|
76
|
+
* per-webhook `types` filter, which is exactly what that filter is for.
|
|
75
77
|
*/
|
|
76
78
|
export const DEFAULT_NOTIFICATION_WEBHOOK_TYPES = [
|
|
77
79
|
'requirement_review',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-webhooks.js","sourceRoot":"","sources":["../src/notification-webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAE/E,8EAA8E;AAC9E,iGAAiG;AACjG,8FAA8F;AAC9F,wFAAwF;AACxF,EAAE;AACF,6FAA6F;AAC7F,6FAA6F;AAC7F,6FAA6F;AAC7F,qEAAqE;AACrE,0DAA0D;AAC1D,EAAE;AACF,iGAAiG;AACjG,+FAA+F;AAC/F,uDAAuD;AACvD,8EAA8E;AAE9E,+FAA+F;AAC/F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,mDAAmD;IACnD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf;;;;OAIG;IACH,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;IACtC,sFAAsF;IACtF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,6EAA6E;IAC7E,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAA;AAGF;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,GAAG,EAAE,CAAC,CAAC,IAAI,CACT,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,IAAI,EAAE,EACR,CAAC,CAAC,GAAG,EAAE,EACP,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,8CAA8C,CAAC,EACxE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAClB;IACD,gDAAgD;IAChD,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAChC,wDAAwD;IACxD,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;CACpF,CAAC,CAAA;AAGF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,kGAAkG;IAClG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,4DAA4D;IAC5D,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,mEAAmE;IACnE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,YAAY,EAAE,kBAAkB;CACjC,CAAC,CAAA;AAGF
|
|
1
|
+
{"version":3,"file":"notification-webhooks.js","sourceRoot":"","sources":["../src/notification-webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAE/E,8EAA8E;AAC9E,iGAAiG;AACjG,8FAA8F;AAC9F,wFAAwF;AACxF,EAAE;AACF,6FAA6F;AAC7F,6FAA6F;AAC7F,6FAA6F;AAC7F,qEAAqE;AACrE,0DAA0D;AAC1D,EAAE;AACF,iGAAiG;AACjG,+FAA+F;AAC/F,uDAAuD;AACvD,8EAA8E;AAE9E,+FAA+F;AAC/F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,mDAAmD;IACnD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf;;;;OAIG;IACH,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;IACtC,sFAAsF;IACtF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,6EAA6E;IAC7E,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAA;AAGF;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,GAAG,EAAE,CAAC,CAAC,IAAI,CACT,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,IAAI,EAAE,EACR,CAAC,CAAC,GAAG,EAAE,EACP,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,8CAA8C,CAAC,EACxE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAClB;IACD,gDAAgD;IAChD,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAChC,wDAAwD;IACxD,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;CACpF,CAAC,CAAA;AAGF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,kGAAkG;IAClG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,4DAA4D;IAC5D,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,mEAAmE;IACnE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,YAAY,EAAE,kBAAkB;CACjC,CAAC,CAAA;AAGF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,oBAAoB;IACpB,gBAAgB;IAChB,mBAAmB;IACnB,uBAAuB;IACvB,cAAc;IACd,mBAAmB;IACnB,WAAW;IACX,aAAa;CAC6D,CAAA"}
|
package/dist/notifications.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as v from 'valibot';
|
|
|
4
4
|
* the frontend can switch on it to render the right action; extending it is a
|
|
5
5
|
* one-line change here plus a handler in the worker's `act` route.
|
|
6
6
|
*/
|
|
7
|
-
export declare const notificationTypeSchema: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
7
|
+
export declare const notificationTypeSchema: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
8
8
|
export type NotificationType = v.InferOutput<typeof notificationTypeSchema>;
|
|
9
9
|
/**
|
|
10
10
|
* The closed set of notification types that count as "a task is waiting on a human review"
|
|
@@ -17,10 +17,10 @@ export type NotificationType = v.InferOutput<typeof notificationTypeSchema>;
|
|
|
17
17
|
*
|
|
18
18
|
* Deliberately EXCLUDED: failure-remediation cards (`ci_failed`, `test_failed`,
|
|
19
19
|
* `release_regression`) — "the machine needs help", not "a human owes a review" — and
|
|
20
|
-
* block-less/system cards (`platform_health`, `budget_paused`, `key_drift`,
|
|
21
|
-
* aren't tied to a reviewable task. `merge_tag_request` is excluded too: the PR
|
|
22
|
-
* ALREADY merged, so it is a post-hoc nudge for one tap — counting it as review
|
|
23
|
-
* friction task authoring over work that is finished.
|
|
20
|
+
* block-less/system cards (`platform_health`, `infra_unreachable`, `budget_paused`, `key_drift`,
|
|
21
|
+
* `initiative`) that aren't tied to a reviewable task. `merge_tag_request` is excluded too: the PR
|
|
22
|
+
* it concerns has ALREADY merged, so it is a post-hoc nudge for one tap — counting it as review
|
|
23
|
+
* debt would friction task authoring over work that is finished.
|
|
24
24
|
*/
|
|
25
25
|
export declare const REVIEW_WAIT_NOTIFICATION_TYPES: readonly ["merge_review", "pipeline_complete", "requirement_review", "clarity_review", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready"];
|
|
26
26
|
export type ReviewWaitNotificationType = (typeof REVIEW_WAIT_NOTIFICATION_TYPES)[number];
|
|
@@ -134,6 +134,18 @@ export declare const notificationPayloadSchema: v.ObjectSchema<{
|
|
|
134
134
|
* card links to); the reason set + window are enough to convey "what's wrong, go look".
|
|
135
135
|
*/
|
|
136
136
|
readonly platformAlerts: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
137
|
+
/**
|
|
138
|
+
* On an `infra_unreachable` notification: the configured infrastructure areas whose live probe
|
|
139
|
+
* is currently failing, sorted. Like {@link platformAlerts} this is the card's dedup identity —
|
|
140
|
+
* the watcher re-raises the SAME card every pass and the service only re-delivers when the set
|
|
141
|
+
* changes — AND the record the snapshot projection folds back into `infraSetup`, so a reload
|
|
142
|
+
* mid-outage still renders the banner without re-probing on the board-load path.
|
|
143
|
+
*
|
|
144
|
+
* The per-area probe REASON is deliberately not carried: it varies between passes (a refused
|
|
145
|
+
* connection, then a timeout), and any content change re-delivers the card, so persisting it
|
|
146
|
+
* would re-toast the inbox for the whole outage. It rides the live `infraSetup` event instead.
|
|
147
|
+
*/
|
|
148
|
+
readonly unreachableAreas: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
137
149
|
/**
|
|
138
150
|
* On a `key_drift` notification: the stored credentials the drift sweep could not decrypt
|
|
139
151
|
* (never their values). This is the card's dedup identity — the sweep re-raises the SAME card
|
|
@@ -173,7 +185,7 @@ export type NotificationPayload = v.InferOutput<typeof notificationPayloadSchema
|
|
|
173
185
|
/** A human-actionable item surfaced on the board. */
|
|
174
186
|
export declare const notificationSchema: v.ObjectSchema<{
|
|
175
187
|
readonly id: v.StringSchema<undefined>;
|
|
176
|
-
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
188
|
+
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
177
189
|
readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
178
190
|
/**
|
|
179
191
|
* Render urgency (see {@link notificationSeveritySchema}). Absent ⇒ `normal`. Flipped
|
|
@@ -251,6 +263,18 @@ export declare const notificationSchema: v.ObjectSchema<{
|
|
|
251
263
|
* card links to); the reason set + window are enough to convey "what's wrong, go look".
|
|
252
264
|
*/
|
|
253
265
|
readonly platformAlerts: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
266
|
+
/**
|
|
267
|
+
* On an `infra_unreachable` notification: the configured infrastructure areas whose live probe
|
|
268
|
+
* is currently failing, sorted. Like {@link platformAlerts} this is the card's dedup identity —
|
|
269
|
+
* the watcher re-raises the SAME card every pass and the service only re-delivers when the set
|
|
270
|
+
* changes — AND the record the snapshot projection folds back into `infraSetup`, so a reload
|
|
271
|
+
* mid-outage still renders the banner without re-probing on the board-load path.
|
|
272
|
+
*
|
|
273
|
+
* The per-area probe REASON is deliberately not carried: it varies between passes (a refused
|
|
274
|
+
* connection, then a timeout), and any content change re-delivers the card, so persisting it
|
|
275
|
+
* would re-toast the inbox for the whole outage. It rides the live `infraSetup` event instead.
|
|
276
|
+
*/
|
|
277
|
+
readonly unreachableAreas: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
254
278
|
/**
|
|
255
279
|
* On a `key_drift` notification: the stored credentials the drift sweep could not decrypt
|
|
256
280
|
* (never their values). This is the card's dedup identity — the sweep re-raises the SAME card
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"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"}
|
package/dist/notifications.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
2
|
import { mergeAssessmentSchema } from './merge.js';
|
|
3
|
+
import { infraSetupAreaSchema } from './infra-setup.js';
|
|
3
4
|
import { platformAlertReasonSchema, platformObservabilityWindowSchema } from './observability.js';
|
|
4
5
|
import { changeClassSchema, reviewEffortSchema } from './mergeTrackRecord.js';
|
|
5
6
|
import { onCallAssessmentSchema, releaseSignalSchema } from './release.js';
|
|
@@ -63,6 +64,14 @@ import { onCallAssessmentSchema, releaseSignalSchema } from './release.js';
|
|
|
63
64
|
// provider (bypassing the merge card), so the merge track record has
|
|
64
65
|
// no reviewer-effort tag. A lightweight, dismissible nudge asking for
|
|
65
66
|
// one tap; it gates nothing and the record stays valid untagged.
|
|
67
|
+
// - `infra_unreachable`— the reachability watcher found a CONFIGURED infrastructure area (the
|
|
68
|
+
// ephemeral-environment provider, the self-hosted runner pool) that no
|
|
69
|
+
// longer answers its connection probe, so a class of agents cannot run.
|
|
70
|
+
// NOT block-scoped: it concerns the whole workspace. It auto-clears when
|
|
71
|
+
// every area answers again, and re-notifies only when the set of
|
|
72
|
+
// unreachable areas changes (not every sweep). The card doubles as the
|
|
73
|
+
// watcher's durable record of the last observed state, which is what lets
|
|
74
|
+
// the sweep publish `infraSetup` on transitions only; `act` marks it read.
|
|
66
75
|
// - `budget_paused` — one or more runs were paused by the spend safeguard (the workspace,
|
|
67
76
|
// account, or user budget is exhausted). Workspace-scoped (one card,
|
|
68
77
|
// not one per run) and purely informational: the sweeper never re-drives
|
|
@@ -97,6 +106,7 @@ export const notificationTypeSchema = v.picklist([
|
|
|
97
106
|
'pr_review_ready',
|
|
98
107
|
'initiative',
|
|
99
108
|
'platform_health',
|
|
109
|
+
'infra_unreachable',
|
|
100
110
|
'budget_paused',
|
|
101
111
|
'key_drift',
|
|
102
112
|
'merge_tag_request',
|
|
@@ -112,10 +122,10 @@ export const notificationTypeSchema = v.picklist([
|
|
|
112
122
|
*
|
|
113
123
|
* Deliberately EXCLUDED: failure-remediation cards (`ci_failed`, `test_failed`,
|
|
114
124
|
* `release_regression`) — "the machine needs help", not "a human owes a review" — and
|
|
115
|
-
* block-less/system cards (`platform_health`, `budget_paused`, `key_drift`,
|
|
116
|
-
* aren't tied to a reviewable task. `merge_tag_request` is excluded too: the PR
|
|
117
|
-
* ALREADY merged, so it is a post-hoc nudge for one tap — counting it as review
|
|
118
|
-
* friction task authoring over work that is finished.
|
|
125
|
+
* block-less/system cards (`platform_health`, `infra_unreachable`, `budget_paused`, `key_drift`,
|
|
126
|
+
* `initiative`) that aren't tied to a reviewable task. `merge_tag_request` is excluded too: the PR
|
|
127
|
+
* it concerns has ALREADY merged, so it is a post-hoc nudge for one tap — counting it as review
|
|
128
|
+
* debt would friction task authoring over work that is finished.
|
|
119
129
|
*/
|
|
120
130
|
export const REVIEW_WAIT_NOTIFICATION_TYPES = [
|
|
121
131
|
'merge_review',
|
|
@@ -225,6 +235,18 @@ export const notificationPayloadSchema = v.object({
|
|
|
225
235
|
* card links to); the reason set + window are enough to convey "what's wrong, go look".
|
|
226
236
|
*/
|
|
227
237
|
platformAlerts: v.optional(v.array(platformAlertReasonSchema)),
|
|
238
|
+
/**
|
|
239
|
+
* On an `infra_unreachable` notification: the configured infrastructure areas whose live probe
|
|
240
|
+
* is currently failing, sorted. Like {@link platformAlerts} this is the card's dedup identity —
|
|
241
|
+
* the watcher re-raises the SAME card every pass and the service only re-delivers when the set
|
|
242
|
+
* changes — AND the record the snapshot projection folds back into `infraSetup`, so a reload
|
|
243
|
+
* mid-outage still renders the banner without re-probing on the board-load path.
|
|
244
|
+
*
|
|
245
|
+
* The per-area probe REASON is deliberately not carried: it varies between passes (a refused
|
|
246
|
+
* connection, then a timeout), and any content change re-delivers the card, so persisting it
|
|
247
|
+
* would re-toast the inbox for the whole outage. It rides the live `infraSetup` event instead.
|
|
248
|
+
*/
|
|
249
|
+
unreachableAreas: v.optional(v.array(infraSetupAreaSchema)),
|
|
228
250
|
/**
|
|
229
251
|
* On a `key_drift` notification: the stored credentials the drift sweep could not decrypt
|
|
230
252
|
* (never their values). This is the card's dedup identity — the sweep re-raises the SAME card
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"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"}
|
package/dist/public-api.d.ts
CHANGED
|
@@ -343,7 +343,7 @@ export type PublicPipelineList = v.InferOutput<typeof publicPipelineListSchema>;
|
|
|
343
343
|
export declare const publicNotificationListSchema: v.ObjectSchema<{
|
|
344
344
|
readonly notifications: v.ArraySchema<v.ObjectSchema<{
|
|
345
345
|
readonly id: v.StringSchema<undefined>;
|
|
346
|
-
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
346
|
+
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
347
347
|
readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
348
348
|
readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
|
|
349
349
|
readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -382,6 +382,7 @@ export declare const publicNotificationListSchema: v.ObjectSchema<{
|
|
|
382
382
|
readonly unmergedRepos: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
383
383
|
readonly platformWindow: v.OptionalSchema<v.PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
|
|
384
384
|
readonly platformAlerts: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
385
|
+
readonly unreachableAreas: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
385
386
|
readonly driftAffected: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
386
387
|
readonly source: v.StringSchema<undefined>;
|
|
387
388
|
readonly id: v.StringSchema<undefined>;
|
package/dist/public-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAyD5B,+BAA+B;AAC/B,eAAO,MAAM,yBAAyB;IACpC,wEAAwE;;IAExE,iEAAiE;;IAEjE,kFAAkF;;aAElF,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEtF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,iEAAiD,CAAA;AACnF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB;IAChC,kDAAkD;;IAElD,iFAAiF;;aAEjF,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE,8EAA8E;AAC9E,eAAO,MAAM,eAAe;;;;;IAK1B,kFAAkF;;QAblF,kDAAkD;;QAElD,iFAAiF;;;IAajF,yDAAyD;;;;;aAEzD,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,eAAe,CAAC,CAAA;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;;;;QAf9B,kFAAkF;;YAblF,kDAAkD;;YAElD,iFAAiF;;;QAajF,yDAAyD;;;;;;IAezD,iGAAiG;;aAEjG,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAErE;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;IACpC,4CAA4C;;IAE5C,yDAAyD;;IAEzD,8CAA8C;;IAE9C,8FAA8F;;aAE9F,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,kFAAkF;AAClF,eAAO,MAAM,wBAAwB;;;;;;;aAInC,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAM/E;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,iGAOjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E,uGAAuG;AACvG,eAAO,MAAM,mBAAmB;;;;IAI9B,qFAAqF;;;aAGrF,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAErE,eAAO,MAAM,uBAAuB;;;;;QANlC,qFAAqF;;;;aAMI,CAAA;AAC3F,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,iFAAiF;AACjF,eAAO,MAAM,gBAAgB;;IAE3B,wDAAwD;;;;;;IAMxD,mEAAmE;;IAEnE,8EAA8E;;IAE9E,6EAA6E;;aAE7E,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D,eAAO,MAAM,oBAAoB;;;QAf/B,wDAAwD;;;;;;QAMxD,mEAAmE;;QAEnE,8EAA8E;;QAE9E,6EAA6E;;;IAO7E;;;;OAIG;;aAEH,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iCAAiC;IAC5C,4CAA4C;;IAE5C,yDAAyD;;IAEzD,kDAAkD;;aAElD,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAEjG;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;IAGjC,gFAAgF;;aAEhF,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAEhF;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;aAEhC,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAE9E;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;aAGjC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAMhF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,iFAAiE,CAAA;AACnG,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE,uFAAuF;AACvF,eAAO,MAAM,mBAAmB;IAC9B,sFAAsF;;IAEtF,4EAA4E;;IAE5E,kCAAkC;;IAElC,gFAAgF;;;;;;aAIhF,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAErE;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;IAK1B,iDAAiD;;;QAxBjD,sFAAsF;;QAEtF,4EAA4E;;QAE5E,kCAAkC;;QAElC,gFAAgF;;;;;;;IAqBhF,8DAA8D;;;;;IAE9D,sFAAsF;;;;;aAEtF,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,eAAe,CAAC,CAAA;AAM7D;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;IAG/B,6DAA6D;;IAE7D;;;OAGG;;IAEH;;;;OAIG;;aAEH,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,eAAO,MAAM,wBAAwB;;;;QAhBnC,6DAA6D;;QAE7D;;;WAGG;;QAEH;;;;WAIG;;;aAKyF,CAAA;AAC9F,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAM/E;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAEvC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA"}
|
|
@@ -29,7 +29,7 @@ export declare const getNotificationWebhookContract: {
|
|
|
29
29
|
}, undefined>;
|
|
30
30
|
readonly 200: v.NullableSchema<v.ObjectSchema<{
|
|
31
31
|
readonly url: v.StringSchema<undefined>;
|
|
32
|
-
readonly types: v.ArraySchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>, undefined>;
|
|
32
|
+
readonly types: v.ArraySchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>, undefined>;
|
|
33
33
|
readonly enabled: v.BooleanSchema<undefined>;
|
|
34
34
|
readonly hasSecret: v.BooleanSchema<undefined>;
|
|
35
35
|
readonly updatedAt: v.NumberSchema<undefined>;
|
|
@@ -42,7 +42,7 @@ export declare const putNotificationWebhookContract: {
|
|
|
42
42
|
readonly pathResolver: () => string;
|
|
43
43
|
readonly requestBodySchema: v.ObjectSchema<{
|
|
44
44
|
readonly url: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.UrlAction<string, undefined>, v.StartsWithAction<string, "https://", "The webhook endpoint must be an https:// URL">, v.MaxLengthAction<string, 2000, undefined>]>;
|
|
45
|
-
readonly types: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>, undefined>, undefined>;
|
|
45
|
+
readonly types: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>, undefined>, undefined>;
|
|
46
46
|
readonly enabled: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
47
47
|
readonly secret: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 16, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
48
48
|
}, undefined>;
|
|
@@ -71,7 +71,7 @@ export declare const putNotificationWebhookContract: {
|
|
|
71
71
|
}, undefined>;
|
|
72
72
|
readonly 200: v.ObjectSchema<{
|
|
73
73
|
readonly url: v.StringSchema<undefined>;
|
|
74
|
-
readonly types: v.ArraySchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>, undefined>;
|
|
74
|
+
readonly types: v.ArraySchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>, undefined>;
|
|
75
75
|
readonly enabled: v.BooleanSchema<undefined>;
|
|
76
76
|
readonly hasSecret: v.BooleanSchema<undefined>;
|
|
77
77
|
readonly updatedAt: v.NumberSchema<undefined>;
|
|
@@ -28,7 +28,7 @@ export declare const listNotificationsContract: {
|
|
|
28
28
|
}, undefined>;
|
|
29
29
|
readonly 200: v.ArraySchema<v.ObjectSchema<{
|
|
30
30
|
readonly id: v.StringSchema<undefined>;
|
|
31
|
-
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
31
|
+
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
32
32
|
readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
33
33
|
readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
|
|
34
34
|
readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -67,6 +67,7 @@ export declare const listNotificationsContract: {
|
|
|
67
67
|
readonly unmergedRepos: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
68
68
|
readonly platformWindow: v.OptionalSchema<v.PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
|
|
69
69
|
readonly platformAlerts: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
70
|
+
readonly unreachableAreas: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
70
71
|
readonly driftAffected: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
71
72
|
readonly source: v.StringSchema<undefined>;
|
|
72
73
|
readonly id: v.StringSchema<undefined>;
|
|
@@ -118,7 +119,7 @@ export declare const actNotificationContract: {
|
|
|
118
119
|
}, undefined>;
|
|
119
120
|
readonly 200: v.ObjectSchema<{
|
|
120
121
|
readonly id: v.StringSchema<undefined>;
|
|
121
|
-
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
122
|
+
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
122
123
|
readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
123
124
|
readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
|
|
124
125
|
readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -157,6 +158,7 @@ export declare const actNotificationContract: {
|
|
|
157
158
|
readonly unmergedRepos: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
158
159
|
readonly platformWindow: v.OptionalSchema<v.PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
|
|
159
160
|
readonly platformAlerts: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
161
|
+
readonly unreachableAreas: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
160
162
|
readonly driftAffected: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
161
163
|
readonly source: v.StringSchema<undefined>;
|
|
162
164
|
readonly id: v.StringSchema<undefined>;
|
|
@@ -206,7 +208,7 @@ export declare const dismissNotificationContract: {
|
|
|
206
208
|
}, undefined>;
|
|
207
209
|
readonly 200: v.ObjectSchema<{
|
|
208
210
|
readonly id: v.StringSchema<undefined>;
|
|
209
|
-
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
211
|
+
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
210
212
|
readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
211
213
|
readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
|
|
212
214
|
readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -245,6 +247,7 @@ export declare const dismissNotificationContract: {
|
|
|
245
247
|
readonly unmergedRepos: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
246
248
|
readonly platformWindow: v.OptionalSchema<v.PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
|
|
247
249
|
readonly platformAlerts: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
250
|
+
readonly unreachableAreas: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
248
251
|
readonly driftAffected: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
249
252
|
readonly source: v.StringSchema<undefined>;
|
|
250
253
|
readonly id: v.StringSchema<undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/routes/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAa5B,eAAO,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/routes/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAa5B,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIpC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQlC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMtC,CAAA"}
|
|
@@ -861,7 +861,7 @@ export declare const listPublicNotificationsContract: {
|
|
|
861
861
|
readonly 200: import("valibot").ObjectSchema<{
|
|
862
862
|
readonly notifications: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
863
863
|
readonly id: import("valibot").StringSchema<undefined>;
|
|
864
|
-
readonly type: import("valibot").PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
864
|
+
readonly type: import("valibot").PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
865
865
|
readonly status: import("valibot").PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
866
866
|
readonly severity: import("valibot").OptionalSchema<import("valibot").PicklistSchema<["normal", "urgent"], undefined>, undefined>;
|
|
867
867
|
readonly blockId: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
@@ -900,6 +900,7 @@ export declare const listPublicNotificationsContract: {
|
|
|
900
900
|
readonly unmergedRepos: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
|
|
901
901
|
readonly platformWindow: import("valibot").OptionalSchema<import("valibot").PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
|
|
902
902
|
readonly platformAlerts: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
903
|
+
readonly unreachableAreas: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
903
904
|
readonly driftAffected: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
904
905
|
readonly source: import("valibot").StringSchema<undefined>;
|
|
905
906
|
readonly id: import("valibot").StringSchema<undefined>;
|
|
@@ -951,7 +952,7 @@ export declare const actPublicNotificationContract: {
|
|
|
951
952
|
}, undefined>;
|
|
952
953
|
readonly 200: import("valibot").ObjectSchema<{
|
|
953
954
|
readonly id: import("valibot").StringSchema<undefined>;
|
|
954
|
-
readonly type: import("valibot").PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
955
|
+
readonly type: import("valibot").PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
955
956
|
readonly status: import("valibot").PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
956
957
|
readonly severity: import("valibot").OptionalSchema<import("valibot").PicklistSchema<["normal", "urgent"], undefined>, undefined>;
|
|
957
958
|
readonly blockId: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
@@ -990,6 +991,7 @@ export declare const actPublicNotificationContract: {
|
|
|
990
991
|
readonly unmergedRepos: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
|
|
991
992
|
readonly platformWindow: import("valibot").OptionalSchema<import("valibot").PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
|
|
992
993
|
readonly platformAlerts: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
994
|
+
readonly unreachableAreas: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
993
995
|
readonly driftAffected: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
994
996
|
readonly source: import("valibot").StringSchema<undefined>;
|
|
995
997
|
readonly id: import("valibot").StringSchema<undefined>;
|
|
@@ -1040,7 +1042,7 @@ export declare const dismissPublicNotificationContract: {
|
|
|
1040
1042
|
}, undefined>;
|
|
1041
1043
|
readonly 200: import("valibot").ObjectSchema<{
|
|
1042
1044
|
readonly id: import("valibot").StringSchema<undefined>;
|
|
1043
|
-
readonly type: import("valibot").PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
1045
|
+
readonly type: import("valibot").PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
1044
1046
|
readonly status: import("valibot").PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
1045
1047
|
readonly severity: import("valibot").OptionalSchema<import("valibot").PicklistSchema<["normal", "urgent"], undefined>, undefined>;
|
|
1046
1048
|
readonly blockId: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
@@ -1079,6 +1081,7 @@ export declare const dismissPublicNotificationContract: {
|
|
|
1079
1081
|
readonly unmergedRepos: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
|
|
1080
1082
|
readonly platformWindow: import("valibot").OptionalSchema<import("valibot").PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
|
|
1081
1083
|
readonly platformAlerts: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
1084
|
+
readonly unreachableAreas: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
1082
1085
|
readonly driftAffected: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
|
|
1083
1086
|
readonly source: import("valibot").StringSchema<undefined>;
|
|
1084
1087
|
readonly id: import("valibot").StringSchema<undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/routes/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AA4C3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIpC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAIF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKtC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK/B,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlC,CAAA;AAIF,4DAA4D;AAC5D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIrC,CAAA;AAEF,qCAAqC;AACrC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMzC,CAAA;AAEF,2BAA2B;AAC3B,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKhC,CAAA;AAEF,0BAA0B;AAC1B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlC,CAAA;AAEF,yDAAyD;AACzD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF,gGAAgG;AAChG,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMjC,CAAA;AAEF,iCAAiC;AACjC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlC,CAAA;AAEF,yFAAyF;AACzF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK/B,CAAA;AAEF,yFAAyF;AACzF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKnC,CAAA;AAIF,kFAAkF;AAClF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAItC,CAAA;AASF,2DAA2D;AAC3D,eAAO,MAAM,+BAA+B
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/routes/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AA4C3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIpC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAIF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKtC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK/B,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlC,CAAA;AAIF,4DAA4D;AAC5D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIrC,CAAA;AAEF,qCAAqC;AACrC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMzC,CAAA;AAEF,2BAA2B;AAC3B,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKhC,CAAA;AAEF,0BAA0B;AAC1B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlC,CAAA;AAEF,yDAAyD;AACzD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF,gGAAgG;AAChG,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMjC,CAAA;AAEF,iCAAiC;AACjC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlC,CAAA;AAEF,yFAAyF;AACzF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK/B,CAAA;AAEF,yFAAyF;AACzF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKnC,CAAA;AAIF,kFAAkF;AAClF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAItC,CAAA;AASF,2DAA2D;AAC3D,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI1C,CAAA;AAEF,mGAAmG;AACnG,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMxC,CAAA;AAEF,mDAAmD;AACnD,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM5C,CAAA"}
|
package/dist/routes/slack.d.ts
CHANGED
|
@@ -200,7 +200,7 @@ export declare const getSlackSettingsContract: {
|
|
|
200
200
|
}, undefined>;
|
|
201
201
|
}, undefined>;
|
|
202
202
|
readonly 200: v.ObjectSchema<{
|
|
203
|
-
readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>, v.ObjectSchema<{
|
|
203
|
+
readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>, v.ObjectSchema<{
|
|
204
204
|
readonly enabled: v.BooleanSchema<undefined>;
|
|
205
205
|
readonly channel: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 200, undefined>]>;
|
|
206
206
|
}, undefined>, undefined>;
|
|
@@ -213,7 +213,7 @@ export declare const updateSlackSettingsContract: {
|
|
|
213
213
|
readonly method: "put";
|
|
214
214
|
readonly pathResolver: () => string;
|
|
215
215
|
readonly requestBodySchema: v.ObjectSchema<{
|
|
216
|
-
readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>, v.ObjectSchema<{
|
|
216
|
+
readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>, v.ObjectSchema<{
|
|
217
217
|
readonly enabled: v.BooleanSchema<undefined>;
|
|
218
218
|
readonly channel: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 200, undefined>]>;
|
|
219
219
|
}, undefined>, undefined>;
|
|
@@ -243,7 +243,7 @@ export declare const updateSlackSettingsContract: {
|
|
|
243
243
|
}, undefined>;
|
|
244
244
|
}, undefined>;
|
|
245
245
|
readonly 200: v.ObjectSchema<{
|
|
246
|
-
readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>, v.ObjectSchema<{
|
|
246
|
+
readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>, v.ObjectSchema<{
|
|
247
247
|
readonly enabled: v.BooleanSchema<undefined>;
|
|
248
248
|
readonly channel: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 200, undefined>]>;
|
|
249
249
|
}, undefined>, undefined>;
|
|
@@ -1613,7 +1613,7 @@ export declare const createWorkspaceContract: {
|
|
|
1613
1613
|
}, undefined>, undefined>;
|
|
1614
1614
|
readonly notifications: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
1615
1615
|
readonly id: v.StringSchema<undefined>;
|
|
1616
|
-
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
1616
|
+
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
1617
1617
|
readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
1618
1618
|
readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
|
|
1619
1619
|
readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -1652,6 +1652,7 @@ export declare const createWorkspaceContract: {
|
|
|
1652
1652
|
readonly unmergedRepos: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
1653
1653
|
readonly platformWindow: v.OptionalSchema<v.PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
|
|
1654
1654
|
readonly platformAlerts: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
1655
|
+
readonly unreachableAreas: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
1655
1656
|
readonly driftAffected: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
1656
1657
|
readonly source: v.StringSchema<undefined>;
|
|
1657
1658
|
readonly id: v.StringSchema<undefined>;
|
|
@@ -2692,9 +2693,9 @@ export declare const createWorkspaceContract: {
|
|
|
2692
2693
|
readonly probe: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
2693
2694
|
}, undefined>, undefined>, undefined>;
|
|
2694
2695
|
readonly infraSetup: v.OptionalSchema<v.ObjectSchema<{
|
|
2695
|
-
readonly ephemeralEnvironments: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
2696
|
-
readonly agentExecutor: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
2697
|
-
readonly binaryStorage: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
2696
|
+
readonly ephemeralEnvironments: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
2697
|
+
readonly agentExecutor: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
2698
|
+
readonly binaryStorage: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
2698
2699
|
}, undefined>, undefined>;
|
|
2699
2700
|
readonly skills: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
2700
2701
|
readonly id: v.StringSchema<undefined>;
|
|
@@ -4267,7 +4268,7 @@ export declare const getWorkspaceContract: {
|
|
|
4267
4268
|
}, undefined>, undefined>;
|
|
4268
4269
|
readonly notifications: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
4269
4270
|
readonly id: v.StringSchema<undefined>;
|
|
4270
|
-
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
4271
|
+
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
4271
4272
|
readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
4272
4273
|
readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
|
|
4273
4274
|
readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -4306,6 +4307,7 @@ export declare const getWorkspaceContract: {
|
|
|
4306
4307
|
readonly unmergedRepos: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
4307
4308
|
readonly platformWindow: v.OptionalSchema<v.PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
|
|
4308
4309
|
readonly platformAlerts: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
4310
|
+
readonly unreachableAreas: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
4309
4311
|
readonly driftAffected: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
4310
4312
|
readonly source: v.StringSchema<undefined>;
|
|
4311
4313
|
readonly id: v.StringSchema<undefined>;
|
|
@@ -5346,9 +5348,9 @@ export declare const getWorkspaceContract: {
|
|
|
5346
5348
|
readonly probe: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
5347
5349
|
}, undefined>, undefined>, undefined>;
|
|
5348
5350
|
readonly infraSetup: v.OptionalSchema<v.ObjectSchema<{
|
|
5349
|
-
readonly ephemeralEnvironments: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
5350
|
-
readonly agentExecutor: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
5351
|
-
readonly binaryStorage: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
5351
|
+
readonly ephemeralEnvironments: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
5352
|
+
readonly agentExecutor: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
5353
|
+
readonly binaryStorage: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
5352
5354
|
}, undefined>, undefined>;
|
|
5353
5355
|
readonly skills: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
5354
5356
|
readonly id: v.StringSchema<undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAe5B;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;aAGlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAI7E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjC,CAAA;AAEF,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAe5B;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;aAGlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAI7E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK/B,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlC,CAAA"}
|
package/dist/slack.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export type SlackRoute = v.InferOutput<typeof slackRouteSchema>;
|
|
|
30
30
|
* type absent from `routes`, disabled, or with an empty channel does not post.
|
|
31
31
|
*/
|
|
32
32
|
export declare const slackNotificationSettingsSchema: v.ObjectSchema<{
|
|
33
|
-
readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>, v.ObjectSchema<{
|
|
33
|
+
readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>, v.ObjectSchema<{
|
|
34
34
|
readonly enabled: v.BooleanSchema<undefined>;
|
|
35
35
|
/** A channel id (`C0123…`) or name (`#general`); empty = unrouted. */
|
|
36
36
|
readonly channel: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 200, undefined>]>;
|
|
@@ -83,7 +83,7 @@ export declare const connectSlackByTokenSchema: v.ObjectSchema<{
|
|
|
83
83
|
export type ConnectSlackByTokenInput = v.InferOutput<typeof connectSlackByTokenSchema>;
|
|
84
84
|
/** Replace a workspace's Slack notification routing. */
|
|
85
85
|
export declare const updateSlackSettingsSchema: v.ObjectSchema<{
|
|
86
|
-
readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>, v.ObjectSchema<{
|
|
86
|
+
readonly routes: v.RecordSchema<v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>, v.ObjectSchema<{
|
|
87
87
|
readonly enabled: v.BooleanSchema<undefined>;
|
|
88
88
|
/** A channel id (`C0123…`) or name (`#general`); empty = unrouted. */
|
|
89
89
|
readonly channel: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 200, undefined>]>;
|
package/dist/snapshot.d.ts
CHANGED
|
@@ -1599,7 +1599,7 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
|
|
|
1599
1599
|
*/
|
|
1600
1600
|
readonly notifications: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
1601
1601
|
readonly id: v.StringSchema<undefined>;
|
|
1602
|
-
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
1602
|
+
readonly type: v.PicklistSchema<["merge_review", "pipeline_complete", "ci_failed", "test_failed", "requirement_review", "clarity_review", "release_regression", "decision_required", "human_test_ready", "visual_confirmation_ready", "human_review", "followup_pending", "fork_decision_pending", "judge_review", "pr_review_ready", "initiative", "platform_health", "infra_unreachable", "budget_paused", "key_drift", "merge_tag_request"], undefined>;
|
|
1603
1603
|
readonly status: v.PicklistSchema<["open", "acted", "dismissed"], undefined>;
|
|
1604
1604
|
readonly severity: v.OptionalSchema<v.PicklistSchema<["normal", "urgent"], undefined>, undefined>;
|
|
1605
1605
|
readonly blockId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -1638,6 +1638,7 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
|
|
|
1638
1638
|
readonly unmergedRepos: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
1639
1639
|
readonly platformWindow: v.OptionalSchema<v.PicklistSchema<["1h", "24h", "7d"], undefined>, undefined>;
|
|
1640
1640
|
readonly platformAlerts: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["failure_rate_high", "duration_p99_high", "backlog_high"], undefined>, undefined>, undefined>;
|
|
1641
|
+
readonly unreachableAreas: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["ephemeralEnvironments", "agentExecutor", "binaryStorage"], undefined>, undefined>, undefined>;
|
|
1641
1642
|
readonly driftAffected: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
1642
1643
|
readonly source: v.StringSchema<undefined>;
|
|
1643
1644
|
readonly id: v.StringSchema<undefined>;
|
|
@@ -2845,9 +2846,9 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
|
|
|
2845
2846
|
* wire (absent on an older backend), the SPA then simply shows no banner.
|
|
2846
2847
|
*/
|
|
2847
2848
|
readonly infraSetup: v.OptionalSchema<v.ObjectSchema<{
|
|
2848
|
-
readonly ephemeralEnvironments: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
2849
|
-
readonly agentExecutor: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
2850
|
-
readonly binaryStorage: v.PicklistSchema<["not_defined", "configured", "not_applicable"], undefined>;
|
|
2849
|
+
readonly ephemeralEnvironments: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
2850
|
+
readonly agentExecutor: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
2851
|
+
readonly binaryStorage: v.PicklistSchema<["not_defined", "configured", "not_applicable", "unreachable"], undefined>;
|
|
2851
2852
|
}, undefined>, undefined>;
|
|
2852
2853
|
/**
|
|
2853
2854
|
* The account's repo-sourced Claude Skills catalog (lightweight `{ id, name, description }`),
|
package/dist/snapshot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAsC5B;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;aAGhC,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAE7E,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB;;;IAGlC;;;;;OAKG;;aAEH,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKlC;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;IAEH;;;;OAIG;;;;;;;;;;IAEH;;;;OAIG;;;;;;;;;;IAEH;;;;OAIG;;;;;;;;;;IAEH;;;OAGG;;;;IAEH;;;;OAIG;;;;;;IAEH;;;;;OAKG
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAsC5B;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;aAGhC,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAE7E,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB;;;IAGlC;;;;;OAKG;;aAEH,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKlC;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;IAEH;;;;OAIG;;;;;;;;;;IAEH;;;;OAIG;;;;;;;;;;IAEH;;;;OAIG;;;;;;;;;;IAEH;;;OAGG;;;;IAEH;;;;OAIG;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;OAMG;;;;;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;;;OAQG;;;;;IAOH;;;OAGG;;;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;OAMG;;;;;;;;;;;;;;IAEH;;;;;;;OAOG;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;;;;OASG;;;;QAxLH;;;;;WAKG;;;;;;QALH;;;;;WAKG;;;IAsLH;;;;;;;OAOG;;IAEH;;;;;;;;;;;;;;;OAeG;;;;;IAEH;;;;;;;OAOG;;IAEH;;;;;;;OAOG;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;;OAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;;OAOG;;;;;;IAEH;;;;;;;OAOG;;;;;;IAEH;;;;;OAKG;;;;;aAEH,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
|