@cat-factory/kernel 0.142.0 → 0.143.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/domain/gate-registry.d.ts +11 -5
- package/dist/domain/gate-registry.d.ts.map +1 -1
- package/dist/domain/gate-registry.js +11 -8
- package/dist/domain/gate-registry.js.map +1 -1
- package/dist/domain/pipeline-registry.d.ts +23 -15
- package/dist/domain/pipeline-registry.d.ts.map +1 -1
- package/dist/domain/pipeline-registry.js +51 -40
- package/dist/domain/pipeline-registry.js.map +1 -1
- package/dist/domain/provider-registry.d.ts +24 -14
- package/dist/domain/provider-registry.d.ts.map +1 -1
- package/dist/domain/provider-registry.js +55 -45
- package/dist/domain/provider-registry.js.map +1 -1
- package/dist/domain/seed.d.ts +8 -4
- package/dist/domain/seed.d.ts.map +1 -1
- package/dist/domain/seed.js +97 -32
- package/dist/domain/seed.js.map +1 -1
- package/dist/domain/vcs-registry.d.ts +33 -18
- package/dist/domain/vcs-registry.d.ts.map +1 -1
- package/dist/domain/vcs-registry.js +49 -37
- package/dist/domain/vcs-registry.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/ports/github-client.d.ts +9 -0
- package/dist/ports/github-client.d.ts.map +1 -1
- package/dist/ports/vcs-client.d.ts +7 -0
- package/dist/ports/vcs-client.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -3,7 +3,7 @@ import type { AgentRunResult } from '../ports/agent-executor.js';
|
|
|
3
3
|
import type { RaiseNotificationInput } from '../ports/notification-channel.js';
|
|
4
4
|
import type { Clock } from '../ports/runtime.js';
|
|
5
5
|
import type { RunInitiatorScope } from '../ports/user-secret-repositories.js';
|
|
6
|
-
import { type ProviderToken } from './provider-registry.js';
|
|
6
|
+
import { type ProviderRegistry, type ProviderToken } from './provider-registry.js';
|
|
7
7
|
/** The outcome of a single gate precheck against its provider. */
|
|
8
8
|
export interface GateProbe {
|
|
9
9
|
/**
|
|
@@ -221,9 +221,14 @@ export interface GateContext {
|
|
|
221
221
|
/**
|
|
222
222
|
* The wired impl for a provider token, or throw. SAFE inside `probe()` — the engine only
|
|
223
223
|
* probes a gate whose `wired()` returned true, and a gate's `wired()` should be
|
|
224
|
-
* `isProviderWired(token)` — so this replaces the old `getFoo()!` assertion with a guard.
|
|
224
|
+
* `ctx.isProviderWired(token)` — so this replaces the old `getFoo()!` assertion with a guard.
|
|
225
225
|
*/
|
|
226
226
|
requireProvider<T>(token: ProviderToken<T>): T;
|
|
227
|
+
/**
|
|
228
|
+
* Whether an impl is wired for a provider token — the canonical source for a gate's `wired()`
|
|
229
|
+
* (reads the app-owned {@link ProviderRegistry} the engine threads in, not a module global).
|
|
230
|
+
*/
|
|
231
|
+
isProviderWired<T>(token: ProviderToken<T>): boolean;
|
|
227
232
|
}
|
|
228
233
|
/**
|
|
229
234
|
* A registered gate is a factory the engine invokes ONCE at registry-build time with a
|
|
@@ -272,8 +277,9 @@ export declare function defaultGateRegistry(): GateRegistry;
|
|
|
272
277
|
/**
|
|
273
278
|
* A minimal {@link GateContext} for tests that invoke a gate factory in isolation (the
|
|
274
279
|
* real one is built by `ExecutionService.makeGateContext`). Defaults to harmless no-ops;
|
|
275
|
-
* pass `
|
|
276
|
-
*
|
|
280
|
+
* pass `providerRegistry` to have the provider seams read a specific registry (a gate test
|
|
281
|
+
* wires its provider on it), and `overrides` to assert against a specific seam. Centralised
|
|
282
|
+
* here so a new required `GateContext` field is filled in ONE place instead of every gate test.
|
|
277
283
|
*/
|
|
278
|
-
export declare function stubGateContext(overrides?: Partial<GateContext
|
|
284
|
+
export declare function stubGateContext(overrides?: Partial<GateContext>, providerRegistry?: ProviderRegistry): GateContext;
|
|
279
285
|
//# sourceMappingURL=gate-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-registry.d.ts","sourceRoot":"","sources":["../../src/domain/gate-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACb,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,
|
|
1
|
+
{"version":3,"file":"gate-registry.d.ts","sourceRoot":"","sources":["../../src/domain/gate-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defaultProviderRegistry, } from './provider-registry.js';
|
|
2
2
|
/**
|
|
3
3
|
* Build the record of a just-finished gate-helper attempt (a ci-fixer / conflict-resolver
|
|
4
4
|
* run) for {@link GateStepState.attemptLog}. It captures BOTH sides of the round so the run
|
|
@@ -69,19 +69,22 @@ export function defaultGateRegistry() {
|
|
|
69
69
|
/**
|
|
70
70
|
* A minimal {@link GateContext} for tests that invoke a gate factory in isolation (the
|
|
71
71
|
* real one is built by `ExecutionService.makeGateContext`). Defaults to harmless no-ops;
|
|
72
|
-
* pass `
|
|
73
|
-
*
|
|
72
|
+
* pass `providerRegistry` to have the provider seams read a specific registry (a gate test
|
|
73
|
+
* wires its provider on it), and `overrides` to assert against a specific seam. Centralised
|
|
74
|
+
* here so a new required `GateContext` field is filled in ONE place instead of every gate test.
|
|
74
75
|
*/
|
|
75
|
-
export function stubGateContext(overrides = {}) {
|
|
76
|
+
export function stubGateContext(overrides = {}, providerRegistry = defaultProviderRegistry()) {
|
|
76
77
|
return {
|
|
77
78
|
clock: { now: () => 0 },
|
|
78
79
|
getBlock: async () => null,
|
|
79
80
|
runInitiatorScope: (_initiatedBy, fn) => fn(),
|
|
80
81
|
raiseNotification: async () => { },
|
|
81
|
-
//
|
|
82
|
-
// it
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
// Read the provider seams off the given registry (a fresh empty one by default), so a gate
|
|
83
|
+
// test that wires a provider on it sees it and `requireProvider` on an unwired token throws
|
|
84
|
+
// exactly as it would in prod.
|
|
85
|
+
getProvider: (token) => providerRegistry.get(token),
|
|
86
|
+
requireProvider: (token) => providerRegistry.require(token),
|
|
87
|
+
isProviderWired: (token) => providerRegistry.isWired(token),
|
|
85
88
|
...overrides,
|
|
86
89
|
};
|
|
87
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-registry.js","sourceRoot":"","sources":["../../src/domain/gate-registry.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"gate-registry.js","sourceRoot":"","sources":["../../src/domain/gate-registry.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,uBAAuB,GAGxB,MAAM,wBAAwB,CAAA;AAuE/B;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAGC,EACD,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,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM;YACjD,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;YACvC,CAAC,CAAC,EAAE,CAAC;QACP,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;AA2JD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,YAAY;IACN,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAA;IAE1D;;;;;OAKG;IACH,QAAQ,CAAC,IAAY,EAAE,OAAoB;QACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,iDAAiD;IACjD,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IACzE,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,YAAY,EAAE,CAAA;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAS,GAAyB,EAAE,EACpC,gBAAgB,GAAqB,uBAAuB,EAAE;IAE9D,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,2FAA2F;QAC3F,4FAA4F;QAC5F,+BAA+B;QAC/B,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;QACnD,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;QAC3D,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;QAC3D,GAAG,SAAS;KACb,CAAA;AACH,CAAC"}
|
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
import type { Pipeline } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* App-owned registry of extra predefined pipelines. The composition root news ONE instance and a
|
|
4
|
+
* deployment registers its pipelines on it by reference; the seeding path merges them into the
|
|
5
|
+
* built-in catalog via {@link merge}.
|
|
6
6
|
*/
|
|
7
|
-
export declare
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
|
|
7
|
+
export declare class PipelineRegistry {
|
|
8
|
+
private readonly extra;
|
|
9
|
+
/**
|
|
10
|
+
* Register an extra predefined pipeline. A registered pipeline whose id matches a built-in (or an
|
|
11
|
+
* earlier registration) replaces it, so a deployment can both add new pipelines and customize the
|
|
12
|
+
* built-in catalog.
|
|
13
|
+
*/
|
|
14
|
+
register(pipeline: Pipeline): void;
|
|
15
|
+
/** Register several extra predefined pipelines at once. */
|
|
16
|
+
registerMany(pipelines: Iterable<Pipeline>): void;
|
|
17
|
+
/** The registered extra pipelines (registration order). */
|
|
18
|
+
registered(): Pipeline[];
|
|
19
|
+
/**
|
|
20
|
+
* Merge the registered pipelines into a built-in list: a registered pipeline replaces a built-in
|
|
21
|
+
* with the same id in place, new ones are appended (registration order).
|
|
22
|
+
*/
|
|
23
|
+
merge(builtins: readonly Pipeline[]): Pipeline[];
|
|
24
|
+
}
|
|
25
|
+
/** A fresh, empty pipeline registry. Each facade news one and a deployment registers its pipelines on it. */
|
|
26
|
+
export declare function defaultPipelineRegistry(): PipelineRegistry;
|
|
19
27
|
//# sourceMappingURL=pipeline-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-registry.d.ts","sourceRoot":"","sources":["../../src/domain/pipeline-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"pipeline-registry.d.ts","sourceRoot":"","sources":["../../src/domain/pipeline-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAa1C;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAIjC;IAED,2DAA2D;IAC3D,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAEhD;IAED,2DAA2D;IAC3D,UAAU,IAAI,QAAQ,EAAE,CAEvB;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAQ/C;CACF;AAED,6GAA6G;AAC7G,wBAAgB,uBAAuB,IAAI,gBAAgB,CAE1D"}
|
|
@@ -1,48 +1,59 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
|
|
1
|
+
// App-owned registry of extra predefined pipelines, mirroring the agent-kind / gate registries.
|
|
2
|
+
// A deployment — e.g. a proprietary org package — registers extra pipelines on the instance the
|
|
3
|
+
// composition root injects (`registry.register(pipeline)`); `seedPipelines(registry)` then merges
|
|
4
|
+
// them into the built-in catalog, so every new workspace is seeded with them. Registered pipelines
|
|
5
|
+
// can reference both built-in and custom (registered) agent kinds.
|
|
6
|
+
//
|
|
7
|
+
// This replaces the previous module-global array: the composition root news ONE instance
|
|
8
|
+
// (`defaultPipelineRegistry()`), threads it through `CoreDependencies`, and the workspace + pipeline
|
|
9
|
+
// services read it from there — so there is no module-global state, no `clear*()` test cruft, and a
|
|
10
|
+
// separately-published extension package can never register into a phantom array.
|
|
8
11
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
+
* App-owned registry of extra predefined pipelines. The composition root news ONE instance and a
|
|
13
|
+
* deployment registers its pipelines on it by reference; the seeding path merges them into the
|
|
14
|
+
* built-in catalog via {@link merge}.
|
|
12
15
|
*/
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
for (const pipeline of pipelines)
|
|
23
|
-
registerPipeline(pipeline);
|
|
24
|
-
}
|
|
25
|
-
/** The registered extra pipelines (registration order). */
|
|
26
|
-
export function registeredPipelines() {
|
|
27
|
-
return [...extra];
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Merge the registered pipelines into a built-in list: a registered pipeline replaces a
|
|
31
|
-
* built-in with the same id in place, new ones are appended (registration order).
|
|
32
|
-
*/
|
|
33
|
-
export function mergeRegisteredPipelines(builtins) {
|
|
34
|
-
const merged = [...builtins];
|
|
35
|
-
for (const pipeline of extra) {
|
|
36
|
-
const at = merged.findIndex((p) => p.id === pipeline.id);
|
|
16
|
+
export class PipelineRegistry {
|
|
17
|
+
extra = [];
|
|
18
|
+
/**
|
|
19
|
+
* Register an extra predefined pipeline. A registered pipeline whose id matches a built-in (or an
|
|
20
|
+
* earlier registration) replaces it, so a deployment can both add new pipelines and customize the
|
|
21
|
+
* built-in catalog.
|
|
22
|
+
*/
|
|
23
|
+
register(pipeline) {
|
|
24
|
+
const at = this.extra.findIndex((p) => p.id === pipeline.id);
|
|
37
25
|
if (at >= 0)
|
|
38
|
-
|
|
26
|
+
this.extra[at] = pipeline;
|
|
39
27
|
else
|
|
40
|
-
|
|
28
|
+
this.extra.push(pipeline);
|
|
29
|
+
}
|
|
30
|
+
/** Register several extra predefined pipelines at once. */
|
|
31
|
+
registerMany(pipelines) {
|
|
32
|
+
for (const pipeline of pipelines)
|
|
33
|
+
this.register(pipeline);
|
|
34
|
+
}
|
|
35
|
+
/** The registered extra pipelines (registration order). */
|
|
36
|
+
registered() {
|
|
37
|
+
return [...this.extra];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Merge the registered pipelines into a built-in list: a registered pipeline replaces a built-in
|
|
41
|
+
* with the same id in place, new ones are appended (registration order).
|
|
42
|
+
*/
|
|
43
|
+
merge(builtins) {
|
|
44
|
+
const merged = [...builtins];
|
|
45
|
+
for (const pipeline of this.extra) {
|
|
46
|
+
const at = merged.findIndex((p) => p.id === pipeline.id);
|
|
47
|
+
if (at >= 0)
|
|
48
|
+
merged[at] = pipeline;
|
|
49
|
+
else
|
|
50
|
+
merged.push(pipeline);
|
|
51
|
+
}
|
|
52
|
+
return merged;
|
|
41
53
|
}
|
|
42
|
-
return merged;
|
|
43
54
|
}
|
|
44
|
-
/**
|
|
45
|
-
export function
|
|
46
|
-
|
|
55
|
+
/** A fresh, empty pipeline registry. Each facade news one and a deployment registers its pipelines on it. */
|
|
56
|
+
export function defaultPipelineRegistry() {
|
|
57
|
+
return new PipelineRegistry();
|
|
47
58
|
}
|
|
48
59
|
//# sourceMappingURL=pipeline-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-registry.js","sourceRoot":"","sources":["../../src/domain/pipeline-registry.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"pipeline-registry.js","sourceRoot":"","sources":["../../src/domain/pipeline-registry.ts"],"names":[],"mappings":"AAEA,gGAAgG;AAChG,gGAAgG;AAChG,kGAAkG;AAClG,mGAAmG;AACnG,mEAAmE;AACnE,EAAE;AACF,yFAAyF;AACzF,qGAAqG;AACrG,oGAAoG;AACpG,kFAAkF;AAElF;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IACV,KAAK,GAAe,EAAE,CAAA;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,QAAkB;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC5D,IAAI,EAAE,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAA;;YACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC;IAED,2DAA2D;IAC3D,YAAY,CAAC,SAA6B;QACxC,KAAK,MAAM,QAAQ,IAAI,SAAS;YAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC3D,CAAC;IAED,2DAA2D;IAC3D,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAA6B;QACjC,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;QAC5B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAA;YACxD,IAAI,EAAE,IAAI,CAAC;gBAAE,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAA;;gBAC7B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5B,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,6GAA6G;AAC7G,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,gBAAgB,EAAE,CAAA;AAC/B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A typed handle for a wired provider. The phantom `T` carries the provider's interface so
|
|
3
|
-
* `
|
|
4
|
-
*
|
|
3
|
+
* `wire`/`get`/`require` are type-checked against the token. Create one with
|
|
4
|
+
* {@link defineProviderToken} and export it next to the provider interface.
|
|
5
5
|
*/
|
|
6
6
|
export interface ProviderToken<T> {
|
|
7
7
|
/** Unique identity for the registry map (one per `defineProviderToken` call). */
|
|
@@ -16,18 +16,28 @@ export interface ProviderToken<T> {
|
|
|
16
16
|
* `export const LICENSE_PROVIDER = defineProviderToken<LicenseProvider>('license')`.
|
|
17
17
|
*/
|
|
18
18
|
export declare function defineProviderToken<T>(description: string): ProviderToken<T>;
|
|
19
|
-
/** Wire (or clear, with `undefined`) the impl for a token. */
|
|
20
|
-
export declare function wireProvider<T>(token: ProviderToken<T>, impl: T | undefined): void;
|
|
21
|
-
/** The wired impl for a token, or `undefined` when nothing is wired. */
|
|
22
|
-
export declare function getProvider<T>(token: ProviderToken<T>): T | undefined;
|
|
23
|
-
/** Whether an impl is wired for a token (the canonical source for a gate's `wired()`). */
|
|
24
|
-
export declare function isProviderWired<T>(token: ProviderToken<T>): boolean;
|
|
25
19
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
20
|
+
* App-owned registry of wired providers, keyed by a {@link ProviderToken}'s symbol. Mirrors the
|
|
21
|
+
* gate / agent-kind registries: the composition root news ONE instance, threads it through
|
|
22
|
+
* `CoreDependencies` into the gate machine's {@link GateContext}, and each facade wires its
|
|
23
|
+
* configured providers here at build time. There is no module-global `Map` and no `clear*()`
|
|
24
|
+
* cruft — a fresh instance per build starts empty.
|
|
29
25
|
*/
|
|
30
|
-
export declare
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
export declare class ProviderRegistry {
|
|
27
|
+
private readonly providers;
|
|
28
|
+
/** Wire (or clear, with `undefined`) the impl for a token. */
|
|
29
|
+
wire<T>(token: ProviderToken<T>, impl: T | undefined): void;
|
|
30
|
+
/** The wired impl for a token, or `undefined` when nothing is wired. */
|
|
31
|
+
get<T>(token: ProviderToken<T>): T | undefined;
|
|
32
|
+
/** Whether an impl is wired for a token (the canonical source for a gate's `wired()`). */
|
|
33
|
+
isWired<T>(token: ProviderToken<T>): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* The wired impl for a token, or throw when nothing is wired. SAFE inside a gate's `probe()` —
|
|
36
|
+
* the engine only probes a gate whose `wired()` (i.e. {@link isWired}) returned true — so it
|
|
37
|
+
* replaces the old `getFoo()!` assertion with a real guard.
|
|
38
|
+
*/
|
|
39
|
+
require<T>(token: ProviderToken<T>): T;
|
|
40
|
+
}
|
|
41
|
+
/** A fresh, empty provider registry. Each facade news one and wires its configured providers on it. */
|
|
42
|
+
export declare function defaultProviderRegistry(): ProviderRegistry;
|
|
33
43
|
//# sourceMappingURL=provider-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-registry.d.ts","sourceRoot":"","sources":["../../src/domain/provider-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider-registry.d.ts","sourceRoot":"","sources":["../../src/domain/provider-registry.ts"],"names":[],"mappings":"AAyBA;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;CACpB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAE5E;AAED;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IAEvD,8DAA8D;IAC9D,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,CAG1D;IAED,wEAAwE;IACxE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAE7C;IAED,0FAA0F;IAC1F,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAE3C;IAED;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAMrC;CACF;AAED,uGAAuG;AACvG,wBAAgB,uBAAuB,IAAI,gBAAgB,CAE1D"}
|
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
// ---------------------------------------------------------------------------
|
|
2
|
-
// A typed,
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
2
|
+
// A typed, app-owned registry of wired "providers" — the deployment-supplied data sources a
|
|
3
|
+
// gate (or any extension) probes. It replaces the per-provider module-global `let provider;
|
|
4
|
+
// wireFoo(); getFoo()` trio that every gate package used to hand-author, and the unsafe
|
|
5
|
+
// `getFoo()!` non-null assertion that followed a `wired()` check.
|
|
6
6
|
//
|
|
7
|
-
// A provider is identified by a {@link ProviderToken} — an opaque, phantom-typed handle
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
// (`ctx.getProvider` / `ctx.requireProvider`
|
|
7
|
+
// A provider is identified by a {@link ProviderToken} — an opaque, phantom-typed handle the
|
|
8
|
+
// registrant defines once and exports. The deployment wires an impl against the token at
|
|
9
|
+
// startup on the registry INSTANCE the facade owns ({@link ProviderRegistry.wire}); the gate
|
|
10
|
+
// reads it back through its {@link GateContext} (`ctx.getProvider` / `ctx.requireProvider` /
|
|
11
|
+
// `ctx.isProviderWired`), so it no longer closes over a module global.
|
|
11
12
|
//
|
|
12
|
-
// `
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
//
|
|
13
|
+
// `require` throws when the token is unwired — which is SAFE inside a gate's `probe()` because
|
|
14
|
+
// the engine only ever probes a gate whose `wired()` returned true, and a gate's `wired()` is
|
|
15
|
+
// `ctx.isProviderWired(token)`. So the "checked wired, then asserted with `!`" race the old
|
|
16
|
+
// pattern had is gone: the same token drives both.
|
|
16
17
|
//
|
|
17
|
-
// This lives in kernel (alongside the gate
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
18
|
+
// This lives in kernel (alongside the gate registry) so both the kernel `GateContext` and the
|
|
19
|
+
// `@cat-factory/gates` package can reference it. The composition root news ONE instance
|
|
20
|
+
// (`defaultProviderRegistry()`), threads it through `CoreDependencies`, and each facade wires
|
|
21
|
+
// its configured providers on that instance — so, unlike the former module global, a fresh
|
|
22
|
+
// instance per container build starts empty (no leak of a previous build's wiring) and a
|
|
23
|
+
// separately-published extension package can never register into a phantom `Map`.
|
|
21
24
|
// ---------------------------------------------------------------------------
|
|
22
25
|
/**
|
|
23
26
|
* Define a new provider token. Call once at module scope and export the result, e.g.
|
|
@@ -26,38 +29,45 @@
|
|
|
26
29
|
export function defineProviderToken(description) {
|
|
27
30
|
return { key: Symbol(description), description };
|
|
28
31
|
}
|
|
29
|
-
// Process-wide map, keyed by the token's symbol. Mirrors the gate / agent-kind / pipeline
|
|
30
|
-
// registry model: wiring is a startup side effect, read at gate-probe time.
|
|
31
|
-
const providers = new Map();
|
|
32
|
-
/** Wire (or clear, with `undefined`) the impl for a token. */
|
|
33
|
-
export function wireProvider(token, impl) {
|
|
34
|
-
if (impl === undefined)
|
|
35
|
-
providers.delete(token.key);
|
|
36
|
-
else
|
|
37
|
-
providers.set(token.key, impl);
|
|
38
|
-
}
|
|
39
|
-
/** The wired impl for a token, or `undefined` when nothing is wired. */
|
|
40
|
-
export function getProvider(token) {
|
|
41
|
-
return providers.get(token.key);
|
|
42
|
-
}
|
|
43
|
-
/** Whether an impl is wired for a token (the canonical source for a gate's `wired()`). */
|
|
44
|
-
export function isProviderWired(token) {
|
|
45
|
-
return providers.has(token.key);
|
|
46
|
-
}
|
|
47
32
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
33
|
+
* App-owned registry of wired providers, keyed by a {@link ProviderToken}'s symbol. Mirrors the
|
|
34
|
+
* gate / agent-kind registries: the composition root news ONE instance, threads it through
|
|
35
|
+
* `CoreDependencies` into the gate machine's {@link GateContext}, and each facade wires its
|
|
36
|
+
* configured providers here at build time. There is no module-global `Map` and no `clear*()`
|
|
37
|
+
* cruft — a fresh instance per build starts empty.
|
|
51
38
|
*/
|
|
52
|
-
export
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
39
|
+
export class ProviderRegistry {
|
|
40
|
+
providers = new Map();
|
|
41
|
+
/** Wire (or clear, with `undefined`) the impl for a token. */
|
|
42
|
+
wire(token, impl) {
|
|
43
|
+
if (impl === undefined)
|
|
44
|
+
this.providers.delete(token.key);
|
|
45
|
+
else
|
|
46
|
+
this.providers.set(token.key, impl);
|
|
47
|
+
}
|
|
48
|
+
/** The wired impl for a token, or `undefined` when nothing is wired. */
|
|
49
|
+
get(token) {
|
|
50
|
+
return this.providers.get(token.key);
|
|
51
|
+
}
|
|
52
|
+
/** Whether an impl is wired for a token (the canonical source for a gate's `wired()`). */
|
|
53
|
+
isWired(token) {
|
|
54
|
+
return this.providers.has(token.key);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The wired impl for a token, or throw when nothing is wired. SAFE inside a gate's `probe()` —
|
|
58
|
+
* the engine only probes a gate whose `wired()` (i.e. {@link isWired}) returned true — so it
|
|
59
|
+
* replaces the old `getFoo()!` assertion with a real guard.
|
|
60
|
+
*/
|
|
61
|
+
require(token) {
|
|
62
|
+
const impl = this.providers.get(token.key);
|
|
63
|
+
if (impl === undefined) {
|
|
64
|
+
throw new Error(`Provider "${token.description}" is not wired.`);
|
|
65
|
+
}
|
|
66
|
+
return impl;
|
|
56
67
|
}
|
|
57
|
-
return impl;
|
|
58
68
|
}
|
|
59
|
-
/**
|
|
60
|
-
export function
|
|
61
|
-
|
|
69
|
+
/** A fresh, empty provider registry. Each facade news one and wires its configured providers on it. */
|
|
70
|
+
export function defaultProviderRegistry() {
|
|
71
|
+
return new ProviderRegistry();
|
|
62
72
|
}
|
|
63
73
|
//# sourceMappingURL=provider-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/domain/provider-registry.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/domain/provider-registry.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4FAA4F;AAC5F,4FAA4F;AAC5F,wFAAwF;AACxF,kEAAkE;AAClE,EAAE;AACF,4FAA4F;AAC5F,yFAAyF;AACzF,6FAA6F;AAC7F,6FAA6F;AAC7F,uEAAuE;AACvE,EAAE;AACF,+FAA+F;AAC/F,8FAA8F;AAC9F,4FAA4F;AAC5F,mDAAmD;AACnD,EAAE;AACF,8FAA8F;AAC9F,wFAAwF;AACxF,8FAA8F;AAC9F,2FAA2F;AAC3F,yFAAyF;AACzF,kFAAkF;AAClF,8EAA8E;AAgB9E;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAI,WAAmB;IACxD,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAA;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IACV,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAA;IAEvD,8DAA8D;IAC9D,IAAI,CAAI,KAAuB,EAAE,IAAmB;QAClD,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;;YACnD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;IAED,wEAAwE;IACxE,GAAG,CAAI,KAAuB;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAA;IACvD,CAAC;IAED,0FAA0F;IAC1F,OAAO,CAAI,KAAuB;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAI,KAAuB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC1C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,WAAW,iBAAiB,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,IAAS,CAAA;IAClB,CAAC;CACF;AAED,uGAAuG;AACvG,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,gBAAgB,EAAE,CAAA;AAC/B,CAAC"}
|
package/dist/domain/seed.d.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
|
+
import type { PipelineRegistry } from './pipeline-registry.js';
|
|
1
2
|
import type { Block, Pipeline } from './types.js';
|
|
2
3
|
export declare function seedBlocks(): Block[];
|
|
3
4
|
/**
|
|
4
|
-
* Reusable pipelines shown in the pipeline palette on first load: the built-in catalog
|
|
5
|
-
*
|
|
6
|
-
* org package), merged by id.
|
|
5
|
+
* Reusable pipelines shown in the pipeline palette on first load: the built-in catalog plus any
|
|
6
|
+
* pipelines a deployment registered on the app-owned {@link PipelineRegistry} (e.g. a proprietary
|
|
7
|
+
* org package), merged by id. Omit `registry` (or pass a fresh one) for the built-in catalog only —
|
|
8
|
+
* the shape a caller that only resolves a BUILT-IN pipeline's id needs (e.g. plan-helpers, the
|
|
9
|
+
* cross-runtime conformance baseline). The workspace + pipeline services thread the app-owned
|
|
10
|
+
* instance so a deployment's custom pipelines are seeded into every new workspace.
|
|
7
11
|
*/
|
|
8
|
-
export declare function seedPipelines(): Pipeline[];
|
|
12
|
+
export declare function seedPipelines(registry?: PipelineRegistry): Pipeline[];
|
|
9
13
|
/** Pipeline id of the blueprint-only run kicked off after a successful bootstrap. */
|
|
10
14
|
export declare const BLUEPRINT_PIPELINE_ID = "pl_blueprint";
|
|
11
15
|
/** Pipeline id of the Initiative Planning pipeline (initiative blocks only). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/domain/seed.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/domain/seed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAOjD,wBAAgB,UAAU,IAAI,KAAK,EAAE,CAgHpC;AA8CD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,QAAQ,EAAE,CAyoBrE;AAED,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,iBAAiB,CAAA;AAEnD,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,kBAAkB,CAAA;AAErD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,uBAAuB,CAAA;AAE/D;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,qBAAqB,CAAA;AAC3D,eAAO,MAAM,yBAAyB,qBAAqB,CAAA;AAE3D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,gBAAgB,CAAA;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAO3C;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,sBAAsB,CAAA;AAE7D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,cAAc,CAAA;AAE7C,2GAA2G;AAC3G,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAE3C;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,SAAS,CAM5F;AAED,+DAA+D;AAC/D,eAAO,MAAM,sBAAsB,kBAAkB,CAAA;AACrD,eAAO,MAAM,qBAAqB,iBAAiB,CAAA;AACnD,kHAAkH;AAClH,eAAO,MAAM,sBAAsB,kBAAkB,CAAA"}
|