audrey 1.1.3 → 1.2.1
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 +97 -0
- package/README.md +39 -12
- package/dist/mcp-server/codex-hooks-probe.d.ts +22 -0
- package/dist/mcp-server/codex-hooks-probe.d.ts.map +1 -0
- package/dist/mcp-server/codex-hooks-probe.js +160 -0
- package/dist/mcp-server/codex-hooks-probe.js.map +1 -0
- package/dist/mcp-server/config.d.ts +26 -2
- package/dist/mcp-server/config.d.ts.map +1 -1
- package/dist/mcp-server/config.js +54 -22
- package/dist/mcp-server/config.js.map +1 -1
- package/dist/mcp-server/hooks.d.ts +28 -0
- package/dist/mcp-server/hooks.d.ts.map +1 -1
- package/dist/mcp-server/hooks.js +91 -2
- package/dist/mcp-server/hooks.js.map +1 -1
- package/dist/mcp-server/index.d.ts +242 -2
- package/dist/mcp-server/index.d.ts.map +1 -1
- package/dist/mcp-server/index.js +806 -240
- package/dist/mcp-server/index.js.map +1 -1
- package/dist/mcp-server/tool-schemas.d.ts +32 -2
- package/dist/mcp-server/tool-schemas.d.ts.map +1 -1
- package/dist/mcp-server/tool-schemas.js +55 -0
- package/dist/mcp-server/tool-schemas.js.map +1 -1
- package/dist/src/audrey.d.ts +14 -2
- package/dist/src/audrey.d.ts.map +1 -1
- package/dist/src/audrey.js +152 -28
- package/dist/src/audrey.js.map +1 -1
- package/dist/src/autopilot.d.ts +22 -0
- package/dist/src/autopilot.d.ts.map +1 -1
- package/dist/src/autopilot.js +271 -50
- package/dist/src/autopilot.js.map +1 -1
- package/dist/src/capsule.d.ts +23 -0
- package/dist/src/capsule.d.ts.map +1 -1
- package/dist/src/capsule.js +56 -11
- package/dist/src/capsule.js.map +1 -1
- package/dist/src/confidence.d.ts +9 -1
- package/dist/src/confidence.d.ts.map +1 -1
- package/dist/src/confidence.js +16 -2
- package/dist/src/confidence.js.map +1 -1
- package/dist/src/consolidate.d.ts +4 -0
- package/dist/src/consolidate.d.ts.map +1 -1
- package/dist/src/consolidate.js +206 -34
- package/dist/src/consolidate.js.map +1 -1
- package/dist/src/controller.d.ts +17 -1
- package/dist/src/controller.d.ts.map +1 -1
- package/dist/src/controller.js +244 -128
- package/dist/src/controller.js.map +1 -1
- package/dist/src/db.d.ts.map +1 -1
- package/dist/src/db.js +233 -56
- package/dist/src/db.js.map +1 -1
- package/dist/src/encode.d.ts +2 -1
- package/dist/src/encode.d.ts.map +1 -1
- package/dist/src/encode.js +41 -4
- package/dist/src/encode.js.map +1 -1
- package/dist/src/events.d.ts +48 -1
- package/dist/src/events.d.ts.map +1 -1
- package/dist/src/events.js +160 -62
- package/dist/src/events.js.map +1 -1
- package/dist/src/export.d.ts.map +1 -1
- package/dist/src/export.js +4 -4
- package/dist/src/export.js.map +1 -1
- package/dist/src/grounding.d.ts +111 -0
- package/dist/src/grounding.d.ts.map +1 -0
- package/dist/src/grounding.js +259 -0
- package/dist/src/grounding.js.map +1 -0
- package/dist/src/hybrid-recall.d.ts +16 -7
- package/dist/src/hybrid-recall.d.ts.map +1 -1
- package/dist/src/hybrid-recall.js +22 -11
- package/dist/src/hybrid-recall.js.map +1 -1
- package/dist/src/import.d.ts +10 -0
- package/dist/src/import.d.ts.map +1 -1
- package/dist/src/import.js +122 -22
- package/dist/src/import.js.map +1 -1
- package/dist/src/llm.d.ts.map +1 -1
- package/dist/src/llm.js +16 -0
- package/dist/src/llm.js.map +1 -1
- package/dist/src/preflight.d.ts.map +1 -1
- package/dist/src/preflight.js +89 -47
- package/dist/src/preflight.js.map +1 -1
- package/dist/src/project.d.ts +4 -1
- package/dist/src/project.d.ts.map +1 -1
- package/dist/src/project.js +65 -5
- package/dist/src/project.js.map +1 -1
- package/dist/src/recall.d.ts.map +1 -1
- package/dist/src/recall.js +138 -13
- package/dist/src/recall.js.map +1 -1
- package/dist/src/redact.d.ts +1 -1
- package/dist/src/redact.d.ts.map +1 -1
- package/dist/src/redact.js +185 -5
- package/dist/src/redact.js.map +1 -1
- package/dist/src/routes.d.ts.map +1 -1
- package/dist/src/routes.js +91 -18
- package/dist/src/routes.js.map +1 -1
- package/dist/src/trust.d.ts +35 -0
- package/dist/src/trust.d.ts.map +1 -0
- package/dist/src/trust.js +77 -0
- package/dist/src/trust.js.map +1 -0
- package/dist/src/types.d.ts +24 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +3 -37
- package/benchmarks/adapter-kit.mjs +0 -20
- package/benchmarks/adapter-self-test.mjs +0 -170
- package/benchmarks/adapters/example-allow.mjs +0 -31
- package/benchmarks/adapters/mem0-platform.mjs +0 -274
- package/benchmarks/adapters/registry.json +0 -51
- package/benchmarks/adapters/zep-cloud.mjs +0 -304
- package/benchmarks/baselines.js +0 -174
- package/benchmarks/build-leaderboard.mjs +0 -183
- package/benchmarks/cases.js +0 -549
- package/benchmarks/create-conformance-card.mjs +0 -148
- package/benchmarks/create-submission-bundle.mjs +0 -190
- package/benchmarks/dry-run-external-adapters.mjs +0 -177
- package/benchmarks/guardbench.js +0 -1265
- package/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +0 -50
- package/benchmarks/output/external/guardbench-external-dry-run.json +0 -69
- package/benchmarks/output/external/guardbench-external-evidence.json +0 -56
- package/benchmarks/output/guardbench-conformance-card.json +0 -63
- package/benchmarks/output/guardbench-manifest.json +0 -414
- package/benchmarks/output/guardbench-raw.json +0 -1279
- package/benchmarks/output/guardbench-summary.json +0 -2123
- package/benchmarks/output/leaderboard/guardbench-leaderboard.json +0 -93
- package/benchmarks/output/leaderboard/guardbench-leaderboard.md +0 -7
- package/benchmarks/output/submission-bundle/guardbench-conformance-card.json +0 -63
- package/benchmarks/output/submission-bundle/guardbench-manifest.json +0 -414
- package/benchmarks/output/submission-bundle/guardbench-raw.json +0 -1279
- package/benchmarks/output/submission-bundle/guardbench-summary.json +0 -2123
- package/benchmarks/output/submission-bundle/schemas/guardbench-adapter-registry.schema.json +0 -69
- package/benchmarks/output/submission-bundle/schemas/guardbench-adapter-self-test.schema.json +0 -156
- package/benchmarks/output/submission-bundle/schemas/guardbench-conformance-card.schema.json +0 -184
- package/benchmarks/output/submission-bundle/schemas/guardbench-external-dry-run.schema.json +0 -74
- package/benchmarks/output/submission-bundle/schemas/guardbench-external-evidence.schema.json +0 -108
- package/benchmarks/output/submission-bundle/schemas/guardbench-external-run.schema.json +0 -160
- package/benchmarks/output/submission-bundle/schemas/guardbench-leaderboard.schema.json +0 -179
- package/benchmarks/output/submission-bundle/schemas/guardbench-manifest.schema.json +0 -213
- package/benchmarks/output/submission-bundle/schemas/guardbench-publication-verification.schema.json +0 -47
- package/benchmarks/output/submission-bundle/schemas/guardbench-raw.schema.json +0 -184
- package/benchmarks/output/submission-bundle/schemas/guardbench-submission-manifest.schema.json +0 -151
- package/benchmarks/output/submission-bundle/schemas/guardbench-summary.schema.json +0 -249
- package/benchmarks/output/submission-bundle/submission-manifest.json +0 -131
- package/benchmarks/output/submission-bundle/validation-report.json +0 -31
- package/benchmarks/output/summary.json +0 -2354
- package/benchmarks/perf-snapshot.js +0 -307
- package/benchmarks/perf.bench.js +0 -169
- package/benchmarks/public-paths.mjs +0 -97
- package/benchmarks/reference-results.js +0 -75
- package/benchmarks/report.js +0 -280
- package/benchmarks/run-external-guardbench.mjs +0 -303
- package/benchmarks/run.js +0 -735
- package/benchmarks/schemas/guardbench-adapter-registry.schema.json +0 -69
- package/benchmarks/schemas/guardbench-adapter-self-test.schema.json +0 -156
- package/benchmarks/schemas/guardbench-conformance-card.schema.json +0 -184
- package/benchmarks/schemas/guardbench-external-dry-run.schema.json +0 -74
- package/benchmarks/schemas/guardbench-external-evidence.schema.json +0 -108
- package/benchmarks/schemas/guardbench-external-run.schema.json +0 -160
- package/benchmarks/schemas/guardbench-leaderboard.schema.json +0 -179
- package/benchmarks/schemas/guardbench-manifest.schema.json +0 -213
- package/benchmarks/schemas/guardbench-publication-verification.schema.json +0 -47
- package/benchmarks/schemas/guardbench-raw.schema.json +0 -184
- package/benchmarks/schemas/guardbench-submission-manifest.schema.json +0 -151
- package/benchmarks/schemas/guardbench-summary.schema.json +0 -249
- package/benchmarks/snapshots/perf-0.22.2.json +0 -123
- package/benchmarks/snapshots/perf-0.23.0.json +0 -123
- package/benchmarks/validate-adapter-module.mjs +0 -107
- package/benchmarks/validate-adapter-registry.mjs +0 -145
- package/benchmarks/validate-adapter-self-test.mjs +0 -96
- package/benchmarks/validate-guardbench-artifacts.mjs +0 -400
- package/benchmarks/verify-external-evidence.mjs +0 -351
- package/benchmarks/verify-publication-artifacts.mjs +0 -309
- package/benchmarks/verify-submission-bundle.mjs +0 -172
- package/docs/AUDREY_PAPER_OUTLINE.md +0 -178
- package/docs/MEMORY_BENCHMARKING.md +0 -59
- package/docs/PRODUCTION_BACKLOG.md +0 -321
- package/docs/assets/audrey-feature-grid.jpg +0 -0
- package/docs/assets/audrey-logo.svg +0 -45
- package/docs/assets/audrey-wordmark.png +0 -0
- package/docs/paper/00-master.md +0 -48
- package/docs/paper/01-introduction.md +0 -27
- package/docs/paper/02-related-work.md +0 -47
- package/docs/paper/03-problem-definition.md +0 -108
- package/docs/paper/04-design.md +0 -164
- package/docs/paper/05-guardbench-spec.md +0 -412
- package/docs/paper/06-implementation.md +0 -115
- package/docs/paper/07-evaluation.md +0 -168
- package/docs/paper/08-discussion-limitations.md +0 -61
- package/docs/paper/09-conclusion.md +0 -11
- package/docs/paper/SUBMISSION_README.md +0 -162
- package/docs/paper/appendix-a-demo-transcript.md +0 -114
- package/docs/paper/arxiv-compile-report.schema.json +0 -116
- package/docs/paper/arxiv-source.schema.json +0 -61
- package/docs/paper/audrey-paper-v1.md +0 -1108
- package/docs/paper/browser-launch-plan.json +0 -209
- package/docs/paper/browser-launch-plan.schema.json +0 -100
- package/docs/paper/browser-launch-results.json +0 -86
- package/docs/paper/browser-launch-results.schema.json +0 -66
- package/docs/paper/claim-register.json +0 -138
- package/docs/paper/claim-register.schema.json +0 -81
- package/docs/paper/evidence-ledger.md +0 -103
- package/docs/paper/output/arxiv/README-arxiv.txt +0 -8
- package/docs/paper/output/arxiv/arxiv-manifest.json +0 -41
- package/docs/paper/output/arxiv/main.tex +0 -951
- package/docs/paper/output/arxiv/references.bib +0 -222
- package/docs/paper/output/arxiv-compile-report.json +0 -24
- package/docs/paper/output/submission-bundle/LICENSE +0 -21
- package/docs/paper/output/submission-bundle/README.md +0 -440
- package/docs/paper/output/submission-bundle/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +0 -50
- package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-dry-run.json +0 -69
- package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-evidence.json +0 -56
- package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-conformance-card.json +0 -63
- package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-manifest.json +0 -414
- package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-raw.json +0 -1279
- package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-summary.json +0 -2123
- package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.json +0 -93
- package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.md +0 -7
- package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/submission-manifest.json +0 -131
- package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/validation-report.json +0 -31
- package/docs/paper/output/submission-bundle/benchmarks/output/summary.json +0 -2354
- package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-adapter-registry.schema.json +0 -69
- package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-adapter-self-test.schema.json +0 -156
- package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-conformance-card.schema.json +0 -184
- package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-external-dry-run.schema.json +0 -74
- package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-external-evidence.schema.json +0 -108
- package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-external-run.schema.json +0 -160
- package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-leaderboard.schema.json +0 -179
- package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-manifest.schema.json +0 -213
- package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-publication-verification.schema.json +0 -47
- package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-raw.schema.json +0 -184
- package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-submission-manifest.schema.json +0 -151
- package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-summary.schema.json +0 -249
- package/docs/paper/output/submission-bundle/docs/AUDREY_PAPER_OUTLINE.md +0 -178
- package/docs/paper/output/submission-bundle/docs/paper/00-master.md +0 -48
- package/docs/paper/output/submission-bundle/docs/paper/01-introduction.md +0 -27
- package/docs/paper/output/submission-bundle/docs/paper/02-related-work.md +0 -47
- package/docs/paper/output/submission-bundle/docs/paper/03-problem-definition.md +0 -108
- package/docs/paper/output/submission-bundle/docs/paper/04-design.md +0 -164
- package/docs/paper/output/submission-bundle/docs/paper/05-guardbench-spec.md +0 -412
- package/docs/paper/output/submission-bundle/docs/paper/06-implementation.md +0 -115
- package/docs/paper/output/submission-bundle/docs/paper/07-evaluation.md +0 -168
- package/docs/paper/output/submission-bundle/docs/paper/08-discussion-limitations.md +0 -61
- package/docs/paper/output/submission-bundle/docs/paper/09-conclusion.md +0 -11
- package/docs/paper/output/submission-bundle/docs/paper/SUBMISSION_README.md +0 -162
- package/docs/paper/output/submission-bundle/docs/paper/appendix-a-demo-transcript.md +0 -114
- package/docs/paper/output/submission-bundle/docs/paper/arxiv-compile-report.schema.json +0 -116
- package/docs/paper/output/submission-bundle/docs/paper/arxiv-source.schema.json +0 -61
- package/docs/paper/output/submission-bundle/docs/paper/audrey-paper-v1.md +0 -1108
- package/docs/paper/output/submission-bundle/docs/paper/browser-launch-plan.json +0 -209
- package/docs/paper/output/submission-bundle/docs/paper/browser-launch-plan.schema.json +0 -100
- package/docs/paper/output/submission-bundle/docs/paper/browser-launch-results.json +0 -86
- package/docs/paper/output/submission-bundle/docs/paper/browser-launch-results.schema.json +0 -66
- package/docs/paper/output/submission-bundle/docs/paper/claim-register.json +0 -138
- package/docs/paper/output/submission-bundle/docs/paper/claim-register.schema.json +0 -81
- package/docs/paper/output/submission-bundle/docs/paper/evidence-ledger.md +0 -103
- package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/README-arxiv.txt +0 -8
- package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/arxiv-manifest.json +0 -41
- package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/main.tex +0 -951
- package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/references.bib +0 -222
- package/docs/paper/output/submission-bundle/docs/paper/output/arxiv-compile-report.json +0 -24
- package/docs/paper/output/submission-bundle/docs/paper/paper-submission-bundle.schema.json +0 -70
- package/docs/paper/output/submission-bundle/docs/paper/publication-pack.json +0 -81
- package/docs/paper/output/submission-bundle/docs/paper/publication-pack.schema.json +0 -60
- package/docs/paper/output/submission-bundle/docs/paper/references.bib +0 -222
- package/docs/paper/output/submission-bundle/package.json +0 -235
- package/docs/paper/output/submission-bundle/paper-submission-manifest.json +0 -379
- package/docs/paper/paper-submission-bundle.schema.json +0 -70
- package/docs/paper/publication-pack.json +0 -81
- package/docs/paper/publication-pack.schema.json +0 -60
- package/docs/paper/references.bib +0 -222
- package/scripts/audit-release-completion.mjs +0 -440
- package/scripts/create-arxiv-source.mjs +0 -368
- package/scripts/create-paper-submission-bundle.mjs +0 -214
- package/scripts/finalize-release.mjs +0 -601
- package/scripts/prepare-release-cut.mjs +0 -277
- package/scripts/publish-release-bundle.mjs +0 -252
- package/scripts/publish-release-github-api.mjs +0 -494
- package/scripts/run-vitest.mjs +0 -34
- package/scripts/smoke-cli.js +0 -92
- package/scripts/sync-paper-artifacts.mjs +0 -112
- package/scripts/verify-arxiv-compile.mjs +0 -476
- package/scripts/verify-arxiv-source.mjs +0 -224
- package/scripts/verify-browser-launch-plan.mjs +0 -254
- package/scripts/verify-browser-launch-results.mjs +0 -303
- package/scripts/verify-paper-artifacts.mjs +0 -798
- package/scripts/verify-paper-claims.mjs +0 -254
- package/scripts/verify-paper-submission-bundle.mjs +0 -218
- package/scripts/verify-publication-pack.mjs +0 -210
- package/scripts/verify-python-package.py +0 -201
- package/scripts/verify-release-readiness.mjs +0 -920
package/dist/src/events.js
CHANGED
|
@@ -10,6 +10,11 @@ function toJson(value) {
|
|
|
10
10
|
return null;
|
|
11
11
|
return JSON.stringify(value);
|
|
12
12
|
}
|
|
13
|
+
const ACTION_KEY_PATTERN = /^[a-f0-9]{64}$/;
|
|
14
|
+
function indexedText(explicit, metadataValue) {
|
|
15
|
+
const value = explicit !== undefined ? explicit : metadataValue;
|
|
16
|
+
return typeof value === 'string' && value.trim().length > 0 ? value : null;
|
|
17
|
+
}
|
|
13
18
|
export function insertEvent(db, input) {
|
|
14
19
|
const id = input.id ?? generateId();
|
|
15
20
|
const createdAt = input.createdAt ?? new Date().toISOString();
|
|
@@ -18,15 +23,24 @@ export function insertEvent(db, input) {
|
|
|
18
23
|
? JSON.stringify(input.fileFingerprints)
|
|
19
24
|
: null;
|
|
20
25
|
const metadata = toJson(input.metadata ?? null);
|
|
26
|
+
const actionKeyCandidate = input.actionKey !== undefined ? input.actionKey : input.metadata?.audrey_guard_action_key;
|
|
27
|
+
const actionKey = typeof actionKeyCandidate === 'string' && ACTION_KEY_PATTERN.test(actionKeyCandidate)
|
|
28
|
+
? actionKeyCandidate
|
|
29
|
+
: null;
|
|
30
|
+
const hookHost = indexedText(input.hookHost, input.metadata?.autopilot_host);
|
|
31
|
+
const hookToolUseId = indexedText(input.hookToolUseId, input.metadata?.autopilot_tool_use_id);
|
|
32
|
+
const receiptId = indexedText(input.receiptId, input.metadata?.receipt_id);
|
|
21
33
|
db.prepare(`
|
|
22
34
|
INSERT INTO memory_events (
|
|
23
35
|
id, session_id, event_type, source, actor_agent, tool_name,
|
|
24
36
|
input_hash, output_hash, outcome, error_summary, cwd,
|
|
25
|
-
file_fingerprints, redaction_state,
|
|
37
|
+
file_fingerprints, redaction_state, action_key, hook_host,
|
|
38
|
+
hook_tool_use_id, receipt_id, metadata, created_at
|
|
26
39
|
) VALUES (
|
|
27
40
|
@id, @sessionId, @eventType, @source, @actorAgent, @toolName,
|
|
28
41
|
@inputHash, @outputHash, @outcome, @errorSummary, @cwd,
|
|
29
|
-
@fileFingerprints, @redactionState, @
|
|
42
|
+
@fileFingerprints, @redactionState, @actionKey, @hookHost,
|
|
43
|
+
@hookToolUseId, @receiptId, @metadata, @createdAt
|
|
30
44
|
)
|
|
31
45
|
`).run({
|
|
32
46
|
id,
|
|
@@ -42,6 +56,10 @@ export function insertEvent(db, input) {
|
|
|
42
56
|
cwd: input.cwd ?? null,
|
|
43
57
|
fileFingerprints,
|
|
44
58
|
redactionState,
|
|
59
|
+
actionKey,
|
|
60
|
+
hookHost,
|
|
61
|
+
hookToolUseId,
|
|
62
|
+
receiptId,
|
|
45
63
|
metadata,
|
|
46
64
|
createdAt,
|
|
47
65
|
});
|
|
@@ -59,10 +77,34 @@ export function insertEvent(db, input) {
|
|
|
59
77
|
cwd: input.cwd ?? null,
|
|
60
78
|
file_fingerprints: fileFingerprints,
|
|
61
79
|
redaction_state: redactionState,
|
|
80
|
+
action_key: actionKey,
|
|
81
|
+
hook_host: hookHost,
|
|
82
|
+
hook_tool_use_id: hookToolUseId,
|
|
83
|
+
receipt_id: receiptId,
|
|
62
84
|
metadata,
|
|
63
85
|
created_at: createdAt,
|
|
64
86
|
};
|
|
65
87
|
}
|
|
88
|
+
export function exactActionHistory(db, options) {
|
|
89
|
+
const actorAgent = requireAgent(options.actorAgent);
|
|
90
|
+
return db
|
|
91
|
+
.prepare(`
|
|
92
|
+
SELECT * FROM memory_events
|
|
93
|
+
WHERE action_key = @actionKey
|
|
94
|
+
AND (
|
|
95
|
+
(event_type = 'PostToolUse' AND outcome = 'succeeded')
|
|
96
|
+
OR (event_type = 'PostToolUseFailure' AND outcome = 'failed')
|
|
97
|
+
)
|
|
98
|
+
AND (actor_agent IS NULL OR actor_agent = @actorAgent)
|
|
99
|
+
${options.since ? 'AND created_at >= @since' : ''}
|
|
100
|
+
ORDER BY created_at ASC, id ASC
|
|
101
|
+
`)
|
|
102
|
+
.all({
|
|
103
|
+
actionKey: options.actionKey,
|
|
104
|
+
actorAgent,
|
|
105
|
+
...(options.since ? { since: options.since } : {}),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
66
108
|
export function listEvents(db, query = {}) {
|
|
67
109
|
const conditions = [];
|
|
68
110
|
const params = {};
|
|
@@ -141,6 +183,22 @@ function matchingCwds(db, cwd, since, actorAgent) {
|
|
|
141
183
|
const matches = namespaceMatcher(cwd);
|
|
142
184
|
return rows.map(row => row.cwd).filter(matches);
|
|
143
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Boolean SQL expression deciding whether a row (already known to be a
|
|
188
|
+
* 'failed' or 'succeeded' event, per `kind`) counts as in-scope for the
|
|
189
|
+
* project at `options.cwd`. Failures without a recorded cwd cannot be
|
|
190
|
+
* proven foreign, so they stay visible (fail toward warning). Successes are
|
|
191
|
+
* held to the opposite standard: only a success provably from this project
|
|
192
|
+
* may extinguish a local streak.
|
|
193
|
+
*/
|
|
194
|
+
function cwdVisibility(kind, cwdNames) {
|
|
195
|
+
if (cwdNames === undefined)
|
|
196
|
+
return '1';
|
|
197
|
+
if (kind === 'failure') {
|
|
198
|
+
return cwdNames.length > 0 ? `(cwd IS NULL OR cwd IN (${cwdNames.join(', ')}))` : 'cwd IS NULL';
|
|
199
|
+
}
|
|
200
|
+
return cwdNames.length > 0 ? `cwd IN (${cwdNames.join(', ')})` : '0';
|
|
201
|
+
}
|
|
144
202
|
/**
|
|
145
203
|
* Tools with an unresolved failure streak, most recent first. Feeds PreToolUse
|
|
146
204
|
* preflight warnings: "this command failed last time — here's what fixed it."
|
|
@@ -148,6 +206,15 @@ function matchingCwds(db, cwd, since, actorAgent) {
|
|
|
148
206
|
* failure_count counts failures since the tool's last success in scope
|
|
149
207
|
* (extinction: disconfirming evidence retires the warning), not raw failures
|
|
150
208
|
* in the window.
|
|
209
|
+
*
|
|
210
|
+
* Implemented as one filtered pass over memory_events plus per-tool window
|
|
211
|
+
* functions, rather than a correlated subquery (error summary, last success)
|
|
212
|
+
* and a NOT EXISTS extinction check evaluated per candidate row — the
|
|
213
|
+
* per-row version turns near-quadratic on a large event table.
|
|
214
|
+
*
|
|
215
|
+
* `scoped` must stay MATERIALIZED: without the hint the planner evaluates it
|
|
216
|
+
* once per referencing CTE as co-routines over the low-selectivity outcome
|
|
217
|
+
* index (~30x slower at 50k rows, measured).
|
|
151
218
|
*/
|
|
152
219
|
export function recentFailures(db, options = {}) {
|
|
153
220
|
const since = options.since ?? new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString();
|
|
@@ -163,72 +230,103 @@ export function recentFailures(db, options = {}) {
|
|
|
163
230
|
return `@cwd${index}`;
|
|
164
231
|
});
|
|
165
232
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
//
|
|
169
|
-
//
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
else {
|
|
179
|
-
clauses.push(cwdNames.length > 0 ? `AND ${alias}.cwd IN (${cwdNames.join(', ')})` : 'AND 1 = 0');
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
return clauses.filter(Boolean).join('\n ');
|
|
183
|
-
};
|
|
184
|
-
const lastSuccessSubquery = `
|
|
185
|
-
SELECT MAX(s.created_at) FROM memory_events s
|
|
186
|
-
WHERE s.tool_name = e1.tool_name
|
|
187
|
-
AND s.outcome = 'succeeded'
|
|
188
|
-
AND s.created_at >= @since
|
|
189
|
-
${scopedClauses('s', 'success')}
|
|
190
|
-
`;
|
|
233
|
+
const failureVisible = cwdVisibility('failure', cwdNames);
|
|
234
|
+
const successVisible = cwdVisibility('success', cwdNames);
|
|
235
|
+
// A failure is active while no success postdates it. Same-millisecond ties
|
|
236
|
+
// order by ULID id, which is monotonic within a process — last_success
|
|
237
|
+
// below breaks its own ties the same way, so a failure and the success
|
|
238
|
+
// that would extinguish it always agree on which one is "later".
|
|
239
|
+
const activeFailures = options.includeResolved
|
|
240
|
+
? 'SELECT * FROM failures_with_boundary'
|
|
241
|
+
: `SELECT * FROM failures_with_boundary
|
|
242
|
+
WHERE last_succeeded_at IS NULL
|
|
243
|
+
OR created_at > last_succeeded_at
|
|
244
|
+
OR (created_at = last_succeeded_at AND id > last_succeeded_id)`;
|
|
191
245
|
return db
|
|
192
246
|
.prepare(`
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
247
|
+
WITH scoped AS MATERIALIZED (
|
|
248
|
+
SELECT id, tool_name, outcome, created_at, error_summary
|
|
249
|
+
FROM memory_events
|
|
250
|
+
WHERE tool_name IS NOT NULL
|
|
251
|
+
AND outcome IN ('failed', 'succeeded')
|
|
252
|
+
AND created_at >= @since
|
|
253
|
+
${actorAgent ? 'AND actor_agent = @actorAgent' : ''}
|
|
254
|
+
AND (
|
|
255
|
+
(outcome = 'failed' AND ${failureVisible})
|
|
256
|
+
OR (outcome = 'succeeded' AND ${successVisible})
|
|
257
|
+
)
|
|
258
|
+
),
|
|
259
|
+
failures AS (
|
|
260
|
+
SELECT id, tool_name, created_at, error_summary FROM scoped WHERE outcome = 'failed'
|
|
261
|
+
),
|
|
262
|
+
successes AS (
|
|
263
|
+
SELECT id, tool_name, created_at FROM scoped WHERE outcome = 'succeeded'
|
|
264
|
+
),
|
|
265
|
+
last_success AS (
|
|
266
|
+
SELECT tool_name, created_at AS last_succeeded_at, id AS last_succeeded_id
|
|
267
|
+
FROM (
|
|
268
|
+
SELECT tool_name, created_at, id,
|
|
269
|
+
ROW_NUMBER() OVER (
|
|
270
|
+
PARTITION BY tool_name ORDER BY created_at DESC, id DESC
|
|
271
|
+
) AS rn
|
|
272
|
+
FROM successes
|
|
273
|
+
)
|
|
274
|
+
WHERE rn = 1
|
|
275
|
+
),
|
|
276
|
+
failures_with_boundary AS (
|
|
277
|
+
SELECT f.id, f.tool_name, f.created_at, f.error_summary,
|
|
278
|
+
ls.last_succeeded_at, ls.last_succeeded_id
|
|
279
|
+
FROM failures f
|
|
280
|
+
LEFT JOIN last_success ls ON ls.tool_name = f.tool_name
|
|
281
|
+
),
|
|
282
|
+
active_failures AS (${activeFailures}),
|
|
283
|
+
ranked AS (
|
|
284
|
+
SELECT tool_name, created_at, error_summary, last_succeeded_at,
|
|
285
|
+
ROW_NUMBER() OVER (
|
|
286
|
+
PARTITION BY tool_name ORDER BY created_at DESC, id DESC
|
|
287
|
+
) AS rn,
|
|
288
|
+
COUNT(*) OVER (PARTITION BY tool_name) AS failure_count,
|
|
289
|
+
MAX(created_at) OVER (PARTITION BY tool_name) AS last_failed_at
|
|
290
|
+
FROM active_failures
|
|
291
|
+
)
|
|
292
|
+
SELECT tool_name, failure_count, last_failed_at,
|
|
293
|
+
error_summary AS last_error_summary, last_succeeded_at
|
|
294
|
+
FROM ranked
|
|
295
|
+
WHERE rn = 1
|
|
225
296
|
ORDER BY last_failed_at DESC
|
|
226
297
|
LIMIT ${limit}
|
|
227
298
|
`)
|
|
228
299
|
.all(params);
|
|
229
300
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
301
|
+
/**
|
|
302
|
+
* Default memory_events retention window. Guarded tool calls write at least
|
|
303
|
+
* two rows apiece (PreToolUse + a PostToolUse/PostToolUseFailure receipt),
|
|
304
|
+
* so an install with no retention keeps growing for its whole lifetime —
|
|
305
|
+
* that unbounded growth is what lets recentFailures() and createDatabase()'s
|
|
306
|
+
* embedding sync get slow. 30 days keeps failure-streak history well beyond
|
|
307
|
+
* recentFailures()'s own 7-day default lookback while bounding table size
|
|
308
|
+
* for long-running installs.
|
|
309
|
+
*/
|
|
310
|
+
export const DEFAULT_EVENT_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
|
|
311
|
+
const DEFAULT_DELETE_BATCH_SIZE = 1000;
|
|
312
|
+
const MAX_DELETE_BATCH_SIZE = 50000;
|
|
313
|
+
/**
|
|
314
|
+
* Deletes memory_events rows older than cutoffIso, batching so a large
|
|
315
|
+
* purge cannot hold one long-running write. Returns the total number of
|
|
316
|
+
* rows deleted across all batches.
|
|
317
|
+
*/
|
|
318
|
+
export function deleteEventsBefore(db, cutoffIso, options = {}) {
|
|
319
|
+
const batchSize = Math.max(1, Math.min(options.batchSize ?? DEFAULT_DELETE_BATCH_SIZE, MAX_DELETE_BATCH_SIZE));
|
|
320
|
+
const deleteBatch = db.prepare(`DELETE FROM memory_events
|
|
321
|
+
WHERE id IN (SELECT id FROM memory_events WHERE created_at < ? LIMIT ?)`);
|
|
322
|
+
let totalDeleted = 0;
|
|
323
|
+
for (;;) {
|
|
324
|
+
const result = deleteBatch.run(cutoffIso, batchSize);
|
|
325
|
+
const deleted = Number(result.changes);
|
|
326
|
+
totalDeleted += deleted;
|
|
327
|
+
if (deleted < batchSize)
|
|
328
|
+
break;
|
|
329
|
+
}
|
|
330
|
+
return totalDeleted;
|
|
233
331
|
}
|
|
234
332
|
//# sourceMappingURL=events.js.map
|
package/dist/src/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/src/export.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/export.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/export.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAwHtC,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAqF5D"}
|
package/dist/src/export.js
CHANGED
|
@@ -6,7 +6,7 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
6
6
|
const pkg = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf-8'));
|
|
7
7
|
export function exportMemories(db) {
|
|
8
8
|
const episodes = db
|
|
9
|
-
.prepare('SELECT id, content, source, agent, source_reliability, salience, context, affect, tags, causal_trigger, causal_consequence, created_at, embedding_model, embedding_version, supersedes, superseded_by, consolidated, "private" FROM episodes')
|
|
9
|
+
.prepare('SELECT id, content, source, agent, source_reliability, salience, context, affect, tags, causal_trigger, causal_consequence, created_at, embedding_model, embedding_version, supersedes, superseded_by, consolidated, "private", usage_count, last_used_at FROM episodes')
|
|
10
10
|
.all().map(ep => ({
|
|
11
11
|
...ep,
|
|
12
12
|
tags: safeJsonParse(ep.tags, null),
|
|
@@ -14,13 +14,13 @@ export function exportMemories(db) {
|
|
|
14
14
|
affect: safeJsonParse(ep.affect, null),
|
|
15
15
|
}));
|
|
16
16
|
const semantics = db
|
|
17
|
-
.prepare('SELECT id, content, agent, state, conditions, evidence_episode_ids, evidence_count, supporting_count, contradicting_count, source_type_diversity, consolidation_checkpoint, embedding_model, embedding_version, consolidation_model, consolidation_prompt_hash, created_at, last_reinforced_at, retrieval_count, challenge_count, interference_count, salience FROM semantics')
|
|
17
|
+
.prepare('SELECT id, content, agent, state, conditions, evidence_episode_ids, evidence_count, supporting_count, contradicting_count, source_type_diversity, consolidation_checkpoint, embedding_model, embedding_version, consolidation_model, consolidation_prompt_hash, created_at, last_reinforced_at, retrieval_count, challenge_count, interference_count, salience, usage_count, last_used_at FROM semantics')
|
|
18
18
|
.all().map(sem => ({
|
|
19
19
|
...sem,
|
|
20
20
|
evidence_episode_ids: safeJsonParse(sem.evidence_episode_ids, []),
|
|
21
21
|
}));
|
|
22
22
|
const procedures = db
|
|
23
|
-
.prepare('SELECT id, content, agent, state, trigger_conditions, evidence_episode_ids, success_count, failure_count, embedding_model, embedding_version, created_at, last_reinforced_at, retrieval_count, interference_count, salience FROM procedures')
|
|
23
|
+
.prepare('SELECT id, content, agent, state, trigger_conditions, evidence_episode_ids, success_count, failure_count, embedding_model, embedding_version, created_at, last_reinforced_at, retrieval_count, interference_count, salience, usage_count, last_used_at FROM procedures')
|
|
24
24
|
.all().map(proc => ({
|
|
25
25
|
...proc,
|
|
26
26
|
evidence_episode_ids: safeJsonParse(proc.evidence_episode_ids, []),
|
|
@@ -41,7 +41,7 @@ export function exportMemories(db) {
|
|
|
41
41
|
.prepare('SELECT id, run_id, min_cluster_size, similarity_threshold, episodes_evaluated, clusters_found, principles_extracted, created_at FROM consolidation_metrics')
|
|
42
42
|
.all();
|
|
43
43
|
const memoryEvents = db
|
|
44
|
-
.prepare('SELECT id, session_id, event_type, source, actor_agent, tool_name, input_hash, output_hash, outcome, error_summary, cwd, file_fingerprints, redaction_state, metadata, created_at FROM memory_events')
|
|
44
|
+
.prepare('SELECT id, session_id, event_type, source, actor_agent, tool_name, input_hash, output_hash, outcome, error_summary, cwd, file_fingerprints, redaction_state, action_key, hook_host, hook_tool_use_id, receipt_id, metadata, created_at FROM memory_events')
|
|
45
45
|
.all();
|
|
46
46
|
const configRows = db.prepare('SELECT key, value FROM audrey_config').all();
|
|
47
47
|
const config = Object.fromEntries(configRows.map(r => [r.key, r.value]));
|
package/dist/src/export.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/export.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAElF,CAAC;
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import Database from 'better-sqlite3';
|
|
2
|
+
import type { MemoryType } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Grounding — checking whether a memory is still true, not just still recent.
|
|
5
|
+
*
|
|
6
|
+
* Confidence already answers "is this well-sourced, recent, reinforced, and
|
|
7
|
+
* uncontradicted?" Nothing answered "does the thing this memory describes
|
|
8
|
+
* still exist?" A procedure that says to deploy with `npm run deploy:prod`
|
|
9
|
+
* holds its confidence forever after that script is deleted — and every
|
|
10
|
+
* recall of it raises confidence further, because retrieval counts as
|
|
11
|
+
* reinforcement. Stale memory is worse than absent memory: Guard states it
|
|
12
|
+
* with evidence attached, so the agent follows it into a wall.
|
|
13
|
+
*
|
|
14
|
+
* An anchor is a claim inside a memory that can be checked against the
|
|
15
|
+
* project it describes: a repository-relative path, or a package script
|
|
16
|
+
* name. Anchors are only recorded when they verify at the moment the memory
|
|
17
|
+
* is written. That is what makes the signal trustworthy — a claim that never
|
|
18
|
+
* resolved is a guess about someone's typo, while a claim that resolved once
|
|
19
|
+
* and no longer does is the world having changed underneath a memory that
|
|
20
|
+
* still asserts it. Only the second kind is worth telling anyone about.
|
|
21
|
+
*
|
|
22
|
+
* Broken anchors never delete or rewrite a memory. They lower its confidence
|
|
23
|
+
* and attach a plain statement of what no longer exists, leaving the memory
|
|
24
|
+
* legible and the judgement with the reader. Memory is evidence, not
|
|
25
|
+
* authority — including Audrey's own evidence about its memory.
|
|
26
|
+
*/
|
|
27
|
+
export type AnchorKind = 'path' | 'npm_script';
|
|
28
|
+
export type AnchorState = 'intact' | 'broken';
|
|
29
|
+
export type GroundingState = 'grounded' | 'broken';
|
|
30
|
+
export interface AnchorCandidate {
|
|
31
|
+
kind: AnchorKind;
|
|
32
|
+
value: string;
|
|
33
|
+
}
|
|
34
|
+
export interface MemoryGrounding {
|
|
35
|
+
state: GroundingState;
|
|
36
|
+
brokenAnchors: Array<{
|
|
37
|
+
kind: AnchorKind;
|
|
38
|
+
value: string;
|
|
39
|
+
}>;
|
|
40
|
+
}
|
|
41
|
+
export interface GroundingReport {
|
|
42
|
+
checked: number;
|
|
43
|
+
intact: number;
|
|
44
|
+
broken: number;
|
|
45
|
+
repaired: number;
|
|
46
|
+
newlyBroken: Array<{
|
|
47
|
+
memoryId: string;
|
|
48
|
+
kind: AnchorKind;
|
|
49
|
+
value: string;
|
|
50
|
+
}>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Multiplier applied to a memory carrying at least one broken anchor. Chosen
|
|
54
|
+
* to push a broken memory below the default recall floor without erasing it:
|
|
55
|
+
* it should stop leading the agent by default while staying inspectable, and
|
|
56
|
+
* still able to outrank noise if it is the only thing that matches.
|
|
57
|
+
*/
|
|
58
|
+
export declare const BROKEN_GROUNDING_MODIFIER = 0.5;
|
|
59
|
+
/**
|
|
60
|
+
* Pulls checkable claims out of memory content. Extraction is deliberately
|
|
61
|
+
* narrow: a claim that cannot be checked cheaply and unambiguously is better
|
|
62
|
+
* left unanchored than turned into a signal nobody can trust.
|
|
63
|
+
*/
|
|
64
|
+
export declare function extractAnchorCandidates(content: string): AnchorCandidate[];
|
|
65
|
+
/**
|
|
66
|
+
* Returns true when the claim holds, false when it demonstrably does not,
|
|
67
|
+
* and null when it cannot be judged — an unreadable project, or a store
|
|
68
|
+
* whose project no longer exists on this machine. Unknown is never treated
|
|
69
|
+
* as broken: a memory must not be discredited because the checkout moved.
|
|
70
|
+
*/
|
|
71
|
+
export declare function verifyAnchor(anchor: AnchorCandidate, projectRoot: string, cache?: Map<string, Set<string>>): boolean | null;
|
|
72
|
+
export interface RecordAnchorsInput {
|
|
73
|
+
memoryId: string;
|
|
74
|
+
memoryType: MemoryType;
|
|
75
|
+
agent: string;
|
|
76
|
+
content: string;
|
|
77
|
+
projectRoot: string;
|
|
78
|
+
now?: Date;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Records the anchors in a memory's content that verify right now. Anchors
|
|
82
|
+
* that do not verify at write time are dropped rather than stored as broken:
|
|
83
|
+
* see the module comment — only a claim that was once true carries
|
|
84
|
+
* information when it later stops being true.
|
|
85
|
+
*/
|
|
86
|
+
export declare function recordAnchors(db: Database.Database, input: RecordAnchorsInput): number;
|
|
87
|
+
export interface VerifyAnchorsOptions {
|
|
88
|
+
agent?: string;
|
|
89
|
+
projectRoot?: string;
|
|
90
|
+
limit?: number;
|
|
91
|
+
now?: Date;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Re-checks stored anchors against the current state of their project and
|
|
95
|
+
* moves them between intact and broken. Repair is symmetric: a path that
|
|
96
|
+
* comes back — a reverted delete, a restored checkout — clears the broken
|
|
97
|
+
* state, so a transient absence does not permanently discredit a memory.
|
|
98
|
+
*/
|
|
99
|
+
export declare function verifyAnchors(db: Database.Database, options?: VerifyAnchorsOptions): GroundingReport;
|
|
100
|
+
/**
|
|
101
|
+
* Grounding for a set of memory ids, for callers that already hold recall
|
|
102
|
+
* results and need to annotate them. Returns entries only for memories that
|
|
103
|
+
* actually carry anchors, so an unanchored memory stays unlabelled rather
|
|
104
|
+
* than being presented as verified.
|
|
105
|
+
*/
|
|
106
|
+
export declare function groundingForMemories(db: Database.Database, memoryIds: string[]): Map<string, MemoryGrounding>;
|
|
107
|
+
/** Confidence multiplier for a memory's grounding state. */
|
|
108
|
+
export declare function groundingModifier(state: GroundingState | undefined): number;
|
|
109
|
+
/** One-line, human-readable statement of what a memory still asserts. */
|
|
110
|
+
export declare function describeBrokenGrounding(grounding: MemoryGrounding): string;
|
|
111
|
+
//# sourceMappingURL=grounding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grounding.d.ts","sourceRoot":"","sources":["../../src/grounding.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,CAAC;AAC/C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC9C,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,cAAc,CAAC;IACtB,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3E;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAsD7C;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAmB1E;AAsBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa,GAC1C,OAAO,GAAG,IAAI,CAShB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAiCtF;AAWD,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,oBAAyB,GACjC,eAAe,CA6DjB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EAAE,GAClB,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAyB9B;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,CAE3E;AAED,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,CAS1E"}
|