daftari 1.22.0 → 1.23.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 +17 -1
- package/dist/consolidate/admit.d.ts +15 -0
- package/dist/consolidate/admit.d.ts.map +1 -0
- package/dist/consolidate/admit.js +176 -0
- package/dist/consolidate/admit.js.map +1 -0
- package/dist/consolidate/birth.d.ts +5 -0
- package/dist/consolidate/birth.d.ts.map +1 -1
- package/dist/consolidate/birth.js +62 -0
- package/dist/consolidate/birth.js.map +1 -1
- package/dist/consolidate/edge-write.d.ts +0 -1
- package/dist/consolidate/edge-write.d.ts.map +1 -1
- package/dist/consolidate/edge-write.js +21 -38
- package/dist/consolidate/edge-write.js.map +1 -1
- package/dist/consolidate/envelope.d.ts +27 -0
- package/dist/consolidate/envelope.d.ts.map +1 -0
- package/dist/consolidate/envelope.js +90 -0
- package/dist/consolidate/envelope.js.map +1 -0
- package/dist/consolidate/index.d.ts.map +1 -1
- package/dist/consolidate/index.js +63 -9
- package/dist/consolidate/index.js.map +1 -1
- package/dist/consolidate/revision.d.ts +7 -1
- package/dist/consolidate/revision.d.ts.map +1 -1
- package/dist/consolidate/revision.js +70 -28
- package/dist/consolidate/revision.js.map +1 -1
- package/dist/curation/shadow.d.ts +30 -0
- package/dist/curation/shadow.d.ts.map +1 -1
- package/dist/curation/shadow.js +74 -26
- package/dist/curation/shadow.js.map +1 -1
- package/dist/curation/staged-actions.d.ts +2 -0
- package/dist/curation/staged-actions.d.ts.map +1 -1
- package/dist/curation/staged-actions.js +8 -0
- package/dist/curation/staged-actions.js.map +1 -1
- package/dist/curation/tension.d.ts +1 -0
- package/dist/curation/tension.d.ts.map +1 -1
- package/dist/curation/tension.js +8 -0
- package/dist/curation/tension.js.map +1 -1
- package/dist/curation/vault-docs.d.ts +2 -1
- package/dist/curation/vault-docs.d.ts.map +1 -1
- package/dist/curation/vault-docs.js +1 -0
- package/dist/curation/vault-docs.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/storage/index-db.d.ts +1 -0
- package/dist/storage/index-db.d.ts.map +1 -1
- package/dist/storage/index-db.js.map +1 -1
- package/dist/tools/curation.d.ts.map +1 -1
- package/dist/tools/curation.js +16 -2
- package/dist/tools/curation.js.map +1 -1
- package/dist/tools/edges.d.ts.map +1 -1
- package/dist/tools/edges.js +1 -0
- package/dist/tools/edges.js.map +1 -1
- package/dist/tools/staged-actions.d.ts.map +1 -1
- package/dist/tools/staged-actions.js +2 -0
- package/dist/tools/staged-actions.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,23 @@ All notable changes to this project are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [1.23.0] - 2026-06-19
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Cortex consolidation loop — Stage 3 (two-gate envelope).** `daftari
|
|
13
|
+
consolidate` now consults a two-gate envelope — an **invariants** gate (it
|
|
14
|
+
refuses to act on an edge whose endpoint carries an unresolved tension) and a
|
|
15
|
+
**trust-budget** gate — before each edge `do()`. The envelope is enforced
|
|
16
|
+
**live but shadowed**: every decision is computed and journaled to
|
|
17
|
+
`.daftari/shadow-actions.jsonl` as `decision: "admitted"` or
|
|
18
|
+
`decision: "gated"` (with gate + reason), but never enacted. `vault_lint`
|
|
19
|
+
surfaces the gated/surfaced envelope decisions as a view distinct from the
|
|
20
|
+
existing would-gate calibration section.
|
|
21
|
+
- **§8 closures.** A loop decision records `decided_by_principal` (the
|
|
22
|
+
authenticated identity) on the staged action and contest tension it produces;
|
|
23
|
+
`vault_tension_resolve` is gated on `canRatify` for loop-authored tensions, so
|
|
24
|
+
the loop cannot close its own tensions.
|
|
9
25
|
|
|
10
26
|
## [1.22.0] - 2026-06-17
|
|
11
27
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type EnvelopeJournalInput, type ShadowActionRecord } from "../curation/shadow.js";
|
|
2
|
+
import type { LoadedDoc } from "../curation/vault-docs.js";
|
|
3
|
+
import { type Result } from "../frontmatter/types.js";
|
|
4
|
+
import { type Admit } from "./envelope.js";
|
|
5
|
+
export interface AdmitConfig {
|
|
6
|
+
vaultRoot: string;
|
|
7
|
+
principal: string;
|
|
8
|
+
docs: LoadedDoc[];
|
|
9
|
+
journal?: (vaultRoot: string, input: EnvelopeJournalInput) => Promise<Result<ShadowActionRecord, Error>>;
|
|
10
|
+
}
|
|
11
|
+
export declare function makeAdmit(cfg: AdmitConfig): Promise<Result<{
|
|
12
|
+
admit: Admit;
|
|
13
|
+
journalFailures: () => number;
|
|
14
|
+
}, Error>>;
|
|
15
|
+
//# sourceMappingURL=admit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admit.d.ts","sourceRoot":"","sources":["../../src/consolidate/admit.ts"],"names":[],"mappings":"AAsBA,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,kBAAkB,EAGxB,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,KAAK,KAAK,EAKX,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAOlB,IAAI,EAAE,SAAS,EAAE,CAAC;IAIlB,OAAO,CAAC,EAAE,CACR,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,oBAAoB,KACxB,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC;CACjD;AA2BD,wBAAsB,SAAS,CAC7B,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,MAAM,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,eAAe,EAAE,MAAM,MAAM,CAAA;CAAE,EAAE,KAAK,CAAC,CAAC,CAmJzE"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
// The real `makeAdmit` for the consolidate CLI (Stage 3 §5/D1/D5/D6). This is
|
|
2
|
+
// the envelope-owned admit: it assembles the EnvelopeCtx from in-process vault
|
|
3
|
+
// data, calls the pure evaluateEnvelope, owns the §3.7 per-session spend scalar
|
|
4
|
+
// (deduct-on-admit), and journals every loop decision to the shadow log.
|
|
5
|
+
//
|
|
6
|
+
// SCALE (carried concern): the vault docs are NOT loaded here — the caller
|
|
7
|
+
// (index.ts) already walked the vault once via loadDocuments and passes that
|
|
8
|
+
// LoadedDoc[] in. makeAdmit reuses it to build the reverse maps, per-endpoint
|
|
9
|
+
// metadata, and docCount, so there is no second disk walk and no per-file
|
|
10
|
+
// re-read. The only I/O makeAdmit itself does is reading staged actions and
|
|
11
|
+
// tensions ONCE at construction. The returned Admit closure does NO vault walk
|
|
12
|
+
// per call: it computes only blast from cached reverse maps. (Birth admits
|
|
13
|
+
// per-neighbor, so a per-call vault load would be N full walks per doc — which
|
|
14
|
+
// is exactly what reusing the caller's docs avoids.)
|
|
15
|
+
//
|
|
16
|
+
// Because docs/tensions are loaded once (the docs upstream, tensions here at
|
|
17
|
+
// construction), a tension the loop itself logs mid-pass does NOT self-gate
|
|
18
|
+
// later edges in the same run — this matches the plan's "load tensions once"
|
|
19
|
+
// intent.
|
|
20
|
+
import { posix } from "node:path";
|
|
21
|
+
import { computeDecay } from "../curation/decay.js";
|
|
22
|
+
import { recordEnvelopeDecision, shadowBudget, shadowImpact, } from "../curation/shadow.js";
|
|
23
|
+
import { listStagedActions } from "../curation/staged-actions.js";
|
|
24
|
+
import { listTensions } from "../curation/tension.js";
|
|
25
|
+
import { buildReverseLinkMap, buildReverseSourceMap, computeBlast, } from "../curation/tension-blast.js";
|
|
26
|
+
import { ok } from "../frontmatter/types.js";
|
|
27
|
+
import { evaluateEnvelope, } from "./envelope.js";
|
|
28
|
+
// Same canon() the consolidate modules use — the recurring path-aliasing bug
|
|
29
|
+
// class (an alias like `x/../x/a.md` or `./x.md` would miss every keyed map).
|
|
30
|
+
function canon(p) {
|
|
31
|
+
return posix.normalize(p).replace(/^\.\//, "");
|
|
32
|
+
}
|
|
33
|
+
// Map the envelope action type to its journaling tool name.
|
|
34
|
+
function toolFor(action) {
|
|
35
|
+
return action === "edge-observe" ? "vault_edge_observe" : "vault_edge_contest";
|
|
36
|
+
}
|
|
37
|
+
// Builds the admit closure. Async + Result: construction still does I/O —
|
|
38
|
+
// listStagedActions / listTensions are read ONCE here and can fail. (The vault
|
|
39
|
+
// docs are NOT loaded here; the caller passes them in.) The CLI fails CLOSED on
|
|
40
|
+
// a construction error — the envelope must never let Component A auto-write on
|
|
41
|
+
// incomplete information.
|
|
42
|
+
export async function makeAdmit(cfg) {
|
|
43
|
+
const { vaultRoot, principal, docs: loaded } = cfg;
|
|
44
|
+
const journal = cfg.journal ?? recordEnvelopeDecision;
|
|
45
|
+
// Closure-local count of journal-write failures. Mirrors the traceWriteFailures
|
|
46
|
+
// pattern in index.ts: a calibration row that fails to persist is counted and
|
|
47
|
+
// surfaced, never silently dropped.
|
|
48
|
+
let journalFailures = 0;
|
|
49
|
+
// --- per-endpoint metadata, from the caller's already-loaded docs ---
|
|
50
|
+
//
|
|
51
|
+
// No vault walk and no per-file re-read happen here: the LoadedDoc[] the caller
|
|
52
|
+
// passed already carries each doc's coerced frontmatter (for decay) AND its
|
|
53
|
+
// schema-validation report (for provenance), both from the loader's single
|
|
54
|
+
// parse pass. loadDocuments silently drops malformed-YAML docs, so any path
|
|
55
|
+
// absent from `loaded` reads as unknown provenance below (fail closed); a doc
|
|
56
|
+
// present but schema-invalid reads provenanceKnown=false via validation.valid.
|
|
57
|
+
const cachedByPath = new Map();
|
|
58
|
+
for (const d of loaded) {
|
|
59
|
+
const relPath = canon(d.path);
|
|
60
|
+
// The doc parsed cleanly (it's in the load set ⇒ YAML well-formed);
|
|
61
|
+
// validation.valid tells us whether the schema holds (provenance-required,
|
|
62
|
+
// §5.1) — recovered in-memory from the loader's parse, no re-read.
|
|
63
|
+
const provenanceKnown = d.validation.valid;
|
|
64
|
+
cachedByPath.set(relPath, {
|
|
65
|
+
relPath,
|
|
66
|
+
provenanceKnown,
|
|
67
|
+
decayInput: {
|
|
68
|
+
status: d.frontmatter.status,
|
|
69
|
+
confidence: d.frontmatter.confidence,
|
|
70
|
+
updated: d.frontmatter.updated,
|
|
71
|
+
created: d.frontmatter.created,
|
|
72
|
+
ttl_days: d.frontmatter.ttl_days,
|
|
73
|
+
superseded_by: d.frontmatter.superseded_by,
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
// Reverse maps for blast — built from the loaded docs (one source of truth
|
|
78
|
+
// with the tension-blast engine). buildReverse* key on the raw relPaths the
|
|
79
|
+
// loader walked, so blast seeds canonicalize to those keys below.
|
|
80
|
+
const reverseSource = buildReverseSourceMap(loaded);
|
|
81
|
+
const reverseLink = buildReverseLinkMap(loaded);
|
|
82
|
+
const docCount = loaded.length;
|
|
83
|
+
// --- I/O ONCE: live pending staged actions → B₀ queue depth (§5.2) ---
|
|
84
|
+
const pendingRes = await listStagedActions(vaultRoot, "pending");
|
|
85
|
+
if (!pendingRes.ok)
|
|
86
|
+
return pendingRes;
|
|
87
|
+
const nowMs = Date.now();
|
|
88
|
+
const livePending = pendingRes.value.filter((a) => Date.parse(a.expiresAt) > nowMs).length;
|
|
89
|
+
// --- I/O ONCE: unresolved tensions → the tension-respect invariant (§5.1) ---
|
|
90
|
+
const tensionsRes = await listTensions(vaultRoot);
|
|
91
|
+
if (!tensionsRes.ok)
|
|
92
|
+
return tensionsRes;
|
|
93
|
+
const unresolvedTensionPaths = new Set();
|
|
94
|
+
for (const t of tensionsRes.value) {
|
|
95
|
+
if (t.resolved)
|
|
96
|
+
continue;
|
|
97
|
+
unresolvedTensionPaths.add(canon(t.sourceA));
|
|
98
|
+
unresolvedTensionPaths.add(canon(t.sourceB));
|
|
99
|
+
}
|
|
100
|
+
// The §3.7 per-session spend scalar — closure-local, ENVELOPE-owned (D6).
|
|
101
|
+
// NEVER touches shadow's module-global spentByVault.
|
|
102
|
+
let spent = 0;
|
|
103
|
+
// Build an endpoint's invariant state. A canonical relPath not in the cached
|
|
104
|
+
// docs (missing file, or a doc whose YAML was malformed and so was dropped by
|
|
105
|
+
// loadDocuments) reads as unknown provenance — fail closed.
|
|
106
|
+
//
|
|
107
|
+
// v1 scope note: "unknown/broken provenance" here means the doc is missing
|
|
108
|
+
// from the load set or its frontmatter is schema-invalid. Dangling-source
|
|
109
|
+
// detection (an edge endpoint whose `sources` cite a non-vault path) is
|
|
110
|
+
// deferred to Stage 4/5.
|
|
111
|
+
const endpointState = (path) => {
|
|
112
|
+
const cached = cachedByPath.get(path);
|
|
113
|
+
if (!cached) {
|
|
114
|
+
return { path, provenanceKnown: false, decayBlocking: false, hasUnresolvedTension: false };
|
|
115
|
+
}
|
|
116
|
+
const d = computeDecay(cached.decayInput);
|
|
117
|
+
// warn|deprecated block; aging does not (the scarcity rule, §5.1).
|
|
118
|
+
const decayBlocking = d !== null && d.level !== "aging";
|
|
119
|
+
return {
|
|
120
|
+
path,
|
|
121
|
+
provenanceKnown: cached.provenanceKnown,
|
|
122
|
+
decayBlocking,
|
|
123
|
+
hasUnresolvedTension: unresolvedTensionPaths.has(path),
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
const admit = async (a) => {
|
|
127
|
+
const canonFrom = canon(a.fromPath);
|
|
128
|
+
const canonTo = canon(a.toPath);
|
|
129
|
+
const action = a.action;
|
|
130
|
+
const fromState = endpointState(canonFrom);
|
|
131
|
+
const toState = endpointState(canonTo);
|
|
132
|
+
// Blast from cached maps (no disk walk). 1 (the action's own footprint) +
|
|
133
|
+
// unique downstream reach of both endpoints. Seeds are the canonical relPath
|
|
134
|
+
// keys the reverse maps use — which is exactly canon() output here.
|
|
135
|
+
const blast = 1 +
|
|
136
|
+
computeBlast({ seeds: [canonFrom, canonTo], reverseSource, reverseLink }).downstream.length;
|
|
137
|
+
const impact = shadowImpact(action, blast);
|
|
138
|
+
const budget = shadowBudget(livePending, docCount);
|
|
139
|
+
const verdict = evaluateEnvelope({ action, endpoints: [fromState, toState], impact, budget }, spent);
|
|
140
|
+
// Journal the decision (admitted OR gated) to the shadow log. In shadow mode
|
|
141
|
+
// the EDGE STORE write is suppressed by makeObserve; this decision journal
|
|
142
|
+
// runs regardless of shadow mode (the gate decision is identical either way).
|
|
143
|
+
//
|
|
144
|
+
// The journal returns a Result — it is CHECKED, not thrown. A failed journal
|
|
145
|
+
// write loses exactly one calibration row, but it must NOT change the gate
|
|
146
|
+
// verdict or crash the pass: the gate decision and the deduct below proceed
|
|
147
|
+
// unchanged. We count the failure here and surface it via the report instead.
|
|
148
|
+
const res = await journal(vaultRoot, {
|
|
149
|
+
tool: toolFor(action),
|
|
150
|
+
action,
|
|
151
|
+
targetPath: canonFrom,
|
|
152
|
+
touchedPaths: [canonFrom, canonTo],
|
|
153
|
+
agent: principal,
|
|
154
|
+
principal,
|
|
155
|
+
decision: verdict.admit ? "admitted" : "gated",
|
|
156
|
+
...(verdict.gate ? { gate: verdict.gate, gateReason: verdict.reason } : {}),
|
|
157
|
+
impact: verdict.impact,
|
|
158
|
+
budget,
|
|
159
|
+
blast,
|
|
160
|
+
spentBefore: spent,
|
|
161
|
+
commitMessage: `[envelope:${verdict.admit ? "admit" : "gate"}] ${action} ${canonFrom} ← ${canonTo}`,
|
|
162
|
+
});
|
|
163
|
+
if (!res.ok)
|
|
164
|
+
journalFailures++;
|
|
165
|
+
// Deduct on admit (D1): only an admitted action spends. A gated action
|
|
166
|
+
// leaves the budget untouched so a following clean action can still admit.
|
|
167
|
+
// By design: deduction happens here (on the decision), before the caller's
|
|
168
|
+
// observe/contest write — a post-admit storage failure (off-shadow only;
|
|
169
|
+
// the shadow stub never fails) consumes budget even if no edge lands.
|
|
170
|
+
if (verdict.admit)
|
|
171
|
+
spent += verdict.impact;
|
|
172
|
+
return verdict;
|
|
173
|
+
};
|
|
174
|
+
return ok({ admit, journalFailures: () => journalFailures });
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=admit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admit.js","sourceRoot":"","sources":["../../src/consolidate/admit.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,gFAAgF;AAChF,yEAAyE;AACzE,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,4EAA4E;AAC5E,+EAA+E;AAC/E,2EAA2E;AAC3E,+EAA+E;AAC/E,qDAAqD;AACrD,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,UAAU;AAEV,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAEL,sBAAsB,EAEtB,YAAY,EACZ,YAAY,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,GACb,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,EAAE,EAAe,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAKL,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAqBvB,6EAA6E;AAC7E,8EAA8E;AAC9E,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAWD,4DAA4D;AAC5D,SAAS,OAAO,CAAC,MAA0B;IACzC,OAAO,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC;AACjF,CAAC;AAED,0EAA0E;AAC1E,+EAA+E;AAC/E,gFAAgF;AAChF,+EAA+E;AAC/E,0BAA0B;AAC1B,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAgB;IAEhB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACnD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,sBAAsB,CAAC;IAEtD,gFAAgF;IAChF,8EAA8E;IAC9E,oCAAoC;IACpC,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,uEAAuE;IACvE,EAAE;IACF,gFAAgF;IAChF,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,8EAA8E;IAC9E,+EAA+E;IAC/E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqB,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,oEAAoE;QACpE,2EAA2E;QAC3E,mEAAmE;QACnE,MAAM,eAAe,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;QAC3C,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE;YACxB,OAAO;YACP,eAAe;YACf,UAAU,EAAE;gBACV,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM;gBAC5B,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU;gBACpC,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO;gBAC9B,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO;gBAC9B,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ;gBAChC,aAAa,EAAE,CAAC,CAAC,WAAW,CAAC,aAAa;aAC3C;SACF,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,kEAAkE;IAClE,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAE/B,wEAAwE;IACxE,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;IAE3F,+EAA+E;IAC/E,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IACxC,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,QAAQ;YAAE,SAAS;QACzB,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,0EAA0E;IAC1E,qDAAqD;IACrD,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,6EAA6E;IAC7E,8EAA8E;IAC9E,4DAA4D;IAC5D,EAAE;IACF,2EAA2E;IAC3E,0EAA0E;IAC1E,wEAAwE;IACxE,yBAAyB;IACzB,MAAM,aAAa,GAAG,CAAC,IAAY,EAAiB,EAAE;QACpD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;QAC7F,CAAC;QACD,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,mEAAmE;QACnE,MAAM,aAAa,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC;QACxD,OAAO;YACL,IAAI;YACJ,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,aAAa;YACb,oBAAoB,EAAE,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC;SACvD,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,KAAK,GAAU,KAAK,EAAE,CAAC,EAA4B,EAAE;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QAExB,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAEvC,0EAA0E;QAC1E,6EAA6E;QAC7E,oEAAoE;QACpE,MAAM,KAAK,GACT,CAAC;YACD,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAC9F,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,gBAAgB,CAC9B,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAC3D,KAAK,CACN,CAAC;QAEF,6EAA6E;QAC7E,2EAA2E;QAC3E,8EAA8E;QAC9E,EAAE;QACF,6EAA6E;QAC7E,2EAA2E;QAC3E,4EAA4E;QAC5E,8EAA8E;QAC9E,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE;YACnC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;YACrB,MAAM;YACN,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;YAClC,KAAK,EAAE,SAAS;YAChB,SAAS;YACT,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;YAC9C,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM;YACN,KAAK;YACL,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,aAAa,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,SAAS,MAAM,OAAO,EAAE;SACpG,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,eAAe,EAAE,CAAC;QAE/B,uEAAuE;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,yEAAyE;QACzE,sEAAsE;QACtE,IAAI,OAAO,CAAC,KAAK;YAAE,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;QAE3C,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -4,10 +4,12 @@ import type { LlmClient } from "../eval/llm.js";
|
|
|
4
4
|
import { type Result } from "../frontmatter/types.js";
|
|
5
5
|
import { CONSOLIDATE_AGENT, type ConsolidatePromptTemplate } from "./constants.js";
|
|
6
6
|
import { type DerivationVerdict } from "./derivation-prompt.js";
|
|
7
|
+
import type { Admit } from "./envelope.js";
|
|
7
8
|
export interface BirthDeps {
|
|
8
9
|
llm: LlmClient;
|
|
9
10
|
searchNeighbors: (docPath: string, k: number) => Promise<Result<string[], Error>>;
|
|
10
11
|
loadNeighborContent: (path: string) => Promise<Result<string, Error>>;
|
|
12
|
+
admit: Admit;
|
|
11
13
|
observe: (input: ObserveEdgeInput) => Promise<Result<DerivesFromEdge, Error>>;
|
|
12
14
|
recordTension: (input: TensionInput) => Promise<Result<unknown, Error>>;
|
|
13
15
|
recordBirthTrace: (row: BirthTraceRow) => Promise<Result<void, Error>>;
|
|
@@ -25,6 +27,8 @@ export interface BirthVerdict {
|
|
|
25
27
|
direction: "directed" | "symmetric" | "none";
|
|
26
28
|
premise: "doc" | "neighbor" | null;
|
|
27
29
|
reason: string;
|
|
30
|
+
gated?: boolean;
|
|
31
|
+
gate?: "invariants" | "budget" | null;
|
|
28
32
|
}
|
|
29
33
|
export interface BirthVerdictError {
|
|
30
34
|
neighbor: string;
|
|
@@ -48,6 +52,7 @@ export interface BirthOutcome {
|
|
|
48
52
|
from: string;
|
|
49
53
|
to: string;
|
|
50
54
|
}>;
|
|
55
|
+
gatedCount: number;
|
|
51
56
|
llmCalls: number;
|
|
52
57
|
inputTokens: number;
|
|
53
58
|
outputTokens: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"birth.d.ts","sourceRoot":"","sources":["../../src/consolidate/birth.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAGL,KAAK,iBAAiB,EAGvB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"birth.d.ts","sourceRoot":"","sources":["../../src/consolidate/birth.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,6 +76,25 @@ const MAX_DOC_CHARS = 1500;
|
|
|
76
76
|
function truncate(s) {
|
|
77
77
|
return s.length <= MAX_DOC_CHARS ? s : `${s.slice(0, MAX_DOC_CHARS)}\n…[truncated]`;
|
|
78
78
|
}
|
|
79
|
+
// Defensive wrapper around the injected admit. The live makeAdmit (Task 7) does
|
|
80
|
+
// I/O — reads provenance / decay / tension state — so it can throw (network,
|
|
81
|
+
// config, fs). The house style is no-throw from this loop: a thrown admit must
|
|
82
|
+
// NOT crash the whole birth pass (losing every neighbor's verdict + the trace).
|
|
83
|
+
// Treat a throw as a refusal on the invariants gate (fail-closed: never write
|
|
84
|
+
// when the gate couldn't be evaluated), recorded like any other gated outcome.
|
|
85
|
+
async function safeAdmit(admit, action) {
|
|
86
|
+
try {
|
|
87
|
+
return await admit(action);
|
|
88
|
+
}
|
|
89
|
+
catch (e) {
|
|
90
|
+
return {
|
|
91
|
+
admit: false,
|
|
92
|
+
gate: "invariants",
|
|
93
|
+
reason: `admit threw: ${e instanceof Error ? e.message : String(e)}`,
|
|
94
|
+
impact: 0,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
79
98
|
// A non-empty one-line claim snippet for the tension record (addTension rejects
|
|
80
99
|
// empty claims). Falls back to the path when the content is blank.
|
|
81
100
|
function claimSnippet(content, fallback) {
|
|
@@ -94,6 +113,7 @@ export async function birthOne(doc, deps, opts) {
|
|
|
94
113
|
const neighbors = neighborsRes.value.map(canon).filter((n) => n !== docPath);
|
|
95
114
|
const verdicts = [];
|
|
96
115
|
const observations = [];
|
|
116
|
+
let gatedCount = 0;
|
|
97
117
|
let llmCalls = 0;
|
|
98
118
|
let inputTokens = 0;
|
|
99
119
|
let outputTokens = 0;
|
|
@@ -157,6 +177,26 @@ export async function birthOne(doc, deps, opts) {
|
|
|
157
177
|
// Premise is materialized on `to` (clocks: from depends on to). doc-premise
|
|
158
178
|
// ⇒ to=doc, from=neighbor; neighbor-premise ⇒ to=neighbor, from=doc.
|
|
159
179
|
const [from, to] = outcome.premise === "doc" ? [neighbor, docPath] : [docPath, neighbor];
|
|
180
|
+
// Consult the envelope ONCE for this neighbor's edge-action. On refuse:
|
|
181
|
+
// record a gated verdict, count it, and skip the write entirely.
|
|
182
|
+
const verdict = await safeAdmit(deps.admit, {
|
|
183
|
+
action: "edge-observe",
|
|
184
|
+
fromPath: from,
|
|
185
|
+
toPath: to,
|
|
186
|
+
});
|
|
187
|
+
if (!verdict.admit) {
|
|
188
|
+
verdicts.push({
|
|
189
|
+
neighbor,
|
|
190
|
+
related: true,
|
|
191
|
+
direction: "directed",
|
|
192
|
+
premise: outcome.premise,
|
|
193
|
+
reason,
|
|
194
|
+
gated: true,
|
|
195
|
+
gate: verdict.gate,
|
|
196
|
+
});
|
|
197
|
+
gatedCount++;
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
160
200
|
verdicts.push({
|
|
161
201
|
neighbor,
|
|
162
202
|
related: true,
|
|
@@ -184,6 +224,27 @@ export async function birthOne(doc, deps, opts) {
|
|
|
184
224
|
// re-observation lands on the same key, plus an interpretive tension.
|
|
185
225
|
const [from, to] = [docPath, neighbor].sort();
|
|
186
226
|
const which = outcome.contested ? "contested" : "mutual";
|
|
227
|
+
// Consult the envelope ONCE for this neighbor's edge-action. On refuse:
|
|
228
|
+
// record a gated verdict, count it, and skip BOTH the observe AND the
|
|
229
|
+
// direction-pending tension (no write of any kind).
|
|
230
|
+
const symVerdict = await safeAdmit(deps.admit, {
|
|
231
|
+
action: "edge-observe",
|
|
232
|
+
fromPath: from,
|
|
233
|
+
toPath: to,
|
|
234
|
+
});
|
|
235
|
+
if (!symVerdict.admit) {
|
|
236
|
+
verdicts.push({
|
|
237
|
+
neighbor,
|
|
238
|
+
related: true,
|
|
239
|
+
direction: "symmetric",
|
|
240
|
+
premise: null,
|
|
241
|
+
reason,
|
|
242
|
+
gated: true,
|
|
243
|
+
gate: symVerdict.gate,
|
|
244
|
+
});
|
|
245
|
+
gatedCount++;
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
187
248
|
verdicts.push({ neighbor, related: true, direction: "symmetric", premise: null, reason });
|
|
188
249
|
const obs = await deps.observe({
|
|
189
250
|
fromPath: from,
|
|
@@ -227,6 +288,7 @@ export async function birthOne(doc, deps, opts) {
|
|
|
227
288
|
neighbors,
|
|
228
289
|
verdicts,
|
|
229
290
|
observations,
|
|
291
|
+
gatedCount,
|
|
230
292
|
llmCalls,
|
|
231
293
|
inputTokens,
|
|
232
294
|
outputTokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"birth.js","sourceRoot":"","sources":["../../src/consolidate/birth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"birth.js","sourceRoot":"","sources":["../../src/consolidate/birth.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { type Result } from "../frontmatter/types.js";
|
|
|
3
3
|
export interface EdgeWriteConfig {
|
|
4
4
|
vaultRoot: string;
|
|
5
5
|
shadowMode: boolean;
|
|
6
|
-
principal?: string;
|
|
7
6
|
}
|
|
8
7
|
export declare function makeObserve(config: EdgeWriteConfig): (input: ObserveEdgeInput) => Promise<Result<DerivesFromEdge, Error>>;
|
|
9
8
|
export declare function makeContest(config: EdgeWriteConfig): (input: ContestEdgeInput) => Promise<Result<DerivesFromEdge, Error>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-write.d.ts","sourceRoot":"","sources":["../../src/consolidate/edge-write.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"edge-write.d.ts","sourceRoot":"","sources":["../../src/consolidate/edge-write.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAiCD,wBAAgB,WAAW,CACzB,MAAM,EAAE,eAAe,GACtB,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAStE;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,eAAe,GACtB,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAOtE"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
// Shadow-aware wrappers around observeEdge / contestEdge for the consolidation
|
|
2
2
|
// loop (spec §5.3, brief item 5). When the vault runs `shadow_mode: true`,
|
|
3
|
-
// these factories
|
|
4
|
-
//
|
|
5
|
-
// When shadow is off, they fall through to the live store.
|
|
3
|
+
// these factories return a synthetic stub edge and touch NOTHING — no edge
|
|
4
|
+
// store, no journal. When shadow is off, they fall through to the live store.
|
|
6
5
|
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
6
|
+
// Journaling used to live here (recordShadowAction). It moved out (Stage 3,
|
|
7
|
+
// decision D6): the calibration journal is now written by the CLI's admit
|
|
8
|
+
// wrapper, which owns the envelope's budget accounting. The loop must NOT
|
|
9
|
+
// advance the shared spentByVault, so edge-write must not record an action
|
|
10
|
+
// the way the live MCP tools do.
|
|
11
|
+
//
|
|
12
|
+
// The CLI is the ONLY caller — birth.ts and revision.ts receive `observe` /
|
|
13
|
+
// `contest` via dependency injection and don't know which path they're on.
|
|
14
|
+
// That keeps the unit tests for those modules hermetic (no fs, no shadow
|
|
15
|
+
// config), and concentrates the live-vs-shadow branch here.
|
|
11
16
|
import { contestEdge, observeEdge, } from "../curation/edges.js";
|
|
12
|
-
import { recordShadowAction } from "../curation/shadow.js";
|
|
13
17
|
import { ok } from "../frontmatter/types.js";
|
|
14
18
|
// In shadow mode we return a synthetic DerivesFromEdge so the caller's
|
|
15
19
|
// success/error branch (which only checks `ok` + counts) works the same.
|
|
@@ -29,29 +33,19 @@ function stubEdge(fromPath, toPath, at, status, contestReason) {
|
|
|
29
33
|
contestReason,
|
|
30
34
|
};
|
|
31
35
|
}
|
|
36
|
+
// Shadow-mode timestamp for the synthetic stub. Matches the edge store's
|
|
37
|
+
// second-resolution ISO format so the stub is shape-compatible.
|
|
38
|
+
function nowIso() {
|
|
39
|
+
return new Date().toISOString().replace(/\.\d{3}Z$/, "Z");
|
|
40
|
+
}
|
|
32
41
|
export function makeObserve(config) {
|
|
33
42
|
return async (input) => {
|
|
34
43
|
if (!config.shadowMode) {
|
|
35
44
|
return observeEdge(config.vaultRoot, input);
|
|
36
45
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
// targetPath drives the blast computation (downstream reach via reverse
|
|
41
|
-
// link/source maps). The FROM doc is the right seed: strengthening
|
|
42
|
-
// from→to could re-trigger anything downstream of `from`.
|
|
43
|
-
targetPath: input.fromPath,
|
|
44
|
-
touchedPaths: [input.fromPath, input.toPath],
|
|
45
|
-
agent: input.observedBy,
|
|
46
|
-
...(config.principal ? { principal: config.principal } : {}),
|
|
47
|
-
// Carry premiseVote in the message so the calibration journal can
|
|
48
|
-
// reconstruct direction (directed-to vs symmetric/pending) — shadow mode
|
|
49
|
-
// is where this feature is calibrated, so the signal must not be erased.
|
|
50
|
-
commitMessage: `[shadow] edge_observe ${input.fromPath} ← ${input.toPath} [premise:${input.premiseVote ?? "n/a"}]${input.note ? ` (${input.note})` : ""}`,
|
|
51
|
-
});
|
|
52
|
-
if (!shadowRes.ok)
|
|
53
|
-
return shadowRes;
|
|
54
|
-
return ok(stubEdge(input.fromPath, input.toPath, shadowRes.value.at, "candidate", null));
|
|
46
|
+
// Shadow mode: advance nothing. Return the stub so the caller's success
|
|
47
|
+
// branch (which keys on `ok` + counts, not the row contents) is satisfied.
|
|
48
|
+
return ok(stubEdge(input.fromPath, input.toPath, nowIso(), "candidate", null));
|
|
55
49
|
};
|
|
56
50
|
}
|
|
57
51
|
export function makeContest(config) {
|
|
@@ -59,18 +53,7 @@ export function makeContest(config) {
|
|
|
59
53
|
if (!config.shadowMode) {
|
|
60
54
|
return contestEdge(config.vaultRoot, input);
|
|
61
55
|
}
|
|
62
|
-
|
|
63
|
-
tool: "vault_edge_contest",
|
|
64
|
-
action: "edge-contest",
|
|
65
|
-
targetPath: input.fromPath,
|
|
66
|
-
touchedPaths: [input.fromPath, input.toPath],
|
|
67
|
-
agent: input.contestedBy,
|
|
68
|
-
...(config.principal ? { principal: config.principal } : {}),
|
|
69
|
-
commitMessage: `[shadow] edge_contest ${input.fromPath} ← ${input.toPath}: ${input.reason}`,
|
|
70
|
-
});
|
|
71
|
-
if (!shadowRes.ok)
|
|
72
|
-
return shadowRes;
|
|
73
|
-
return ok(stubEdge(input.fromPath, input.toPath, shadowRes.value.at, "revoked", input.reason));
|
|
56
|
+
return ok(stubEdge(input.fromPath, input.toPath, nowIso(), "revoked", input.reason));
|
|
74
57
|
};
|
|
75
58
|
}
|
|
76
59
|
//# sourceMappingURL=edge-write.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-write.js","sourceRoot":"","sources":["../../src/consolidate/edge-write.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2EAA2E;AAC3E,
|
|
1
|
+
{"version":3,"file":"edge-write.js","sourceRoot":"","sources":["../../src/consolidate/edge-write.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2EAA2E;AAC3E,2EAA2E;AAC3E,8EAA8E;AAC9E,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,2EAA2E;AAC3E,iCAAiC;AACjC,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,4DAA4D;AAE5D,OAAO,EAEL,WAAW,EAGX,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAe,MAAM,yBAAyB,CAAC;AAO1D,uEAAuE;AACvE,yEAAyE;AACzE,+DAA+D;AAC/D,SAAS,QAAQ,CACf,QAAgB,EAChB,MAAc,EACd,EAAU,EACV,MAA+B,EAC/B,aAA4B;IAE5B,OAAO;QACL,QAAQ;QACR,MAAM;QACN,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;QACjB,MAAM;QACN,gBAAgB,EAAE,UAAU;QAC5B,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QAC7C,aAAa;KACd,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,gEAAgE;AAChE,SAAS,MAAM;IACb,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,MAAuB;IAEvB,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,wEAAwE;QACxE,2EAA2E;QAC3E,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,MAAuB;IAEvB,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type EnvelopeActionType = "edge-observe" | "edge-contest";
|
|
2
|
+
export interface EndpointState {
|
|
3
|
+
path: string;
|
|
4
|
+
provenanceKnown: boolean;
|
|
5
|
+
decayBlocking: boolean;
|
|
6
|
+
hasUnresolvedTension: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface EnvelopeCtx {
|
|
9
|
+
action: EnvelopeActionType;
|
|
10
|
+
endpoints: EndpointState[];
|
|
11
|
+
impact: number;
|
|
12
|
+
budget: number;
|
|
13
|
+
}
|
|
14
|
+
export interface EnvelopeVerdict {
|
|
15
|
+
admit: boolean;
|
|
16
|
+
gate: "invariants" | "budget" | null;
|
|
17
|
+
reason: string;
|
|
18
|
+
impact: number;
|
|
19
|
+
}
|
|
20
|
+
export interface EnvelopeAction {
|
|
21
|
+
action: EnvelopeActionType;
|
|
22
|
+
fromPath: string;
|
|
23
|
+
toPath: string;
|
|
24
|
+
}
|
|
25
|
+
export type Admit = (a: EnvelopeAction) => Promise<EnvelopeVerdict>;
|
|
26
|
+
export declare function evaluateEnvelope(ctx: EnvelopeCtx, spent: number): EnvelopeVerdict;
|
|
27
|
+
//# sourceMappingURL=envelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/consolidate/envelope.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,cAAc,CAAC;AAQjE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IAEb,eAAe,EAAE,OAAO,CAAC;IAIzB,aAAa,EAAE,OAAO,CAAC;IAEvB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAEpE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAoFjF"}
|