@cat-factory/agents 0.44.0 → 0.44.1
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.
|
@@ -4,14 +4,15 @@ export declare const DOCS_REFRESH_PRESET_ID = "preset_docs_refresh";
|
|
|
4
4
|
/**
|
|
5
5
|
* The per-run gate-override array for a spawned documentation pipeline when human review is opted
|
|
6
6
|
* in — a FULL boolean array parallel to the pipeline's own `agentKinds` (the slice-2 gate-override
|
|
7
|
-
* contract: `ExecutionService.start` rejects a length mismatch).
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* gates — which are none for all three — so a decoration-less run stays unattended.
|
|
7
|
+
* contract: `ExecutionService.start` rejects a length mismatch). The gate is placed on the `merger`
|
|
8
|
+
* step so the human reviews the CI-green PR right BEFORE it merges — the same point for every doc
|
|
9
|
+
* pipeline, matching the form's "review each documentation change before it merges" promise (rather
|
|
10
|
+
* than gating a mid-pipeline `doc-reviewer` that still auto-merges afterwards).
|
|
12
11
|
*
|
|
13
|
-
* The
|
|
14
|
-
*
|
|
12
|
+
* The placement is DERIVED from the pipeline's `agentKinds` (the merge step's index), so it stays
|
|
13
|
+
* correct by construction if a pipeline's shape changes — never a hand-maintained array parallel to
|
|
14
|
+
* a pipeline this preset doesn't own. `undefined` (human review OFF, the default, or a pipeline with
|
|
15
|
+
* no merge step) leaves the pipeline's own gates — none for all three — so a run stays unattended.
|
|
15
16
|
*/
|
|
16
17
|
export declare function docsReviewGates(pipelineId: string, humanReview: boolean): boolean[] | undefined;
|
|
17
18
|
/** The docs-refresh preset registration bundle (descriptor + code hooks). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../../src/presets/docs-refresh/preset.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../../src/presets/docs-refresh/preset.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAmCvE,uFAAuF;AACvF,eAAO,MAAM,sBAAsB,wBAAwB,CAAA;AA4N3D;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,SAAS,CAO/F;AAwKD,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,EAAE,4BAQjC,CAAA;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { BUSINESS_DOCS_PIPELINE_ID, CODE_COMMENTS_PIPELINE_ID, DOCUMENT_QUICK_PIPELINE_ID, INITIATIVE_DOCS_PIPELINE_ID, joinRepoPath, registerInitiativePreset, } from '@cat-factory/kernel';
|
|
1
|
+
import { BUSINESS_DOCS_PIPELINE_ID, CODE_COMMENTS_PIPELINE_ID, DOCUMENT_QUICK_PIPELINE_ID, INITIATIVE_DOCS_PIPELINE_ID, joinRepoPath, registerInitiativePreset, seedPipelines, } from '@cat-factory/kernel';
|
|
2
2
|
import { DEFAULT_DOCUMENT_STYLE_FRAGMENT_IDS, styleFragments } from '@cat-factory/prompt-fragments';
|
|
3
|
+
import { moduleSlug } from '../../repo-ops/render.js';
|
|
3
4
|
import { detectDocsLayout } from './docs-detect.logic.js';
|
|
4
5
|
// ---------------------------------------------------------------------------
|
|
5
6
|
// The Documentation-refresh initiative preset (initiative-presets slice 8) — the pilot that
|
|
@@ -197,41 +198,60 @@ function strInput(inputs, key, fallback) {
|
|
|
197
198
|
const value = inputs[key];
|
|
198
199
|
return typeof value === 'string' && value.trim() ? value.trim() : fallback;
|
|
199
200
|
}
|
|
200
|
-
/**
|
|
201
|
+
/**
|
|
202
|
+
* A filesystem-safe, lower-kebab file slug for a derived `.md` target path — the package's shared
|
|
203
|
+
* {@link moduleSlug} (single slug implementation) capped to a filename-sane length. A degenerate
|
|
204
|
+
* (empty / all-punctuation) title falls back to `moduleSlug`'s `module`; `seedPlan` deduplicates
|
|
205
|
+
* the composed path anyway, so two such items never collide on one file.
|
|
206
|
+
*/
|
|
201
207
|
function fileSlug(title) {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
+
return moduleSlug(title).slice(0, 60);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Ensure a derived `.md` path is unique within one plan: on collision, insert `-2`, `-3`, … before
|
|
212
|
+
* the extension (the {@link uniqueSlugId} pattern) and record it. Two items whose titles slug to the
|
|
213
|
+
* same name under the same directory would otherwise stamp the SAME `targetPath`, spawning two doc
|
|
214
|
+
* tasks that open competing PRs writing one file. Only derived paths are deduped (planner-authored
|
|
215
|
+
* placement rides the item description, not `targetPath`).
|
|
216
|
+
*/
|
|
217
|
+
function uniqueDocPath(path, taken) {
|
|
218
|
+
if (!taken.has(path)) {
|
|
219
|
+
taken.add(path);
|
|
220
|
+
return path;
|
|
221
|
+
}
|
|
222
|
+
const dot = path.lastIndexOf('.');
|
|
223
|
+
const base = dot === -1 ? path : path.slice(0, dot);
|
|
224
|
+
const ext = dot === -1 ? '' : path.slice(dot);
|
|
225
|
+
let n = 2;
|
|
226
|
+
let candidate = `${base}-${n}${ext}`;
|
|
227
|
+
while (taken.has(candidate))
|
|
228
|
+
candidate = `${base}-${++n}${ext}`;
|
|
229
|
+
taken.add(candidate);
|
|
230
|
+
return candidate;
|
|
208
231
|
}
|
|
209
232
|
/**
|
|
210
233
|
* The per-run gate-override array for a spawned documentation pipeline when human review is opted
|
|
211
234
|
* in — a FULL boolean array parallel to the pipeline's own `agentKinds` (the slice-2 gate-override
|
|
212
|
-
* contract: `ExecutionService.start` rejects a length mismatch).
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
* gates — which are none for all three — so a decoration-less run stays unattended.
|
|
235
|
+
* contract: `ExecutionService.start` rejects a length mismatch). The gate is placed on the `merger`
|
|
236
|
+
* step so the human reviews the CI-green PR right BEFORE it merges — the same point for every doc
|
|
237
|
+
* pipeline, matching the form's "review each documentation change before it merges" promise (rather
|
|
238
|
+
* than gating a mid-pipeline `doc-reviewer` that still auto-merges afterwards).
|
|
217
239
|
*
|
|
218
|
-
* The
|
|
219
|
-
*
|
|
240
|
+
* The placement is DERIVED from the pipeline's `agentKinds` (the merge step's index), so it stays
|
|
241
|
+
* correct by construction if a pipeline's shape changes — never a hand-maintained array parallel to
|
|
242
|
+
* a pipeline this preset doesn't own. `undefined` (human review OFF, the default, or a pipeline with
|
|
243
|
+
* no merge step) leaves the pipeline's own gates — none for all three — so a run stays unattended.
|
|
220
244
|
*/
|
|
221
245
|
export function docsReviewGates(pipelineId, humanReview) {
|
|
222
246
|
if (!humanReview)
|
|
223
247
|
return undefined;
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
return [false, false, false, true];
|
|
232
|
-
default:
|
|
233
|
-
return undefined;
|
|
234
|
-
}
|
|
248
|
+
const kinds = seedPipelines().find((p) => p.id === pipelineId)?.agentKinds;
|
|
249
|
+
if (!kinds)
|
|
250
|
+
return undefined;
|
|
251
|
+
const gateIdx = kinds.lastIndexOf('merger');
|
|
252
|
+
if (gateIdx === -1)
|
|
253
|
+
return undefined;
|
|
254
|
+
return kinds.map((_, i) => i === gateIdx);
|
|
235
255
|
}
|
|
236
256
|
const PHASE_DECORATIONS = {
|
|
237
257
|
// Foundations: a lean doc under the docs root (writing it creates/normalizes the placement dir).
|
|
@@ -241,12 +261,17 @@ const PHASE_DECORATIONS = {
|
|
|
241
261
|
docKind: 'reference',
|
|
242
262
|
placement: 'docs-root',
|
|
243
263
|
},
|
|
244
|
-
// README: a doc that lives BESIDE the code
|
|
264
|
+
// README: a doc that lives BESIDE the code, so its path is per-service and cannot be DERIVED
|
|
265
|
+
// here (seedPlan doesn't know each service's directory). The planner names the README's path in
|
|
266
|
+
// the item description (steered by the promptAdditions) and the doc-writer places it — the same
|
|
267
|
+
// description-placed shape as `comments`/`business-rules`. It CANNOT ride `taskTypeFields.targetPath`:
|
|
268
|
+
// the planner's structured output has no `spawn` field (see `INITIATIVE_PLANNER_SYSTEM_PROMPT`),
|
|
269
|
+
// so `coerceInitiativePlan` never carries one through to `seedPlan`.
|
|
245
270
|
[DOC_TYPE_README]: {
|
|
246
271
|
pipelineId: DOCUMENT_QUICK_PIPELINE_ID,
|
|
247
272
|
taskType: 'document',
|
|
248
273
|
docKind: 'reference',
|
|
249
|
-
placement: '
|
|
274
|
+
placement: 'none',
|
|
250
275
|
},
|
|
251
276
|
// Diagrams: a Mermaid `.md` a doc-writer produces, placed under the diagrams dir. `docKind: other`
|
|
252
277
|
// (there is no `diagrams` DocKind) — its template's required sections (Overview + Details) suit a
|
|
@@ -270,17 +295,17 @@ const PHASE_DECORATIONS = {
|
|
|
270
295
|
placement: 'none',
|
|
271
296
|
},
|
|
272
297
|
};
|
|
273
|
-
/**
|
|
298
|
+
/**
|
|
299
|
+
* The derived `.md` target path for an item (undefined when the placement is writer-placed). The
|
|
300
|
+
* composed path is deduplicated by {@link uniqueDocPath} in `seedPlan`, so a title collision never
|
|
301
|
+
* yields two items writing the same file.
|
|
302
|
+
*/
|
|
274
303
|
function targetPathFor(deco, item, inputs) {
|
|
275
304
|
switch (deco.placement) {
|
|
276
305
|
case 'docs-root':
|
|
277
306
|
return `${joinRepoPath(strInput(inputs, FIELD_DOCS_ROOT, DEFAULT_DOCS_ROOT), fileSlug(item.title))}.md`;
|
|
278
307
|
case 'diagrams-dir':
|
|
279
308
|
return `${joinRepoPath(strInput(inputs, FIELD_DIAGRAMS_DIR, DEFAULT_DIAGRAMS_DIR), fileSlug(item.title))}.md`;
|
|
280
|
-
case 'authored-readme':
|
|
281
|
-
// The planner decides a README's path (beside its service); preserve it if authored + safe
|
|
282
|
-
// (the ingest re-parse re-validates it), else leave unset for the writer to place.
|
|
283
|
-
return item.spawn?.taskTypeFields?.targetPath?.trim() || undefined;
|
|
284
309
|
case 'none':
|
|
285
310
|
return undefined;
|
|
286
311
|
}
|
|
@@ -298,21 +323,25 @@ function seedPlan(draft, inputs) {
|
|
|
298
323
|
const styleFragmentIds = Array.isArray(inputs[FIELD_STYLE_FRAGMENTS])
|
|
299
324
|
? inputs[FIELD_STYLE_FRAGMENTS]
|
|
300
325
|
: [];
|
|
326
|
+
// Track derived `.md` paths across the whole plan so two same-slug items never collide on one file.
|
|
327
|
+
const usedPaths = new Set();
|
|
301
328
|
const items = draft.items.map((item) => {
|
|
302
329
|
const deco = PHASE_DECORATIONS[item.phaseId];
|
|
303
330
|
if (!deco)
|
|
304
331
|
return item;
|
|
305
|
-
const
|
|
306
|
-
const
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
: undefined;
|
|
332
|
+
const derived = targetPathFor(deco, item, inputs);
|
|
333
|
+
const targetPath = derived ? uniqueDocPath(derived, usedPaths) : undefined;
|
|
334
|
+
const taskTypeFields = {
|
|
335
|
+
...(deco.docKind ? { docKind: deco.docKind } : {}),
|
|
336
|
+
...(targetPath ? { targetPath } : {}),
|
|
337
|
+
};
|
|
312
338
|
const gates = docsReviewGates(deco.pipelineId, humanReview);
|
|
339
|
+
// Merge OVER any planner-authored spawn (so a planner `agentConfig` etc. survives) — the
|
|
340
|
+
// decorated fields we own win.
|
|
313
341
|
const spawn = {
|
|
342
|
+
...(item.spawn ?? {}),
|
|
314
343
|
...(deco.taskType ? { taskType: deco.taskType } : {}),
|
|
315
|
-
...(taskTypeFields ? { taskTypeFields } : {}),
|
|
344
|
+
...(Object.keys(taskTypeFields).length ? { taskTypeFields } : {}),
|
|
316
345
|
...(styleFragmentIds.length ? { fragmentIds: styleFragmentIds } : {}),
|
|
317
346
|
...(gates ? { gates } : {}),
|
|
318
347
|
};
|
|
@@ -347,12 +376,13 @@ const PLANNER_STEERING = [
|
|
|
347
376
|
'Build the plan around the required plan shape above, following the documentation audit. Include a',
|
|
348
377
|
'phase ONLY for a documentation type the user requested; omit the others (they are optional).',
|
|
349
378
|
'',
|
|
350
|
-
'Phase `foundations`:
|
|
351
|
-
'
|
|
379
|
+
'Phase `foundations`: ALWAYS present it (the required plan shape mandates it), but give it an item',
|
|
380
|
+
'ONLY to create or normalize a MISSING placement directory a later phase writes into — usually 0–1',
|
|
381
|
+
'items, and leave it with NO items when the directories already exist. Never drop the phase itself.',
|
|
352
382
|
'',
|
|
353
383
|
'Bounded item granularity per phase:',
|
|
354
|
-
'- `readme` — one item per in-scope service
|
|
355
|
-
'
|
|
384
|
+
'- `readme` — one item per in-scope service. Its README lives BESIDE the code, so name the exact',
|
|
385
|
+
' repo-relative path (e.g. `services/auth/README.md`) in the item description for the writer.',
|
|
356
386
|
'- `diagrams` — one item per in-scope service (architecture + the key flows), written under the',
|
|
357
387
|
' diagrams directory from the interview.',
|
|
358
388
|
'- `comments` — one item per worst under-documented module from the audit, capped at 5; name the',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../../../src/presets/docs-refresh/preset.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,YAAY,EACZ,wBAAwB,
|
|
1
|
+
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../../../src/presets/docs-refresh/preset.ts"],"names":[],"mappings":"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"}
|