@cat-factory/orchestration 0.124.0 → 0.124.2

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,55 @@
1
+ import type { OptionalCoreModules } from '../container.js';
2
+ /** The keys of every optional module a {@link ModuleRegistry} can assemble. */
3
+ export type OptionalModuleKey = keyof OptionalCoreModules;
4
+ /**
5
+ * A tiny, typed assembly registry for the domain composition root's OPTIONAL modules —
6
+ * the ~40 features (GitHub, documents, tasks, environments, requirements, notifications,
7
+ * sandbox, …) that are wired only when their prerequisites are configured.
8
+ *
9
+ * It replaces two footguns that grew with every added module in `createCore`:
10
+ * 1. the ~40 `const x = createX(...)` locals scattered through one 500-line function, and
11
+ * 2. the ~40 hand-written `...(x ? { x } : {})` conditional spreads in the return object.
12
+ *
13
+ * Instead each module is DECLARED once through {@link build} (key + factory), instantiated
14
+ * ONLY when its factory yields a value (prerequisites configured). The whole set is emitted in
15
+ * ONE place via {@link assemble} — so adding a module is a single `build(...)` call plus its
16
+ * `OptionalCoreModules` field, not a four-site edit. Registration order IS dependency order:
17
+ * `build` RETURNS the freshly-built value, so a module consumed downstream is kept in a local
18
+ * and passed into the later factories that need it (exactly where the old
19
+ * `const x = createX(...)` local sat). {@link get} additionally exposes any already-built module
20
+ * by key for a reader that holds no local. Either way a factory only ever reaches modules built
21
+ * before it, so ordering is explicit and local rather than positional across a giant function.
22
+ *
23
+ * The registry is deliberately a plain sequential builder, NOT a topological resolver: the
24
+ * composition root has genuine circular late-bindings in its core spine (account ⇄ spend,
25
+ * engine ⇄ initiative loop) that a declarative graph can't express cleanly, so the spine
26
+ * stays explicit and only the acyclic optional modules flow through here.
27
+ */
28
+ export declare class ModuleRegistry {
29
+ private readonly built;
30
+ /**
31
+ * Declare an optional module: run its `factory`, store the result under `key` when it is
32
+ * defined (its prerequisites were configured), and return it so a downstream factory can keep
33
+ * it in a local and thread it in. A factory returning `undefined` is a clean no-op — the key is
34
+ * simply absent from the assembled set, exactly like the old conditional spread.
35
+ *
36
+ * Presence is keyed on `!== undefined`, NOT truthiness: every module factory returns an object
37
+ * or `undefined`, so this matches the removed `...(x ? { x } : {})` spread. A factory that
38
+ * yielded a defined-but-falsy value (`null` / `0` / `''`) would be KEPT here where the old
39
+ * spread dropped it — none does, so return `undefined` (never `null`) to mean "absent".
40
+ */
41
+ build<K extends OptionalModuleKey>(key: K, factory: () => OptionalCoreModules[K] | undefined): OptionalCoreModules[K] | undefined;
42
+ /** Read a previously-built optional module (undefined when unwired), for inter-module wiring. */
43
+ get<K extends OptionalModuleKey>(key: K): OptionalCoreModules[K] | undefined;
44
+ /**
45
+ * The assembled optional modules, with unwired keys absent — spread into the `Core` return
46
+ * alongside the always-present spine. This is the SINGLE site the optional set is emitted from.
47
+ *
48
+ * Returning the `Partial<OptionalCoreModules>` backing store AS `OptionalCoreModules` is sound
49
+ * ONLY because every field of `OptionalCoreModules` is optional, so the two types coincide.
50
+ * Keep it that way: a NON-optional field would make this a lie — the return type would promise
51
+ * a key the registry can legitimately omit. A new always-present service belongs on `CoreSpine`.
52
+ */
53
+ assemble(): OptionalCoreModules;
54
+ }
55
+ //# sourceMappingURL=module-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../src/container/module-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAE1D,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GAAG,MAAM,mBAAmB,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;IAEzD;;;;;;;;;;OAUG;IACH,KAAK,CAAC,CAAC,SAAS,iBAAiB,EAC/B,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,MAAM,mBAAmB,CAAC,CAAC,CAAC,GAAG,SAAS,GAChD,mBAAmB,CAAC,CAAC,CAAC,GAAG,SAAS,CAIpC;IAED,iGAAiG;IACjG,GAAG,CAAC,CAAC,SAAS,iBAAiB,EAAE,GAAG,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,SAAS,CAE3E;IAED;;;;;;;;OAQG;IACH,QAAQ,IAAI,mBAAmB,CAE9B;CACF"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * A tiny, typed assembly registry for the domain composition root's OPTIONAL modules —
3
+ * the ~40 features (GitHub, documents, tasks, environments, requirements, notifications,
4
+ * sandbox, …) that are wired only when their prerequisites are configured.
5
+ *
6
+ * It replaces two footguns that grew with every added module in `createCore`:
7
+ * 1. the ~40 `const x = createX(...)` locals scattered through one 500-line function, and
8
+ * 2. the ~40 hand-written `...(x ? { x } : {})` conditional spreads in the return object.
9
+ *
10
+ * Instead each module is DECLARED once through {@link build} (key + factory), instantiated
11
+ * ONLY when its factory yields a value (prerequisites configured). The whole set is emitted in
12
+ * ONE place via {@link assemble} — so adding a module is a single `build(...)` call plus its
13
+ * `OptionalCoreModules` field, not a four-site edit. Registration order IS dependency order:
14
+ * `build` RETURNS the freshly-built value, so a module consumed downstream is kept in a local
15
+ * and passed into the later factories that need it (exactly where the old
16
+ * `const x = createX(...)` local sat). {@link get} additionally exposes any already-built module
17
+ * by key for a reader that holds no local. Either way a factory only ever reaches modules built
18
+ * before it, so ordering is explicit and local rather than positional across a giant function.
19
+ *
20
+ * The registry is deliberately a plain sequential builder, NOT a topological resolver: the
21
+ * composition root has genuine circular late-bindings in its core spine (account ⇄ spend,
22
+ * engine ⇄ initiative loop) that a declarative graph can't express cleanly, so the spine
23
+ * stays explicit and only the acyclic optional modules flow through here.
24
+ */
25
+ export class ModuleRegistry {
26
+ built = {};
27
+ /**
28
+ * Declare an optional module: run its `factory`, store the result under `key` when it is
29
+ * defined (its prerequisites were configured), and return it so a downstream factory can keep
30
+ * it in a local and thread it in. A factory returning `undefined` is a clean no-op — the key is
31
+ * simply absent from the assembled set, exactly like the old conditional spread.
32
+ *
33
+ * Presence is keyed on `!== undefined`, NOT truthiness: every module factory returns an object
34
+ * or `undefined`, so this matches the removed `...(x ? { x } : {})` spread. A factory that
35
+ * yielded a defined-but-falsy value (`null` / `0` / `''`) would be KEPT here where the old
36
+ * spread dropped it — none does, so return `undefined` (never `null`) to mean "absent".
37
+ */
38
+ build(key, factory) {
39
+ const value = factory();
40
+ if (value !== undefined)
41
+ this.built[key] = value;
42
+ return value;
43
+ }
44
+ /** Read a previously-built optional module (undefined when unwired), for inter-module wiring. */
45
+ get(key) {
46
+ return this.built[key];
47
+ }
48
+ /**
49
+ * The assembled optional modules, with unwired keys absent — spread into the `Core` return
50
+ * alongside the always-present spine. This is the SINGLE site the optional set is emitted from.
51
+ *
52
+ * Returning the `Partial<OptionalCoreModules>` backing store AS `OptionalCoreModules` is sound
53
+ * ONLY because every field of `OptionalCoreModules` is optional, so the two types coincide.
54
+ * Keep it that way: a NON-optional field would make this a lie — the return type would promise
55
+ * a key the registry can legitimately omit. A new always-present service belongs on `CoreSpine`.
56
+ */
57
+ assemble() {
58
+ return this.built;
59
+ }
60
+ }
61
+ //# sourceMappingURL=module-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-registry.js","sourceRoot":"","sources":["../../src/container/module-registry.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,cAAc;IACR,KAAK,GAAiC,EAAE,CAAA;IAEzD;;;;;;;;;;OAUG;IACH,KAAK,CACH,GAAM,EACN,OAAiD;QAEjD,MAAM,KAAK,GAAG,OAAO,EAAE,CAAA;QACvB,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QAChD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,iGAAiG;IACjG,GAAG,CAA8B,GAAM;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF"}
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Optional-module FACTORY functions for the domain composition root.
3
+ *
4
+ * Extracted verbatim from `container.ts` (no behaviour change): each `createXModule` assembles
5
+ * one optional feature's services when its prerequisites (repositories / cipher / provider) are
6
+ * configured, else returns `undefined`. `createCore` declares each through the
7
+ * {@link ModuleRegistry} and reads them back for the engine wiring. Kept in their own file so the
8
+ * composition root (`container.ts`) holds the `CoreDependencies`/`Core` contract + the spine
9
+ * assembly, and the ~30 leaf factories live next to each other here.
10
+ *
11
+ * The module INTERFACES and the `CoreDependencies`/`Core` types stay in `container.ts` (imported
12
+ * back here type-only), so the value dependency is one-way `container.ts` → this file.
13
+ */
14
+ import type { AppCaches, Block, ExecutionEventPublisher } from '@cat-factory/kernel';
15
+ import { type AgentKindRegistry } from '@cat-factory/agents';
16
+ import { PreflightService, ProvisioningLogRecorder, SharedStackService, TaskConnectionService } from '@cat-factory/integrations';
17
+ import { BoardService } from '../modules/board/BoardService.js';
18
+ import { ExecutionService } from '../modules/execution/ExecutionService.js';
19
+ import { DocInterviewService } from '../modules/docInterview/DocInterviewService.js';
20
+ import { ForkChatService } from '../modules/execution/ForkChatService.js';
21
+ import { TesterQualityReviewService } from '../modules/execution/TesterQualityReviewService.js';
22
+ import { NotificationService } from '../modules/notifications/NotificationService.js';
23
+ import type { BootstrapModule, BrainstormModule, ClarityModule, CoreDependencies, DocumentsModule, EnvironmentsModule, FragmentLibraryModule, GitHubModule, IncidentEnrichmentModule, KaizenModule, ModelPresetsModule, NotificationsModule, PackageRegistriesModule, PreflightsModule, PreviewModule, RecurringModule, ReleaseHealthModule, RequirementsModule, RiskPoliciesModule, RunnersModule, SandboxModule, ServiceFragmentDefaultsModule, ServicesModule, SharedStacksModule, SlackModule, TasksModule, TrackerModule, WorkspaceSettingsModule } from '../container.js';
24
+ export declare function createServicesModule(deps: CoreDependencies): ServicesModule | undefined;
25
+ /**
26
+ * Assemble the GitHub module when every dependency it needs is present;
27
+ * otherwise return undefined so the feature stays cleanly opt-in.
28
+ */
29
+ export declare function createGitHubModule(deps: CoreDependencies, caches: AppCaches): GitHubModule | undefined;
30
+ /**
31
+ * Assemble the document-source module when at least one provider + both
32
+ * repositories are present. The model provider is optional: with it the planner
33
+ * uses an LLM, and without it the deterministic heading parser — so the module
34
+ * stays usable for import/link/spawn even when no LLM is configured.
35
+ */
36
+ export declare function createDocumentsModule(deps: CoreDependencies, boardService: BoardService): DocumentsModule | undefined;
37
+ /**
38
+ * Assemble the task-source module when at least one provider + both repositories
39
+ * are present; otherwise return undefined so the feature stays cleanly opt-in.
40
+ * Unlike the documents module there is no planner — issues are linked for
41
+ * context, not expanded into board structure.
42
+ */
43
+ export declare function createTasksModule(deps: CoreDependencies, boardService: BoardService): TasksModule | undefined;
44
+ /**
45
+ * Assemble the environment integration when its provider, both repositories and
46
+ * the secret cipher are present; otherwise return undefined so the feature stays
47
+ * cleanly opt-in (the deterministic deployer and env discovery in the engine are
48
+ * gated on the provisioning service being wired).
49
+ */
50
+ export declare function createEnvironmentsModule(deps: CoreDependencies, provisioningLog: ProvisioningLogRecorder | undefined, eventPublisher: ExecutionEventPublisher | undefined, sharedStackService: SharedStackService | undefined, preflightService: PreflightService | undefined): EnvironmentsModule | undefined;
51
+ /**
52
+ * Assemble the self-hosted runner-pool module when its connection repository and
53
+ * the secret cipher are present; otherwise return undefined so the feature stays
54
+ * cleanly opt-in. Per-tenant scheduler-API secrets are encrypted via the cipher.
55
+ */
56
+ export declare function createRunnersModule(deps: CoreDependencies): RunnersModule | undefined;
57
+ /**
58
+ * Assemble the repo-bootstrap module when both its repositories are present (the
59
+ * worker wires them unconditionally). The `repoBootstrapper` is passed through
60
+ * but optional: the service exposes CRUD regardless and only gates the run path
61
+ * on its presence.
62
+ */
63
+ export declare function createBootstrapModule(deps: CoreDependencies, eventPublisher: ExecutionEventPublisher, onBootstrapSucceeded?: (workspaceId: string, blockId: string) => Promise<void>): BootstrapModule | undefined;
64
+ /**
65
+ * Assemble the requirements-review module when its repository is present (the
66
+ * worker wires it unconditionally). The model provider/ref are optional within
67
+ * the module — reads work without them and the run paths surface a clear error —
68
+ * and the document/task repositories are reused, when wired, to fold linked PRDs
69
+ * and tracker issues into the reviewed requirements.
70
+ */
71
+ /**
72
+ * Build the inline reviewer for the test quality-control companion. It resolves its model
73
+ * exactly like the requirements reviewer (block pin → workspace per-kind default → routing
74
+ * default). Returns `undefined` when no model provider is configured, so the Tester gate's QC
75
+ * step is a pass-through in unconfigured facades / tests.
76
+ */
77
+ export declare function createTesterQualityReviewer(deps: CoreDependencies): TesterQualityReviewService | undefined;
78
+ /**
79
+ * Build the interactive document-interview service (WS5). Self-contained (owns its session
80
+ * store + the inline LLM); resolves its model exactly like the requirements reviewer (block
81
+ * pin → workspace per-kind default → routing default). Returns `undefined` when no session
82
+ * store is wired, so the `doc-interviewer` step passes through in unconfigured facades / tests.
83
+ * The LLM is optional within the service (the `enabled` getter is false without a model), so a
84
+ * store-but-no-model deployment still short-circuits the interviewer.
85
+ */
86
+ export declare function createDocInterviewService(deps: CoreDependencies): DocInterviewService | undefined;
87
+ /**
88
+ * Build the inline grounded-chat responder for the implementation-fork decision phase. Resolves
89
+ * its model exactly like the requirements reviewer / doc interviewer (block pin → workspace
90
+ * per-kind default → routing default). Returns `undefined` when no model provider is configured,
91
+ * so the fork chat degrades to a canned "chat unavailable" reply in unconfigured facades / tests
92
+ * while pick / custom keep working. Stateless — the chat rides the coder step, no session store.
93
+ */
94
+ export declare function createForkChatService(deps: CoreDependencies): ForkChatService | undefined;
95
+ /**
96
+ * Resolve a block's active run (execution id + initiator) for the iterative reviewers, so an
97
+ * inline subscription reviewer served through a leased per-run activation can lease it. Reads
98
+ * the block's `executionId` and the run's `initiatedBy`; `{}` when the block has no active run
99
+ * (an off-path inspector review with no pipeline) — the reviewer then resolves on a
100
+ * workspace-only scope (pooled lease), unchanged.
101
+ */
102
+ export declare function resolveBlockRunContext(deps: CoreDependencies): (workspaceId: string, block: Block) => Promise<{
103
+ executionId?: string;
104
+ userId?: string;
105
+ }>;
106
+ export declare function createRequirementsModule(deps: CoreDependencies, notificationService?: NotificationService, fragmentLibrary?: FragmentLibraryModule): RequirementsModule | undefined;
107
+ /**
108
+ * Assemble the brainstorm (structured-dialogue) module when its repository is present (both
109
+ * runtime facades wire it unconditionally). Mirrors {@link createClarityModule}: it builds ONE
110
+ * {@link BrainstormService} per stage (sharing the repository) and reuses the requirements
111
+ * reviewer's model config since all the inline reviewers resolve their model identically. The
112
+ * architecture stage seeds from the refined requirements (a requirements review's incorporated
113
+ * doc, else the requirements-brainstorm's converged direction).
114
+ */
115
+ export declare function createBrainstormModule(deps: CoreDependencies, notificationService?: NotificationService): BrainstormModule | undefined;
116
+ /**
117
+ * Assemble the Kaizen module when its repositories are wired (both runtime facades wire them
118
+ * unconditionally). The grader resolves its model for the `kaizen` kind the same way the
119
+ * requirements reviewer does — block pin > workspace per-kind default > routing default —
120
+ * so operators configure it in Model Configuration alongside every other agent. Needs the
121
+ * telemetry repos (LLM-call metrics + agent-context snapshots) to read what each step was
122
+ * given; absent → the module isn't built and no grading is scheduled.
123
+ */
124
+ export declare function createKaizenModule(deps: CoreDependencies): KaizenModule | undefined;
125
+ /**
126
+ * Assemble the clarity-review module when its repository is present (both runtime facades
127
+ * wire it unconditionally). Mirrors {@link createRequirementsModule}: it reuses the
128
+ * requirements reviewer's model config (the same routing default) since both reviewers
129
+ * resolve their model identically.
130
+ */
131
+ export declare function createClarityModule(deps: CoreDependencies, notificationService?: NotificationService): ClarityModule | undefined;
132
+ /**
133
+ * Assemble the notifications module when its repository is present (the worker
134
+ * wires it unconditionally). The delivery channel is optional within the module —
135
+ * without it the rows still persist (the inbox + snapshot work) but nothing is
136
+ * pushed; the worker wires the in-app channel, and email/Slack compose in later.
137
+ */
138
+ export declare function createNotificationsModule(deps: CoreDependencies): NotificationsModule | undefined;
139
+ /**
140
+ * Assemble the Slack integration module when its three repositories and the
141
+ * secret cipher are present. Powers the management API (connect/settings/member
142
+ * map); the actual Slack delivery is a `notificationChannel` composed in by the
143
+ * facade. OAuth is optional — manual-token onboarding works without it.
144
+ */
145
+ export declare function createSlackModule(deps: CoreDependencies): SlackModule | undefined;
146
+ /** Assemble the merge-preset module when its repository is present. */
147
+ export declare function createRiskPoliciesModule(deps: CoreDependencies, caches: AppCaches): RiskPoliciesModule | undefined;
148
+ /**
149
+ * Assemble the shared-stacks module when its repository is present. The `composeRuntime` is
150
+ * optional — wired only on the local facade, so CRUD works everywhere but the lifecycle
151
+ * (ensureUp/teardown) refuses without a host daemon (the documented compose runtime-binding
152
+ * exception). Persistence is fully runtime-symmetric.
153
+ */
154
+ export declare function createSharedStacksModule(deps: CoreDependencies, preflightService: PreflightService | undefined): SharedStacksModule | undefined;
155
+ /**
156
+ * Assemble the preflight module when the host-probe seam is present — wired ONLY on the local
157
+ * facade (a host Docker daemon), the documented compose runtime-binding exception. Absent elsewhere
158
+ * ⇒ the preflight API 503s and a stack recipe that declares `prerequisites` fails loudly at
159
+ * provision (rather than silently skipping a declared machine-prerequisite gate).
160
+ */
161
+ export declare function createPreflightModule(deps: CoreDependencies): PreflightsModule | undefined;
162
+ /**
163
+ * Assemble the Sandbox module when its five repositories are present (both runtime
164
+ * facades wire them together). Reuses the requirements reviewer's inline model config —
165
+ * the per-scope provider resolver, the routing default ref, and the block-model resolver
166
+ * — so a Sandbox cell (and the judge) resolves its catalog id exactly like a pipeline step.
167
+ */
168
+ export declare function createSandboxModule(deps: CoreDependencies, agentKindRegistry: AgentKindRegistry): SandboxModule | undefined;
169
+ /** Assemble the workspace-settings module when its repository is present. */
170
+ export declare function createWorkspaceSettingsModule(deps: CoreDependencies, workspaceSettingsCache: AppCaches['workspaceSettings']): WorkspaceSettingsModule | undefined;
171
+ /** Assemble the release-health (observability) module when its repos + cipher are present. */
172
+ export declare function createReleaseHealthModule(deps: CoreDependencies): ReleaseHealthModule | undefined;
173
+ /** Assemble the package-registries module when its repo + cipher are present. */
174
+ export declare function createPackageRegistriesModule(deps: CoreDependencies): PackageRegistriesModule | undefined;
175
+ /**
176
+ * Assemble the browsable-frontend-preview module when its per-runtime transport + the facade's
177
+ * job builder + the env registry are all wired (local/node with a host-port-publish runtime).
178
+ * Absent on the Worker (no preview transport) ⇒ the controller 503s there.
179
+ */
180
+ export declare function createPreviewModule(deps: CoreDependencies): PreviewModule | undefined;
181
+ /** Assemble the incident-enrichment settings module when its repo + cipher are present. */
182
+ export declare function createIncidentEnrichmentModule(deps: CoreDependencies): IncidentEnrichmentModule | undefined;
183
+ /** Assemble the model-presets module when its repository is present. */
184
+ export declare function createModelPresetsModule(deps: CoreDependencies): ModelPresetsModule | undefined;
185
+ /** Assemble the service-fragment-defaults module when its repository is present. */
186
+ export declare function createServiceFragmentDefaultsModule(deps: CoreDependencies): ServiceFragmentDefaultsModule | undefined;
187
+ /** Assemble the tracker-settings module when its repository is present. */
188
+ export declare function createTrackerModule(deps: CoreDependencies): TrackerModule | undefined;
189
+ /**
190
+ * Assemble the recurring-pipeline module when its repository is present. Built
191
+ * after the execution engine since each fire starts a pipeline through it.
192
+ */
193
+ export declare function createRecurringModule(deps: CoreDependencies, executionService: ExecutionService, executionEventPublisher: ExecutionEventPublisher, taskConnectionService?: TaskConnectionService): RecurringModule | undefined;
194
+ //# sourceMappingURL=modules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../../src/container/modules.ts"],"names":[],"mappings":"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"}