@cat-factory/agents 0.20.2 → 0.21.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/agents/kinds/companions.d.ts +23 -0
- package/dist/agents/kinds/companions.d.ts.map +1 -1
- package/dist/agents/kinds/companions.js +26 -0
- package/dist/agents/kinds/companions.js.map +1 -1
- package/dist/agents/kinds/document.d.ts +15 -0
- package/dist/agents/kinds/document.d.ts.map +1 -0
- package/dist/agents/kinds/document.js +258 -0
- package/dist/agents/kinds/document.js.map +1 -0
- package/dist/agents/prompts/companion.d.ts.map +1 -1
- package/dist/agents/prompts/companion.js +16 -1
- package/dist/agents/prompts/companion.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -8,6 +8,21 @@ export interface CompanionDefinition {
|
|
|
8
8
|
defaultThreshold: number;
|
|
9
9
|
/** Short label for the producer being reviewed, woven into the companion's prompt. */
|
|
10
10
|
reviews: string;
|
|
11
|
+
/**
|
|
12
|
+
* HOW the companion runs its review.
|
|
13
|
+
* - `inline` (default): a one-shot LLM call that grades the producer's reported output
|
|
14
|
+
* text — adequate when the producer's deliverable IS that text (e.g. the architect's
|
|
15
|
+
* prose plan).
|
|
16
|
+
* - `container-explore`: a read-only container that CLONES the producer's PR branch and
|
|
17
|
+
* reads the ACTUAL repository (the changed files / the full document) with tools before
|
|
18
|
+
* judging, returning the verdict as structured JSON. Required whenever the producer's
|
|
19
|
+
* real deliverable is committed to the repo rather than reported in its reply — a code
|
|
20
|
+
* reviewer that only sees a summary is useless, and the same is true of a document
|
|
21
|
+
* reviewer. The engine dispatches these through the same async container path the
|
|
22
|
+
* coder/merger use (see `CompositeAgentExecutor` / `ContainerAgentExecutor`) and resolves
|
|
23
|
+
* the verdict in `recordStepResult` → `CompanionController.resolveContainerVerdict`.
|
|
24
|
+
*/
|
|
25
|
+
surface?: 'inline' | 'container-explore';
|
|
11
26
|
}
|
|
12
27
|
/** The built-in companion catalog. */
|
|
13
28
|
export declare const COMPANIONS: CompanionDefinition[];
|
|
@@ -17,4 +32,12 @@ export declare function isCompanionKind(kind: AgentKind): boolean;
|
|
|
17
32
|
export declare function companionFor(kind: AgentKind): CompanionDefinition | undefined;
|
|
18
33
|
/** The producer kinds a companion may be attached to (empty if not a companion). */
|
|
19
34
|
export declare function companionTargets(kind: AgentKind): AgentKind[];
|
|
35
|
+
/**
|
|
36
|
+
* Whether `kind` is a companion that reviews in a CONTAINER (cloning the producer's PR
|
|
37
|
+
* branch and reading the real repository) rather than inline. The single source of truth
|
|
38
|
+
* the executor uses to route the companion through the container path, the engine uses to
|
|
39
|
+
* keep it off the inline companion path, and the prompt uses to tell it to read the
|
|
40
|
+
* checkout. False for non-companions and inline companions.
|
|
41
|
+
*/
|
|
42
|
+
export declare function isContainerBackedCompanion(kind: AgentKind): boolean;
|
|
20
43
|
//# sourceMappingURL=companions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companions.d.ts","sourceRoot":"","sources":["../../../src/agents/kinds/companions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAYpD,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,IAAI,EAAE,SAAS,CAAA;IACf,oFAAoF;IACpF,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,0FAA0F;IAC1F,gBAAgB,EAAE,MAAM,CAAA;IACxB,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"companions.d.ts","sourceRoot":"","sources":["../../../src/agents/kinds/companions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAYpD,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,IAAI,EAAE,SAAS,CAAA;IACf,oFAAoF;IACpF,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,0FAA0F;IAC1F,gBAAgB,EAAE,MAAM,CAAA;IACxB,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,mBAAmB,CAAA;CACzC;AAED,sCAAsC;AACtC,eAAO,MAAM,UAAU,EAAE,mBAAmB,EAwC3C,CAAA;AAID,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAExD;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,mBAAmB,GAAG,SAAS,CAE7E;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,CAE7D;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAEnE"}
|
|
@@ -17,10 +17,26 @@ export const COMPANIONS = [
|
|
|
17
17
|
{
|
|
18
18
|
// `reviewer` is the coder's companion: it directly challenges the builder's
|
|
19
19
|
// output and can loop it back for rework. Auto-only by default (no human gate).
|
|
20
|
+
// It runs in a container so it reads the ACTUAL diff / repository, not just the
|
|
21
|
+
// coder's summary reply — a code review of a summary is worthless.
|
|
20
22
|
kind: 'reviewer',
|
|
21
23
|
targets: ['coder'],
|
|
22
24
|
defaultThreshold: DEFAULT_COMPANION_THRESHOLD,
|
|
23
25
|
reviews: 'code change for correctness, quality, security and risk',
|
|
26
|
+
surface: 'container-explore',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
// `doc-reviewer` is the document writer's companion: it rates the drafted document and
|
|
30
|
+
// loops the `doc-writer` back for rework below the threshold (the AI-to-AI convergence
|
|
31
|
+
// loop of the document-authoring pipeline, before the human gate on this step).
|
|
32
|
+
kind: 'doc-reviewer',
|
|
33
|
+
targets: ['doc-writer'],
|
|
34
|
+
defaultThreshold: DEFAULT_COMPANION_THRESHOLD,
|
|
35
|
+
reviews: 'document draft for completeness against the brief, clarity, accuracy and fitness of its ' +
|
|
36
|
+
'structure for the document kind',
|
|
37
|
+
// Runs in a container so it reads the ACTUAL committed Markdown (the whole point of the
|
|
38
|
+
// document pipeline), not the writer's summary reply.
|
|
39
|
+
surface: 'container-explore',
|
|
24
40
|
},
|
|
25
41
|
];
|
|
26
42
|
const BY_KIND = new Map(COMPANIONS.map((c) => [c.kind, c]));
|
|
@@ -36,4 +52,14 @@ export function companionFor(kind) {
|
|
|
36
52
|
export function companionTargets(kind) {
|
|
37
53
|
return BY_KIND.get(kind)?.targets ?? [];
|
|
38
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Whether `kind` is a companion that reviews in a CONTAINER (cloning the producer's PR
|
|
57
|
+
* branch and reading the real repository) rather than inline. The single source of truth
|
|
58
|
+
* the executor uses to route the companion through the container path, the engine uses to
|
|
59
|
+
* keep it off the inline companion path, and the prompt uses to tell it to read the
|
|
60
|
+
* checkout. False for non-companions and inline companions.
|
|
61
|
+
*/
|
|
62
|
+
export function isContainerBackedCompanion(kind) {
|
|
63
|
+
return BY_KIND.get(kind)?.surface === 'container-explore';
|
|
64
|
+
}
|
|
39
65
|
//# sourceMappingURL=companions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companions.js","sourceRoot":"","sources":["../../../src/agents/kinds/companions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"companions.js","sourceRoot":"","sources":["../../../src/agents/kinds/companions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AAqCpE,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAA0B;IAC/C;QACE,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,CAAC,WAAW,CAAC;QACtB,gBAAgB,EAAE,2BAA2B;QAC7C,OAAO,EAAE,yCAAyC;KACnD;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,gBAAgB,EAAE,2BAA2B;QAC7C,OAAO,EACL,mFAAmF;YACnF,kDAAkD;KACrD;IACD;QACE,4EAA4E;QAC5E,gFAAgF;QAChF,gFAAgF;QAChF,mEAAmE;QACnE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC,OAAO,CAAC;QAClB,gBAAgB,EAAE,2BAA2B;QAC7C,OAAO,EAAE,yDAAyD;QAClE,OAAO,EAAE,mBAAmB;KAC7B;IACD;QACE,uFAAuF;QACvF,uFAAuF;QACvF,gFAAgF;QAChF,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,gBAAgB,EAAE,2BAA2B;QAC7C,OAAO,EACL,0FAA0F;YAC1F,iCAAiC;QACnC,wFAAwF;QACxF,sDAAsD;QACtD,OAAO,EAAE,mBAAmB;KAC7B;CACF,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAA8B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAExF,0FAA0F;AAC1F,MAAM,UAAU,eAAe,CAAC,IAAe;IAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAC,IAAe;IAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,gBAAgB,CAAC,IAAe;IAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI,EAAE,CAAA;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAe;IACxD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,mBAAmB,CAAA;AAC3D,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AgentKindDefinition } from './registry.js';
|
|
2
|
+
export declare const DOC_RESEARCHER_KIND = "doc-researcher";
|
|
3
|
+
export declare const DOC_OUTLINER_KIND = "doc-outliner";
|
|
4
|
+
export declare const DOC_WRITER_KIND = "doc-writer";
|
|
5
|
+
export declare const DOC_FINALIZER_KIND = "doc-finalizer";
|
|
6
|
+
/** The companion that reviews {@link DOC_WRITER_KIND}; its definition lives in ./companions. */
|
|
7
|
+
export declare const DOC_REVIEWER_KIND = "doc-reviewer";
|
|
8
|
+
/** The document-authoring kinds (the companion `doc-reviewer` is defined in ./companions). */
|
|
9
|
+
export declare const DOCUMENT_AGENT_KINDS: AgentKindDefinition[];
|
|
10
|
+
/**
|
|
11
|
+
* Register the document-authoring kinds. Idempotent (the registry replaces by kind), so calling
|
|
12
|
+
* it explicitly and importing this module for its side effect are safe to combine.
|
|
13
|
+
*/
|
|
14
|
+
export declare function registerDocumentAgents(): void;
|
|
15
|
+
//# sourceMappingURL=document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/agents/kinds/document.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AA2BxD,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AACnD,eAAO,MAAM,iBAAiB,iBAAiB,CAAA;AAC/C,eAAO,MAAM,eAAe,eAAe,CAAA;AAC3C,eAAO,MAAM,kBAAkB,kBAAkB,CAAA;AACjD,gGAAgG;AAChG,eAAO,MAAM,iBAAiB,iBAAiB,CAAA;AAwL/C,8FAA8F;AAC9F,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAiErD,CAAA;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { CONTEXT_BUDGET, estimateTokens } from '@cat-factory/kernel';
|
|
2
|
+
import { registerAgentKinds } from './registry.js';
|
|
3
|
+
import { linkedContextSection } from '../prompts/standard.js';
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// The document-authoring agent kinds — a FORWARD-authoring track whose deliverable IS an
|
|
6
|
+
// in-repo Markdown document (a PRD / RFC / design doc / ADR / technical reference / runbook /
|
|
7
|
+
// research report) shipped as a pull request, distinct from the reverse-documentation kinds
|
|
8
|
+
// (`documenter` / `business-documenter` / `blueprints`) that describe code that already exists.
|
|
9
|
+
//
|
|
10
|
+
// They are registered through the SAME public `registerAgentKind` seam a deployment uses
|
|
11
|
+
// (see `backend/internal/example-custom-agent`), so they become first-class palette blocks
|
|
12
|
+
// (via the workspace snapshot's `customAgentKinds`) with NO bespoke harness handler:
|
|
13
|
+
// - `doc-researcher` / `doc-outliner` are INLINE (one-shot LLM, no checkout); their prose
|
|
14
|
+
// output flows to the writer as prior-step context.
|
|
15
|
+
// - `doc-writer` is CONTAINER-CODING with a non-`pr` clone, so the generic coding harness
|
|
16
|
+
// branches off base, writes the Markdown file, pushes the work branch and OPENS a PR —
|
|
17
|
+
// exactly the coder lifecycle (`ContainerAgentExecutor.buildRegisteredAgentBody`). Its
|
|
18
|
+
// companion `doc-reviewer` (see ./companions) rates the draft and loops it back for rework.
|
|
19
|
+
// - `doc-finalizer` is CONTAINER-CODING with a `pr` clone, so it polishes in place on the
|
|
20
|
+
// doc PR branch and pushes back (no new PR), fixer-like — it also folds in the human
|
|
21
|
+
// gate's revision feedback (threaded automatically by `withRevision`).
|
|
22
|
+
//
|
|
23
|
+
// The merge tail (`conflicts → ci → merger`) then ships the document PR like any other.
|
|
24
|
+
// Nothing is persisted to a new table: the committed Markdown is the durable artifact.
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
export const DOC_RESEARCHER_KIND = 'doc-researcher';
|
|
27
|
+
export const DOC_OUTLINER_KIND = 'doc-outliner';
|
|
28
|
+
export const DOC_WRITER_KIND = 'doc-writer';
|
|
29
|
+
export const DOC_FINALIZER_KIND = 'doc-finalizer';
|
|
30
|
+
/** The companion that reviews {@link DOC_WRITER_KIND}; its definition lives in ./companions. */
|
|
31
|
+
export const DOC_REVIEWER_KIND = 'doc-reviewer';
|
|
32
|
+
/** Filesystem-safe slug for a document title (the default file name under `docs/<kind>/`). */
|
|
33
|
+
function docSlug(title) {
|
|
34
|
+
const slug = title
|
|
35
|
+
.toLowerCase()
|
|
36
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
37
|
+
.replace(/^-+|-+$/g, '');
|
|
38
|
+
return slug || 'document';
|
|
39
|
+
}
|
|
40
|
+
/** The default in-repo directory each document kind is written under (overridable per task). */
|
|
41
|
+
const DOC_KIND_DIR = {
|
|
42
|
+
prd: 'docs/prd',
|
|
43
|
+
rfc: 'docs/rfc',
|
|
44
|
+
adr: 'docs/adr',
|
|
45
|
+
design: 'docs/design',
|
|
46
|
+
technical: 'docs/technical',
|
|
47
|
+
api: 'docs/api',
|
|
48
|
+
runbook: 'docs/runbooks',
|
|
49
|
+
research: 'docs/research',
|
|
50
|
+
reference: 'docs/reference',
|
|
51
|
+
other: 'docs',
|
|
52
|
+
};
|
|
53
|
+
/** One-line structural expectation per document kind, woven into the outliner/writer prompts. */
|
|
54
|
+
const DOC_KIND_STRUCTURE = {
|
|
55
|
+
prd: 'a product requirements document: problem & goals, target users, user stories, scope (in/out), functional requirements, acceptance criteria, success metrics, risks & open questions',
|
|
56
|
+
rfc: 'an RFC / design proposal: summary, motivation, detailed design, alternatives considered (with trade-offs), drawbacks, migration/rollout, unresolved questions',
|
|
57
|
+
adr: 'an architecture decision record: context, the decision, status, considered options with trade-offs, consequences (positive & negative)',
|
|
58
|
+
design: 'a technical design document: overview, goals/non-goals, architecture, key components & data flows, interfaces, alternatives, risks',
|
|
59
|
+
technical: 'a technical reference: purpose, concepts, step-by-step usage, configuration, examples, troubleshooting',
|
|
60
|
+
api: 'an API reference: overview & auth, each endpoint/operation (request, parameters, responses, errors), and worked examples',
|
|
61
|
+
runbook: 'an operational runbook: when to use it, prerequisites, numbered step-by-step procedure, verification, rollback, and escalation',
|
|
62
|
+
research: 'a research / analysis report: question, method, findings, comparison of options, recommendation, and references',
|
|
63
|
+
reference: 'a clear reference document organised by topic with a short overview and a navigable section structure',
|
|
64
|
+
other: 'a well-structured document with a short overview followed by clearly-headed sections',
|
|
65
|
+
};
|
|
66
|
+
/** The document fields on the task, defaulting `docKind` to `other` when unset. */
|
|
67
|
+
function docFields(context) {
|
|
68
|
+
const fields = context.block.taskTypeFields;
|
|
69
|
+
const docKind = (fields?.docKind ?? 'other');
|
|
70
|
+
const targetPath = fields?.targetPath?.trim() || `${DOC_KIND_DIR[docKind]}/${docSlug(context.block.title)}.md`;
|
|
71
|
+
return {
|
|
72
|
+
docKind,
|
|
73
|
+
audience: fields?.audience?.trim() || undefined,
|
|
74
|
+
targetPath,
|
|
75
|
+
outlineHints: fields?.outlineHints?.trim() || undefined,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/** The shared "what document are we writing" brief woven into every doc-kind prompt. */
|
|
79
|
+
function docBriefSection(context, opts) {
|
|
80
|
+
const { docKind, audience, targetPath, outlineHints } = docFields(context);
|
|
81
|
+
const lines = [
|
|
82
|
+
`Document title: ${context.block.title}`,
|
|
83
|
+
`Document kind: ${docKind} — produce ${DOC_KIND_STRUCTURE[docKind]}.`,
|
|
84
|
+
`Target file: \`${targetPath}\` (Markdown).`,
|
|
85
|
+
];
|
|
86
|
+
if (audience)
|
|
87
|
+
lines.push(`Intended audience: ${audience}. Pitch the depth and tone for them.`);
|
|
88
|
+
lines.push(`Brief / requirements: ${context.block.description?.trim() || '(none provided — infer from the title and any linked context)'}`);
|
|
89
|
+
if (outlineHints)
|
|
90
|
+
lines.push(`Author-provided outline hints: ${outlineHints}`);
|
|
91
|
+
const linked = linkedContextSection(context, opts);
|
|
92
|
+
if (linked)
|
|
93
|
+
lines.push(linked);
|
|
94
|
+
return lines.join('\n');
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Render the prior steps' work (the research brief, the approved outline) for a later step,
|
|
98
|
+
* trimmed to a shared token budget so a long research brief + outline + writer summary +
|
|
99
|
+
* reviewer feedback can't bloat the prompt unbounded (the writer/finalizer also receive the
|
|
100
|
+
* materialised linked context, which is budgeted separately). Each section is clamped to what
|
|
101
|
+
* remains, oldest-first, with a marker when truncated.
|
|
102
|
+
*/
|
|
103
|
+
function priorWorkSection(context) {
|
|
104
|
+
if (!context.priorOutputs.length)
|
|
105
|
+
return '';
|
|
106
|
+
const lines = ['', 'Work from earlier steps in this pipeline (build on it, do not repeat it):'];
|
|
107
|
+
let remaining = CONTEXT_BUDGET.inlineBodyTokens;
|
|
108
|
+
for (const p of context.priorOutputs) {
|
|
109
|
+
if (remaining <= 0) {
|
|
110
|
+
lines.push('### (earlier steps omitted — prior-work budget reached)');
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
const body = clampToBudget(p.output ?? '', remaining);
|
|
114
|
+
remaining -= estimateTokens(body);
|
|
115
|
+
lines.push(`### ${p.agentKind}`, body);
|
|
116
|
+
}
|
|
117
|
+
return lines.join('\n');
|
|
118
|
+
}
|
|
119
|
+
/** Clamp text to roughly `maxTokens`, appending an ellipsis marker when it was cut. */
|
|
120
|
+
function clampToBudget(text, maxTokens) {
|
|
121
|
+
if (estimateTokens(text) <= maxTokens)
|
|
122
|
+
return text;
|
|
123
|
+
// estimateTokens is ~chars/4, so budget the character slice the same way.
|
|
124
|
+
const maxChars = Math.max(0, maxTokens * 4);
|
|
125
|
+
return `${text.slice(0, maxChars).trimEnd()}\n…(truncated)`;
|
|
126
|
+
}
|
|
127
|
+
const DOC_RESEARCHER_SYSTEM_PROMPT = 'You are a documentation researcher. Before a document is drafted, investigate everything ' +
|
|
128
|
+
'needed to write it well: the problem space, prior art, any linked requirements / RFCs / ' +
|
|
129
|
+
'tracker issues, relevant standards and constraints, and the open questions a good author ' +
|
|
130
|
+
'would need answered. Produce a concise, well-organised research brief — facts, sources and ' +
|
|
131
|
+
'the key decisions to make — NOT the document itself. Flag gaps and assumptions explicitly.';
|
|
132
|
+
const DOC_OUTLINER_SYSTEM_PROMPT = 'You are a documentation outliner. Turn the brief and any research into a clear, ' +
|
|
133
|
+
'kind-appropriate outline for the document: the ordered sections with a one-line statement ' +
|
|
134
|
+
'of what each will cover, plus any cross-cutting notes (terminology, diagrams to include, ' +
|
|
135
|
+
'open questions to resolve). The outline is reviewed by a human before drafting, so make it ' +
|
|
136
|
+
'specific and easy to critique. Do NOT write the prose — only the structure.';
|
|
137
|
+
const DOC_WRITER_SYSTEM_PROMPT = 'You are a senior technical writer. Write the complete document as Markdown, following the ' +
|
|
138
|
+
'approved outline and folding in the research and any linked context. Write the file at the ' +
|
|
139
|
+
'target path given in the task (create the directory as needed); write ONLY that document — ' +
|
|
140
|
+
'do not touch code or unrelated files. Lead with a short overview/summary, use clear headings, ' +
|
|
141
|
+
'concrete examples and tables where they help, and keep the prose precise and self-contained. ' +
|
|
142
|
+
'When the document describes the codebase, read the relevant code to get details right. The ' +
|
|
143
|
+
'platform commits your file and opens the pull request — do not run git yourself.';
|
|
144
|
+
const DOC_FINALIZER_SYSTEM_PROMPT = 'You are a documentation editor doing the final pass on a drafted document. Improve clarity, ' +
|
|
145
|
+
'consistency and flow; fix structure, headings, terminology, links and formatting; tighten the ' +
|
|
146
|
+
'overview/summary; and resolve any reviewer feedback. Preserve the substance — do not rewrite ' +
|
|
147
|
+
'from scratch or change the meaning. Edit the existing document file in place and only that ' +
|
|
148
|
+
'file. The platform commits and pushes your changes — do not run git yourself.';
|
|
149
|
+
function docResearcherUserPrompt(context) {
|
|
150
|
+
return [
|
|
151
|
+
`Pipeline: ${context.pipelineName}`,
|
|
152
|
+
docBriefSection(context, {}),
|
|
153
|
+
'',
|
|
154
|
+
'Produce the research brief for this document. Be concise and concrete.',
|
|
155
|
+
].join('\n');
|
|
156
|
+
}
|
|
157
|
+
function docOutlinerUserPrompt(context) {
|
|
158
|
+
return [
|
|
159
|
+
`Pipeline: ${context.pipelineName}`,
|
|
160
|
+
docBriefSection(context, {}),
|
|
161
|
+
priorWorkSection(context),
|
|
162
|
+
'',
|
|
163
|
+
'Produce the outline (sections + one-line intent each). Do not write the prose.',
|
|
164
|
+
].join('\n');
|
|
165
|
+
}
|
|
166
|
+
function docWriterUserPrompt(context) {
|
|
167
|
+
const { targetPath } = docFields(context);
|
|
168
|
+
return [
|
|
169
|
+
`Pipeline: ${context.pipelineName}`,
|
|
170
|
+
docBriefSection(context, { materialized: true }),
|
|
171
|
+
priorWorkSection(context),
|
|
172
|
+
'',
|
|
173
|
+
`Write the full document to \`${targetPath}\` as Markdown, following the approved outline.`,
|
|
174
|
+
].join('\n');
|
|
175
|
+
}
|
|
176
|
+
function docFinalizerUserPrompt(context) {
|
|
177
|
+
const { targetPath } = docFields(context);
|
|
178
|
+
return [
|
|
179
|
+
`Pipeline: ${context.pipelineName}`,
|
|
180
|
+
docBriefSection(context, { materialized: true }),
|
|
181
|
+
priorWorkSection(context),
|
|
182
|
+
'',
|
|
183
|
+
`Polish the document at \`${targetPath}\` — clarity, consistency, structure and formatting — ` +
|
|
184
|
+
'and apply any reviewer feedback. Edit it in place; do not rewrite from scratch.',
|
|
185
|
+
].join('\n');
|
|
186
|
+
}
|
|
187
|
+
/** The document-authoring kinds (the companion `doc-reviewer` is defined in ./companions). */
|
|
188
|
+
export const DOCUMENT_AGENT_KINDS = [
|
|
189
|
+
{
|
|
190
|
+
kind: DOC_RESEARCHER_KIND,
|
|
191
|
+
systemPrompt: DOC_RESEARCHER_SYSTEM_PROMPT,
|
|
192
|
+
userPrompt: docResearcherUserPrompt,
|
|
193
|
+
agent: { surface: 'inline' },
|
|
194
|
+
webResearchHint: 'gather current prior art, standards and references for the document being written',
|
|
195
|
+
presentation: {
|
|
196
|
+
label: 'Doc Researcher',
|
|
197
|
+
icon: 'i-lucide-book-marked',
|
|
198
|
+
color: '#38bdf8',
|
|
199
|
+
description: 'Investigates the topic, prior art and linked context, producing a research brief before a document is drafted.',
|
|
200
|
+
category: 'docs',
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
kind: DOC_OUTLINER_KIND,
|
|
205
|
+
systemPrompt: DOC_OUTLINER_SYSTEM_PROMPT,
|
|
206
|
+
userPrompt: docOutlinerUserPrompt,
|
|
207
|
+
agent: { surface: 'inline' },
|
|
208
|
+
presentation: {
|
|
209
|
+
label: 'Doc Outliner',
|
|
210
|
+
icon: 'i-lucide-list-tree',
|
|
211
|
+
color: '#818cf8',
|
|
212
|
+
description: 'Turns the brief and research into a kind-appropriate document outline for human review before drafting.',
|
|
213
|
+
category: 'docs',
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
kind: DOC_WRITER_KIND,
|
|
218
|
+
systemPrompt: DOC_WRITER_SYSTEM_PROMPT,
|
|
219
|
+
userPrompt: docWriterUserPrompt,
|
|
220
|
+
// Container-coding with a `work` clone ⇒ the generic coding harness branches off base,
|
|
221
|
+
// writes the Markdown, pushes the work branch and opens the PR (coder-like). Its companion
|
|
222
|
+
// `doc-reviewer` loops it back for rework below threshold.
|
|
223
|
+
agent: { surface: 'container-coding', clone: { branch: 'work' } },
|
|
224
|
+
presentation: {
|
|
225
|
+
label: 'Doc Writer',
|
|
226
|
+
icon: 'i-lucide-file-pen-line',
|
|
227
|
+
color: '#818cf8',
|
|
228
|
+
description: 'Writes the document as in-repo Markdown following the approved outline, and opens a pull request.',
|
|
229
|
+
category: 'docs',
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
kind: DOC_FINALIZER_KIND,
|
|
234
|
+
systemPrompt: DOC_FINALIZER_SYSTEM_PROMPT,
|
|
235
|
+
userPrompt: docFinalizerUserPrompt,
|
|
236
|
+
// Container-coding with a `pr` clone ⇒ polish in place on the document PR branch and push
|
|
237
|
+
// back (no new PR), fixer-like. The human gate's revision feedback is threaded in by
|
|
238
|
+
// `withRevision` (catalog.ts), so the editor addresses it on this pass.
|
|
239
|
+
agent: { surface: 'container-coding', clone: { branch: 'pr' } },
|
|
240
|
+
presentation: {
|
|
241
|
+
label: 'Doc Finalizer',
|
|
242
|
+
icon: 'i-lucide-file-check-2',
|
|
243
|
+
color: '#818cf8',
|
|
244
|
+
description: 'Final editorial pass over the drafted document — clarity, consistency, formatting and reviewer feedback.',
|
|
245
|
+
category: 'docs',
|
|
246
|
+
},
|
|
247
|
+
},
|
|
248
|
+
];
|
|
249
|
+
/**
|
|
250
|
+
* Register the document-authoring kinds. Idempotent (the registry replaces by kind), so calling
|
|
251
|
+
* it explicitly and importing this module for its side effect are safe to combine.
|
|
252
|
+
*/
|
|
253
|
+
export function registerDocumentAgents() {
|
|
254
|
+
registerAgentKinds(DOCUMENT_AGENT_KINDS);
|
|
255
|
+
}
|
|
256
|
+
// Side-effect registration: importing `@cat-factory/agents` registers these first-class kinds.
|
|
257
|
+
registerDocumentAgents();
|
|
258
|
+
//# sourceMappingURL=document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/agents/kinds/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companion.d.ts","sourceRoot":"","sources":["../../../src/agents/prompts/companion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AASpD,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"companion.d.ts","sourceRoot":"","sources":["../../../src/agents/prompts/companion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AASpD,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAiFzE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { companionFor } from '../kinds/companions.js';
|
|
1
|
+
import { companionFor, isContainerBackedCompanion } from '../kinds/companions.js';
|
|
2
2
|
import { FINAL_ANSWER_IN_REPLY } from './shared.js';
|
|
3
3
|
// System prompt for a companion agent, parameterised by the producer kind it
|
|
4
4
|
// reviews. The companion returns a single overall quality rating (0..1) plus prose
|
|
@@ -16,6 +16,21 @@ export function companionSystemPrompt(kind) {
|
|
|
16
16
|
'anything that would block confident downstream work. Then give a SINGLE overall quality',
|
|
17
17
|
'rating between 0 and 1 (1 = excellent and complete, 0 = unusable). Be a fair but demanding',
|
|
18
18
|
'critic — do not rubber-stamp.',
|
|
19
|
+
// A container-backed companion gets a real, read-only checkout of the producer's PR
|
|
20
|
+
// branch. Reviewing the producer's summary reply alone is worthless — judge the ACTUAL
|
|
21
|
+
// artifact: open and read the changed files / the full committed document and whatever
|
|
22
|
+
// surrounding repository context you need to assess it properly. The preceding step's
|
|
23
|
+
// reply (if any) is only a pointer; the repository on disk is the source of truth.
|
|
24
|
+
...(isContainerBackedCompanion(kind)
|
|
25
|
+
? [
|
|
26
|
+
'',
|
|
27
|
+
'You have a read-only checkout of the branch under review. Do NOT judge from the',
|
|
28
|
+
"summary alone: inspect what actually changed (diff the branch against the repo's",
|
|
29
|
+
'default/base branch), then open and read the changed files in full — plus any',
|
|
30
|
+
'related code or documents in the repository you need for context — before rating.',
|
|
31
|
+
'Ground every comment in what the files actually contain. Make no commits.',
|
|
32
|
+
]
|
|
33
|
+
: []),
|
|
19
34
|
// The spec-writer only TRANSLATES the task requirements it was given into a spec
|
|
20
35
|
// increment; inventing, completing, or deciding requirements is the requirements
|
|
21
36
|
// step's job, not its. So judge only what the writer controls — fidelity to the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companion.js","sourceRoot":"","sources":["../../../src/agents/prompts/companion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"companion.js","sourceRoot":"","sources":["../../../src/agents/prompts/companion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,6EAA6E;AAC7E,mFAAmF;AACnF,mFAAmF;AACnF,+BAA+B;AAE/B,2FAA2F;AAC3F,MAAM,UAAU,qBAAqB,CAAC,IAAe;IACnD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,OAAO;QACL,wDAAwD,GAAG,CAAC,OAAO,kBAAkB;QACrF,aAAa,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,oDAAoD;QACxF,qFAAqF;QACrF,yFAAyF;QACzF,4FAA4F;QAC5F,+BAA+B;QAC/B,oFAAoF;QACpF,uFAAuF;QACvF,uFAAuF;QACvF,sFAAsF;QACtF,mFAAmF;QACnF,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC;YAClC,CAAC,CAAC;gBACE,EAAE;gBACF,iFAAiF;gBACjF,kFAAkF;gBAClF,+EAA+E;gBAC/E,mFAAmF;gBACnF,2EAA2E;aAC5E;YACH,CAAC,CAAC,EAAE,CAAC;QACP,iFAAiF;QACjF,iFAAiF;QACjF,gFAAgF;QAChF,mFAAmF;QACnF,kFAAkF;QAClF,8DAA8D;QAC9D,GAAG,CAAC,IAAI,KAAK,gBAAgB;YAC3B,CAAC,CAAC;gBACE,EAAE;gBACF,mFAAmF;gBACnF,2EAA2E;gBAC3E,qFAAqF;gBACrF,oFAAoF;gBACpF,aAAa;gBACb,kFAAkF;gBAClF,gFAAgF;gBAChF,8EAA8E;gBAC9E,mFAAmF;gBACnF,yEAAyE;gBACzE,2EAA2E;gBAC3E,+BAA+B;gBAC/B,6EAA6E;gBAC7E,kFAAkF;gBAClF,iFAAiF;gBACjF,kFAAkF;gBAClF,wDAAwD;gBACxD,kFAAkF;gBAClF,kFAAkF;gBAClF,0DAA0D;gBAC1D,EAAE;gBACF,mFAAmF;gBACnF,qFAAqF;gBACrF,mFAAmF;gBACnF,sEAAsE;gBACtE,8EAA8E;gBAC9E,kFAAkF;gBAClF,sFAAsF;gBACtF,kFAAkF;gBAClF,sFAAsF;gBACtF,qFAAqF;gBACrF,+EAA+E;aAChF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,EAAE;QACF,0CAA0C;QAC1C,wFAAwF;QACxF,0FAA0F;QAC1F,oFAAoF;QACpF,oFAAoF;QACpF,GAAG,CAAC,IAAI,KAAK,gBAAgB;YAC3B,CAAC,CAAC,CAAC,kEAAkE,CAAC;YACtE,CAAC,CAAC,EAAE,CAAC;QACP,4CAA4C;QAC5C,EAAE;QACF,qBAAqB;KACtB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,8 +17,9 @@ export { KAIZEN_SYSTEM_PROMPT } from './agents/prompts/kaizen.js';
|
|
|
17
17
|
export { composeSystemPrompt, composeBlockSystemPrompt, type ComposableBlock, } from './agents/runtime/fragments.js';
|
|
18
18
|
export { type StandardPhase, STANDARD_PHASES, STANDARD_PHASE_BY_KIND, phaseForKind, standardSystemPrompt, renderStandardUserPrompt, CONTEXT_DIR, } from './agents/prompts/standard.js';
|
|
19
19
|
export { type AcceptanceAgentKind, ACCEPTANCE_AGENT_KINDS, acceptanceSystemPrompt, isAcceptanceKind, testApproachSection, } from './agents/prompts/acceptance.js';
|
|
20
|
-
export { type CompanionDefinition, COMPANIONS, isCompanionKind, companionFor, companionTargets, } from './agents/kinds/companions.js';
|
|
20
|
+
export { type CompanionDefinition, COMPANIONS, isCompanionKind, companionFor, companionTargets, isContainerBackedCompanion, } from './agents/kinds/companions.js';
|
|
21
21
|
export { companionSystemPrompt } from './agents/prompts/companion.js';
|
|
22
|
+
export { DOC_RESEARCHER_KIND, DOC_OUTLINER_KIND, DOC_WRITER_KIND, DOC_FINALIZER_KIND, DOC_REVIEWER_KIND, DOCUMENT_AGENT_KINDS, registerDocumentAgents, } from './agents/kinds/document.js';
|
|
22
23
|
export { READ_ONLY_AGENT_KINDS, READ_ONLY_GUARDRAIL, isReadOnlyAgentKind, } from './agents/kinds/read-only.js';
|
|
23
24
|
export { MOCK_AGENT_KIND, isMockKind, mockSystemPrompt } from './agents/prompts/mock.js';
|
|
24
25
|
export { type BusinessLogicAgentKind, BUSINESS_LOGIC_AGENT_KINDS, BUSINESS_DOCUMENTER_KIND, BUSINESS_REVIEWER_KIND, BUSINESS_LOGIC_DOCS_DIR, isBusinessLogicKind, businessLogicSystemPrompt, } from './agents/prompts/business-logic.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AAChG,OAAO,EACL,KAAK,sBAAsB,EAC3B,+BAA+B,EAC/B,kCAAkC,EAClC,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAIrE,OAAO,EACL,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,+BAA+B,EAC/B,6BAA6B,EAC7B,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,sBAAsB,GACvB,MAAM,qCAAqC,CAAA;AAG5C,OAAO,EACL,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,EACxB,SAAS,EACT,QAAQ,EACR,gBAAgB,GACjB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAGlG,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,qCAAqC,EACrC,qCAAqC,EACrC,4CAA4C,EAC5C,4CAA4C,GAC7C,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,eAAe,GACrB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,KAAK,aAAa,EAClB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,WAAW,GACZ,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,KAAK,mBAAmB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,KAAK,mBAAmB,EACxB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -32,8 +32,13 @@ export { KAIZEN_SYSTEM_PROMPT } from './agents/prompts/kaizen.js';
|
|
|
32
32
|
export { composeSystemPrompt, composeBlockSystemPrompt, } from './agents/runtime/fragments.js';
|
|
33
33
|
export { STANDARD_PHASES, STANDARD_PHASE_BY_KIND, phaseForKind, standardSystemPrompt, renderStandardUserPrompt, CONTEXT_DIR, } from './agents/prompts/standard.js';
|
|
34
34
|
export { ACCEPTANCE_AGENT_KINDS, acceptanceSystemPrompt, isAcceptanceKind, testApproachSection, } from './agents/prompts/acceptance.js';
|
|
35
|
-
export { COMPANIONS, isCompanionKind, companionFor, companionTargets, } from './agents/kinds/companions.js';
|
|
35
|
+
export { COMPANIONS, isCompanionKind, companionFor, companionTargets, isContainerBackedCompanion, } from './agents/kinds/companions.js';
|
|
36
36
|
export { companionSystemPrompt } from './agents/prompts/companion.js';
|
|
37
|
+
// The document-authoring agent kinds (doc-researcher / doc-outliner / doc-writer /
|
|
38
|
+
// doc-finalizer), registered as a SIDE EFFECT of importing this module so they are
|
|
39
|
+
// first-class kinds in every deployment (Worker / Node / local). `doc-reviewer` — the
|
|
40
|
+
// writer's companion — lives in the COMPANIONS catalog above.
|
|
41
|
+
export { DOC_RESEARCHER_KIND, DOC_OUTLINER_KIND, DOC_WRITER_KIND, DOC_FINALIZER_KIND, DOC_REVIEWER_KIND, DOCUMENT_AGENT_KINDS, registerDocumentAgents, } from './agents/kinds/document.js';
|
|
37
42
|
export { READ_ONLY_AGENT_KINDS, READ_ONLY_GUARDRAIL, isReadOnlyAgentKind, } from './agents/kinds/read-only.js';
|
|
38
43
|
export { MOCK_AGENT_KIND, isMockKind, mockSystemPrompt } from './agents/prompts/mock.js';
|
|
39
44
|
export { BUSINESS_LOGIC_AGENT_KINDS, BUSINESS_DOCUMENTER_KIND, BUSINESS_REVIEWER_KIND, BUSINESS_LOGIC_DOCS_DIR, isBusinessLogicKind, businessLogicSystemPrompt, } from './agents/prompts/business-logic.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAoC,MAAM,8BAA8B,CAAA;AAChG,OAAO,EAEL,+BAA+B,EAC/B,kCAAkC,EAClC,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAKL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,wFAAwF;AACxF,yFAAyF;AACzF,8CAA8C;AAC9C,OAAO,EAEL,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,+BAA+B,EAC/B,6BAA6B,EAC7B,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,4BAA4B,CAAA;AACnC,6FAA6F;AAC7F,mFAAmF;AACnF,OAAO,EAGL,sBAAsB,GACvB,MAAM,qCAAqC,CAAA;AAC5C,uFAAuF;AACvF,4FAA4F;AAC5F,OAAO,EAGL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,EACxB,SAAS,EACT,QAAQ,EACR,gBAAgB,GACjB,MAAM,0BAA0B,CAAA;AACjC,wFAAwF;AACxF,0FAA0F;AAC1F,OAAO,EAA2C,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAClG,6EAA6E;AAC7E,iEAAiE;AACjE,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAA;AAClC,0CAA0C;AAC1C,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,6BAA6B,CAAA;AACpC,mEAAmE;AACnE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,kCAAkC,CAAA;AACzC,kDAAkD;AAClD,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,6BAA6B,CAAA;AACpC,gDAAgD;AAChD,OAAO,EACL,qCAAqC,EACrC,qCAAqC,EACrC,4CAA4C,EAC5C,4CAA4C,GAC7C,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAGL,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GAEzB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAEL,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,WAAW,GACZ,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAEL,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAEL,UAAU,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/agents",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "Agent catalog, routing, prompts and fragment library for the Agent Architecture Board.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"ai": "^6.0.209",
|
|
31
31
|
"handlebars": "^4.7.9",
|
|
32
32
|
"valibot": "^1.4.1",
|
|
33
|
-
"@cat-factory/contracts": "0.
|
|
34
|
-
"@cat-factory/kernel": "0.
|
|
35
|
-
"@cat-factory/prompt-fragments": "0.7.
|
|
33
|
+
"@cat-factory/contracts": "0.42.0",
|
|
34
|
+
"@cat-factory/kernel": "0.44.0",
|
|
35
|
+
"@cat-factory/prompt-fragments": "0.7.41"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"typescript": "7.0.1-rc",
|