@cat-factory/orchestration 0.174.0 → 0.176.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.
Files changed (83) hide show
  1. package/dist/container/dependencies.d.ts +9 -1
  2. package/dist/container/dependencies.d.ts.map +1 -1
  3. package/dist/container/module-shapes.d.ts +5 -0
  4. package/dist/container/module-shapes.d.ts.map +1 -1
  5. package/dist/container/modules.d.ts +8 -20
  6. package/dist/container/modules.d.ts.map +1 -1
  7. package/dist/container/modules.js +20 -174
  8. package/dist/container/modules.js.map +1 -1
  9. package/dist/container/review-modules.d.ts +21 -0
  10. package/dist/container/review-modules.d.ts.map +1 -0
  11. package/dist/container/review-modules.js +203 -0
  12. package/dist/container/review-modules.js.map +1 -0
  13. package/dist/container.d.ts +3 -2
  14. package/dist/container.d.ts.map +1 -1
  15. package/dist/container.js +2 -1
  16. package/dist/container.js.map +1 -1
  17. package/dist/index.d.ts +2 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/modules/agentSettings/WorkspaceAgentSettingsService.d.ts +33 -0
  22. package/dist/modules/agentSettings/WorkspaceAgentSettingsService.d.ts.map +1 -0
  23. package/dist/modules/agentSettings/WorkspaceAgentSettingsService.js +54 -0
  24. package/dist/modules/agentSettings/WorkspaceAgentSettingsService.js.map +1 -0
  25. package/dist/modules/board/BoardService.d.ts +22 -22
  26. package/dist/modules/board/BoardService.d.ts.map +1 -1
  27. package/dist/modules/board/BoardService.js +42 -47
  28. package/dist/modules/board/BoardService.js.map +1 -1
  29. package/dist/modules/board/board.logic.d.ts +7 -0
  30. package/dist/modules/board/board.logic.d.ts.map +1 -1
  31. package/dist/modules/board/layoutWrites.d.ts +35 -0
  32. package/dist/modules/board/layoutWrites.d.ts.map +1 -0
  33. package/dist/modules/board/layoutWrites.js +74 -0
  34. package/dist/modules/board/layoutWrites.js.map +1 -0
  35. package/dist/modules/board/mountProjection.d.ts +21 -0
  36. package/dist/modules/board/mountProjection.d.ts.map +1 -0
  37. package/dist/modules/board/mountProjection.js +49 -0
  38. package/dist/modules/board/mountProjection.js.map +1 -0
  39. package/dist/modules/brainstorm/BrainstormService.d.ts +3 -2
  40. package/dist/modules/brainstorm/BrainstormService.d.ts.map +1 -1
  41. package/dist/modules/brainstorm/BrainstormService.js +14 -10
  42. package/dist/modules/brainstorm/BrainstormService.js.map +1 -1
  43. package/dist/modules/brainstorm/brainstorm.logic.d.ts +9 -1
  44. package/dist/modules/brainstorm/brainstorm.logic.d.ts.map +1 -1
  45. package/dist/modules/brainstorm/brainstorm.logic.js +15 -9
  46. package/dist/modules/brainstorm/brainstorm.logic.js.map +1 -1
  47. package/dist/modules/clarity/ClarityReviewService.d.ts +3 -3
  48. package/dist/modules/clarity/ClarityReviewService.d.ts.map +1 -1
  49. package/dist/modules/clarity/ClarityReviewService.js +5 -4
  50. package/dist/modules/clarity/ClarityReviewService.js.map +1 -1
  51. package/dist/modules/clarity/clarity.logic.d.ts +8 -1
  52. package/dist/modules/clarity/clarity.logic.d.ts.map +1 -1
  53. package/dist/modules/clarity/clarity.logic.js +14 -7
  54. package/dist/modules/clarity/clarity.logic.js.map +1 -1
  55. package/dist/modules/execution/AgentContextBuilder.d.ts +23 -1
  56. package/dist/modules/execution/AgentContextBuilder.d.ts.map +1 -1
  57. package/dist/modules/execution/AgentContextBuilder.js +36 -1
  58. package/dist/modules/execution/AgentContextBuilder.js.map +1 -1
  59. package/dist/modules/execution/ExecutionServiceDependencies.d.ts +8 -1
  60. package/dist/modules/execution/ExecutionServiceDependencies.d.ts.map +1 -1
  61. package/dist/modules/execution/gate-window-controllers.d.ts +1 -0
  62. package/dist/modules/execution/gate-window-controllers.d.ts.map +1 -1
  63. package/dist/modules/execution/run-context-admission.d.ts +1 -1
  64. package/dist/modules/execution/run-context-admission.d.ts.map +1 -1
  65. package/dist/modules/execution/run-context-admission.js +1 -0
  66. package/dist/modules/execution/run-context-admission.js.map +1 -1
  67. package/dist/modules/requirements/RequirementReviewService.d.ts +9 -2
  68. package/dist/modules/requirements/RequirementReviewService.d.ts.map +1 -1
  69. package/dist/modules/requirements/RequirementReviewService.js +77 -16
  70. package/dist/modules/requirements/RequirementReviewService.js.map +1 -1
  71. package/dist/modules/requirements/requirements.logic.d.ts +61 -21
  72. package/dist/modules/requirements/requirements.logic.d.ts.map +1 -1
  73. package/dist/modules/requirements/requirements.logic.js +109 -20
  74. package/dist/modules/requirements/requirements.logic.js.map +1 -1
  75. package/dist/modules/review/IterativeReviewService.d.ts +42 -3
  76. package/dist/modules/review/IterativeReviewService.d.ts.map +1 -1
  77. package/dist/modules/review/IterativeReviewService.js +31 -4
  78. package/dist/modules/review/IterativeReviewService.js.map +1 -1
  79. package/dist/modules/review/product-context.d.ts +23 -0
  80. package/dist/modules/review/product-context.d.ts.map +1 -0
  81. package/dist/modules/review/product-context.js +47 -0
  82. package/dist/modules/review/product-context.js.map +1 -0
  83. package/package.json +11 -11
@@ -1,4 +1,5 @@
1
- import type { Block, RequirementConcernLevel, RequirementReviewItem } from '@cat-factory/kernel';
1
+ import type { Block, OwnServiceContext, RequirementConcernLevel, RequirementReviewItem } from '@cat-factory/kernel';
2
+ import type { RecommendationSource } from '@cat-factory/contracts';
2
3
  /** A requirements/PRD/RFC document linked to the block as context. */
3
4
  export interface ReviewContextDoc {
4
5
  title: string;
@@ -18,11 +19,31 @@ export interface RequirementsContext {
18
19
  block: Pick<Block, 'title' | 'type' | 'description'>;
19
20
  docs: ReviewContextDoc[];
20
21
  tasks: ReviewContextTask[];
22
+ /**
23
+ * Which system this work belongs to — the enclosing service frame, or the positive reason there
24
+ * is none. The reviewer runs INLINE with no checkout, so this is its only means of knowing what
25
+ * software is under discussion; `renderProductContext` states the unresolved case rather than
26
+ * omitting it. Absent only for a caller that does not resolve it (a test fake), which renders
27
+ * nothing either way.
28
+ */
29
+ service?: OwnServiceContext;
30
+ /**
31
+ * One-paragraph intent lifted from the service repo's committed `spec/overview.md`, when the
32
+ * repo is readable. Grounds the reviewer in what the service actually is, beyond its board
33
+ * title. Absent when unwired, unreadable or empty.
34
+ */
35
+ specIntent?: string;
36
+ /**
37
+ * The converged direction an upstream `requirements-brainstorm` dialogue settled on. When
38
+ * present it is the primary subject the reviewer critiques — the rough description that fed the
39
+ * dialogue is kept ALONGSIDE it (see {@link renderRequirements}) rather than replaced.
40
+ */
41
+ refinedDirection?: string;
21
42
  /**
22
43
  * The standardized requirements document produced by a prior incorporation. When
23
44
  * present (a re-review or a redo), it is the authoritative requirements text the
24
- * reviewer/rework reasons over — the original description + linked context become
25
- * background reference. Absent on the first pass.
45
+ * reviewer/rework reasons over — the original description + linked context stay in the prompt
46
+ * as background reference. Absent on the first pass.
26
47
  */
27
48
  incorporatedDoc?: string;
28
49
  /**
@@ -32,12 +53,33 @@ export interface RequirementsContext {
32
53
  reworkFeedback?: string;
33
54
  }
34
55
  /**
35
- * Render the block's "collected requirements" as a single Markdown document the
36
- * standardized incorporated document when one exists (a later review/rework cycle),
37
- * else the block description, plus any linked PRD/RFC pages and tracker issues. Used
38
- * both as the reviewer's input and as the base the incorporate step rewrites.
56
+ * Render the system this work belongs to (shared renderersee `review/product-context.ts`, which
57
+ * holds why the unresolved case is stated rather than omitted), plus the service's own statement of
58
+ * intent from its committed `spec/overview.md` when one was readable.
59
+ */
60
+ export declare function renderProductContext(ctx: RequirementsContext): string[];
61
+ /**
62
+ * Render the block's "collected requirements" as a single Markdown document — the system the work
63
+ * belongs to, the current subject (the standardized incorporated document on a later cycle, else
64
+ * the brainstormed direction, else the raw description), and any linked PRD/RFC pages and tracker
65
+ * issues. Used both as the reviewer's input and as the base the incorporate step rewrites.
66
+ *
67
+ * A derived subject (an incorporated document, a brainstormed direction) NEVER displaces the
68
+ * requester's own words: it is rendered above them, and the original description stays in the
69
+ * prompt labelled as the original request. Displacement was how a single stray assumption became
70
+ * permanent — the incorporated document is authoritative on the next pass, so once one pass wrote
71
+ * an assumed product into it, no later pass could see the request it came from, and every
72
+ * re-review re-derived from the drifted text. Keeping the original in view is what lets both the
73
+ * reviewer and a human notice the drift.
39
74
  */
40
75
  export declare function renderRequirements(ctx: RequirementsContext): string;
76
+ /**
77
+ * Whether the context identifies the system under discussion. Read by the Requirement Writer path
78
+ * to decide whether a product-specific WEB SEARCH is legitimate: searching about a product the
79
+ * model had to guess at launders an invention into cited fact, which is far more convincing to a
80
+ * human than the guess would have been.
81
+ */
82
+ export declare function productIsIdentified(ctx: RequirementsContext): boolean;
41
83
  export declare function buildReviewPrompt(ctx: RequirementsContext): string;
42
84
  /** Pull the first JSON value out of a model response (tolerates code fences). */
43
85
  export { extractJson } from '@cat-factory/kernel';
@@ -85,15 +127,19 @@ export interface RecommendationGrounding {
85
127
  * differently" steer for a single re-requested recommendation.
86
128
  */
87
129
  export declare function buildRecommendationPrompt(ctx: RequirementsContext, findings: RequirementReviewItem[], grounding: RecommendationGrounding, note?: string): string;
130
+ /** One Writer suggestion as parsed off the model's reply, before it is persisted. */
131
+ export interface WriterSuggestion {
132
+ recommendation: string;
133
+ fromStandard: string | null;
134
+ /** The precedence level the Writer reports it came from; null when it reported none. */
135
+ groundedIn: RecommendationSource | null;
136
+ }
88
137
  /**
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
138
+ * Coerce the Requirement Writer's parsed JSON into a map of itemId → {@link WriterSuggestion}.
139
+ * Tolerant of a bare array or a `{recommendations:[...]}` wrapper; entries
91
140
  * missing a recommendation string are dropped.
92
141
  */
93
- export declare function coerceRecommendations(raw: unknown): Map<string, {
94
- recommendation: string;
95
- fromStandard: string | null;
96
- }>;
142
+ export declare function coerceRecommendations(raw: unknown): Map<string, WriterSuggestion>;
97
143
  /**
98
144
  * Coerce the Writer's JSON for a MULTI-finding chunk into a map keyed by FINDING id. Prefers the
99
145
  * echoed `itemId` to route each suggestion to its finding (so two findings that share an identical
@@ -104,10 +150,7 @@ export declare function coerceRecommendations(raw: unknown): Map<string, {
104
150
  * the order {@link buildRecommendationPrompt} lists them and asks the Writer to answer them in — so
105
151
  * a response that echoes no ids still routes correctly as long as it preserves that order.
106
152
  */
107
- export declare function coerceChunkRecommendations(raw: unknown, findings: RequirementReviewItem[]): Map<string, {
108
- recommendation: string;
109
- fromStandard: string | null;
110
- }>;
153
+ export declare function coerceChunkRecommendations(raw: unknown, findings: RequirementReviewItem[]): Map<string, WriterSuggestion>;
111
154
  /**
112
155
  * Coerce the Writer's JSON for a SINGLE-finding call. The per-finding recommendation flow
113
156
  * prompts the Writer with exactly one finding, so it must tolerate a missing/garbled `itemId`:
@@ -117,10 +160,7 @@ export declare function coerceChunkRecommendations(raw: unknown, findings: Requi
117
160
  * lone entry with a recommendation string, take it regardless of the id. Returns null only when
118
161
  * there is genuinely no usable recommendation.
119
162
  */
120
- export declare function coerceSingleRecommendation(raw: unknown, itemId: string): {
121
- recommendation: string;
122
- fromStandard: string | null;
123
- } | null;
163
+ export declare function coerceSingleRecommendation(raw: unknown, itemId: string): WriterSuggestion | null;
124
164
  /**
125
165
  * Resolve the live review item a recommendation answers. Prefers the snapshotted `itemId` (the
126
166
  * primary anchor, so two findings with identical title+detail stay distinct), then falls back to
@@ -1 +1 @@
1
- {"version":3,"file":"requirements.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/requirements/requirements.logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requirements.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/requirements/requirements.logic.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { REQUIREMENT_CONCERN_RANK } from '@cat-factory/contracts';
2
+ import { productIsIdentifiedFrom, renderProductContextLines } from '../review/product-context.js';
2
3
  // Pure logic for the requirements-review agent: assembling the "collected
3
4
  // requirements" text from a block + its linked context, building the review and
4
5
  // incorporate prompts, and coercing the model's JSON response into review items.
@@ -8,25 +9,59 @@ const CATEGORIES = ['gap', 'clarification', 'assumption', 'risk', 'question'];
8
9
  const SEVERITIES = ['low', 'medium', 'high'];
9
10
  const SEVERITY_RANK = { high: 0, medium: 1, low: 2 };
10
11
  /**
11
- * Render the block's "collected requirements" as a single Markdown document the
12
- * standardized incorporated document when one exists (a later review/rework cycle),
13
- * else the block description, plus any linked PRD/RFC pages and tracker issues. Used
14
- * both as the reviewer's input and as the base the incorporate step rewrites.
12
+ * Render the system this work belongs to (shared renderersee `review/product-context.ts`, which
13
+ * holds why the unresolved case is stated rather than omitted), plus the service's own statement of
14
+ * intent from its committed `spec/overview.md` when one was readable.
15
+ */
16
+ export function renderProductContext(ctx) {
17
+ return renderProductContextLines(ctx.service, 'reason', {
18
+ label: 'From the service specification (`spec/overview.md`):',
19
+ body: ctx.specIntent ?? '',
20
+ });
21
+ }
22
+ /**
23
+ * Render the block's "collected requirements" as a single Markdown document — the system the work
24
+ * belongs to, the current subject (the standardized incorporated document on a later cycle, else
25
+ * the brainstormed direction, else the raw description), and any linked PRD/RFC pages and tracker
26
+ * issues. Used both as the reviewer's input and as the base the incorporate step rewrites.
27
+ *
28
+ * A derived subject (an incorporated document, a brainstormed direction) NEVER displaces the
29
+ * requester's own words: it is rendered above them, and the original description stays in the
30
+ * prompt labelled as the original request. Displacement was how a single stray assumption became
31
+ * permanent — the incorporated document is authoritative on the next pass, so once one pass wrote
32
+ * an assumed product into it, no later pass could see the request it came from, and every
33
+ * re-review re-derived from the drifted text. Keeping the original in view is what lets both the
34
+ * reviewer and a human notice the drift.
15
35
  */
16
36
  export function renderRequirements(ctx) {
17
- const lines = ctx.incorporatedDoc?.trim()
37
+ const heading = [`# ${ctx.block.title} (${ctx.block.type})`, ...renderProductContext(ctx)];
38
+ const original = ctx.block.description?.trim();
39
+ const derived = ctx.incorporatedDoc?.trim()
40
+ ? {
41
+ title: 'Current standardized requirements (under review)',
42
+ body: ctx.incorporatedDoc.trim(),
43
+ }
44
+ : ctx.refinedDirection?.trim()
45
+ ? {
46
+ title: 'Requirements direction (agreed in the brainstorm)',
47
+ body: ctx.refinedDirection.trim(),
48
+ }
49
+ : undefined;
50
+ const lines = derived
18
51
  ? [
19
- `# ${ctx.block.title} (${ctx.block.type})`,
52
+ ...heading,
20
53
  '',
21
- '## Current standardized requirements (under review)',
22
- ctx.incorporatedDoc.trim(),
23
- ]
24
- : [
25
- `# ${ctx.block.title} (${ctx.block.type})`,
54
+ `## ${derived.title}`,
55
+ derived.body,
56
+ '',
57
+ '## Original request (as written by the requester)',
58
+ original || '(no description provided)',
26
59
  '',
27
- '## Description',
28
- ctx.block.description?.trim() || '(no description provided)',
29
- ];
60
+ 'The section above is derived from this original request. Where the two disagree about ' +
61
+ 'what is being built, treat the derived document as the current subject but FLAG the ' +
62
+ 'divergence — it means an earlier pass drifted.',
63
+ ]
64
+ : [...heading, '', '## Description', original || '(no description provided)'];
30
65
  if (ctx.docs.length) {
31
66
  lines.push('', '## Linked requirement / PRD / RFC documents');
32
67
  for (const d of ctx.docs)
@@ -40,12 +75,29 @@ export function renderRequirements(ctx) {
40
75
  }
41
76
  return lines.join('\n');
42
77
  }
78
+ /**
79
+ * Whether the context identifies the system under discussion. Read by the Requirement Writer path
80
+ * to decide whether a product-specific WEB SEARCH is legitimate: searching about a product the
81
+ * model had to guess at launders an invention into cited fact, which is far more convincing to a
82
+ * human than the guess would have been.
83
+ */
84
+ export function productIsIdentified(ctx) {
85
+ return productIsIdentifiedFrom(ctx.service);
86
+ }
43
87
  export function buildReviewPrompt(ctx) {
44
88
  return [
45
89
  'Here are the collected requirements to review:',
46
90
  '',
47
91
  renderRequirements(ctx),
48
92
  '',
93
+ ...(productIsIdentified(ctx)
94
+ ? []
95
+ : [
96
+ 'Note: the context above does not identify which system this work belongs to. Do not ' +
97
+ 'pick one. If knowing it matters for this work, raise THAT as a finding (a `gap` — ' +
98
+ 'which service / product is this for?) instead of assuming an answer.',
99
+ '',
100
+ ]),
49
101
  'Produce a JSON object of this exact shape:',
50
102
  '{',
51
103
  ' "items": [',
@@ -224,9 +276,28 @@ export function buildRecommendationPrompt(ctx, findings, grounding, note) {
224
276
  'recommend; the Architect step owns the design.', '', 'Return ONLY the JSON object described in your instructions (one entry per itemId above).');
225
277
  return lines.join('\n');
226
278
  }
279
+ const RECOMMENDATION_SOURCES = [
280
+ 'standard',
281
+ 'project-spec',
282
+ 'web',
283
+ 'general-practice',
284
+ ];
227
285
  /**
228
- * Coerce the Requirement Writer's parsed JSON into a map of itemId → { recommendation,
229
- * fromStandard }. Tolerant of a bare array or a `{recommendations:[...]}` wrapper; entries
286
+ * Coerce the Writer's reported grounding level, or null.
287
+ *
288
+ * Null rather than a default, deliberately: a missing or unrecognised value means the Writer did
289
+ * not say, and filling that in with `general-practice` would invent the very provenance claim this
290
+ * field exists to make trustworthy — in the direction that makes a well-grounded answer look
291
+ * weak, while a garbled `standard` would make a guess look authoritative.
292
+ */
293
+ function coerceSource(value) {
294
+ return RECOMMENDATION_SOURCES.includes(value)
295
+ ? value
296
+ : null;
297
+ }
298
+ /**
299
+ * Coerce the Requirement Writer's parsed JSON into a map of itemId → {@link WriterSuggestion}.
300
+ * Tolerant of a bare array or a `{recommendations:[...]}` wrapper; entries
230
301
  * missing a recommendation string are dropped.
231
302
  */
232
303
  export function coerceRecommendations(raw) {
@@ -245,7 +316,11 @@ export function coerceRecommendations(raw) {
245
316
  if (!itemId || !recommendation)
246
317
  continue;
247
318
  const fromStandard = asString(obj.fromStandard);
248
- out.set(itemId, { recommendation, fromStandard: fromStandard || null });
319
+ out.set(itemId, {
320
+ recommendation,
321
+ fromStandard: fromStandard || null,
322
+ groundedIn: coerceSource(obj.groundedIn),
323
+ });
249
324
  }
250
325
  return out;
251
326
  }
@@ -271,6 +346,7 @@ export function coerceChunkRecommendations(raw, findings) {
271
346
  itemId: asString(obj.itemId),
272
347
  recommendation: asString(obj.recommendation),
273
348
  fromStandard: asString(obj.fromStandard) || null,
349
+ groundedIn: coerceSource(obj.groundedIn),
274
350
  }))
275
351
  .filter((e) => e.recommendation);
276
352
  const out = new Map();
@@ -279,7 +355,11 @@ export function coerceChunkRecommendations(raw, findings) {
279
355
  // Pass 1: route each entry whose echoed itemId names a finding in this chunk.
280
356
  entries.forEach((e, idx) => {
281
357
  if (e.itemId && findingIds.has(e.itemId) && !out.has(e.itemId)) {
282
- out.set(e.itemId, { recommendation: e.recommendation, fromStandard: e.fromStandard });
358
+ out.set(e.itemId, {
359
+ recommendation: e.recommendation,
360
+ fromStandard: e.fromStandard,
361
+ groundedIn: e.groundedIn,
362
+ });
283
363
  consumed.add(idx);
284
364
  }
285
365
  });
@@ -290,7 +370,11 @@ export function coerceChunkRecommendations(raw, findings) {
290
370
  if (out.has(f.id) || li >= leftover.length)
291
371
  continue;
292
372
  const e = leftover[li++];
293
- out.set(f.id, { recommendation: e.recommendation, fromStandard: e.fromStandard });
373
+ out.set(f.id, {
374
+ recommendation: e.recommendation,
375
+ fromStandard: e.fromStandard,
376
+ groundedIn: e.groundedIn,
377
+ });
294
378
  }
295
379
  return out;
296
380
  }
@@ -315,13 +399,18 @@ export function coerceSingleRecommendation(raw, itemId) {
315
399
  itemId: asString(obj.itemId),
316
400
  recommendation: asString(obj.recommendation),
317
401
  fromStandard: asString(obj.fromStandard) || null,
402
+ groundedIn: coerceSource(obj.groundedIn),
318
403
  }))
319
404
  .filter((e) => e.recommendation);
320
405
  if (entries.length === 0)
321
406
  return null;
322
407
  const chosen = entries.find((e) => e.itemId === itemId) ?? (entries.length === 1 ? entries[0] : null);
323
408
  return chosen
324
- ? { recommendation: chosen.recommendation, fromStandard: chosen.fromStandard }
409
+ ? {
410
+ recommendation: chosen.recommendation,
411
+ fromStandard: chosen.fromStandard,
412
+ groundedIn: chosen.groundedIn,
413
+ }
325
414
  : null;
326
415
  }
327
416
  /**
@@ -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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"}
@@ -1,4 +1,5 @@
1
- import type { Block, BlockRepository, Clock, IdGenerator, ModelProvider, ModelProviderResolver, ModelRef, NotificationType, RequirementConcernLevel, RequirementReviewItem, RequirementReviewStatus, ReviewItemStatus } from '@cat-factory/kernel';
1
+ import type { Block, BlockRepository, Clock, IdGenerator, ModelProvider, ModelProviderResolver, ModelRef, NotificationType, OwnServiceContext, RequirementConcernLevel, RequirementReviewItem, RequirementReviewStatus, ReviewItemStatus } from '@cat-factory/kernel';
2
+ import { type BespokeSystemPrompt } from '@cat-factory/agents';
2
3
  import { type ResolveBlockRunContext } from '../../inlineScope.js';
3
4
  import type { NotificationService } from '../notifications/NotificationService.js';
4
5
  /** The fields every review (requirements or clarity) shares; the doc field is per-kind. */
@@ -63,6 +64,16 @@ export interface IterativeReviewDeps {
63
64
  resolveRunContext?: ResolveBlockRunContext;
64
65
  /** Raises a notification when a review yields findings. Optional. */
65
66
  notificationService?: NotificationService;
67
+ /**
68
+ * The workspace's live system prompt for an agent kind, when it has edited one from the prompt
69
+ * editor — the same append-only revision log the engine reads per dispatch, reaching the inline
70
+ * review kinds here.
71
+ *
72
+ * They were the one prompt-assembly path that ignored it: the editor accepts any kind id, so a
73
+ * workspace could save an override for `requirements-review` and have it silently never run.
74
+ * Optional so a standalone/unit construction still works; absent ⇒ the shipped prompt.
75
+ */
76
+ resolveSystemPromptOverride?: (workspaceId: string, agentKind: string) => Promise<string | undefined>;
66
77
  }
67
78
  /**
68
79
  * Stateless, synchronous iterative reviewer (no container, no durable driver). The LLM is
@@ -90,8 +101,15 @@ export declare abstract class IterativeReviewService<TReview extends ReviewCommo
90
101
  protected abstract readonly reviewAgentKind: string;
91
102
  /** The rework agent kind for observability (e.g. 'requirements-rework'). */
92
103
  protected abstract readonly reworkAgentKind: string;
93
- protected abstract readonly reviewSystemPrompt: string;
94
- protected abstract readonly reworkSystemPrompt: string;
104
+ /**
105
+ * The reviewer's and rework editor's system prompts, each SPLIT into the role half a workspace
106
+ * override replaces and the directives half it may not (`BespokeSystemPrompt`). These kinds run
107
+ * as bare inline `generateText` calls and so never reach `systemPromptFor`, which is the seam
108
+ * that applies an override elsewhere AND re-appends what an override must not delete — here the
109
+ * JSON output contract this service parses and the scope rules the whole flow depends on.
110
+ */
111
+ protected abstract readonly reviewPrompt: BespokeSystemPrompt;
112
+ protected abstract readonly reworkPrompt: BespokeSystemPrompt;
95
113
  /** Id prefix for fresh reviews / items (e.g. 'rrv' / 'rri'). */
96
114
  protected abstract readonly reviewIdPrefix: string;
97
115
  protected abstract readonly itemIdPrefix: string;
@@ -196,6 +214,27 @@ export declare abstract class IterativeReviewService<TReview extends ReviewCommo
196
214
  */
197
215
  protected modelFor(workspaceId: string, block: Block): Promise<ModelRef | undefined>;
198
216
  /** Resolve the provider + ref, throwing the kind's "no model configured" error if unavailable. */
217
+ /**
218
+ * Compose a bespoke inline prompt for one call, honouring the workspace's override of its ROLE
219
+ * half. The directives half is re-appended on top, so an edited prompt keeps the JSON output
220
+ * contract this service parses and the flow-wide rules (product/technical scope, the
221
+ * no-assumed-product rule) it is run under — the same guarantee `systemPromptFor` gives the
222
+ * kinds that go through it.
223
+ *
224
+ * Resolved per call rather than cached on the instance: the log is append-only and a human may
225
+ * edit the prompt between a reviewer pass and the incorporation that follows it, and one point
226
+ * read beside an LLM call costs nothing.
227
+ */
228
+ /**
229
+ * Which system the block under review belongs to (see kernel's `OwnServiceContext`). Walks the
230
+ * block's ancestry through the SAME shared helper the engine's `AgentContextBuilder` uses, so an
231
+ * inline reviewer and a container agent cannot answer "what am I working on" differently.
232
+ *
233
+ * On the base class because all three inline flows need it for the same reason: none has a
234
+ * checkout, so without it their entire notion of the subject is a block title.
235
+ */
236
+ protected resolveOwnService(workspaceId: string, block: Block): Promise<OwnServiceContext>;
237
+ protected systemPromptFor(workspaceId: string, agentKind: string, prompt: BespokeSystemPrompt): Promise<string>;
199
238
  protected resolveModel(workspaceId: string, block: Block): Promise<{
200
239
  modelProvider: ModelProvider;
201
240
  ref: ModelRef;
@@ -1 +1 @@
1
- {"version":3,"file":"IterativeReviewService.d.ts","sourceRoot":"","sources":["../../../src/modules/review/IterativeReviewService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IterativeReviewService.d.ts","sourceRoot":"","sources":["../../../src/modules/review/IterativeReviewService.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { generateText } from 'ai';
2
- import { assertFound, ReviewContendedError, DEFAULT_MAX_REQUIREMENT_ITERATIONS, inlineModelRef, resolveScopedModelProvider, ValidationError, } from '@cat-factory/kernel';
3
- import { catFactoryObservability } from '@cat-factory/agents';
2
+ import { assertFound, describeOwnService, resolveServiceFrameBlock, ReviewContendedError, DEFAULT_MAX_REQUIREMENT_ITERATIONS, inlineModelRef, resolveScopedModelProvider, ValidationError, } from '@cat-factory/kernel';
3
+ import { catFactoryObservability, composeBespokePrompt, } from '@cat-factory/agents';
4
4
  import { scopeForBlockRun } from '../../inlineScope.js';
5
5
  import { coerceReviewItems, disposeReview, extractJson, } from '../requirements/requirements.logic.js';
6
6
  /**
@@ -193,7 +193,7 @@ export class IterativeReviewService {
193
193
  const model = modelProvider.resolve(ref);
194
194
  const result = await generateText({
195
195
  model,
196
- system: this.reworkSystemPrompt,
196
+ system: await this.systemPromptFor(workspaceId, this.reworkAgentKind, this.reworkPrompt),
197
197
  prompt: this.buildReworkPrompt(context, review.items),
198
198
  temperature: 0.2,
199
199
  // The reworked doc is a full standard-format document that becomes the SOLE source of
@@ -286,6 +286,33 @@ export class IterativeReviewService {
286
286
  return fallback;
287
287
  }
288
288
  /** Resolve the provider + ref, throwing the kind's "no model configured" error if unavailable. */
289
+ /**
290
+ * Compose a bespoke inline prompt for one call, honouring the workspace's override of its ROLE
291
+ * half. The directives half is re-appended on top, so an edited prompt keeps the JSON output
292
+ * contract this service parses and the flow-wide rules (product/technical scope, the
293
+ * no-assumed-product rule) it is run under — the same guarantee `systemPromptFor` gives the
294
+ * kinds that go through it.
295
+ *
296
+ * Resolved per call rather than cached on the instance: the log is append-only and a human may
297
+ * edit the prompt between a reviewer pass and the incorporation that follows it, and one point
298
+ * read beside an LLM call costs nothing.
299
+ */
300
+ /**
301
+ * Which system the block under review belongs to (see kernel's `OwnServiceContext`). Walks the
302
+ * block's ancestry through the SAME shared helper the engine's `AgentContextBuilder` uses, so an
303
+ * inline reviewer and a container agent cannot answer "what am I working on" differently.
304
+ *
305
+ * On the base class because all three inline flows need it for the same reason: none has a
306
+ * checkout, so without it their entire notion of the subject is a block title.
307
+ */
308
+ async resolveOwnService(workspaceId, block) {
309
+ const serviceFrame = await resolveServiceFrameBlock((id) => this.deps.blockRepository.get(workspaceId, id), block.id, block);
310
+ return describeOwnService(block, serviceFrame);
311
+ }
312
+ async systemPromptFor(workspaceId, agentKind, prompt) {
313
+ const override = await this.deps.resolveSystemPromptOverride?.(workspaceId, agentKind);
314
+ return composeBespokePrompt(prompt, override?.trim() ? override : undefined);
315
+ }
289
316
  async resolveModel(workspaceId, block) {
290
317
  const modelProvider = await this.providerFor(workspaceId, block);
291
318
  const ref = await this.modelFor(workspaceId, block);
@@ -307,7 +334,7 @@ export class IterativeReviewService {
307
334
  const model = modelProvider.resolve(ref);
308
335
  const result = await generateText({
309
336
  model,
310
- system: this.reviewSystemPrompt,
337
+ system: await this.systemPromptFor(workspaceId, this.reviewAgentKind, this.reviewPrompt),
311
338
  prompt: this.buildReviewPrompt(context),
312
339
  temperature: 0.2,
313
340
  maxOutputTokens: 5000,