audrey 1.2.2 → 1.3.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 +25 -0
- package/README.md +25 -1
- package/dist/mcp-server/config.d.ts +1 -1
- package/dist/mcp-server/config.js +1 -1
- package/dist/mcp-server/hooks.d.ts.map +1 -1
- package/dist/mcp-server/hooks.js +24 -2
- package/dist/mcp-server/hooks.js.map +1 -1
- package/dist/mcp-server/index.d.ts.map +1 -1
- package/dist/mcp-server/index.js +44 -4
- package/dist/mcp-server/index.js.map +1 -1
- package/dist/mcp-server/tool-schemas.d.ts +3 -0
- package/dist/mcp-server/tool-schemas.d.ts.map +1 -1
- package/dist/mcp-server/tool-schemas.js +4 -0
- package/dist/mcp-server/tool-schemas.js.map +1 -1
- package/dist/src/audrey.d.ts +5 -1
- package/dist/src/audrey.d.ts.map +1 -1
- package/dist/src/audrey.js +84 -33
- package/dist/src/audrey.js.map +1 -1
- package/dist/src/autopilot.d.ts.map +1 -1
- package/dist/src/autopilot.js +67 -13
- package/dist/src/autopilot.js.map +1 -1
- package/dist/src/capsule.d.ts +13 -0
- package/dist/src/capsule.d.ts.map +1 -1
- package/dist/src/capsule.js +85 -7
- package/dist/src/capsule.js.map +1 -1
- package/dist/src/consolidate.d.ts.map +1 -1
- package/dist/src/consolidate.js +20 -14
- package/dist/src/consolidate.js.map +1 -1
- package/dist/src/controller.d.ts +6 -0
- package/dist/src/controller.d.ts.map +1 -1
- package/dist/src/controller.js +1 -0
- package/dist/src/controller.js.map +1 -1
- package/dist/src/db.d.ts +28 -0
- package/dist/src/db.d.ts.map +1 -1
- package/dist/src/db.js +110 -3
- package/dist/src/db.js.map +1 -1
- package/dist/src/encode.d.ts +12 -0
- package/dist/src/encode.d.ts.map +1 -1
- package/dist/src/encode.js +5 -0
- package/dist/src/encode.js.map +1 -1
- package/dist/src/events.d.ts.map +1 -1
- package/dist/src/events.js +11 -2
- package/dist/src/events.js.map +1 -1
- package/dist/src/export.d.ts.map +1 -1
- package/dist/src/export.js +8 -3
- package/dist/src/export.js.map +1 -1
- package/dist/src/forget.d.ts +18 -1
- package/dist/src/forget.d.ts.map +1 -1
- package/dist/src/forget.js +162 -9
- package/dist/src/forget.js.map +1 -1
- package/dist/src/grounding.d.ts.map +1 -1
- package/dist/src/grounding.js +16 -3
- package/dist/src/grounding.js.map +1 -1
- package/dist/src/hybrid-recall.d.ts.map +1 -1
- package/dist/src/hybrid-recall.js +10 -6
- package/dist/src/hybrid-recall.js.map +1 -1
- package/dist/src/import.d.ts +2 -0
- package/dist/src/import.d.ts.map +1 -1
- package/dist/src/import.js +48 -9
- package/dist/src/import.js.map +1 -1
- package/dist/src/migrate.d.ts.map +1 -1
- package/dist/src/migrate.js +11 -1
- package/dist/src/migrate.js.map +1 -1
- package/dist/src/preflight.d.ts +3 -1
- package/dist/src/preflight.d.ts.map +1 -1
- package/dist/src/preflight.js +46 -40
- package/dist/src/preflight.js.map +1 -1
- package/dist/src/recall.d.ts.map +1 -1
- package/dist/src/recall.js +10 -6
- package/dist/src/recall.js.map +1 -1
- package/dist/src/redact.d.ts.map +1 -1
- package/dist/src/redact.js +65 -30
- package/dist/src/redact.js.map +1 -1
- package/dist/src/routes.d.ts.map +1 -1
- package/dist/src/routes.js +5 -1
- package/dist/src/routes.js.map +1 -1
- package/dist/src/shell-command.d.ts +54 -0
- package/dist/src/shell-command.d.ts.map +1 -0
- package/dist/src/shell-command.js +1592 -0
- package/dist/src/shell-command.js.map +1 -0
- package/dist/src/types.d.ts +5 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils.d.ts +11 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +37 -0
- package/dist/src/utils.js.map +1 -1
- package/dist/src/validate.d.ts.map +1 -1
- package/dist/src/validate.js +21 -5
- package/dist/src/validate.js.map +1 -1
- package/package.json +1 -1
package/dist/src/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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
|
|
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;AA6HtC,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CA2F5D"}
|
package/dist/src/export.js
CHANGED
|
@@ -4,6 +4,7 @@ import { join, dirname } from 'node:path';
|
|
|
4
4
|
import { safeJsonParse } from './utils.js';
|
|
5
5
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
6
6
|
const pkg = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf-8'));
|
|
7
|
+
const TRANSIENT_CONFIG_KEY = /^(?:vec_sync_|autopilot_|read_only_probe_failures_retired_at$|vec_index_reconciled_at$)/;
|
|
7
8
|
export function exportMemories(db) {
|
|
8
9
|
const episodes = db
|
|
9
10
|
.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')
|
|
@@ -14,13 +15,13 @@ export function exportMemories(db) {
|
|
|
14
15
|
affect: safeJsonParse(ep.affect, null),
|
|
15
16
|
}));
|
|
16
17
|
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, usage_count, last_used_at FROM semantics')
|
|
18
|
+
.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, "private", usage_count, last_used_at FROM semantics')
|
|
18
19
|
.all().map(sem => ({
|
|
19
20
|
...sem,
|
|
20
21
|
evidence_episode_ids: safeJsonParse(sem.evidence_episode_ids, []),
|
|
21
22
|
}));
|
|
22
23
|
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, usage_count, last_used_at FROM procedures')
|
|
24
|
+
.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, "private", usage_count, last_used_at FROM procedures')
|
|
24
25
|
.all().map(proc => ({
|
|
25
26
|
...proc,
|
|
26
27
|
evidence_episode_ids: safeJsonParse(proc.evidence_episode_ids, []),
|
|
@@ -43,8 +44,12 @@ export function exportMemories(db) {
|
|
|
43
44
|
const memoryEvents = db
|
|
44
45
|
.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
46
|
.all();
|
|
47
|
+
// Per-store housekeeping (vector sync marks, hook leases, one-time repair
|
|
48
|
+
// markers) describes this database, not the memory in it. Import never
|
|
49
|
+
// applied it, and carrying it made two snapshots of the same memory
|
|
50
|
+
// compare unequal.
|
|
46
51
|
const configRows = db.prepare('SELECT key, value FROM audrey_config').all();
|
|
47
|
-
const config = Object.fromEntries(configRows.map(r => [r.key, r.value]));
|
|
52
|
+
const config = Object.fromEntries(configRows.filter(row => !TRANSIENT_CONFIG_KEY.test(row.key)).map(r => [r.key, r.value]));
|
|
48
53
|
return {
|
|
49
54
|
version: pkg.version,
|
|
50
55
|
exportedAt: new Date().toISOString(),
|
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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"}
|
package/dist/src/forget.d.ts
CHANGED
|
@@ -3,9 +3,26 @@ import type { EmbeddingProvider, ForgetResult, PurgeResult } from './types.js';
|
|
|
3
3
|
export declare function forgetMemory(db: Database.Database, id: string, { purge }?: {
|
|
4
4
|
purge?: boolean;
|
|
5
5
|
}): ForgetResult;
|
|
6
|
+
export declare const READ_ONLY_PROBE_RETIREMENT_KEY = "read_only_probe_failures_retired_at";
|
|
7
|
+
export declare const READ_ONLY_PROBE_RETIREMENT_MARKER = "retired:read-only-probe";
|
|
8
|
+
/**
|
|
9
|
+
* One-time cleanup for stores written before Autopilot stopped recording
|
|
10
|
+
* read-only probes as failures. Every "Bash failed" episode whose command
|
|
11
|
+
* classifies as read-only is soft-retired the way forgetMemory({purge:
|
|
12
|
+
* false}) would: the row survives as superseded so nothing derived from it
|
|
13
|
+
* dangles, and it leaves the vector index so recall never sees it again.
|
|
14
|
+
* `audrey purge` removes the rows for good later, on the user's say-so.
|
|
15
|
+
*
|
|
16
|
+
* The stored command text had its newlines collapsed, so the classifier
|
|
17
|
+
* runs in flattened mode: a side-effecting verb hiding in an argument
|
|
18
|
+
* position keeps the row. Losing a genuine lesson is worse than keeping
|
|
19
|
+
* a stale probe, so every doubt resolves toward keeping.
|
|
20
|
+
*/
|
|
21
|
+
export declare function retireReadOnlyProbeFailures(db: Database.Database): number;
|
|
6
22
|
export declare function purgeMemories(db: Database.Database): PurgeResult;
|
|
7
|
-
export declare function forgetByQuery(db: Database.Database, embeddingProvider: EmbeddingProvider, query: string, { minSimilarity, purge }?: {
|
|
23
|
+
export declare function forgetByQuery(db: Database.Database, embeddingProvider: EmbeddingProvider, query: string, { minSimilarity, purge, agent, }?: {
|
|
8
24
|
minSimilarity?: number;
|
|
9
25
|
purge?: boolean;
|
|
26
|
+
agent?: string;
|
|
10
27
|
}): Promise<ForgetResult | null>;
|
|
11
28
|
//# sourceMappingURL=forget.d.ts.map
|
package/dist/src/forget.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAc,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAc,WAAW,EAAE,MAAM,YAAY,CAAC;AA4G3F,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,EAAE,EAAE,MAAM,EACV,EAAE,KAAa,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,YAAY,CA8Dd;AAED,eAAO,MAAM,8BAA8B,wCAAwC,CAAC;AACpF,eAAO,MAAM,iCAAiC,4BAA4B,CAAC;AAE3E;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAiCzE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAiDhE;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,MAAM,EACb,EACE,aAAmB,EACnB,KAAa,EACb,KAAK,GACN,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAClE,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAsD9B"}
|
package/dist/src/forget.js
CHANGED
|
@@ -1,24 +1,112 @@
|
|
|
1
1
|
import { deleteFTSEpisode, deleteFTSSemantic, deleteFTSProcedure } from './fts.js';
|
|
2
|
+
import { commandFromFailureRecord, profileShellCommand } from './shell-command.js';
|
|
3
|
+
function deleteAnchors(db, memoryId) {
|
|
4
|
+
db.prepare('DELETE FROM memory_anchors WHERE memory_id = ?').run(memoryId);
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Purge every semantic/procedural row derived from the given episode. The
|
|
8
|
+
* derived content was extracted from a cluster that included the purged
|
|
9
|
+
* episode, so it can restate what the episode said — deleting the episode
|
|
10
|
+
* alone would leave that text recallable forever. Surviving evidence
|
|
11
|
+
* episodes are marked consolidated = 0 (and their vec rows refreshed) so
|
|
12
|
+
* the next consolidation pass can re-derive a principle without the purged
|
|
13
|
+
* content.
|
|
14
|
+
*/
|
|
15
|
+
function purgeDerivedFromEpisode(db, episodeId) {
|
|
16
|
+
const findDerived = (table) => db
|
|
17
|
+
.prepare(`
|
|
18
|
+
SELECT id, evidence_episode_ids FROM ${table}
|
|
19
|
+
WHERE json_valid(evidence_episode_ids)
|
|
20
|
+
AND EXISTS (
|
|
21
|
+
SELECT 1 FROM json_each(${table}.evidence_episode_ids) je WHERE je.value = ?
|
|
22
|
+
)
|
|
23
|
+
`)
|
|
24
|
+
.all(episodeId);
|
|
25
|
+
const survivors = new Set();
|
|
26
|
+
const collectSurvivors = (row) => {
|
|
27
|
+
let ids;
|
|
28
|
+
try {
|
|
29
|
+
ids = row.evidence_episode_ids ? JSON.parse(row.evidence_episode_ids) : [];
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
ids = [];
|
|
33
|
+
}
|
|
34
|
+
if (!Array.isArray(ids))
|
|
35
|
+
return;
|
|
36
|
+
for (const evidenceId of ids) {
|
|
37
|
+
if (typeof evidenceId === 'string' && evidenceId !== episodeId) {
|
|
38
|
+
survivors.add(evidenceId);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
let semantics = 0;
|
|
43
|
+
for (const row of findDerived('semantics')) {
|
|
44
|
+
collectSurvivors(row);
|
|
45
|
+
db.prepare('DELETE FROM vec_semantics WHERE id = ?').run(row.id);
|
|
46
|
+
db.prepare('DELETE FROM semantics WHERE id = ?').run(row.id);
|
|
47
|
+
deleteFTSSemantic(db, row.id);
|
|
48
|
+
deleteAnchors(db, row.id);
|
|
49
|
+
semantics++;
|
|
50
|
+
}
|
|
51
|
+
let procedures = 0;
|
|
52
|
+
for (const row of findDerived('procedures')) {
|
|
53
|
+
collectSurvivors(row);
|
|
54
|
+
db.prepare('DELETE FROM vec_procedures WHERE id = ?').run(row.id);
|
|
55
|
+
db.prepare('DELETE FROM procedures WHERE id = ?').run(row.id);
|
|
56
|
+
deleteFTSProcedure(db, row.id);
|
|
57
|
+
deleteAnchors(db, row.id);
|
|
58
|
+
procedures++;
|
|
59
|
+
}
|
|
60
|
+
if (survivors.size > 0) {
|
|
61
|
+
const ids = [...survivors];
|
|
62
|
+
const placeholders = ids.map(() => '?').join(',');
|
|
63
|
+
db.prepare(`UPDATE episodes SET consolidated = 0 WHERE id IN (${placeholders}) AND superseded_by IS NULL`).run(...ids);
|
|
64
|
+
// clusterViaKNN filters on the vec aux column, so refresh it to match.
|
|
65
|
+
// Forgotten survivors stay out: resurrecting their vec rows would make
|
|
66
|
+
// them recallable again.
|
|
67
|
+
db.prepare(`DELETE FROM vec_episodes WHERE id IN (${placeholders})`).run(...ids);
|
|
68
|
+
db.prepare(`
|
|
69
|
+
INSERT INTO vec_episodes(id, agent, embedding, source, consolidated)
|
|
70
|
+
SELECT id, agent, embedding, source, consolidated
|
|
71
|
+
FROM episodes
|
|
72
|
+
WHERE id IN (${placeholders}) AND embedding IS NOT NULL AND superseded_by IS NULL
|
|
73
|
+
`).run(...ids);
|
|
74
|
+
}
|
|
75
|
+
return { semantics, procedures };
|
|
76
|
+
}
|
|
2
77
|
export function forgetMemory(db, id, { purge = false } = {}) {
|
|
3
78
|
const performForget = db.transaction(() => {
|
|
4
79
|
const episode = db.prepare('SELECT id FROM episodes WHERE id = ?').get(id);
|
|
5
80
|
if (episode) {
|
|
6
81
|
if (purge) {
|
|
82
|
+
// Cascade before deleting the episode so its id is still resolvable.
|
|
83
|
+
const cascaded = purgeDerivedFromEpisode(db, id);
|
|
7
84
|
db.prepare('DELETE FROM vec_episodes WHERE id = ?').run(id);
|
|
8
85
|
db.prepare('DELETE FROM episodes WHERE id = ?').run(id);
|
|
86
|
+
deleteFTSEpisode(db, id);
|
|
87
|
+
deleteAnchors(db, id);
|
|
88
|
+
return {
|
|
89
|
+
id,
|
|
90
|
+
type: 'episodic',
|
|
91
|
+
purged: true,
|
|
92
|
+
cascadedSemantics: cascaded.semantics,
|
|
93
|
+
cascadedProcedures: cascaded.procedures,
|
|
94
|
+
};
|
|
9
95
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
96
|
+
// Soft forget deliberately does not cascade: the episode row itself
|
|
97
|
+
// survives as superseded, so derived rows hold nothing the database
|
|
98
|
+
// no longer holds. Purge is the erasure path.
|
|
99
|
+
db.prepare("UPDATE episodes SET superseded_by = 'forgotten' WHERE id = ?").run(id);
|
|
100
|
+
db.prepare('DELETE FROM vec_episodes WHERE id = ?').run(id);
|
|
14
101
|
deleteFTSEpisode(db, id);
|
|
15
|
-
return { id, type: 'episodic', purged:
|
|
102
|
+
return { id, type: 'episodic', purged: false };
|
|
16
103
|
}
|
|
17
104
|
const semantic = db.prepare('SELECT id FROM semantics WHERE id = ?').get(id);
|
|
18
105
|
if (semantic) {
|
|
19
106
|
if (purge) {
|
|
20
107
|
db.prepare('DELETE FROM vec_semantics WHERE id = ?').run(id);
|
|
21
108
|
db.prepare('DELETE FROM semantics WHERE id = ?').run(id);
|
|
109
|
+
deleteAnchors(db, id);
|
|
22
110
|
}
|
|
23
111
|
else {
|
|
24
112
|
db.prepare("UPDATE semantics SET state = 'superseded' WHERE id = ?").run(id);
|
|
@@ -32,6 +120,7 @@ export function forgetMemory(db, id, { purge = false } = {}) {
|
|
|
32
120
|
if (purge) {
|
|
33
121
|
db.prepare('DELETE FROM vec_procedures WHERE id = ?').run(id);
|
|
34
122
|
db.prepare('DELETE FROM procedures WHERE id = ?').run(id);
|
|
123
|
+
deleteAnchors(db, id);
|
|
35
124
|
}
|
|
36
125
|
else {
|
|
37
126
|
db.prepare("UPDATE procedures SET state = 'superseded' WHERE id = ?").run(id);
|
|
@@ -44,6 +133,54 @@ export function forgetMemory(db, id, { purge = false } = {}) {
|
|
|
44
133
|
});
|
|
45
134
|
return performForget();
|
|
46
135
|
}
|
|
136
|
+
export const READ_ONLY_PROBE_RETIREMENT_KEY = 'read_only_probe_failures_retired_at';
|
|
137
|
+
export const READ_ONLY_PROBE_RETIREMENT_MARKER = 'retired:read-only-probe';
|
|
138
|
+
/**
|
|
139
|
+
* One-time cleanup for stores written before Autopilot stopped recording
|
|
140
|
+
* read-only probes as failures. Every "Bash failed" episode whose command
|
|
141
|
+
* classifies as read-only is soft-retired the way forgetMemory({purge:
|
|
142
|
+
* false}) would: the row survives as superseded so nothing derived from it
|
|
143
|
+
* dangles, and it leaves the vector index so recall never sees it again.
|
|
144
|
+
* `audrey purge` removes the rows for good later, on the user's say-so.
|
|
145
|
+
*
|
|
146
|
+
* The stored command text had its newlines collapsed, so the classifier
|
|
147
|
+
* runs in flattened mode: a side-effecting verb hiding in an argument
|
|
148
|
+
* position keeps the row. Losing a genuine lesson is worse than keeping
|
|
149
|
+
* a stale probe, so every doubt resolves toward keeping.
|
|
150
|
+
*/
|
|
151
|
+
export function retireReadOnlyProbeFailures(db) {
|
|
152
|
+
const done = db
|
|
153
|
+
.prepare('SELECT value FROM audrey_config WHERE key = ?')
|
|
154
|
+
.get(READ_ONLY_PROBE_RETIREMENT_KEY);
|
|
155
|
+
if (done)
|
|
156
|
+
return 0;
|
|
157
|
+
const rows = db
|
|
158
|
+
.prepare(`SELECT id, content FROM episodes
|
|
159
|
+
WHERE source = 'tool-result'
|
|
160
|
+
AND superseded_by IS NULL
|
|
161
|
+
AND tags LIKE '%"tool-failure"%'
|
|
162
|
+
AND content LIKE 'Tool failure: Bash failed while attempting: %'`)
|
|
163
|
+
.all();
|
|
164
|
+
const retire = db.prepare('UPDATE episodes SET superseded_by = ? WHERE id = ?');
|
|
165
|
+
const dropVector = db.prepare('DELETE FROM vec_episodes WHERE id = ?');
|
|
166
|
+
const markDone = db.prepare(`INSERT INTO audrey_config (key, value) VALUES (?, ?)
|
|
167
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value`);
|
|
168
|
+
return db.transaction(() => {
|
|
169
|
+
let retired = 0;
|
|
170
|
+
for (const row of rows) {
|
|
171
|
+
const command = commandFromFailureRecord(row.content);
|
|
172
|
+
if (command === undefined)
|
|
173
|
+
continue;
|
|
174
|
+
if (!profileShellCommand(command, { flattened: true }).readOnly)
|
|
175
|
+
continue;
|
|
176
|
+
retire.run(READ_ONLY_PROBE_RETIREMENT_MARKER, row.id);
|
|
177
|
+
dropVector.run(row.id);
|
|
178
|
+
retired++;
|
|
179
|
+
}
|
|
180
|
+
markDone.run(READ_ONLY_PROBE_RETIREMENT_KEY, new Date().toISOString());
|
|
181
|
+
return retired;
|
|
182
|
+
})();
|
|
183
|
+
}
|
|
47
184
|
export function purgeMemories(db) {
|
|
48
185
|
const selectDeadEpisodes = db.prepare('SELECT id FROM episodes WHERE superseded_by IS NOT NULL');
|
|
49
186
|
const selectDeadSemantics = db.prepare("SELECT id FROM semantics WHERE state IN ('superseded', 'dormant', 'rolled_back')");
|
|
@@ -56,38 +193,52 @@ export function purgeMemories(db) {
|
|
|
56
193
|
// actually purged.
|
|
57
194
|
const purgeAll = db.transaction(() => {
|
|
58
195
|
for (const row of selectDeadEpisodes.all()) {
|
|
196
|
+
// The soft-forget -> purge flow is the standard erasure path, so the
|
|
197
|
+
// bulk purge must cascade exactly like forgetMemory's purge branch:
|
|
198
|
+
// derived rows restating a dead episode's content go with it.
|
|
199
|
+
const cascaded = purgeDerivedFromEpisode(db, row.id);
|
|
200
|
+
semantics += cascaded.semantics;
|
|
201
|
+
procedures += cascaded.procedures;
|
|
59
202
|
db.prepare('DELETE FROM vec_episodes WHERE id = ?').run(row.id);
|
|
60
203
|
db.prepare('DELETE FROM episodes WHERE id = ?').run(row.id);
|
|
61
204
|
deleteFTSEpisode(db, row.id);
|
|
205
|
+
deleteAnchors(db, row.id);
|
|
62
206
|
episodes++;
|
|
63
207
|
}
|
|
64
208
|
for (const row of selectDeadSemantics.all()) {
|
|
65
209
|
db.prepare('DELETE FROM vec_semantics WHERE id = ?').run(row.id);
|
|
66
210
|
db.prepare('DELETE FROM semantics WHERE id = ?').run(row.id);
|
|
67
211
|
deleteFTSSemantic(db, row.id);
|
|
212
|
+
deleteAnchors(db, row.id);
|
|
68
213
|
semantics++;
|
|
69
214
|
}
|
|
70
215
|
for (const row of selectDeadProcedures.all()) {
|
|
71
216
|
db.prepare('DELETE FROM vec_procedures WHERE id = ?').run(row.id);
|
|
72
217
|
db.prepare('DELETE FROM procedures WHERE id = ?').run(row.id);
|
|
73
218
|
deleteFTSProcedure(db, row.id);
|
|
219
|
+
deleteAnchors(db, row.id);
|
|
74
220
|
procedures++;
|
|
75
221
|
}
|
|
76
222
|
});
|
|
77
223
|
purgeAll();
|
|
78
224
|
return { episodes, semantics, procedures };
|
|
79
225
|
}
|
|
80
|
-
export async function forgetByQuery(db, embeddingProvider, query, { minSimilarity = 0.9, purge = false } = {}) {
|
|
226
|
+
export async function forgetByQuery(db, embeddingProvider, query, { minSimilarity = 0.9, purge = false, agent, } = {}) {
|
|
81
227
|
const queryVector = await embeddingProvider.embed(query);
|
|
82
228
|
const queryBuffer = embeddingProvider.vectorToBuffer(queryVector);
|
|
83
229
|
const candidates = [];
|
|
230
|
+
// Destructive lookups scope to the calling agent when one is given: a
|
|
231
|
+
// query embedded by one agent must not be able to delete another agent's
|
|
232
|
+
// closest memory. Unscoped remains available for explicit admin use.
|
|
233
|
+
const agentParams = agent ? [agent, agent] : [];
|
|
84
234
|
const epMatch = db
|
|
85
235
|
.prepare(`
|
|
86
236
|
SELECT e.id, (1.0 - v.distance) AS similarity, 'episodic' AS type
|
|
87
237
|
FROM vec_episodes v JOIN episodes e ON e.id = v.id
|
|
88
238
|
WHERE v.embedding MATCH ? AND k = 1 AND e.superseded_by IS NULL
|
|
239
|
+
${agent ? 'AND v.agent = ? AND e.agent = ?' : ''}
|
|
89
240
|
`)
|
|
90
|
-
.get(queryBuffer);
|
|
241
|
+
.get(queryBuffer, ...agentParams);
|
|
91
242
|
if (epMatch)
|
|
92
243
|
candidates.push(epMatch);
|
|
93
244
|
const semMatch = db
|
|
@@ -95,8 +246,9 @@ export async function forgetByQuery(db, embeddingProvider, query, { minSimilarit
|
|
|
95
246
|
SELECT s.id, (1.0 - v.distance) AS similarity, 'semantic' AS type
|
|
96
247
|
FROM vec_semantics v JOIN semantics s ON s.id = v.id
|
|
97
248
|
WHERE v.embedding MATCH ? AND k = 1 AND (s.state = 'active' OR s.state = 'context_dependent')
|
|
249
|
+
${agent ? 'AND v.agent = ? AND s.agent = ?' : ''}
|
|
98
250
|
`)
|
|
99
|
-
.get(queryBuffer);
|
|
251
|
+
.get(queryBuffer, ...agentParams);
|
|
100
252
|
if (semMatch)
|
|
101
253
|
candidates.push(semMatch);
|
|
102
254
|
const procMatch = db
|
|
@@ -104,8 +256,9 @@ export async function forgetByQuery(db, embeddingProvider, query, { minSimilarit
|
|
|
104
256
|
SELECT p.id, (1.0 - v.distance) AS similarity, 'procedural' AS type
|
|
105
257
|
FROM vec_procedures v JOIN procedures p ON p.id = v.id
|
|
106
258
|
WHERE v.embedding MATCH ? AND k = 1 AND (p.state = 'active' OR p.state = 'context_dependent')
|
|
259
|
+
${agent ? 'AND v.agent = ? AND p.agent = ?' : ''}
|
|
107
260
|
`)
|
|
108
|
-
.get(queryBuffer);
|
|
261
|
+
.get(queryBuffer, ...agentParams);
|
|
109
262
|
if (procMatch)
|
|
110
263
|
candidates.push(procMatch);
|
|
111
264
|
if (candidates.length === 0)
|
package/dist/src/forget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forget.js","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"forget.js","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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;AAG7C;;;;;;;;;;;;;;;;;;;;;;;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;AAwD7C;;;;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,CAgBhB;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"}
|
package/dist/src/grounding.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
-
import { isAbsolute, join, normalize } from 'node:path';
|
|
2
|
+
import { isAbsolute, join, normalize, relative } from 'node:path';
|
|
3
3
|
import { ulid } from 'ulid';
|
|
4
|
+
import { isContainedIn } from './utils.js';
|
|
4
5
|
/**
|
|
5
6
|
* Multiplier applied to a memory carrying at least one broken anchor. Chosen
|
|
6
7
|
* to push a broken memory below the default recall floor without erasing it:
|
|
@@ -48,11 +49,14 @@ const RUNNER_BUILTINS = new Set([
|
|
|
48
49
|
]);
|
|
49
50
|
function normalizeRelativePath(raw) {
|
|
50
51
|
const unified = raw.replace(/\\/g, '/').replace(/^\.\//, '');
|
|
51
|
-
if (!unified
|
|
52
|
+
if (!unified)
|
|
52
53
|
return null;
|
|
53
54
|
if (isAbsolute(unified) || /^[A-Za-z]:\//.test(unified))
|
|
54
55
|
return null;
|
|
55
56
|
const segments = unified.split('/');
|
|
57
|
+
// Any '..' segment, not only a leading one: 'docs/../../x' escapes too.
|
|
58
|
+
if (segments.includes('..'))
|
|
59
|
+
return null;
|
|
56
60
|
if (segments.some(segment => IGNORED_PATH_SEGMENTS.has(segment)))
|
|
57
61
|
return null;
|
|
58
62
|
return unified;
|
|
@@ -113,7 +117,16 @@ export function verifyAnchor(anchor, projectRoot, cache = new Map()) {
|
|
|
113
117
|
return null;
|
|
114
118
|
if (anchor.kind === 'path') {
|
|
115
119
|
const target = normalize(join(projectRoot, anchor.value));
|
|
116
|
-
|
|
120
|
+
// Anchors recorded or imported before the '..' segment check existed
|
|
121
|
+
// must not become an existence probe outside the project.
|
|
122
|
+
const rel = relative(projectRoot, target);
|
|
123
|
+
if (rel.startsWith('..') || isAbsolute(rel))
|
|
124
|
+
return false;
|
|
125
|
+
if (!existsSync(target))
|
|
126
|
+
return false;
|
|
127
|
+
// The lexical check above cannot see a junction or symlink inside the
|
|
128
|
+
// project pointing elsewhere; re-judge on canonical paths.
|
|
129
|
+
return isContainedIn(projectRoot, target);
|
|
117
130
|
}
|
|
118
131
|
const scripts = packageScripts(projectRoot, cache);
|
|
119
132
|
if (scripts.size === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../src/grounding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../src/grounding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybrid-recall.d.ts","sourceRoot":"","sources":["../../src/hybrid-recall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"hybrid-recall.d.ts","sourceRoot":"","sources":["../../src/hybrid-recall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAiD1E,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,UAAU,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,MAAM,GAAG,SAAqB,GAC1C,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CA0B3B;AAgHD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA8BD,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,IAAI,EAAE,aAAa,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,YAAY,EAAE,CAiFnF"}
|
|
@@ -76,10 +76,10 @@ function loadFtsOnlyEpisode(db, id, includePrivate, filters, agentFilter) {
|
|
|
76
76
|
createdAt: row.created_at,
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
|
-
function loadFtsOnlySemantic(db, id, includeDormant, filters, agentFilter) {
|
|
79
|
+
function loadFtsOnlySemantic(db, id, includePrivate, includeDormant, filters, agentFilter) {
|
|
80
80
|
const row = db
|
|
81
81
|
.prepare(`
|
|
82
|
-
SELECT id, content, agent, state, evidence_count, supporting_count, contradicting_count, created_at
|
|
82
|
+
SELECT id, content, agent, state, evidence_count, supporting_count, contradicting_count, created_at, "private"
|
|
83
83
|
FROM semantics WHERE id = ?
|
|
84
84
|
`)
|
|
85
85
|
.get(id);
|
|
@@ -87,6 +87,8 @@ function loadFtsOnlySemantic(db, id, includeDormant, filters, agentFilter) {
|
|
|
87
87
|
return null;
|
|
88
88
|
if (agentFilter && row.agent !== agentFilter)
|
|
89
89
|
return null;
|
|
90
|
+
if (!includePrivate && row.private)
|
|
91
|
+
return null;
|
|
90
92
|
const allowed = includeDormant
|
|
91
93
|
? ['active', 'context_dependent', 'dormant']
|
|
92
94
|
: ['active', 'context_dependent'];
|
|
@@ -108,10 +110,10 @@ function loadFtsOnlySemantic(db, id, includeDormant, filters, agentFilter) {
|
|
|
108
110
|
createdAt: row.created_at,
|
|
109
111
|
};
|
|
110
112
|
}
|
|
111
|
-
function loadFtsOnlyProcedural(db, id, includeDormant, filters, agentFilter) {
|
|
113
|
+
function loadFtsOnlyProcedural(db, id, includePrivate, includeDormant, filters, agentFilter) {
|
|
112
114
|
const row = db
|
|
113
115
|
.prepare(`
|
|
114
|
-
SELECT id, content, agent, state, success_count, failure_count, created_at
|
|
116
|
+
SELECT id, content, agent, state, success_count, failure_count, created_at, "private"
|
|
115
117
|
FROM procedures WHERE id = ?
|
|
116
118
|
`)
|
|
117
119
|
.get(id);
|
|
@@ -119,6 +121,8 @@ function loadFtsOnlyProcedural(db, id, includeDormant, filters, agentFilter) {
|
|
|
119
121
|
return null;
|
|
120
122
|
if (agentFilter && row.agent !== agentFilter)
|
|
121
123
|
return null;
|
|
124
|
+
if (!includePrivate && row.private)
|
|
125
|
+
return null;
|
|
122
126
|
const allowed = includeDormant
|
|
123
127
|
? ['active', 'context_dependent', 'dormant']
|
|
124
128
|
: ['active', 'context_dependent'];
|
|
@@ -209,9 +213,9 @@ export function fuseResults(db, input) {
|
|
|
209
213
|
if (ranks.type === 'episodic')
|
|
210
214
|
result = loadFtsOnlyEpisode(db, id, includePrivate, input.filters, input.agentFilter);
|
|
211
215
|
else if (ranks.type === 'semantic')
|
|
212
|
-
result = loadFtsOnlySemantic(db, id, includeDormant, input.filters, input.agentFilter);
|
|
216
|
+
result = loadFtsOnlySemantic(db, id, includePrivate, includeDormant, input.filters, input.agentFilter);
|
|
213
217
|
else if (ranks.type === 'procedural')
|
|
214
|
-
result = loadFtsOnlyProcedural(db, id, includeDormant, input.filters, input.agentFilter);
|
|
218
|
+
result = loadFtsOnlyProcedural(db, id, includePrivate, includeDormant, input.filters, input.agentFilter);
|
|
215
219
|
if (!result)
|
|
216
220
|
continue;
|
|
217
221
|
if (result.confidence < minConfidence)
|