daftari 1.20.0 → 1.21.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 +44 -0
- package/README.md +4 -1
- package/dist/access/rbac.d.ts +1 -0
- package/dist/access/rbac.d.ts.map +1 -1
- package/dist/access/rbac.js +7 -0
- package/dist/access/rbac.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/dist/curation/lint.d.ts +2 -0
- package/dist/curation/lint.d.ts.map +1 -1
- package/dist/curation/lint.js +5 -0
- package/dist/curation/lint.js.map +1 -1
- package/dist/curation/provenance.d.ts +1 -0
- package/dist/curation/provenance.d.ts.map +1 -1
- package/dist/curation/provenance.js +1 -0
- package/dist/curation/provenance.js.map +1 -1
- package/dist/curation/shadow.d.ts +58 -0
- package/dist/curation/shadow.d.ts.map +1 -0
- package/dist/curation/shadow.js +211 -0
- package/dist/curation/shadow.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/tools/curation.d.ts +2 -0
- package/dist/tools/curation.d.ts.map +1 -1
- package/dist/tools/curation.js +5 -1
- package/dist/tools/curation.js.map +1 -1
- package/dist/tools/edges.d.ts.map +1 -1
- package/dist/tools/edges.js +14 -10
- package/dist/tools/edges.js.map +1 -1
- package/dist/tools/staged-actions.d.ts +1 -0
- package/dist/tools/staged-actions.d.ts.map +1 -1
- package/dist/tools/staged-actions.js +18 -5
- package/dist/tools/staged-actions.js.map +1 -1
- package/dist/tools/write.d.ts +1 -0
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +93 -7
- package/dist/tools/write.js.map +1 -1
- package/dist/utils/config.d.ts +2 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +17 -1
- package/dist/utils/config.js.map +1 -1
- package/package.json +1 -1
- package/templates/config.yaml +3 -0
- package/templates/reviewer-vault/.daftari/config.yaml +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,50 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.21.0] - 2026-06-12
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Cortex §11.6: agent principal in RBAC.** The last substrate item before the
|
|
15
|
+
consolidation-loop spec. An agent principal is just a role — e.g. start the
|
|
16
|
+
server as `--user agent:curation-loop --role curation-loop` against a role
|
|
17
|
+
that writes but does not ratify.
|
|
18
|
+
- **`ratify` role grant** — gates the curation-verdict tier: `vault_ratify`
|
|
19
|
+
(approve/reject staged actions) and `vault_edge_contest` (revoke a
|
|
20
|
+
derives_from edge, closing the gap flagged in the §11.3 review). Declared
|
|
21
|
+
per role in `.daftari/config.yaml`, default false.
|
|
22
|
+
- **Authenticated principal attribution** — when the server runs with an
|
|
23
|
+
access context, every write's provenance entry and shadow record carries
|
|
24
|
+
`principal: <user>` (the identity the server was started as) alongside the
|
|
25
|
+
caller-supplied free-text `agent` claim.
|
|
26
|
+
|
|
27
|
+
- **Cortex §11.5: shadow-mode execution path.** `shadow_mode: true` in
|
|
28
|
+
`.daftari/config.yaml` turns every doc-write tool into compute-but-don't-write:
|
|
29
|
+
validation, RBAC, and the proposed diff run exactly as live, then the would-be
|
|
30
|
+
`do()` is logged to an append-only `.daftari/shadow-actions.jsonl` (git-ignored)
|
|
31
|
+
with its impact and budget verdict — and nothing is written (no file, no commit,
|
|
32
|
+
no index update, no provenance entry). The calibration posture Decision 3
|
|
33
|
+
requires before the consolidation loop ever acts in production.
|
|
34
|
+
- **Impact** `I = min(i_base + 0.05·(blast−1)^1.5, 1)` — convex blast scaling
|
|
35
|
+
over the reverse-link/source reach of the touched paths; per-action `i_base`
|
|
36
|
+
starting table (create 0.1 … merge 0.6). All constants provisional and
|
|
37
|
+
exported — they are the thing being calibrated.
|
|
38
|
+
- **Budget** `B₀ = min(0.5 + 0.25·pendingStagedActions, max(1, ln(N)))` — a
|
|
39
|
+
vault-state function, proportional to ratification-queue depth with a log(N)
|
|
40
|
+
ceiling. A per-process session spend accumulates and `would_gate` marks every
|
|
41
|
+
action past the would-be checkpoint.
|
|
42
|
+
- **`vault_ratify`** detects a shadowed dispatch and leaves the action pending
|
|
43
|
+
(`applied: false, shadow: true`) instead of recording a false `ratified`.
|
|
44
|
+
- **`vault_lint`** gains a `shadowActions` section: totals plus the most recent
|
|
45
|
+
would-have-gated actions.
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
|
|
49
|
+
- **`vault_ratify` and `vault_edge_contest` now require the `ratify` grant** on
|
|
50
|
+
vaults with RBAC roles configured (both previously allowed any role with a
|
|
51
|
+
read grant). Roles that issue curation verdicts must declare `ratify: true`.
|
|
52
|
+
Servers run without `--role` are unaffected.
|
|
53
|
+
|
|
10
54
|
## [1.20.0] - 2026-06-11
|
|
11
55
|
|
|
12
56
|
### Added
|
package/README.md
CHANGED
|
@@ -110,9 +110,12 @@ roles:
|
|
|
110
110
|
read: ["*"]
|
|
111
111
|
write: ["*"]
|
|
112
112
|
promote: true
|
|
113
|
+
ratify: true # may approve/reject staged actions and contest edges
|
|
113
114
|
```
|
|
114
115
|
|
|
115
|
-
No `--role` or an unknown name falls back to deny-all.
|
|
116
|
+
No `--role` or an unknown name falls back to deny-all. An agent identity is
|
|
117
|
+
just a role too — e.g. a `curation-loop` role that reads and writes but leaves
|
|
118
|
+
`ratify` off: the agent proposes, humans ratify.
|
|
116
119
|
|
|
117
120
|
## File format
|
|
118
121
|
|
package/dist/access/rbac.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare function guestAccess(user?: string): AccessContext;
|
|
|
11
11
|
export declare function canRead(role: RoleConfig | null, collection: string): boolean;
|
|
12
12
|
export declare function canWrite(role: RoleConfig | null, collection: string): boolean;
|
|
13
13
|
export declare function canPromote(role: RoleConfig | null): boolean;
|
|
14
|
+
export declare function canRatify(role: RoleConfig | null): boolean;
|
|
14
15
|
export declare function hasAnyRead(role: RoleConfig | null): boolean;
|
|
15
16
|
export declare function filterByReadPermission<T extends {
|
|
16
17
|
collection: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../src/access/rbac.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEpE,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,QAAQ,MAAM,CAAC;AAI5B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CACzB;AAKD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,aAAa,CAEf;AAID,wBAAgB,WAAW,CAAC,IAAI,SAAU,GAAG,aAAa,CAEzD;AAOD,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAE5E;AAGD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAE7E;AAGD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAE3D;AAID,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAE3D;AAID,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EACrE,IAAI,EAAE,UAAU,GAAG,IAAI,EACvB,KAAK,EAAE,CAAC,EAAE,GACT,CAAC,EAAE,CAEL"}
|
|
1
|
+
{"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../src/access/rbac.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEpE,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,QAAQ,MAAM,CAAC;AAI5B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CACzB;AAKD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,aAAa,CAEf;AAID,wBAAgB,WAAW,CAAC,IAAI,SAAU,GAAG,aAAa,CAEzD;AAOD,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAE5E;AAGD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAE7E;AAGD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAE3D;AAMD,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAE1D;AAID,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAE3D;AAID,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EACrE,IAAI,EAAE,UAAU,GAAG,IAAI,EACvB,KAAK,EAAE,CAAC,EAAE,GACT,CAAC,EAAE,CAEL"}
|
package/dist/access/rbac.js
CHANGED
|
@@ -35,6 +35,13 @@ export function canWrite(role, collection) {
|
|
|
35
35
|
export function canPromote(role) {
|
|
36
36
|
return role?.promote ?? false;
|
|
37
37
|
}
|
|
38
|
+
// True if the role may issue curation verdicts (§11.6): approve/reject staged
|
|
39
|
+
// actions and contest derives_from edges. A distinct grant from `promote` —
|
|
40
|
+
// ratifying decides someone ELSE's proposed change; the agent principal
|
|
41
|
+
// typically proposes (write) but does not ratify.
|
|
42
|
+
export function canRatify(role) {
|
|
43
|
+
return role?.ratify ?? false;
|
|
44
|
+
}
|
|
38
45
|
// True if the role has read access to at least one collection. Curation tools
|
|
39
46
|
// (lint, tension log, provenance) are open to anyone with any read grant.
|
|
40
47
|
export function hasAnyRead(role) {
|
package/dist/access/rbac.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../src/access/rbac.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAI1E,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAClC,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAU5B,+EAA+E;AAC/E,6EAA6E;AAC7E,2BAA2B;AAC3B,MAAM,UAAU,aAAa,CAC3B,MAAqB,EACrB,IAAY,EACZ,QAAgB;IAEhB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;AAClE,CAAC;AAED,2EAA2E;AAC3E,0BAA0B;AAC1B,MAAM,UAAU,WAAW,CAAC,IAAI,GAAG,OAAO;IACxC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,OAAO,CAAC,IAAc,EAAE,UAAkB;IACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC9D,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,OAAO,CAAC,IAAuB,EAAE,UAAkB;IACjE,OAAO,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACzD,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,QAAQ,CAAC,IAAuB,EAAE,UAAkB;IAClE,OAAO,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,OAAO,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;AAChC,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,MAAM,UAAU,sBAAsB,CACpC,IAAuB,EACvB,KAAU;IAEV,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAChE,CAAC"}
|
|
1
|
+
{"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../src/access/rbac.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAI1E,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAClC,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAU5B,+EAA+E;AAC/E,6EAA6E;AAC7E,2BAA2B;AAC3B,MAAM,UAAU,aAAa,CAC3B,MAAqB,EACrB,IAAY,EACZ,QAAgB;IAEhB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;AAClE,CAAC;AAED,2EAA2E;AAC3E,0BAA0B;AAC1B,MAAM,UAAU,WAAW,CAAC,IAAI,GAAG,OAAO;IACxC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,OAAO,CAAC,IAAc,EAAE,UAAkB;IACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC9D,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,OAAO,CAAC,IAAuB,EAAE,UAAkB;IACjE,OAAO,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACzD,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,QAAQ,CAAC,IAAuB,EAAE,UAAkB;IAClE,OAAO,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,OAAO,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;AAChC,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,wEAAwE;AACxE,kDAAkD;AAClD,MAAM,UAAU,SAAS,CAAC,IAAuB;IAC/C,OAAO,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC;AAC/B,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,MAAM,UAAU,sBAAsB,CACpC,IAAuB,EACvB,KAAU;IAEV,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAChE,CAAC"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAqLA,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8DnE;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCvD"}
|
package/dist/cli.js
CHANGED
|
@@ -48,6 +48,9 @@ const VAULT_GITIGNORE = `# Daftari rebuilds these from the markdown files — ne
|
|
|
48
48
|
# runs with auto_commit: false inside a larger repo: keeps the host repo's
|
|
49
49
|
# git status clean of Daftari's per-write log churn.
|
|
50
50
|
.daftari/curation-log.jsonl
|
|
51
|
+
.daftari/staged-actions.jsonl
|
|
52
|
+
.daftari/edges.jsonl
|
|
53
|
+
.daftari/shadow-actions.jsonl
|
|
51
54
|
# Transient backfill staging surface (daftari backfill --plan). The apply
|
|
52
55
|
# commit is the durable audit trail — the plan itself is never committed.
|
|
53
56
|
.daftari/backfill-plan.jsonl
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,eAAe;AACf,EAAE;AACF,0DAA0D;AAC1D,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,0EAA0E;AAC1E,+BAA+B;AAE/B,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAErD,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;CAkBb,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,mBAAmB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAE5E,MAAM,eAAe,GAAG
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.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 ShadowLintSummary } from "./shadow.js";
|
|
2
3
|
import { type StagedActionLintItem } from "./staged-actions.js";
|
|
3
4
|
export type { StagedActionLintItem } from "./staged-actions.js";
|
|
4
5
|
import { type ResolutionKind, type TensionKind } from "./tension.js";
|
|
@@ -38,6 +39,7 @@ export interface LintReport {
|
|
|
38
39
|
totalFindings: number;
|
|
39
40
|
tensionHealth: TensionHealth;
|
|
40
41
|
stagedActions: StagedActionLintItem[];
|
|
42
|
+
shadowActions: ShadowLintSummary;
|
|
41
43
|
}
|
|
42
44
|
export interface LintOptions {
|
|
43
45
|
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;AAE1D,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEpF,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;
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/curation/lint.ts"],"names":[],"mappings":"AAOA,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,KAAK,iBAAiB,EAAqB,MAAM,aAAa,CAAC;AACxE,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEpF,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;CAClC;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,CA6HpC"}
|
package/dist/curation/lint.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
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
8
|
import { DRAFT_MAX_DAYS, LOW_CONFIDENCE_MAX_DAYS } from "./decay.js";
|
|
9
|
+
import { shadowLintSummary } from "./shadow.js";
|
|
9
10
|
import { listPendingForLint } from "./staged-actions.js";
|
|
10
11
|
import { ageInDays, computeStaleness } from "./staleness.js";
|
|
11
12
|
import { agingTier, listTensions, RESOLUTION_KINDS, STALE_TIER_LINT_COPY, TENSION_KINDS, } from "./tension.js";
|
|
@@ -144,12 +145,16 @@ export async function runLint(vaultRoot, opts = {}) {
|
|
|
144
145
|
const stagedActions = await listPendingForLint(vaultRoot, now);
|
|
145
146
|
if (!stagedActions.ok)
|
|
146
147
|
return stagedActions;
|
|
148
|
+
const shadowActions = await shadowLintSummary(vaultRoot);
|
|
149
|
+
if (!shadowActions.ok)
|
|
150
|
+
return shadowActions;
|
|
147
151
|
return ok({
|
|
148
152
|
generatedAt: now.toISOString(),
|
|
149
153
|
checks,
|
|
150
154
|
totalFindings,
|
|
151
155
|
tensionHealth: tensionHealth.value,
|
|
152
156
|
stagedActions: stagedActions.value,
|
|
157
|
+
shadowActions: shadowActions.value,
|
|
153
158
|
});
|
|
154
159
|
}
|
|
155
160
|
// 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,EAAE,kBAAkB,EAA6B,MAAM,qBAAqB,CAAC;AAIpF,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;
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/curation/lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/curation/provenance.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAG/D,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IAGd,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/curation/provenance.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAG/D,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IAGd,MAAM,EAAE,MAAM,CAAC;IAKf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,eAAe,CAAC;IAGnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAKD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,KAAK,EAAE,WAAW,GAAG,eAAe,CAW/F;AAID,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACjE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAqBzC;AAKD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,KAAK,CAAC,CAAC,CAoB3C"}
|
|
@@ -35,6 +35,7 @@ export async function recordProvenance(vaultRoot, entry) {
|
|
|
35
35
|
file: entry.file,
|
|
36
36
|
agent: entry.agent,
|
|
37
37
|
action: entry.action,
|
|
38
|
+
...(entry.principal ? { principal: entry.principal } : {}),
|
|
38
39
|
...(entry.frontmatter_diff && Object.keys(entry.frontmatter_diff).length > 0
|
|
39
40
|
? { frontmatter_diff: entry.frontmatter_diff }
|
|
40
41
|
: {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/curation/provenance.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,4EAA4E;AAC5E,qEAAqE;AACrE,0EAA0E;AAC1E,qEAAqE;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/curation/provenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type Result } from "../frontmatter/types.js";
|
|
2
|
+
import type { FrontmatterDiff } from "./provenance.js";
|
|
3
|
+
export declare const SHADOW_I_BASE: Record<string, number>;
|
|
4
|
+
export declare const SHADOW_K_BLAST = 0.05;
|
|
5
|
+
export declare const SHADOW_BLAST_ALPHA = 1.5;
|
|
6
|
+
export declare const SHADOW_B0_BASE = 0.5;
|
|
7
|
+
export declare const SHADOW_B0_PER_PENDING = 0.25;
|
|
8
|
+
export declare function shadowActionsPath(vaultRoot: string): string;
|
|
9
|
+
export interface ShadowActionRecord {
|
|
10
|
+
at: string;
|
|
11
|
+
tool: string;
|
|
12
|
+
action: string;
|
|
13
|
+
target_path: string;
|
|
14
|
+
touched_paths?: string[];
|
|
15
|
+
agent: string;
|
|
16
|
+
principal?: string;
|
|
17
|
+
i_base: number;
|
|
18
|
+
blast: number;
|
|
19
|
+
impact: number;
|
|
20
|
+
budget: number;
|
|
21
|
+
spent_before: number;
|
|
22
|
+
would_gate: boolean;
|
|
23
|
+
frontmatter_diff?: FrontmatterDiff;
|
|
24
|
+
commit_message: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function shadowImpact(action: string, blast: number): number;
|
|
27
|
+
export declare function shadowBudget(pendingStagedActions: number, docCount: number): number;
|
|
28
|
+
export declare function shadowSpent(vaultRoot: string): number;
|
|
29
|
+
export declare function resetShadowSession(vaultRoot: string): void;
|
|
30
|
+
export interface ShadowWriteInput {
|
|
31
|
+
tool: string;
|
|
32
|
+
action: string;
|
|
33
|
+
targetPath: string;
|
|
34
|
+
touchedPaths?: string[];
|
|
35
|
+
agent: string;
|
|
36
|
+
principal?: string;
|
|
37
|
+
frontmatterDiff?: FrontmatterDiff;
|
|
38
|
+
commitMessage: string;
|
|
39
|
+
}
|
|
40
|
+
export declare function recordShadowAction(vaultRoot: string, input: ShadowWriteInput): Promise<Result<ShadowActionRecord, Error>>;
|
|
41
|
+
export declare function listShadowActions(vaultRoot: string): Promise<Result<ShadowActionRecord[], Error>>;
|
|
42
|
+
export interface ShadowLintItem {
|
|
43
|
+
at: string;
|
|
44
|
+
tool: string;
|
|
45
|
+
action: string;
|
|
46
|
+
targetPath: string;
|
|
47
|
+
agent: string;
|
|
48
|
+
impact: number;
|
|
49
|
+
budget: number;
|
|
50
|
+
}
|
|
51
|
+
export interface ShadowLintSummary {
|
|
52
|
+
total: number;
|
|
53
|
+
gated: number;
|
|
54
|
+
recentGated: ShadowLintItem[];
|
|
55
|
+
}
|
|
56
|
+
export declare const SHADOW_LINT_RECENT_LIMIT = 20;
|
|
57
|
+
export declare function shadowLintSummary(vaultRoot: string): Promise<Result<ShadowLintSummary, Error>>;
|
|
58
|
+
//# sourceMappingURL=shadow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/curation/shadow.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AASvD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAShD,CAAC;AAGF,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAGtC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3D;AAID,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IAEf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IAGd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;CACxB;AAID,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlE;AAED,wBAAgB,YAAY,CAAC,oBAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGnF;AAwCD,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErD;AAGD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE1D;AAID,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;CACvB;AAKD,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAoD5C;AAGD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,KAAK,CAAC,CAAC,CAqB9C;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IAEd,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAoB3C"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
// Shadow-mode execution path (spec §11.5) — compute-but-don't-write.
|
|
2
|
+
//
|
|
3
|
+
// When a vault runs with `shadow_mode: true`, the doc-write tools compute
|
|
4
|
+
// everything a live write would (validation, RBAC, the new frontmatter, the
|
|
5
|
+
// diff, the commit message), then instead of touching disk they log the
|
|
6
|
+
// would-be do() here and return a shadow-flagged result. This is the
|
|
7
|
+
// calibration posture Decision 3 (§10.4) requires: the I-table and the trust
|
|
8
|
+
// budget get real data from day one WITHOUT acting in production.
|
|
9
|
+
//
|
|
10
|
+
// Store: .daftari/shadow-actions.jsonl — append-only, one JSON record per
|
|
11
|
+
// intercepted write, the same local-advisory posture as the staged-action and
|
|
12
|
+
// edge logs (git-ignored; never vault content).
|
|
13
|
+
//
|
|
14
|
+
// The numbers (§10.4, ALL PROVISIONAL — they are the thing being calibrated):
|
|
15
|
+
//
|
|
16
|
+
// impact I = min(i_base + K_BLAST · (blast − 1)^1.5, 1)
|
|
17
|
+
// - i_base per action type (table below) — the action's intrinsic weight
|
|
18
|
+
// - blast = 1 + downstream docs reachable from the target through the
|
|
19
|
+
// reverse link/source maps (the tension-blast engine). Convex (α = 1.5):
|
|
20
|
+
// linear scaling under-prices high-blast actions.
|
|
21
|
+
//
|
|
22
|
+
// budget B₀ = min(B0_BASE + B0_PER_PENDING · pendingStagedActions,
|
|
23
|
+
// max(1, ln(docCount)))
|
|
24
|
+
// - a vault-state function, not a constant: proportional to ratification
|
|
25
|
+
// queue depth with a log(N) ceiling.
|
|
26
|
+
//
|
|
27
|
+
// would_gate = spent_before + I > B₀
|
|
28
|
+
// - `spent` is the §3.7 monotonic per-session budget scalar, shadow-only:
|
|
29
|
+
// it accumulates per process per vault and records where exhaustion
|
|
30
|
+
// WOULD have checkpointed the pass. It keeps accumulating past the
|
|
31
|
+
// budget so the log shows everything after the would-be checkpoint as
|
|
32
|
+
// gated, which is exactly the calibration signal.
|
|
33
|
+
import { appendFileSync, mkdirSync, readFileSync } from "node:fs";
|
|
34
|
+
import { join, relative, resolve } from "node:path";
|
|
35
|
+
import { err, ok } from "../frontmatter/types.js";
|
|
36
|
+
import { listStagedActions } from "./staged-actions.js";
|
|
37
|
+
import { buildReverseLinkMap, buildReverseSourceMap, computeBlast } from "./tension-blast.js";
|
|
38
|
+
import { loadDocuments } from "./vault-docs.js";
|
|
39
|
+
// --- calibration constants (provisional — §10.4; exported for the loop) -----
|
|
40
|
+
// Intrinsic impact per write action. A starting table to calibrate against,
|
|
41
|
+
// not a claim: shadow mode exists to find out where these are wrong.
|
|
42
|
+
export const SHADOW_I_BASE = {
|
|
43
|
+
create: 0.1,
|
|
44
|
+
append: 0.15,
|
|
45
|
+
update: 0.2,
|
|
46
|
+
"confidence-set": 0.2,
|
|
47
|
+
promote: 0.3,
|
|
48
|
+
deprecate: 0.4,
|
|
49
|
+
supersede: 0.4,
|
|
50
|
+
merge: 0.6,
|
|
51
|
+
};
|
|
52
|
+
// Convex blast scaling: I grows with (blast − 1)^1.5.
|
|
53
|
+
export const SHADOW_K_BLAST = 0.05;
|
|
54
|
+
export const SHADOW_BLAST_ALPHA = 1.5;
|
|
55
|
+
// Budget B₀ = min(base + per_pending · queueDepth, max(1, ln(N))).
|
|
56
|
+
export const SHADOW_B0_BASE = 0.5;
|
|
57
|
+
export const SHADOW_B0_PER_PENDING = 0.25;
|
|
58
|
+
export function shadowActionsPath(vaultRoot) {
|
|
59
|
+
return join(vaultRoot, ".daftari", "shadow-actions.jsonl");
|
|
60
|
+
}
|
|
61
|
+
// --- impact / budget math ------------------------------------------------------
|
|
62
|
+
export function shadowImpact(action, blast) {
|
|
63
|
+
const iBase = SHADOW_I_BASE[action] ?? 0.2;
|
|
64
|
+
const b = Math.max(1, blast);
|
|
65
|
+
return Math.min(iBase + SHADOW_K_BLAST * (b - 1) ** SHADOW_BLAST_ALPHA, 1);
|
|
66
|
+
}
|
|
67
|
+
export function shadowBudget(pendingStagedActions, docCount) {
|
|
68
|
+
const ceiling = Math.max(1, Math.log(Math.max(1, docCount)));
|
|
69
|
+
return Math.min(SHADOW_B0_BASE + SHADOW_B0_PER_PENDING * pendingStagedActions, ceiling);
|
|
70
|
+
}
|
|
71
|
+
// Canonical vault-relative form of a seed path. The reverse maps are keyed by
|
|
72
|
+
// the relPaths loadDocuments walked, so an aliased caller path (`./pricing/a.md`)
|
|
73
|
+
// would silently miss every key and under-count blast to 1 — the same aliasing
|
|
74
|
+
// class the merge and edge tools canonicalize against.
|
|
75
|
+
function canonicalSeed(vaultRoot, relPath) {
|
|
76
|
+
return relative(resolve(vaultRoot), resolve(vaultRoot, relPath.trim()));
|
|
77
|
+
}
|
|
78
|
+
// Downstream reach of the seed paths through reverse links + sources: how many
|
|
79
|
+
// other docs a change here could invalidate. 1 (the doc itself) + unique
|
|
80
|
+
// downstream entries (computeBlast never returns a seed as its own downstream).
|
|
81
|
+
// One full-vault doc load per shadowed write — shadow mode is a calibration
|
|
82
|
+
// posture, not a hot path.
|
|
83
|
+
function shadowBlastFromDocs(vaultRoot, seeds, docs) {
|
|
84
|
+
const blast = computeBlast({
|
|
85
|
+
seeds: seeds.map((s) => canonicalSeed(vaultRoot, s)),
|
|
86
|
+
reverseSource: buildReverseSourceMap(docs),
|
|
87
|
+
reverseLink: buildReverseLinkMap(docs),
|
|
88
|
+
});
|
|
89
|
+
return 1 + blast.downstream.length;
|
|
90
|
+
}
|
|
91
|
+
// --- per-process session spend (§3.7, shadow-only) ---------------------------
|
|
92
|
+
//
|
|
93
|
+
// A "session" here is the process lifetime — a coarse stand-in for §3.7's
|
|
94
|
+
// per-consolidation-session scalar until the loop exists to define real
|
|
95
|
+
// session boundaries. Under a long-lived server the spend is monotone while
|
|
96
|
+
// B₀ is ln(N)-capped, so the gated fraction saturates over a long calibration
|
|
97
|
+
// window; every record stores `spent_before` and `budget`, so sessions can be
|
|
98
|
+
// re-segmented offline when reading the calibration data. A session-boundary
|
|
99
|
+
// mechanism (idle-gap reset / loop-session reset) lands with the loop.
|
|
100
|
+
const spentByVault = new Map();
|
|
101
|
+
export function shadowSpent(vaultRoot) {
|
|
102
|
+
return spentByVault.get(vaultRoot) ?? 0;
|
|
103
|
+
}
|
|
104
|
+
// Test hook: a "session" is the process lifetime; tests need fresh sessions.
|
|
105
|
+
export function resetShadowSession(vaultRoot) {
|
|
106
|
+
spentByVault.delete(vaultRoot);
|
|
107
|
+
}
|
|
108
|
+
// Computes blast/impact/budget for a would-be write, appends the shadow
|
|
109
|
+
// record, advances the session spend, and returns the record. This is the
|
|
110
|
+
// single entry point the write tools call when shadow mode is on.
|
|
111
|
+
export async function recordShadowAction(vaultRoot, input) {
|
|
112
|
+
const seeds = input.touchedPaths && input.touchedPaths.length > 0 ? input.touchedPaths : [input.targetPath];
|
|
113
|
+
const docs = await loadDocuments(vaultRoot);
|
|
114
|
+
if (!docs.ok)
|
|
115
|
+
return docs;
|
|
116
|
+
const blastValue = shadowBlastFromDocs(vaultRoot, seeds, docs.value);
|
|
117
|
+
// Queue depth counts only LIVE pending actions: the expiry sweep runs inside
|
|
118
|
+
// vault_lint, so between lints the raw pending list can carry TTL-dead
|
|
119
|
+
// entries that would inflate B₀.
|
|
120
|
+
const pending = await listStagedActions(vaultRoot, "pending");
|
|
121
|
+
if (!pending.ok)
|
|
122
|
+
return pending;
|
|
123
|
+
const nowMs = Date.now();
|
|
124
|
+
const livePending = pending.value.filter((a) => Date.parse(a.expiresAt) > nowMs).length;
|
|
125
|
+
const impact = shadowImpact(input.action, blastValue);
|
|
126
|
+
const budget = shadowBudget(livePending, docs.value.length);
|
|
127
|
+
const spentBefore = shadowSpent(vaultRoot);
|
|
128
|
+
const record = {
|
|
129
|
+
at: new Date().toISOString().replace(/\.\d{3}Z$/, "Z"),
|
|
130
|
+
tool: input.tool,
|
|
131
|
+
action: input.action,
|
|
132
|
+
target_path: input.targetPath,
|
|
133
|
+
...(input.touchedPaths && input.touchedPaths.length > 0
|
|
134
|
+
? { touched_paths: input.touchedPaths }
|
|
135
|
+
: {}),
|
|
136
|
+
agent: input.agent,
|
|
137
|
+
...(input.principal ? { principal: input.principal } : {}),
|
|
138
|
+
i_base: SHADOW_I_BASE[input.action] ?? 0.2,
|
|
139
|
+
blast: blastValue,
|
|
140
|
+
impact,
|
|
141
|
+
budget,
|
|
142
|
+
spent_before: spentBefore,
|
|
143
|
+
would_gate: spentBefore + impact > budget,
|
|
144
|
+
...(input.frontmatterDiff && Object.keys(input.frontmatterDiff).length > 0
|
|
145
|
+
? { frontmatter_diff: input.frontmatterDiff }
|
|
146
|
+
: {}),
|
|
147
|
+
commit_message: input.commitMessage,
|
|
148
|
+
};
|
|
149
|
+
try {
|
|
150
|
+
mkdirSync(join(vaultRoot, ".daftari"), { recursive: true });
|
|
151
|
+
appendFileSync(shadowActionsPath(vaultRoot), `${JSON.stringify(record)}\n`);
|
|
152
|
+
}
|
|
153
|
+
catch (e) {
|
|
154
|
+
const reason = e instanceof Error ? e.message : String(e);
|
|
155
|
+
return err(new Error(`cannot record shadow action: ${reason}`));
|
|
156
|
+
}
|
|
157
|
+
spentByVault.set(vaultRoot, spentBefore + impact);
|
|
158
|
+
return ok(record);
|
|
159
|
+
}
|
|
160
|
+
// Reads the shadow log back, oldest first. Missing log = nothing shadowed.
|
|
161
|
+
export async function listShadowActions(vaultRoot) {
|
|
162
|
+
let raw;
|
|
163
|
+
try {
|
|
164
|
+
raw = readFileSync(shadowActionsPath(vaultRoot), "utf-8");
|
|
165
|
+
}
|
|
166
|
+
catch (e) {
|
|
167
|
+
if (e.code === "ENOENT")
|
|
168
|
+
return ok([]);
|
|
169
|
+
const reason = e instanceof Error ? e.message : String(e);
|
|
170
|
+
return err(new Error(`cannot read shadow actions: ${reason}`));
|
|
171
|
+
}
|
|
172
|
+
const records = [];
|
|
173
|
+
for (const line of raw.split("\n")) {
|
|
174
|
+
const trimmed = line.trim();
|
|
175
|
+
if (!trimmed)
|
|
176
|
+
continue;
|
|
177
|
+
try {
|
|
178
|
+
const rec = JSON.parse(trimmed);
|
|
179
|
+
if (typeof rec.at === "string" && typeof rec.action === "string")
|
|
180
|
+
records.push(rec);
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
// Skip a corrupt line; the log is append-only and best-effort.
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return ok(records);
|
|
187
|
+
}
|
|
188
|
+
export const SHADOW_LINT_RECENT_LIMIT = 20;
|
|
189
|
+
export async function shadowLintSummary(vaultRoot) {
|
|
190
|
+
const all = await listShadowActions(vaultRoot);
|
|
191
|
+
if (!all.ok)
|
|
192
|
+
return all;
|
|
193
|
+
const gated = all.value.filter((r) => r.would_gate);
|
|
194
|
+
return ok({
|
|
195
|
+
total: all.value.length,
|
|
196
|
+
gated: gated.length,
|
|
197
|
+
recentGated: gated
|
|
198
|
+
.slice(-SHADOW_LINT_RECENT_LIMIT)
|
|
199
|
+
.reverse()
|
|
200
|
+
.map((r) => ({
|
|
201
|
+
at: r.at,
|
|
202
|
+
tool: r.tool,
|
|
203
|
+
action: r.action,
|
|
204
|
+
targetPath: r.target_path,
|
|
205
|
+
agent: r.agent,
|
|
206
|
+
impact: r.impact,
|
|
207
|
+
budget: r.budget,
|
|
208
|
+
})),
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=shadow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/curation/shadow.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.21.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}`;
|
package/dist/tools/curation.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type AccessContext } from "../access/rbac.js";
|
|
2
2
|
import { type LintCheckName, type LintFinding, type StagedActionLintItem, type TensionHealth } from "../curation/lint.js";
|
|
3
3
|
import { type ProvenanceEntry } from "../curation/provenance.js";
|
|
4
|
+
import type { ShadowLintSummary } from "../curation/shadow.js";
|
|
4
5
|
import { type TensionEntry } from "../curation/tension.js";
|
|
5
6
|
import { type TensionBlastResult } from "../curation/tension-blast.js";
|
|
6
7
|
import { type TensionClustersResult } from "../curation/tension-clusters.js";
|
|
@@ -17,6 +18,7 @@ export interface VaultLintResult {
|
|
|
17
18
|
totalFindings: number;
|
|
18
19
|
tensionHealth: TensionHealth;
|
|
19
20
|
stagedActions: StagedActionLintItem[];
|
|
21
|
+
shadowActions: ShadowLintSummary;
|
|
20
22
|
}
|
|
21
23
|
export declare function vaultLint(vaultRoot: string, args?: Record<string, unknown>, access?: AccessContext): Promise<Result<VaultLintResult, Error>>;
|
|
22
24
|
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,EAAc,MAAM,mBAAmB,CAAC;AACnE,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;
|
|
1
|
+
{"version":3,"file":"curation.d.ts","sourceRoot":"","sources":["../../src/tools/curation.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,aAAa,EAAc,MAAM,mBAAmB,CAAC;AACnE,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,EAML,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,CA0DtC;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;CAClC;AAED,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAClC,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAmDzC;AAMD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAID,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,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAiB/C;AAMD,eAAO,MAAM,aAAa,EAAE,cAAc,EA2MzC,CAAC"}
|