@cat-factory/orchestration 0.62.0 → 0.64.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/container.d.ts.map +1 -1
- package/dist/container.js +18 -0
- package/dist/container.js.map +1 -1
- package/dist/modules/execution/AgentContextBuilder.d.ts +26 -1
- package/dist/modules/execution/AgentContextBuilder.d.ts.map +1 -1
- package/dist/modules/execution/AgentContextBuilder.js +76 -3
- package/dist/modules/execution/AgentContextBuilder.js.map +1 -1
- package/dist/modules/execution/ExecutionService.d.ts +27 -2
- package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
- package/dist/modules/execution/ExecutionService.js +30 -1
- package/dist/modules/execution/ExecutionService.js.map +1 -1
- package/dist/modules/execution/InitiativeInterviewController.d.ts +50 -0
- package/dist/modules/execution/InitiativeInterviewController.d.ts.map +1 -0
- package/dist/modules/execution/InitiativeInterviewController.js +137 -0
- package/dist/modules/execution/InitiativeInterviewController.js.map +1 -0
- package/dist/modules/execution/RunDispatcher.d.ts +66 -1
- package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
- package/dist/modules/execution/RunDispatcher.js +360 -91
- package/dist/modules/execution/RunDispatcher.js.map +1 -1
- package/dist/modules/execution/deployer.logic.d.ts +15 -1
- package/dist/modules/execution/deployer.logic.d.ts.map +1 -1
- package/dist/modules/execution/deployer.logic.js +41 -2
- package/dist/modules/execution/deployer.logic.js.map +1 -1
- package/dist/modules/execution/frame.logic.d.ts +20 -0
- package/dist/modules/execution/frame.logic.d.ts.map +1 -0
- package/dist/modules/execution/frame.logic.js +40 -0
- package/dist/modules/execution/frame.logic.js.map +1 -0
- package/dist/modules/initiative/InitiativeInterviewService.d.ts +38 -0
- package/dist/modules/initiative/InitiativeInterviewService.d.ts.map +1 -0
- package/dist/modules/initiative/InitiativeInterviewService.js +113 -0
- package/dist/modules/initiative/InitiativeInterviewService.js.map +1 -0
- package/dist/modules/initiative/InitiativeService.d.ts +12 -0
- package/dist/modules/initiative/InitiativeService.d.ts.map +1 -1
- package/dist/modules/initiative/InitiativeService.js +22 -1
- package/dist/modules/initiative/InitiativeService.js.map +1 -1
- package/dist/modules/initiative/initiative.logic.d.ts +45 -0
- package/dist/modules/initiative/initiative.logic.d.ts.map +1 -1
- package/dist/modules/initiative/initiative.logic.js +102 -1
- package/dist/modules/initiative/initiative.logic.js.map +1 -1
- package/package.json +10 -10
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { generateText } from 'ai';
|
|
2
|
+
import { INITIATIVE_INTERVIEWER_AGENT_KIND, inlineModelRef, resolveScopedModelProvider, ValidationError, } from '@cat-factory/kernel';
|
|
3
|
+
import { catFactoryObservability } from '@cat-factory/agents';
|
|
4
|
+
import { extractJson } from '../requirements/requirements.logic.js';
|
|
5
|
+
import { coerceInterviewOutput } from './initiative.logic.js';
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// The interactive-planning INTERVIEWER — an inline LLM (no container, no repo) that scopes a
|
|
8
|
+
// long-running initiative BEFORE the planner drafts. It reads the initiative brief plus the
|
|
9
|
+
// answers gathered so far and either asks a fresh batch of clarifying questions or converges
|
|
10
|
+
// with a synthesized goal / constraints / non-goals brief. The engine's
|
|
11
|
+
// InitiativeInterviewController drives the park/answer/resume loop around it (mirroring the
|
|
12
|
+
// review gate), and InitiativeService persists the questions/answers/brief onto the entity.
|
|
13
|
+
//
|
|
14
|
+
// Model resolution is the SAME precedence as an agent step / the requirements reviewer: a
|
|
15
|
+
// model pinned on the block wins, else the workspace's per-kind default, else the routing
|
|
16
|
+
// default (a pinned subscription harness ref degrades to the routing default because this is
|
|
17
|
+
// an INLINE call with no container harness). The provider is reached through the
|
|
18
|
+
// runtime-neutral ModelProvider port, so this never imports a provider SDK or a key.
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
/** Role prompt the interviewer runs under. Returns ONLY a JSON decision object. */
|
|
21
|
+
export const INITIATIVE_INTERVIEW_SYSTEM_PROMPT = 'You are a staff engineer INTERVIEWING a stakeholder to scope a long-running initiative (a ' +
|
|
22
|
+
'cross-cutting refactor, a migration, a strangler conversion) BEFORE it is planned. You are ' +
|
|
23
|
+
'given the initiative brief and the answers gathered so far. Decide whether you understand ' +
|
|
24
|
+
'the goal, scope boundaries, constraints and success criteria well enough to plan. If NOT, ' +
|
|
25
|
+
'ask a small batch of focused, high-leverage clarifying questions — each answerable in a ' +
|
|
26
|
+
'sentence or two, no yes/no trivia, no questions the brief already answers. If you have ' +
|
|
27
|
+
'enough (or you are told this is the final round), STOP asking and synthesize the agreed ' +
|
|
28
|
+
'goal, the constraints to honour, and the explicit non-goals. Respond with ONLY a JSON ' +
|
|
29
|
+
'object of shape {"done": boolean, "questions": string[], "goal": string, "constraints": ' +
|
|
30
|
+
'string[], "nonGoals": string[]}. When done is false, `questions` is non-empty; when done ' +
|
|
31
|
+
'is true, `questions` is empty and you MUST fill `goal` (and `constraints`/`nonGoals` where ' +
|
|
32
|
+
'they apply). No prose, no code fences.';
|
|
33
|
+
export class InitiativeInterviewService {
|
|
34
|
+
deps;
|
|
35
|
+
constructor(deps) {
|
|
36
|
+
this.deps = deps;
|
|
37
|
+
}
|
|
38
|
+
/** Whether the inline interviewer is available (a provider AND a routing default are wired). */
|
|
39
|
+
get enabled() {
|
|
40
|
+
return (!!this.deps.modelProviderResolver || !!this.deps.modelProvider) && !!this.deps.modelRef;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Run one interviewer pass over the initiative. `finalize` forces convergence (the human
|
|
44
|
+
* proceeded, or the round cap was hit) so the model is asked only to synthesize the brief.
|
|
45
|
+
*/
|
|
46
|
+
async runInterview(workspaceId, block, initiative, opts) {
|
|
47
|
+
const { modelProvider, ref } = await this.resolveModel(workspaceId, block);
|
|
48
|
+
let text;
|
|
49
|
+
try {
|
|
50
|
+
const model = modelProvider.resolve(ref);
|
|
51
|
+
const result = await generateText({
|
|
52
|
+
model,
|
|
53
|
+
system: INITIATIVE_INTERVIEW_SYSTEM_PROMPT,
|
|
54
|
+
prompt: this.buildPrompt(block, initiative, opts.finalize),
|
|
55
|
+
temperature: 0.2,
|
|
56
|
+
maxOutputTokens: 3000,
|
|
57
|
+
providerOptions: catFactoryObservability({
|
|
58
|
+
agentKind: INITIATIVE_INTERVIEWER_AGENT_KIND,
|
|
59
|
+
workspaceId,
|
|
60
|
+
}),
|
|
61
|
+
});
|
|
62
|
+
text = result.text;
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
throw new ValidationError(`The initiative interviewer (${ref.provider}:${ref.model}) failed: ${e instanceof Error ? e.message : String(e)}`);
|
|
66
|
+
}
|
|
67
|
+
return coerceInterviewOutput(extractJson(text), { finalize: opts.finalize });
|
|
68
|
+
}
|
|
69
|
+
/** Assemble the interviewer prompt: the brief + the answered digest + the round intent. */
|
|
70
|
+
buildPrompt(block, initiative, finalize) {
|
|
71
|
+
const lines = [`Initiative: ${block.title || '(untitled initiative)'}`];
|
|
72
|
+
const brief = block.description?.trim();
|
|
73
|
+
if (brief)
|
|
74
|
+
lines.push('', 'Brief:', brief);
|
|
75
|
+
const answered = (initiative.qa ?? []).filter((q) => (q.answer ?? '').trim().length > 0);
|
|
76
|
+
if (answered.length) {
|
|
77
|
+
lines.push('', 'Answers gathered so far:');
|
|
78
|
+
for (const { question, answer } of answered)
|
|
79
|
+
lines.push(`- Q: ${question}`, ` A: ${answer}`);
|
|
80
|
+
}
|
|
81
|
+
if (initiative.goal?.trim())
|
|
82
|
+
lines.push('', `Current goal statement: ${initiative.goal.trim()}`);
|
|
83
|
+
lines.push('', finalize
|
|
84
|
+
? 'This is the FINAL round: do NOT ask more questions. Synthesize the agreed goal, ' +
|
|
85
|
+
'constraints and non-goals from the brief and the answers above.'
|
|
86
|
+
: 'Ask your next batch of clarifying questions, or converge if you have enough. ' +
|
|
87
|
+
'Respond with ONLY the JSON decision object.');
|
|
88
|
+
return lines.join('\n');
|
|
89
|
+
}
|
|
90
|
+
async resolveModel(workspaceId, block) {
|
|
91
|
+
const modelProvider = await resolveScopedModelProvider(workspaceId, this.deps);
|
|
92
|
+
const ref = await this.modelFor(workspaceId, block);
|
|
93
|
+
if (!modelProvider || !ref) {
|
|
94
|
+
throw new ValidationError('No model is configured for the initiative interviewer');
|
|
95
|
+
}
|
|
96
|
+
return { modelProvider, ref };
|
|
97
|
+
}
|
|
98
|
+
/** Block pin > workspace per-kind default > routing default (subscription refs degrade). */
|
|
99
|
+
async modelFor(workspaceId, block) {
|
|
100
|
+
const fallback = this.deps.modelRef;
|
|
101
|
+
const runsInline = this.deps.runsInline;
|
|
102
|
+
const resolve = (ref) => inlineModelRef(ref, fallback ?? ref, runsInline ? { runsInline } : {});
|
|
103
|
+
const fromBlock = this.deps.resolveBlockModel?.(block.modelId);
|
|
104
|
+
if (fromBlock)
|
|
105
|
+
return resolve(fromBlock);
|
|
106
|
+
const defaultId = await this.deps.resolveWorkspaceModelDefault?.(workspaceId, INITIATIVE_INTERVIEWER_AGENT_KIND, block.modelPresetId);
|
|
107
|
+
const fromDefault = this.deps.resolveBlockModel?.(defaultId);
|
|
108
|
+
if (fromDefault)
|
|
109
|
+
return resolve(fromDefault);
|
|
110
|
+
return fallback;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=InitiativeInterviewService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitiativeInterviewService.js","sourceRoot":"","sources":["../../../src/modules/initiative/InitiativeInterviewService.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,18 @@ export declare class InitiativeService {
|
|
|
50
50
|
version: number;
|
|
51
51
|
hash: string;
|
|
52
52
|
} | null): Promise<Initiative | null>;
|
|
53
|
+
/** Append a fresh round of pending interview questions (parks the interview `awaiting`). */
|
|
54
|
+
recordInterviewQuestions(workspaceId: string, blockId: string, questions: string[]): Promise<Initiative | null>;
|
|
55
|
+
/** Record the human's answer to one pending question (no run resume; the controller does that). */
|
|
56
|
+
recordInterviewAnswer(workspaceId: string, blockId: string, questionId: string, answer: string): Promise<Initiative | null>;
|
|
57
|
+
/** Converge the interview: fold the synthesized goal/constraints/non-goals brief onto the entity. */
|
|
58
|
+
recordInterviewOutcome(workspaceId: string, blockId: string, outcome: {
|
|
59
|
+
goal: string;
|
|
60
|
+
constraints: string[];
|
|
61
|
+
nonGoals: string[];
|
|
62
|
+
}): Promise<Initiative | null>;
|
|
63
|
+
/** Fold the analyst step's codebase-analysis prose onto the entity. */
|
|
64
|
+
recordAnalysis(workspaceId: string, blockId: string, summary: string): Promise<Initiative | null>;
|
|
53
65
|
/**
|
|
54
66
|
* The shared read → transform → CAS-write loop. A content-identical transform
|
|
55
67
|
* result short-circuits to no write (replay/idempotency); a lost CAS reloads
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InitiativeService.d.ts","sourceRoot":"","sources":["../../../src/modules/initiative/InitiativeService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,eAAe,EACf,KAAK,EACL,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,EACX,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"InitiativeService.d.ts","sourceRoot":"","sources":["../../../src/modules/initiative/InitiativeService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,eAAe,EACf,KAAK,EACL,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,EACX,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAe5B,MAAM,WAAW,6BAA6B;IAC5C,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,eAAe,EAAE,eAAe,CAAA;IAChC,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,MAAM,EAAE,uBAAuB,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,WAAW,CAAA;CACzB;AAKD;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,6BAA6B,EAAI;IAEpE;;;;;OAKG;IACG,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAmEnD;IAED,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAE/C;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAE9D;IAED,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAE3E;IAED;;;;;;;;OAQG;IACG,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAM5B;IAED;;;;;OAKG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAC5C,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAS5B;IAQD,4FAA4F;IACtF,wBAAwB,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAI5B;IAED,mGAAmG;IAC7F,qBAAqB,CACzB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAI5B;IAED,qGAAqG;IAC/F,sBAAsB,CAC1B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GACnE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAE5B;IAED,uEAAuE;IACjE,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAE5B;IAED;;;;OAIG;YACW,MAAM;CAwBrB"}
|
|
@@ -2,7 +2,7 @@ import { ConflictError, ValidationError, assertFound, requireWorkspace } from '@
|
|
|
2
2
|
import { parseInitiativePlanDraft } from '@cat-factory/contracts';
|
|
3
3
|
import { initiativeContentView } from '@cat-factory/agents';
|
|
4
4
|
import { gridSlot } from '../board/board.logic.js';
|
|
5
|
-
import { applyPlanDraft, initiativeSlug, validatePlanDraft } from './initiative.logic.js';
|
|
5
|
+
import { applyAnalysis, applyInterviewAnswer, applyInterviewOutcome, applyInterviewQuestions, applyPlanDraft, initiativeSlug, validatePlanDraft, } from './initiative.logic.js';
|
|
6
6
|
/** How many times a CAS write is retried against a concurrent writer before giving up. */
|
|
7
7
|
const CAS_ATTEMPTS = 3;
|
|
8
8
|
/**
|
|
@@ -122,6 +122,27 @@ export class InitiativeService {
|
|
|
122
122
|
...(doc ? { doc: { ...doc, committedAt: this.deps.clock.now() } } : {}),
|
|
123
123
|
}));
|
|
124
124
|
}
|
|
125
|
+
// ---- Interactive planning interview (slice 2) ---------------------------
|
|
126
|
+
// Each write goes through the CAS `mutate` (single-writer, replay-safe) and emits the
|
|
127
|
+
// live `initiative` event so an open planning window refreshes. The interviewer LLM +
|
|
128
|
+
// the park/resume orchestration live in InitiativeInterviewService / the controller;
|
|
129
|
+
// these are the entity writes they drive.
|
|
130
|
+
/** Append a fresh round of pending interview questions (parks the interview `awaiting`). */
|
|
131
|
+
async recordInterviewQuestions(workspaceId, blockId, questions) {
|
|
132
|
+
return this.mutate(workspaceId, blockId, (current) => applyInterviewQuestions(current, questions, () => this.deps.idGenerator.next('iqa')));
|
|
133
|
+
}
|
|
134
|
+
/** Record the human's answer to one pending question (no run resume; the controller does that). */
|
|
135
|
+
async recordInterviewAnswer(workspaceId, blockId, questionId, answer) {
|
|
136
|
+
return this.mutate(workspaceId, blockId, (current) => applyInterviewAnswer(current, questionId, answer));
|
|
137
|
+
}
|
|
138
|
+
/** Converge the interview: fold the synthesized goal/constraints/non-goals brief onto the entity. */
|
|
139
|
+
async recordInterviewOutcome(workspaceId, blockId, outcome) {
|
|
140
|
+
return this.mutate(workspaceId, blockId, (current) => applyInterviewOutcome(current, outcome));
|
|
141
|
+
}
|
|
142
|
+
/** Fold the analyst step's codebase-analysis prose onto the entity. */
|
|
143
|
+
async recordAnalysis(workspaceId, blockId, summary) {
|
|
144
|
+
return this.mutate(workspaceId, blockId, (current) => applyAnalysis(current, summary));
|
|
145
|
+
}
|
|
125
146
|
/**
|
|
126
147
|
* The shared read → transform → CAS-write loop. A content-identical transform
|
|
127
148
|
* result short-circuits to no write (replay/idempotency); a lost CAS reloads
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InitiativeService.js","sourceRoot":"","sources":["../../../src/modules/initiative/InitiativeService.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"InitiativeService.js","sourceRoot":"","sources":["../../../src/modules/initiative/InitiativeService.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,uBAAuB,CAAA;AAW9B,0FAA0F;AAC1F,MAAM,YAAY,GAAG,CAAC,CAAA;AAEtB;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACC,IAAI;IAAjC,YAA6B,IAAmC;oBAAnC,IAAI;IAAkC,CAAC;IAEpE;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CACV,WAAmB,EACnB,KAA4B;QAE5B,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAA;QAClE,MAAM,KAAK,GAAG,WAAW,CACvB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAC/D,OAAO,EACP,KAAK,CAAC,OAAO,CACd,CAAA;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CAAC,yDAAyD,CAAC,CAAA;QACtF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,YAAY,CAC3D,CAAC,MAAM,CAAA;QAER,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACvE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAClD,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACxC,IAAI,IAAI,GAAG,IAAI,CAAA;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAA;QAE3D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QACjC,MAAM,KAAK,GAAU;YACnB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YACtC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;YACzB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;YAC5C,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;YAClD,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,KAAK,CAAC,EAAE;SACnB,CAAA;QACD,MAAM,UAAU,GAAe;YAC7B,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;YACvC,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,IAAI;YACJ,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;YACzB,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;YACrC,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,EAAE;YACZ,EAAE,EAAE,EAAE;YACN,eAAe,EAAE,EAAE;YACnB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,CAAC;YACN,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAA;QACD,8EAA8E;QAC9E,oFAAoF;QACpF,kFAAkF;QAClF,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;QACpE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QAC1D,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QAC9E,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;QACnE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;IAC9B,CAAC;IAED,IAAI,CAAC,WAAmB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,WAAmB,EAAE,EAAU;QACvC,OAAO,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;IACjG,CAAC;IAED,UAAU,CAAC,WAAmB,EAAE,OAAe;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACxE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,OAAe,EACf,QAAiB;QAEjB,MAAM,KAAK,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAA;QAChD,iBAAiB,CAAC,KAAK,CAAC,CAAA;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CACnD,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CACtD,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CACjB,WAAmB,EACnB,OAAe,EACf,GAA6C;QAE7C,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrD,GAAG,OAAO;YACV,MAAM,EACJ,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,mBAAmB;gBACrE,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,OAAO,CAAC,MAAM;YACpB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC,CAAA;IACL,CAAC;IAED,4EAA4E;IAC5E,sFAAsF;IACtF,sFAAsF;IACtF,qFAAqF;IACrF,0CAA0C;IAE1C,4FAA4F;IAC5F,KAAK,CAAC,wBAAwB,CAC5B,WAAmB,EACnB,OAAe,EACf,SAAmB;QAEnB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CACnD,uBAAuB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACrF,CAAA;IACH,CAAC;IAED,mGAAmG;IACnG,KAAK,CAAC,qBAAqB,CACzB,WAAmB,EACnB,OAAe,EACf,UAAkB,EAClB,MAAc;QAEd,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CACnD,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAClD,CAAA;IACH,CAAC;IAED,qGAAqG;IACrG,KAAK,CAAC,sBAAsB,CAC1B,WAAmB,EACnB,OAAe,EACf,OAAoE;QAEpE,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAChG,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,cAAc,CAClB,WAAmB,EACnB,OAAe,EACf,OAAe;QAEf,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IACxF,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,MAAM,CAClB,WAAmB,EACnB,OAAe,EACf,SAA8C;QAE9C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YACrF,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAA;YACzB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YAC/B,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;gBAAE,OAAO,OAAO,CAAA;YAC9C,MAAM,SAAS,GAAe;gBAC5B,GAAG,IAAI;gBACP,GAAG,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;gBACpB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;aACjC,CAAA;YACD,IACE,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,EACxF,CAAC;gBACD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;gBAClE,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,aAAa,CAAC,2DAA2D,CAAC,CAAA;IACtF,CAAC;CACF;AAED,gFAAgF;AAChF,SAAS,WAAW,CAAC,CAAa,EAAE,CAAa;IAC/C,+EAA+E;IAC/E,oEAAoE;IACpE,OAAO,CACL,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,CACpE,CAAA;AACH,CAAC"}
|
|
@@ -44,4 +44,49 @@ export declare function initiativeProgress(initiative: Initiative): {
|
|
|
44
44
|
done: number;
|
|
45
45
|
total: number;
|
|
46
46
|
};
|
|
47
|
+
/** How many interviewer passes may run before the loop is force-converged. */
|
|
48
|
+
export declare const INITIATIVE_MAX_INTERVIEW_ROUNDS = 4;
|
|
49
|
+
/** Upper bound on questions the interviewer may ask in one round (keeps the gate answerable). */
|
|
50
|
+
export declare const INITIATIVE_MAX_INTERVIEW_QUESTIONS = 8;
|
|
51
|
+
/** The interviewer LLM's decision: ask more questions, or converge with a synthesized brief. */
|
|
52
|
+
export type InterviewOutput = {
|
|
53
|
+
kind: 'questions';
|
|
54
|
+
questions: string[];
|
|
55
|
+
} | {
|
|
56
|
+
kind: 'done';
|
|
57
|
+
goal: string;
|
|
58
|
+
constraints: string[];
|
|
59
|
+
nonGoals: string[];
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Leniently coerce the interviewer's JSON into an {@link InterviewOutput}. `finalize` forces
|
|
63
|
+
* convergence (the human proceeded, or the round cap was hit) regardless of what the model
|
|
64
|
+
* returned. Empty/absent questions also mean convergence — nothing left to ask.
|
|
65
|
+
*/
|
|
66
|
+
export declare function coerceInterviewOutput(parsed: unknown, opts: {
|
|
67
|
+
finalize: boolean;
|
|
68
|
+
}): InterviewOutput;
|
|
69
|
+
/**
|
|
70
|
+
* Append a fresh round of pending questions: keep the answered digest, drop any prior-round
|
|
71
|
+
* questions the human skipped, and add the new ones with stable ids. Bumps the interview
|
|
72
|
+
* round and parks it `awaiting`.
|
|
73
|
+
*/
|
|
74
|
+
export declare function applyInterviewQuestions(initiative: Initiative, questions: string[], nextId: () => string): Initiative;
|
|
75
|
+
/** Record the human's answer to one pending question (matched by id). No-op if unknown. */
|
|
76
|
+
export declare function applyInterviewAnswer(initiative: Initiative, questionId: string, answer: string): Initiative;
|
|
77
|
+
/**
|
|
78
|
+
* Converge the interview: keep only the answered digest, fold the synthesized brief onto the
|
|
79
|
+
* entity (goal/constraints/nonGoals — a blank synthesized goal keeps the existing one), and
|
|
80
|
+
* mark the interview `done`. The initiative's own `status` stays `planning` (the planner
|
|
81
|
+
* ingest flips it to `awaiting_approval` later).
|
|
82
|
+
*/
|
|
83
|
+
export declare function applyInterviewOutcome(initiative: Initiative, outcome: {
|
|
84
|
+
goal: string;
|
|
85
|
+
constraints: string[];
|
|
86
|
+
nonGoals: string[];
|
|
87
|
+
}): Initiative;
|
|
88
|
+
/** Whether the interviewer must force-converge on the next pass (the round cap was reached). */
|
|
89
|
+
export declare function interviewAtCap(initiative: Initiative): boolean;
|
|
90
|
+
/** Fold the analyst's codebase-analysis prose onto the entity. */
|
|
91
|
+
export declare function applyAnalysis(initiative: Initiative, summary: string): Initiative;
|
|
47
92
|
//# sourceMappingURL=initiative.logic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initiative.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/initiative/initiative.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,UAAU,EAEV,eAAe,EACf,mBAAmB,
|
|
1
|
+
{"version":3,"file":"initiative.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/initiative/initiative.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,UAAU,EAEV,eAAe,EACf,mBAAmB,EAEpB,MAAM,qBAAqB,CAAA;AAW5B,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAY9F;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAwClE;AAYD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,MAAM,GACV,UAAU,CAkFZ;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,GAAG,IAAI,CASjF;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAM1F;AASD,8EAA8E;AAC9E,eAAO,MAAM,+BAA+B,IAAI,CAAA;AAChD,iGAAiG;AACjG,eAAO,MAAM,kCAAkC,IAAI,CAAA;AAInD,gGAAgG;AAChG,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAE7E;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,IAAI,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,GAC1B,eAAe,CAyBjB;AAOD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,EAAE,MAAM,MAAM,GACnB,UAAU,CAeZ;AAED,2FAA2F;AAC3F,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,UAAU,CAOZ;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GACnE,UAAU,CAaZ;AAED,gGAAgG;AAChG,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAI9D;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAEjF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConflictError, ValidationError, hasInitiativeKinds } from '@cat-factory/kernel';
|
|
2
|
-
import { INITIATIVE_ITEM_TERMINAL_STATUSES } from '@cat-factory/contracts';
|
|
2
|
+
import { INITIATIVE_ITEM_TERMINAL_STATUSES, INITIATIVE_PROSE_MAX, INITIATIVE_SHORT_MAX, } from '@cat-factory/contracts';
|
|
3
3
|
// Pure initiative computations — no IO, no ports — reused by the InitiativeService,
|
|
4
4
|
// the execution engine's runnable guard, and (later slices) the execution loop.
|
|
5
5
|
/** Turn a title into a stable, filesystem/URL-safe slug (the tracker folder name). */
|
|
@@ -199,4 +199,105 @@ export function initiativeProgress(initiative) {
|
|
|
199
199
|
total: items.length,
|
|
200
200
|
};
|
|
201
201
|
}
|
|
202
|
+
// ---------------------------------------------------------------------------
|
|
203
|
+
// Interactive planning interview (slice 2) — pure state transitions over the entity's
|
|
204
|
+
// `qa` + `interview` fields. The interviewer LLM (InitiativeInterviewService) decides WHAT
|
|
205
|
+
// to ask / synthesize; these apply the decision to the entity, and the InitiativeService
|
|
206
|
+
// wraps each in a CAS `mutate` so answering/continuing is a single-writer, replay-safe write.
|
|
207
|
+
// ---------------------------------------------------------------------------
|
|
208
|
+
/** How many interviewer passes may run before the loop is force-converged. */
|
|
209
|
+
export const INITIATIVE_MAX_INTERVIEW_ROUNDS = 4;
|
|
210
|
+
/** Upper bound on questions the interviewer may ask in one round (keeps the gate answerable). */
|
|
211
|
+
export const INITIATIVE_MAX_INTERVIEW_QUESTIONS = 8;
|
|
212
|
+
const clampShort = (s) => s.trim().slice(0, INITIATIVE_SHORT_MAX);
|
|
213
|
+
/**
|
|
214
|
+
* Leniently coerce the interviewer's JSON into an {@link InterviewOutput}. `finalize` forces
|
|
215
|
+
* convergence (the human proceeded, or the round cap was hit) regardless of what the model
|
|
216
|
+
* returned. Empty/absent questions also mean convergence — nothing left to ask.
|
|
217
|
+
*/
|
|
218
|
+
export function coerceInterviewOutput(parsed, opts) {
|
|
219
|
+
const obj = (typeof parsed === 'object' && parsed !== null ? parsed : {});
|
|
220
|
+
const questions = Array.isArray(obj.questions)
|
|
221
|
+
? obj.questions
|
|
222
|
+
.filter((q) => typeof q === 'string' && q.trim().length > 0)
|
|
223
|
+
.map(clampShort)
|
|
224
|
+
.slice(0, INITIATIVE_MAX_INTERVIEW_QUESTIONS)
|
|
225
|
+
: [];
|
|
226
|
+
const strList = (v) => Array.isArray(v)
|
|
227
|
+
? v.filter((x) => typeof x === 'string' && x.trim().length > 0).map(clampShort)
|
|
228
|
+
: [];
|
|
229
|
+
const done = opts.finalize || obj.done === true || questions.length === 0;
|
|
230
|
+
if (done) {
|
|
231
|
+
return {
|
|
232
|
+
kind: 'done',
|
|
233
|
+
goal: typeof obj.goal === 'string' ? clampShort(obj.goal) : '',
|
|
234
|
+
constraints: strList(obj.constraints),
|
|
235
|
+
nonGoals: strList(obj.nonGoals),
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
return { kind: 'questions', questions };
|
|
239
|
+
}
|
|
240
|
+
/** Only the answered exchanges — the digest that survives onto the tracker. */
|
|
241
|
+
function answeredQa(initiative) {
|
|
242
|
+
return (initiative.qa ?? []).filter((q) => (q.answer ?? '').trim().length > 0);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Append a fresh round of pending questions: keep the answered digest, drop any prior-round
|
|
246
|
+
* questions the human skipped, and add the new ones with stable ids. Bumps the interview
|
|
247
|
+
* round and parks it `awaiting`.
|
|
248
|
+
*/
|
|
249
|
+
export function applyInterviewQuestions(initiative, questions, nextId) {
|
|
250
|
+
const pending = questions.map((question) => ({
|
|
251
|
+
id: nextId(),
|
|
252
|
+
question: clampShort(question),
|
|
253
|
+
answer: '',
|
|
254
|
+
}));
|
|
255
|
+
return {
|
|
256
|
+
...initiative,
|
|
257
|
+
qa: [...answeredQa(initiative), ...pending],
|
|
258
|
+
interview: {
|
|
259
|
+
round: (initiative.interview?.round ?? 0) + 1,
|
|
260
|
+
maxRounds: initiative.interview?.maxRounds ?? INITIATIVE_MAX_INTERVIEW_ROUNDS,
|
|
261
|
+
status: 'awaiting',
|
|
262
|
+
},
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
/** Record the human's answer to one pending question (matched by id). No-op if unknown. */
|
|
266
|
+
export function applyInterviewAnswer(initiative, questionId, answer) {
|
|
267
|
+
return {
|
|
268
|
+
...initiative,
|
|
269
|
+
qa: (initiative.qa ?? []).map((q) => q.id === questionId ? { ...q, answer: clampShort(answer) } : q),
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Converge the interview: keep only the answered digest, fold the synthesized brief onto the
|
|
274
|
+
* entity (goal/constraints/nonGoals — a blank synthesized goal keeps the existing one), and
|
|
275
|
+
* mark the interview `done`. The initiative's own `status` stays `planning` (the planner
|
|
276
|
+
* ingest flips it to `awaiting_approval` later).
|
|
277
|
+
*/
|
|
278
|
+
export function applyInterviewOutcome(initiative, outcome) {
|
|
279
|
+
return {
|
|
280
|
+
...initiative,
|
|
281
|
+
qa: answeredQa(initiative),
|
|
282
|
+
goal: outcome.goal.trim() || initiative.goal || '',
|
|
283
|
+
constraints: outcome.constraints,
|
|
284
|
+
nonGoals: outcome.nonGoals,
|
|
285
|
+
interview: {
|
|
286
|
+
round: initiative.interview?.round ?? 1,
|
|
287
|
+
maxRounds: initiative.interview?.maxRounds ?? INITIATIVE_MAX_INTERVIEW_ROUNDS,
|
|
288
|
+
status: 'done',
|
|
289
|
+
},
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
/** Whether the interviewer must force-converge on the next pass (the round cap was reached). */
|
|
293
|
+
export function interviewAtCap(initiative) {
|
|
294
|
+
const state = initiative.interview;
|
|
295
|
+
if (!state)
|
|
296
|
+
return false;
|
|
297
|
+
return state.round >= state.maxRounds;
|
|
298
|
+
}
|
|
299
|
+
/** Fold the analyst's codebase-analysis prose onto the entity. */
|
|
300
|
+
export function applyAnalysis(initiative, summary) {
|
|
301
|
+
return { ...initiative, analysisSummary: summary.trim().slice(0, INITIATIVE_PROSE_MAX) };
|
|
302
|
+
}
|
|
202
303
|
//# sourceMappingURL=initiative.logic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initiative.logic.js","sourceRoot":"","sources":["../../../src/modules/initiative/initiative.logic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"initiative.logic.js","sourceRoot":"","sources":["../../../src/modules/initiative/initiative.logic.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxF,OAAO,EACL,iCAAiC,EACjC,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAE/B,oFAAoF;AACpF,gFAAgF;AAEhF,sFAAsF;AACtF,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,IAAI,GAAG,KAAK;SACf,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACf,OAAO,IAAI,IAAI,YAAY,CAAA;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAY,EAAE,UAA6B;IACtF,MAAM,eAAe,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACtD,IAAI,eAAe,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;QACpD,MAAM,IAAI,aAAa,CACrB,6EAA6E,CAC9E,CAAA;IACH,CAAC;IACD,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;QACrD,MAAM,IAAI,aAAa,CACrB,mFAAmF,CACpF,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA0B;IAC1D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,SAAQ;QACvB,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,uBAAuB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;QACzF,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACxB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,SAAQ;QACtB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,sBAAsB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACrF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,eAAe,CACvB,SAAS,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,+BAA+B,IAAI,CAAC,OAAO,GAAG,CAC7E,CAAA;QACH,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,eAAe,CACvB,SAAS,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,8BAA8B,GAAG,GAAG,CACnE,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,mEAAmE;IACnE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAQ,EAAE;QACjC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAM;QACxB,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAA;QACxF,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAChB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACnB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACd,CAAC,CAAA;IACD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE;YAAE,KAAK,CAAC,EAAE,CAAC,CAAA;AACjD,CAAC;AAED,6EAA6E;AAC7E,SAAS,YAAY,CAAC,IAAY,EAAE,KAAkB;IACpD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,SAAS,GAAG,IAAI,CAAA;IACpB,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,CAAA;IACzD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACpB,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAsB,EACtB,KAA0B,EAC1B,GAAW;IAEX,gFAAgF;IAChF,iFAAiF;IACjF,qEAAqE;IACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAC7E,CAAA;IACD,MAAM,MAAM,GAAsB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC3C,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;QAClB,GAAG,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7E,CAAC,CAAC,CAAA;IAEH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7E,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAC5E,CAAA;IACD,MAAM,KAAK,GAAqB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpD,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACnC,OAAO;YACL,EAAE;YACF,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;YAChC,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;YAC5B,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,SAAS;YAClC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,uFAAuF;IACvF,0FAA0F;IAC1F,0FAA0F;IAC1F,2FAA2F;IAC3F,wFAAwF;IACxF,uFAAuF;IACvF,uDAAuD;IACvD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACpD,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAChF,CAAA;IAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACrF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;IACrC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAClD,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QAC7C,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACvC,OAAO;YACL,EAAE;YACF,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,GAAG;YACpB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;YACtB,MAAM,EAAE,KAAK,EAAE,MAAM,IAAK,UAAoB;SAC/C,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,UAAU;QACb,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QACtB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;QACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;QAC5C,MAAM;QACN,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,SAAS,CAAC;QAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS;QACT,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;QAC5B,4EAA4E;QAC5E,0EAA0E;QAC1E,2EAA2E;QAC3E,MAAM,EACJ,UAAU,CAAC,MAAM,KAAK,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,mBAAmB;YAC3E,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,UAAU,CAAC,MAAM;KACxB,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAsB;IACvD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,CAAA;IACpC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CACrB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAClF,CAAA;QACD,IAAI,IAAI;YAAE,OAAO,KAAK,CAAA;IACxB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAAC,UAAsB;IACvD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,CAAA;IACpC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACjF,KAAK,EAAE,KAAK,CAAC,MAAM;KACpB,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,sFAAsF;AACtF,2FAA2F;AAC3F,yFAAyF;AACzF,8FAA8F;AAC9F,8EAA8E;AAE9E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAA;AAChD,iGAAiG;AACjG,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAA;AAEnD,MAAM,UAAU,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAA;AAOjF;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAe,EACf,IAA2B;IAE3B,MAAM,GAAG,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAGvE,CAAA;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QAC5C,CAAC,CAAC,GAAG,CAAC,SAAS;aACV,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;aACxE,GAAG,CAAC,UAAU,CAAC;aACf,KAAK,CAAC,CAAC,EAAE,kCAAkC,CAAC;QACjD,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,OAAO,GAAG,CAAC,CAAU,EAAY,EAAE,CACvC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACd,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;QAC5F,CAAC,CAAC,EAAE,CAAA;IACR,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAA;IACzE,IAAI,IAAI,EAAE,CAAC;QACT,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAC9D,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;YACrC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;SAChC,CAAA;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA;AACzC,CAAC;AAED,+EAA+E;AAC/E,SAAS,UAAU,CAAC,UAAsB;IACxC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAsB,EACtB,SAAmB,EACnB,MAAoB;IAEpB,MAAM,OAAO,GAAmB,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC3D,EAAE,EAAE,MAAM,EAAE;QACZ,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;QAC9B,MAAM,EAAE,EAAE;KACX,CAAC,CAAC,CAAA;IACH,OAAO;QACL,GAAG,UAAU;QACb,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,OAAO,CAAC;QAC3C,SAAS,EAAE;YACT,KAAK,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC;YAC7C,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,IAAI,+BAA+B;YAC7E,MAAM,EAAE,UAAU;SACnB;KACF,CAAA;AACH,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,oBAAoB,CAClC,UAAsB,EACtB,UAAkB,EAClB,MAAc;IAEd,OAAO;QACL,GAAG,UAAU;QACb,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAC/D;KACF,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAsB,EACtB,OAAoE;IAEpE,OAAO;QACL,GAAG,UAAU;QACb,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE;QAClD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE;YACT,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC;YACvC,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,IAAI,+BAA+B;YAC7E,MAAM,EAAE,MAAM;SACf;KACF,CAAA;AACH,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,cAAc,CAAC,UAAsB;IACnD,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAA;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,OAAO,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,CAAA;AACvC,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,aAAa,CAAC,UAAsB,EAAE,OAAe;IACnE,OAAO,EAAE,GAAG,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,EAAE,CAAA;AAC1F,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/orchestration",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.64.0",
|
|
4
4
|
"description": "Delivery-workflow engine for the Agent Architecture Board (execution, bootstrap, pipelines, board, boardScan, requirements, and composition root).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,19 +25,19 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"ai": "^6.0.214",
|
|
28
|
-
"@cat-factory/agents": "0.
|
|
29
|
-
"@cat-factory/contracts": "0.
|
|
30
|
-
"@cat-factory/integrations": "0.
|
|
31
|
-
"@cat-factory/kernel": "0.
|
|
32
|
-
"@cat-factory/prompt-fragments": "0.9.
|
|
33
|
-
"@cat-factory/sandbox": "0.8.
|
|
34
|
-
"@cat-factory/spend": "0.10.
|
|
35
|
-
"@cat-factory/workspaces": "0.11.
|
|
28
|
+
"@cat-factory/agents": "0.30.0",
|
|
29
|
+
"@cat-factory/contracts": "0.90.0",
|
|
30
|
+
"@cat-factory/integrations": "0.59.0",
|
|
31
|
+
"@cat-factory/kernel": "0.78.0",
|
|
32
|
+
"@cat-factory/prompt-fragments": "0.9.50",
|
|
33
|
+
"@cat-factory/sandbox": "0.8.95",
|
|
34
|
+
"@cat-factory/spend": "0.10.84",
|
|
35
|
+
"@cat-factory/workspaces": "0.11.2"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"typescript": "7.0.1-rc",
|
|
39
39
|
"vitest": "^4.1.9",
|
|
40
|
-
"@cat-factory/sandbox-fixtures": "0.7.
|
|
40
|
+
"@cat-factory/sandbox-fixtures": "0.7.103"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
43
|
"build": "tsc -b tsconfig.build.json",
|