@isaacriehm/cairn-core 0.22.6 → 0.24.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 (76) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/cites/expand.d.ts +75 -0
  3. package/dist/cites/expand.js +197 -0
  4. package/dist/cites/expand.js.map +1 -0
  5. package/dist/context/index.d.ts +2 -0
  6. package/dist/context/index.js +1 -0
  7. package/dist/context/index.js.map +1 -1
  8. package/dist/context/task-summary.d.ts +18 -0
  9. package/dist/context/task-summary.js +94 -23
  10. package/dist/context/task-summary.js.map +1 -1
  11. package/dist/context/working-header.d.ts +29 -0
  12. package/dist/context/working-header.js +125 -0
  13. package/dist/context/working-header.js.map +1 -0
  14. package/dist/doctor/index.d.ts +10 -4
  15. package/dist/doctor/index.js +24 -11
  16. package/dist/doctor/index.js.map +1 -1
  17. package/dist/gc/completion-integrity.d.ts +0 -1
  18. package/dist/gc/completion-integrity.js +0 -6
  19. package/dist/gc/completion-integrity.js.map +1 -1
  20. package/dist/hooks/post-tool-use/index.d.ts +1 -1
  21. package/dist/hooks/post-tool-use/index.js +1 -1
  22. package/dist/hooks/post-tool-use/index.js.map +1 -1
  23. package/dist/hooks/post-tool-use/post-write.js +16 -0
  24. package/dist/hooks/post-tool-use/post-write.js.map +1 -1
  25. package/dist/hooks/post-tool-use/read-enricher.js +96 -4
  26. package/dist/hooks/post-tool-use/read-enricher.js.map +1 -1
  27. package/dist/hooks/post-tool-use/sot-align.js +52 -21
  28. package/dist/hooks/post-tool-use/sot-align.js.map +1 -1
  29. package/dist/hooks/runners/annotate-surface.d.ts +41 -0
  30. package/dist/hooks/runners/annotate-surface.js +152 -0
  31. package/dist/hooks/runners/annotate-surface.js.map +1 -0
  32. package/dist/hooks/runners/stop.js +26 -0
  33. package/dist/hooks/runners/stop.js.map +1 -1
  34. package/dist/hooks/runners/user-prompt-submit.js +59 -9
  35. package/dist/hooks/runners/user-prompt-submit.js.map +1 -1
  36. package/dist/hooks/sot-align-common.d.ts +13 -0
  37. package/dist/hooks/sot-align-common.js +69 -0
  38. package/dist/hooks/sot-align-common.js.map +1 -1
  39. package/dist/index.d.ts +3 -0
  40. package/dist/index.js +3 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/init/claude-rule.d.ts +1 -0
  43. package/dist/init/claude-rule.js +1 -1
  44. package/dist/init/claude-rule.js.map +1 -1
  45. package/dist/init/source-comments/ingest.js +11 -8
  46. package/dist/init/source-comments/ingest.js.map +1 -1
  47. package/dist/invariants/prune.d.ts +50 -0
  48. package/dist/invariants/prune.js +113 -0
  49. package/dist/invariants/prune.js.map +1 -0
  50. package/dist/mcp/schemas.d.ts +27 -1
  51. package/dist/mcp/schemas.js +22 -0
  52. package/dist/mcp/schemas.js.map +1 -1
  53. package/dist/mcp/tools/component-annotate.d.ts +33 -0
  54. package/dist/mcp/tools/component-annotate.js +189 -0
  55. package/dist/mcp/tools/component-annotate.js.map +1 -0
  56. package/dist/mcp/tools/index.js +3 -1
  57. package/dist/mcp/tools/index.js.map +1 -1
  58. package/dist/mcp/tools/resume.js +10 -34
  59. package/dist/mcp/tools/resume.js.map +1 -1
  60. package/dist/session/index.d.ts +2 -0
  61. package/dist/session/index.js +2 -0
  62. package/dist/session/index.js.map +1 -1
  63. package/dist/session/seen.d.ts +37 -0
  64. package/dist/session/seen.js +110 -0
  65. package/dist/session/seen.js.map +1 -0
  66. package/dist/session/touched.d.ts +17 -0
  67. package/dist/session/touched.js +57 -0
  68. package/dist/session/touched.js.map +1 -0
  69. package/dist/tasks/spec-reader.d.ts +27 -0
  70. package/dist/tasks/spec-reader.js +60 -0
  71. package/dist/tasks/spec-reader.js.map +1 -0
  72. package/dist/uninstall/index.d.ts +44 -0
  73. package/dist/uninstall/index.js +185 -0
  74. package/dist/uninstall/index.js.map +1 -0
  75. package/package.json +2 -2
  76. package/templates/.cairn/config/sensors.yaml +10 -3
@@ -0,0 +1,113 @@
1
+ /**
2
+ * `cairn invariants prune` — retire junk invariants the Layer A sot-align
3
+ * hook minted before the creation gate landed.
4
+ *
5
+ * Pre-gate, the runtime hook ran a Haiku "creation judge" on every prose
6
+ * block and over-labeled descriptions as `constraint`, so section banners,
7
+ * box-drawing separators, class/endpoint descriptions and test-fixture
8
+ * notes all became "active invariants". This sweep archives them.
9
+ *
10
+ * Scope is deliberately narrow: ONLY invariants stamped
11
+ * `capture_source: layer-a-sot-align` are eligible. Curated invariants
12
+ * (init, curator, manual `record`/`propose`) are never touched.
13
+ *
14
+ * surgical (default) — archive a sot-align invariant whose statement
15
+ * carries no constraint shape (no modal/marker).
16
+ * This mirrors the new creation gate: anything that
17
+ * couldn't be minted today gets retired.
18
+ * all — archive every sot-align invariant (full reset).
19
+ *
20
+ * Retirement reuses `archiveEntity` (move to `.cairn/ground/.archive/`,
21
+ * flip status, drop from the SoT cache) but defers the per-entity ledger
22
+ * rebuild so a 700-entity sweep rebuilds once instead of O(n²).
23
+ */
24
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
25
+ import { join } from "node:path";
26
+ import { archiveEntity, deleteSotCacheEntry, invariantsDir, parseFrontmatterRecord, readSotCache, writeInvariantsLedger, writeSotCache, } from "@isaacriehm/cairn-state";
27
+ import { hasConstraintShape } from "../hooks/sot-align-common.js";
28
+ /** The runtime hook's stamp — the only capture_source this sweep retires. */
29
+ const SOT_ALIGN_SOURCE = "layer-a-sot-align";
30
+ export function pruneInvariants(opts) {
31
+ const mode = opts.mode ?? "surgical";
32
+ const dryRun = opts.dryRun ?? false;
33
+ const dir = invariantsDir(opts.repoRoot);
34
+ const result = {
35
+ scanned: 0,
36
+ sotAlignTotal: 0,
37
+ pruned: [],
38
+ kept: 0,
39
+ dryRun,
40
+ };
41
+ if (!existsSync(dir))
42
+ return result;
43
+ const files = readdirSync(dir).filter((n) => n.endsWith(".md"));
44
+ let archivedAny = false;
45
+ for (const file of files) {
46
+ result.scanned += 1;
47
+ const id = file.replace(/\.md$/, "");
48
+ let fm;
49
+ let body;
50
+ try {
51
+ ({ fm, body } = parseFrontmatterRecord(readFileSync(join(dir, file), "utf8")));
52
+ }
53
+ catch {
54
+ continue; // unreadable / malformed — leave it for the doctor to flag
55
+ }
56
+ const capture = typeof fm["capture_source"] === "string" ? fm["capture_source"] : "";
57
+ if (capture !== SOT_ALIGN_SOURCE)
58
+ continue; // never touch curated invariants
59
+ result.sotAlignTotal += 1;
60
+ const title = typeof fm["title"] === "string" ? fm["title"] : "";
61
+ let prune = false;
62
+ let reason = "";
63
+ if (mode === "all") {
64
+ prune = true;
65
+ reason = "full reset of sot-align invariants";
66
+ }
67
+ else if (!hasConstraintShape(`${title}\n${body}`)) {
68
+ prune = true;
69
+ reason = "no constraint shape — not a real invariant under the creation gate";
70
+ }
71
+ if (!prune) {
72
+ result.kept += 1;
73
+ continue;
74
+ }
75
+ if (!dryRun) {
76
+ const r = archiveEntity({
77
+ repoRoot: opts.repoRoot,
78
+ id,
79
+ reason: `cairn invariants prune — ${reason}`,
80
+ deferDerivedRebuild: true,
81
+ ...(opts.now !== undefined ? { now: opts.now } : {}),
82
+ });
83
+ if (!r.ok) {
84
+ // Couldn't move it (already gone / unreadable) — don't claim a prune.
85
+ result.kept += 1;
86
+ continue;
87
+ }
88
+ archivedAny = true;
89
+ }
90
+ result.pruned.push({ id, title: title.slice(0, 100), reason });
91
+ }
92
+ // One derived-state rebuild for the whole batch (archiveEntity deferred it).
93
+ if (archivedAny && !dryRun) {
94
+ const prunedIds = new Set(result.pruned.map((p) => p.id));
95
+ try {
96
+ let cache = readSotCache(opts.repoRoot);
97
+ for (const id of prunedIds)
98
+ cache = deleteSotCacheEntry(cache, id);
99
+ writeSotCache(opts.repoRoot, cache);
100
+ }
101
+ catch {
102
+ /* best-effort — cache self-heals on next sweep */
103
+ }
104
+ try {
105
+ writeInvariantsLedger({ repoRoot: opts.repoRoot });
106
+ }
107
+ catch {
108
+ /* best-effort — `cairn fix` rebuilds it */
109
+ }
110
+ }
111
+ return result;
112
+ }
113
+ //# sourceMappingURL=prune.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/invariants/prune.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,32 @@ export declare const componentRegisterInput: {
40
40
  status: z.ZodOptional<z.ZodString>;
41
41
  uses: z.ZodOptional<z.ZodArray<z.ZodString>>;
42
42
  };
43
+ export declare const componentAnnotateInput: {
44
+ /** Repo-relative POSIX path of the component file to annotate. */
45
+ file: z.ZodString;
46
+ /** The exported symbol — the server validates it is a real export. */
47
+ export_name: z.ZodString;
48
+ /** One of the owning workspace's `@category` taxonomy (server-validated). */
49
+ category: z.ZodString;
50
+ /** One searchable sentence. */
51
+ purpose: z.ZodString;
52
+ /** ≥2 concrete comma-separated nouns a teammate might search for. */
53
+ aliases: z.ZodArray<z.ZodString>;
54
+ /** Public API props for the `@props` tag. */
55
+ public_props: z.ZodOptional<z.ZodArray<z.ZodString>>;
56
+ /** Other registered components this one uses (`@uses`). */
57
+ uses: z.ZodOptional<z.ZodArray<z.ZodString>>;
58
+ /** `@status` — stable | wip | deprecated. */
59
+ status: z.ZodOptional<z.ZodEnum<{
60
+ deprecated: "deprecated";
61
+ stable: "stable";
62
+ wip: "wip";
63
+ }>>;
64
+ /** `@singleton` — declares exactly-once; promoted to a hard §INV. */
65
+ singleton: z.ZodOptional<z.ZodBoolean>;
66
+ /** Owning workspace; omit / "" for single-app. */
67
+ workspace: z.ZodOptional<z.ZodString>;
68
+ };
43
69
  export declare const componentReconfirmInput: {
44
70
  /** Reconfirm a single file's component; omit to sweep every flagged unit. */
45
71
  file: z.ZodOptional<z.ZodString>;
@@ -52,8 +78,8 @@ export declare const searchInput: {
52
78
  kinds: z.ZodOptional<z.ZodArray<z.ZodEnum<{
53
79
  decision: "decision";
54
80
  invariant: "invariant";
55
- doc: "doc";
56
81
  task: "task";
82
+ doc: "doc";
57
83
  run: "run";
58
84
  manifest: "manifest";
59
85
  }>>>;
@@ -47,6 +47,28 @@ export const componentRegisterInput = {
47
47
  status: z.string().optional(),
48
48
  uses: z.array(z.string()).optional(),
49
49
  };
50
+ export const componentAnnotateInput = {
51
+ /** Repo-relative POSIX path of the component file to annotate. */
52
+ file: z.string().min(1),
53
+ /** The exported symbol — the server validates it is a real export. */
54
+ export_name: z.string().min(1),
55
+ /** One of the owning workspace's `@category` taxonomy (server-validated). */
56
+ category: z.string().min(1),
57
+ /** One searchable sentence. */
58
+ purpose: z.string().min(1),
59
+ /** ≥2 concrete comma-separated nouns a teammate might search for. */
60
+ aliases: z.array(z.string()).min(2),
61
+ /** Public API props for the `@props` tag. */
62
+ public_props: z.array(z.string()).optional(),
63
+ /** Other registered components this one uses (`@uses`). */
64
+ uses: z.array(z.string()).optional(),
65
+ /** `@status` — stable | wip | deprecated. */
66
+ status: z.enum(["stable", "wip", "deprecated"]).optional(),
67
+ /** `@singleton` — declares exactly-once; promoted to a hard §INV. */
68
+ singleton: z.boolean().optional(),
69
+ /** Owning workspace; omit / "" for single-app. */
70
+ workspace: z.string().optional(),
71
+ };
50
72
  export const componentReconfirmInput = {
51
73
  /** Reconfirm a single file's component; omit to sweep every flagged unit. */
52
74
  file: z.string().min(1).optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `cairn_component_annotate` — the context engine's stage-3 write path.
3
+ *
4
+ * The agent supplies JUDGMENT (category, purpose, aliases, which props
5
+ * are public); the server holds the MECHANICS + truth: it validates the
6
+ * export symbol against the code, validates the category against the
7
+ * project enum, formats the canonical `@cairn` header (block form for
8
+ * C-style langs, hash form for the rest), writes it above the export,
9
+ * and rebuilds the index + singleton §INV. The agent never sees the
10
+ * header grammar — the format is structurally impossible to get wrong.
11
+ *
12
+ * Committed mode writes the in-file header (the SoT). Ghost mode has no
13
+ * in-file SoT, so it delegates to `cairn_component_register` (registry
14
+ * write, no source edit).
15
+ *
16
+ * Spec: docs/CONTEXT_ENGINE.md ("semantics in, server writes"),
17
+ * CAIRN_REBUILD §8d / D7–D9.
18
+ */
19
+ import type { ToolDef } from "./types.js";
20
+ interface Input {
21
+ file: string;
22
+ export_name: string;
23
+ category: string;
24
+ purpose: string;
25
+ aliases: string[];
26
+ public_props?: string[];
27
+ uses?: string[];
28
+ status?: "stable" | "wip" | "deprecated";
29
+ singleton?: boolean;
30
+ workspace?: string;
31
+ }
32
+ export declare const componentAnnotateTool: ToolDef<Input>;
33
+ export {};
@@ -0,0 +1,189 @@
1
+ /**
2
+ * `cairn_component_annotate` — the context engine's stage-3 write path.
3
+ *
4
+ * The agent supplies JUDGMENT (category, purpose, aliases, which props
5
+ * are public); the server holds the MECHANICS + truth: it validates the
6
+ * export symbol against the code, validates the category against the
7
+ * project enum, formats the canonical `@cairn` header (block form for
8
+ * C-style langs, hash form for the rest), writes it above the export,
9
+ * and rebuilds the index + singleton §INV. The agent never sees the
10
+ * header grammar — the format is structurally impossible to get wrong.
11
+ *
12
+ * Committed mode writes the in-file header (the SoT). Ghost mode has no
13
+ * in-file SoT, so it delegates to `cairn_component_register` (registry
14
+ * write, no source edit).
15
+ *
16
+ * Spec: docs/CONTEXT_ENGINE.md ("semantics in, server writes"),
17
+ * CAIRN_REBUILD §8d / D7–D9.
18
+ */
19
+ import { existsSync, readFileSync, writeFileSync } from "node:fs";
20
+ import { join } from "node:path";
21
+ import { extractExportNames, hasComponentConfig, isGhost, loadComponentsConfig, parseComponentHeader, profileForFile, } from "@isaacriehm/cairn-state";
22
+ import { emitComponentStore } from "../../components/emit.js";
23
+ import { mcpError } from "../errors.js";
24
+ import { componentAnnotateInput } from "../schemas.js";
25
+ import { componentRegisterTool } from "./component-register.js";
26
+ /** Allowed categories for the workspace owning `rel` (longest-prefix). */
27
+ function categoriesForFile(config, rel) {
28
+ let best = null;
29
+ let bestLen = -1;
30
+ for (const ws of config.workspaces) {
31
+ for (const dir of ws.componentDirs) {
32
+ if ((rel === dir || rel.startsWith(`${dir}/`)) && dir.length > bestLen) {
33
+ bestLen = dir.length;
34
+ best = ws.categories;
35
+ }
36
+ }
37
+ }
38
+ return best ?? config.workspaces[0]?.categories ?? [];
39
+ }
40
+ /** Pick the header comment form from the file's language profile. */
41
+ function commentFormFor(file) {
42
+ const forms = profileForFile(file)?.commentForms ?? [];
43
+ if (forms.includes("block"))
44
+ return "block";
45
+ if (forms.includes("hash"))
46
+ return "hash";
47
+ if (forms.includes("dash"))
48
+ return "dash";
49
+ return "block";
50
+ }
51
+ /** Format the canonical `@cairn` header in the given comment form. */
52
+ function formatHeader(input, form) {
53
+ const tags = [
54
+ `@cairn ${input.export_name}`,
55
+ `@category ${input.category}`,
56
+ `@purpose ${input.purpose}`,
57
+ `@aliases ${input.aliases.join(", ")}`,
58
+ ];
59
+ if (input.public_props !== undefined && input.public_props.length > 0) {
60
+ tags.push(`@props ${input.public_props.join(", ")}`);
61
+ }
62
+ if (input.uses !== undefined && input.uses.length > 0) {
63
+ tags.push(`@uses ${input.uses.join(", ")}`);
64
+ }
65
+ if (input.status !== undefined)
66
+ tags.push(`@status ${input.status}`);
67
+ if (input.singleton === true)
68
+ tags.push("@singleton");
69
+ if (form === "block") {
70
+ return ["/**", ...tags.map((t) => ` * ${t}`), " */"].join("\n");
71
+ }
72
+ const marker = form === "dash" ? "--" : "#";
73
+ return tags.map((t) => `${marker} ${t}`).join("\n");
74
+ }
75
+ // A leading directive-prologue statement — `"use client"`, `"use server"`,
76
+ // `"use strict"`. These MUST stay the file's first statement (React Server
77
+ // Components / strict mode break if a comment-bearing header pushes them
78
+ // down in some bundlers), so the header is inserted AFTER them.
79
+ const DIRECTIVE_RE = /^\s*['"]use [\w-]+['"]\s*;?\s*$/;
80
+ /**
81
+ * Insert `header` above the code, but below any shebang and leading
82
+ * directive prologue (`"use client"` etc.) — those must remain the
83
+ * file's first line / first statement.
84
+ */
85
+ function insertHeader(source, header) {
86
+ const lines = source.split("\n");
87
+ let insertAt = 0;
88
+ if (lines.length > 0 && lines[0].startsWith("#!"))
89
+ insertAt = 1; // shebang
90
+ while (insertAt < lines.length) {
91
+ const line = lines[insertAt];
92
+ if (line.trim() === "" || DIRECTIVE_RE.test(line)) {
93
+ insertAt += 1;
94
+ continue;
95
+ }
96
+ break;
97
+ }
98
+ const before = lines.slice(0, insertAt);
99
+ const after = lines.slice(insertAt);
100
+ return [...before, header, ...after].join("\n");
101
+ }
102
+ async function handler(ctx, input) {
103
+ const abs = join(ctx.repoRoot, input.file);
104
+ if (!existsSync(abs)) {
105
+ return mcpError("FILE_NOT_FOUND", `${input.file} does not exist under the repo root — annotate an existing component file.`);
106
+ }
107
+ // Ghost mode has no in-file SoT — delegate to the registry write path.
108
+ if (isGhost(ctx.repoRoot)) {
109
+ return componentRegisterTool.handler(ctx, {
110
+ file: input.file,
111
+ export_name: input.export_name,
112
+ name: input.export_name,
113
+ category: input.category,
114
+ purpose: input.purpose,
115
+ aliases: input.aliases,
116
+ ...(input.workspace !== undefined ? { workspace: input.workspace } : {}),
117
+ ...(input.singleton !== undefined ? { singleton: input.singleton } : {}),
118
+ ...(input.status !== undefined ? { status: input.status } : {}),
119
+ ...(input.uses !== undefined ? { uses: input.uses } : {}),
120
+ });
121
+ }
122
+ const config = loadComponentsConfig(ctx.repoRoot);
123
+ if (!hasComponentConfig(config)) {
124
+ return mcpError("NOT_ALLOWED", "this repo has no components: config — nothing to annotate.");
125
+ }
126
+ // D9 — category must be in the owning workspace's enum (server owns it).
127
+ const categories = categoriesForFile(config, input.file);
128
+ if (categories.length > 0 && !categories.includes(input.category)) {
129
+ return mcpError("VALIDATION_FAILED", `category "${input.category}" is not one of this workspace's categories: ${categories.join(", ")}.`);
130
+ }
131
+ let source;
132
+ try {
133
+ source = readFileSync(abs, "utf8");
134
+ }
135
+ catch (err) {
136
+ return mcpError("INTERNAL_ERROR", `could not read ${input.file}: ${err instanceof Error ? err.message : String(err)}`);
137
+ }
138
+ // Idempotent: a file that already carries a `@cairn` header is left
139
+ // untouched — re-writing would create a second header block.
140
+ if (parseComponentHeader(source) !== null) {
141
+ return {
142
+ ok: true,
143
+ file: input.file,
144
+ header_written: false,
145
+ already_headered: true,
146
+ };
147
+ }
148
+ // D7 — export_name must be a real export. When the language profile
149
+ // can detect exports and the claimed name isn't among them, reject;
150
+ // when detection yields nothing (unknown extension) accept best-effort.
151
+ const exports = extractExportNames(source, input.file);
152
+ if (exports.length > 0 && !exports.includes(input.export_name)) {
153
+ return mcpError("VALIDATION_FAILED", `export_name "${input.export_name}" is not an export of ${input.file}. Real exports: ${exports.join(", ")}.`);
154
+ }
155
+ const form = commentFormFor(input.file);
156
+ const header = formatHeader(input, form);
157
+ const next = insertHeader(source, header);
158
+ try {
159
+ writeFileSync(abs, next, "utf8");
160
+ }
161
+ catch (err) {
162
+ return mcpError("INTERNAL_ERROR", `could not write ${input.file}: ${err instanceof Error ? err.message : String(err)}`);
163
+ }
164
+ // Rebuild the derived index + promote any @singleton to a hard §INV.
165
+ let indexed = 0;
166
+ try {
167
+ const emit = emitComponentStore(ctx.repoRoot);
168
+ indexed = emit.indexed;
169
+ }
170
+ catch {
171
+ // header is written + valid; index rebuild is best-effort here
172
+ // (the pre-commit sweep rebuilds deterministically anyway).
173
+ }
174
+ return {
175
+ ok: true,
176
+ name: input.export_name,
177
+ category: input.category,
178
+ file: input.file,
179
+ header_written: true,
180
+ indexed,
181
+ };
182
+ }
183
+ export const componentAnnotateTool = {
184
+ name: "cairn_component_annotate",
185
+ description: "Register a component by writing its canonical `@cairn` header. Supply judgment only — file, export_name, category (one of the workspace's categories), a one-line purpose, and ≥2 aliases; optional public_props/uses/status/singleton. The server validates the export + category against the code, formats + inserts the header, and rebuilds the registry. Committed projects write the in-file header; ghost projects route to the registry. This is the server-driven replacement for hand-writing `@cairn` headers.",
186
+ inputSchema: componentAnnotateInput,
187
+ handler,
188
+ };
189
+ //# sourceMappingURL=component-annotate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-annotate.js","sourceRoot":"","sources":["../../../src/mcp/tools/component-annotate.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { attentionDedupTool } from "./attention-dedup.js";
2
2
  import { bootstrapRetryTool } from "./bootstrap-retry.js";
3
3
  import { canonicalForTopicTool } from "./canonical-for-topic.js";
4
+ import { componentAnnotateTool } from "./component-annotate.js";
4
5
  import { componentGetTool } from "./component-get.js";
5
6
  import { componentRegisterTool } from "./component-register.js";
6
7
  import { componentReconfirmTool } from "./component-reconfirm.js";
@@ -46,7 +47,8 @@ export const allTools = [
46
47
  retireInvariantTool,
47
48
  // Write — apply pending review-class migrations inline
48
49
  migrateTool,
49
- // Write — headerless component registry (ghost §3.8.1)
50
+ // Write — component registry (committed header + ghost §3.8.1)
51
+ componentAnnotateTool,
50
52
  componentRegisterTool,
51
53
  componentReconfirmTool,
52
54
  taskCreateTool,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC,yBAAyB;IACzB,eAAe;IACf,qBAAqB;IACrB,gBAAgB;IAChB,WAAW;IACX,4BAA4B;IAC5B,qBAAqB;IACrB,gBAAgB;IAChB,4BAA4B;IAC5B,UAAU;IACV,QAAQ;IACR,kBAAkB;IAClB,2CAA2C;IAC3C,kBAAkB;IAClB,mBAAmB;IACnB,uDAAuD;IACvD,WAAW;IACX,uDAAuD;IACvD,qBAAqB;IACrB,sBAAsB;IACtB,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,qBAAqB;IACrB,sBAAsB;IACtB,UAAU;IACV,qCAAqC;IACrC,oBAAoB;IACpB,kBAAkB;IAClB,2EAA2E;IAC3E,kBAAkB;IAClB,yDAAyD;IACzD,cAAc;IACd,WAAW;IACX,oCAAoC;IACpC,gBAAgB;IAChB,sBAAsB;IACtB,cAAc;IACd,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,uBAAuB;IACvB,sBAAsB;CACvB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC,yBAAyB;IACzB,eAAe;IACf,qBAAqB;IACrB,gBAAgB;IAChB,WAAW;IACX,4BAA4B;IAC5B,qBAAqB;IACrB,gBAAgB;IAChB,4BAA4B;IAC5B,UAAU;IACV,QAAQ;IACR,kBAAkB;IAClB,2CAA2C;IAC3C,kBAAkB;IAClB,mBAAmB;IACnB,uDAAuD;IACvD,WAAW;IACX,+DAA+D;IAC/D,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;IACtB,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,qBAAqB;IACrB,sBAAsB;IACtB,UAAU;IACV,qCAAqC;IACrC,oBAAoB;IACpB,kBAAkB;IAClB,2EAA2E;IAC3E,kBAAkB;IAClB,yDAAyD;IACzD,cAAc;IACd,WAAW;IACX,oCAAoC;IACpC,gBAAgB;IAChB,sBAAsB;IACtB,cAAc;IACd,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,uBAAuB;IACvB,sBAAsB;CACvB,CAAC"}
@@ -17,6 +17,7 @@ import { parse as parseYaml } from "yaml";
17
17
  import { mcpError } from "../errors.js";
18
18
  import { resumeInput } from "../schemas.js";
19
19
  import { findCurrentActiveTask, readTaskJournal, } from "../../tasks/index.js";
20
+ import { readTaskSpec } from "../../tasks/spec-reader.js";
20
21
  import { cairnDir } from "@isaacriehm/cairn-state";
21
22
  async function handler(ctx, input) {
22
23
  const taskId = input.task_id ?? findCurrentActiveTask(ctx.repoRoot);
@@ -44,40 +45,15 @@ async function handler(ctx, input) {
44
45
  else {
45
46
  return mcpError("TASK_NOT_FOUND", `task directory missing in active/ and done/: ${taskId}`);
46
47
  }
47
- const specPath = join(taskDir, "spec.tightened.md");
48
- let title = taskId;
49
- let goal = "(spec not found)";
50
- let inScopeDecisions = [];
51
- let inScopeInvariants = [];
52
- let targetPathGlobs = [];
53
- if (existsSync(specPath)) {
54
- const raw = readFileSync(specPath, "utf8");
55
- const fmMatch = raw.match(/^---\r?\n([\s\S]*?)\n---\r?\n([\s\S]*)$/);
56
- if (fmMatch) {
57
- try {
58
- const fm = parseYaml(fmMatch[1] ?? "");
59
- if (typeof fm.title === "string")
60
- title = fm.title;
61
- if (Array.isArray(fm.in_scope_decisions)) {
62
- inScopeDecisions = fm.in_scope_decisions.filter((x) => typeof x === "string");
63
- }
64
- if (Array.isArray(fm.in_scope_invariants)) {
65
- inScopeInvariants = fm.in_scope_invariants.filter((x) => typeof x === "string");
66
- }
67
- if (Array.isArray(fm.target_path_globs)) {
68
- targetPathGlobs = fm.target_path_globs.filter((x) => typeof x === "string");
69
- }
70
- }
71
- catch {
72
- // malformed frontmatter — fall through with defaults
73
- }
74
- const body = fmMatch[2] ?? "";
75
- const goalMatch = body.match(/##\s+Goal\s*\r?\n+([\s\S]*?)(?:\r?\n##\s+|$)/);
76
- if (goalMatch && goalMatch[1] !== undefined) {
77
- goal = goalMatch[1].trim();
78
- }
79
- }
80
- }
48
+ // Shared spec reader (tasks/spec-reader.ts) — same parse the
49
+ // UserPromptSubmit working-header uses. Preserve resume's historical
50
+ // fallbacks: title → taskId, goal "(spec not found)" when absent.
51
+ const spec = readTaskSpec(taskDir);
52
+ const title = spec !== null && spec.title.length > 0 ? spec.title : taskId;
53
+ const goal = spec !== null && spec.goal.length > 0 ? spec.goal : "(spec not found)";
54
+ const inScopeDecisions = spec?.inScopeDecisions ?? [];
55
+ const inScopeInvariants = spec?.inScopeInvariants ?? [];
56
+ const targetPathGlobs = spec?.targetPathGlobs ?? [];
81
57
  const journal = readTaskJournal(ctx.repoRoot, taskId, scope);
82
58
  const cap = Math.max(1, Math.min(50, input.max_entries ?? 7));
83
59
  const recent = journal.slice(-cap);
@@ -1 +1 @@
1
- {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/mcp/tools/resume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/mcp/tools/resume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EACL,qBAAqB,EACrB,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAqCnD,KAAK,UAAU,OAAO,CAAC,GAAe,EAAE,KAAY;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,QAAQ,CACb,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpE,IAAI,KAAwB,CAAC;IAC7B,IAAI,OAAe,CAAC;IACpB,IAAI,WAAW,GAAkB,IAAI,CAAC;IAEtC,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,KAAK,GAAG,QAAQ,CAAC;QACjB,OAAO,GAAG,aAAa,CAAC;IAC1B,CAAC;SAAM,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,mEAAmE;QACnE,0EAA0E;QAC1E,kEAAkE;QAClE,qCAAqC;QACrC,KAAK,GAAG,MAAM,CAAC;QACf,OAAO,GAAG,WAAW,CAAC;QACtB,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,OAAO,QAAQ,CACb,gBAAgB,EAChB,gDAAgD,MAAM,EAAE,CACzD,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,qEAAqE;IACrE,oEAAoE;IACpE,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACpF,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,EAAE,CAAC;IACtD,MAAM,iBAAiB,GAAG,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC;IACxD,MAAM,eAAe,GAAG,IAAI,EAAE,eAAe,IAAI,EAAE,CAAC;IAEpD,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,MAAM,QAAQ,GAAG,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC;IAE9C,uEAAuE;IACvE,oEAAoE;IACpE,iEAAiE;IACjE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,EAAE,GAAG,KAAK,EAAE,aAAa,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAAE,SAAS;QACjC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACtD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAkB;QAC7B,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,MAAM;QACf,KAAK;QACL,YAAY,EAAE,WAAW;QACzB,KAAK;QACL,IAAI;QACJ,kBAAkB,EAAE,gBAAgB;QACpC,mBAAmB,EAAE,iBAAiB;QACtC,iBAAiB,EAAE,eAAe;QAClC,cAAc,EAAE,MAAM;QACtB,SAAS,EAAE,QAAQ;QACnB,aAAa,EAAE,OAAO,CAAC,MAAM;QAC7B,aAAa,EAAE,YAAY;KAC5B,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAsC,CAAC;QACnE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;YAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,+cAA+c;IACjd,WAAW,EAAE,WAAW;IACxB,OAAO;CACR,CAAC"}
@@ -12,3 +12,5 @@ export { cleanupSession, ensureSessionDir, gcStaleSessions, resolveSessionId, }
12
12
  export type { EnsureSessionDirArgs, EnsureSessionDirResult, GcStaleSessionsArgs, GcStaleSessionsResult, SessionIdSource, SessionMeta, } from "./id.js";
13
13
  export { eventsMarkerPath, readEventsMarker, seedEventsMarker, stampEventsPoll, } from "./events-marker.js";
14
14
  export type { EventsMarker } from "./events-marker.js";
15
+ export { fingerprintText, filterUnshownIds, getSeenFingerprint, hasShownId, markShownIds, setSeenFingerprint, } from "./seen.js";
16
+ export { appendTouched, readTouched } from "./touched.js";
@@ -10,4 +10,6 @@
10
10
  */
11
11
  export { cleanupSession, ensureSessionDir, gcStaleSessions, resolveSessionId, } from "./id.js";
12
12
  export { eventsMarkerPath, readEventsMarker, seedEventsMarker, stampEventsPoll, } from "./events-marker.js";
13
+ export { fingerprintText, filterUnshownIds, getSeenFingerprint, hasShownId, markShownIds, setSeenFingerprint, } from "./seen.js";
14
+ export { appendTouched, readTouched } from "./touched.js";
13
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,SAAS,CAAC;AASjB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,SAAS,CAAC;AASjB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}