@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.
Files changed (36) hide show
  1. package/dist/agents/prompts/fragment-brief.d.ts +15 -0
  2. package/dist/agents/prompts/fragment-brief.d.ts.map +1 -0
  3. package/dist/agents/prompts/fragment-brief.js +41 -0
  4. package/dist/agents/prompts/fragment-brief.js.map +1 -0
  5. package/dist/fragmentLibrary/FragmentBriefService.d.ts +50 -0
  6. package/dist/fragmentLibrary/FragmentBriefService.d.ts.map +1 -0
  7. package/dist/fragmentLibrary/FragmentBriefService.js +155 -0
  8. package/dist/fragmentLibrary/FragmentBriefService.js.map +1 -0
  9. package/dist/fragmentLibrary/FragmentLibraryService.d.ts +32 -2
  10. package/dist/fragmentLibrary/FragmentLibraryService.d.ts.map +1 -1
  11. package/dist/fragmentLibrary/FragmentLibraryService.js +49 -11
  12. package/dist/fragmentLibrary/FragmentLibraryService.js.map +1 -1
  13. package/dist/fragmentLibrary/FragmentSourceService.d.ts.map +1 -1
  14. package/dist/fragmentLibrary/FragmentSourceService.js +4 -0
  15. package/dist/fragmentLibrary/FragmentSourceService.js.map +1 -1
  16. package/dist/fragmentLibrary/LlmFragmentBriefGenerator.d.ts +23 -0
  17. package/dist/fragmentLibrary/LlmFragmentBriefGenerator.d.ts.map +1 -0
  18. package/dist/fragmentLibrary/LlmFragmentBriefGenerator.js +92 -0
  19. package/dist/fragmentLibrary/LlmFragmentBriefGenerator.js.map +1 -0
  20. package/dist/fragmentLibrary/fragment-catalog.d.ts +16 -1
  21. package/dist/fragmentLibrary/fragment-catalog.d.ts.map +1 -1
  22. package/dist/fragmentLibrary/fragment-catalog.js +23 -6
  23. package/dist/fragmentLibrary/fragment-catalog.js.map +1 -1
  24. package/dist/fragmentLibrary/fragment-source.logic.d.ts +7 -0
  25. package/dist/fragmentLibrary/fragment-source.logic.d.ts.map +1 -1
  26. package/dist/fragmentLibrary/fragment-source.logic.js +3 -0
  27. package/dist/fragmentLibrary/fragment-source.logic.js.map +1 -1
  28. package/dist/index.d.ts +5 -2
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +3 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/providers/instrumented.d.ts +36 -6
  33. package/dist/providers/instrumented.d.ts.map +1 -1
  34. package/dist/providers/instrumented.js +144 -15
  35. package/dist/providers/instrumented.js.map +1 -1
  36. 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 it in to avoid a second resolve of the same tenant catalog.
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[], catalog?: ResolvedCatalogEntry[]): Promise<{
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;AAG9B,MAAM,WAAW,kCAAkC;IACjD,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,KAAK,EAAE,KAAK,CAAA;IACZ,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAC3B;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,CAAA;IACvD;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAA;CACtD;AAED;;;;;;;;GAQG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAyB;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAA0C;IACxE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAmC;IAEtE,YAAY,IAAI,EAAE,kCAAkC,EASnD;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAIhB,mFAAmF;IAC7E,QAAQ,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAGvF;IAED,iDAAiD;IAC3C,MAAM,CACV,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,cAAc,CAAC,CA6BzB;IAED;;;;;;;OAOG;IACG,kBAAkB,CACtB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,2BAA2B,EAClC,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,cAAc,CAAC,CAoCzB;IAED;;;;OAIG;IACG,OAAO,CACX,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,CAAC,CAiCzB;IAED;;;;OAIG;IACG,MAAM,CACV,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,cAAc,CAAC,CA4CzB;IAED;;;;OAIG;IACG,MAAM,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC7F;IAED;;;;;;;OAOG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAGzE;IAED,gFAAgF;YAClE,WAAW;IASzB;;;;;;;;OAQG;IACG,qBAAqB,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxF;IAED,kFAAkF;IAC5E,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAGtE;IAED,kFAAkF;IAC5E,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAuC/E;IAED;;;;;;;;;;;;;;;;OAgBG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EAAE,EACb,OAAO,CAAC,EAAE,oBAAoB,EAAE,GAC/B,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAsBxE;IAED;;;;;;;;;OASG;YACW,mBAAmB;IAoCjC;;;;;;;OAOG;YACW,sBAAsB;CAUrC"}
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 it in to avoid a second resolve of the same tenant catalog.
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, catalog) {
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 out = [];
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
- // Carry the human title so the prompt composer can render each standard as its own labelled
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
- return out;
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":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAWlE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAUnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAClF,OAAO,EAEL,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AA4CzD;;;;;;;;GAQG;AACH,MAAM,OAAO,sBAAsB;IAChB,IAAI,CAA0B;IAC9B,UAAU,CAAqB;IAC/B,KAAK,CAAO;IACZ,QAAQ,CAAkB;IAC1B,gBAAgB,CAAmB;IACnC,gBAAgB,CAA0B;IAC1C,YAAY,CAA2C;IACvD,iBAAiB,CAAoC;IAEtE,YAAY,IAAwC;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAA;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAA;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,6BAA6B,EAAE,CAAA;QACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAA;QACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAA;QACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAA;IACjD,CAAC;IAED;;;;OAIG;IACK,QAAQ;QACd,OAAO,IAAI,CAAC,gBAAgB,IAAI,kBAAkB,EAAE,CAAA;IACtD,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,QAAQ,CAAC,SAA4B,EAAE,OAAe;QAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;IACvF,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,MAAM,CACV,SAA4B,EAC5B,OAAe,EACf,KAAgC;QAEhC,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACjE,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,eAAe,CAAC,kDAAkD,CAAC,CAAA;QAC9F,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,MAAM,GAAyB;YACnC,UAAU;YACV,SAAS;YACT,OAAO;YACP,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,OAAO;YACjC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;YACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI;YACxC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;YAC7B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;YACvB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;YAClC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;YACzD,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,IAAI;YACvB,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,IAAI;SAChB,CAAA;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9B,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACpD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,kBAAkB,CACtB,SAA4B,EAC5B,OAAe,EACf,KAAkC,EAClC,mBAA2B;QAE3B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,IAAI,eAAe,CAAC,mDAAmD,CAAC,CAAA;QAChF,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QAC/F,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACnE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,eAAe,CAAC,kEAAkE,CAAC,CAAA;QAC/F,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,MAAM,GAAyB;YACnC,UAAU;YACV,SAAS;YACT,OAAO;YACP,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI;YACxC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;YAClC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;YACzD,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,aAAa,EAAE,OAAO,CAAC,UAAU;YACjC,iBAAiB,EAAE,mBAAmB;YACtC,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,IAAI;SAChB,CAAA;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9B,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACpD,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAA;QACzC,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CACX,SAA4B,EAC5B,OAAe,EACf,UAAkB,EAClB,cAAsB;QAEtB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,IAAI,eAAe,CAAC,mDAAmD,CAAC,CAAA;QAChF,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QACpE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7C,MAAM,IAAI,eAAe,CAAC,aAAa,UAAU,iBAAiB,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3D,MAAM,IAAI,eAAe,CAAC,aAAa,UAAU,0BAA0B,CAAC,CAAA;QAC9E,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAC/C,cAAc,EACd,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,aAAa,CACvB,CAAA;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,IAAI,GAAyB;YACjC,GAAG,QAAQ;YACX,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,aAAa,EAAE,OAAO,CAAC,UAAU;YACjC,sEAAsE;YACtE,uEAAuE;YACvE,iBAAiB,EAAE,cAAc;YACjC,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,GAAG;SACf,CAAA;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACpD,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CACV,SAA4B,EAC5B,OAAe,EACf,UAAkB,EAClB,KAAgC;QAEhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,IAAI,GAAyB,QAAQ,IAAI;YAC7C,UAAU;YACV,SAAS;YACT,OAAO;YACP,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,IAAI;YACvB,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,IAAI;SAChB,CAAA;QACD,MAAM,IAAI,GAAyB;YACjC,GAAG,IAAI;YACP,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO;YAC9C,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK;YACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;YACtF,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO;YAC9C,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI;YACrC,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;YAC3E,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YACpF,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,IAAI,EAAE,wBAAwB;SAC1C,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,eAAe,CAAC,uCAAuC,CAAC,CAAA;QACpE,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACpD,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,SAA4B,EAAE,OAAe,EAAE,UAAkB;QAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QACpE,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;YAC/D,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACpD,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAA;YAC3C,OAAM;QACR,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACrB,UAAU;YACV,SAAS;YACT,OAAO;YACP,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,IAAI;YACvB,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;QAC5D,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAA;IAC7F,CAAC;IAED,gFAAgF;IACxE,KAAK,CAAC,WAAW,CAAC,WAAmB;QAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAC9D,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACrD,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC;SACtD,CAAC,CAAA;QACF,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,CAAA;IAClE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,qBAAqB,CAAC,SAA4B,EAAE,OAAe;QACvE,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAM;QAC9B,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAA;QACzC,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QACtD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,aAAa,CAAC,KAA4B;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAEnD,IAAI,MAAM,GAAa,EAAE,CAAA;QACzB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;gBAC7D,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,EAAE,CAAA,CAAC,wDAAwD;QACtE,CAAC;QAED,0EAA0E;QAC1E,2EAA2E;QAC3E,+CAA+C;QAC/C,MAAM,WAAW,GAAa,EAAE,CAAA;QAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAC9B,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAQ;YAC3C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACZ,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtB,CAAC;QACD,0DAA0D;QAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACrD,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvC,CAAC,CAAC;YACH,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,mBAAmB,CACvB,WAAmB,EACnB,GAAa,EACb,OAAgC;QAEhC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QAC/B,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAA;QACnE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAEnD,MAAM,GAAG,GAAkE,EAAE,CAAA;QAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAC9B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAQ;YAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACZ,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC1B,IAAI,CAAC,KAAK;gBAAE,SAAQ;YACpB,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW;gBAC5B,CAAC,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC;gBACpD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;YACd,4FAA4F;YAC5F,wFAAwF;YACxF,0FAA0F;YAC1F,+DAA+D;YAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAC5F,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,mBAAmB,CAC/B,WAAmB,EACnB,KAA2B;QAE3B,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAA;QAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,IAAI,CAAA;QACjF,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO,KAAK,CAAC,IAAI,CAAA;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAA;QACtC,yEAAyE;QACzE,kFAAkF;QAClF,qFAAqF;QACrF,qFAAqF;QACrF,qFAAqF;QACrF,mFAAmF;QACnF,+EAA+E;QAC/E,MAAM,GAAG,GAAG,KAAK,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;QACtF,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC,IAAI,CAAA;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAC9C,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,EAC3C,GAAG,EACH,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,EACrD,KAAK,EAAE,MAAM,EAAE,EAAE;gBACf,gFAAgF;gBAChF,+EAA+E;gBAC/E,yEAAyE;gBACzE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO,KAAK,CAAA;gBACjC,OAAO,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,CAAA;YAC1F,CAAC,CACF,CAAA;YACD,OAAO,OAAO,CAAC,IAAI,CAAA;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC,IAAI,CAAA,CAAC,8DAA8D;QAClF,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,sBAAsB,CAAC,MAA4B;QAC/D,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI;YAAE,OAAM;QACzF,MAAM,GAAG,GACP,MAAM,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACxF,IAAI,CAAC,GAAG;YAAE,OAAM;QAChB,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CACrC,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,EACvD,GAAG,CACJ,CAAA;IACH,CAAC;CACF;AAED,4FAA4F;AAC5F,SAAS,eAAe,CAAC,MAA0B,EAAE,UAAkB;IACrE,OAAO,GAAG,MAAM,IAAI,UAAU,EAAE,CAAA;AAClC,CAAC;AAED,SAAS,YAAY,CAAC,MAA4B;IAChD,MAAM,QAAQ,GAAmB;QAC/B,EAAE,EAAE,MAAM,CAAC,UAAU;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAA;IACD,IAAI,MAAM,CAAC,SAAS;QAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IAC3D,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM;QAAE,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IAClE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC/E,QAAQ,CAAC,MAAM,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,CAAA;IACjG,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;QACtD,QAAQ,CAAC,WAAW,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,CAAA;IACvF,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;QAAE,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;IACvE,OAAO,QAAQ,CAAA;AACjB,CAAC"}
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;CAmDxB"}
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,