@maadb/core 0.7.9 → 0.7.10-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/engine/backup.d.ts +9 -0
- package/dist/engine/backup.d.ts.map +1 -0
- package/dist/engine/backup.js +100 -0
- package/dist/engine/backup.js.map +1 -0
- package/dist/engine/index.d.ts +6 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +5 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/reads.d.ts +2 -1
- package/dist/engine/reads.d.ts.map +1 -1
- package/dist/engine/reads.js +205 -2
- package/dist/engine/reads.js.map +1 -1
- package/dist/engine/types.d.ts +47 -1
- package/dist/engine/types.d.ts.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/git/index.d.ts +22 -0
- package/dist/git/index.d.ts.map +1 -1
- package/dist/git/index.js +65 -0
- package/dist/git/index.js.map +1 -1
- package/dist/mcp/guardrails.d.ts +23 -2
- package/dist/mcp/guardrails.d.ts.map +1 -1
- package/dist/mcp/guardrails.js +22 -3
- package/dist/mcp/guardrails.js.map +1 -1
- package/dist/mcp/kinds.d.ts.map +1 -1
- package/dist/mcp/kinds.js +2 -0
- package/dist/mcp/kinds.js.map +1 -1
- package/dist/mcp/memory-pressure.d.ts +37 -0
- package/dist/mcp/memory-pressure.d.ts.map +1 -0
- package/dist/mcp/memory-pressure.js +179 -0
- package/dist/mcp/memory-pressure.js.map +1 -0
- package/dist/mcp/roles.d.ts.map +1 -1
- package/dist/mcp/roles.js +2 -1
- package/dist/mcp/roles.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +10 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/backup.d.ts +4 -0
- package/dist/mcp/tools/backup.d.ts.map +1 -0
- package/dist/mcp/tools/backup.js +52 -0
- package/dist/mcp/tools/backup.js.map +1 -0
- package/dist/mcp/tools/maintain.d.ts.map +1 -1
- package/dist/mcp/tools/maintain.js +8 -3
- package/dist/mcp/tools/maintain.js.map +1 -1
- package/dist/mcp/tools/read.d.ts.map +1 -1
- package/dist/mcp/tools/read.js +51 -7
- package/dist/mcp/tools/read.js.map +1 -1
- package/dist/parser/blocks.d.ts.map +1 -1
- package/dist/parser/blocks.js +3 -1
- package/dist/parser/blocks.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
[](LICENSE)
|
|
4
4
|
[](package.json)
|
|
5
5
|
[](tsconfig.json)
|
|
6
|
-
[](tests)
|
|
7
7
|
[](https://www.npmjs.com/package/@maadb/core)
|
|
8
|
-
[](Version.md)
|
|
9
9
|
|
|
10
10
|
> **Markdown is the database. The engine makes it queryable.**
|
|
11
11
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Result } from '../errors.js';
|
|
2
|
+
import type { EngineContext } from './context.js';
|
|
3
|
+
import type { BackupTag, CreateBackupOptions, ListBackupsOptions } from './types.js';
|
|
4
|
+
export declare function createBackup(ctx: EngineContext, opts?: CreateBackupOptions): Promise<Result<BackupTag>>;
|
|
5
|
+
export declare function listBackups(ctx: EngineContext, opts?: ListBackupsOptions): Promise<Result<BackupTag[]>>;
|
|
6
|
+
export declare function deleteBackup(ctx: EngineContext, tag: string): Promise<Result<{
|
|
7
|
+
removed: string;
|
|
8
|
+
}>>;
|
|
9
|
+
//# sourceMappingURL=backup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/engine/backup.ts"],"names":[],"mappings":"AAYA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA+BrF,wBAAsB,YAAY,CAChC,GAAG,EAAE,aAAa,EAClB,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAwC5B;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,aAAa,EAClB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAiB9B;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAkBtC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// 0.7.10 — maad_backup: named recovery anchors via annotated git tags.
|
|
3
|
+
//
|
|
4
|
+
// Three operations:
|
|
5
|
+
// createBackup — annotated tag on HEAD with structured name
|
|
6
|
+
// listBackups — every maad-snapshot-* tag with sha + message + createdAt
|
|
7
|
+
// deleteBackup — drop a maad-snapshot-* tag (refuses other tags)
|
|
8
|
+
//
|
|
9
|
+
// Pure git operations on the project repo. No SQLite reads, no schema lookups,
|
|
10
|
+
// no engine_meta writes (that stamp comes with Step 9 / maad_health).
|
|
11
|
+
// ============================================================================
|
|
12
|
+
import { ok, singleErr } from '../errors.js';
|
|
13
|
+
const MAAD_SNAPSHOT_PREFIX = 'maad-snapshot-';
|
|
14
|
+
const LABEL_MAX_LEN = 32;
|
|
15
|
+
/**
|
|
16
|
+
* Sanitize an operator-supplied label: trim, lowercase, replace runs of
|
|
17
|
+
* non-[a-z0-9-] chars with a single -, strip leading/trailing hyphens,
|
|
18
|
+
* cap at LABEL_MAX_LEN. Returns null when the result is empty.
|
|
19
|
+
*/
|
|
20
|
+
function sanitizeLabel(raw) {
|
|
21
|
+
const sanitized = raw
|
|
22
|
+
.trim()
|
|
23
|
+
.toLowerCase()
|
|
24
|
+
.replace(/[^a-z0-9-]+/g, '-')
|
|
25
|
+
.replace(/^-+|-+$/g, '')
|
|
26
|
+
.slice(0, LABEL_MAX_LEN)
|
|
27
|
+
.replace(/^-+|-+$/g, '');
|
|
28
|
+
return sanitized.length > 0 ? sanitized : null;
|
|
29
|
+
}
|
|
30
|
+
function formatTagName(now, label) {
|
|
31
|
+
const yyyy = now.getUTCFullYear();
|
|
32
|
+
const mm = String(now.getUTCMonth() + 1).padStart(2, '0');
|
|
33
|
+
const dd = String(now.getUTCDate()).padStart(2, '0');
|
|
34
|
+
const hh = String(now.getUTCHours()).padStart(2, '0');
|
|
35
|
+
const mn = String(now.getUTCMinutes()).padStart(2, '0');
|
|
36
|
+
const base = `${MAAD_SNAPSHOT_PREFIX}${yyyy}-${mm}-${dd}-${hh}${mn}`;
|
|
37
|
+
return label ? `${base}-${label}` : base;
|
|
38
|
+
}
|
|
39
|
+
export async function createBackup(ctx, opts = {}) {
|
|
40
|
+
if (!ctx.gitLayer) {
|
|
41
|
+
return singleErr('GIT_NOT_INITIALIZED', 'Project has no git repository');
|
|
42
|
+
}
|
|
43
|
+
const head = await ctx.gitLayer.headSha();
|
|
44
|
+
if (!head) {
|
|
45
|
+
return singleErr('NO_HEAD_COMMIT', 'Repository has no commits yet — nothing to snapshot');
|
|
46
|
+
}
|
|
47
|
+
let label = null;
|
|
48
|
+
if (opts.label !== undefined && opts.label !== '') {
|
|
49
|
+
label = sanitizeLabel(opts.label);
|
|
50
|
+
if (label === null) {
|
|
51
|
+
return singleErr('INVALID_FIELDS', `Label "${opts.label}" sanitizes to an empty string — use [a-z0-9-] chars`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const tagName = formatTagName(new Date(), label);
|
|
55
|
+
// Collision check — refuse to overwrite an existing tag of the same name.
|
|
56
|
+
const existing = await ctx.gitLayer.listTagsByPrefix(tagName);
|
|
57
|
+
if (existing.some(t => t.tag === tagName)) {
|
|
58
|
+
return singleErr('TAG_EXISTS', `Snapshot "${tagName}" already exists`);
|
|
59
|
+
}
|
|
60
|
+
const branch = await ctx.gitLayer.currentBranch();
|
|
61
|
+
const message = opts.message ?? `MAADB snapshot at ${head} ('${branch}')`;
|
|
62
|
+
await ctx.gitLayer.addAnnotatedTag(tagName, message);
|
|
63
|
+
return ok({
|
|
64
|
+
tag: tagName,
|
|
65
|
+
sha: head,
|
|
66
|
+
message,
|
|
67
|
+
createdAt: new Date().toISOString(),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
export async function listBackups(ctx, opts = {}) {
|
|
71
|
+
if (!ctx.gitLayer)
|
|
72
|
+
return ok([]);
|
|
73
|
+
const all = await ctx.gitLayer.listTagsByPrefix(MAAD_SNAPSHOT_PREFIX);
|
|
74
|
+
if (opts.since !== undefined) {
|
|
75
|
+
const sinceMs = Date.parse(opts.since);
|
|
76
|
+
if (Number.isNaN(sinceMs)) {
|
|
77
|
+
return singleErr('INVALID_FIELDS', `since is not a valid ISO8601 date: "${opts.since}"`);
|
|
78
|
+
}
|
|
79
|
+
return ok(all.filter(t => {
|
|
80
|
+
const tagMs = Date.parse(t.createdAt);
|
|
81
|
+
return !Number.isNaN(tagMs) && tagMs >= sinceMs;
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
return ok(all);
|
|
85
|
+
}
|
|
86
|
+
export async function deleteBackup(ctx, tag) {
|
|
87
|
+
if (!ctx.gitLayer) {
|
|
88
|
+
return singleErr('GIT_NOT_INITIALIZED', 'Project has no git repository');
|
|
89
|
+
}
|
|
90
|
+
if (!tag.startsWith(MAAD_SNAPSHOT_PREFIX)) {
|
|
91
|
+
return singleErr('INVALID_FIELDS', `maad_backup delete only removes ${MAAD_SNAPSHOT_PREFIX}* tags — got "${tag}"`);
|
|
92
|
+
}
|
|
93
|
+
const existing = await ctx.gitLayer.listTagsByPrefix(tag);
|
|
94
|
+
if (!existing.some(t => t.tag === tag)) {
|
|
95
|
+
return singleErr('TAG_NOT_FOUND', `Tag "${tag}" does not exist`);
|
|
96
|
+
}
|
|
97
|
+
await ctx.gitLayer.deleteTag(tag);
|
|
98
|
+
return ok({ removed: tag });
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=backup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/engine/backup.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/index.d.ts
CHANGED
|
@@ -152,6 +152,12 @@ export declare class MaadEngine {
|
|
|
152
152
|
join(query: import('./types.js').JoinQuery): Result<import("./types.js").JoinResult>;
|
|
153
153
|
verifyField(id: DocId, field: string, expected: unknown): Promise<Result<import("./types.js").VerifyResult>>;
|
|
154
154
|
verifyCount(dt: DocType, expectedCount: number, filters?: Record<string, import('../types.js').FilterCondition>): Result<import("./types.js").VerifyResult>;
|
|
155
|
+
verifyIntegrity(query?: import('./types.js').IntegrityQuery): Promise<Result<import("./types.js").IntegrityResult>>;
|
|
156
|
+
backupCreate(opts?: import('./types.js').CreateBackupOptions): Promise<Result<import("./types.js").BackupTag>>;
|
|
157
|
+
backupList(opts?: import('./types.js').ListBackupsOptions): Promise<Result<import("./types.js").BackupTag[]>>;
|
|
158
|
+
backupDelete(tag: string): Promise<Result<{
|
|
159
|
+
removed: string;
|
|
160
|
+
}>>;
|
|
155
161
|
changesSince(query: import('./types.js').ChangesSinceQuery): Result<import("./types.js").ChangesPage>;
|
|
156
162
|
getDocumentFull(id: DocId): Promise<Result<import("./types.js").GetFullResult>>;
|
|
157
163
|
createDocument(dt: DocType, fields: Record<string, unknown>, body?: string, customDocId?: string): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAW1D,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EAER,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/index.js
CHANGED
|
@@ -27,6 +27,7 @@ import * as indexing from './indexing.js';
|
|
|
27
27
|
import * as reads from './reads.js';
|
|
28
28
|
import * as composites from './composites.js';
|
|
29
29
|
import * as writes from './writes.js';
|
|
30
|
+
import * as backup from './backup.js';
|
|
30
31
|
import * as maintenance from './maintenance.js';
|
|
31
32
|
import * as auditOps from './audit.js';
|
|
32
33
|
/** Recursive dir size in bytes. Best-effort — unreadable entries are skipped. */
|
|
@@ -443,6 +444,10 @@ export class MaadEngine {
|
|
|
443
444
|
join(query) { return reads.join(this.ctx(), query); }
|
|
444
445
|
async verifyField(id, field, expected) { return reads.verifyField(this.ctx(), id, field, expected); }
|
|
445
446
|
verifyCount(dt, expectedCount, filters) { return reads.verifyCount(this.ctx(), dt, expectedCount, filters); }
|
|
447
|
+
async verifyIntegrity(query) { return reads.verifyIntegrity(this.ctx(), query); }
|
|
448
|
+
async backupCreate(opts) { return backup.createBackup(this.ctx(), opts); }
|
|
449
|
+
async backupList(opts) { return backup.listBackups(this.ctx(), opts); }
|
|
450
|
+
async backupDelete(tag) { return backup.deleteBackup(this.ctx(), tag); }
|
|
446
451
|
changesSince(query) { return reads.changesSince(this.ctx(), query); }
|
|
447
452
|
// --- Composites (Tier 2, provisional) ---
|
|
448
453
|
async getDocumentFull(id) { return composites.getDocumentFull(this.ctx(), id); }
|
package/dist/engine/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/reads.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Result } from '../errors.js';
|
|
2
2
|
import { type DocId, type DocType, type SchemaDefinition, type DocumentQuery, type ObjectQuery, type FilterCondition } from '../types.js';
|
|
3
3
|
import type { EngineContext } from './context.js';
|
|
4
|
-
import type { GetResult, FindResult, SearchResult, RelatedResult, DescribeResult, SummaryResult, SchemaInfoResult, VerifyResult, AggregateQuery, AggregateResult, JoinQuery, JoinResult, ChangesSinceQuery, ChangesPage, ChangesSinceParsedCursor } from './types.js';
|
|
4
|
+
import type { GetResult, FindResult, SearchResult, RelatedResult, DescribeResult, SummaryResult, SchemaInfoResult, VerifyResult, IntegrityQuery, IntegrityResult, AggregateQuery, AggregateResult, JoinQuery, JoinResult, ChangesSinceQuery, ChangesPage, ChangesSinceParsedCursor } from './types.js';
|
|
5
5
|
export declare function getDocument(ctx: EngineContext, id: DocId, depth: 'hot' | 'warm' | 'cold', blockIdOrHeading?: string | undefined): Promise<Result<GetResult>>;
|
|
6
6
|
export declare const MAX_QUERY_LIMIT = 500;
|
|
7
7
|
export declare const MAX_AGGREGATE_LIMIT = 2000;
|
|
@@ -18,6 +18,7 @@ export declare function aggregate(ctx: EngineContext, query: AggregateQuery): Re
|
|
|
18
18
|
export declare function join(ctx: EngineContext, query: JoinQuery): Result<JoinResult>;
|
|
19
19
|
export declare function verifyField(ctx: EngineContext, id: DocId, field: string, expected: unknown): Promise<Result<VerifyResult>>;
|
|
20
20
|
export declare function verifyCount(ctx: EngineContext, dt: DocType, expectedCount: number, filters?: Record<string, import('../types.js').FilterCondition>): Result<VerifyResult>;
|
|
21
|
+
export declare function verifyIntegrity(ctx: EngineContext, query?: IntegrityQuery): Promise<Result<IntegrityResult>>;
|
|
21
22
|
export declare function encodeChangesCursor(cursor: ChangesSinceParsedCursor): string;
|
|
22
23
|
export declare function decodeChangesCursor(raw: string): Result<ChangesSinceParsedCursor>;
|
|
23
24
|
export declare function changesSince(ctx: EngineContext, query: ChangesSinceQuery): Result<ChangesPage>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../../src/engine/reads.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../../src/engine/reads.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/reads.js
CHANGED
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
// describe, summary, getSchema, schemaInfo
|
|
4
4
|
// ============================================================================
|
|
5
5
|
import { readFile } from 'node:fs/promises';
|
|
6
|
+
import { existsSync } from 'node:fs';
|
|
6
7
|
import path from 'node:path';
|
|
8
|
+
import { createHash } from 'node:crypto';
|
|
7
9
|
import { ok, singleErr } from '../errors.js';
|
|
8
10
|
import { validateFrontmatter } from '../schema/index.js';
|
|
9
11
|
import { logger } from './logger.js';
|
|
10
|
-
import { docId as toDocId, docType as toDocType, } from '../types.js';
|
|
12
|
+
import { docId as toDocId, docType as toDocType, filePath as toFilePath, } from '../types.js';
|
|
11
13
|
import { extractBody } from '../writer/index.js';
|
|
12
|
-
import { readFrontmatter, readFrontmatterSync, readBlockContent } from './helpers.js';
|
|
14
|
+
import { readFrontmatter, readFrontmatterSync, readBlockContent, collectMarkdownFiles } from './helpers.js';
|
|
13
15
|
export async function getDocument(ctx, id, depth, blockIdOrHeading) {
|
|
14
16
|
const doc = ctx.backend.getDocument(id);
|
|
15
17
|
if (!doc)
|
|
@@ -625,6 +627,207 @@ export function verifyCount(ctx, dt, expectedCount, filters) {
|
|
|
625
627
|
source: 'query',
|
|
626
628
|
});
|
|
627
629
|
}
|
|
630
|
+
// ---- Verify mode: integrity (0.7.10) ---------------------------------------
|
|
631
|
+
// Walks markdown on disk, compares to the SQLite index, and reports five
|
|
632
|
+
// drift categories. Pure read — never writes to documents/objects/refs nor
|
|
633
|
+
// engine_meta. Reuses fileHash (sha256) from src/parser/index.ts and
|
|
634
|
+
// collectMarkdownFiles from helpers; no new walker, no new index column.
|
|
635
|
+
const ALL_INTEGRITY_CATEGORIES = [
|
|
636
|
+
'missing_in_index',
|
|
637
|
+
'missing_on_disk',
|
|
638
|
+
'hash_drift',
|
|
639
|
+
'schema_drift',
|
|
640
|
+
'broken_refs',
|
|
641
|
+
];
|
|
642
|
+
export async function verifyIntegrity(ctx, query = {}) {
|
|
643
|
+
const startMs = Date.now();
|
|
644
|
+
const verbose = query.verbose ?? false;
|
|
645
|
+
const enabled = new Set(query.categories ?? ALL_INTEGRITY_CATEGORIES);
|
|
646
|
+
// Optional filter narrows the verified set to docIds matching the query
|
|
647
|
+
// (only records already indexed can match — missing_in_index for filtered
|
|
648
|
+
// scopes is undefined and not reported when filter is in play).
|
|
649
|
+
let allowedDocIds = null;
|
|
650
|
+
if (query.filter) {
|
|
651
|
+
const findQuery = { filters: query.filter };
|
|
652
|
+
if (query.docType)
|
|
653
|
+
findQuery.docType = query.docType;
|
|
654
|
+
const found = ctx.backend.findDocuments(findQuery);
|
|
655
|
+
allowedDocIds = new Set(found.map(r => r.docId));
|
|
656
|
+
}
|
|
657
|
+
const findings = {
|
|
658
|
+
missing_in_index: 0,
|
|
659
|
+
missing_on_disk: 0,
|
|
660
|
+
hash_drift: 0,
|
|
661
|
+
schema_drift: 0,
|
|
662
|
+
broken_refs: 0,
|
|
663
|
+
};
|
|
664
|
+
const details = [];
|
|
665
|
+
const unhealthyOnDisk = new Set();
|
|
666
|
+
const filesOnDisk = new Set();
|
|
667
|
+
let scanned = 0;
|
|
668
|
+
for (const [typeName, regType] of ctx.registry.types) {
|
|
669
|
+
if (query.docType && typeName !== query.docType)
|
|
670
|
+
continue;
|
|
671
|
+
const dirPath = path.join(ctx.projectRoot, regType.path);
|
|
672
|
+
if (!existsSync(dirPath))
|
|
673
|
+
continue;
|
|
674
|
+
const files = await collectMarkdownFiles(dirPath);
|
|
675
|
+
for (const file of files) {
|
|
676
|
+
// Two forms of the relative path: native (matches what indexing stored
|
|
677
|
+
// in documents.file_path — backslash on Windows) for the DB lookup, and
|
|
678
|
+
// forward-slash-normalized for the filesOnDisk set later compared
|
|
679
|
+
// against getAllFileHashes values that are normalized the same way.
|
|
680
|
+
// Without this split the lookup always misses on Windows and every
|
|
681
|
+
// record gets miscounted as missing_in_index.
|
|
682
|
+
const relPathNative = path.relative(ctx.projectRoot, file);
|
|
683
|
+
const relPath = relPathNative.replace(/\\/g, '/');
|
|
684
|
+
filesOnDisk.add(relPath);
|
|
685
|
+
scanned++;
|
|
686
|
+
const row = ctx.backend.getDocumentByPath(toFilePath(relPathNative));
|
|
687
|
+
if (!row) {
|
|
688
|
+
// filter scope is index-only — skip missing_in_index when filter active
|
|
689
|
+
if (enabled.has('missing_in_index') && allowedDocIds === null) {
|
|
690
|
+
findings.missing_in_index++;
|
|
691
|
+
unhealthyOnDisk.add(relPath);
|
|
692
|
+
if (verbose) {
|
|
693
|
+
details.push({
|
|
694
|
+
docId: path.basename(file, '.md'),
|
|
695
|
+
docType: typeName,
|
|
696
|
+
finding: 'missing_in_index',
|
|
697
|
+
});
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
continue;
|
|
701
|
+
}
|
|
702
|
+
if (query.docId && row.docId !== query.docId)
|
|
703
|
+
continue;
|
|
704
|
+
if (allowedDocIds && !allowedDocIds.has(row.docId))
|
|
705
|
+
continue;
|
|
706
|
+
let recordHasFinding = false;
|
|
707
|
+
if (enabled.has('hash_drift')) {
|
|
708
|
+
const raw = await readFile(file, 'utf-8');
|
|
709
|
+
const diskHash = createHash('sha256').update(raw).digest('hex');
|
|
710
|
+
if (diskHash !== row.fileHash) {
|
|
711
|
+
findings.hash_drift++;
|
|
712
|
+
recordHasFinding = true;
|
|
713
|
+
if (verbose) {
|
|
714
|
+
details.push({
|
|
715
|
+
docId: row.docId,
|
|
716
|
+
docType: row.docType,
|
|
717
|
+
finding: 'hash_drift',
|
|
718
|
+
expected: `sha256:${row.fileHash}`,
|
|
719
|
+
actual: `sha256:${diskHash}`,
|
|
720
|
+
});
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
if (enabled.has('schema_drift')) {
|
|
725
|
+
const regForType = ctx.registry.types.get(row.docType);
|
|
726
|
+
if (regForType && row.schemaRef !== regForType.schemaRef) {
|
|
727
|
+
findings.schema_drift++;
|
|
728
|
+
recordHasFinding = true;
|
|
729
|
+
if (verbose) {
|
|
730
|
+
details.push({
|
|
731
|
+
docId: row.docId,
|
|
732
|
+
docType: row.docType,
|
|
733
|
+
finding: 'schema_drift',
|
|
734
|
+
expected: regForType.schemaRef,
|
|
735
|
+
actual: row.schemaRef,
|
|
736
|
+
});
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
if (enabled.has('broken_refs')) {
|
|
741
|
+
const schema = ctx.schemaStore.getSchemaForType(row.docType);
|
|
742
|
+
if (schema) {
|
|
743
|
+
const fm = await readFrontmatter(ctx.projectRoot, row);
|
|
744
|
+
const broken = {};
|
|
745
|
+
for (const [fieldName, fieldDef] of schema.fields) {
|
|
746
|
+
const isScalarRef = fieldDef.type === 'ref';
|
|
747
|
+
const isListOfRef = fieldDef.type === 'list' && fieldDef.itemType === 'ref';
|
|
748
|
+
if (!isScalarRef && !isListOfRef)
|
|
749
|
+
continue;
|
|
750
|
+
const value = fm[fieldName];
|
|
751
|
+
if (value === undefined || value === null)
|
|
752
|
+
continue;
|
|
753
|
+
const candidates = [];
|
|
754
|
+
if (isScalarRef && typeof value === 'string') {
|
|
755
|
+
candidates.push(value);
|
|
756
|
+
}
|
|
757
|
+
else if (isListOfRef && Array.isArray(value)) {
|
|
758
|
+
for (const v of value) {
|
|
759
|
+
if (typeof v === 'string')
|
|
760
|
+
candidates.push(v);
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
for (const candidate of candidates) {
|
|
764
|
+
const target = ctx.backend.getDocument(toDocId(candidate));
|
|
765
|
+
if (!target) {
|
|
766
|
+
(broken[fieldName] ??= []).push(candidate);
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
if (Object.keys(broken).length > 0) {
|
|
771
|
+
findings.broken_refs++;
|
|
772
|
+
recordHasFinding = true;
|
|
773
|
+
if (verbose) {
|
|
774
|
+
details.push({
|
|
775
|
+
docId: row.docId,
|
|
776
|
+
docType: row.docType,
|
|
777
|
+
finding: 'broken_refs',
|
|
778
|
+
actual: broken,
|
|
779
|
+
});
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
if (recordHasFinding)
|
|
785
|
+
unhealthyOnDisk.add(relPath);
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
if (enabled.has('missing_on_disk')) {
|
|
789
|
+
const allStored = ctx.backend.getAllFileHashes();
|
|
790
|
+
for (const [storedPath] of allStored) {
|
|
791
|
+
const normalized = storedPath.replace(/\\/g, '/');
|
|
792
|
+
if (filesOnDisk.has(normalized))
|
|
793
|
+
continue;
|
|
794
|
+
const doc = ctx.backend.getDocumentByPath(storedPath);
|
|
795
|
+
if (!doc)
|
|
796
|
+
continue;
|
|
797
|
+
if (query.docType && doc.docType !== query.docType)
|
|
798
|
+
continue;
|
|
799
|
+
if (query.docId && doc.docId !== query.docId)
|
|
800
|
+
continue;
|
|
801
|
+
if (allowedDocIds && !allowedDocIds.has(doc.docId))
|
|
802
|
+
continue;
|
|
803
|
+
findings.missing_on_disk++;
|
|
804
|
+
if (verbose) {
|
|
805
|
+
details.push({
|
|
806
|
+
docId: doc.docId,
|
|
807
|
+
docType: doc.docType,
|
|
808
|
+
finding: 'missing_on_disk',
|
|
809
|
+
});
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
const healthy = scanned - unhealthyOnDisk.size;
|
|
814
|
+
const result = {
|
|
815
|
+
scanned,
|
|
816
|
+
healthy,
|
|
817
|
+
findings,
|
|
818
|
+
scopeFilters: {
|
|
819
|
+
docType: query.docType ? query.docType : null,
|
|
820
|
+
docId: query.docId ? query.docId : null,
|
|
821
|
+
filter: query.filter ?? null,
|
|
822
|
+
categories: query.categories ?? null,
|
|
823
|
+
},
|
|
824
|
+
completedAt: new Date().toISOString(),
|
|
825
|
+
durationMs: Date.now() - startMs,
|
|
826
|
+
};
|
|
827
|
+
if (verbose)
|
|
828
|
+
result.details = details;
|
|
829
|
+
return ok(result);
|
|
830
|
+
}
|
|
628
831
|
// ============================================================================
|
|
629
832
|
// changesSince — polling delta (0.5.0 R5).
|
|
630
833
|
// Strictly (updated_at, doc_id)-ordered. Cursor is opaque base64url-encoded
|