@cat-factory/orchestration 0.11.0 → 0.12.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.
@@ -1,6 +1,8 @@
1
- import { REVIEW_SYSTEM_PROMPT, REWORK_SYSTEM_PROMPT } from '@cat-factory/agents';
1
+ import { assertFound, ValidationError } from '@cat-factory/kernel';
2
+ import { generateText } from 'ai';
3
+ import { catFactoryObservability, providerWebSearchTools, REVIEW_SYSTEM_PROMPT, REWORK_SYSTEM_PROMPT, WRITER_SYSTEM_PROMPT, } from '@cat-factory/agents';
2
4
  import { IterativeReviewService, } from '../review/IterativeReviewService.js';
3
- import { buildReviewPrompt, buildReworkPrompt, } from './requirements.logic.js';
5
+ import { buildRecommendationPrompt, buildReviewPrompt, buildReworkPrompt, coerceRecommendations, extractJson, } from './requirements.logic.js';
4
6
  /**
5
7
  * The requirements-review agent: a single LLM call reviews a block's collected requirements
6
8
  * (description + linked PRD/RFC docs + tracker issues) and raises questions/challenges,
@@ -12,11 +14,17 @@ export class RequirementReviewService extends IterativeReviewService {
12
14
  repository;
13
15
  documentRepository;
14
16
  taskRepository;
17
+ resolveRunRepoContext;
18
+ resolveBlockFragments;
19
+ webSearch;
15
20
  constructor(deps) {
16
21
  super(deps);
17
22
  this.repository = deps.requirementReviewRepository;
18
23
  this.documentRepository = deps.documentRepository;
19
24
  this.taskRepository = deps.taskRepository;
25
+ this.resolveRunRepoContext = deps.resolveRunRepoContext;
26
+ this.resolveBlockFragments = deps.resolveBlockFragments;
27
+ this.webSearch = deps.webSearch;
20
28
  }
21
29
  entityName = 'Requirement review';
22
30
  reviewerLabel = 'requirements reviewer';
@@ -53,7 +61,232 @@ export class RequirementReviewService extends IterativeReviewService {
53
61
  return { ...review, incorporatedRequirements: doc };
54
62
  }
55
63
  newReview(common) {
56
- return { ...common, incorporatedRequirements: null };
64
+ return { ...common, incorporatedRequirements: null, recommendations: [] };
65
+ }
66
+ // ---- Requirement Writer (the second companion: grounded recommendations) -----------
67
+ /** Whether the Writer can run (same model gate as the reviewer). */
68
+ get writerEnabled() {
69
+ return this.enabled;
70
+ }
71
+ /**
72
+ * Recommend grounded answers for a batch of findings the human marked "recommend something".
73
+ * Marks those items `recommend_requested`, then runs the Requirement Writer LLM — grounded on
74
+ * the block's best-practice fragments (FIRST), the in-repo `spec/`/`tech-spec/`, and web search
75
+ * — and appends one `ready` recommendation per finding. NOT AI-reviewed; the human decides.
76
+ * Runs in parallel with incorporation (the driver awaits both). Best-effort: a Writer failure
77
+ * still leaves the items `recommend_requested` so the human can answer manually.
78
+ */
79
+ async recommend(workspaceId, reviewId, itemIds, note) {
80
+ const targetIds = new Set(itemIds);
81
+ // Mark the targeted findings `recommend_requested` up front in a fresh read-modify-write, so
82
+ // the marks are durable even if the Writer LLM then fails (the human can still answer manually).
83
+ const marked = await this.markRecommendRequested(workspaceId, reviewId, targetIds);
84
+ const block = assertFound(await this.deps.blockRepository.get(workspaceId, marked.blockId), 'Block', marked.blockId);
85
+ const findings = marked.items.filter((i) => targetIds.has(i.id) && i.status === 'recommend_requested');
86
+ if (findings.length === 0)
87
+ return marked;
88
+ const { modelProvider, ref } = await this.resolveModel(workspaceId, block);
89
+ const context = await this.gatherContext(workspaceId, block);
90
+ const fragments = (await this.resolveBlockFragments?.(workspaceId, block.id)) ?? [];
91
+ const grounding = await this.gatherGrounding(workspaceId, block, findings, fragments);
92
+ let suggestions;
93
+ try {
94
+ const model = modelProvider.resolve(ref);
95
+ const result = await generateText({
96
+ model,
97
+ system: WRITER_SYSTEM_PROMPT,
98
+ prompt: buildRecommendationPrompt(context, findings, grounding, note),
99
+ temperature: 0.2,
100
+ maxOutputTokens: 6000,
101
+ // Provider-hosted web search when the model supports it (Anthropic/OpenAI); the
102
+ // gateway-RAG `webResults` already folded into the prompt cover other providers.
103
+ ...(providerWebSearchTools(ref.provider)
104
+ ? { tools: providerWebSearchTools(ref.provider) }
105
+ : {}),
106
+ providerOptions: catFactoryObservability({ agentKind: 'requirements-writer', workspaceId }),
107
+ });
108
+ suggestions = coerceRecommendations(extractJson(result.text));
109
+ }
110
+ catch (e) {
111
+ throw new ValidationError(`The requirement writer (${ref.provider}:${ref.model}) failed: ${e instanceof Error ? e.message : String(e)}`);
112
+ }
113
+ // Re-read fresh: the Writer call above can take several seconds, during which the human may
114
+ // have answered/dismissed other findings. Append our recommendations onto the LATEST review
115
+ // rather than upserting the pre-LLM snapshot (which would clobber those concurrent edits).
116
+ const review = assertFound(await this.repository.get(workspaceId, reviewId), this.entityName, reviewId);
117
+ const now = this.deps.clock.now();
118
+ const fragmentById = new Map(fragments.map((f) => [f.id, f]));
119
+ const recommendations = [...review.recommendations];
120
+ for (const finding of findings) {
121
+ const suggestion = suggestions.get(finding.id);
122
+ if (!suggestion)
123
+ continue;
124
+ const standard = suggestion.fromStandard
125
+ ? fragmentById.get(suggestion.fromStandard)
126
+ : undefined;
127
+ recommendations.push({
128
+ id: this.deps.idGenerator.next('rec'),
129
+ sourceFinding: { title: finding.title, detail: finding.detail },
130
+ recommendedText: suggestion.recommendation,
131
+ status: 'ready',
132
+ note: note?.trim() || null,
133
+ groundedInFragment: standard ? { id: standard.id, title: standard.title } : null,
134
+ createdAt: now,
135
+ updatedAt: now,
136
+ });
137
+ }
138
+ const updated = { ...review, recommendations, updatedAt: now };
139
+ await this.repository.upsert(workspaceId, updated);
140
+ return updated;
141
+ }
142
+ /**
143
+ * Mark the targeted, non-dismissed findings `recommend_requested` in a fresh read-modify-write.
144
+ * A standalone durable write (not folded into {@link recommend}'s trailing upsert) so the marks
145
+ * survive a subsequent Writer-LLM failure.
146
+ */
147
+ async markRecommendRequested(workspaceId, reviewId, targetIds) {
148
+ const review = assertFound(await this.repository.get(workspaceId, reviewId), this.entityName, reviewId);
149
+ const now = this.deps.clock.now();
150
+ let changed = false;
151
+ for (const item of review.items) {
152
+ if (targetIds.has(item.id) &&
153
+ item.status !== 'dismissed' &&
154
+ item.status !== 'recommend_requested') {
155
+ item.status = 'recommend_requested';
156
+ item.updatedAt = now;
157
+ changed = true;
158
+ }
159
+ }
160
+ if (changed) {
161
+ review.updatedAt = now;
162
+ await this.repository.upsert(workspaceId, review);
163
+ }
164
+ return review;
165
+ }
166
+ /**
167
+ * Accept a recommendation: it becomes the source finding's answer (the matching item flips
168
+ * to `answered`) so the NEXT incorporation folds it in. Match by the snapshotted finding
169
+ * title/detail since item ids churn across re-reviews.
170
+ */
171
+ async acceptRecommendation(workspaceId, reviewId, recId) {
172
+ return this.mutateRecommendation(workspaceId, reviewId, recId, (rec, review, now) => {
173
+ rec.status = 'accepted';
174
+ const item = review.items.find((i) => i.title === rec.sourceFinding.title && i.detail === rec.sourceFinding.detail);
175
+ if (item) {
176
+ item.reply = rec.recommendedText;
177
+ item.status = 'answered';
178
+ item.updatedAt = now;
179
+ }
180
+ });
181
+ }
182
+ /** Reject a recommendation (the human will dismiss / answer manually / re-request). */
183
+ async rejectRecommendation(workspaceId, reviewId, recId) {
184
+ return this.mutateRecommendation(workspaceId, reviewId, recId, (rec) => {
185
+ rec.status = 'rejected';
186
+ });
187
+ }
188
+ /**
189
+ * Re-request a single recommendation with a "do it differently" note: re-runs the Writer for
190
+ * just that finding and replaces the suggestion text (back to `ready`).
191
+ */
192
+ async reRequestRecommendation(workspaceId, reviewId, recId, note) {
193
+ const initial = assertFound(await this.repository.get(workspaceId, reviewId), this.entityName, reviewId);
194
+ const rec0 = initial.recommendations.find((r) => r.id === recId);
195
+ if (!rec0)
196
+ throw new ValidationError(`Recommendation '${recId}' not found`);
197
+ const item = initial.items.find((i) => i.title === rec0.sourceFinding.title && i.detail === rec0.sourceFinding.detail);
198
+ if (!item)
199
+ throw new ValidationError('The finding this recommendation answers no longer exists');
200
+ const block = assertFound(await this.deps.blockRepository.get(workspaceId, initial.blockId), 'Block', initial.blockId);
201
+ const { modelProvider, ref } = await this.resolveModel(workspaceId, block);
202
+ const context = await this.gatherContext(workspaceId, block);
203
+ const fragments = (await this.resolveBlockFragments?.(workspaceId, block.id)) ?? [];
204
+ const grounding = await this.gatherGrounding(workspaceId, block, [item], fragments);
205
+ let suggestions;
206
+ try {
207
+ const model = modelProvider.resolve(ref);
208
+ const result = await generateText({
209
+ model,
210
+ system: WRITER_SYSTEM_PROMPT,
211
+ prompt: buildRecommendationPrompt(context, [item], grounding, note),
212
+ temperature: 0.2,
213
+ maxOutputTokens: 6000,
214
+ ...(providerWebSearchTools(ref.provider)
215
+ ? { tools: providerWebSearchTools(ref.provider) }
216
+ : {}),
217
+ providerOptions: catFactoryObservability({ agentKind: 'requirements-writer', workspaceId }),
218
+ });
219
+ suggestions = coerceRecommendations(extractJson(result.text));
220
+ }
221
+ catch (e) {
222
+ throw new ValidationError(`The requirement writer (${ref.provider}:${ref.model}) failed: ${e instanceof Error ? e.message : String(e)}`);
223
+ }
224
+ const suggestion = suggestions.get(item.id);
225
+ // Re-read fresh so concurrent answer/dismiss edits made during the (multi-second) Writer call
226
+ // aren't clobbered — mutate only this recommendation on the LATEST review.
227
+ const review = assertFound(await this.repository.get(workspaceId, reviewId), this.entityName, reviewId);
228
+ const rec = review.recommendations.find((r) => r.id === recId);
229
+ if (!rec)
230
+ throw new ValidationError(`Recommendation '${recId}' not found`);
231
+ const now = this.deps.clock.now();
232
+ if (suggestion) {
233
+ const fragmentById = new Map(fragments.map((f) => [f.id, f]));
234
+ const standard = suggestion.fromStandard
235
+ ? fragmentById.get(suggestion.fromStandard)
236
+ : undefined;
237
+ rec.recommendedText = suggestion.recommendation;
238
+ rec.groundedInFragment = standard ? { id: standard.id, title: standard.title } : null;
239
+ }
240
+ rec.status = 'ready';
241
+ rec.note = note.trim() || null;
242
+ rec.updatedAt = now;
243
+ review.updatedAt = now;
244
+ await this.repository.upsert(workspaceId, review);
245
+ return review;
246
+ }
247
+ async mutateRecommendation(workspaceId, reviewId, recId, mutate) {
248
+ const review = assertFound(await this.repository.get(workspaceId, reviewId), this.entityName, reviewId);
249
+ const rec = review.recommendations.find((r) => r.id === recId);
250
+ if (!rec)
251
+ throw new ValidationError(`Recommendation '${recId}' not found`);
252
+ const now = this.deps.clock.now();
253
+ mutate(rec, review, now);
254
+ rec.updatedAt = now;
255
+ review.updatedAt = now;
256
+ await this.repository.upsert(workspaceId, review);
257
+ return review;
258
+ }
259
+ /**
260
+ * Gather the Writer's grounding material: best-practice fragments (passed in), in-repo
261
+ * `spec/`/`tech-spec/` overviews (via RepoFiles when wired), and gateway-RAG web snippets
262
+ * (when wired). All best-effort — any source that errors or is unwired is simply omitted.
263
+ */
264
+ async gatherGrounding(workspaceId, block, findings, fragments) {
265
+ const specExcerpts = [];
266
+ try {
267
+ const ctx = await this.resolveRunRepoContext?.(workspaceId, block.id);
268
+ if (ctx) {
269
+ for (const path of ['spec/overview.md', 'tech-spec/overview.md']) {
270
+ const file = await ctx.repo.getFile(path, ctx.baseBranch);
271
+ if (file?.content)
272
+ specExcerpts.push(`#### ${path}\n${file.content}`);
273
+ }
274
+ }
275
+ }
276
+ catch {
277
+ // best-effort grounding
278
+ }
279
+ let webResults = [];
280
+ if (this.webSearch) {
281
+ try {
282
+ const query = findings.map((f) => f.title).join('; ');
283
+ webResults = await this.webSearch(workspaceId, query);
284
+ }
285
+ catch {
286
+ webResults = [];
287
+ }
288
+ }
289
+ return { fragments, specExcerpts, webResults };
57
290
  }
58
291
  /** Assemble the block's collected requirements + any linked docs/issues. */
59
292
  async gatherContext(workspaceId, block) {
@@ -1 +1 @@
1
- {"version":3,"file":"RequirementReviewService.js","sourceRoot":"","sources":["../../../src/modules/requirements/RequirementReviewService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RequirementReviewService.js","sourceRoot":"","sources":["../../../src/modules/requirements/RequirementReviewService.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,44 @@ export declare function coerceReviewItems(raw: unknown, newId: () => string, now
56
56
  * `@cat-factory/agents`) defines the required output structure.
57
57
  */
58
58
  export declare function buildReworkPrompt(ctx: RequirementsContext, items: RequirementReviewItem[]): string;
59
+ /** A best-practice fragment (team/org standard) made available to the Requirement Writer. */
60
+ export interface GroundingFragment {
61
+ id: string;
62
+ title: string;
63
+ body: string;
64
+ }
65
+ /** A web-search result folded into the Writer prompt (gateway-RAG grounding). */
66
+ export interface GroundingWebResult {
67
+ title: string;
68
+ url: string;
69
+ content: string;
70
+ }
71
+ /** Everything the Requirement Writer grounds a recommendation on, in precedence order. */
72
+ export interface RecommendationGrounding {
73
+ /** Team/org standards — checked FIRST; a match becomes the recommendation (current standard). */
74
+ fragments: GroundingFragment[];
75
+ /** Relevant in-repo `spec/` (business) + `tech-spec/` (technical) excerpts, pre-rendered. */
76
+ specExcerpts: string[];
77
+ /** Web-search snippets for what the project material leaves open (gateway-RAG path). */
78
+ webResults: GroundingWebResult[];
79
+ }
80
+ /**
81
+ * Build the Requirement Writer's user prompt: the findings to answer, then the grounding
82
+ * material in precedence order (best-practice fragments → in-repo spec/tech-spec excerpts →
83
+ * web-search snippets). The {@link WRITER_SYSTEM_PROMPT} (in `@cat-factory/agents`) defines
84
+ * the strict JSON output shape and the precedence rule. `note` is an optional human "do it
85
+ * differently" steer for a single re-requested recommendation.
86
+ */
87
+ export declare function buildRecommendationPrompt(ctx: RequirementsContext, findings: RequirementReviewItem[], grounding: RecommendationGrounding, note?: string): string;
88
+ /**
89
+ * Coerce the Requirement Writer's parsed JSON into a map of itemId → { recommendation,
90
+ * fromStandard }. Tolerant of a bare array or a `{recommendations:[...]}` wrapper; entries
91
+ * missing a recommendation string are dropped.
92
+ */
93
+ export declare function coerceRecommendations(raw: unknown): Map<string, {
94
+ recommendation: string;
95
+ fromStandard: string | null;
96
+ }>;
59
97
  /**
60
98
  * Whether an incorporation pass has anything to fold in: at least one finding the human
61
99
  * answered/resolved with a non-empty reply, or a freeform "do it differently" feedback.
@@ -1 +1 @@
1
- {"version":3,"file":"requirements.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/requirements/requirements.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,uBAAuB,EACvB,qBAAqB,EAGtB,MAAM,qBAAqB,CAAA;AAa5B,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,+EAA+E;AAC/E,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC,CAAA;IACpD,IAAI,EAAE,gBAAgB,EAAE,CAAA;IACxB,KAAK,EAAE,iBAAiB,EAAE,CAAA;IAC1B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAyBnE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAwBlE;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASjD;AAgBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,MAAM,MAAM,EACnB,GAAG,EAAE,MAAM,GACV,qBAAqB,EAAE,CA2BzB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,qBAAqB,EAAE,GAC7B,MAAM,CA6CR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAKhG;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAA;AAErE;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,qBAAqB,EAAE,EAC9B,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,uBAAuB,CAAA;CAAE,GAC5F,iBAAiB,CAOnB"}
1
+ {"version":3,"file":"requirements.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/requirements/requirements.logic.ts"],"names":[],"mappings":"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"}
@@ -166,6 +166,72 @@ export function buildReworkPrompt(ctx, items) {
166
166
  'revised requirements only.');
167
167
  return lines.join('\n');
168
168
  }
169
+ /**
170
+ * Build the Requirement Writer's user prompt: the findings to answer, then the grounding
171
+ * material in precedence order (best-practice fragments → in-repo spec/tech-spec excerpts →
172
+ * web-search snippets). The {@link WRITER_SYSTEM_PROMPT} (in `@cat-factory/agents`) defines
173
+ * the strict JSON output shape and the precedence rule. `note` is an optional human "do it
174
+ * differently" steer for a single re-requested recommendation.
175
+ */
176
+ export function buildRecommendationPrompt(ctx, findings, grounding, note) {
177
+ const lines = [
178
+ 'Recommend an answer for each of these requirements-review findings:',
179
+ '',
180
+ ];
181
+ for (const f of findings) {
182
+ lines.push(`- itemId: ${f.id}`);
183
+ lines.push(` category: ${f.category} (severity ${f.severity})`);
184
+ lines.push(` finding: ${f.title} — ${f.detail}`);
185
+ }
186
+ lines.push('', 'Context — the work under review:', '', renderRequirements(ctx));
187
+ if (grounding.fragments.length) {
188
+ lines.push('', 'BEST-PRACTICE STANDARDS (team/org standards — check these FIRST; if one settles a ' +
189
+ 'finding, recommend exactly that and return its id as "fromStandard"):', '');
190
+ for (const fr of grounding.fragments)
191
+ lines.push(`### standard ${fr.id}: ${fr.title}`, fr.body, '');
192
+ }
193
+ if (grounding.specExcerpts.length) {
194
+ lines.push('', 'IN-REPO SPECIFICATIONS (business `spec/` + technical `tech-spec/`):', '');
195
+ for (const ex of grounding.specExcerpts)
196
+ lines.push(ex, '');
197
+ }
198
+ if (grounding.webResults.length) {
199
+ lines.push('', 'WEB SEARCH RESULTS (for what the project material leaves open):', '');
200
+ for (const w of grounding.webResults)
201
+ lines.push(`### ${w.title} (${w.url})`, w.content, '');
202
+ }
203
+ if (note?.trim()) {
204
+ lines.push('', 'The human REJECTED your previous suggestion for one finding and asked you to try ' +
205
+ 'again with this steer — follow it closely:', '', note.trim());
206
+ }
207
+ lines.push('', 'Return ONLY the JSON object described in your instructions (one entry per itemId above).');
208
+ return lines.join('\n');
209
+ }
210
+ /**
211
+ * Coerce the Requirement Writer's parsed JSON into a map of itemId → { recommendation,
212
+ * fromStandard }. Tolerant of a bare array or a `{recommendations:[...]}` wrapper; entries
213
+ * missing a recommendation string are dropped.
214
+ */
215
+ export function coerceRecommendations(raw) {
216
+ const list = Array.isArray(raw?.recommendations)
217
+ ? raw.recommendations
218
+ : Array.isArray(raw)
219
+ ? raw
220
+ : [];
221
+ const out = new Map();
222
+ for (const entry of list) {
223
+ if (!entry || typeof entry !== 'object')
224
+ continue;
225
+ const obj = entry;
226
+ const itemId = asString(obj.itemId);
227
+ const recommendation = asString(obj.recommendation);
228
+ if (!itemId || !recommendation)
229
+ continue;
230
+ const fromStandard = asString(obj.fromStandard);
231
+ out.set(itemId, { recommendation, fromStandard: fromStandard || null });
232
+ }
233
+ return out;
234
+ }
169
235
  /**
170
236
  * Whether an incorporation pass has anything to fold in: at least one finding the human
171
237
  * answered/resolved with a non-empty reply, or a freeform "do it differently" feedback.
@@ -1 +1 @@
1
- {"version":3,"file":"requirements.logic.js","sourceRoot":"","sources":["../../../src/modules/requirements/requirements.logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requirements.logic.js","sourceRoot":"","sources":["../../../src/modules/requirements/requirements.logic.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/orchestration",
3
- "version": "0.11.0",
3
+ "version": "0.12.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,13 +25,13 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "ai": "^6.0.209",
28
- "@cat-factory/agents": "0.11.12",
29
- "@cat-factory/contracts": "0.17.0",
30
- "@cat-factory/integrations": "0.12.3",
31
- "@cat-factory/kernel": "0.16.1",
32
- "@cat-factory/spend": "0.8.14",
33
- "@cat-factory/prompt-fragments": "0.7.13",
34
- "@cat-factory/workspaces": "0.7.20"
28
+ "@cat-factory/agents": "0.11.14",
29
+ "@cat-factory/contracts": "0.18.0",
30
+ "@cat-factory/integrations": "0.13.0",
31
+ "@cat-factory/kernel": "0.17.0",
32
+ "@cat-factory/prompt-fragments": "0.7.15",
33
+ "@cat-factory/spend": "0.8.16",
34
+ "@cat-factory/workspaces": "0.7.22"
35
35
  },
36
36
  "devDependencies": {
37
37
  "typescript": "7.0.1-rc",