@cat-factory/agents 0.84.2 → 0.86.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/prompts/fragment-brief.d.ts +15 -0
- package/dist/agents/prompts/fragment-brief.d.ts.map +1 -0
- package/dist/agents/prompts/fragment-brief.js +41 -0
- package/dist/agents/prompts/fragment-brief.js.map +1 -0
- package/dist/fragmentLibrary/FragmentBriefService.d.ts +50 -0
- package/dist/fragmentLibrary/FragmentBriefService.d.ts.map +1 -0
- package/dist/fragmentLibrary/FragmentBriefService.js +155 -0
- package/dist/fragmentLibrary/FragmentBriefService.js.map +1 -0
- package/dist/fragmentLibrary/FragmentLibraryService.d.ts +32 -2
- package/dist/fragmentLibrary/FragmentLibraryService.d.ts.map +1 -1
- package/dist/fragmentLibrary/FragmentLibraryService.js +49 -11
- package/dist/fragmentLibrary/FragmentLibraryService.js.map +1 -1
- package/dist/fragmentLibrary/FragmentSourceService.d.ts.map +1 -1
- package/dist/fragmentLibrary/FragmentSourceService.js +4 -0
- package/dist/fragmentLibrary/FragmentSourceService.js.map +1 -1
- package/dist/fragmentLibrary/LlmFragmentBriefGenerator.d.ts +23 -0
- package/dist/fragmentLibrary/LlmFragmentBriefGenerator.d.ts.map +1 -0
- package/dist/fragmentLibrary/LlmFragmentBriefGenerator.js +92 -0
- package/dist/fragmentLibrary/LlmFragmentBriefGenerator.js.map +1 -0
- package/dist/fragmentLibrary/fragment-catalog.d.ts +16 -1
- package/dist/fragmentLibrary/fragment-catalog.d.ts.map +1 -1
- package/dist/fragmentLibrary/fragment-catalog.js +23 -6
- package/dist/fragmentLibrary/fragment-catalog.js.map +1 -1
- package/dist/fragmentLibrary/fragment-source.logic.d.ts +7 -0
- package/dist/fragmentLibrary/fragment-source.logic.d.ts.map +1 -1
- package/dist/fragmentLibrary/fragment-source.logic.js +3 -0
- package/dist/fragmentLibrary/fragment-source.logic.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/instrumented.d.ts +36 -6
- package/dist/providers/instrumented.d.ts.map +1 -1
- package/dist/providers/instrumented.js +144 -15
- package/dist/providers/instrumented.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** The inline agent kind the brief generator runs under (for observability + model scope). */
|
|
2
|
+
export declare const FRAGMENT_BRIEF_AGENT_KIND = "fragment-brief";
|
|
3
|
+
/**
|
|
4
|
+
* The role prompt the brief generator runs under. Two properties the caller depends on:
|
|
5
|
+
* the reply is the brief VERBATIM (no preamble, no fences), and every distinct rule in the
|
|
6
|
+
* body survives — the model may drop rationale, examples and elaboration, nothing else.
|
|
7
|
+
*/
|
|
8
|
+
export declare const FRAGMENT_BRIEF_SYSTEM_PROMPT: string;
|
|
9
|
+
/** Assemble the brief-generator prompt from a fragment's content. Pure (unit-testable without a model). */
|
|
10
|
+
export declare function renderFragmentBriefPrompt(input: {
|
|
11
|
+
title: string;
|
|
12
|
+
body: string;
|
|
13
|
+
summary?: string;
|
|
14
|
+
}): string;
|
|
15
|
+
//# sourceMappingURL=fragment-brief.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragment-brief.d.ts","sourceRoot":"","sources":["../../../src/agents/prompts/fragment-brief.ts"],"names":[],"mappings":"AAaA,8FAA8F;AAC9F,eAAO,MAAM,yBAAyB,mBAAmB,CAAA;AAEzD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,QAY4B,CAAA;AAErE,2GAA2G;AAC3G,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,MAAM,CAMT"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// The prompt-fragment BRIEF generator — the inline LLM call that condenses a long
|
|
3
|
+
// best-practice standard into the terse variant implementer kinds fold on every turn of
|
|
4
|
+
// their loop (the `brief-standards` trait). A one-shot completion (no thread, no tools),
|
|
5
|
+
// so this file is just its role prompt plus the pure prompt assembly the service feeds it.
|
|
6
|
+
//
|
|
7
|
+
// The whole safety property of this feature lives in this prompt: a brief REPLACES the
|
|
8
|
+
// body for the kinds that actually write the code, so a condensation that drops a rule
|
|
9
|
+
// silently lowers the bar those agents are held to. Hence the rule the role prompt leads
|
|
10
|
+
// with — compress the elaboration, never the obligations — mirroring the authoring
|
|
11
|
+
// contract stated for hand-written briefs in `@cat-factory/prompt-fragments`' README.
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
/** The inline agent kind the brief generator runs under (for observability + model scope). */
|
|
14
|
+
export const FRAGMENT_BRIEF_AGENT_KIND = 'fragment-brief';
|
|
15
|
+
/**
|
|
16
|
+
* The role prompt the brief generator runs under. Two properties the caller depends on:
|
|
17
|
+
* the reply is the brief VERBATIM (no preamble, no fences), and every distinct rule in the
|
|
18
|
+
* body survives — the model may drop rationale, examples and elaboration, nothing else.
|
|
19
|
+
*/
|
|
20
|
+
export const FRAGMENT_BRIEF_SYSTEM_PROMPT = 'You condense engineering best-practice standards. You are given the full text of one standard ' +
|
|
21
|
+
"that is injected into an AI coding agent's system prompt on EVERY turn of a long loop, and you " +
|
|
22
|
+
'produce a shorter restatement of it.\n\n' +
|
|
23
|
+
'The single rule that governs your output: KEEP EVERY OBLIGATION, DROP ONLY THE ELABORATION. ' +
|
|
24
|
+
'The agent reading your condensation is held to everything the original demands, so each distinct ' +
|
|
25
|
+
'rule, prohibition, threshold, named tool and required step must still be present and still be ' +
|
|
26
|
+
'unambiguous. What you remove is rationale, motivation, background, worked examples, repetition ' +
|
|
27
|
+
'and anything that merely explains WHY a rule exists. If you cannot shorten the text without ' +
|
|
28
|
+
'losing a rule, return it close to its original length rather than dropping one.\n\n' +
|
|
29
|
+
'Write imperative, densely packed prose or terse bullets — whichever the original uses. Aim for ' +
|
|
30
|
+
'roughly a quarter of the original length. Reply with ONLY the condensed standard: no preamble, ' +
|
|
31
|
+
'no heading, no code fences, no commentary about what you removed.';
|
|
32
|
+
/** Assemble the brief-generator prompt from a fragment's content. Pure (unit-testable without a model). */
|
|
33
|
+
export function renderFragmentBriefPrompt(input) {
|
|
34
|
+
const lines = [`Standard: ${input.title.trim()}`];
|
|
35
|
+
const summary = input.summary?.trim();
|
|
36
|
+
if (summary)
|
|
37
|
+
lines.push(`Summary: ${summary}`);
|
|
38
|
+
lines.push('', 'Full text of the standard:', input.body.trim(), '', 'Condensed standard:');
|
|
39
|
+
return lines.join('\n');
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=fragment-brief.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragment-brief.js","sourceRoot":"","sources":["../../../src/agents/prompts/fragment-brief.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kFAAkF;AAClF,wFAAwF;AACxF,yFAAyF;AACzF,2FAA2F;AAC3F,EAAE;AACF,uFAAuF;AACvF,uFAAuF;AACvF,yFAAyF;AACzF,mFAAmF;AACnF,sFAAsF;AACtF,8EAA8E;AAE9E,8FAA8F;AAC9F,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAA;AAEzD;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GACvC,gGAAgG;IAChG,iGAAiG;IACjG,0CAA0C;IAC1C,8FAA8F;IAC9F,mGAAmG;IACnG,gGAAgG;IAChG,iGAAiG;IACjG,8FAA8F;IAC9F,qFAAqF;IACrF,iGAAiG;IACjG,iGAAiG;IACjG,mEAAmE,CAAA;AAErE,2GAA2G;AAC3G,MAAM,UAAU,yBAAyB,CAAC,KAIzC;IACC,MAAM,KAAK,GAAa,CAAC,aAAa,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAA;IACrC,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAA;IAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,4BAA4B,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,qBAAqB,CAAC,CAAA;IAC1F,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Clock, FragmentBriefGenerator, FragmentBriefRepository, FragmentOwnerKind, Logger, ResolvedCatalogEntry } from '@cat-factory/kernel';
|
|
2
|
+
export interface FragmentBriefServiceDependencies {
|
|
3
|
+
/** Where generated briefs are persisted; absent ⇒ nothing is generated or stored. */
|
|
4
|
+
repository: FragmentBriefRepository;
|
|
5
|
+
/** The condensation model; absent or disabled ⇒ long standards fold in full. */
|
|
6
|
+
generator?: FragmentBriefGenerator;
|
|
7
|
+
clock: Clock;
|
|
8
|
+
logger?: Logger;
|
|
9
|
+
}
|
|
10
|
+
/** One standard an implementer dispatch is about to fold, with its CURRENT body. */
|
|
11
|
+
export interface FragmentBriefCandidate {
|
|
12
|
+
entry: ResolvedCatalogEntry;
|
|
13
|
+
/**
|
|
14
|
+
* The body actually being folded — for a document-backed standard the text just
|
|
15
|
+
* re-resolved from the source, NOT the last-persisted snapshot. Passing the snapshot
|
|
16
|
+
* would fingerprint a body the agent never sees, so an edited upstream page would keep
|
|
17
|
+
* serving a brief of its previous revision.
|
|
18
|
+
*/
|
|
19
|
+
body: string;
|
|
20
|
+
}
|
|
21
|
+
export declare class FragmentBriefService {
|
|
22
|
+
private readonly repo;
|
|
23
|
+
private readonly generator?;
|
|
24
|
+
private readonly clock;
|
|
25
|
+
private readonly log;
|
|
26
|
+
constructor(deps: FragmentBriefServiceDependencies);
|
|
27
|
+
/**
|
|
28
|
+
* The brief to fold for each candidate, keyed by fragment id. An id absent from the map
|
|
29
|
+
* folds its full body — the pre-feature behaviour, and the outcome of EVERY failure mode
|
|
30
|
+
* here (no model wired, an unreadable store, a refused condensation). A brief is an
|
|
31
|
+
* optimisation of how a standard is stated; losing it must never change what it requires,
|
|
32
|
+
* so nothing on this path is allowed to propagate into the dispatch.
|
|
33
|
+
*/
|
|
34
|
+
resolveBriefs(workspaceId: string, candidates: FragmentBriefCandidate[]): Promise<Map<string, string>>;
|
|
35
|
+
/**
|
|
36
|
+
* Drop a fragment's generated brief. Called when the fragment itself is removed so the
|
|
37
|
+
* derived row does not outlive what it condenses; best-effort, because a stale row is
|
|
38
|
+
* inert (the fingerprint would reject it against any body) and losing the delete must
|
|
39
|
+
* never fail the removal a curator asked for.
|
|
40
|
+
*/
|
|
41
|
+
forget(ownerKind: FragmentOwnerKind, ownerId: string, fragmentId: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Every stored brief for the scopes `pending` spans, keyed `scope|fragmentId`. Returns
|
|
44
|
+
* undefined when the store could not be read at all — the caller then folds full bodies
|
|
45
|
+
* rather than treating an outage as "nothing has ever been generated", which would
|
|
46
|
+
* re-condense the whole catalog on every dispatch for as long as the store is down.
|
|
47
|
+
*/
|
|
48
|
+
private loadStored;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=FragmentBriefService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FragmentBriefService.d.ts","sourceRoot":"","sources":["../../src/fragmentLibrary/FragmentBriefService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,sBAAsB,EAEtB,uBAAuB,EACvB,iBAAiB,EACjB,MAAM,EACN,oBAAoB,EAErB,MAAM,qBAAqB,CAAA;AAmB5B,MAAM,WAAW,gCAAgC;IAC/C,qFAAqF;IACrF,UAAU,EAAE,uBAAuB,CAAA;IACnC,gFAAgF;IAChF,SAAS,CAAC,EAAE,sBAAsB,CAAA;IAClC,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,oBAAoB,CAAA;IAC3B;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAaD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B,YAAY,IAAI,EAAE,gCAAgC,EAKjD;IAED;;;;;;OAMG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,sBAAsB,EAAE,GACnC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkG9B;IAED;;;;;OAKG;IACG,MAAM,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7F;IAED;;;;;OAKG;YACW,UAAU;CAsBzB"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { noopLogger, resolveFragmentBrief, runBestEffort } from '@cat-factory/kernel';
|
|
2
|
+
/** A scope key that survives grouping: the owner pair a brief row is stored under. */
|
|
3
|
+
function scopeKey(ownerKind, ownerId) {
|
|
4
|
+
return `${ownerKind}:${ownerId}`;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The stored `brief` of a row that records "this body was condensed and the result was not
|
|
8
|
+
* usable" (kernel's `isNotCondensableMarker` reads it back). This service is its ONLY writer.
|
|
9
|
+
*/
|
|
10
|
+
const NOT_CONDENSABLE = '';
|
|
11
|
+
export class FragmentBriefService {
|
|
12
|
+
repo;
|
|
13
|
+
generator;
|
|
14
|
+
clock;
|
|
15
|
+
log;
|
|
16
|
+
constructor(deps) {
|
|
17
|
+
this.repo = deps.repository;
|
|
18
|
+
this.generator = deps.generator;
|
|
19
|
+
this.clock = deps.clock;
|
|
20
|
+
this.log = deps.logger ?? noopLogger;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The brief to fold for each candidate, keyed by fragment id. An id absent from the map
|
|
24
|
+
* folds its full body — the pre-feature behaviour, and the outcome of EVERY failure mode
|
|
25
|
+
* here (no model wired, an unreadable store, a refused condensation). A brief is an
|
|
26
|
+
* optimisation of how a standard is stated; losing it must never change what it requires,
|
|
27
|
+
* so nothing on this path is allowed to propagate into the dispatch.
|
|
28
|
+
*/
|
|
29
|
+
async resolveBriefs(workspaceId, candidates) {
|
|
30
|
+
const briefs = new Map();
|
|
31
|
+
if (candidates.length === 0)
|
|
32
|
+
return briefs;
|
|
33
|
+
// Pass 1 — settle everything decidable without touching the store: a linked brief wins,
|
|
34
|
+
// and a body under the threshold folds in full (no read, no call).
|
|
35
|
+
const pending = [];
|
|
36
|
+
for (const candidate of candidates) {
|
|
37
|
+
const decision = resolveFragmentBrief({
|
|
38
|
+
body: candidate.body,
|
|
39
|
+
authoredBrief: candidate.entry.brief,
|
|
40
|
+
});
|
|
41
|
+
if (decision.kind === 'authored')
|
|
42
|
+
briefs.set(candidate.entry.id, decision.brief);
|
|
43
|
+
else if (decision.kind !== 'body-below-threshold')
|
|
44
|
+
pending.push(candidate);
|
|
45
|
+
}
|
|
46
|
+
if (pending.length === 0)
|
|
47
|
+
return briefs;
|
|
48
|
+
// One read per DISTINCT owner scope (at most two in practice: the run's workspace and
|
|
49
|
+
// its account), indexed into a map — never a point read per fragment.
|
|
50
|
+
const stored = await this.loadStored(pending);
|
|
51
|
+
if (!stored)
|
|
52
|
+
return briefs;
|
|
53
|
+
const toGenerate = [];
|
|
54
|
+
for (const candidate of pending) {
|
|
55
|
+
const { ownerKind, ownerId } = candidate.entry.briefScope;
|
|
56
|
+
const decision = resolveFragmentBrief({
|
|
57
|
+
body: candidate.body,
|
|
58
|
+
authoredBrief: candidate.entry.brief,
|
|
59
|
+
stored: stored.get(`${scopeKey(ownerKind, ownerId)}|${candidate.entry.id}`) ?? null,
|
|
60
|
+
});
|
|
61
|
+
// `not-condensable` lands here as neither: this exact body was already condensed and
|
|
62
|
+
// the result was unusable, so the full text is folded WITHOUT a second model call.
|
|
63
|
+
if (decision.kind === 'generated')
|
|
64
|
+
briefs.set(candidate.entry.id, decision.brief);
|
|
65
|
+
else if (decision.kind === 'generate') {
|
|
66
|
+
toGenerate.push({ candidate, bodyFingerprint: decision.bodyFingerprint });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const generator = this.generator;
|
|
70
|
+
if (toGenerate.length === 0 || !generator?.enabled)
|
|
71
|
+
return briefs;
|
|
72
|
+
// Bounded fan-out: only the oversized standards THIS dispatch folds, and only the ones
|
|
73
|
+
// with no record against their CURRENT body — in the steady state, none.
|
|
74
|
+
//
|
|
75
|
+
// Deliberately NOT claim-guarded. Two dispatches racing on the same fresh standard both
|
|
76
|
+
// condense and both upsert, which costs one extra cheap call and converges (same
|
|
77
|
+
// fingerprint, identical row shape). A claim table with a TTL — the shape used for the
|
|
78
|
+
// tracker/review posts — earns its keep against a duplicated EXTERNAL side effect; here
|
|
79
|
+
// the only cost of losing the race is the call itself, which is the thing a claim round
|
|
80
|
+
// trip would also spend.
|
|
81
|
+
const generated = await Promise.all(toGenerate.map(({ candidate, bodyFingerprint }) => runBestEffort(this.log, 'fragment brief generation', async () => {
|
|
82
|
+
const result = await generator.generate(workspaceId, {
|
|
83
|
+
title: candidate.entry.title,
|
|
84
|
+
body: candidate.body,
|
|
85
|
+
...(candidate.entry.summary ? { summary: candidate.entry.summary } : {}),
|
|
86
|
+
});
|
|
87
|
+
// Both outcomes are persisted against the body's fingerprint. Recording the
|
|
88
|
+
// refusal is what stops a standard that cannot be usefully shortened — which is
|
|
89
|
+
// an ORDINARY result of a generator told to keep every rule — from re-paying for
|
|
90
|
+
// a model call on every implementer dispatch for the rest of its life. It clears
|
|
91
|
+
// itself: edit the standard and the fingerprint no longer matches.
|
|
92
|
+
const brief = result.outcome === 'brief' ? result.brief : NOT_CONDENSABLE;
|
|
93
|
+
const record = {
|
|
94
|
+
ownerKind: candidate.entry.briefScope.ownerKind,
|
|
95
|
+
ownerId: candidate.entry.briefScope.ownerId,
|
|
96
|
+
fragmentId: candidate.entry.id,
|
|
97
|
+
bodyFingerprint,
|
|
98
|
+
brief,
|
|
99
|
+
model: result.model,
|
|
100
|
+
generatedAt: this.clock.now(),
|
|
101
|
+
};
|
|
102
|
+
await this.repo.upsert(record);
|
|
103
|
+
if (result.outcome === 'not-condensable') {
|
|
104
|
+
// Not a failure — but silence here reads as "the feature is on" while every
|
|
105
|
+
// implementer keeps getting full bodies, so say which standard and why once.
|
|
106
|
+
this.log.info('fragment brief not condensable; folding the full standard', {
|
|
107
|
+
workspaceId,
|
|
108
|
+
fragmentId: candidate.entry.id,
|
|
109
|
+
reason: result.reason,
|
|
110
|
+
model: result.model,
|
|
111
|
+
});
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
return { id: candidate.entry.id, brief: result.brief };
|
|
115
|
+
}, { workspaceId, fragmentId: candidate.entry.id })));
|
|
116
|
+
for (const result of generated) {
|
|
117
|
+
if (result)
|
|
118
|
+
briefs.set(result.id, result.brief);
|
|
119
|
+
}
|
|
120
|
+
return briefs;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Drop a fragment's generated brief. Called when the fragment itself is removed so the
|
|
124
|
+
* derived row does not outlive what it condenses; best-effort, because a stale row is
|
|
125
|
+
* inert (the fingerprint would reject it against any body) and losing the delete must
|
|
126
|
+
* never fail the removal a curator asked for.
|
|
127
|
+
*/
|
|
128
|
+
async forget(ownerKind, ownerId, fragmentId) {
|
|
129
|
+
await runBestEffort(this.log, 'fragment brief delete', () => this.repo.delete(ownerKind, ownerId, fragmentId));
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Every stored brief for the scopes `pending` spans, keyed `scope|fragmentId`. Returns
|
|
133
|
+
* undefined when the store could not be read at all — the caller then folds full bodies
|
|
134
|
+
* rather than treating an outage as "nothing has ever been generated", which would
|
|
135
|
+
* re-condense the whole catalog on every dispatch for as long as the store is down.
|
|
136
|
+
*/
|
|
137
|
+
async loadStored(pending) {
|
|
138
|
+
const scopes = new Map();
|
|
139
|
+
for (const { entry } of pending) {
|
|
140
|
+
scopes.set(scopeKey(entry.briefScope.ownerKind, entry.briefScope.ownerId), entry.briefScope);
|
|
141
|
+
}
|
|
142
|
+
const rows = await runBestEffort(this.log, 'fragment brief load', () => Promise.all([...scopes.values()].map((scope) => this.repo.listByOwner(scope.ownerKind, scope.ownerId))));
|
|
143
|
+
if (!rows)
|
|
144
|
+
return undefined;
|
|
145
|
+
const byKey = new Map();
|
|
146
|
+
for (const row of rows.flat()) {
|
|
147
|
+
byKey.set(`${scopeKey(row.ownerKind, row.ownerId)}|${row.fragmentId}`, {
|
|
148
|
+
brief: row.brief,
|
|
149
|
+
bodyFingerprint: row.bodyFingerprint,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
return byKey;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=FragmentBriefService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FragmentBriefService.js","sourceRoot":"","sources":["../../src/fragmentLibrary/FragmentBriefService.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,22 @@ import type { FragmentSelector, FragmentResolver, FragmentResolverInput, Fragmen
|
|
|
5
5
|
import type { PromptFragmentRepository } from '@cat-factory/kernel';
|
|
6
6
|
import type { WorkspaceRepository } from '@cat-factory/kernel';
|
|
7
7
|
import { type ResolvedCatalogEntry } from './fragment-catalog.js';
|
|
8
|
+
import type { FragmentBriefService } from './FragmentBriefService.js';
|
|
9
|
+
/**
|
|
10
|
+
* How verbose a run's folded standards are, mirrored from `@cat-factory/agents`'
|
|
11
|
+
* `StandardsVerbosity` (declared structurally here so the library layer does not depend on
|
|
12
|
+
* the prompt-composition layer). Only a `brief` dispatch resolves condensed variants — an
|
|
13
|
+
* implementer kind is the whole reason they exist, and generating one for a reviewer's
|
|
14
|
+
* dispatch would pay for text that reviewer will never fold.
|
|
15
|
+
*/
|
|
16
|
+
export type FragmentStandardsVerbosity = 'full' | 'brief';
|
|
17
|
+
/** Options for {@link FragmentLibraryService.resolveBodiesForRun}. */
|
|
18
|
+
export interface ResolveBodiesOptions {
|
|
19
|
+
/** An already-resolved merged catalog, to avoid resolving the same tenant catalog twice. */
|
|
20
|
+
catalog?: ResolvedCatalogEntry[];
|
|
21
|
+
/** The dispatching kind's standards verbosity; defaults to `full`. */
|
|
22
|
+
verbosity?: FragmentStandardsVerbosity;
|
|
23
|
+
}
|
|
8
24
|
export interface FragmentLibraryServiceDependencies {
|
|
9
25
|
promptFragmentRepository: PromptFragmentRepository;
|
|
10
26
|
workspaceRepository: WorkspaceRepository;
|
|
@@ -45,6 +61,13 @@ export interface FragmentLibraryServiceDependencies {
|
|
|
45
61
|
* fallback).
|
|
46
62
|
*/
|
|
47
63
|
documentBodyCache?: GroupCacheHandle<DocumentContent>;
|
|
64
|
+
/**
|
|
65
|
+
* Resolves (and, for a long standard with no linked short version, generates) the
|
|
66
|
+
* condensed variant an implementer dispatch folds. Absent ⇒ only AUTHORED briefs are
|
|
67
|
+
* folded and every other long standard is sent in full, which is the pre-feature
|
|
68
|
+
* behaviour rather than a degraded one.
|
|
69
|
+
*/
|
|
70
|
+
briefService?: FragmentBriefService;
|
|
48
71
|
}
|
|
49
72
|
/**
|
|
50
73
|
* The fragment library's management service (ADR 0006). It owns the per-tier CRUD
|
|
@@ -64,6 +87,7 @@ export declare class FragmentLibraryService implements FragmentResolver {
|
|
|
64
87
|
private readonly documentResolver?;
|
|
65
88
|
private readonly catalogCache?;
|
|
66
89
|
private readonly documentBodyCache?;
|
|
90
|
+
private readonly briefs?;
|
|
67
91
|
constructor(deps: FragmentLibraryServiceDependencies);
|
|
68
92
|
/**
|
|
69
93
|
* The built-in tier: the injected test override, else the UNIVERSAL pool (shipped
|
|
@@ -142,9 +166,15 @@ export declare class FragmentLibraryService implements FragmentResolver {
|
|
|
142
166
|
* preserves the input order.
|
|
143
167
|
*
|
|
144
168
|
* A caller that has already resolved the merged catalog (e.g. to also read titles)
|
|
145
|
-
* may pass
|
|
169
|
+
* may pass `options.catalog` to avoid a second resolve of the same tenant catalog.
|
|
170
|
+
*
|
|
171
|
+
* Under `options.verbosity: 'brief'` — an implementer dispatch — each standard also
|
|
172
|
+
* resolves the CONDENSED variant the prompt composer will fold in place of its body:
|
|
173
|
+
* the winning tier's linked `brief`, else a persisted model-generated one, generating
|
|
174
|
+
* (and storing) it here when a long standard has none or when the stored one condensed
|
|
175
|
+
* a body this fragment no longer has. See {@link FragmentBriefService}.
|
|
146
176
|
*/
|
|
147
|
-
resolveBodiesForRun(workspaceId: string, ids: string[],
|
|
177
|
+
resolveBodiesForRun(workspaceId: string, ids: string[], options?: ResolveBodiesOptions): Promise<{
|
|
148
178
|
id: string;
|
|
149
179
|
title: string;
|
|
150
180
|
body: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FragmentLibraryService.d.ts","sourceRoot":"","sources":["../../src/fragmentLibrary/FragmentLibraryService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EAEvB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAwB,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EACL,KAAK,oBAAoB,EAI1B,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"FragmentLibraryService.d.ts","sourceRoot":"","sources":["../../src/fragmentLibrary/FragmentLibraryService.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ export class FragmentLibraryService {
|
|
|
21
21
|
documentResolver;
|
|
22
22
|
catalogCache;
|
|
23
23
|
documentBodyCache;
|
|
24
|
+
briefs;
|
|
24
25
|
constructor(deps) {
|
|
25
26
|
this.repo = deps.promptFragmentRepository;
|
|
26
27
|
this.workspaces = deps.workspaceRepository;
|
|
@@ -30,6 +31,7 @@ export class FragmentLibraryService {
|
|
|
30
31
|
this.documentResolver = deps.documentContentResolver;
|
|
31
32
|
this.catalogCache = deps.catalogCache;
|
|
32
33
|
this.documentBodyCache = deps.documentBodyCache;
|
|
34
|
+
this.briefs = deps.briefService;
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* The built-in tier: the injected test override, else the UNIVERSAL pool (shipped
|
|
@@ -59,6 +61,7 @@ export class FragmentLibraryService {
|
|
|
59
61
|
category: input.category?.trim() || null,
|
|
60
62
|
summary: input.summary.trim(),
|
|
61
63
|
body: input.body.trim(),
|
|
64
|
+
brief: input.brief?.trim() || null,
|
|
62
65
|
appliesTo: input.appliesTo ?? null,
|
|
63
66
|
tags: input.tags && input.tags.length ? input.tags : null,
|
|
64
67
|
sourceId: null,
|
|
@@ -103,6 +106,10 @@ export class FragmentLibraryService {
|
|
|
103
106
|
category: input.category?.trim() || null,
|
|
104
107
|
summary: buildExcerpt(content.body),
|
|
105
108
|
body: content.body,
|
|
109
|
+
// A living document supplies no short version of itself, so a long page is condensed
|
|
110
|
+
// automatically — and re-condensed each time the page moves, since the stored brief is
|
|
111
|
+
// fingerprinted against the body that produced it.
|
|
112
|
+
brief: null,
|
|
106
113
|
appliesTo: input.appliesTo ?? null,
|
|
107
114
|
tags: input.tags && input.tags.length ? input.tags : null,
|
|
108
115
|
sourceId: null,
|
|
@@ -173,6 +180,7 @@ export class FragmentLibraryService {
|
|
|
173
180
|
category: null,
|
|
174
181
|
summary: '',
|
|
175
182
|
body: '',
|
|
183
|
+
brief: null,
|
|
176
184
|
appliesTo: null,
|
|
177
185
|
tags: null,
|
|
178
186
|
sourceId: null,
|
|
@@ -193,6 +201,9 @@ export class FragmentLibraryService {
|
|
|
193
201
|
category: patch.category !== undefined ? patch.category.trim() || null : base.category,
|
|
194
202
|
summary: patch.summary?.trim() ?? base.summary,
|
|
195
203
|
body: patch.body?.trim() ?? base.body,
|
|
204
|
+
// An explicit `''` UNLINKS the short version (handing the fragment back to
|
|
205
|
+
// auto-generation); omitting the key leaves whatever was linked before.
|
|
206
|
+
brief: patch.brief !== undefined ? patch.brief.trim() || null : base.brief,
|
|
196
207
|
appliesTo: patch.appliesTo !== undefined ? patch.appliesTo : base.appliesTo,
|
|
197
208
|
tags: patch.tags !== undefined ? (patch.tags.length ? patch.tags : null) : base.tags,
|
|
198
209
|
updatedAt: now,
|
|
@@ -218,8 +229,15 @@ export class FragmentLibraryService {
|
|
|
218
229
|
await this.repo.softDelete(ownerKind, ownerId, fragmentId, now);
|
|
219
230
|
await this.invalidateCatalogTier(ownerKind, ownerId);
|
|
220
231
|
await this.invalidateDocumentBody(existing);
|
|
232
|
+
// The generated brief condenses a body this tier no longer serves — drop it with the
|
|
233
|
+
// fragment rather than leaving derived text behind a tombstone.
|
|
234
|
+
await this.briefs?.forget(ownerKind, ownerId, fragmentId);
|
|
221
235
|
return;
|
|
222
236
|
}
|
|
237
|
+
// A pure tombstone over an INHERITED id (no row of this tier's own to delete). Nothing to
|
|
238
|
+
// forget here on purpose: any generated brief for that id belongs to the tier that still
|
|
239
|
+
// owns it — a built-in's lives at the account scope — and suppressing it on one board must
|
|
240
|
+
// not delete the condensation its siblings are still folding.
|
|
223
241
|
await this.repo.upsert({
|
|
224
242
|
fragmentId,
|
|
225
243
|
ownerKind,
|
|
@@ -229,6 +247,7 @@ export class FragmentLibraryService {
|
|
|
229
247
|
category: null,
|
|
230
248
|
summary: '',
|
|
231
249
|
body: '',
|
|
250
|
+
brief: null,
|
|
232
251
|
appliesTo: null,
|
|
233
252
|
tags: null,
|
|
234
253
|
sourceId: null,
|
|
@@ -264,7 +283,10 @@ export class FragmentLibraryService {
|
|
|
264
283
|
accountId ? this.repo.listByOwner('account', accountId, true) : Promise.resolve([]),
|
|
265
284
|
this.repo.listByOwner('workspace', workspaceId, true),
|
|
266
285
|
]);
|
|
267
|
-
return mergeCatalog(this.builtins(), accountRows, workspaceRows
|
|
286
|
+
return mergeCatalog(this.builtins(), accountRows, workspaceRows, {
|
|
287
|
+
accountId: accountId ?? null,
|
|
288
|
+
workspaceId,
|
|
289
|
+
});
|
|
268
290
|
}
|
|
269
291
|
/**
|
|
270
292
|
* Drop the cached merged catalog for every workspace a tier write affects —
|
|
@@ -346,14 +368,20 @@ export class FragmentLibraryService {
|
|
|
346
368
|
* preserves the input order.
|
|
347
369
|
*
|
|
348
370
|
* A caller that has already resolved the merged catalog (e.g. to also read titles)
|
|
349
|
-
* may pass
|
|
371
|
+
* may pass `options.catalog` to avoid a second resolve of the same tenant catalog.
|
|
372
|
+
*
|
|
373
|
+
* Under `options.verbosity: 'brief'` — an implementer dispatch — each standard also
|
|
374
|
+
* resolves the CONDENSED variant the prompt composer will fold in place of its body:
|
|
375
|
+
* the winning tier's linked `brief`, else a persisted model-generated one, generating
|
|
376
|
+
* (and storing) it here when a long standard has none or when the stored one condensed
|
|
377
|
+
* a body this fragment no longer has. See {@link FragmentBriefService}.
|
|
350
378
|
*/
|
|
351
|
-
async resolveBodiesForRun(workspaceId, ids,
|
|
379
|
+
async resolveBodiesForRun(workspaceId, ids, options = {}) {
|
|
352
380
|
if (ids.length === 0)
|
|
353
381
|
return [];
|
|
354
|
-
const entries = catalog ?? (await this.resolveCatalog(workspaceId));
|
|
382
|
+
const entries = options.catalog ?? (await this.resolveCatalog(workspaceId));
|
|
355
383
|
const byId = new Map(entries.map((e) => [e.id, e]));
|
|
356
|
-
const
|
|
384
|
+
const resolved = [];
|
|
357
385
|
const seen = new Set();
|
|
358
386
|
for (const id of ids) {
|
|
359
387
|
if (seen.has(id))
|
|
@@ -365,13 +393,21 @@ export class FragmentLibraryService {
|
|
|
365
393
|
const body = entry.documentRef
|
|
366
394
|
? await this.resolveDocumentBody(workspaceId, entry)
|
|
367
395
|
: entry.body;
|
|
368
|
-
|
|
369
|
-
// block (and a code/PR reviewer can cite it by title in its adherence report), plus the
|
|
370
|
-
// WINNING tier's condensed variant (built-in only today) so the implementer-kind fold can
|
|
371
|
-
// never pair a tenant override's body with a built-in's brief.
|
|
372
|
-
out.push({ id, title: entry.title, body, ...(entry.brief ? { brief: entry.brief } : {}) });
|
|
396
|
+
resolved.push({ entry, body });
|
|
373
397
|
}
|
|
374
|
-
|
|
398
|
+
// Only an implementer dispatch folds condensed variants, so only it pays to resolve
|
|
399
|
+
// them; every other kind gets full bodies and never triggers a condensation.
|
|
400
|
+
const briefs = options.verbosity === 'brief' && this.briefs
|
|
401
|
+
? await this.briefs.resolveBriefs(workspaceId, resolved)
|
|
402
|
+
: new Map();
|
|
403
|
+
// Carry the human title so the prompt composer can render each standard as its own labelled
|
|
404
|
+
// block (and a code/PR reviewer can cite it by title in its adherence report), plus the brief
|
|
405
|
+
// resolved ALONGSIDE this body — never re-looked-up by id downstream, so a tenant override's
|
|
406
|
+
// body can never be paired with a built-in's condensed text.
|
|
407
|
+
return resolved.map(({ entry, body }) => {
|
|
408
|
+
const brief = briefs.get(entry.id) ?? entry.brief ?? undefined;
|
|
409
|
+
return { id: entry.id, title: entry.title, body, ...(brief ? { brief } : {}) };
|
|
410
|
+
});
|
|
375
411
|
}
|
|
376
412
|
/**
|
|
377
413
|
* The live body for a document-backed catalog entry, served through the
|
|
@@ -445,6 +481,8 @@ function recordToWire(record) {
|
|
|
445
481
|
summary: record.summary,
|
|
446
482
|
body: record.body,
|
|
447
483
|
};
|
|
484
|
+
if (record.brief)
|
|
485
|
+
fragment.brief = record.brief;
|
|
448
486
|
if (record.appliesTo)
|
|
449
487
|
fragment.appliesTo = record.appliesTo;
|
|
450
488
|
if (record.tags && record.tags.length)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FragmentLibraryService.js","sourceRoot":"","sources":["../../src/fragmentLibrary/FragmentLibraryService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FragmentLibraryService.js","sourceRoot":"","sources":["../../src/fragmentLibrary/FragmentLibraryService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FragmentSourceService.d.ts","sourceRoot":"","sources":["../../src/fragmentLibrary/FragmentSourceService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAA;AACzE,OAAO,KAAK,EAEV,wBAAwB,EAExB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAQ5B;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAC1C,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AAE3B,MAAM,WAAW,iCAAiC;IAChD,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,YAAY,EAAE,YAAY,CAAA;IAC1B,qBAAqB,EAAE,6BAA6B,CAAA;IACpD,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACrF;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,iCAAiC,EAAI;IAExE,2DAA2D;IACrD,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAGnF;IAED,qFAAqF;IAC/E,IAAI,CACR,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAiBzB;IAED,gEAAgE;IAC1D,MAAM,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3F;IAED;;;;;OAKG;IACG,IAAI,CACR,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CA0D7B;IAED;;;;;;OAMG;IACG,MAAM,CACV,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC,CAI/B;YAIa,OAAO;IAmBrB,uFAAuF;YACzE,mBAAmB;IAUjC;;;OAGG;YACW,YAAY;IAc1B;;;;OAIG;YACW,SAAS;
|
|
1
|
+
{"version":3,"file":"FragmentSourceService.d.ts","sourceRoot":"","sources":["../../src/fragmentLibrary/FragmentSourceService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAA;AACzE,OAAO,KAAK,EAEV,wBAAwB,EAExB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAQ5B;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAC1C,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AAE3B,MAAM,WAAW,iCAAiC;IAChD,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,YAAY,EAAE,YAAY,CAAA;IAC1B,qBAAqB,EAAE,6BAA6B,CAAA;IACpD,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACrF;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,iCAAiC,EAAI;IAExE,2DAA2D;IACrD,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAGnF;IAED,qFAAqF;IAC/E,IAAI,CACR,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAiBzB;IAED,gEAAgE;IAC1D,MAAM,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3F;IAED;;;;;OAKG;IACG,IAAI,CACR,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CA0D7B;IAED;;;;;;OAMG;IACG,MAAM,CACV,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC,CAI/B;YAIa,OAAO;IAmBrB,uFAAuF;YACzE,mBAAmB;IAUjC;;;OAGG;YACW,YAAY;IAc1B;;;;OAIG;YACW,SAAS;CAuDxB"}
|
|
@@ -181,6 +181,10 @@ export class FragmentSourceService {
|
|
|
181
181
|
category: parsed.category ?? null,
|
|
182
182
|
summary: parsed.summary,
|
|
183
183
|
body: parsed.body,
|
|
184
|
+
// The file's `brief:` frontmatter, re-read every sync: dropping the key upstream
|
|
185
|
+
// unlinks the short version and hands the fragment back to auto-generation, exactly
|
|
186
|
+
// as dropping any other frontmatter key clears its column.
|
|
187
|
+
brief: parsed.brief ?? null,
|
|
184
188
|
appliesTo: parsed.appliesTo ?? null,
|
|
185
189
|
tags: parsed.tags && parsed.tags.length ? parsed.tags : null,
|
|
186
190
|
sourceId: source.id,
|