@cat-factory/orchestration 0.124.1 → 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.
- package/dist/container/module-registry.d.ts +55 -0
- package/dist/container/module-registry.d.ts.map +1 -0
- package/dist/container/module-registry.js +61 -0
- package/dist/container/module-registry.js.map +1 -0
- package/dist/container/modules.d.ts +194 -0
- package/dist/container/modules.d.ts.map +1 -0
- package/dist/container/modules.js +1060 -0
- package/dist/container/modules.js.map +1 -0
- package/dist/container.d.ts +44 -20
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +73 -1116
- package/dist/container.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -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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"}
|