@cat-factory/orchestration 0.156.0 → 0.158.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 (40) hide show
  1. package/dist/container/engine-collaborators.d.ts.map +1 -1
  2. package/dist/container/engine-collaborators.js +9 -0
  3. package/dist/container/engine-collaborators.js.map +1 -1
  4. package/dist/container/foundation.d.ts.map +1 -1
  5. package/dist/container/foundation.js +5 -4
  6. package/dist/container/foundation.js.map +1 -1
  7. package/dist/container.d.ts.map +1 -1
  8. package/dist/container.js +2 -10
  9. package/dist/container.js.map +1 -1
  10. package/dist/modules/board/BoardService.d.ts +30 -14
  11. package/dist/modules/board/BoardService.d.ts.map +1 -1
  12. package/dist/modules/board/BoardService.js +21 -17
  13. package/dist/modules/board/BoardService.js.map +1 -1
  14. package/dist/modules/board/newServiceFrameDefaults.d.ts +76 -0
  15. package/dist/modules/board/newServiceFrameDefaults.d.ts.map +1 -0
  16. package/dist/modules/board/newServiceFrameDefaults.js +66 -0
  17. package/dist/modules/board/newServiceFrameDefaults.js.map +1 -0
  18. package/dist/modules/board/reviewFrictionGuard.d.ts +3 -6
  19. package/dist/modules/board/reviewFrictionGuard.d.ts.map +1 -1
  20. package/dist/modules/board/reviewFrictionGuard.js.map +1 -1
  21. package/dist/modules/board/workspaceSettingsReader.d.ts +15 -0
  22. package/dist/modules/board/workspaceSettingsReader.d.ts.map +1 -0
  23. package/dist/modules/board/workspaceSettingsReader.js +2 -0
  24. package/dist/modules/board/workspaceSettingsReader.js.map +1 -0
  25. package/dist/modules/execution/AgentContextBuilder.d.ts +7 -22
  26. package/dist/modules/execution/AgentContextBuilder.d.ts.map +1 -1
  27. package/dist/modules/execution/AgentContextBuilder.js +13 -105
  28. package/dist/modules/execution/AgentContextBuilder.js.map +1 -1
  29. package/dist/modules/execution/linked-context.d.ts +64 -0
  30. package/dist/modules/execution/linked-context.d.ts.map +1 -0
  31. package/dist/modules/execution/linked-context.js +136 -0
  32. package/dist/modules/execution/linked-context.js.map +1 -0
  33. package/dist/modules/initiative/InitiativeInterviewService.d.ts +22 -0
  34. package/dist/modules/initiative/InitiativeInterviewService.d.ts.map +1 -1
  35. package/dist/modules/initiative/InitiativeInterviewService.js +45 -7
  36. package/dist/modules/initiative/InitiativeInterviewService.js.map +1 -1
  37. package/dist/modules/settings/WorkspaceSettingsService.d.ts.map +1 -1
  38. package/dist/modules/settings/WorkspaceSettingsService.js +19 -0
  39. package/dist/modules/settings/WorkspaceSettingsService.js.map +1 -1
  40. package/package.json +11 -11
@@ -0,0 +1,64 @@
1
+ import type { AgentRunContext, DocumentRecord, DocumentRepository, DocumentSourceKind, TaskRecord, TaskRepository } from '@cat-factory/kernel';
2
+ /**
3
+ * Resolve a URL named in prose to the document it refers to, by its stable
4
+ * `(source, externalId)` key. Built from the document providers' `parseRef` so a noisy
5
+ * pasted link (title segment, `&t=` tracking params, dash vs colon node id) still maps to
6
+ * the canonical id the document was imported under. Returns null when no provider claims
7
+ * the URL.
8
+ */
9
+ export type DocumentUrlResolver = (url: string) => {
10
+ source: DocumentSourceKind;
11
+ externalId: string;
12
+ } | null;
13
+ /** What the resolver needs; every source is optional, so an unwired deployment resolves nothing. */
14
+ export interface LinkedContextSources {
15
+ documents?: DocumentRepository;
16
+ tasks?: TaskRepository;
17
+ /** Canonicalise a pasted URL to a `(source, externalId)` so link variants still resolve. */
18
+ documentUrlResolver?: DocumentUrlResolver;
19
+ }
20
+ /**
21
+ * Build the URL→document canonicaliser from the configured document providers, so a Figma/Notion
22
+ * link pasted into prose auto-matches its imported page even when it carries a title segment or
23
+ * tracking params the stored canonical url omits. No providers ⇒ undefined (url-string match only).
24
+ */
25
+ export declare function makeDocumentUrlResolver(providers?: readonly {
26
+ kind: DocumentSourceKind;
27
+ parseRef: (url: string) => string | null;
28
+ }[]): DocumentUrlResolver | undefined;
29
+ /**
30
+ * Assemble the resolver's sources from the container's dependency bag, so the engine's dispatch
31
+ * path and the inline initiative interviewer read the same corpus through the same canonicaliser
32
+ * rather than each hand-rolling the assembly.
33
+ */
34
+ export declare function linkedContextSourcesFrom(deps: {
35
+ documentRepository?: DocumentRepository;
36
+ taskRepository?: TaskRepository;
37
+ documentSourceProviders?: readonly {
38
+ kind: DocumentSourceKind;
39
+ parseRef: (url: string) => string | null;
40
+ }[];
41
+ }): LinkedContextSources;
42
+ /** The resolved context, in the exact shape `AgentRunContext.block` carries it. */
43
+ export interface LinkedContext {
44
+ docs: NonNullable<AgentRunContext['block']['contextDocs']>;
45
+ tasks: NonNullable<AgentRunContext['block']['contextTasks']>;
46
+ }
47
+ /**
48
+ * Resolve the high-confidence external context for a block: the docs/tasks a human attached to it
49
+ * (only when `includeLinked` — skipped in reworked mode, where the incorporated requirements doc
50
+ * already folds them in) UNIONed with any items the `description` names explicitly (a Jira key, a
51
+ * fully-qualified GitHub `owner/repo#N`, or a URL), each resolved against the imported corpus by a
52
+ * POINT LOOKUP (no full-corpus scan — a single keyed/URL query per named reference). Each source
53
+ * repo is optional, so this is a no-op for sources that aren't wired. Deduped by
54
+ * (source, externalId). The full body travels to the container as a materialised file; the prompt
55
+ * carries only the one-line `summary` (see the executor + `linkedContextSection`).
56
+ */
57
+ export declare function resolveLinkedContext(sources: LinkedContextSources, workspaceId: string, blockId: string, description: string, opts: {
58
+ includeLinked: boolean;
59
+ }): Promise<LinkedContext>;
60
+ /** Map a document record to the agent-context doc shape (summary index + materialisable body). */
61
+ export declare function toContextDoc(d: DocumentRecord): NonNullable<AgentRunContext['block']['contextDocs']>[number];
62
+ /** Map a task record to the agent-context task shape (adds the index `summary`). */
63
+ export declare function toContextTask(t: TaskRecord): NonNullable<AgentRunContext['block']['contextTasks']>[number];
64
+ //# sourceMappingURL=linked-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linked-context.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/linked-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,cAAc,EACf,MAAM,qBAAqB,CAAA;AAI5B;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,GAAG,EAAE,MAAM,KACR;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAA;AAY9D,oGAAoG;AACpG,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,kBAAkB,CAAA;IAC9B,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,4FAA4F;IAC5F,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,GAAE,SAAS;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;CAAE,EAAO,GAChG,mBAAmB,GAAG,SAAS,CASjC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,uBAAuB,CAAC,EAAE,SAAS;QACjC,IAAI,EAAE,kBAAkB,CAAA;QACxB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;KACzC,EAAE,CAAA;CACJ,GAAG,oBAAoB,CAOvB;AAED,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;IAC1D,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAA;CAC7D;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,EAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,GAC/B,OAAO,CAAC,aAAa,CAAC,CAkExB;AAED,kGAAkG;AAClG,wBAAgB,YAAY,CAC1B,CAAC,EAAE,cAAc,GAChB,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAQ9D;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAC3B,CAAC,EAAE,UAAU,GACZ,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAc/D"}
@@ -0,0 +1,136 @@
1
+ import { buildExcerpt, CONTEXT_BUDGET } from '@cat-factory/kernel';
2
+ import { extractReferences } from '@cat-factory/integrations';
3
+ /**
4
+ * Build the URL→document canonicaliser from the configured document providers, so a Figma/Notion
5
+ * link pasted into prose auto-matches its imported page even when it carries a title segment or
6
+ * tracking params the stored canonical url omits. No providers ⇒ undefined (url-string match only).
7
+ */
8
+ export function makeDocumentUrlResolver(providers = []) {
9
+ if (!providers.length)
10
+ return undefined;
11
+ return (url) => {
12
+ for (const provider of providers) {
13
+ const externalId = provider.parseRef(url);
14
+ if (externalId)
15
+ return { source: provider.kind, externalId };
16
+ }
17
+ return null;
18
+ };
19
+ }
20
+ /**
21
+ * Assemble the resolver's sources from the container's dependency bag, so the engine's dispatch
22
+ * path and the inline initiative interviewer read the same corpus through the same canonicaliser
23
+ * rather than each hand-rolling the assembly.
24
+ */
25
+ export function linkedContextSourcesFrom(deps) {
26
+ const documentUrlResolver = makeDocumentUrlResolver(deps.documentSourceProviders);
27
+ return {
28
+ ...(deps.documentRepository ? { documents: deps.documentRepository } : {}),
29
+ ...(deps.taskRepository ? { tasks: deps.taskRepository } : {}),
30
+ ...(documentUrlResolver ? { documentUrlResolver } : {}),
31
+ };
32
+ }
33
+ /**
34
+ * Resolve the high-confidence external context for a block: the docs/tasks a human attached to it
35
+ * (only when `includeLinked` — skipped in reworked mode, where the incorporated requirements doc
36
+ * already folds them in) UNIONed with any items the `description` names explicitly (a Jira key, a
37
+ * fully-qualified GitHub `owner/repo#N`, or a URL), each resolved against the imported corpus by a
38
+ * POINT LOOKUP (no full-corpus scan — a single keyed/URL query per named reference). Each source
39
+ * repo is optional, so this is a no-op for sources that aren't wired. Deduped by
40
+ * (source, externalId). The full body travels to the container as a materialised file; the prompt
41
+ * carries only the one-line `summary` (see the executor + `linkedContextSection`).
42
+ */
43
+ export async function resolveLinkedContext(sources, workspaceId, blockId, description, opts) {
44
+ const docs = new Map();
45
+ const tasks = new Map();
46
+ const docKey = (d) => `${d.source}:${d.externalId}`;
47
+ const taskKey = (t) => `${t.source}:${t.externalId}`;
48
+ const addDoc = (d) => {
49
+ if (d && !docs.has(docKey(d)))
50
+ docs.set(docKey(d), d);
51
+ };
52
+ const addTask = (t) => {
53
+ if (t && !tasks.has(taskKey(t)))
54
+ tasks.set(taskKey(t), t);
55
+ };
56
+ if (opts.includeLinked) {
57
+ const [linkedDocs, linkedTasks] = await Promise.all([
58
+ sources.documents?.listByBlock(workspaceId, blockId) ?? [],
59
+ sources.tasks?.listByBlock(workspaceId, blockId) ?? [],
60
+ ]);
61
+ for (const d of linkedDocs)
62
+ addDoc(d);
63
+ for (const t of linkedTasks)
64
+ addTask(t);
65
+ }
66
+ // Resolve explicitly-named references against the imported corpus — never a full-corpus
67
+ // scan. Only items that actually exist are added (a `UTF-8` that happens to match the
68
+ // Jira-key shape just resolves to nothing); nothing is fetched live. The keyed jira/github
69
+ // refs are BATCH-resolved in one chunked-`IN` read per source (`listByRefs`, never a
70
+ // point-read per reference — an N+1); the URL lookups stay per-URL point reads. Both run
71
+ // concurrently, and results are folded in in reference order so the dedupe (and the
72
+ // resulting context ordering) stays deterministic.
73
+ const refs = extractReferences(description ?? '');
74
+ const documents = sources.documents;
75
+ const taskRepo = sources.tasks;
76
+ const [keyedTasks, urlItems] = await Promise.all([
77
+ taskRepo?.listByRefs(workspaceId, refs.taskRefs) ?? [],
78
+ Promise.all(refs.urls.map(async (url) => {
79
+ const [doc, task] = await Promise.all([
80
+ (async () => {
81
+ if (!documents)
82
+ return null;
83
+ // Prefer a precise match by the document's stable (source, externalId) — a pasted
84
+ // link canonicalised through the providers' parseRef — so a Figma/Notion URL with a
85
+ // title segment or tracking params still resolves. Fall back to the url-string
86
+ // lookup for any source the resolver doesn't claim (or when it isn't wired).
87
+ const ref = sources.documentUrlResolver?.(url);
88
+ const byRef = ref ? await documents.get(workspaceId, ref.source, ref.externalId) : null;
89
+ return byRef ?? (await documents.getByUrl(workspaceId, url));
90
+ })(),
91
+ taskRepo?.getByUrl(workspaceId, url) ?? null,
92
+ ]);
93
+ return { doc, task };
94
+ })),
95
+ ]);
96
+ // Fold the batch result in in reference order (listByRefs makes no ordering guarantee),
97
+ // so the dedupe and context ordering match the by-reference sequence deterministically.
98
+ const keyedByRef = new Map(keyedTasks.map((t) => [taskKey(t), t]));
99
+ for (const ref of refs.taskRefs)
100
+ addTask(keyedByRef.get(`${ref.source}:${ref.externalId}`) ?? null);
101
+ for (const { doc, task } of urlItems) {
102
+ addDoc(doc);
103
+ addTask(task);
104
+ }
105
+ return {
106
+ docs: [...docs.values()].map((d) => toContextDoc(d)),
107
+ tasks: [...tasks.values()].map((t) => toContextTask(t)),
108
+ };
109
+ }
110
+ /** Map a document record to the agent-context doc shape (summary index + materialisable body). */
111
+ export function toContextDoc(d) {
112
+ return {
113
+ title: d.title,
114
+ url: d.url,
115
+ excerpt: d.excerpt,
116
+ summary: buildExcerpt(d.body || d.excerpt, CONTEXT_BUDGET.summaryChars),
117
+ body: d.body,
118
+ };
119
+ }
120
+ /** Map a task record to the agent-context task shape (adds the index `summary`). */
121
+ export function toContextTask(t) {
122
+ return {
123
+ key: t.externalId,
124
+ url: t.url,
125
+ title: t.title,
126
+ status: t.status,
127
+ type: t.type,
128
+ assignee: t.assignee,
129
+ priority: t.priority,
130
+ labels: t.labels,
131
+ description: t.description,
132
+ comments: t.comments,
133
+ summary: buildExcerpt(t.description || t.title, CONTEXT_BUDGET.summaryChars),
134
+ };
135
+ }
136
+ //# sourceMappingURL=linked-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linked-context.js","sourceRoot":"","sources":["../../../src/modules/execution/linked-context.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Block, Initiative, ModelProvider, ModelProviderResolver, ModelRef } from '@cat-factory/kernel';
2
2
  import type { InitiativePresetRegistry } from '@cat-factory/kernel';
3
3
  import { type ResolveBlockRunContext } from '../../inlineScope.js';
4
+ import type { LinkedContext } from '../execution/linked-context.js';
4
5
  import { type InterviewOutput } from './initiative.logic.js';
5
6
  /** What the interviewer needs to resolve its inline model + reach the provider. */
6
7
  export interface InitiativeInterviewDeps {
@@ -20,6 +21,16 @@ export interface InitiativeInterviewDeps {
20
21
  resolveWorkspaceModelDefault?: (workspaceId: string, agentKind: string, modelPresetId?: string) => Promise<string | undefined>;
21
22
  /** Resolve the block's run/execution + initiator, folded into the inline model scope. */
22
23
  resolveRunContext?: ResolveBlockRunContext;
24
+ /**
25
+ * Resolve the initiative block's linked context (attached requirements / RFCs / PRDs / tracker
26
+ * issues, plus anything the brief names outright). Needed explicitly because this service is
27
+ * INLINE and assembles its own prompt — it never passes through `AgentContextBuilder`, which is
28
+ * what puts the same attachments in front of the analyst and planner that follow.
29
+ *
30
+ * Absent (or unwired document/task sources) ⇒ the prompts are byte-for-byte their previous
31
+ * shape, so a deployment without the documents/tasks integrations is unaffected.
32
+ */
33
+ resolveLinkedContext?: (workspaceId: string, blockId: string, description: string) => Promise<LinkedContext>;
23
34
  }
24
35
  export declare class InitiativeInterviewService {
25
36
  private readonly deps;
@@ -40,6 +51,17 @@ export declare class InitiativeInterviewService {
40
51
  * interviewer is already inline and there is only ever one question in play.
41
52
  */
42
53
  recommendAnswer(workspaceId: string, block: Block, initiative: Initiative, question: string): Promise<string>;
54
+ /**
55
+ * The initiative's attached requirements / RFCs / issues, rendered for the prompt, or '' when
56
+ * nothing is attached (or no resolver is wired). INLINE rendering — the interviewer has no
57
+ * checkout to materialise files into, so the bodies are injected, clamped by the shared
58
+ * `CONTEXT_BUDGET` the container path also honours.
59
+ *
60
+ * A read failure PROPAGATES rather than degrading to '', matching how the analyst and planner
61
+ * resolve the same attachments through `AgentContextBuilder`: interviewing a stakeholder about
62
+ * a document the platform silently failed to open is worse than failing the round outright.
63
+ */
64
+ private linkedSection;
43
65
  /** Assemble the interviewer prompt: the brief + the answered digest + the round intent. */
44
66
  private buildPrompt;
45
67
  /** Assemble the recommend prompt: the brief + answered digest + the ONE question to answer. */
@@ -1 +1 @@
1
- {"version":3,"file":"InitiativeInterviewService.d.ts","sourceRoot":"","sources":["../../../src/modules/initiative/InitiativeInterviewService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,QAAQ,EACT,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAQnE,OAAO,EAAE,KAAK,sBAAsB,EAAoB,MAAM,sBAAsB,CAAA;AAEpF,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAA;AAmF9B,mFAAmF;AACnF,MAAM,WAAW,uBAAuB;IACtC,gGAAgG;IAChG,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,2EAA2E;IAC3E,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,QAAQ,GAAG,SAAS,CAAA;IACzE,wFAAwF;IACxF,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAA;IACvC,iFAAiF;IACjF,4BAA4B,CAAC,EAAE,CAC7B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,KACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAChC,yFAAyF;IACzF,iBAAiB,CAAC,EAAE,sBAAsB,CAAA;CAC3C;AAED,qBAAa,0BAA0B;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,uBAAuB,EAAI;IAE9D,gGAAgG;IAChG,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;OAGG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,GAC1B,OAAO,CAAC,eAAe,CAAC,CAyB1B;IAED;;;;;OAKG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAuBjB;IAED,2FAA2F;IAC3F,OAAO,CAAC,WAAW;IAoDnB,+FAA+F;IAC/F,OAAO,CAAC,oBAAoB;YAcd,YAAY;IAa1B,4FAA4F;YAC9E,QAAQ;CAgBvB"}
1
+ {"version":3,"file":"InitiativeInterviewService.d.ts","sourceRoot":"","sources":["../../../src/modules/initiative/InitiativeInterviewService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,QAAQ,EACT,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAQnE,OAAO,EAAE,KAAK,sBAAsB,EAAoB,MAAM,sBAAsB,CAAA;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAEnE,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAA;AAmF9B,mFAAmF;AACnF,MAAM,WAAW,uBAAuB;IACtC,gGAAgG;IAChG,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,2EAA2E;IAC3E,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,QAAQ,GAAG,SAAS,CAAA;IACzE,wFAAwF;IACxF,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAA;IACvC,iFAAiF;IACjF,4BAA4B,CAAC,EAAE,CAC7B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,KACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAChC,yFAAyF;IACzF,iBAAiB,CAAC,EAAE,sBAAsB,CAAA;IAC1C;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,CACrB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC,aAAa,CAAC,CAAA;CAC5B;AAED,qBAAa,0BAA0B;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,uBAAuB,EAAI;IAE9D,gGAAgG;IAChG,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;OAGG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,GAC1B,OAAO,CAAC,eAAe,CAAC,CA4B1B;IAED;;;;;OAKG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CA0BjB;IAED;;;;;;;;;OASG;YACW,aAAa;IAU3B,2FAA2F;IAC3F,OAAO,CAAC,WAAW;IAuEnB,+FAA+F;IAC/F,OAAO,CAAC,oBAAoB;YAuBd,YAAY;IAa1B,4FAA4F;YAC9E,QAAQ;CAgBvB"}
@@ -1,6 +1,6 @@
1
1
  import { generateText } from 'ai';
2
2
  import { INITIATIVE_INTERVIEWER_AGENT_KIND, inlineModelRef, resolveScopedModelProvider, ValidationError, } from '@cat-factory/kernel';
3
- import { catFactoryObservability } from '@cat-factory/agents';
3
+ import { catFactoryObservability, renderLinkedContext } from '@cat-factory/agents';
4
4
  import { scopeForBlockRun } from '../../inlineScope.js';
5
5
  import { extractJson } from '../requirements/requirements.logic.js';
6
6
  import { coerceInterviewOutput, seedPresetInterviewQa, } from './initiative.logic.js';
@@ -93,14 +93,17 @@ export class InitiativeInterviewService {
93
93
  * proceeded, or the round cap was hit) so the model is asked only to synthesize the brief.
94
94
  */
95
95
  async runInterview(workspaceId, block, initiative, opts) {
96
- const { modelProvider, ref } = await this.resolveModel(workspaceId, block);
96
+ const [{ modelProvider, ref }, linked] = await Promise.all([
97
+ this.resolveModel(workspaceId, block),
98
+ this.linkedSection(workspaceId, block),
99
+ ]);
97
100
  let text;
98
101
  try {
99
102
  const model = modelProvider.resolve(ref);
100
103
  const result = await generateText({
101
104
  model,
102
105
  system: INITIATIVE_INTERVIEW_SYSTEM_PROMPT,
103
- prompt: this.buildPrompt(block, initiative, opts.finalize),
106
+ prompt: this.buildPrompt(block, initiative, opts.finalize, linked),
104
107
  temperature: 0.2,
105
108
  maxOutputTokens: 3000,
106
109
  providerOptions: catFactoryObservability({
@@ -122,13 +125,16 @@ export class InitiativeInterviewService {
122
125
  * interviewer is already inline and there is only ever one question in play.
123
126
  */
124
127
  async recommendAnswer(workspaceId, block, initiative, question) {
125
- const { modelProvider, ref } = await this.resolveModel(workspaceId, block);
128
+ const [{ modelProvider, ref }, linked] = await Promise.all([
129
+ this.resolveModel(workspaceId, block),
130
+ this.linkedSection(workspaceId, block),
131
+ ]);
126
132
  try {
127
133
  const model = modelProvider.resolve(ref);
128
134
  const result = await generateText({
129
135
  model,
130
136
  system: INITIATIVE_RECOMMEND_SYSTEM_PROMPT,
131
- prompt: this.buildRecommendPrompt(block, initiative, question),
137
+ prompt: this.buildRecommendPrompt(block, initiative, question, linked),
132
138
  temperature: 0.3,
133
139
  maxOutputTokens: 800,
134
140
  providerOptions: catFactoryObservability({
@@ -142,8 +148,24 @@ export class InitiativeInterviewService {
142
148
  throw new ValidationError(`The initiative interviewer (${ref.provider}:${ref.model}) could not recommend an answer: ${e instanceof Error ? e.message : String(e)}`);
143
149
  }
144
150
  }
151
+ /**
152
+ * The initiative's attached requirements / RFCs / issues, rendered for the prompt, or '' when
153
+ * nothing is attached (or no resolver is wired). INLINE rendering — the interviewer has no
154
+ * checkout to materialise files into, so the bodies are injected, clamped by the shared
155
+ * `CONTEXT_BUDGET` the container path also honours.
156
+ *
157
+ * A read failure PROPAGATES rather than degrading to '', matching how the analyst and planner
158
+ * resolve the same attachments through `AgentContextBuilder`: interviewing a stakeholder about
159
+ * a document the platform silently failed to open is worse than failing the round outright.
160
+ */
161
+ async linkedSection(workspaceId, block) {
162
+ if (!this.deps.resolveLinkedContext)
163
+ return '';
164
+ const { docs, tasks } = await this.deps.resolveLinkedContext(workspaceId, block.id, block.description ?? '');
165
+ return renderLinkedContext(docs, tasks);
166
+ }
145
167
  /** Assemble the interviewer prompt: the brief + the answered digest + the round intent. */
146
- buildPrompt(block, initiative, finalize) {
168
+ buildPrompt(block, initiative, finalize, linked) {
147
169
  const lines = [`Initiative: ${block.title || '(untitled initiative)'}`];
148
170
  const brief = block.description?.trim();
149
171
  if (brief)
@@ -156,6 +178,17 @@ export class InitiativeInterviewService {
156
178
  if (steering) {
157
179
  lines.push('', `## Initiative preset: ${steering.label}`, '', steering.promptAddition);
158
180
  }
181
+ // The stakeholder's own attached source material, before the answers gathered so far: it is
182
+ // part of the BRIEF, so the interviewer must read it before deciding what is still unclear.
183
+ // The instruction is what makes attaching a PRD worth doing — without it the model treats the
184
+ // document as background and still asks the questions the document already answers, which is
185
+ // precisely the interrogation the attachment was meant to spare the stakeholder.
186
+ if (linked) {
187
+ lines.push(linked);
188
+ lines.push('', 'The linked context above was attached to this initiative by the stakeholder. Read it ' +
189
+ 'as part of the brief and treat everything it settles as ALREADY ANSWERED: do NOT ask ' +
190
+ 'about anything it states. Ask only about what it leaves genuinely open or ambiguous.');
191
+ }
159
192
  const answered = (initiative.qa ?? []).filter((q) => (q.answer ?? '').trim().length > 0);
160
193
  if (answered.length) {
161
194
  lines.push('', 'Answers gathered so far:');
@@ -193,11 +226,16 @@ export class InitiativeInterviewService {
193
226
  return lines.join('\n');
194
227
  }
195
228
  /** Assemble the recommend prompt: the brief + answered digest + the ONE question to answer. */
196
- buildRecommendPrompt(block, initiative, question) {
229
+ buildRecommendPrompt(block, initiative, question, linked) {
197
230
  const lines = [`Initiative: ${block.title || '(untitled initiative)'}`];
198
231
  const brief = block.description?.trim();
199
232
  if (brief)
200
233
  lines.push('', 'Brief:', brief);
234
+ // The attached material is the best source a suggested answer can be grounded in — this is
235
+ // the action a stakeholder reaches for precisely when they would rather the platform read
236
+ // the document than answer from it themselves.
237
+ if (linked)
238
+ lines.push(linked);
201
239
  if (initiative.goal?.trim())
202
240
  lines.push('', `Goal so far: ${initiative.goal.trim()}`);
203
241
  const answered = (initiative.qa ?? []).filter((q) => (q.answer ?? '').trim().length > 0);
@@ -1 +1 @@
1
- {"version":3,"file":"InitiativeInterviewService.js","sourceRoot":"","sources":["../../../src/modules/initiative/InitiativeInterviewService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InitiativeInterviewService.js","sourceRoot":"","sources":["../../../src/modules/initiative/InitiativeInterviewService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceSettingsService.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/WorkspaceSettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,qBAAqB,CAAA;AAQ5B,MAAM,WAAW,oCAAoC;IACnD,2BAA2B,EAAE,2BAA2B,CAAA;IACxD,mBAAmB,EAAE,mBAAmB,CAAA;IACxC;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,gBAAgB,CAAC,2BAA2B,CAAC,CAAA;CACvE;AAED;;;;;;GAMG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAA+C;IAEtE,YAAY,IAAI,EAAE,oCAAoC,EAIrD;IAED,0FAA0F;IACpF,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAMzD;IAED;;;;OAIG;IACG,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAO7E;IAED,kEAAkE;IAC5D,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,iBAAiB,CAAC,CAoE5B;CACF"}
1
+ {"version":3,"file":"WorkspaceSettingsService.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/WorkspaceSettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,qBAAqB,CAAA;AAQ5B,MAAM,WAAW,oCAAoC;IACnD,2BAA2B,EAAE,2BAA2B,CAAA;IACxD,mBAAmB,EAAE,mBAAmB,CAAA;IACxC;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,gBAAgB,CAAC,2BAA2B,CAAC,CAAA;CACvE;AAED;;;;;;GAMG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAA+C;IAEtE,YAAY,IAAI,EAAE,oCAAoC,EAIrD;IAED,0FAA0F;IACpF,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAMzD;IAED;;;;OAIG;IACG,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAO7E;IAED,kEAAkE;IAC5D,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,iBAAiB,CAAC,CA0F5B;CACF"}
@@ -58,6 +58,12 @@ export class WorkspaceSettingsService {
58
58
  : current.reviewFrictionBlockStuckMinutes,
59
59
  spendCurrency: patch.spendCurrency !== undefined ? patch.spendCurrency : current.spendCurrency,
60
60
  spendMonthlyLimit: patch.spendMonthlyLimit !== undefined ? patch.spendMonthlyLimit : current.spendMonthlyLimit,
61
+ defaultProvisionType: patch.defaultProvisionType !== undefined
62
+ ? patch.defaultProvisionType
63
+ : current.defaultProvisionType,
64
+ defaultProvisionManifestId: patch.defaultProvisionManifestId !== undefined
65
+ ? patch.defaultProvisionManifestId
66
+ : current.defaultProvisionManifestId,
61
67
  };
62
68
  // Keep the limit fields consistent with the mode so the enforcement logic + UI never
63
69
  // read a stale cap from an inactive mode.
@@ -87,6 +93,19 @@ export class WorkspaceSettingsService {
87
93
  throw new ValidationError('The review-debt block count must be greater than or equal to the warn count.');
88
94
  }
89
95
  }
96
+ // Default test-environment provisioning cross-field validation. The manifest id is
97
+ // meaningful ONLY for `custom`, so anything else clears it rather than leaving a stale id
98
+ // that would silently reappear on the next switch back — the same "keep the inactive
99
+ // branch's fields consistent with the mode" rule the task-limit block above follows.
100
+ // `custom` WITHOUT an id is refused outright instead of normalised away: it would seed
101
+ // every new service with a type that matches no `remote-custom` handler, and the failure
102
+ // would surface much later, at the deployer step, on a service nobody knowingly misconfigured.
103
+ if (next.defaultProvisionType !== 'custom') {
104
+ next.defaultProvisionManifestId = null;
105
+ }
106
+ else if (!next.defaultProvisionManifestId) {
107
+ throw new ValidationError('A custom default provisioning mechanism must name the custom manifest type it uses.');
108
+ }
90
109
  await this.settings.upsert(workspaceId, next);
91
110
  // Drop the cached row (and broadcast to peers) after the write commits, so the next
92
111
  // read on this or any replica — including SpendService's pricing overlay — sees the
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceSettingsService.js","sourceRoot":"","sources":["../../../src/modules/settings/WorkspaceSettingsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkspaceSettingsService.js","sourceRoot":"","sources":["../../../src/modules/settings/WorkspaceSettingsService.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.156.0",
3
+ "version": "0.158.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,20 +25,20 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "ai": "^7.0.37",
28
- "@cat-factory/agents": "0.80.0",
29
- "@cat-factory/caching": "0.11.4",
30
- "@cat-factory/contracts": "0.183.0",
31
- "@cat-factory/integrations": "0.107.1",
32
- "@cat-factory/kernel": "0.176.0",
33
- "@cat-factory/prompt-fragments": "0.15.6",
34
- "@cat-factory/sandbox": "0.10.4",
35
- "@cat-factory/spend": "0.12.105",
36
- "@cat-factory/workspaces": "0.19.4"
28
+ "@cat-factory/agents": "0.81.0",
29
+ "@cat-factory/caching": "0.11.6",
30
+ "@cat-factory/contracts": "0.185.0",
31
+ "@cat-factory/integrations": "0.107.3",
32
+ "@cat-factory/kernel": "0.178.0",
33
+ "@cat-factory/prompt-fragments": "0.15.8",
34
+ "@cat-factory/sandbox": "0.10.6",
35
+ "@cat-factory/spend": "0.12.107",
36
+ "@cat-factory/workspaces": "0.19.6"
37
37
  },
38
38
  "devDependencies": {
39
39
  "typescript": "7.0.2",
40
40
  "vitest": "^4.1.10",
41
- "@cat-factory/sandbox-fixtures": "0.7.214"
41
+ "@cat-factory/sandbox-fixtures": "0.7.216"
42
42
  },
43
43
  "scripts": {
44
44
  "build": "tsc -b tsconfig.build.json",