@cat-factory/kernel 0.22.0 → 0.24.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.
@@ -0,0 +1,164 @@
1
+ import type { Block, ExecutionInstance, GateAttempt, GateStepState, MergeThresholdPreset, PipelineStep } from './types.js';
2
+ import type { RaiseNotificationInput } from '../ports/notification-channel.js';
3
+ import type { Clock } from '../ports/runtime.js';
4
+ import type { RunInitiatorScope } from '../ports/user-secret-repositories.js';
5
+ /** The outcome of a single gate precheck against its provider. */
6
+ export interface GateProbe {
7
+ /**
8
+ * - `pass` — the precheck is satisfied; the step finishes and the run advances
9
+ * (the "skip the agent" path — nothing was spun up).
10
+ * - `pending` — the provider is still computing; keep polling.
11
+ * - `fail` — the precheck failed; escalate to the helper agent (or give up once
12
+ * the attempt budget is spent).
13
+ */
14
+ status: 'pass' | 'pending' | 'fail';
15
+ /** The PR head commit the precheck ran against, or null when there is no open PR. */
16
+ headSha: string | null;
17
+ /** Step output recorded on `pass` (a short human-readable reason). */
18
+ passOutput?: string;
19
+ /** A summary of what failed on `fail` — fed to the helper agent and the give-up error. */
20
+ failureSummary?: string;
21
+ /**
22
+ * Structured failing checks behind {@link failureSummary} (the CI gate populates
23
+ * this from the red check runs; the conflicts gate leaves it undefined). Persisted
24
+ * onto `step.gate` so the run-detail UI can list each failing check.
25
+ */
26
+ failingChecks?: {
27
+ name: string;
28
+ conclusion: string | null;
29
+ url?: string | null;
30
+ }[];
31
+ }
32
+ /** The relevant outcome of a finished gate-helper job, for recording an attempt. */
33
+ export type GateHelperOutcome = {
34
+ state: 'done';
35
+ output: string | null;
36
+ } | {
37
+ state: 'failed';
38
+ error: string | null;
39
+ };
40
+ /**
41
+ * Build the record of a just-finished gate-helper attempt (a ci-fixer / conflict-resolver
42
+ * run) for {@link GateStepState.attemptLog}. The summary is the helper's OWN account — its
43
+ * output on completion (which the conflict-resolver fills with the files it left
44
+ * conflicting), or the error on failure — tagged with the current attempt number + the
45
+ * gated head sha. The gate's next precheck remains the source of truth for pass/fail; this
46
+ * is purely the per-attempt history the UI shows so a looping gate isn't a black box.
47
+ */
48
+ export declare function recordGateAttempt(gate: Pick<GateStepState, 'attempts' | 'headSha'>, outcome: GateHelperOutcome, at: number): GateAttempt;
49
+ /** Inputs to a gate's exhaustion handler (budget spent / no executor to escalate to). */
50
+ export interface GateExhaustedArgs {
51
+ workspaceId: string;
52
+ instance: ExecutionInstance;
53
+ block: Block;
54
+ step: PipelineStep;
55
+ summary?: string;
56
+ }
57
+ /**
58
+ * The per-gate differentiators the engine's generic gate machine needs. Everything
59
+ * shared (the state machine, persistence, dispatch, budget) lives in ExecutionService.
60
+ */
61
+ export interface GateDefinition {
62
+ /** Matches the step's `agentKind` (e.g. `ci`, `conflicts`). */
63
+ kind: string;
64
+ /** The container agent kind dispatched on a failed precheck (e.g. `ci-fixer`). */
65
+ helperKind: string;
66
+ /** Whether the gate's provider is wired. When false the gate is a pass-through. */
67
+ wired(): boolean;
68
+ /** Step output recorded when the gate passes through (no provider configured). */
69
+ unwiredOutput: string;
70
+ /**
71
+ * What to do when the durable driver's poll budget (ciMaxPolls × ciPollInterval) is
72
+ * spent while the gate is still `pending` — distinct from the attempt budget (helper
73
+ * dispatches) handled by {@link onExhausted}:
74
+ * - `fail` (default) — the precheck never settled, which is a failure for the CI /
75
+ * conflicts gates (CI never went green / the PR never became mergeable).
76
+ * - `pass` — for a time-windowed watch gate (post-release-health), running out of
77
+ * polls just means the watch window outlasted the budget with NO regression seen,
78
+ * which is a healthy pass — not a timeout failure.
79
+ * Resolved by {@link ExecutionService.resolveGatePollExhaustion}.
80
+ */
81
+ pollExhaustion?: 'pass' | 'fail';
82
+ /**
83
+ * Run the precheck against the provider and classify it. Receives the live gate
84
+ * state so a time-windowed gate (post-release-health) can read its `watchSince`.
85
+ */
86
+ probe(workspaceId: string, blockId: string, gateState: GateStepState): Promise<GateProbe>;
87
+ /**
88
+ * Optional: the attempt budget for this gate, resolved from the task's merge preset.
89
+ * Defaults to `ciMaxAttempts` when omitted (the CI/conflicts gates use that).
90
+ */
91
+ attemptBudget?(preset: Pick<MergeThresholdPreset, 'ciMaxAttempts' | 'releaseMaxAttempts'>): number;
92
+ /**
93
+ * Optional extra context handed to the helper agent on escalation (the CI gate
94
+ * passes the failing-check summary; the conflicts gate passes nothing).
95
+ */
96
+ helperPriorOutput?(summary: string): {
97
+ agentKind: string;
98
+ output: string;
99
+ } | undefined;
100
+ /**
101
+ * Optional async builder for richer helper context (gathered at dispatch time), used
102
+ * when a gate's helper needs more than the precheck summary — e.g. the on-call agent
103
+ * gets the full Datadog evidence bundle. Returns prior-output entries appended after
104
+ * the base context's. Takes precedence over {@link helperPriorOutput} when present.
105
+ */
106
+ gatherHelperPriorOutputs?(workspaceId: string, blockId: string, gateState: GateStepState): Promise<{
107
+ agentKind: string;
108
+ output: string;
109
+ }[]>;
110
+ /**
111
+ * Called when the attempt budget is spent (or there is no async executor to escalate
112
+ * to). May raise a notification; returns the message used to fail the run.
113
+ */
114
+ onExhausted(args: GateExhaustedArgs): Promise<{
115
+ error: string;
116
+ }>;
117
+ }
118
+ /**
119
+ * The shared engine seams a registered (custom) gate legitimately needs, handed to its
120
+ * factory at registry-build time. Deliberately minimal + runtime-neutral: the engine
121
+ * keeps owning dispatch, budget resolution, persistence and the state machine. A custom
122
+ * gate reaches its OWN provider (the source for `wired()`/`probe()`) by closing over a
123
+ * module-level handle its facade wires at startup — NOT through this context.
124
+ */
125
+ export interface GateContext {
126
+ /** The engine clock (monotonic-ish ms), for time-windowed gates. */
127
+ clock: Clock;
128
+ /** Read a block, e.g. to gate only a release that actually shipped. */
129
+ getBlock(workspaceId: string, blockId: string): Promise<Block | null>;
130
+ /** Run a function under the run initiator's ambient context (per-user credentials). */
131
+ runInitiatorScope: RunInitiatorScope;
132
+ /** Raise (or re-raise) a human-actionable notification, e.g. from `onExhausted`. */
133
+ raiseNotification(workspaceId: string, input: RaiseNotificationInput): Promise<void>;
134
+ }
135
+ /**
136
+ * A registered gate is a factory the engine invokes ONCE at registry-build time with a
137
+ * {@link GateContext}. A factory (rather than a static {@link GateDefinition}) lets the
138
+ * gate's `probe`/`onExhausted` close over the engine seams + the registrant's own
139
+ * provider, which a static object built at import time could not reach.
140
+ */
141
+ export type GateFactory = (ctx: GateContext) => GateDefinition;
142
+ /**
143
+ * Register a custom polling gate, keyed by the step `agentKind` it gates. A later
144
+ * registration of the same kind replaces the earlier one, and a registered gate replaces
145
+ * a built-in of the same kind — so a deployment can both add new gates and customize the
146
+ * built-in catalog. The `kind` is passed explicitly because the factory's result isn't
147
+ * built until the engine invokes it.
148
+ */
149
+ export declare function registerGate(kind: string, factory: GateFactory): void;
150
+ /** The registered custom gates (registration order). */
151
+ export declare function registeredGateFactories(): {
152
+ kind: string;
153
+ factory: GateFactory;
154
+ }[];
155
+ /** Drop all registered gates. Intended for tests that exercise registration. */
156
+ export declare function clearRegisteredGates(): void;
157
+ /**
158
+ * A minimal {@link GateContext} for tests that invoke a gate factory in isolation (the
159
+ * real one is built by `ExecutionService.makeGateContext`). Defaults to harmless no-ops;
160
+ * pass `overrides` to assert against a specific seam. Centralised here so a new required
161
+ * `GateContext` field is filled in ONE place instead of every gate test.
162
+ */
163
+ export declare function stubGateContext(overrides?: Partial<GateContext>): GateContext;
164
+ //# sourceMappingURL=gate-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-registry.d.ts","sourceRoot":"","sources":["../../src/domain/gate-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Build the record of a just-finished gate-helper attempt (a ci-fixer / conflict-resolver
3
+ * run) for {@link GateStepState.attemptLog}. The summary is the helper's OWN account — its
4
+ * output on completion (which the conflict-resolver fills with the files it left
5
+ * conflicting), or the error on failure — tagged with the current attempt number + the
6
+ * gated head sha. The gate's next precheck remains the source of truth for pass/fail; this
7
+ * is purely the per-attempt history the UI shows so a looping gate isn't a black box.
8
+ */
9
+ export function recordGateAttempt(gate, outcome, at) {
10
+ return {
11
+ attempt: gate.attempts,
12
+ at,
13
+ outcome: outcome.state === 'done' ? 'completed' : 'failed',
14
+ headSha: gate.headSha ?? null,
15
+ summary: outcome.state === 'done'
16
+ ? outcome.output
17
+ : (outcome.error ?? 'The helper agent failed without finishing.'),
18
+ };
19
+ }
20
+ // Process-wide registry, mirroring the agent-kind / pipeline registry seams. Registration
21
+ // is a startup import side effect, read once when an ExecutionService lazily builds its
22
+ // gate registry on first use. A gate registered AFTER an ExecutionService has already
23
+ // built its registry is invisible to that instance — register at startup, before serving.
24
+ const registry = new Map();
25
+ /**
26
+ * Register a custom polling gate, keyed by the step `agentKind` it gates. A later
27
+ * registration of the same kind replaces the earlier one, and a registered gate replaces
28
+ * a built-in of the same kind — so a deployment can both add new gates and customize the
29
+ * built-in catalog. The `kind` is passed explicitly because the factory's result isn't
30
+ * built until the engine invokes it.
31
+ */
32
+ export function registerGate(kind, factory) {
33
+ registry.set(kind, factory);
34
+ }
35
+ /** The registered custom gates (registration order). */
36
+ export function registeredGateFactories() {
37
+ return [...registry].map(([kind, factory]) => ({ kind, factory }));
38
+ }
39
+ /** Drop all registered gates. Intended for tests that exercise registration. */
40
+ export function clearRegisteredGates() {
41
+ registry.clear();
42
+ }
43
+ /**
44
+ * A minimal {@link GateContext} for tests that invoke a gate factory in isolation (the
45
+ * real one is built by `ExecutionService.makeGateContext`). Defaults to harmless no-ops;
46
+ * pass `overrides` to assert against a specific seam. Centralised here so a new required
47
+ * `GateContext` field is filled in ONE place instead of every gate test.
48
+ */
49
+ export function stubGateContext(overrides = {}) {
50
+ return {
51
+ clock: { now: () => 0 },
52
+ getBlock: async () => null,
53
+ runInitiatorScope: (_initiatedBy, fn) => fn(),
54
+ raiseNotification: async () => { },
55
+ ...overrides,
56
+ };
57
+ }
58
+ //# sourceMappingURL=gate-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-registry.js","sourceRoot":"","sources":["../../src/domain/gate-registry.ts"],"names":[],"mappings":"AA0DA;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAiD,EACjD,OAA0B,EAC1B,EAAU;IAEV,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,QAAQ;QACtB,EAAE;QACF,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;QAC1D,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,OAAO,EACL,OAAO,CAAC,KAAK,KAAK,MAAM;YACtB,CAAC,CAAC,OAAO,CAAC,MAAM;YAChB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,4CAA4C,CAAC;KACtE,CAAA;AACH,CAAC;AA+FD,0FAA0F;AAC1F,wFAAwF;AACxF,sFAAsF;AACtF,0FAA0F;AAC1F,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAA;AAE/C;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAoB;IAC7D,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAC7B,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,uBAAuB;IACrC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;AACpE,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,oBAAoB;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAA;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,SAAS,GAAyB,EAAE;IAClE,OAAO;QACL,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;QACvB,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QAC1B,iBAAiB,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7C,iBAAiB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QACjC,GAAG,SAAS;KACb,CAAA;AACH,CAAC"}
@@ -0,0 +1,75 @@
1
+ import type { ExecutionInstance, PipelineStep } from './types.js';
2
+ import type { AgentRunResult } from '../ports/agent-executor.js';
3
+ import type { RunInitiatorScope } from '../ports/user-secret-repositories.js';
4
+ /** Context handed to a step-completion resolver after its step's agent finished. */
5
+ export interface StepResolverContext {
6
+ workspaceId: string;
7
+ instance: ExecutionInstance;
8
+ step: PipelineStep;
9
+ /** The finished agent's structured result (the resolver acts on it mechanically). */
10
+ result: AgentRunResult;
11
+ /** Whether this step is the pipeline's last (resolvers rarely need it). */
12
+ isFinalStep: boolean;
13
+ }
14
+ /** The outcome of a post-completion resolver. */
15
+ export interface StepResolution {
16
+ /** Replacement step output (e.g. a human-readable merge summary). */
17
+ output?: string;
18
+ /**
19
+ * Set when the resolver has already decided the block's TERMINAL status itself (the
20
+ * merger flips the block to `done` on a real merge or `pr_ready` on a review). The
21
+ * engine's `finalizeBlock` then only backstops a block the resolver left untouched.
22
+ */
23
+ ownsTerminalStatus?: boolean;
24
+ }
25
+ /**
26
+ * Deterministic backend logic run after an agent step completes, keyed by `agentKind`.
27
+ * The engine runs the matching resolver in `recordStepResult` once the step's agent has
28
+ * finished, regardless of the step's position in the pipeline.
29
+ */
30
+ export interface StepCompletionResolver {
31
+ /** Matches the step's `agentKind` (e.g. `merger`). */
32
+ kind: string;
33
+ /**
34
+ * Whether this resolver applies to the finished step's result — lets a resolver no-op
35
+ * when its agent produced nothing to act on (e.g. the merger returned no assessment).
36
+ * Defaults to always-applies when omitted.
37
+ */
38
+ applies?(result: AgentRunResult): boolean;
39
+ /** Run the mechanical post-completion logic. */
40
+ resolve(ctx: StepResolverContext): Promise<StepResolution | void>;
41
+ }
42
+ /**
43
+ * The shared engine seams a registered (custom) resolver legitimately needs, handed to
44
+ * its factory at registry-build time. Minimal by design — a resolver acts on the
45
+ * `result` it receives and reaches any external system through a provider it closes over.
46
+ */
47
+ export interface ResolverContext {
48
+ /** Run a function under the run initiator's ambient context (per-user credentials). */
49
+ runInitiatorScope: RunInitiatorScope;
50
+ }
51
+ /**
52
+ * A registered resolver is a factory the engine invokes ONCE at registry-build time with
53
+ * a {@link ResolverContext}, mirroring {@link GateFactory}.
54
+ */
55
+ export type StepResolverFactory = (ctx: ResolverContext) => StepCompletionResolver;
56
+ /**
57
+ * Register a custom step-completion resolver, keyed by the step `agentKind` whose
58
+ * completion it resolves. A later registration of the same kind replaces the earlier one,
59
+ * and a registered resolver replaces a built-in of the same kind.
60
+ */
61
+ export declare function registerStepResolver(kind: string, factory: StepResolverFactory): void;
62
+ /** The registered custom step resolvers (registration order). */
63
+ export declare function registeredStepResolverFactories(): {
64
+ kind: string;
65
+ factory: StepResolverFactory;
66
+ }[];
67
+ /** Drop all registered step resolvers. Intended for tests that exercise registration. */
68
+ export declare function clearRegisteredStepResolvers(): void;
69
+ /**
70
+ * A minimal {@link ResolverContext} for tests that invoke a resolver factory in isolation
71
+ * (the real one is built by `ExecutionService.makeResolverContext`). Centralised here so a
72
+ * new required `ResolverContext` field is filled in ONE place instead of every test.
73
+ */
74
+ export declare function stubResolverContext(overrides?: Partial<ResolverContext>): ResolverContext;
75
+ //# sourceMappingURL=step-resolver-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-resolver-registry.d.ts","sourceRoot":"","sources":["../../src/domain/step-resolver-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAuB7E,oFAAoF;AACpF,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,qFAAqF;IACrF,MAAM,EAAE,cAAc,CAAA;IACtB,2EAA2E;IAC3E,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,OAAO,CAAC,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAA;IACzC,gDAAgD;IAChD,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;CAClE;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,sBAAsB,CAAA;AAOlF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAErF;AAED,iEAAiE;AACjE,wBAAgB,+BAA+B,IAAI;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,mBAAmB,CAAA;CAC7B,EAAE,CAEF;AAED,yFAAyF;AACzF,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,eAAe,CAE7F"}
@@ -0,0 +1,29 @@
1
+ // Process-wide registry, mirroring the gate / agent-kind / pipeline registry seams.
2
+ // Registration is a startup import side effect, read once when an ExecutionService lazily
3
+ // builds its resolver registry — register at startup, before serving.
4
+ const registry = new Map();
5
+ /**
6
+ * Register a custom step-completion resolver, keyed by the step `agentKind` whose
7
+ * completion it resolves. A later registration of the same kind replaces the earlier one,
8
+ * and a registered resolver replaces a built-in of the same kind.
9
+ */
10
+ export function registerStepResolver(kind, factory) {
11
+ registry.set(kind, factory);
12
+ }
13
+ /** The registered custom step resolvers (registration order). */
14
+ export function registeredStepResolverFactories() {
15
+ return [...registry].map(([kind, factory]) => ({ kind, factory }));
16
+ }
17
+ /** Drop all registered step resolvers. Intended for tests that exercise registration. */
18
+ export function clearRegisteredStepResolvers() {
19
+ registry.clear();
20
+ }
21
+ /**
22
+ * A minimal {@link ResolverContext} for tests that invoke a resolver factory in isolation
23
+ * (the real one is built by `ExecutionService.makeResolverContext`). Centralised here so a
24
+ * new required `ResolverContext` field is filled in ONE place instead of every test.
25
+ */
26
+ export function stubResolverContext(overrides = {}) {
27
+ return { runInitiatorScope: (_initiatedBy, fn) => fn(), ...overrides };
28
+ }
29
+ //# sourceMappingURL=step-resolver-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-resolver-registry.js","sourceRoot":"","sources":["../../src/domain/step-resolver-registry.ts"],"names":[],"mappings":"AAkFA,oFAAoF;AACpF,0FAA0F;AAC1F,sEAAsE;AACtE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAA;AAEvD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,OAA4B;IAC7E,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAC7B,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,+BAA+B;IAI7C,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;AACpE,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,4BAA4B;IAC1C,QAAQ,CAAC,KAAK,EAAE,CAAA;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAS,GAA6B,EAAE;IAC1E,OAAO,EAAE,iBAAiB,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,CAAA;AACxE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,8 @@ export { BLOCK_TYPE_LABEL, DEFAULT_MERGE_PRESET, DEFAULT_CI_MAX_ATTEMPTS, DEFAUL
6
6
  export { type SelectableModel, type ModelVariant, type SubscriptionVariant, type SubscriptionVendorConfig, type ProviderCapabilities, type ModelCostResolver, MODEL_CATALOG, SUBSCRIPTION_VENDORS, ALL_SUBSCRIPTION_VENDORS, getSelectableModel, contextWindowFor, effectiveCatalog, effectiveCatalogWith, type LocalEndpointModels, localSelectableModels, parseLocalModelId, openRouterSelectableModels, parseOpenRouterModelId, resolveModelRef, isModelUsable, subscriptionOptionFor, isIndividualVendor, INDIVIDUAL_VENDORS, individualVendorForModelId, personalCredentialVendorForModelId, } from './domain/models.js';
7
7
  export { seedBlocks, seedPipelines, BLUEPRINT_PIPELINE_ID, DEP_UPDATE_PIPELINE_ID, TECH_DEBT_PIPELINE_ID, } from './domain/seed.js';
8
8
  export { registerPipeline, registerPipelines, registeredPipelines, clearRegisteredPipelines, } from './domain/pipeline-registry.js';
9
+ export { type GateProbe, type GateHelperOutcome, type GateExhaustedArgs, type GateDefinition, type GateContext, type GateFactory, recordGateAttempt, registerGate, registeredGateFactories, clearRegisteredGates, stubGateContext, } from './domain/gate-registry.js';
10
+ export { type StepResolverContext, type StepResolution, type StepCompletionResolver, type ResolverContext, type StepResolverFactory, registerStepResolver, registeredStepResolverFactories, clearRegisteredStepResolvers, stubResolverContext, } from './domain/step-resolver-registry.js';
9
11
  export * from './ports/index.js';
10
12
  export { type ServiceRegistrationDeps, registerServiceForFrame, } from './domain/service-registration.js';
11
13
  export { MapSourceRegistry } from './shared/source-registry.logic.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,wBAAwB,GAC9B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,+BAA+B,CAAA;AAEtC,cAAc,kBAAkB,CAAA;AAEhC,OAAO,EACL,KAAK,uBAAuB,EAC5B,uBAAuB,GACxB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,GACZ,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACnG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,KAAK,eAAe,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,wBAAwB,GAC9B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,+BAA+B,CAAA;AAMtC,OAAO,EACL,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,GAChB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,oBAAoB,EACpB,+BAA+B,EAC/B,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,oCAAoC,CAAA;AAE3C,cAAc,kBAAkB,CAAA;AAEhC,OAAO,EACL,KAAK,uBAAuB,EAC5B,uBAAuB,GACxB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,GACZ,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACnG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,KAAK,eAAe,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
package/dist/index.js CHANGED
@@ -11,6 +11,12 @@ export { seedBlocks, seedPipelines, BLUEPRINT_PIPELINE_ID, DEP_UPDATE_PIPELINE_I
11
11
  // agent-kind / model-provider registry seams): a deployment registers extra pipelines at
12
12
  // startup and `seedPipelines()` seeds them into every new workspace.
13
13
  export { registerPipeline, registerPipelines, registeredPipelines, clearRegisteredPipelines, } from './domain/pipeline-registry.js';
14
+ // Installation-level extension point for custom polling gates + step-completion
15
+ // resolvers (mirrors the agent-kind / pipeline registry seams): a deployment registers
16
+ // its own gate / resolver at startup and the ExecutionService merges them with the
17
+ // built-ins. See `domain/gate-registry.ts` / `domain/step-resolver-registry.ts`.
18
+ export { recordGateAttempt, registerGate, registeredGateFactories, clearRegisteredGates, stubGateContext, } from './domain/gate-registry.js';
19
+ export { registerStepResolver, registeredStepResolverFactories, clearRegisteredStepResolvers, stubResolverContext, } from './domain/step-resolver-registry.js';
14
20
  export * from './ports/index.js';
15
21
  export { registerServiceForFrame, } from './domain/service-registration.js';
16
22
  export { MapSourceRegistry } from './shared/source-registry.logic.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8DAA8D;AAE9D,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,WAAW,EACX,eAAe,GAGhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GAEvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAOL,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EAEpB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AACzB,kFAAkF;AAClF,yFAAyF;AACzF,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,+BAA+B,CAAA;AAEtC,cAAc,kBAAkB,CAAA;AAEhC,OAAO,EAEL,uBAAuB,GACxB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,GACZ,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACnG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAwB,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8DAA8D;AAE9D,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,WAAW,EACX,eAAe,GAGhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GAEvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAOL,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EAEpB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AACzB,kFAAkF;AAClF,yFAAyF;AACzF,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,+BAA+B,CAAA;AAEtC,gFAAgF;AAChF,uFAAuF;AACvF,mFAAmF;AACnF,iFAAiF;AACjF,OAAO,EAOL,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,GAChB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAML,oBAAoB,EACpB,+BAA+B,EAC/B,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,oCAAoC,CAAA;AAE3C,cAAc,kBAAkB,CAAA;AAEhC,OAAO,EAEL,uBAAuB,GACxB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,GACZ,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACnG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAwB,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
@@ -80,6 +80,19 @@ export interface EnvironmentProvider {
80
80
  * the SPA falls back to the manifest editor.
81
81
  */
82
82
  describeConfig?(manifest?: EnvironmentManifest): ProviderConfigField[];
83
+ /**
84
+ * The base manifest a NATIVE adapter is configured through, so the SPA can render the
85
+ * flat `describeConfig` form yet still persist a full manifest (the single storage
86
+ * path — see `backend/docs/native-environment-adapter.md`). The SPA overlays each
87
+ * field value onto this scaffold: a `secret` field goes into the secret bundle (the
88
+ * scaffold's `auth` already references its key), a non-secret field into
89
+ * `providerConfig[key]` (a `baseUrl` field onto `baseUrl`). The scaffold supplies the
90
+ * parts no flat field carries — `auth` scheme, the `provision`/`status`/`teardown`
91
+ * request templates (which a native adapter ignores at run time but the schema
92
+ * requires), and `response`. Absent ⇒ a manifest-authored provider; the SPA edits the
93
+ * manifest directly. Carries NO secret values — only the shape + secret-ref keys.
94
+ */
95
+ describeManifestTemplate?(): EnvironmentManifest;
83
96
  /** Probe the connection without persisting. Optional — absent ⇒ "nothing to test". */
84
97
  testConnection?(req: EnvironmentConnectionTestRequest): Promise<ConnectionTestResult>;
85
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"environment-provider.d.ts","sourceRoot":"","sources":["../../src/ports/environment-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,oBAAoB,CAAA;AAS3B,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;AAEhE,gFAAgF;AAChF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,0EAA0E;IAC1E,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,MAAM,EAAE,iBAAiB,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAA;IACtC,iFAAiF;IACjF,MAAM,EAAE,eAAe,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,GAAG,EAAE,2BAA2B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC5E,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACtE,QAAQ,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAA;IACjF;;;;;OAKG;IACH,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAA;IACtE,sFAAsF;IACtF,cAAc,CAAC,CAAC,GAAG,EAAE,gCAAgC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;CACtF"}
1
+ {"version":3,"file":"environment-provider.d.ts","sourceRoot":"","sources":["../../src/ports/environment-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,oBAAoB,CAAA;AAS3B,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;AAEhE,gFAAgF;AAChF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,0EAA0E;IAC1E,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,MAAM,EAAE,iBAAiB,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAA;IACtC,iFAAiF;IACjF,MAAM,EAAE,eAAe,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,GAAG,EAAE,2BAA2B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC5E,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACtE,QAAQ,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAA;IACjF;;;;;OAKG;IACH,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAA;IACtE;;;;;;;;;;;OAWG;IACH,wBAAwB,CAAC,IAAI,mBAAmB,CAAA;IAChD,sFAAsF;IACtF,cAAc,CAAC,CAAC,GAAG,EAAE,gCAAgC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;CACtF"}
@@ -70,5 +70,5 @@ export type { DueSchedule, PipelineScheduleRepository } from './recurring-reposi
70
70
  export type { TrackerSettingsRepository } from './tracker-settings-repositories.js';
71
71
  export type { CreateTicketRequest, CreatedTicket, TicketTrackerProvider } from './ticket-tracker.js';
72
72
  export type { IssueWritebackProvider } from './issue-writeback.js';
73
- export { type NotificationChannel, CompositeNotificationChannel, NoopNotificationChannel, } from './notification-channel.js';
73
+ export { type NotificationChannel, type RaiseNotificationInput, CompositeNotificationChannel, NoopNotificationChannel, } from './notification-channel.js';
74
74
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAqDA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAQpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAQ7D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAA;AAW5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAmB,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAgC,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAiHxF,OAAO,EAAwB,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAuBvF,OAAO,EAAwB,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAsEjF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAA;AAqC9E,OAAO,EAEL,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAqDA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAQpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAQ7D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAA;AAW5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAmB,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAgC,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAiHxF,OAAO,EAAwB,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAuBvF,OAAO,EAAwB,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAsEjF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAA;AAqC9E,OAAO,EAGL,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,2BAA2B,CAAA"}
@@ -1,4 +1,19 @@
1
- import type { Notification } from '../domain/types.js';
1
+ import type { Notification, NotificationPayload, NotificationType } from '../domain/types.js';
2
+ /**
3
+ * The input to raise (or re-raise) a notification. The canonical shape the engine and
4
+ * the gate/resolver extension seams use to surface a human-actionable notification; the
5
+ * NotificationService maps it onto a persisted `Notification` row + a delivery. Lives in
6
+ * kernel (not orchestration) so runtime-neutral extension points — e.g. a custom gate's
7
+ * `onExhausted` via {@link GateContext} — can build one without depending on orchestration.
8
+ */
9
+ export interface RaiseNotificationInput {
10
+ type: NotificationType;
11
+ blockId: string | null;
12
+ executionId: string | null;
13
+ title: string;
14
+ body: string;
15
+ payload?: NotificationPayload | null;
16
+ }
2
17
  export interface NotificationChannel {
3
18
  /** Deliver (or re-deliver, on resolve) a notification to this channel's medium. */
4
19
  deliver(workspaceId: string, notification: Notification): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"notification-channel.d.ts","sourceRoot":"","sources":["../../src/ports/notification-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AActD,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACxE;AAED,0FAA0F;AAC1F,qBAAa,4BAA6B,YAAW,mBAAmB;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAArC,YAA6B,QAAQ,EAAE,mBAAmB,EAAE,EAAI;IAE1D,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5E;CACF;AAED,2FAA2F;AAC3F,qBAAa,uBAAwB,YAAW,mBAAmB;IAC3D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;CAClC"}
1
+ {"version":3,"file":"notification-channel.d.ts","sourceRoot":"","sources":["../../src/ports/notification-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE7F;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;CACrC;AAcD,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACxE;AAED,0FAA0F;AAC1F,qBAAa,4BAA6B,YAAW,mBAAmB;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAArC,YAA6B,QAAQ,EAAE,mBAAmB,EAAE,EAAI;IAE1D,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5E;CACF;AAED,2FAA2F;AAC3F,qBAAa,uBAAwB,YAAW,mBAAmB;IAC3D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;CAClC"}
@@ -1 +1 @@
1
- {"version":3,"file":"notification-channel.js","sourceRoot":"","sources":["../../src/ports/notification-channel.ts"],"names":[],"mappings":"AAmBA,0FAA0F;AAC1F,MAAM,OAAO,4BAA4B;IACV,QAAQ;IAArC,YAA6B,QAA+B;wBAA/B,QAAQ;IAA0B,CAAC;IAEhE,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,YAA0B;QAC3D,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,4EAA4E;YAC9E,CAAC;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;CACF;AAED,2FAA2F;AAC3F,MAAM,OAAO,uBAAuB;IAClC,KAAK,CAAC,OAAO,KAAmB,CAAC;CAClC"}
1
+ {"version":3,"file":"notification-channel.js","sourceRoot":"","sources":["../../src/ports/notification-channel.ts"],"names":[],"mappings":"AAmCA,0FAA0F;AAC1F,MAAM,OAAO,4BAA4B;IACV,QAAQ;IAArC,YAA6B,QAA+B;wBAA/B,QAAQ;IAA0B,CAAC;IAEhE,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,YAA0B;QAC3D,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,4EAA4E;YAC9E,CAAC;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;CACF;AAED,2FAA2F;AAC3F,MAAM,OAAO,uBAAuB;IAClC,KAAK,CAAC,OAAO,KAAmB,CAAC;CAClC"}
@@ -29,6 +29,13 @@ export interface RunnerPoolProvider {
29
29
  release(req: RunnerPollRequest): Promise<void>;
30
30
  /** Declare the config fields this pool provider expects (see EnvironmentProvider). */
31
31
  describeConfig?(manifest?: RunnerPoolManifest): ProviderConfigField[];
32
+ /**
33
+ * The base manifest a native pool adapter is configured through, so the SPA can render
34
+ * the flat `describeConfig` form yet persist a full manifest (mirrors
35
+ * `EnvironmentProvider.describeManifestTemplate`). Absent ⇒ a manifest-authored pool.
36
+ * The shipped generic `HttpRunnerPoolProvider` does not implement it.
37
+ */
38
+ describeManifestTemplate?(): RunnerPoolManifest;
32
39
  /** Probe the connection without persisting. Optional — absent ⇒ "nothing to test". */
33
40
  testConnection?(req: RunnerPoolConnectionTestRequest): Promise<ConnectionTestResult>;
34
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner-pool-provider.d.ts","sourceRoot":"","sources":["../../src/ports/runner-pool-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAS1D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAA;IACb,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,+EAA+E;AAC/E,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,oEAAoE;IACpE,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACpD,kFAAkF;IAClF,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,sFAAsF;IACtF,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,CAAA;IACrE,sFAAsF;IACtF,cAAc,CAAC,CAAC,GAAG,EAAE,+BAA+B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;CACrF"}
1
+ {"version":3,"file":"runner-pool-provider.d.ts","sourceRoot":"","sources":["../../src/ports/runner-pool-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAS1D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAA;IACb,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,+EAA+E;AAC/E,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,oEAAoE;IACpE,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACpD,kFAAkF;IAClF,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,sFAAsF;IACtF,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,CAAA;IACrE;;;;;OAKG;IACH,wBAAwB,CAAC,IAAI,kBAAkB,CAAA;IAC/C,sFAAsF;IACtF,cAAc,CAAC,CAAC,GAAG,EAAE,+BAA+B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;CACrF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/kernel",
3
- "version": "0.22.0",
3
+ "version": "0.24.0",
4
4
  "description": "Shared vocabulary, pure logic, and port interfaces for the Agent Architecture Board.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "ai": "^6.0.209",
28
- "@cat-factory/contracts": "0.22.0"
28
+ "@cat-factory/contracts": "0.23.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "typescript": "7.0.1-rc"