@cat-factory/kernel 0.90.0 → 0.91.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/initiative-preset-registry.d.ts +50 -0
- package/dist/domain/initiative-preset-registry.d.ts.map +1 -0
- package/dist/domain/initiative-preset-registry.js +72 -0
- package/dist/domain/initiative-preset-registry.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { InitiativePlanDraft, InitiativePresetDescriptor, InitiativePresetInputs } from '@cat-factory/contracts';
|
|
2
|
+
import type { AgentKind } from './types.js';
|
|
3
|
+
import type { RepoFiles } from '../ports/repo-files.js';
|
|
4
|
+
/** The registration bundle for one initiative preset (descriptor + optional code hooks). */
|
|
5
|
+
export interface InitiativePresetRegistration {
|
|
6
|
+
/** The serialisable, SPA-facing descriptor (form + pipeline binding + defaults). */
|
|
7
|
+
descriptor: InitiativePresetDescriptor;
|
|
8
|
+
/**
|
|
9
|
+
* Deterministic, bounded, best-effort probe that prefills the form from the target repo.
|
|
10
|
+
* Runs on the backend over the checkout-free {@link RepoFiles} port. MUST be bounded (a hard
|
|
11
|
+
* `listDirectory` budget) and MUST NOT throw — an unwired GitHub / a failure yields `{}` and
|
|
12
|
+
* the form falls back to the descriptor defaults. Omitted ⇒ no probe (descriptor `probe` is
|
|
13
|
+
* false and the SPA never calls the probe endpoint for this preset).
|
|
14
|
+
*/
|
|
15
|
+
detect?(repo: RepoFiles): Promise<InitiativePresetInputs>;
|
|
16
|
+
/**
|
|
17
|
+
* Pure post-processor/validator of the planner's draft, run at ingest BEFORE `applyPlanDraft`.
|
|
18
|
+
* Receives the frozen `presetInputs` so it can enforce the preset's plan shape (a Foundations
|
|
19
|
+
* phase, bounded item granularity) and stamp each item's `spawn` decoration. Must be pure
|
|
20
|
+
* (no I/O) and total. Omitted ⇒ the draft is applied unchanged.
|
|
21
|
+
*/
|
|
22
|
+
seedPlan?(draft: InitiativePlanDraft, inputs: InitiativePresetInputs): InitiativePlanDraft;
|
|
23
|
+
/** Per-agent-kind planning-prompt steering text, folded into the planning steps' prompts. */
|
|
24
|
+
promptAdditions?: Partial<Record<AgentKind, string>>;
|
|
25
|
+
}
|
|
26
|
+
/** The built-in generic preset's id — the default the SPA picker selects. */
|
|
27
|
+
export declare const GENERIC_INITIATIVE_PRESET_ID = "preset_generic";
|
|
28
|
+
/**
|
|
29
|
+
* Register a custom initiative preset. A registration whose id matches an earlier one (or the
|
|
30
|
+
* built-in `preset_generic`) replaces it, so a deployment can both add new presets and customize
|
|
31
|
+
* the generic one.
|
|
32
|
+
*/
|
|
33
|
+
export declare function registerInitiativePreset(registration: InitiativePresetRegistration): void;
|
|
34
|
+
/** Register several initiative presets at once. */
|
|
35
|
+
export declare function registerInitiativePresets(registrations: Iterable<InitiativePresetRegistration>): void;
|
|
36
|
+
/**
|
|
37
|
+
* Resolve one preset by id, or `undefined` when unknown. The built-in `preset_generic` is always
|
|
38
|
+
* resolvable (unless a registration overrode it), even with an otherwise-empty registry.
|
|
39
|
+
*/
|
|
40
|
+
export declare function getInitiativePreset(id: string): InitiativePresetRegistration | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* All presets (registration order), with the built-in `preset_generic` FIRST unless a
|
|
43
|
+
* registration replaced it. This is what the snapshot builder serialises for the SPA picker.
|
|
44
|
+
*/
|
|
45
|
+
export declare function allInitiativePresets(): InitiativePresetRegistration[];
|
|
46
|
+
/** The serialisable descriptors of {@link allInitiativePresets}, with `probe` derived from `detect`. */
|
|
47
|
+
export declare function initiativePresetDescriptors(): InitiativePresetDescriptor[];
|
|
48
|
+
/** Drop all registered presets (the built-in `preset_generic` survives). Intended for tests. */
|
|
49
|
+
export declare function clearRegisteredInitiativePresets(): void;
|
|
50
|
+
//# sourceMappingURL=initiative-preset-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initiative-preset-registry.d.ts","sourceRoot":"","sources":["../../src/domain/initiative-preset-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAmBvD,4FAA4F;AAC5F,MAAM,WAAW,4BAA4B;IAC3C,oFAAoF;IACpF,UAAU,EAAE,0BAA0B,CAAA;IACtC;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACzD;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,sBAAsB,GAAG,mBAAmB,CAAA;IAC1F,6FAA6F;IAC7F,eAAe,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;CACrD;AAED,6EAA6E;AAC7E,eAAO,MAAM,4BAA4B,mBAAmB,CAAA;AAgC5D;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,4BAA4B,GAAG,IAAI,CAEzF;AAED,mDAAmD;AACnD,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,QAAQ,CAAC,4BAA4B,CAAC,GACpD,IAAI,CAEN;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,4BAA4B,GAAG,SAAS,CAIxF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,4BAA4B,EAAE,CAIrE;AAED,wGAAwG;AACxG,wBAAgB,2BAA2B,IAAI,0BAA0B,EAAE,CAE1E;AAED,gGAAgG;AAChG,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { INITIATIVE_PIPELINE_ID } from './seed.js';
|
|
2
|
+
/** The built-in generic preset's id — the default the SPA picker selects. */
|
|
3
|
+
export const GENERIC_INITIATIVE_PRESET_ID = 'preset_generic';
|
|
4
|
+
/**
|
|
5
|
+
* The built-in generic preset: the strangler wrapper that makes the existing generic initiative
|
|
6
|
+
* "just the default preset". Empty form, the interviewer-driven `pl_initiative` pipeline, human
|
|
7
|
+
* review on — i.e. exactly today's behaviour. Nothing in the planning/loop path branches on
|
|
8
|
+
* "has preset"; a preset only ever ADDS context, so the generic one adds none. It has no code
|
|
9
|
+
* hooks, so it is always available even after {@link clearRegisteredInitiativePresets}.
|
|
10
|
+
*/
|
|
11
|
+
const GENERIC_INITIATIVE_PRESET = {
|
|
12
|
+
descriptor: {
|
|
13
|
+
id: GENERIC_INITIATIVE_PRESET_ID,
|
|
14
|
+
presentation: {
|
|
15
|
+
label: 'Custom initiative',
|
|
16
|
+
icon: 'i-lucide-git-branch-plus',
|
|
17
|
+
color: '#6366f1',
|
|
18
|
+
description: 'Plan an open-ended body of work through a guided interview, then execute it as a loop of tasks.',
|
|
19
|
+
},
|
|
20
|
+
fields: [],
|
|
21
|
+
planningPipelineId: INITIATIVE_PIPELINE_ID,
|
|
22
|
+
interview: 'full',
|
|
23
|
+
humanReviewDefault: true,
|
|
24
|
+
defaultFragmentIds: [],
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
// Process-wide registry, mirroring the pipeline / gate registry seams. Registration is a
|
|
28
|
+
// startup import side effect, read when the create/planning flow + the snapshot builder resolve
|
|
29
|
+
// presets. A preset registered AFTER those have run is invisible — register at startup.
|
|
30
|
+
const registry = new Map();
|
|
31
|
+
/**
|
|
32
|
+
* Register a custom initiative preset. A registration whose id matches an earlier one (or the
|
|
33
|
+
* built-in `preset_generic`) replaces it, so a deployment can both add new presets and customize
|
|
34
|
+
* the generic one.
|
|
35
|
+
*/
|
|
36
|
+
export function registerInitiativePreset(registration) {
|
|
37
|
+
registry.set(registration.descriptor.id, registration);
|
|
38
|
+
}
|
|
39
|
+
/** Register several initiative presets at once. */
|
|
40
|
+
export function registerInitiativePresets(registrations) {
|
|
41
|
+
for (const registration of registrations)
|
|
42
|
+
registerInitiativePreset(registration);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Resolve one preset by id, or `undefined` when unknown. The built-in `preset_generic` is always
|
|
46
|
+
* resolvable (unless a registration overrode it), even with an otherwise-empty registry.
|
|
47
|
+
*/
|
|
48
|
+
export function getInitiativePreset(id) {
|
|
49
|
+
const registered = registry.get(id);
|
|
50
|
+
if (registered)
|
|
51
|
+
return registered;
|
|
52
|
+
return id === GENERIC_INITIATIVE_PRESET_ID ? GENERIC_INITIATIVE_PRESET : undefined;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* All presets (registration order), with the built-in `preset_generic` FIRST unless a
|
|
56
|
+
* registration replaced it. This is what the snapshot builder serialises for the SPA picker.
|
|
57
|
+
*/
|
|
58
|
+
export function allInitiativePresets() {
|
|
59
|
+
const registered = [...registry.values()];
|
|
60
|
+
if (registry.has(GENERIC_INITIATIVE_PRESET_ID))
|
|
61
|
+
return registered;
|
|
62
|
+
return [GENERIC_INITIATIVE_PRESET, ...registered];
|
|
63
|
+
}
|
|
64
|
+
/** The serialisable descriptors of {@link allInitiativePresets}, with `probe` derived from `detect`. */
|
|
65
|
+
export function initiativePresetDescriptors() {
|
|
66
|
+
return allInitiativePresets().map((p) => ({ ...p.descriptor, probe: !!p.detect }));
|
|
67
|
+
}
|
|
68
|
+
/** Drop all registered presets (the built-in `preset_generic` survives). Intended for tests. */
|
|
69
|
+
export function clearRegisteredInitiativePresets() {
|
|
70
|
+
registry.clear();
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=initiative-preset-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initiative-preset-registry.js","sourceRoot":"","sources":["../../src/domain/initiative-preset-registry.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAyClD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,4BAA4B,GAAG,gBAAgB,CAAA;AAE5D;;;;;;GAMG;AACH,MAAM,yBAAyB,GAAiC;IAC9D,UAAU,EAAE;QACV,EAAE,EAAE,4BAA4B;QAChC,YAAY,EAAE;YACZ,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,SAAS;YAChB,WAAW,EACT,iGAAiG;SACpG;QACD,MAAM,EAAE,EAAE;QACV,kBAAkB,EAAE,sBAAsB;QAC1C,SAAS,EAAE,MAAM;QACjB,kBAAkB,EAAE,IAAI;QACxB,kBAAkB,EAAE,EAAE;KACvB;CACF,CAAA;AAED,yFAAyF;AACzF,gGAAgG;AAChG,wFAAwF;AACxF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwC,CAAA;AAEhE;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,YAA0C;IACjF,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;AACxD,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,yBAAyB,CACvC,aAAqD;IAErD,KAAK,MAAM,YAAY,IAAI,aAAa;QAAE,wBAAwB,CAAC,YAAY,CAAC,CAAA;AAClF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACnC,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IACjC,OAAO,EAAE,KAAK,4BAA4B,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAA;AACpF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IACzC,IAAI,QAAQ,CAAC,GAAG,CAAC,4BAA4B,CAAC;QAAE,OAAO,UAAU,CAAA;IACjE,OAAO,CAAC,yBAAyB,EAAE,GAAG,UAAU,CAAC,CAAA;AACnD,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,2BAA2B;IACzC,OAAO,oBAAoB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AACpF,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,gCAAgC;IAC9C,QAAQ,CAAC,KAAK,EAAE,CAAA;AAClB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export { type SelectableModel, type ModelVariant, type SubscriptionVariant, type
|
|
|
9
9
|
export { seedBlocks, seedPipelines, BLUEPRINT_PIPELINE_ID, INITIATIVE_PIPELINE_ID, DEP_UPDATE_PIPELINE_ID, TECH_DEBT_PIPELINE_ID, BUG_TRIAGE_PIPELINE_ID, } from './domain/seed.js';
|
|
10
10
|
export { INITIATIVE_INTERVIEWER_AGENT_KIND, INITIATIVE_ANALYST_AGENT_KIND, INITIATIVE_PLANNER_AGENT_KIND, INITIATIVE_COMMITTER_AGENT_KIND, INITIATIVE_AGENT_KINDS, isInitiativeAgentKind, hasInitiativeKinds, } from './domain/initiative-logic.js';
|
|
11
11
|
export { registerPipeline, registerPipelines, registeredPipelines, clearRegisteredPipelines, } from './domain/pipeline-registry.js';
|
|
12
|
+
export { type InitiativePresetRegistration, GENERIC_INITIATIVE_PRESET_ID, registerInitiativePreset, registerInitiativePresets, getInitiativePreset, allInitiativePresets, initiativePresetDescriptors, clearRegisteredInitiativePresets, } from './domain/initiative-preset-registry.js';
|
|
12
13
|
export { type GateProbe, type GateHelperOutcome, type GateHelperJobResult, type GateHelperCompletionArgs, type GateExhaustedArgs, type GateDefinition, type GateContext, type GateFactory, recordGateAttempt, registerGate, registeredGateFactories, clearRegisteredGates, stubGateContext, } from './domain/gate-registry.js';
|
|
13
14
|
export { type StepResolverContext, type StepResolution, type StepCompletionResolver, type ResolverContext, type StepResolverFactory, registerStepResolver, registeredStepResolverFactories, clearRegisteredStepResolvers, stubResolverContext, } from './domain/step-resolver-registry.js';
|
|
14
15
|
export { type ProviderToken, defineProviderToken, wireProvider, getProvider, isProviderWired, requireProvider, clearProviders, } from './domain/provider-registry.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,11 @@ export { INITIATIVE_INTERVIEWER_AGENT_KIND, INITIATIVE_ANALYST_AGENT_KIND, INITI
|
|
|
16
16
|
// agent-kind / model-provider registry seams): a deployment registers extra pipelines at
|
|
17
17
|
// startup and `seedPipelines()` seeds them into every new workspace.
|
|
18
18
|
export { registerPipeline, registerPipelines, registeredPipelines, clearRegisteredPipelines, } from './domain/pipeline-registry.js';
|
|
19
|
+
// Installation-level extension point for initiative PRESETS (mirrors the pipeline / gate
|
|
20
|
+
// registry seams): a preset bundles a create-time form descriptor + planning-pipeline binding
|
|
21
|
+
// + defaults + code hooks (repo-detection prefill, plan post-processor, prompt steering). The
|
|
22
|
+
// built-in `preset_generic` is the strangler default. See `domain/initiative-preset-registry.ts`.
|
|
23
|
+
export { GENERIC_INITIATIVE_PRESET_ID, registerInitiativePreset, registerInitiativePresets, getInitiativePreset, allInitiativePresets, initiativePresetDescriptors, clearRegisteredInitiativePresets, } from './domain/initiative-preset-registry.js';
|
|
19
24
|
// Installation-level extension point for custom polling gates + step-completion
|
|
20
25
|
// resolvers (mirrors the agent-kind / pipeline registry seams): a deployment registers
|
|
21
26
|
// its own gate / resolver at startup and the ExecutionService merges them with the
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/kernel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.91.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.214",
|
|
28
|
-
"@cat-factory/contracts": "0.
|
|
28
|
+
"@cat-factory/contracts": "0.101.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@vitest/coverage-v8": "^4.1.9",
|