@remnic/core 9.65.5 → 9.65.6
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/dist/access-admin-ops-surface.js +24 -24
- package/dist/access-audit.js +2 -2
- package/dist/access-authorization-probe.js +25 -25
- package/dist/access-boundary.js +24 -24
- package/dist/access-cli.js +69 -68
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.js +24 -24
- package/dist/access-http-query.js +26 -26
- package/dist/access-http.js +37 -37
- package/dist/access-identity-continuity-surface.js +24 -24
- package/dist/access-lcm-surface.js +24 -24
- package/dist/access-mcp.js +30 -30
- package/dist/access-namespace-preflight.js +24 -24
- package/dist/access-observe-write-surface.js +24 -24
- package/dist/access-operations-batch.js +26 -26
- package/dist/access-operations.js +29 -29
- package/dist/access-recall-concurrency.js +24 -24
- package/dist/access-recall-response.js +24 -24
- package/dist/access-recall-surface.js +24 -24
- package/dist/access-schema.js +3 -3
- package/dist/access-service.js +24 -24
- package/dist/access-surface-catalog.js +26 -26
- package/dist/briefing.js +10 -10
- package/dist/{capsule-crypto-YO5QJ6L3.js → capsule-crypto-GWVG7LGC.js} +2 -2
- package/dist/causal-consolidation.js +11 -11
- package/dist/{chunk-YB4GBWBU.js → chunk-2JHRCWHT.js} +37 -37
- package/dist/{chunk-BK5G2MHO.js → chunk-2RXUZVPU.js} +2 -2
- package/dist/{chunk-JPAKBNTM.js → chunk-3I22VWB3.js} +2 -2
- package/dist/{chunk-ECLJ4LA2.js → chunk-53MZQEBD.js} +2 -2
- package/dist/{chunk-HF5BUTI6.js → chunk-5GIZM4RX.js} +2 -2
- package/dist/{chunk-2EPOGPKO.js → chunk-5TG4MU2U.js} +4 -4
- package/dist/{chunk-VDX2J7OX.js → chunk-5W7CTZ2E.js} +4 -4
- package/dist/{chunk-N56GVOWR.js → chunk-5W7MKXMU.js} +4 -4
- package/dist/{chunk-YHCBJULX.js → chunk-6FUMA6AA.js} +2 -2
- package/dist/{chunk-THVI4Y7X.js → chunk-6LS5OX3U.js} +5 -5
- package/dist/{chunk-TVVEYCNW.js → chunk-7K5Q6COX.js} +4 -4
- package/dist/{chunk-OWQNJJY2.js → chunk-7OZSHBWK.js} +2 -2
- package/dist/{chunk-CQBIN77D.js → chunk-7SSRXEZJ.js} +2 -2
- package/dist/{chunk-NNBZS3DY.js → chunk-AG46P24C.js} +4 -4
- package/dist/{chunk-NH6LC57D.js → chunk-AYAZWXJI.js} +2 -2
- package/dist/{chunk-WDXD6ITO.js → chunk-BXXOPKT5.js} +2 -2
- package/dist/{chunk-DJZWNKFO.js → chunk-D35XLYQ7.js} +10 -10
- package/dist/{chunk-KOO37E4Y.js → chunk-DYO24BNB.js} +2 -2
- package/dist/{chunk-DORFF5N5.js → chunk-FEO2CDXR.js} +2 -2
- package/dist/{chunk-IURMJBGP.js → chunk-HWVNYNIV.js} +2 -2
- package/dist/{chunk-OZDFB22S.js → chunk-IDQ6DKXC.js} +3 -3
- package/dist/{chunk-J3ATBB7M.js → chunk-IF4EY26E.js} +2 -2
- package/dist/{chunk-W675UJCZ.js → chunk-IRXMJLTW.js} +2 -2
- package/dist/{chunk-DUZARALI.js → chunk-JFWZRUKP.js} +3 -3
- package/dist/{chunk-DUEDOYZD.js → chunk-JGG5HVI2.js} +2 -2
- package/dist/{chunk-3NH3VP3U.js → chunk-KBOG7FJV.js} +2 -2
- package/dist/{chunk-UCKG36HO.js → chunk-LSYD7GHZ.js} +2 -2
- package/dist/{chunk-6433HV72.js → chunk-MVIYRRVJ.js} +5 -5
- package/dist/{chunk-FBR7PIL4.js → chunk-NLUCDKLT.js} +2 -2
- package/dist/{chunk-TJFI3K2O.js → chunk-O4BAGJDN.js} +2 -2
- package/dist/{chunk-LYBIHM4N.js → chunk-OMZLBT4B.js} +4 -4
- package/dist/{chunk-BXLOS5AJ.js → chunk-OWHERGF2.js} +2 -2
- package/dist/{chunk-BW4GAF57.js → chunk-PGW64IFQ.js} +2 -2
- package/dist/{chunk-CV3GNPOE.js → chunk-PNAGNVGK.js} +17 -17
- package/dist/{chunk-YDKF4MSJ.js → chunk-QMZY3GG6.js} +3 -3
- package/dist/{chunk-N37X5RU7.js → chunk-RACZB5HT.js} +4 -4
- package/dist/{chunk-YZJM6CLF.js → chunk-ROEAEANL.js} +7 -7
- package/dist/{chunk-KTPXXVDQ.js → chunk-RQ2EQRRR.js} +4 -4
- package/dist/chunk-SDEPLF7V.js +325 -0
- package/dist/chunk-SDEPLF7V.js.map +1 -0
- package/dist/{chunk-2IXQSGCU.js → chunk-SR7JIRAR.js} +2 -2
- package/dist/{chunk-OCCHUEZB.js → chunk-TWBQQ3FT.js} +2 -2
- package/dist/{chunk-NLEH4RTB.js → chunk-US4IRASK.js} +2 -2
- package/dist/{chunk-DQEMWVMT.js → chunk-UVYI6VIX.js} +1 -1
- package/dist/{chunk-IIRCHGWD.js → chunk-W6J4POB6.js} +2 -2
- package/dist/{chunk-4JSF7UUP.js → chunk-X2DWBWOX.js} +2 -2
- package/dist/{chunk-2MVTAIL3.js → chunk-XAWIL7TC.js} +2 -2
- package/dist/{chunk-UFR6HX7A.js → chunk-XUZ5CIEE.js} +1 -1
- package/dist/{chunk-GIC6BASP.js → chunk-XZBXINXZ.js} +4 -4
- package/dist/{chunk-BA2GLSIP.js → chunk-YUTTMSC7.js} +13 -13
- package/dist/{chunk-DPGH6LHQ.js → chunk-YWBOOBDP.js} +38 -38
- package/dist/{chunk-KFIOPZ25.js → chunk-ZXUZ54Z5.js} +2 -2
- package/dist/cli.d.ts +2 -2
- package/dist/cli.js +53 -53
- package/dist/compounding/engine.js +10 -10
- package/dist/connectors/codex-materialize-runner.js +10 -10
- package/dist/connectors/index.js +10 -10
- package/dist/convergence-refresh.js +12 -12
- package/dist/corpus-watermark.js +12 -12
- package/dist/entity-retrieval.js +10 -10
- package/dist/external-wiki-access.js +25 -25
- package/dist/extraction.js +10 -10
- package/dist/harmonic-retrieval.js +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +92 -76
- package/dist/lcm/index.js +3 -3
- package/dist/maintenance/memory-governance.js +10 -10
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +10 -10
- package/dist/maintenance/rebuild-memory-projection.js +11 -11
- package/dist/memory-controller.d.ts +203 -0
- package/dist/memory-controller.js +23 -0
- package/dist/memory-controller.js.map +1 -0
- package/dist/namespaces/migrate.js +11 -11
- package/dist/namespaces/search.js +7 -7
- package/dist/namespaces/storage.js +10 -10
- package/dist/operator-doctor-corpus.js +13 -13
- package/dist/operator-toolkit.js +18 -18
- package/dist/orchestration/maintenance.js +16 -16
- package/dist/orchestrator.js +69 -68
- package/dist/search/factory.js +6 -6
- package/dist/search/index.js +11 -11
- package/dist/search/lancedb-backend.js +2 -2
- package/dist/search/meilisearch-backend.js +2 -2
- package/dist/search/orama-backend.js +2 -2
- package/dist/semantic-consolidation.js +11 -11
- package/dist/semantic-rule-promotion.js +10 -10
- package/dist/semantic-rule-verifier.js +10 -10
- package/dist/source-agent-qualifier.js +10 -10
- package/dist/storage.js +9 -9
- package/dist/support-passport/index.js +27 -27
- package/dist/transfer/backup.js +2 -2
- package/dist/transfer/capsule-export.js +2 -2
- package/dist/transfer/capsule-import.js +2 -2
- package/dist/verified-recall.js +10 -10
- package/dist/who-knows-cli.js +11 -11
- package/dist/who-knows.js +10 -10
- package/package.json +2 -2
- package/src/index.ts +3 -0
- package/src/memory-controller.test.ts +347 -0
- package/src/memory-controller.ts +547 -0
- package/dist/{capsule-crypto-YO5QJ6L3.js.map → capsule-crypto-GWVG7LGC.js.map} +0 -0
- package/dist/{chunk-YB4GBWBU.js.map → chunk-2JHRCWHT.js.map} +0 -0
- package/dist/{chunk-BK5G2MHO.js.map → chunk-2RXUZVPU.js.map} +0 -0
- package/dist/{chunk-JPAKBNTM.js.map → chunk-3I22VWB3.js.map} +0 -0
- package/dist/{chunk-ECLJ4LA2.js.map → chunk-53MZQEBD.js.map} +0 -0
- package/dist/{chunk-HF5BUTI6.js.map → chunk-5GIZM4RX.js.map} +0 -0
- package/dist/{chunk-2EPOGPKO.js.map → chunk-5TG4MU2U.js.map} +0 -0
- package/dist/{chunk-VDX2J7OX.js.map → chunk-5W7CTZ2E.js.map} +0 -0
- package/dist/{chunk-N56GVOWR.js.map → chunk-5W7MKXMU.js.map} +0 -0
- package/dist/{chunk-YHCBJULX.js.map → chunk-6FUMA6AA.js.map} +0 -0
- package/dist/{chunk-THVI4Y7X.js.map → chunk-6LS5OX3U.js.map} +0 -0
- package/dist/{chunk-TVVEYCNW.js.map → chunk-7K5Q6COX.js.map} +0 -0
- package/dist/{chunk-OWQNJJY2.js.map → chunk-7OZSHBWK.js.map} +0 -0
- package/dist/{chunk-CQBIN77D.js.map → chunk-7SSRXEZJ.js.map} +0 -0
- package/dist/{chunk-NNBZS3DY.js.map → chunk-AG46P24C.js.map} +0 -0
- package/dist/{chunk-NH6LC57D.js.map → chunk-AYAZWXJI.js.map} +0 -0
- package/dist/{chunk-WDXD6ITO.js.map → chunk-BXXOPKT5.js.map} +0 -0
- package/dist/{chunk-DJZWNKFO.js.map → chunk-D35XLYQ7.js.map} +0 -0
- package/dist/{chunk-KOO37E4Y.js.map → chunk-DYO24BNB.js.map} +0 -0
- package/dist/{chunk-DORFF5N5.js.map → chunk-FEO2CDXR.js.map} +0 -0
- package/dist/{chunk-IURMJBGP.js.map → chunk-HWVNYNIV.js.map} +0 -0
- package/dist/{chunk-OZDFB22S.js.map → chunk-IDQ6DKXC.js.map} +0 -0
- package/dist/{chunk-J3ATBB7M.js.map → chunk-IF4EY26E.js.map} +0 -0
- package/dist/{chunk-W675UJCZ.js.map → chunk-IRXMJLTW.js.map} +0 -0
- package/dist/{chunk-DUZARALI.js.map → chunk-JFWZRUKP.js.map} +0 -0
- package/dist/{chunk-DUEDOYZD.js.map → chunk-JGG5HVI2.js.map} +0 -0
- package/dist/{chunk-3NH3VP3U.js.map → chunk-KBOG7FJV.js.map} +0 -0
- package/dist/{chunk-UCKG36HO.js.map → chunk-LSYD7GHZ.js.map} +0 -0
- package/dist/{chunk-6433HV72.js.map → chunk-MVIYRRVJ.js.map} +0 -0
- package/dist/{chunk-FBR7PIL4.js.map → chunk-NLUCDKLT.js.map} +0 -0
- package/dist/{chunk-TJFI3K2O.js.map → chunk-O4BAGJDN.js.map} +0 -0
- package/dist/{chunk-LYBIHM4N.js.map → chunk-OMZLBT4B.js.map} +0 -0
- package/dist/{chunk-BXLOS5AJ.js.map → chunk-OWHERGF2.js.map} +0 -0
- package/dist/{chunk-BW4GAF57.js.map → chunk-PGW64IFQ.js.map} +0 -0
- package/dist/{chunk-CV3GNPOE.js.map → chunk-PNAGNVGK.js.map} +0 -0
- package/dist/{chunk-YDKF4MSJ.js.map → chunk-QMZY3GG6.js.map} +0 -0
- package/dist/{chunk-N37X5RU7.js.map → chunk-RACZB5HT.js.map} +0 -0
- package/dist/{chunk-YZJM6CLF.js.map → chunk-ROEAEANL.js.map} +0 -0
- package/dist/{chunk-KTPXXVDQ.js.map → chunk-RQ2EQRRR.js.map} +0 -0
- package/dist/{chunk-2IXQSGCU.js.map → chunk-SR7JIRAR.js.map} +0 -0
- package/dist/{chunk-OCCHUEZB.js.map → chunk-TWBQQ3FT.js.map} +0 -0
- package/dist/{chunk-NLEH4RTB.js.map → chunk-US4IRASK.js.map} +0 -0
- package/dist/{chunk-DQEMWVMT.js.map → chunk-UVYI6VIX.js.map} +0 -0
- package/dist/{chunk-IIRCHGWD.js.map → chunk-W6J4POB6.js.map} +0 -0
- package/dist/{chunk-4JSF7UUP.js.map → chunk-X2DWBWOX.js.map} +0 -0
- package/dist/{chunk-2MVTAIL3.js.map → chunk-XAWIL7TC.js.map} +0 -0
- package/dist/{chunk-UFR6HX7A.js.map → chunk-XUZ5CIEE.js.map} +0 -0
- package/dist/{chunk-GIC6BASP.js.map → chunk-XZBXINXZ.js.map} +0 -0
- package/dist/{chunk-BA2GLSIP.js.map → chunk-YUTTMSC7.js.map} +0 -0
- package/dist/{chunk-DPGH6LHQ.js.map → chunk-YWBOOBDP.js.map} +0 -0
- package/dist/{chunk-KFIOPZ25.js.map → chunk-ZXUZ54Z5.js.map} +0 -0
- package/dist/{cli-BqdqPdG_.d.ts → cli-Bfgo0n1L.d.ts} +1 -1
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import {
|
|
2
|
+
evaluateMemoryActionPolicy
|
|
3
|
+
} from "./chunk-H63EDPFJ.js";
|
|
4
|
+
import {
|
|
5
|
+
planRecallMode
|
|
6
|
+
} from "./chunk-CSAKJVXW.js";
|
|
7
|
+
|
|
8
|
+
// src/memory-controller.ts
|
|
9
|
+
import { createHash, randomUUID } from "crypto";
|
|
10
|
+
var NO_OP_FLOOR = 0.35;
|
|
11
|
+
var REVIEW_ONLY_ACTIONS = { discard: true };
|
|
12
|
+
function controllerConfigHash(config) {
|
|
13
|
+
return sha256(
|
|
14
|
+
JSON.stringify({
|
|
15
|
+
mode: config.mode,
|
|
16
|
+
reportVersion: config.reportVersion,
|
|
17
|
+
evidenceMaxAgeMs: config.evidenceMaxAgeMs,
|
|
18
|
+
minPairedSeeds: config.minPairedSeeds,
|
|
19
|
+
shadowMinRecords: config.shadowMinRecords
|
|
20
|
+
})
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
function hashControllerState(state) {
|
|
24
|
+
return sha256(
|
|
25
|
+
JSON.stringify({
|
|
26
|
+
prompt: state.prompt,
|
|
27
|
+
persistentMemoryCandidate: state.persistentMemoryCandidate ?? null,
|
|
28
|
+
contextMessages: state.contextMessages ?? null,
|
|
29
|
+
contextPressure: state.contextPressure ?? null
|
|
30
|
+
})
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
function computeEvidenceReportHash(fields) {
|
|
34
|
+
return sha256(JSON.stringify(fields));
|
|
35
|
+
}
|
|
36
|
+
function verifyEvidenceReport(report) {
|
|
37
|
+
return computeEvidenceReportHash({
|
|
38
|
+
status: report.status,
|
|
39
|
+
version: report.version,
|
|
40
|
+
configHash: report.configHash,
|
|
41
|
+
generatedAt: report.generatedAt
|
|
42
|
+
}) === report.reportHash;
|
|
43
|
+
}
|
|
44
|
+
function sha256(input) {
|
|
45
|
+
return createHash("sha256").update(input).digest("hex");
|
|
46
|
+
}
|
|
47
|
+
function clampScore(value) {
|
|
48
|
+
if (!Number.isFinite(value)) return Number.NaN;
|
|
49
|
+
return Math.max(0, Math.min(1, value));
|
|
50
|
+
}
|
|
51
|
+
function chooseAction(input) {
|
|
52
|
+
const { state, activeContextAdapter, runtimeValues, utilityValues } = input;
|
|
53
|
+
const recallMode = planRecallMode(state.prompt ?? "");
|
|
54
|
+
const recallScore = recallMode === "no_recall" ? 0 : recallMode === "minimal" ? 0.4 : 0.6 + 0.2 * (runtimeValues?.recencyWeight ?? 0);
|
|
55
|
+
let persistentScore = 0;
|
|
56
|
+
const candidate = state.persistentMemoryCandidate;
|
|
57
|
+
if (candidate) {
|
|
58
|
+
const policy = evaluateMemoryActionPolicy({
|
|
59
|
+
action: candidate.action,
|
|
60
|
+
eligibility: candidate.eligibility,
|
|
61
|
+
options: { actionsEnabled: true, maxCompressionTokensPerHour: Number.POSITIVE_INFINITY }
|
|
62
|
+
});
|
|
63
|
+
if (policy.decision === "allow") {
|
|
64
|
+
persistentScore = 0.4 + 0.4 * (candidate.eligibility.confidence ?? 0);
|
|
65
|
+
} else if (policy.decision === "defer") {
|
|
66
|
+
persistentScore = 0.2;
|
|
67
|
+
}
|
|
68
|
+
if (utilityValues && utilityValues.rankingSuppressMultiplier > 1) {
|
|
69
|
+
persistentScore *= 1 / utilityValues.rankingSuppressMultiplier;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
let contextScore = 0;
|
|
73
|
+
let contextPlan = null;
|
|
74
|
+
const pressure = state.contextPressure;
|
|
75
|
+
if (activeContextAdapter && typeof pressure === "number" && Number.isFinite(pressure) && pressure > 0.5) {
|
|
76
|
+
contextPlan = activeContextAdapter.plan(state.contextMessages ?? []);
|
|
77
|
+
if (contextPlan && contextPlan.messageIds.length > 0) {
|
|
78
|
+
contextScore = 0.3 + 0.5 * Math.max(0, Math.min(1, pressure));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const scores = {
|
|
82
|
+
recall: clampScore(recallScore),
|
|
83
|
+
persistent_memory: clampScore(persistentScore),
|
|
84
|
+
active_context: clampScore(contextScore),
|
|
85
|
+
no_op: NO_OP_FLOOR
|
|
86
|
+
};
|
|
87
|
+
if (Object.values(scores).some((score) => !Number.isFinite(score) || score < 0 || score > 1)) {
|
|
88
|
+
return { choice: { family: "no_op" }, scores };
|
|
89
|
+
}
|
|
90
|
+
let choice = { family: "no_op" };
|
|
91
|
+
let best = scores.no_op;
|
|
92
|
+
if (scores.recall > best) {
|
|
93
|
+
best = scores.recall;
|
|
94
|
+
choice = { family: "recall", mode: recallMode };
|
|
95
|
+
}
|
|
96
|
+
if (scores.persistent_memory > best) {
|
|
97
|
+
best = scores.persistent_memory;
|
|
98
|
+
choice = {
|
|
99
|
+
family: "persistent_memory",
|
|
100
|
+
action: candidate.action,
|
|
101
|
+
eligibility: candidate.eligibility
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
if (scores.active_context > best) {
|
|
105
|
+
choice = { family: "active_context", plan: contextPlan };
|
|
106
|
+
}
|
|
107
|
+
return { choice, scores };
|
|
108
|
+
}
|
|
109
|
+
async function evaluateActiveGates(input) {
|
|
110
|
+
const { config, reportReader, recorder, consecutiveReceiptFailures, now } = input;
|
|
111
|
+
const reasons = [];
|
|
112
|
+
if (!reportReader) return ["no_report_reader"];
|
|
113
|
+
const evidence = await reportReader.read();
|
|
114
|
+
if (!evidence) return ["no_evidence"];
|
|
115
|
+
const { report, pairedSeed } = evidence;
|
|
116
|
+
if (report.status !== "pass") reasons.push("report_not_passing");
|
|
117
|
+
if (report.version !== config.reportVersion) reasons.push("report_version_mismatch");
|
|
118
|
+
if (report.configHash !== controllerConfigHash(config)) reasons.push("report_config_unbound");
|
|
119
|
+
if (!verifyEvidenceReport(report)) reasons.push("report_hash_invalid");
|
|
120
|
+
const reportGeneratedAt = Date.parse(report.generatedAt);
|
|
121
|
+
if (!Number.isFinite(reportGeneratedAt) || now.getTime() - reportGeneratedAt > config.evidenceMaxAgeMs) {
|
|
122
|
+
reasons.push("report_stale");
|
|
123
|
+
}
|
|
124
|
+
if (pairedSeed.status !== "pass") reasons.push("paired_seed_not_passing");
|
|
125
|
+
if (pairedSeed.seedCount < config.minPairedSeeds) reasons.push("paired_seed_count_low");
|
|
126
|
+
const seedGeneratedAt = Date.parse(pairedSeed.generatedAt);
|
|
127
|
+
if (!Number.isFinite(seedGeneratedAt) || now.getTime() - seedGeneratedAt > config.evidenceMaxAgeMs) {
|
|
128
|
+
reasons.push("paired_seed_stale");
|
|
129
|
+
}
|
|
130
|
+
const shadowRecords = recorder ? await recorder.countShadowRecords() : 0;
|
|
131
|
+
if (shadowRecords < config.shadowMinRecords) reasons.push("shadow_history_insufficient");
|
|
132
|
+
if (consecutiveReceiptFailures > 0) reasons.push("recent_receipt_failures");
|
|
133
|
+
return reasons;
|
|
134
|
+
}
|
|
135
|
+
var MemoryControllerCoordinator = class {
|
|
136
|
+
deps;
|
|
137
|
+
clock;
|
|
138
|
+
consecutiveReceiptFailures = 0;
|
|
139
|
+
constructor(deps) {
|
|
140
|
+
this.deps = deps;
|
|
141
|
+
this.clock = deps.clock ?? (() => /* @__PURE__ */ new Date());
|
|
142
|
+
}
|
|
143
|
+
async run(state) {
|
|
144
|
+
const decisionId = randomUUID();
|
|
145
|
+
const stateHash = hashControllerState(state);
|
|
146
|
+
const requestedMode = this.deps.config.mode;
|
|
147
|
+
if (requestedMode === "off") {
|
|
148
|
+
return {
|
|
149
|
+
decisionId,
|
|
150
|
+
requestedMode,
|
|
151
|
+
effectiveMode: "off",
|
|
152
|
+
stateHash,
|
|
153
|
+
choice: { family: "no_op" },
|
|
154
|
+
scores: { persistent_memory: 0, recall: 0, active_context: 0, no_op: 0 },
|
|
155
|
+
executed: false,
|
|
156
|
+
reviewOnly: false,
|
|
157
|
+
recorded: false,
|
|
158
|
+
demotionReasons: ["mode_off"]
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
const [runtimeValues, utilityValues] = await Promise.all([
|
|
162
|
+
this.deps.policyRuntime?.loadRuntimeValues() ?? null,
|
|
163
|
+
this.deps.readUtilityRuntime?.() ?? null
|
|
164
|
+
]);
|
|
165
|
+
const { choice, scores } = chooseAction({
|
|
166
|
+
state,
|
|
167
|
+
activeContextAdapter: this.deps.activeContextAdapter,
|
|
168
|
+
runtimeValues,
|
|
169
|
+
utilityValues
|
|
170
|
+
});
|
|
171
|
+
let demotionReasons = [];
|
|
172
|
+
let effectiveMode = requestedMode;
|
|
173
|
+
if (requestedMode === "active") {
|
|
174
|
+
demotionReasons = await evaluateActiveGates({
|
|
175
|
+
config: this.deps.config,
|
|
176
|
+
reportReader: this.deps.reportReader,
|
|
177
|
+
recorder: this.deps.recorder,
|
|
178
|
+
consecutiveReceiptFailures: this.consecutiveReceiptFailures,
|
|
179
|
+
now: this.clock()
|
|
180
|
+
});
|
|
181
|
+
if (demotionReasons.length > 0) effectiveMode = "shadow";
|
|
182
|
+
}
|
|
183
|
+
const baseEvent = {
|
|
184
|
+
schemaVersion: 1,
|
|
185
|
+
phase: "choice",
|
|
186
|
+
decisionId,
|
|
187
|
+
timestamp: this.clock().toISOString(),
|
|
188
|
+
requestedMode,
|
|
189
|
+
effectiveMode,
|
|
190
|
+
stateHash,
|
|
191
|
+
choice,
|
|
192
|
+
scores,
|
|
193
|
+
executed: false,
|
|
194
|
+
...demotionReasons.length > 0 ? { demotionReasons } : {}
|
|
195
|
+
};
|
|
196
|
+
let recorded = false;
|
|
197
|
+
if (this.deps.recorder) {
|
|
198
|
+
try {
|
|
199
|
+
await this.deps.recorder.record(baseEvent);
|
|
200
|
+
this.deps.telemetry?.(baseEvent);
|
|
201
|
+
recorded = true;
|
|
202
|
+
} catch {
|
|
203
|
+
return {
|
|
204
|
+
decisionId,
|
|
205
|
+
requestedMode,
|
|
206
|
+
effectiveMode,
|
|
207
|
+
stateHash,
|
|
208
|
+
choice,
|
|
209
|
+
scores,
|
|
210
|
+
executed: false,
|
|
211
|
+
reviewOnly: false,
|
|
212
|
+
recorded: false,
|
|
213
|
+
demotionReasons: [...demotionReasons, "record_failed"]
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
if (effectiveMode !== "active") {
|
|
218
|
+
return {
|
|
219
|
+
decisionId,
|
|
220
|
+
requestedMode,
|
|
221
|
+
effectiveMode,
|
|
222
|
+
stateHash,
|
|
223
|
+
choice,
|
|
224
|
+
scores,
|
|
225
|
+
executed: false,
|
|
226
|
+
reviewOnly: false,
|
|
227
|
+
recorded,
|
|
228
|
+
demotionReasons
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
if (choice.family === "persistent_memory" && REVIEW_ONLY_ACTIONS[choice.action]) {
|
|
232
|
+
const event = {
|
|
233
|
+
...baseEvent,
|
|
234
|
+
phase: "outcome",
|
|
235
|
+
reviewOnly: true,
|
|
236
|
+
demotionReasons: ["review_only_action"]
|
|
237
|
+
};
|
|
238
|
+
await this.recordOutcome(event);
|
|
239
|
+
return {
|
|
240
|
+
decisionId,
|
|
241
|
+
requestedMode,
|
|
242
|
+
effectiveMode,
|
|
243
|
+
stateHash,
|
|
244
|
+
choice,
|
|
245
|
+
scores,
|
|
246
|
+
executed: false,
|
|
247
|
+
reviewOnly: true,
|
|
248
|
+
recorded,
|
|
249
|
+
demotionReasons
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
const receipt = await this.dispatch(choice, stateHash, decisionId, baseEvent);
|
|
253
|
+
return {
|
|
254
|
+
decisionId,
|
|
255
|
+
requestedMode,
|
|
256
|
+
effectiveMode,
|
|
257
|
+
stateHash,
|
|
258
|
+
choice,
|
|
259
|
+
scores,
|
|
260
|
+
executed: receipt?.ok === true,
|
|
261
|
+
reviewOnly: false,
|
|
262
|
+
recorded,
|
|
263
|
+
...receipt ? { receipt } : {},
|
|
264
|
+
demotionReasons
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
async dispatch(choice, stateHash, decisionId, baseEvent) {
|
|
268
|
+
const executors = this.deps.executors ?? {};
|
|
269
|
+
try {
|
|
270
|
+
let receipt;
|
|
271
|
+
if (choice.family === "persistent_memory") {
|
|
272
|
+
if (!executors.executePersistentMemory) throw new Error("no_executor:persistent_memory");
|
|
273
|
+
receipt = await executors.executePersistentMemory({
|
|
274
|
+
decisionId,
|
|
275
|
+
action: choice.action,
|
|
276
|
+
eligibility: choice.eligibility,
|
|
277
|
+
stateHash
|
|
278
|
+
});
|
|
279
|
+
} else if (choice.family === "recall") {
|
|
280
|
+
if (!executors.executeRecall) throw new Error("no_executor:recall");
|
|
281
|
+
receipt = await executors.executeRecall({ decisionId, mode: choice.mode });
|
|
282
|
+
} else if (choice.family === "active_context") {
|
|
283
|
+
if (!executors.executeActiveContext) throw new Error("no_executor:active_context");
|
|
284
|
+
receipt = await executors.executeActiveContext({ decisionId, plan: choice.plan });
|
|
285
|
+
} else {
|
|
286
|
+
receipt = { decisionId, ok: true };
|
|
287
|
+
}
|
|
288
|
+
if (!isValidReceipt(receipt, decisionId)) {
|
|
289
|
+
this.consecutiveReceiptFailures += 1;
|
|
290
|
+
await this.recordOutcome({ ...baseEvent, phase: "outcome", failureClass: "bad_receipt" });
|
|
291
|
+
return void 0;
|
|
292
|
+
}
|
|
293
|
+
this.consecutiveReceiptFailures = 0;
|
|
294
|
+
await this.recordOutcome({ ...baseEvent, phase: "outcome", executed: receipt.ok, receipt });
|
|
295
|
+
return receipt;
|
|
296
|
+
} catch (error) {
|
|
297
|
+
this.consecutiveReceiptFailures += 1;
|
|
298
|
+
await this.recordOutcome({
|
|
299
|
+
...baseEvent,
|
|
300
|
+
phase: "outcome",
|
|
301
|
+
failureClass: error?.message?.startsWith("no_executor:") ? "no_executor" : "executor_error"
|
|
302
|
+
});
|
|
303
|
+
return void 0;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
async recordOutcome(event) {
|
|
307
|
+
if (!this.deps.recorder) return;
|
|
308
|
+
await this.deps.recorder.record(event);
|
|
309
|
+
this.deps.telemetry?.(event);
|
|
310
|
+
}
|
|
311
|
+
};
|
|
312
|
+
function isValidReceipt(receipt, decisionId) {
|
|
313
|
+
return typeof receipt === "object" && receipt !== null && receipt.decisionId === decisionId && typeof receipt.ok === "boolean";
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export {
|
|
317
|
+
controllerConfigHash,
|
|
318
|
+
hashControllerState,
|
|
319
|
+
computeEvidenceReportHash,
|
|
320
|
+
verifyEvidenceReport,
|
|
321
|
+
chooseAction,
|
|
322
|
+
evaluateActiveGates,
|
|
323
|
+
MemoryControllerCoordinator
|
|
324
|
+
};
|
|
325
|
+
//# sourceMappingURL=chunk-SDEPLF7V.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/memory-controller.ts"],"sourcesContent":["import { createHash, randomUUID } from \"node:crypto\";\nimport { planRecallMode } from \"./intent.js\";\nimport { evaluateMemoryActionPolicy } from \"./memory-action-policy.js\";\nimport type { RuntimePolicyValues } from \"./policy-runtime.js\";\nimport type { UtilityRuntimeValues } from \"./utility-runtime.js\";\nimport type { MemoryActionEligibilityContext, MemoryActionType, RecallPlanMode } from \"./types.js\";\n\n/**\n * Gated unified memory controller (#2348).\n *\n * One state enters, one choice leaves. Host-free: every effectful collaborator\n * (adapters, executors, report reader, recorder, telemetry, clock) is injected.\n * The coordinator creates no store and claims no counterfactual lift.\n */\n\nexport type MemoryControllerMode = \"off\" | \"shadow\" | \"active\";\n\nexport type MemoryControllerActionFamily = \"persistent_memory\" | \"recall\" | \"active_context\" | \"no_op\";\n\n/** #2347 adapter seam: the host supplies plans, core only picks one. */\nexport interface ActiveContextMessage {\n id: string;\n text: string;\n}\n\nexport interface ActiveContextPlan {\n transform: \"SUMMARY\" | \"FILTER\";\n messageIds: string[];\n planId: string;\n}\n\nexport interface ActiveContextAdapter {\n plan(messages: ActiveContextMessage[]): ActiveContextPlan | null;\n}\n\n/** #2345 report + #2346 paired-seed evidence, read through one port. */\nexport interface MemoryControllerEvidenceReport {\n status: \"pass\" | \"fail\";\n version: string;\n configHash: string;\n generatedAt: string;\n /** sha256 over the canonical report fields; recomputed on verification. */\n reportHash: string;\n}\n\nexport interface MemoryControllerPairedSeedEvidence {\n status: \"pass\" | \"fail\";\n seedCount: number;\n generatedAt: string;\n}\n\nexport interface MemoryControllerEvidence {\n report: MemoryControllerEvidenceReport;\n pairedSeed: MemoryControllerPairedSeedEvidence;\n}\n\nexport interface MemoryControllerReportReader {\n read(): Promise<MemoryControllerEvidence | null>;\n}\n\nexport interface MemoryControllerReceipt {\n decisionId: string;\n ok: boolean;\n detail?: string;\n}\n\nexport interface MemoryControllerExecutors {\n executePersistentMemory?(input: {\n decisionId: string;\n action: MemoryActionType;\n eligibility: MemoryActionEligibilityContext;\n stateHash: string;\n }): Promise<MemoryControllerReceipt>;\n executeRecall?(input: { decisionId: string; mode: RecallPlanMode }): Promise<MemoryControllerReceipt>;\n executeActiveContext?(input: {\n decisionId: string;\n plan: ActiveContextPlan;\n }): Promise<MemoryControllerReceipt>;\n}\n\nexport interface MemoryControllerEvent {\n schemaVersion: 1;\n phase: \"choice\" | \"outcome\";\n decisionId: string;\n timestamp: string;\n requestedMode: MemoryControllerMode;\n effectiveMode: MemoryControllerMode;\n stateHash: string;\n choice: MemoryControllerChoice;\n scores: Record<MemoryControllerActionFamily, number>;\n executed: boolean;\n reviewOnly?: boolean;\n demotionReasons?: string[];\n failureClass?: \"record_failed\" | \"executor_error\" | \"bad_receipt\" | \"no_executor\";\n receipt?: MemoryControllerReceipt;\n}\n\nexport interface MemoryControllerRecorder {\n record(event: MemoryControllerEvent): Promise<void>;\n /** Prior shadow choice records; active promotion requires shadow history. */\n countShadowRecords(): Promise<number>;\n}\n\nexport interface MemoryControllerConfig {\n mode: MemoryControllerMode;\n /** Expected #2345 report schema version. */\n reportVersion: string;\n /** Evidence older than this is stale and forces shadow. */\n evidenceMaxAgeMs: number;\n /** Paired-seed arms must cover at least this many seeds (#2346). */\n minPairedSeeds: number;\n /** Active promotion requires at least this many prior shadow records. */\n shadowMinRecords: number;\n}\n\nexport interface MemoryControllerState {\n prompt: string;\n persistentMemoryCandidate?: {\n action: MemoryActionType;\n eligibility: MemoryActionEligibilityContext;\n };\n contextMessages?: ActiveContextMessage[];\n /** 0..1 host-measured context pressure. */\n contextPressure?: number;\n}\n\nexport type MemoryControllerChoice =\n | { family: \"persistent_memory\"; action: MemoryActionType; eligibility: MemoryActionEligibilityContext }\n | { family: \"recall\"; mode: RecallPlanMode }\n | { family: \"active_context\"; plan: ActiveContextPlan }\n | { family: \"no_op\" };\n\nexport interface MemoryControllerRunResult {\n decisionId: string;\n requestedMode: MemoryControllerMode;\n effectiveMode: MemoryControllerMode;\n stateHash: string;\n choice: MemoryControllerChoice;\n scores: Record<MemoryControllerActionFamily, number>;\n executed: boolean;\n reviewOnly: boolean;\n recorded: boolean;\n receipt?: MemoryControllerReceipt;\n demotionReasons: string[];\n}\n\nexport interface MemoryControllerDeps {\n config: MemoryControllerConfig;\n reportReader?: MemoryControllerReportReader;\n recorder?: MemoryControllerRecorder;\n executors?: MemoryControllerExecutors;\n activeContextAdapter?: ActiveContextAdapter;\n policyRuntime?: { loadRuntimeValues(): Promise<RuntimePolicyValues | null> };\n readUtilityRuntime?: () => Promise<UtilityRuntimeValues | null>;\n telemetry?: (event: MemoryControllerEvent) => void;\n clock?: () => Date;\n}\n\nconst NO_OP_FLOOR = 0.35;\n/** `discard` (and any destructive change) stays review-only in active mode. */\nconst REVIEW_ONLY_ACTIONS: Partial<Record<MemoryActionType, true>> = { discard: true };\n\nexport function controllerConfigHash(config: MemoryControllerConfig): string {\n return sha256(\n JSON.stringify({\n mode: config.mode,\n reportVersion: config.reportVersion,\n evidenceMaxAgeMs: config.evidenceMaxAgeMs,\n minPairedSeeds: config.minPairedSeeds,\n shadowMinRecords: config.shadowMinRecords,\n })\n );\n}\n\nexport function hashControllerState(state: MemoryControllerState): string {\n return sha256(\n JSON.stringify({\n prompt: state.prompt,\n persistentMemoryCandidate: state.persistentMemoryCandidate ?? null,\n contextMessages: state.contextMessages ?? null,\n contextPressure: state.contextPressure ?? null,\n })\n );\n}\n\n/** Canonical #2345 report hash; producers sign with this, the controller verifies. */\nexport function computeEvidenceReportHash(fields: {\n status: MemoryControllerEvidenceReport[\"status\"];\n version: string;\n configHash: string;\n generatedAt: string;\n}): string {\n return sha256(JSON.stringify(fields));\n}\n\n/** Verifies the #2345 report hash over its canonical fields. */\nexport function verifyEvidenceReport(report: MemoryControllerEvidenceReport): boolean {\n return (\n computeEvidenceReportHash({\n status: report.status,\n version: report.version,\n configHash: report.configHash,\n generatedAt: report.generatedAt,\n }) === report.reportHash\n );\n}\n\nfunction sha256(input: string): string {\n return createHash(\"sha256\").update(input).digest(\"hex\");\n}\n\nfunction clampScore(value: number): number {\n if (!Number.isFinite(value)) return Number.NaN;\n return Math.max(0, Math.min(1, value));\n}\n\n/**\n * Bad scores fail closed to `no_op`.\n */\nexport function chooseAction(input: {\n state: MemoryControllerState;\n activeContextAdapter?: ActiveContextAdapter;\n runtimeValues?: RuntimePolicyValues | null;\n utilityValues?: UtilityRuntimeValues | null;\n}): { choice: MemoryControllerChoice; scores: Record<MemoryControllerActionFamily, number> } {\n const { state, activeContextAdapter, runtimeValues, utilityValues } = input;\n\n // recall: current recall path.\n const recallMode = planRecallMode(state.prompt ?? \"\");\n const recallScore =\n recallMode === \"no_recall\" ? 0 : recallMode === \"minimal\" ? 0.4 : 0.6 + 0.2 * (runtimeValues?.recencyWeight ?? 0);\n\n // persistent_memory: current action path + policy.\n let persistentScore = 0;\n const candidate = state.persistentMemoryCandidate;\n if (candidate) {\n const policy = evaluateMemoryActionPolicy({\n action: candidate.action,\n eligibility: candidate.eligibility,\n options: { actionsEnabled: true, maxCompressionTokensPerHour: Number.POSITIVE_INFINITY },\n });\n if (policy.decision === \"allow\") {\n persistentScore = 0.4 + 0.4 * (candidate.eligibility.confidence ?? 0);\n } else if (policy.decision === \"defer\") {\n persistentScore = 0.2;\n }\n // Utility runtime may suppress the persistent family.\n if (utilityValues && utilityValues.rankingSuppressMultiplier > 1) {\n persistentScore *= 1 / utilityValues.rankingSuppressMultiplier;\n }\n }\n\n // active_context: current context path through the #2347 adapter.\n let contextScore = 0;\n let contextPlan: ActiveContextPlan | null = null;\n const pressure = state.contextPressure;\n if (activeContextAdapter && typeof pressure === \"number\" && Number.isFinite(pressure) && pressure > 0.5) {\n contextPlan = activeContextAdapter.plan(state.contextMessages ?? []);\n if (contextPlan && contextPlan.messageIds.length > 0) {\n contextScore = 0.3 + 0.5 * Math.max(0, Math.min(1, pressure));\n }\n }\n\n const scores: Record<MemoryControllerActionFamily, number> = {\n recall: clampScore(recallScore),\n persistent_memory: clampScore(persistentScore),\n active_context: clampScore(contextScore),\n no_op: NO_OP_FLOOR,\n };\n\n // Bad scores fail closed.\n if (Object.values(scores).some((score) => !Number.isFinite(score) || score < 0 || score > 1)) {\n return { choice: { family: \"no_op\" }, scores };\n }\n\n let choice: MemoryControllerChoice = { family: \"no_op\" };\n let best = scores.no_op;\n if (scores.recall > best) {\n best = scores.recall;\n choice = { family: \"recall\", mode: recallMode };\n }\n if (scores.persistent_memory > best) {\n best = scores.persistent_memory;\n choice = {\n family: \"persistent_memory\",\n action: candidate!.action,\n eligibility: candidate!.eligibility,\n };\n }\n if (scores.active_context > best) {\n choice = { family: \"active_context\", plan: contextPlan! };\n }\n return { choice, scores };\n}\n\n/** Returns the demotion reasons when active-mode gates fail; empty means go. */\nexport async function evaluateActiveGates(input: {\n config: MemoryControllerConfig;\n reportReader?: MemoryControllerReportReader;\n recorder?: MemoryControllerRecorder;\n consecutiveReceiptFailures: number;\n now: Date;\n}): Promise<string[]> {\n const { config, reportReader, recorder, consecutiveReceiptFailures, now } = input;\n const reasons: string[] = [];\n\n if (!reportReader) return [\"no_report_reader\"];\n\n const evidence = await reportReader.read();\n if (!evidence) return [\"no_evidence\"];\n\n const { report, pairedSeed } = evidence;\n if (report.status !== \"pass\") reasons.push(\"report_not_passing\");\n if (report.version !== config.reportVersion) reasons.push(\"report_version_mismatch\");\n if (report.configHash !== controllerConfigHash(config)) reasons.push(\"report_config_unbound\");\n if (!verifyEvidenceReport(report)) reasons.push(\"report_hash_invalid\");\n const reportGeneratedAt = Date.parse(report.generatedAt);\n if (!Number.isFinite(reportGeneratedAt) || now.getTime() - reportGeneratedAt > config.evidenceMaxAgeMs) {\n reasons.push(\"report_stale\");\n }\n\n if (pairedSeed.status !== \"pass\") reasons.push(\"paired_seed_not_passing\");\n if (pairedSeed.seedCount < config.minPairedSeeds) reasons.push(\"paired_seed_count_low\");\n const seedGeneratedAt = Date.parse(pairedSeed.generatedAt);\n if (!Number.isFinite(seedGeneratedAt) || now.getTime() - seedGeneratedAt > config.evidenceMaxAgeMs) {\n reasons.push(\"paired_seed_stale\");\n }\n\n const shadowRecords = recorder ? await recorder.countShadowRecords() : 0;\n if (shadowRecords < config.shadowMinRecords) reasons.push(\"shadow_history_insufficient\");\n\n if (consecutiveReceiptFailures > 0) reasons.push(\"recent_receipt_failures\");\n\n return reasons;\n}\n\nexport class MemoryControllerCoordinator {\n private readonly deps: MemoryControllerDeps;\n private readonly clock: () => Date;\n private consecutiveReceiptFailures = 0;\n\n constructor(deps: MemoryControllerDeps) {\n this.deps = deps;\n this.clock = deps.clock ?? (() => new Date());\n }\n\n async run(state: MemoryControllerState): Promise<MemoryControllerRunResult> {\n const decisionId = randomUUID();\n const stateHash = hashControllerState(state);\n const requestedMode = this.deps.config.mode;\n\n // off: no choice, no read, no write, no call.\n if (requestedMode === \"off\") {\n return {\n decisionId,\n requestedMode,\n effectiveMode: \"off\",\n stateHash,\n choice: { family: \"no_op\" },\n scores: { persistent_memory: 0, recall: 0, active_context: 0, no_op: 0 },\n executed: false,\n reviewOnly: false,\n recorded: false,\n demotionReasons: [\"mode_off\"],\n };\n }\n\n const [runtimeValues, utilityValues] = await Promise.all([\n this.deps.policyRuntime?.loadRuntimeValues() ?? null,\n this.deps.readUtilityRuntime?.() ?? null,\n ]);\n const { choice, scores } = chooseAction({\n state,\n activeContextAdapter: this.deps.activeContextAdapter,\n runtimeValues,\n utilityValues,\n });\n\n let demotionReasons: string[] = [];\n let effectiveMode = requestedMode;\n if (requestedMode === \"active\") {\n demotionReasons = await evaluateActiveGates({\n config: this.deps.config,\n reportReader: this.deps.reportReader,\n recorder: this.deps.recorder,\n consecutiveReceiptFailures: this.consecutiveReceiptFailures,\n now: this.clock(),\n });\n if (demotionReasons.length > 0) effectiveMode = \"shadow\";\n }\n\n const baseEvent: MemoryControllerEvent = {\n schemaVersion: 1,\n phase: \"choice\",\n decisionId,\n timestamp: this.clock().toISOString(),\n requestedMode,\n effectiveMode,\n stateHash,\n choice,\n scores,\n executed: false,\n ...(demotionReasons.length > 0 ? { demotionReasons } : {}),\n };\n\n // Shadow records before any active dispatch.\n let recorded = false;\n if (this.deps.recorder) {\n try {\n await this.deps.recorder.record(baseEvent);\n this.deps.telemetry?.(baseEvent);\n recorded = true;\n } catch {\n // Bad recorder stops work: no dispatch, no outcome event.\n return {\n decisionId,\n requestedMode,\n effectiveMode,\n stateHash,\n choice,\n scores,\n executed: false,\n reviewOnly: false,\n recorded: false,\n demotionReasons: [...demotionReasons, \"record_failed\"],\n };\n }\n }\n\n if (effectiveMode !== \"active\") {\n return {\n decisionId,\n requestedMode,\n effectiveMode,\n stateHash,\n choice,\n scores,\n executed: false,\n reviewOnly: false,\n recorded,\n demotionReasons,\n };\n }\n\n // First active scope: reversible actions only.\n if (choice.family === \"persistent_memory\" && REVIEW_ONLY_ACTIONS[choice.action]) {\n const event: MemoryControllerEvent = {\n ...baseEvent,\n phase: \"outcome\",\n reviewOnly: true,\n demotionReasons: [\"review_only_action\"],\n };\n await this.recordOutcome(event);\n return {\n decisionId,\n requestedMode,\n effectiveMode,\n stateHash,\n choice,\n scores,\n executed: false,\n reviewOnly: true,\n recorded,\n demotionReasons,\n };\n }\n\n const receipt = await this.dispatch(choice, stateHash, decisionId, baseEvent);\n return {\n decisionId,\n requestedMode,\n effectiveMode,\n stateHash,\n choice,\n scores,\n executed: receipt?.ok === true,\n reviewOnly: false,\n recorded,\n ...(receipt ? { receipt } : {}),\n demotionReasons,\n };\n }\n\n private async dispatch(\n choice: MemoryControllerChoice,\n stateHash: string,\n decisionId: string,\n baseEvent: MemoryControllerEvent\n ): Promise<MemoryControllerReceipt | undefined> {\n const executors = this.deps.executors ?? {};\n try {\n let receipt: MemoryControllerReceipt | undefined;\n if (choice.family === \"persistent_memory\") {\n if (!executors.executePersistentMemory) throw new Error(\"no_executor:persistent_memory\");\n receipt = await executors.executePersistentMemory({\n decisionId,\n action: choice.action,\n eligibility: choice.eligibility,\n stateHash,\n });\n } else if (choice.family === \"recall\") {\n if (!executors.executeRecall) throw new Error(\"no_executor:recall\");\n receipt = await executors.executeRecall({ decisionId, mode: choice.mode });\n } else if (choice.family === \"active_context\") {\n if (!executors.executeActiveContext) throw new Error(\"no_executor:active_context\");\n receipt = await executors.executeActiveContext({ decisionId, plan: choice.plan });\n } else {\n // no_op executed trivially; no executor call.\n receipt = { decisionId, ok: true };\n }\n if (!isValidReceipt(receipt, decisionId)) {\n this.consecutiveReceiptFailures += 1;\n await this.recordOutcome({ ...baseEvent, phase: \"outcome\", failureClass: \"bad_receipt\" });\n return undefined;\n }\n this.consecutiveReceiptFailures = 0;\n await this.recordOutcome({ ...baseEvent, phase: \"outcome\", executed: receipt.ok, receipt });\n return receipt;\n } catch (error) {\n this.consecutiveReceiptFailures += 1;\n await this.recordOutcome({\n ...baseEvent,\n phase: \"outcome\",\n failureClass: (error as Error)?.message?.startsWith(\"no_executor:\") ? \"no_executor\" : \"executor_error\",\n });\n return undefined;\n }\n }\n\n private async recordOutcome(event: MemoryControllerEvent): Promise<void> {\n if (!this.deps.recorder) return;\n await this.deps.recorder.record(event);\n this.deps.telemetry?.(event);\n }\n}\n\nfunction isValidReceipt(receipt: unknown, decisionId: string): boolean {\n return (\n typeof receipt === \"object\" &&\n receipt !== null &&\n (receipt as MemoryControllerReceipt).decisionId === decisionId &&\n typeof (receipt as MemoryControllerReceipt).ok === \"boolean\"\n );\n}\n\n// ponytail: consecutiveReceiptFailures is per-instance, not persisted; persist\n// with the recorder if coordinator restarts must carry receipt health forward.\n"],"mappings":"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","names":[]}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
WHO_KNOWS_DEFAULT_LIMIT,
|
|
3
3
|
WHO_KNOWS_MAX_LIMIT,
|
|
4
4
|
validateWhoKnowsInput
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ZXUZ54Z5.js";
|
|
6
6
|
|
|
7
7
|
// src/who-knows-cli.ts
|
|
8
8
|
function extractWhoKnowsRawArgs(rest) {
|
|
@@ -74,4 +74,4 @@ export {
|
|
|
74
74
|
renderWhoKnowsText,
|
|
75
75
|
renderWhoKnows
|
|
76
76
|
};
|
|
77
|
-
//# sourceMappingURL=chunk-
|
|
77
|
+
//# sourceMappingURL=chunk-SR7JIRAR.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
StorageManager
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6LS5OX3U.js";
|
|
4
4
|
import {
|
|
5
5
|
getCachedRuleMemories,
|
|
6
6
|
setCachedRuleMemories
|
|
@@ -119,4 +119,4 @@ export {
|
|
|
119
119
|
compareVerifiedSemanticRuleResults,
|
|
120
120
|
searchVerifiedSemanticRules
|
|
121
121
|
};
|
|
122
|
-
//# sourceMappingURL=chunk-
|
|
122
|
+
//# sourceMappingURL=chunk-TWBQQ3FT.js.map
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
} from "./chunk-7ZNJN5WZ.js";
|
|
24
24
|
import {
|
|
25
25
|
compareEntityTimestamps
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-6LS5OX3U.js";
|
|
27
27
|
import {
|
|
28
28
|
normalizeEntityName
|
|
29
29
|
} from "./chunk-YXZG5TVN.js";
|
|
@@ -918,4 +918,4 @@ export {
|
|
|
918
918
|
entityIndexVersion,
|
|
919
919
|
entityRecentTranscriptLookbackHours
|
|
920
920
|
};
|
|
921
|
-
//# sourceMappingURL=chunk-
|
|
921
|
+
//# sourceMappingURL=chunk-US4IRASK.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
getOperation,
|
|
4
4
|
operationRequiresAuthorizedNamespace,
|
|
5
5
|
operationUsesPrincipalNamespace
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PNAGNVGK.js";
|
|
7
7
|
import {
|
|
8
8
|
assertOperationAuthorizationAllowed
|
|
9
9
|
} from "./chunk-MZWSOLMT.js";
|
|
@@ -60,4 +60,4 @@ export {
|
|
|
60
60
|
authorizationProbeNamespaces,
|
|
61
61
|
authorizationProbeRequiresPrincipalNamespace
|
|
62
62
|
};
|
|
63
|
-
//# sourceMappingURL=chunk-
|
|
63
|
+
//# sourceMappingURL=chunk-W6J4POB6.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SUPPORT_PASSPORT_DRAFT_MAX_CONTENT_CHARACTERS,
|
|
3
3
|
SUPPORT_PASSPORT_DRAFT_MAX_MEMORIES
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PNAGNVGK.js";
|
|
5
5
|
import {
|
|
6
6
|
SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH
|
|
7
7
|
} from "./chunk-XDL5CYZN.js";
|
|
@@ -343,4 +343,4 @@ export {
|
|
|
343
343
|
parseSupportPassportModelJob,
|
|
344
344
|
SupportPassportModelBridge
|
|
345
345
|
};
|
|
346
|
-
//# sourceMappingURL=chunk-
|
|
346
|
+
//# sourceMappingURL=chunk-X2DWBWOX.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveCorpusNamespaceRoots
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BXXOPKT5.js";
|
|
4
4
|
import {
|
|
5
5
|
capabilityAllowsNamespace
|
|
6
6
|
} from "./chunk-MZWSOLMT.js";
|
|
@@ -200,4 +200,4 @@ async function readAggregateExtractionWatermark(options) {
|
|
|
200
200
|
export {
|
|
201
201
|
readAggregateExtractionWatermark
|
|
202
202
|
};
|
|
203
|
-
//# sourceMappingURL=chunk-
|
|
203
|
+
//# sourceMappingURL=chunk-XAWIL7TC.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
scanMemoryDir
|
|
3
|
-
} from "./chunk-W7IGLX4G.js";
|
|
4
1
|
import {
|
|
5
2
|
isSearchAborted,
|
|
6
3
|
throwIfSearchAborted
|
|
7
4
|
} from "./chunk-GUMZC2BO.js";
|
|
5
|
+
import {
|
|
6
|
+
scanMemoryDir
|
|
7
|
+
} from "./chunk-W7IGLX4G.js";
|
|
8
8
|
import {
|
|
9
9
|
reportSearchDegradation,
|
|
10
10
|
resolveEnsureCollectionArgs
|
|
@@ -776,4 +776,4 @@ export {
|
|
|
776
776
|
resolveOramaCollectionDbFilePath,
|
|
777
777
|
OramaBackend
|
|
778
778
|
};
|
|
779
|
-
//# sourceMappingURL=chunk-
|
|
779
|
+
//# sourceMappingURL=chunk-XZBXINXZ.js.map
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WearablesInputError
|
|
3
3
|
} from "./chunk-V7IZKJI3.js";
|
|
4
|
-
import {
|
|
5
|
-
AdapterRegistry
|
|
6
|
-
} from "./chunk-RKNJBZ55.js";
|
|
7
4
|
import {
|
|
8
5
|
WriteRateLimiter
|
|
9
6
|
} from "./chunk-TB6CBZ5V.js";
|
|
7
|
+
import {
|
|
8
|
+
AdapterRegistry
|
|
9
|
+
} from "./chunk-RKNJBZ55.js";
|
|
10
10
|
import {
|
|
11
11
|
serializeInlineScriptValue
|
|
12
12
|
} from "./chunk-3HSRWJTC.js";
|
|
13
13
|
import {
|
|
14
14
|
handleSupportPassportOwnerHttp
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-PGW64IFQ.js";
|
|
16
16
|
import {
|
|
17
17
|
buildSupportPassportPublicRequestHandler
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-AYAZWXJI.js";
|
|
19
19
|
import {
|
|
20
20
|
nonEmptyQueryParam,
|
|
21
21
|
optionalNamespaceKindQueryParam,
|
|
22
22
|
optionalQueryString,
|
|
23
23
|
positiveIntQueryParam
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-2RXUZVPU.js";
|
|
25
25
|
import {
|
|
26
26
|
EngramMcpServer,
|
|
27
27
|
MCP_SUPPORTED_PROTOCOL_VERSIONS,
|
|
@@ -31,10 +31,10 @@ import {
|
|
|
31
31
|
processChatMessage,
|
|
32
32
|
sessionBelongsToPrincipal,
|
|
33
33
|
subscribeChatTranscript
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-RQ2EQRRR.js";
|
|
35
35
|
import {
|
|
36
36
|
RelayMissionStoreError
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-5W7MKXMU.js";
|
|
38
38
|
import {
|
|
39
39
|
executeResolution,
|
|
40
40
|
isValidResolutionVerb
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
} from "./chunk-CTVWELNK.js";
|
|
47
47
|
import {
|
|
48
48
|
validateRequest
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-IRXMJLTW.js";
|
|
50
50
|
import {
|
|
51
51
|
maybeHandleLifecycleFlush
|
|
52
52
|
} from "./chunk-TIDEL77O.js";
|
|
@@ -61,15 +61,15 @@ import {
|
|
|
61
61
|
authorizationProbeNamespaces,
|
|
62
62
|
authorizationProbeRequiresPrincipalNamespace,
|
|
63
63
|
probeOperationAuthorization
|
|
64
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-W6J4POB6.js";
|
|
65
65
|
import {
|
|
66
66
|
CorrectionContractError,
|
|
67
67
|
getOperation,
|
|
68
68
|
resolveQueryNamespaceWritablePreflight
|
|
69
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-PNAGNVGK.js";
|
|
70
70
|
import {
|
|
71
71
|
handleWhoKnowsHttpQuery
|
|
72
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-ZXUZ54Z5.js";
|
|
73
73
|
import {
|
|
74
74
|
isTrustZoneName
|
|
75
75
|
} from "./chunk-5QZR2RA3.js";
|
|
@@ -3494,4 +3494,4 @@ export {
|
|
|
3494
3494
|
resolveDefaultAdminConsolePublicDir,
|
|
3495
3495
|
EngramAccessHttpServer
|
|
3496
3496
|
};
|
|
3497
|
-
//# sourceMappingURL=chunk-
|
|
3497
|
+
//# sourceMappingURL=chunk-YUTTMSC7.js.map
|