@theglitchking/hit-em-with-the-docs 2.7.0 → 2.8.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 (43) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +40 -1
  4. package/dist/action/core/enforce/guard.d.ts +54 -0
  5. package/dist/action/core/enforce/guard.d.ts.map +1 -0
  6. package/dist/action/generators/regenerate.d.ts +14 -3
  7. package/dist/action/generators/regenerate.d.ts.map +1 -1
  8. package/dist/action/index.d.ts +1 -0
  9. package/dist/action/index.d.ts.map +1 -1
  10. package/dist/action/index.js +1 -1
  11. package/dist/action/utils/config.d.ts +58 -11
  12. package/dist/action/utils/config.d.ts.map +1 -1
  13. package/dist/action/utils/glob.d.ts +15 -4
  14. package/dist/action/utils/glob.d.ts.map +1 -1
  15. package/dist/cli/index.js +45 -4
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/core/enforce/guard.d.ts +54 -0
  18. package/dist/core/enforce/guard.d.ts.map +1 -0
  19. package/dist/core/enforce/guard.js +201 -0
  20. package/dist/core/enforce/guard.js.map +1 -0
  21. package/dist/generators/regenerate.d.ts +14 -3
  22. package/dist/generators/regenerate.d.ts.map +1 -1
  23. package/dist/generators/regenerate.js +99 -16
  24. package/dist/generators/regenerate.js.map +1 -1
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +2 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/utils/config.d.ts +47 -0
  30. package/dist/utils/config.d.ts.map +1 -1
  31. package/dist/utils/config.js +13 -0
  32. package/dist/utils/config.js.map +1 -1
  33. package/dist/utils/glob.d.ts +15 -4
  34. package/dist/utils/glob.d.ts.map +1 -1
  35. package/dist/utils/glob.js +16 -4
  36. package/dist/utils/glob.js.map +1 -1
  37. package/hooks/hooks.json +16 -1
  38. package/hooks/pre-tool-use.js +98 -0
  39. package/hooks/session-brief.js +51 -0
  40. package/package.json +2 -1
  41. package/scripts/link-skills.js +5 -4
  42. package/skills/documentation-lifecycle/SKILL.md +130 -0
  43. package/templates/claude/CLAUDE.md +0 -208
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Lifecycle enforcement — the decision function behind the PreToolUse hook.
3
+ *
4
+ * hewtd's lifecycle policy has always been enforced at the CLI boundary (the
5
+ * archive link guard, `auto: false`, the frontmatter schema). None of that
6
+ * binds an *agent*, which will happily `rm` a doc, hand-edit a generated
7
+ * INDEX.md, or invent its own `docs/` folder. This is the part the model
8
+ * cannot reason its way past: the harness runs it, and a `deny` is final.
9
+ *
10
+ * Two rules deny, because they destroy work or corrupt a generated artifact.
11
+ * Everything else at most warns. Anything unrecognized is allowed — this runs
12
+ * in every session the plugin is installed in, including repos that have
13
+ * nothing to do with hewtd, so the cost of a false positive is far higher
14
+ * than the cost of a miss.
15
+ */
16
+ import { basename } from 'path';
17
+ /** Files hewtd generates and owns. Hand-editing them is always wrong. */
18
+ const GENERATED_FILES = new Set(['INDEX.md', 'REGISTRY.md']);
19
+ export const DEFAULT_ENFORCEMENT = {
20
+ blockIndexEdits: true,
21
+ blockDocDeletion: true,
22
+ };
23
+ /** Posix-normalized, leading-`./`-stripped path for matching. */
24
+ function normalize(p) {
25
+ return p.replace(/\\/g, '/').replace(/^\.\//, '');
26
+ }
27
+ /**
28
+ * Is this path inside an `archive/` folder, at any depth?
29
+ *
30
+ * Archived docs are **referenceable but never concrete** — history you may cite,
31
+ * never evidence of what is true now. Nothing under an `archive/` folder is
32
+ * indexed, audited, link-checked, or validated.
33
+ */
34
+ export function isArchived(path) {
35
+ return normalize(path)
36
+ .split('/')
37
+ .some((segment) => segment === 'archive');
38
+ }
39
+ /** Is this path inside the documentation tree? */
40
+ function inDocsTree(path, docsDir) {
41
+ const p = normalize(path);
42
+ const d = normalize(docsDir);
43
+ return p === d || p.includes(`/${d}/`) || p.startsWith(`${d}/`);
44
+ }
45
+ /**
46
+ * Shell commands that destroy a file. `mv` is deliberately absent: moving a
47
+ * doc is how `archive` itself works (via `git mv`), and a hand-rolled move is
48
+ * a warn, not a denial — it loses the frontmatter stamping, but loses nothing.
49
+ */
50
+ const DESTRUCTIVE_RE = /(^|[\s;&|(])(rm|unlink|shred)\s|(^|[\s;&|(])git\s+rm\s/;
51
+ /** Markdown paths a shell command names. */
52
+ function markdownTargets(command, docsDir) {
53
+ const d = normalize(docsDir);
54
+ const re = new RegExp(`[^\\s'"\`;&|]*${d}/[^\\s'"\`;&|]*\\.md`, 'g');
55
+ return command.match(re) ?? [];
56
+ }
57
+ /** Does this text set `status: deprecated` in frontmatter? */
58
+ function setsDeprecated(text) {
59
+ return /^\s*status:\s*['"]?deprecated['"]?\s*$/m.test(text);
60
+ }
61
+ /**
62
+ * Decide what to do about one tool call. Pure — all I/O lives in the hook.
63
+ */
64
+ export function evaluate(input, policy = DEFAULT_ENFORCEMENT) {
65
+ const { toolName, filePath, command, text, docsDir } = input;
66
+ // ---- Write / Edit -------------------------------------------------------
67
+ if ((toolName === 'Write' || toolName === 'Edit') && filePath) {
68
+ const inTree = inDocsTree(filePath, docsDir);
69
+ // DENY: a generated index is not a document. Editing it by hand is either
70
+ // pointless (the next `hewtd index` overwrites it) or actively harmful
71
+ // (it is how people ended up hand-curating rows the indexer then deleted
72
+ // — see issue #12).
73
+ if (policy.blockIndexEdits && inTree && GENERATED_FILES.has(basename(filePath))) {
74
+ return {
75
+ action: 'deny',
76
+ reason: `${basename(filePath)} is a generated artifact, rebuilt from the documents ` +
77
+ `on disk. Hand-edits are overwritten by the next \`hewtd index\` or ` +
78
+ `\`hewtd maintain\`. To change what it lists, change the documents — then ` +
79
+ `run \`hewtd index\`.`,
80
+ };
81
+ }
82
+ // WARN: a doc outside the tree is invisible to every hewtd scan. Scoped to
83
+ // markdown that is plausibly *documentation* — a rival `docs/` folder, or a
84
+ // loose doc at the repo root. Warning on every .md anywhere (a fixture, a
85
+ // subpackage README, a website's own docs) would be noise, and a noisy
86
+ // guard is one people switch off.
87
+ if (!inTree && looksLikeStrayDoc(filePath)) {
88
+ return {
89
+ action: 'warn',
90
+ context: `This project manages its documentation with hit-em-with-the-docs, under ` +
91
+ `\`${docsDir}/\`. A markdown file outside that tree is not indexed, ` +
92
+ `link-checked, or metadata-validated. \`hewtd integrate <file>\` classifies ` +
93
+ `a doc into a domain and registers it.`,
94
+ };
95
+ }
96
+ // WARN: archived content is historical. Editing it is not destructive —
97
+ // hence a warn, not a denial — but it is almost always a mistake: the edit
98
+ // lands in a subtree that no scan reads and no index lists, so it changes
99
+ // nothing anyone will see.
100
+ if (inTree && isArchived(filePath)) {
101
+ return {
102
+ action: 'warn',
103
+ context: `This file is under an \`archive/\` folder. Archived documentation is ` +
104
+ `historical: it is excluded from every hewtd scan — not indexed, not ` +
105
+ `audited, not link-checked, not validated — and describes what the docs ` +
106
+ `used to say, not what is true now. It can be referenced, but it is never ` +
107
+ `evidence of current behavior. \`hewtd unarchive <file>\` restores it to ` +
108
+ `its domain as an active document.`,
109
+ };
110
+ }
111
+ // WARN: `status: deprecated` flags intent but leaves the doc live and
112
+ // indexed. Archiving is the separate step that actually retires it.
113
+ if (inTree && text && setsDeprecated(text)) {
114
+ return {
115
+ action: 'warn',
116
+ context: `\`status: deprecated\` marks intent but leaves the document in its domain ` +
117
+ `folder, still indexed and still scanned. \`hewtd archive <file>\` retires ` +
118
+ `it: the move is reversible (\`archived_from\` records the origin) and ` +
119
+ `link-safe (it refuses if active docs still link to it).`,
120
+ };
121
+ }
122
+ return { action: 'allow' };
123
+ }
124
+ // ---- Bash ---------------------------------------------------------------
125
+ if (toolName === 'Bash' && command) {
126
+ const targets = markdownTargets(command, docsDir);
127
+ if (targets.length === 0)
128
+ return { action: 'allow' };
129
+ // DENY: deleting a doc is the one truly irreversible act, and hewtd has a
130
+ // purpose-built, reversible, link-safe alternative. This is the whole
131
+ // reason the plugin never calls rm/unlink anywhere in its own source.
132
+ if (policy.blockDocDeletion && DESTRUCTIVE_RE.test(command)) {
133
+ return {
134
+ action: 'deny',
135
+ reason: `Deleting documentation is destructive and hewtd never does it. ` +
136
+ `\`hewtd archive ${targets[0]}\` retires a doc instead: it moves the file ` +
137
+ `under \`archive/\` (preserving git history), stamps \`archived_from\` so ` +
138
+ `\`hewtd unarchive\` can restore it exactly, and refuses if active docs ` +
139
+ `still link to it. Use \`--force\` there to override the link guard.`,
140
+ };
141
+ }
142
+ // WARN: a hand-rolled move into archive/ skips the frontmatter stamping,
143
+ // so `unarchive` has no `archived_from` to restore from.
144
+ if (/(^|[\s;&|(])(mv|git\s+mv)\s/.test(command) && /archive\//.test(command)) {
145
+ return {
146
+ action: 'warn',
147
+ context: `Moving a doc into \`archive/\` by hand skips the lifecycle stamping. ` +
148
+ `\`hewtd archive <file>\` records \`archived_on\`, \`archived_from\`, and ` +
149
+ `\`archived_reason\`, which is what makes \`hewtd unarchive\` lossless; a ` +
150
+ `plain move leaves nothing to restore from.`,
151
+ };
152
+ }
153
+ return { action: 'allow' };
154
+ }
155
+ return { action: 'allow' };
156
+ }
157
+ /** A repo's own top-level markdown — never documentation-tree content. */
158
+ const PROJECT_FILES = new Set([
159
+ 'README.MD',
160
+ 'CHANGELOG.MD',
161
+ 'CONTRIBUTING.MD',
162
+ 'LICENSE.MD',
163
+ 'CLAUDE.MD',
164
+ 'AGENTS.MD',
165
+ 'SECURITY.MD',
166
+ 'CODE_OF_CONDUCT.MD',
167
+ ]);
168
+ /** Folder names that mean "somebody is starting a rival documentation tree". */
169
+ const RIVAL_DOC_DIRS = new Set(['docs', 'doc', 'documentation', 'wiki', 'guides']);
170
+ /**
171
+ * Is this markdown a *stray document* — something that ought to have gone
172
+ * through `integrate`?
173
+ *
174
+ * Deliberately narrow. It catches the real failure mode (an agent creating
175
+ * `docs/how-it-works.md` in a repo that already has a managed tree, or dropping
176
+ * a loose doc at the root) and stays silent on markdown that is obviously not
177
+ * documentation: source fixtures, subpackage READMEs, a website's own content,
178
+ * agent scaffolding. Anything it misses is merely un-nagged; anything it
179
+ * over-claims is a papercut on every unrelated file the user writes.
180
+ */
181
+ function looksLikeStrayDoc(filePath) {
182
+ const p = normalize(filePath);
183
+ if (!p.endsWith('.md'))
184
+ return false;
185
+ const segments = p.split('/');
186
+ const name = basename(p).toUpperCase();
187
+ // Agent/tooling scaffolding and dependencies are never docs.
188
+ if (segments.some((s) => s === 'node_modules' || s === '.planning' || s === '.claude')) {
189
+ return false;
190
+ }
191
+ // A rival docs folder anywhere in the path.
192
+ if (segments.slice(0, -1).some((s) => RIVAL_DOC_DIRS.has(s.toLowerCase()))) {
193
+ return true;
194
+ }
195
+ // A loose doc sitting at the repo root that isn't one of the standard
196
+ // project files.
197
+ if (segments.length === 1 && !PROJECT_FILES.has(name))
198
+ return true;
199
+ return false;
200
+ }
201
+ //# sourceMappingURL=guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/core/enforce/guard.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,12 @@ export interface RegenerateOptions {
9
9
  */
10
10
  domains?: Domain[];
11
11
  silent?: boolean;
12
+ /**
13
+ * Compute everything, write nothing. `filesWritten` then lists the files
14
+ * that WOULD be written. Exists so users can preview the (large, one-time)
15
+ * diff the 2.7.1 recursive walk produces before committing to it.
16
+ */
17
+ dryRun?: boolean;
12
18
  }
13
19
  export interface RegenerateResult {
14
20
  /** Per-domain document counts — all domains, regardless of the filter. */
@@ -19,9 +25,14 @@ export interface RegenerateResult {
19
25
  totalDocuments: number;
20
26
  }
21
27
  /**
22
- * List the document files in a domain directory, excluding the generated
23
- * INDEX.md / REGISTRY.md. Returns sorted file names (not paths). Empty when
24
- * the domain directory does not exist.
28
+ * List the document files in a domain directory, walking subfolders. Returns
29
+ * sorted, domain-relative POSIX paths (`backend/entity-schema-contract.md`).
30
+ * Empty when the domain directory does not exist.
31
+ *
32
+ * This is the shared spine for three consumers — the index generator, the
33
+ * `index-drift` audit rule, and the `domain remove` orphan count — so what it
34
+ * excludes, the whole system excludes: the generated INDEX/REGISTRY at any
35
+ * depth, `EXCLUDED_DIRS`, and the vault's generator-owned subtrees (issue #12).
25
36
  */
26
37
  export declare function listDomainDocFiles(docsPath: string, domain: string): Promise<string[]>;
27
38
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"regenerate.d.ts","sourceRoot":"","sources":["../../src/generators/regenerate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAmB3D,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAkED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAkE3B"}
1
+ {"version":3,"file":"regenerate.d.ts","sourceRoot":"","sources":["../../src/generators/regenerate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAiE3D,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnB;AAwFD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAuE3B"}
@@ -1,24 +1,82 @@
1
1
  import { readdir, readFile, writeFile } from 'fs/promises';
2
- import { join } from 'path';
2
+ import { basename, dirname, join, relative, resolve, sep } from 'path';
3
3
  import { getAllDomains } from '../core/domains/registry.js';
4
4
  import { parseFrontmatter } from '../utils/frontmatter.js';
5
5
  import { formatDate } from '../core/metadata/generator.js';
6
6
  import { pathExists } from '../utils/glob.js';
7
+ import { loadPluginConfigSync, resolveVaultRoot } from '../utils/config.js';
7
8
  import { logger } from '../utils/logger.js';
8
9
  import { generateRootIndex, generateDomainIndexContent, } from './index-generator.js';
9
10
  import { generateRootRegistry, generateDomainRegistryContent, } from './registry-generator.js';
10
11
  /** Generated files that are never themselves treated as documents. */
11
12
  const SYSTEM_FILES = new Set(['INDEX.md', 'REGISTRY.md']);
12
13
  /**
13
- * List the document files in a domain directory, excluding the generated
14
- * INDEX.md / REGISTRY.md. Returns sorted file names (not paths). Empty when
15
- * the domain directory does not exist.
14
+ * Directory names that are never part of the active corpus, at any depth
15
+ * inside a domain. Before the walk went recursive these were excluded by
16
+ * accident a flat readdir physically could not reach them — so this set is
17
+ * what keeps a hand-made `features/archive/` or a vendored doc tree from being
18
+ * published into a live index.
19
+ */
20
+ const EXCLUDED_DIRS = new Set([
21
+ 'archive',
22
+ 'drafts',
23
+ 'reports',
24
+ '_templates',
25
+ 'node_modules',
26
+ '.documentation',
27
+ ]);
28
+ /**
29
+ * Vault subtrees that have their own generators (`facts-index`,
30
+ * `incidents-index`, `symptoms-index`) and their own lifecycle tiers
31
+ * (`fact`, `incident-narrative`, `incident-facts`).
32
+ *
33
+ * Only these are withheld from the generic domain index — not the whole vault
34
+ * root. A project that registers the vault root as a domain (as
35
+ * `knowledge-base` commonly is) still gets its top-level docs indexed as it
36
+ * always has; what it must never get is every fact and incident narrative
37
+ * swept into a generic INDEX/REGISTRY, indexed a second time and rendered as
38
+ * if they were ordinary guides.
39
+ */
40
+ const VAULT_GENERATED_SUBDIRS = ['facts', 'incidents', 'symptoms'];
41
+ /**
42
+ * Prefixes, relative to the docs root, that the vault's own generators own —
43
+ * e.g. `['knowledge-base/facts', 'knowledge-base/incidents', ...]`. Empty when
44
+ * the configured vault lives outside the docs tree entirely.
45
+ */
46
+ function vaultOwnedPrefixes(docsPath) {
47
+ const docsAbs = resolve(docsPath);
48
+ const projectRoot = dirname(docsAbs);
49
+ const vaultAbs = resolveVaultRoot(projectRoot, loadPluginConfigSync(projectRoot));
50
+ const rel = relative(docsAbs, vaultAbs);
51
+ if (!rel || rel.startsWith('..'))
52
+ return [];
53
+ const vaultPath = rel.split(sep).join('/');
54
+ return VAULT_GENERATED_SUBDIRS.map((sub) => `${vaultPath}/${sub}`);
55
+ }
56
+ /**
57
+ * List the document files in a domain directory, walking subfolders. Returns
58
+ * sorted, domain-relative POSIX paths (`backend/entity-schema-contract.md`).
59
+ * Empty when the domain directory does not exist.
60
+ *
61
+ * This is the shared spine for three consumers — the index generator, the
62
+ * `index-drift` audit rule, and the `domain remove` orphan count — so what it
63
+ * excludes, the whole system excludes: the generated INDEX/REGISTRY at any
64
+ * depth, `EXCLUDED_DIRS`, and the vault's generator-owned subtrees (issue #12).
16
65
  */
17
66
  export async function listDomainDocFiles(docsPath, domain) {
67
+ const vaultPrefixes = vaultOwnedPrefixes(docsPath);
68
+ const inVault = (docRelPath) => {
69
+ const fromDocsRoot = `${domain}/${docRelPath}`;
70
+ return vaultPrefixes.some((prefix) => fromDocsRoot.startsWith(`${prefix}/`));
71
+ };
18
72
  try {
19
- const names = await readdir(join(docsPath, domain));
73
+ const names = await readdir(join(docsPath, domain), { recursive: true });
20
74
  return names
21
- .filter((n) => n.endsWith('.md') && !SYSTEM_FILES.has(n))
75
+ .map((n) => n.split(sep).join('/'))
76
+ .filter((n) => n.endsWith('.md'))
77
+ .filter((n) => !SYSTEM_FILES.has(basename(n)))
78
+ .filter((n) => !n.split('/').some((seg) => EXCLUDED_DIRS.has(seg)))
79
+ .filter((n) => !inVault(n))
22
80
  .sort();
23
81
  }
24
82
  catch {
@@ -39,9 +97,14 @@ function normalizeDate(value) {
39
97
  function countWords(body) {
40
98
  return body.split(/\s+/).filter(Boolean).length;
41
99
  }
42
- /** Derive a human title from a file name when frontmatter has no title. */
100
+ /**
101
+ * Derive a human title from a file name when frontmatter has no title. Takes
102
+ * the basename: the input is a domain-relative subpath, and title-casing the
103
+ * whole thing would render `backend/entity-schema-contract.md` as
104
+ * "Backend/entity Schema Contract".
105
+ */
43
106
  function titleFromFileName(fileName) {
44
- return fileName
107
+ return basename(fileName)
45
108
  .replace(/\.md$/, '')
46
109
  .replace(/[-_]/g, ' ')
47
110
  .replace(/\b\w/g, (c) => c.toUpperCase());
@@ -62,7 +125,22 @@ async function buildDomainEntries(docsPath, domain, pathPrefix) {
62
125
  catch {
63
126
  continue;
64
127
  }
65
- const { data, content } = parseFrontmatter(raw);
128
+ // A doc with malformed YAML must not take down the whole run. Before the
129
+ // walk went recursive these files were simply never read; now that they
130
+ // are, one bad frontmatter block in one nested doc would otherwise abort
131
+ // `index`/`maintain` for the entire project with a gray-matter stack
132
+ // trace. Index it anyway — the document exists and should be findable —
133
+ // with filename-derived defaults, and say so.
134
+ let data = {};
135
+ let content = '';
136
+ try {
137
+ ({ data, content } = parseFrontmatter(raw));
138
+ }
139
+ catch (error) {
140
+ logger.warn(`Unparseable frontmatter in ${domain}/${fileName} — indexing it with ` +
141
+ `defaults. Fix the YAML to control how it appears: ` +
142
+ `${error instanceof Error ? error.message.split('\n')[0] : String(error)}`);
143
+ }
66
144
  entries.push({
67
145
  path: pathPrefix + fileName,
68
146
  title: typeof data.title === 'string' && data.title.trim()
@@ -89,7 +167,7 @@ async function buildDomainEntries(docsPath, domain, pathPrefix) {
89
167
  * (see https://github.com/TheGlitchKing/hit-em-with-the-docs/issues/7).
90
168
  */
91
169
  export async function regenerateIndexes(options) {
92
- const { docsPath, silent = false } = options;
170
+ const { docsPath, silent = false, dryRun = false } = options;
93
171
  const allDomains = getAllDomains();
94
172
  const targetDomains = options.domains ?? allDomains;
95
173
  const result = {
@@ -117,21 +195,26 @@ export async function regenerateIndexes(options) {
117
195
  continue;
118
196
  const indexPath = join(domainDir, 'INDEX.md');
119
197
  const registryPath = join(domainDir, 'REGISTRY.md');
120
- await writeFile(indexPath, generateDomainIndexContent(domain, domainEntries), 'utf-8');
121
- await writeFile(registryPath, generateDomainRegistryContent(domain, domainEntries), 'utf-8');
198
+ if (!dryRun) {
199
+ await writeFile(indexPath, generateDomainIndexContent(domain, domainEntries), 'utf-8');
200
+ await writeFile(registryPath, generateDomainRegistryContent(domain, domainEntries), 'utf-8');
201
+ }
122
202
  result.filesWritten.push(indexPath, registryPath);
123
203
  }
124
204
  // Root INDEX.md / REGISTRY.md — always refreshed.
125
205
  if (await pathExists(docsPath)) {
126
206
  const rootIndexPath = join(docsPath, 'INDEX.md');
127
207
  const rootRegistryPath = join(docsPath, 'REGISTRY.md');
128
- await writeFile(rootIndexPath, generateRootIndex(rootEntriesByDomain), 'utf-8');
129
- await writeFile(rootRegistryPath, generateRootRegistry(), 'utf-8');
208
+ if (!dryRun) {
209
+ await writeFile(rootIndexPath, generateRootIndex(rootEntriesByDomain), 'utf-8');
210
+ await writeFile(rootRegistryPath, generateRootRegistry(), 'utf-8');
211
+ }
130
212
  result.filesWritten.push(rootIndexPath, rootRegistryPath);
131
213
  }
132
214
  if (!silent) {
133
- logger.success(`Regenerated ${result.filesWritten.length} index file(s) — ` +
134
- `${result.totalDocuments} document(s) across ${allDomains.length} domains`);
215
+ logger.success(`${dryRun ? 'Would regenerate' : 'Regenerated'} ${result.filesWritten.length} ` +
216
+ `index file(s) — ${result.totalDocuments} document(s) across ` +
217
+ `${allDomains.length} domains`);
135
218
  }
136
219
  return result;
137
220
  }
@@ -1 +1 @@
1
- {"version":3,"file":"regenerate.js","sourceRoot":"","sources":["../../src/generators/regenerate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAE3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,sEAAsE;AACtE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;AAuB1D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACpD,OAAO,KAAK;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACxD,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClC,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,qEAAqE;AACrE,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAED,2EAA2E;AAC3E,SAAS,iBAAiB,CAAC,QAAgB;IACzC,OAAO,QAAQ;SACZ,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,MAAc,EACd,UAAkB;IAElB,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAA0B,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,UAAU,GAAG,QAAQ;YAC3B,KAAK,EACH,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACjD,CAAC,CAAC,IAAI,CAAC,KAAK;gBACZ,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YACjC,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;YACzD,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YAChE,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;YAC7C,SAAS,EACP,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;gBACjC,CAAC,CAAC,IAAI,CAAC,UAAU;gBACjB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA0B;IAE1B,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC;IAEpD,MAAM,MAAM,GAAqB;QAC/B,cAAc,EAAE,EAAE;QAClB,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,CAAC;KAClB,CAAC;IAEF,uEAAuE;IACvE,yDAAyD;IACzD,MAAM,mBAAmB,GAAiC,EAAE,CAAC;IAE7D,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;QACrD,MAAM,CAAC,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC;QAC9C,mBAAmB,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,GAAG,CAAC;YACJ,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE;SAC5B,CAAC,CAAC,CAAC;QAEJ,uEAAuE;QACvE,yCAAyC;QACzC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAS;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;YAAE,SAAS;QAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpD,MAAM,SAAS,CACb,SAAS,EACT,0BAA0B,CAAC,MAAM,EAAE,aAAa,CAAC,EACjD,OAAO,CACR,CAAC;QACF,MAAM,SAAS,CACb,YAAY,EACZ,6BAA6B,CAAC,MAAM,EAAE,aAAa,CAAC,EACpD,OAAO,CACR,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;IAED,kDAAkD;IAClD,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,SAAS,CACb,aAAa,EACb,iBAAiB,CAAC,mBAAmD,CAAC,EACtE,OAAO,CACR,CAAC;QACF,MAAM,SAAS,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,OAAO,CACZ,eAAe,MAAM,CAAC,YAAY,CAAC,MAAM,mBAAmB;YAC1D,GAAG,MAAM,CAAC,cAAc,uBAAuB,UAAU,CAAC,MAAM,UAAU,CAC7E,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"regenerate.js","sourceRoot":"","sources":["../../src/generators/regenerate.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -34,6 +34,7 @@ export * from './reports/link-report.js';
34
34
  export * from './core/archive/manage.js';
35
35
  export * from './core/archive/candidates.js';
36
36
  export * from './core/archive/links.js';
37
+ export * from './core/enforce/guard.js';
37
38
  export * from './core/metadata/errors.js';
38
39
  export * from './core/knowledge-base/citers.js';
39
40
  export * from './generators/facts-index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAGzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AAGxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAGzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AAGxC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -42,6 +42,8 @@ export * from './reports/link-report.js';
42
42
  export * from './core/archive/manage.js';
43
43
  export * from './core/archive/candidates.js';
44
44
  export * from './core/archive/links.js';
45
+ // Lifecycle enforcement (2.8.0+)
46
+ export * from './core/enforce/guard.js';
45
47
  // Knowledge-base primitives (2.3.0+)
46
48
  export * from './core/metadata/errors.js';
47
49
  export * from './core/knowledge-base/citers.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAqB;AACrB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAE7C,kBAAkB;AAClB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAE7C,YAAY;AACZ,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAEpC,aAAa;AACb,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAE3C,kBAAkB;AAClB,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAEhD,mBAAmB;AACnB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAEhD,UAAU;AACV,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,4BAA4B;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AAExC,qCAAqC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAqB;AACrB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAE7C,kBAAkB;AAClB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAE7C,YAAY;AACZ,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAEpC,aAAa;AACb,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAE3C,kBAAkB;AAClB,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAEhD,mBAAmB;AACnB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAEhD,UAAU;AACV,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,4BAA4B;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AAExC,iCAAiC;AACjC,cAAc,yBAAyB,CAAC;AAExC,qCAAqC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
@@ -88,6 +88,22 @@ declare const archiveConfigSchema: z.ZodDefault<z.ZodObject<{
88
88
  require_orphaned?: boolean | undefined;
89
89
  auto?: boolean | undefined;
90
90
  }>>;
91
+ /**
92
+ * Lifecycle enforcement (2.8.0). Governs the PreToolUse guard, which is what
93
+ * makes the policy binding on an agent rather than merely documented. Both
94
+ * rules default ON — but they are opt-out, because a guard nobody can disable
95
+ * is a guard people uninstall the plugin to escape.
96
+ */
97
+ declare const enforcementConfigSchema: z.ZodDefault<z.ZodObject<{
98
+ block_index_edits: z.ZodDefault<z.ZodBoolean>;
99
+ block_doc_deletion: z.ZodDefault<z.ZodBoolean>;
100
+ }, "strip", z.ZodTypeAny, {
101
+ block_index_edits: boolean;
102
+ block_doc_deletion: boolean;
103
+ }, {
104
+ block_index_edits?: boolean | undefined;
105
+ block_doc_deletion?: boolean | undefined;
106
+ }>>;
91
107
  declare const pluginConfigSchema: z.ZodObject<{
92
108
  vault: z.ZodDefault<z.ZodObject<{
93
109
  root: z.ZodDefault<z.ZodString>;
@@ -102,6 +118,16 @@ declare const pluginConfigSchema: z.ZodObject<{
102
118
  playbook_paths?: string[] | undefined;
103
119
  audit_window_days?: number | undefined;
104
120
  }>>;
121
+ enforcement: z.ZodDefault<z.ZodObject<{
122
+ block_index_edits: z.ZodDefault<z.ZodBoolean>;
123
+ block_doc_deletion: z.ZodDefault<z.ZodBoolean>;
124
+ }, "strip", z.ZodTypeAny, {
125
+ block_index_edits: boolean;
126
+ block_doc_deletion: boolean;
127
+ }, {
128
+ block_index_edits?: boolean | undefined;
129
+ block_doc_deletion?: boolean | undefined;
130
+ }>>;
105
131
  domains: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodObject<{
106
132
  id: z.ZodString;
107
133
  name: z.ZodString;
@@ -161,6 +187,16 @@ declare const pluginConfigSchema: z.ZodObject<{
161
187
  playbook_paths?: string[] | undefined;
162
188
  audit_window_days?: number | undefined;
163
189
  }>>;
190
+ enforcement: z.ZodDefault<z.ZodObject<{
191
+ block_index_edits: z.ZodDefault<z.ZodBoolean>;
192
+ block_doc_deletion: z.ZodDefault<z.ZodBoolean>;
193
+ }, "strip", z.ZodTypeAny, {
194
+ block_index_edits: boolean;
195
+ block_doc_deletion: boolean;
196
+ }, {
197
+ block_index_edits?: boolean | undefined;
198
+ block_doc_deletion?: boolean | undefined;
199
+ }>>;
164
200
  domains: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodObject<{
165
201
  id: z.ZodString;
166
202
  name: z.ZodString;
@@ -220,6 +256,16 @@ declare const pluginConfigSchema: z.ZodObject<{
220
256
  playbook_paths?: string[] | undefined;
221
257
  audit_window_days?: number | undefined;
222
258
  }>>;
259
+ enforcement: z.ZodDefault<z.ZodObject<{
260
+ block_index_edits: z.ZodDefault<z.ZodBoolean>;
261
+ block_doc_deletion: z.ZodDefault<z.ZodBoolean>;
262
+ }, "strip", z.ZodTypeAny, {
263
+ block_index_edits: boolean;
264
+ block_doc_deletion: boolean;
265
+ }, {
266
+ block_index_edits?: boolean | undefined;
267
+ block_doc_deletion?: boolean | undefined;
268
+ }>>;
223
269
  domains: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodObject<{
224
270
  id: z.ZodString;
225
271
  name: z.ZodString;
@@ -267,6 +313,7 @@ declare const pluginConfigSchema: z.ZodObject<{
267
313
  }>>;
268
314
  }, z.ZodTypeAny, "passthrough">>;
269
315
  export type VaultConfig = z.infer<typeof vaultConfigSchema>;
316
+ export type EnforcementConfig = z.infer<typeof enforcementConfigSchema>;
270
317
  export type ArchiveConfig = z.infer<typeof archiveConfigSchema>;
271
318
  export type PluginConfig = z.infer<typeof pluginConfigSchema>;
272
319
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB,mCAAmC,CAAC;AACnE,eAAO,MAAM,sBAAsB,UAA6B,CAAC;AACjE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAK5C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,0DAKzB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAgBpE;;;;GAIG;AACH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;GAMT,CAAC;AAEf,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;GAWX,CAAC;AAEf,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAMR,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkBlF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CAiBvE;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAYlC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAElF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,YAAY,GACnB,MAAM,EAAE,CAEV"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB,mCAAmC,CAAC;AACnE,eAAO,MAAM,sBAAsB,UAA6B,CAAC;AACjE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAK5C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,0DAKzB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAgBpE;;;;GAIG;AACH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;GAMT,CAAC;AAEf,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;GAWX,CAAC;AAEf;;;;;GAKG;AACH,QAAA,MAAM,uBAAuB;;;;;;;;;GAKf,CAAC;AAEf,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAOR,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkBlF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CAiBvE;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAYlC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAElF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,YAAY,GACnB,MAAM,EAAE,CAEV"}
@@ -87,9 +87,22 @@ const archiveConfigSchema = z
87
87
  auto: z.boolean().default(false),
88
88
  })
89
89
  .default({});
90
+ /**
91
+ * Lifecycle enforcement (2.8.0). Governs the PreToolUse guard, which is what
92
+ * makes the policy binding on an agent rather than merely documented. Both
93
+ * rules default ON — but they are opt-out, because a guard nobody can disable
94
+ * is a guard people uninstall the plugin to escape.
95
+ */
96
+ const enforcementConfigSchema = z
97
+ .object({
98
+ block_index_edits: z.boolean().default(true),
99
+ block_doc_deletion: z.boolean().default(true),
100
+ })
101
+ .default({});
90
102
  const pluginConfigSchema = z
91
103
  .object({
92
104
  vault: vaultConfigSchema,
105
+ enforcement: enforcementConfigSchema,
93
106
  domains: lenientDomainsArray,
94
107
  archive: archiveConfigSchema,
95
108
  })
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,gCAAgC,CAAC;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,+EAA+E;AAC/E,MAAM,aAAa,GAAG,4BAA4B,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,MAAM;IACN,aAAa;IACb,UAAU;IACV,UAAU;CACF,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,8BAA8B,CAAC;IACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAkC,CAAC;IAC/E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;CACzC,CAAC,CAAC;AAIH;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG,CAAC;KAC1B,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;IAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AAC5E,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;KAC9B,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC5C,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;IACnE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC;CAClF,CAAC;KACD,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAElD;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClD,oBAAoB,EAAE,CAAC;SACpB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,OAAO,CAAC,8BAA8B,CAAC;IAC1C,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACjC,CAAC;KACD,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf;;;;;GAKG;AACH,MAAM,uBAAuB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC5C,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC9C,CAAC;KACD,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf,MAAM,kBAAkB,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,uBAAuB;IACpC,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,mBAAmB;CAC7B,CAAC;KACD,WAAW,EAAE,CAAC;AAOjB,MAAM,eAAe,GAAG,mCAAmC,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAoB;IACzD,MAAM,IAAI,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAElD,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,GAAG,EAAE,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,wDAAwD;IACxD,OAAO,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAoB;IACvD,MAAM,IAAI,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAElD,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,GAAG,EAAE,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAoB;IAEpB,MAAM,IAAI,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACnE,CAAC,CAAE,MAAkC;YACrC,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAAmB,EACnB,IAA6B;IAE7B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACzD,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3E,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAAC,WAAmB;IAChD,OAAO,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,MAAoB;IACxE,OAAO,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAAmB,EACnB,MAAoB;IAEpB,OAAO,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC"}