daftari 1.23.0 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/README.md +50 -0
- package/dist/backfill/apply.d.ts.map +1 -1
- package/dist/backfill/apply.js +3 -1
- package/dist/backfill/apply.js.map +1 -1
- package/dist/backfill/derive.d.ts +1 -0
- package/dist/backfill/derive.d.ts.map +1 -1
- package/dist/backfill/derive.js +36 -4
- package/dist/backfill/derive.js.map +1 -1
- package/dist/backfill/index.d.ts +3 -1
- package/dist/backfill/index.d.ts.map +1 -1
- package/dist/backfill/index.js +2 -1
- package/dist/backfill/index.js.map +1 -1
- package/dist/backfill/obsidian.d.ts +4 -0
- package/dist/backfill/obsidian.d.ts.map +1 -0
- package/dist/backfill/obsidian.js +64 -0
- package/dist/backfill/obsidian.js.map +1 -0
- package/dist/backfill/plan.d.ts +1 -0
- package/dist/backfill/plan.d.ts.map +1 -1
- package/dist/backfill/plan.js +1 -0
- package/dist/backfill/plan.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +7 -21
- package/dist/cli.js.map +1 -1
- package/dist/curation/coverage.d.ts +49 -0
- package/dist/curation/coverage.d.ts.map +1 -0
- package/dist/curation/coverage.js +147 -0
- package/dist/curation/coverage.js.map +1 -0
- package/dist/curation/lint.d.ts +2 -0
- package/dist/curation/lint.d.ts.map +1 -1
- package/dist/curation/lint.js +23 -2
- package/dist/curation/lint.js.map +1 -1
- package/dist/import/index.d.ts +2 -0
- package/dist/import/index.d.ts.map +1 -0
- package/dist/import/index.js +131 -0
- package/dist/import/index.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/storage/local.d.ts.map +1 -1
- package/dist/storage/local.js +6 -1
- package/dist/storage/local.js.map +1 -1
- package/dist/tools/curation.d.ts +2 -0
- package/dist/tools/curation.d.ts.map +1 -1
- package/dist/tools/curation.js +2 -0
- package/dist/tools/curation.js.map +1 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +17 -3
- package/dist/tools/write.js.map +1 -1
- package/dist/utils/config.d.ts +1 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +40 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/git.d.ts +4 -2
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +27 -5
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/vault-gitignore.d.ts +3 -0
- package/dist/utils/vault-gitignore.d.ts.map +1 -0
- package/dist/utils/vault-gitignore.js +59 -0
- package/dist/utils/vault-gitignore.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type Result } from "../frontmatter/types.js";
|
|
2
|
+
import { type DerivesFromEdge } from "./edges.js";
|
|
3
|
+
import type { ShadowActionRecord } from "./shadow.js";
|
|
4
|
+
import type { StagedAction } from "./staged-actions.js";
|
|
5
|
+
import type { LoadedDoc } from "./vault-docs.js";
|
|
6
|
+
export interface StrengthGroupStats {
|
|
7
|
+
count: number;
|
|
8
|
+
mean: number;
|
|
9
|
+
median: number;
|
|
10
|
+
p10: number;
|
|
11
|
+
p90: number;
|
|
12
|
+
variance: number;
|
|
13
|
+
}
|
|
14
|
+
export interface CoverageEquitySummary {
|
|
15
|
+
generatedAt: string;
|
|
16
|
+
strengthDrift: {
|
|
17
|
+
core: StrengthGroupStats;
|
|
18
|
+
periphery: StrengthGroupStats;
|
|
19
|
+
coreMinusPeripheryMedian: number | null;
|
|
20
|
+
belowTriggerCount: number;
|
|
21
|
+
};
|
|
22
|
+
backstopOverdue: {
|
|
23
|
+
count: number;
|
|
24
|
+
stalest: Array<{
|
|
25
|
+
fromPath: string;
|
|
26
|
+
toPath: string;
|
|
27
|
+
daysOverdue: number;
|
|
28
|
+
}>;
|
|
29
|
+
};
|
|
30
|
+
actionMix: {
|
|
31
|
+
counts: Record<string, number>;
|
|
32
|
+
cheapLinkFraction: number;
|
|
33
|
+
total: number;
|
|
34
|
+
};
|
|
35
|
+
directionResolution: {
|
|
36
|
+
directed: number;
|
|
37
|
+
symmetric: number;
|
|
38
|
+
unresolvedFraction: number;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export interface CoverageInput {
|
|
42
|
+
docs: LoadedDoc[];
|
|
43
|
+
edges: DerivesFromEdge[];
|
|
44
|
+
shadowRecords: ShadowActionRecord[];
|
|
45
|
+
stagedActions: StagedAction[];
|
|
46
|
+
now: Date;
|
|
47
|
+
}
|
|
48
|
+
export declare function coverageEquitySummary(input: CoverageInput): Result<CoverageEquitySummary, Error>;
|
|
49
|
+
//# sourceMappingURL=coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/curation/coverage.ts"],"names":[],"mappings":"AAUA,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQjD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE;QACb,IAAI,EAAE,kBAAkB,CAAC;QACzB,SAAS,EAAE,kBAAkB,CAAC;QAI9B,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;QACxC,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,eAAe,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC3E,CAAC;IACF,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,mBAAmB,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,GAAG,EAAE,IAAI,CAAC;CACX;AAoCD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAwGhG"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// Stage 4 — coverage/equity instrumentation (spec §6.2). PURE: callers inject
|
|
2
|
+
// docs/edges/journal rows; this module reads no disk. B is a MONITOR, NEVER a
|
|
3
|
+
// TARGET — nothing in src/consolidate/ may import this (guard test in coverage.test).
|
|
4
|
+
import { posix } from "node:path";
|
|
5
|
+
import { decayBackstopDue } from "../consolidate/clocks.js";
|
|
6
|
+
import { CONSOLIDATE_MAX_INTERVAL_DAYS } from "../consolidate/constants.js";
|
|
7
|
+
import { ok } from "../frontmatter/types.js";
|
|
8
|
+
import { EDGE_TRIGGER_STRENGTH } from "./edges.js";
|
|
9
|
+
import { buildReverseLinkMap, buildReverseSourceMap, computeBlast } from "./tension-blast.js";
|
|
10
|
+
// Same canon() the consolidate modules use (path-aliasing bug class): an alias
|
|
11
|
+
// like `x/../x/a.md` must resolve to the loader's canonical relPath key.
|
|
12
|
+
function canon(p) {
|
|
13
|
+
return posix.normalize(p).replace(/^\.\//, "");
|
|
14
|
+
}
|
|
15
|
+
// --- pure stats over a number[] -------------------------------------------
|
|
16
|
+
const EMPTY_STATS = {
|
|
17
|
+
count: 0,
|
|
18
|
+
mean: 0,
|
|
19
|
+
median: 0,
|
|
20
|
+
p10: 0,
|
|
21
|
+
p90: 0,
|
|
22
|
+
variance: 0,
|
|
23
|
+
};
|
|
24
|
+
// Nearest-rank percentile on the sorted array; p in [0,1]. Deterministic and
|
|
25
|
+
// dependency-free (we don't need interpolation precision for a monitor).
|
|
26
|
+
function percentile(sortedAsc, p) {
|
|
27
|
+
if (sortedAsc.length === 0)
|
|
28
|
+
return 0;
|
|
29
|
+
const idx = Math.min(sortedAsc.length - 1, Math.max(0, Math.round(p * (sortedAsc.length - 1))));
|
|
30
|
+
return sortedAsc[idx];
|
|
31
|
+
}
|
|
32
|
+
function stats(values) {
|
|
33
|
+
if (values.length === 0)
|
|
34
|
+
return { ...EMPTY_STATS };
|
|
35
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
36
|
+
const n = sorted.length;
|
|
37
|
+
const mean = sorted.reduce((s, v) => s + v, 0) / n;
|
|
38
|
+
const variance = sorted.reduce((s, v) => s + (v - mean) ** 2, 0) / n; // population variance
|
|
39
|
+
return {
|
|
40
|
+
count: n,
|
|
41
|
+
mean,
|
|
42
|
+
median: percentile(sorted, 0.5),
|
|
43
|
+
p10: percentile(sorted, 0.1),
|
|
44
|
+
p90: percentile(sorted, 0.9),
|
|
45
|
+
variance,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export function coverageEquitySummary(input) {
|
|
49
|
+
const { now } = input;
|
|
50
|
+
// --- strength-distribution drift -----------------------------------------
|
|
51
|
+
const reverseSource = buildReverseSourceMap(input.docs);
|
|
52
|
+
const reverseLink = buildReverseLinkMap(input.docs);
|
|
53
|
+
const live = input.edges.filter((e) => e.status !== "revoked");
|
|
54
|
+
const coreStrengths = [];
|
|
55
|
+
const periStrengths = [];
|
|
56
|
+
let belowTriggerCount = 0;
|
|
57
|
+
for (const e of live) {
|
|
58
|
+
const blast = computeBlast({
|
|
59
|
+
seeds: [canon(e.fromPath), canon(e.toPath)],
|
|
60
|
+
reverseSource,
|
|
61
|
+
reverseLink,
|
|
62
|
+
}).downstream.length;
|
|
63
|
+
(blast > 0 ? coreStrengths : periStrengths).push(e.strength);
|
|
64
|
+
if (e.strength < EDGE_TRIGGER_STRENGTH)
|
|
65
|
+
belowTriggerCount += 1;
|
|
66
|
+
}
|
|
67
|
+
const core = stats(coreStrengths);
|
|
68
|
+
const periphery = stats(periStrengths);
|
|
69
|
+
// Null unless BOTH groups have edges — the median gap is undefined otherwise,
|
|
70
|
+
// and a sentinel 0 would falsely read as "no drift" on a one-sided vault.
|
|
71
|
+
const medianGap = core.count > 0 && periphery.count > 0 ? core.median - periphery.median : null;
|
|
72
|
+
const strengthDrift = {
|
|
73
|
+
core,
|
|
74
|
+
periphery,
|
|
75
|
+
coreMinusPeripheryMedian: medianGap,
|
|
76
|
+
belowTriggerCount,
|
|
77
|
+
};
|
|
78
|
+
// --- backstop-overdue -----------------------------------------------------
|
|
79
|
+
const overdue = decayBackstopDue(input.edges, now).filter((d) => d.reason === "backstop");
|
|
80
|
+
const daysSince = (iso) => Math.max(0, (now.getTime() - new Date(iso).getTime()) / 86_400_000);
|
|
81
|
+
// daysOverdue = days past the max interval. We need lastRederived per overdue
|
|
82
|
+
// edge; look it up from the source edges by (from,to). Keyed identically to
|
|
83
|
+
// decayBackstopDue's own (from,to) dedup (clocks.ts), so each overdue edge has
|
|
84
|
+
// exactly one source row; the data model has no parallel (from,to) edges. If
|
|
85
|
+
// that ever changes, the last writer wins here — acceptable for a monitor.
|
|
86
|
+
const lastByKey = new Map(input.edges.map((e) => [`${e.fromPath}\n${e.toPath}`, e.lastRederived]));
|
|
87
|
+
const overdueDetailed = overdue
|
|
88
|
+
.map((d) => {
|
|
89
|
+
const last = lastByKey.get(`${d.fromPath}\n${d.toPath}`) ?? now.toISOString();
|
|
90
|
+
return {
|
|
91
|
+
fromPath: d.fromPath,
|
|
92
|
+
toPath: d.toPath,
|
|
93
|
+
daysOverdue: Math.max(0, daysSince(last) - CONSOLIDATE_MAX_INTERVAL_DAYS),
|
|
94
|
+
};
|
|
95
|
+
})
|
|
96
|
+
.sort((a, b) => b.daysOverdue - a.daysOverdue);
|
|
97
|
+
const backstopOverdue = {
|
|
98
|
+
count: overdueDetailed.length,
|
|
99
|
+
stalest: overdueDetailed.slice(0, 5),
|
|
100
|
+
};
|
|
101
|
+
// --- action-mix drift -----------------------------------------------------
|
|
102
|
+
// Pinned to EnvelopeActionType: if the envelope renames an action, this array
|
|
103
|
+
// literal fails to compile rather than the monitor silently miscounting.
|
|
104
|
+
const EDGE_OP_ACTION_NAMES = ["edge-observe", "edge-contest"];
|
|
105
|
+
const CHEAP_LINK_ACTION = "edge-observe";
|
|
106
|
+
const EDGE_OP_ACTIONS = new Set(EDGE_OP_ACTION_NAMES);
|
|
107
|
+
const counts = {};
|
|
108
|
+
for (const rec of input.shadowRecords) {
|
|
109
|
+
if (!EDGE_OP_ACTIONS.has(rec.action))
|
|
110
|
+
continue; // exclude doc-write calibration rows
|
|
111
|
+
counts[rec.action] = (counts[rec.action] ?? 0) + 1;
|
|
112
|
+
}
|
|
113
|
+
// Count only staged actions the loop actually enacted ("ratified") or is still
|
|
114
|
+
// actively proposing ("pending"). "expired"/"rejected" died without effect —
|
|
115
|
+
// counting them inflates the heavyweight side and DEFLATES cheapLinkFraction,
|
|
116
|
+
// i.e. under-reports the cheap-link-creep ratchet this metric exists to detect.
|
|
117
|
+
const LIVE_STAGED_STATUSES = new Set(["pending", "ratified"]);
|
|
118
|
+
for (const sa of input.stagedActions) {
|
|
119
|
+
if (!LIVE_STAGED_STATUSES.has(sa.status))
|
|
120
|
+
continue;
|
|
121
|
+
counts[sa.actionType] = (counts[sa.actionType] ?? 0) + 1;
|
|
122
|
+
}
|
|
123
|
+
const total = Object.values(counts).reduce((s, n) => s + n, 0);
|
|
124
|
+
const cheapLink = counts[CHEAP_LINK_ACTION] ?? 0;
|
|
125
|
+
const actionMix = {
|
|
126
|
+
counts,
|
|
127
|
+
total,
|
|
128
|
+
cheapLinkFraction: total > 0 ? cheapLink / total : 0,
|
|
129
|
+
};
|
|
130
|
+
// --- direction-resolution coverage ----------------------------------------
|
|
131
|
+
const nonRevoked = input.edges.filter((e) => e.status !== "revoked");
|
|
132
|
+
const directed = nonRevoked.filter((e) => e.directionVerdict === "directed").length;
|
|
133
|
+
const symmetric = nonRevoked.filter((e) => e.directionVerdict === "symmetric").length;
|
|
134
|
+
const directionResolution = {
|
|
135
|
+
directed,
|
|
136
|
+
symmetric,
|
|
137
|
+
unresolvedFraction: nonRevoked.length > 0 ? symmetric / nonRevoked.length : 0,
|
|
138
|
+
};
|
|
139
|
+
return ok({
|
|
140
|
+
generatedAt: now.toISOString(),
|
|
141
|
+
strengthDrift,
|
|
142
|
+
backstopOverdue,
|
|
143
|
+
actionMix,
|
|
144
|
+
directionResolution,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/curation/coverage.ts"],"names":[],"mappings":"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"}
|
package/dist/curation/lint.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Result } from "../frontmatter/types.js";
|
|
2
|
+
import { type CoverageEquitySummary } from "./coverage.js";
|
|
2
3
|
import { type ShadowLintSummary } from "./shadow.js";
|
|
3
4
|
import { type StagedActionLintItem } from "./staged-actions.js";
|
|
4
5
|
export type { StagedActionLintItem } from "./staged-actions.js";
|
|
@@ -40,6 +41,7 @@ export interface LintReport {
|
|
|
40
41
|
tensionHealth: TensionHealth;
|
|
41
42
|
stagedActions: StagedActionLintItem[];
|
|
42
43
|
shadowActions: ShadowLintSummary;
|
|
44
|
+
coverageEquity: CoverageEquitySummary;
|
|
43
45
|
}
|
|
44
46
|
export interface LintOptions {
|
|
45
47
|
now?: Date;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/curation/lint.ts"],"names":[],"mappings":"AAOA,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/curation/lint.ts"],"names":[],"mappings":"AAOA,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,qBAAqB,EAAyB,MAAM,eAAe,CAAC;AAGlF,OAAO,EAAqB,KAAK,iBAAiB,EAAqB,MAAM,aAAa,CAAC;AAC3F,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAIL,KAAK,cAAc,EAGnB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAWtB,eAAO,MAAM,WAAW,8HAOd,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAyBD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7E;AAOD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACjD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,qBAAqB,CAAC;IAMhC,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAK7B,aAAa,EAAE,oBAAoB,EAAE,CAAC;IAKtC,aAAa,EAAE,iBAAiB,CAAC;IAGjC,cAAc,EAAE,qBAAqB,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AA8BD,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CA6IpC"}
|
package/dist/curation/lint.js
CHANGED
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
// changed, nothing is auto-fixed. The output is a structured report grouped by
|
|
6
6
|
// check, for a human (or an agent acting on a human's behalf) to triage.
|
|
7
7
|
import { ok } from "../frontmatter/types.js";
|
|
8
|
+
import { coverageEquitySummary } from "./coverage.js";
|
|
8
9
|
import { DRAFT_MAX_DAYS, LOW_CONFIDENCE_MAX_DAYS } from "./decay.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
10
|
+
import { listEdges } from "./edges.js";
|
|
11
|
+
import { listShadowActions, shadowLintSummary } from "./shadow.js";
|
|
12
|
+
import { listPendingForLint, listStagedActions, } from "./staged-actions.js";
|
|
11
13
|
import { ageInDays, computeStaleness } from "./staleness.js";
|
|
12
14
|
import { agingTier, listTensions, RESOLUTION_KINDS, STALE_TIER_LINT_COPY, TENSION_KINDS, } from "./tension.js";
|
|
13
15
|
import { buildReverseLinkMap, buildReverseSourceMap, computeBlast } from "./tension-blast.js";
|
|
@@ -148,6 +150,24 @@ export async function runLint(vaultRoot, opts = {}) {
|
|
|
148
150
|
const shadowActions = await shadowLintSummary(vaultRoot);
|
|
149
151
|
if (!shadowActions.ok)
|
|
150
152
|
return shadowActions;
|
|
153
|
+
const edgesRes = await listEdges(vaultRoot, {}, now);
|
|
154
|
+
if (!edgesRes.ok)
|
|
155
|
+
return edgesRes;
|
|
156
|
+
const shadowRecordsRes = await listShadowActions(vaultRoot);
|
|
157
|
+
if (!shadowRecordsRes.ok)
|
|
158
|
+
return shadowRecordsRes;
|
|
159
|
+
const stagedRes = await listStagedActions(vaultRoot);
|
|
160
|
+
if (!stagedRes.ok)
|
|
161
|
+
return stagedRes;
|
|
162
|
+
const coverageEquityRes = coverageEquitySummary({
|
|
163
|
+
docs,
|
|
164
|
+
edges: edgesRes.value,
|
|
165
|
+
shadowRecords: shadowRecordsRes.value,
|
|
166
|
+
stagedActions: stagedRes.value,
|
|
167
|
+
now,
|
|
168
|
+
});
|
|
169
|
+
if (!coverageEquityRes.ok)
|
|
170
|
+
return coverageEquityRes;
|
|
151
171
|
return ok({
|
|
152
172
|
generatedAt: now.toISOString(),
|
|
153
173
|
checks,
|
|
@@ -155,6 +175,7 @@ export async function runLint(vaultRoot, opts = {}) {
|
|
|
155
175
|
tensionHealth: tensionHealth.value,
|
|
156
176
|
stagedActions: stagedActions.value,
|
|
157
177
|
shadowActions: shadowActions.value,
|
|
178
|
+
coverageEquity: coverageEquityRes.value,
|
|
158
179
|
});
|
|
159
180
|
}
|
|
160
181
|
// Aggregates the tension log into the Phase 1 health summary plus the Phase 4
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/curation/lint.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,yEAAyE;AAEzE,OAAO,EAAE,EAAE,EAAe,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAA0B,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/curation/lint.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,yEAAyE;AAEzE,OAAO,EAAE,EAAE,EAAe,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAA8B,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAA0B,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EACL,SAAS,EACT,YAAY,EACZ,gBAAgB,EAEhB,oBAAoB,EACpB,aAAa,GAEd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,gBAAgB,EAChB,YAAY,EAEZ,aAAa,EACb,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY;IACZ,aAAa;IACb,WAAW;IACX,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;CACb,CAAC;AA8FX,6EAA6E;AAE7E,2EAA2E;AAC3E,6EAA6E;AAC7E,qEAAqE;AACrE,SAAS,iBAAiB,CAAC,CAAS;IAClC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,6EAA6E;AAE7E,8DAA8D;AAC9D,SAAS,eAAe,CAAC,IAAiB;IACxC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI;gBAAE,SAAS;YAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,SAAiB,EACjB,OAAoB,EAAE;IAEtB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,cAAc,CAAC;IACzD,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,IAAI,uBAAuB,CAAC;IAClF,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,0EAA0E;IAC1E,4EAA4E;IAC5E,sDAAsD;IACtD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC;gBAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAyC;QACnD,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,EAAE;QACb,qBAAqB,EAAE,EAAE;QACzB,qBAAqB,EAAE,EAAE;QACzB,mBAAmB,EAAE,EAAE;KACxB,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC;QAE3B,2CAA2C;QAC3C,MAAM,SAAS,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;QACxF,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EACJ,GAAG,SAAS,CAAC,OAAO,uBAAuB,SAAS,CAAC,OAAO,IAAI;oBAChE,gBAAgB,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;aAChD,CAAC,CAAC;QACL,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,0CAA0C;aACnD,CAAC,CAAC;QACL,CAAC;QAED,6DAA6D;QAC7D,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC;YACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxC,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;gBAC5B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;oBACpB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,aAAa,QAAQ,YAAY,YAAY,IAAI;iBAC1D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,IAAI,EAAE,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,QAAQ,IAAI,oBAAoB,EAAE,CAAC;gBACrC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAChC,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EACJ,iCAAiC,QAAQ,IAAI,GAAG,UAAU,oBAAoB,IAAI;iBACrF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,IAAI,EAAE,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CACvD,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,KAAK,WAAW,CAC/D,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAChC,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,gCAAgC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACpE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,2EAA2E;QAC3E,MAAM,eAAe,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACvD,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC9B,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EACJ,GAAG,eAAe,CAAC,MAAM,0CAA0C;oBACnE,iBAAiB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAChD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAElF,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACvE,IAAI,CAAC,aAAa,CAAC,EAAE;QAAE,OAAO,aAAa,CAAC;IAE5C,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC/D,IAAI,CAAC,aAAa,CAAC,EAAE;QAAE,OAAO,aAAa,CAAC;IAE5C,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,CAAC,aAAa,CAAC,EAAE;QAAE,OAAO,aAAa,CAAC;IAE5C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACrD,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC;IAClC,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,CAAC,gBAAgB,CAAC,EAAE;QAAE,OAAO,gBAAgB,CAAC;IAClD,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;QAC9C,IAAI;QACJ,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,aAAa,EAAE,gBAAgB,CAAC,KAAK;QACrC,aAAa,EAAE,SAAS,CAAC,KAAK;QAC9B,GAAG;KACJ,CAAC,CAAC;IACH,IAAI,CAAC,iBAAiB,CAAC,EAAE;QAAE,OAAO,iBAAiB,CAAC;IAEpD,OAAO,EAAE,CAAC;QACR,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE;QAC9B,MAAM;QACN,aAAa;QACb,aAAa,EAAE,aAAa,CAAC,KAAK;QAClC,aAAa,EAAE,aAAa,CAAC,KAAK;QAClC,aAAa,EAAE,aAAa,CAAC,KAAK;QAClC,cAAc,EAAE,iBAAiB,CAAC,KAAK;KACxC,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,2EAA2E;AAC3E,kBAAkB;AAClB,KAAK,UAAU,oBAAoB,CACjC,SAAiB,EACjB,IAAiB,EACjB,GAAS;IAET,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAGjE,CAAC;IACF,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAG9E,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAGtE,CAAC;IACF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,CAAC;QACX,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa;YAAE,iBAAiB,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YACjB,gBAAgB,IAAI,CAAC,CAAC;YACtB,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU;gBAAE,kBAAkB,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ;YAAE,SAAS;QACzB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI,KAAK,OAAO;YAAE,KAAK,IAAI,CAAC,CAAC;aAC5B,IAAI,IAAI,KAAK,OAAO;YAAE,KAAK,IAAI,CAAC,CAAC;aACjC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,CAAC;YACX,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,0EAA0E;IAC1E,MAAM,aAAa,GAAiE,EAAE,CAAC;IACvF,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,CAAU,EAAE,CAAC;QACpE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,aAAa,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,aAAa,GAAG,sBAAsB,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClE,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,IAAI,GAAG,OAAO;YAAE,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC,uBAAuB,GAAG,EAAE;YAAE,IAAI,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,QAAQ,GAA0B;QACtC,KAAK,EAAE,aAAa,CAAC,aAAa;QAClC,OAAO;QACP,KAAK;QACL,IAAI;KACL,CAAC;IAEF,yEAAyE;IACzE,4EAA4E;IAC5E,0EAA0E;IAC1E,uEAAuE;IACvE,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,QAAQ;YAAE,SAAS;QACzB,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,OAAO;YAAE,SAAS;QAC5C,IAAI,CAAC,CAAC,OAAO;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,OAAO;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,YAAY,CAAC;QACzB,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC;QACtB,aAAa;QACb,WAAW;KACZ,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;QACR,KAAK;QACL,MAAM;QACN,gBAAgB;QAChB,gBAAgB;QAChB,kBAAkB;QAClB,iBAAiB;QACjB,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE;QAC1D,QAAQ;QACR,0BAA0B,EAAE,KAAK,CAAC,aAAa;KAChD,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/import/index.ts"],"names":[],"mappings":"AAyDA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4F/D"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// src/import/index.ts
|
|
2
|
+
//
|
|
3
|
+
// `daftari import <type> <vault> [flags]` — adopt foreign content into a Daftari
|
|
4
|
+
// vault in place. v1 supports one type, "obsidian", which delegates to the
|
|
5
|
+
// backfill plan/apply flow with Obsidian-aware derivation enabled. The command
|
|
6
|
+
// mirrors backfill's two-step UX exactly (spec: 2026-06-19-obsidian-adoption).
|
|
7
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
8
|
+
import { dirname, join, resolve } from "node:path";
|
|
9
|
+
import { dump, load } from "js-yaml";
|
|
10
|
+
import { runBackfill } from "../backfill/index.js";
|
|
11
|
+
import { directoryExists } from "../storage/local.js";
|
|
12
|
+
import { isGitRepo } from "../utils/git.js";
|
|
13
|
+
import { ensureVaultGitignore } from "../utils/vault-gitignore.js";
|
|
14
|
+
const SUPPORTED = ["obsidian"];
|
|
15
|
+
// Writes git_dir (+ auto_commit:true) into the vault's config.yaml, merging into
|
|
16
|
+
// any existing config. Idempotent: returns "present" with no rewrite when already
|
|
17
|
+
// at the target. Comments in an existing config are not preserved (js-yaml dump).
|
|
18
|
+
function writeGitDirConfig(vaultRoot, gitDirValue) {
|
|
19
|
+
const cfgPath = join(vaultRoot, ".daftari", "config.yaml");
|
|
20
|
+
let cfg = {};
|
|
21
|
+
if (existsSync(cfgPath)) {
|
|
22
|
+
const parsed = load(readFileSync(cfgPath, "utf-8"));
|
|
23
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
24
|
+
cfg = parsed;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (cfg.git_dir === gitDirValue && cfg.auto_commit === true)
|
|
28
|
+
return "present";
|
|
29
|
+
cfg.git_dir = gitDirValue;
|
|
30
|
+
cfg.auto_commit = true;
|
|
31
|
+
mkdirSync(dirname(cfgPath), { recursive: true });
|
|
32
|
+
writeFileSync(cfgPath, dump(cfg), "utf-8");
|
|
33
|
+
return "written";
|
|
34
|
+
}
|
|
35
|
+
const HELP = `daftari import — adopt an existing vault into Daftari, in place.
|
|
36
|
+
|
|
37
|
+
Usage:
|
|
38
|
+
daftari import obsidian <vault> --plan [--scope <folder>]
|
|
39
|
+
daftari import obsidian <vault> --apply --scope <folder> [--yes]
|
|
40
|
+
|
|
41
|
+
Adopts an Obsidian vault *in place*: Daftari indexes and curates the same files
|
|
42
|
+
Obsidian authors. Mirrors 'daftari backfill' (two-step plan/apply, per-folder
|
|
43
|
+
ratification) and additionally harvests inline #tags and maps a Web Clipper
|
|
44
|
+
'source' into Daftari 'sources'. Wikilinks are left untouched — Daftari already
|
|
45
|
+
resolves them.
|
|
46
|
+
|
|
47
|
+
Flags (passed through to backfill):
|
|
48
|
+
--scope <folder> Folder to act on. Optional on --plan, required on --apply.
|
|
49
|
+
--apply / --plan Apply a ratified folder, or stage a dry-run plan.
|
|
50
|
+
--yes Skip the apply confirmation prompt.
|
|
51
|
+
--agent <id> Acting identity for the apply commit (default human:<user>).
|
|
52
|
+
--help, -h Show this help.
|
|
53
|
+
`;
|
|
54
|
+
export async function runImport(argv) {
|
|
55
|
+
if (argv.length === 0) {
|
|
56
|
+
process.stderr.write(HELP);
|
|
57
|
+
return 1;
|
|
58
|
+
}
|
|
59
|
+
if (argv.includes("--help") || argv.includes("-h")) {
|
|
60
|
+
process.stdout.write(HELP);
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
const type = argv[0];
|
|
64
|
+
if (!SUPPORTED.includes(type)) {
|
|
65
|
+
process.stderr.write(`daftari import: unsupported type '${type}' — supported: ${SUPPORTED.join(", ")}\n`);
|
|
66
|
+
return 1;
|
|
67
|
+
}
|
|
68
|
+
// The vault is the first non-flag arg after the type; default to ".".
|
|
69
|
+
const rest = argv.slice(1);
|
|
70
|
+
let vault = ".";
|
|
71
|
+
const passthrough = [];
|
|
72
|
+
let tookVault = false;
|
|
73
|
+
let externalGitDir;
|
|
74
|
+
for (const a of rest) {
|
|
75
|
+
if (!tookVault && !a.startsWith("-")) {
|
|
76
|
+
vault = a;
|
|
77
|
+
tookVault = true;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (a === "--external-git-dir") {
|
|
81
|
+
externalGitDir = "external";
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (a.startsWith("--external-git-dir=")) {
|
|
85
|
+
externalGitDir = a.slice("--external-git-dir=".length) || "external";
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
passthrough.push(a);
|
|
89
|
+
}
|
|
90
|
+
// Adoption front door: a typo'd vault should fail loudly, not silently no-op
|
|
91
|
+
// the way backfill does on a missing path.
|
|
92
|
+
const resolvedVault = resolve(vault);
|
|
93
|
+
if (!(await directoryExists(resolvedVault))) {
|
|
94
|
+
process.stderr.write(`daftari import: vault directory not found: ${vault}\n`);
|
|
95
|
+
return 1;
|
|
96
|
+
}
|
|
97
|
+
// Foreign-vault footguns: most Obsidian vaults aren't git repos, and an apply
|
|
98
|
+
// commit will silently `git init` one (via commit → ensureGitRepo). Announce
|
|
99
|
+
// that, and scaffold the .daftari ignore rules so the ephemeral index/lock/log
|
|
100
|
+
// files never leak into the user's repo on a later `git add`.
|
|
101
|
+
const isGit = await isGitRepo(resolvedVault);
|
|
102
|
+
if (!isGit) {
|
|
103
|
+
process.stderr.write(externalGitDir !== undefined
|
|
104
|
+
? `daftari import: '${vault}' is not a git repository — Daftari will initialize git data at an external location (config git_dir), keeping .git out of the vault.\n`
|
|
105
|
+
: `daftari import: '${vault}' is not a git repository — Daftari versions changes with git and will initialize one here.\n`);
|
|
106
|
+
}
|
|
107
|
+
// Only --apply mutates the vault; a --plan dry-run must not write the
|
|
108
|
+
// .gitignore. ensureVaultGitignore runs before runBackfill so the ignore file
|
|
109
|
+
// exists before any commit. It's left untracked (git honors that) — backfill's
|
|
110
|
+
// apply commits only doc paths.
|
|
111
|
+
const isApply = passthrough.includes("--apply");
|
|
112
|
+
if (isApply) {
|
|
113
|
+
const result = await ensureVaultGitignore(resolvedVault);
|
|
114
|
+
if (result !== "present") {
|
|
115
|
+
process.stderr.write(`daftari import: wrote .daftari ignore rules to ${resolvedVault}/.gitignore\n`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (externalGitDir !== undefined) {
|
|
119
|
+
if (isApply) {
|
|
120
|
+
const res = writeGitDirConfig(resolvedVault, externalGitDir);
|
|
121
|
+
if (res === "written") {
|
|
122
|
+
process.stderr.write(`daftari import: configured external git-dir (git_dir: ${externalGitDir}, auto_commit: true) in ${resolvedVault}/.daftari/config.yaml\n`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
process.stderr.write("daftari import: --external-git-dir will be written to config on --apply (dry-run writes nothing)\n");
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return runBackfill(["--vault", vault, ...passthrough], { obsidian: true });
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/import/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -29,7 +29,7 @@ import { directoryExists } from "./storage/local.js";
|
|
|
29
29
|
import { loadConfig } from "./utils/config.js";
|
|
30
30
|
// Kept in sync with package.json. Surfaced in the process lockfile for
|
|
31
31
|
// operator diagnostics. Bump both together on a release.
|
|
32
|
-
const DAFTARI_VERSION = "1.
|
|
32
|
+
const DAFTARI_VERSION = "1.25.0";
|
|
33
33
|
// Reads `--name value` or `--name=value` from argv; null if absent.
|
|
34
34
|
export function parseFlag(argv, name) {
|
|
35
35
|
const flag = `--${name}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/storage/local.ts"],"names":[],"mappings":"AASA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAI/D,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAQ/F;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOpE;AAED,wBAAsB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAQnF;AAID,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,SAAY,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/storage/local.ts"],"names":[],"mappings":"AASA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAI/D,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAQ/F;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOpE;AAED,wBAAsB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAQnF;AAID,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,SAAY,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAkBlC"}
|
package/dist/storage/local.js
CHANGED
|
@@ -45,7 +45,12 @@ export async function listFiles(vaultRoot, pattern = "**/*.md") {
|
|
|
45
45
|
cwd: resolve(vaultRoot),
|
|
46
46
|
nodir: true,
|
|
47
47
|
posix: true,
|
|
48
|
-
|
|
48
|
+
// glob's default `dot: false` already skips dotfiles, but the Obsidian
|
|
49
|
+
// adoption path (`daftari import obsidian`) depends on `.obsidian/` and
|
|
50
|
+
// `.trash/` never entering a backfill plan, so the exclusion is made
|
|
51
|
+
// explicit here rather than riding an implicit default across glob
|
|
52
|
+
// versions. .daftari (control dir) and node_modules are excluded too.
|
|
53
|
+
ignore: ["**/.daftari/**", "**/node_modules/**", "**/.obsidian/**", "**/.trash/**"],
|
|
49
54
|
});
|
|
50
55
|
return ok([...matches].sort());
|
|
51
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/storage/local.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,mEAAmE;AAEnE,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,yBAAyB,CAAC;AAE/D,6EAA6E;AAC7E,0EAA0E;AAC1E,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,YAAoB;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,YAAoB;IACjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAAiB,EACjB,OAAO,GAAG,SAAS;IAEnB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;YAClC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC;YACvB,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/storage/local.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,mEAAmE;AAEnE,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,yBAAyB,CAAC;AAE/D,6EAA6E;AAC7E,0EAA0E;AAC1E,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,YAAoB;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,YAAoB;IACjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAAiB,EACjB,OAAO,GAAG,SAAS;IAEnB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;YAClC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC;YACvB,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,uEAAuE;YACvE,wEAAwE;YACxE,qEAAqE;YACrE,mEAAmE;YACnE,sEAAsE;YACtE,MAAM,EAAE,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,CAAC;SACpF,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
|
package/dist/tools/curation.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type AccessContext } from "../access/rbac.js";
|
|
2
|
+
import type { CoverageEquitySummary } from "../curation/coverage.js";
|
|
2
3
|
import { type LintCheckName, type LintFinding, type StagedActionLintItem, type TensionHealth } from "../curation/lint.js";
|
|
3
4
|
import { type ProvenanceEntry } from "../curation/provenance.js";
|
|
4
5
|
import type { ShadowLintSummary } from "../curation/shadow.js";
|
|
@@ -19,6 +20,7 @@ export interface VaultLintResult {
|
|
|
19
20
|
tensionHealth: TensionHealth;
|
|
20
21
|
stagedActions: StagedActionLintItem[];
|
|
21
22
|
shadowActions: ShadowLintSummary;
|
|
23
|
+
coverageEquity: CoverageEquitySummary;
|
|
22
24
|
}
|
|
23
25
|
export declare function vaultLint(vaultRoot: string, args?: Record<string, unknown>, access?: AccessContext): Promise<Result<VaultLintResult, Error>>;
|
|
24
26
|
export interface VaultProvenanceResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curation.d.ts","sourceRoot":"","sources":["../../src/tools/curation.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,WAAW,EAEhB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,2BAA2B,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAOL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAClG,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAkBhD,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CA+CtC;AAUD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAyEtC;AASD,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACnC,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAI/C;AAWD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CA0B5C;AAMD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,aAAa,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"curation.d.ts","sourceRoot":"","sources":["../../src/tools/curation.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/curation.js
CHANGED
|
@@ -237,6 +237,7 @@ export async function vaultLint(vaultRoot, args = {}, access) {
|
|
|
237
237
|
tensionHealth: report.value.tensionHealth,
|
|
238
238
|
stagedActions: report.value.stagedActions,
|
|
239
239
|
shadowActions: report.value.shadowActions,
|
|
240
|
+
coverageEquity: report.value.coverageEquity,
|
|
240
241
|
});
|
|
241
242
|
}
|
|
242
243
|
return ok({
|
|
@@ -247,6 +248,7 @@ export async function vaultLint(vaultRoot, args = {}, access) {
|
|
|
247
248
|
tensionHealth: report.value.tensionHealth,
|
|
248
249
|
stagedActions: report.value.stagedActions,
|
|
249
250
|
shadowActions: report.value.shadowActions,
|
|
251
|
+
coverageEquity: report.value.coverageEquity,
|
|
250
252
|
});
|
|
251
253
|
}
|
|
252
254
|
// Returns the write history of a single document, oldest entry first, read
|