agent-working-memory 0.10.0 → 0.12.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/README.md +118 -19
- package/dist/adapters/claude-code.d.ts.map +1 -1
- package/dist/adapters/claude-code.js +63 -3
- package/dist/adapters/claude-code.js.map +1 -1
- package/dist/adapters/common.d.ts.map +1 -1
- package/dist/adapters/common.js +329 -302
- package/dist/adapters/common.js.map +1 -1
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +31 -8
- package/dist/api/routes.js.map +1 -1
- package/dist/cli/migrate.js +29 -29
- package/dist/cli.js +82 -2
- package/dist/cli.js.map +1 -1
- package/dist/coordination/circuit-breaker.js +23 -23
- package/dist/coordination/routes.d.ts.map +1 -1
- package/dist/coordination/routes.js +174 -170
- package/dist/coordination/routes.js.map +1 -1
- package/dist/core/embeddings.d.ts.map +1 -1
- package/dist/core/embeddings.js +3 -0
- package/dist/core/embeddings.js.map +1 -1
- package/dist/core/entity-extract.d.ts +3 -0
- package/dist/core/entity-extract.d.ts.map +1 -0
- package/dist/core/entity-extract.js +47 -0
- package/dist/core/entity-extract.js.map +1 -0
- package/dist/core/salience.d.ts.map +1 -1
- package/dist/core/salience.js +14 -2
- package/dist/core/salience.js.map +1 -1
- package/dist/core/whoami.d.ts +24 -0
- package/dist/core/whoami.d.ts.map +1 -0
- package/dist/core/whoami.js +66 -0
- package/dist/core/whoami.js.map +1 -0
- package/dist/core/write-pipeline.d.ts +9 -0
- package/dist/core/write-pipeline.d.ts.map +1 -1
- package/dist/core/write-pipeline.js +109 -68
- package/dist/core/write-pipeline.js.map +1 -1
- package/dist/core/write-telemetry.d.ts +33 -0
- package/dist/core/write-telemetry.d.ts.map +1 -0
- package/dist/core/write-telemetry.js +110 -0
- package/dist/core/write-telemetry.js.map +1 -0
- package/dist/engine/activation.d.ts +22 -12
- package/dist/engine/activation.d.ts.map +1 -1
- package/dist/engine/activation.js +133 -17
- package/dist/engine/activation.js.map +1 -1
- package/dist/engine/consolidation-scheduler.d.ts +1 -1
- package/dist/engine/consolidation-scheduler.js +1 -1
- package/dist/engine/consolidation.d.ts +1 -0
- package/dist/engine/consolidation.d.ts.map +1 -1
- package/dist/engine/consolidation.js +18 -0
- package/dist/engine/consolidation.js.map +1 -1
- package/dist/engine/eval.d.ts.map +1 -1
- package/dist/engine/eval.js +5 -1
- package/dist/engine/eval.js.map +1 -1
- package/dist/index.js +21 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +2 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +212 -97
- package/dist/mcp.js.map +1 -1
- package/dist/onboard/index.d.ts +68 -0
- package/dist/onboard/index.d.ts.map +1 -0
- package/dist/onboard/index.js +265 -0
- package/dist/onboard/index.js.map +1 -0
- package/dist/recipes/index.d.ts +57 -0
- package/dist/recipes/index.d.ts.map +1 -0
- package/dist/recipes/index.js +81 -0
- package/dist/recipes/index.js.map +1 -0
- package/dist/storage/pglite-schema.d.ts.map +1 -1
- package/dist/storage/pglite-schema.js +170 -143
- package/dist/storage/pglite-schema.js.map +1 -1
- package/dist/storage/pglite.d.ts +5 -0
- package/dist/storage/pglite.d.ts.map +1 -1
- package/dist/storage/pglite.js +180 -138
- package/dist/storage/pglite.js.map +1 -1
- package/dist/storage/postgres.d.ts +5 -0
- package/dist/storage/postgres.d.ts.map +1 -1
- package/dist/storage/postgres.js +44 -2
- package/dist/storage/postgres.js.map +1 -1
- package/dist/storage/sqlite.d.ts +9 -0
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +394 -326
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/types/engram.d.ts +14 -0
- package/dist/types/engram.d.ts.map +1 -1
- package/dist/types/engram.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +27 -0
- package/dist/version.js.map +1 -0
- package/package.json +9 -1
- package/src/adapters/claude-code.ts +66 -3
- package/src/adapters/common.ts +538 -511
- package/src/api/index.ts +3 -3
- package/src/api/routes.ts +999 -970
- package/src/cli/migrate.ts +307 -307
- package/src/cli.ts +77 -2
- package/src/coordination/circuit-breaker.ts +83 -83
- package/src/coordination/failure-modes.ts +50 -50
- package/src/coordination/routes.ts +2155 -2150
- package/src/core/decay.ts +63 -63
- package/src/core/embeddings.ts +113 -110
- package/src/core/entity-extract.ts +47 -0
- package/src/core/index.ts +5 -5
- package/src/core/logger.ts +36 -36
- package/src/core/ml-worker-entry.ts +194 -194
- package/src/core/ml-worker.ts +281 -281
- package/src/core/query-expander.ts +122 -122
- package/src/core/reranker.ts +119 -119
- package/src/core/salience.ts +529 -514
- package/src/core/whoami.ts +92 -0
- package/src/core/write-pipeline.ts +60 -8
- package/src/core/write-telemetry.ts +131 -0
- package/src/engine/activation.ts +1468 -1369
- package/src/engine/confidence.ts +120 -120
- package/src/engine/consolidation-scheduler.ts +242 -242
- package/src/engine/consolidation.ts +887 -869
- package/src/engine/eval.ts +107 -102
- package/src/engine/eviction.ts +101 -101
- package/src/engine/index.ts +8 -8
- package/src/engine/retraction.ts +366 -366
- package/src/engine/staging.ts +74 -74
- package/src/index.ts +248 -226
- package/src/mcp.ts +1341 -1211
- package/src/onboard/index.ts +298 -0
- package/src/recipes/index.ts +125 -0
- package/src/storage/index.ts +3 -3
- package/src/storage/pglite-schema.ts +193 -166
- package/src/storage/pglite.ts +1420 -1372
- package/src/storage/postgres.ts +50 -2
- package/src/storage/sqlite.ts +1936 -1861
- package/src/storage/store.ts +80 -80
- package/src/types/agent.ts +67 -67
- package/src/types/checkpoint.ts +46 -46
- package/src/types/engram.ts +22 -0
- package/src/types/eval.ts +100 -100
- package/src/types/index.ts +6 -6
- package/src/version.ts +26 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// Copyright 2026 Robert Winter / Complete Ideas
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
function slugify(name) {
|
|
4
|
+
return name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '').slice(0, 40);
|
|
5
|
+
}
|
|
6
|
+
export const SKILL_DERIVATION = {
|
|
7
|
+
id: 'skill-derivation@1',
|
|
8
|
+
title: 'Derive a reusable skill from a completed task',
|
|
9
|
+
gate: 'Run ONLY after a task that used tools/multiple steps (roughly: 3+ tool calls or a delegated sub-task). Skip trivial one-offs.',
|
|
10
|
+
prompt: 'A task was just completed using tools. If it followed a REPEATABLE procedure that would help on similar future requests, output ONLY JSON {"name":"short skill name (e.g. \'triage scouting inbox\')","steps":"numbered how-to a future run can follow"}. If it was a trivial one-off, output exactly {}.',
|
|
11
|
+
output: '{"name": string, "steps": string-with-numbered-lines} or {} when nothing repeatable was learned.',
|
|
12
|
+
writeBack: "memory_write with concept: 'skill: <name>', content: <steps>, origin_class: 'recipe', recipe_id: 'skill-derivation@1', memory_class: 'canonical', memory_type: 'procedural', tags: ['topic=skill', 'skill=<slug>'].",
|
|
13
|
+
validate(concept, content) {
|
|
14
|
+
const errors = [];
|
|
15
|
+
if (!/^skill:\s*\S/.test(concept))
|
|
16
|
+
errors.push("concept must start with 'skill: <name>'");
|
|
17
|
+
if (!content || content.trim().length < 20)
|
|
18
|
+
errors.push('steps content too short to be a usable procedure');
|
|
19
|
+
if (!/(^|\n)\s*(\d+[.)]|[-*])\s+/.test(content))
|
|
20
|
+
errors.push('content must contain numbered or bulleted steps');
|
|
21
|
+
return { ok: errors.length === 0, errors };
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
export const FRICTION_LESSON = {
|
|
25
|
+
id: 'friction-lesson@1',
|
|
26
|
+
title: 'Record a failure lesson (Reflexion) from a task that went wrong',
|
|
27
|
+
gate: 'Run ONLY after a task that failed, required a retry/revert, or surfaced a wrong assumption.',
|
|
28
|
+
prompt: 'A task just hit a failure, retry, or wrong assumption. Output ONLY JSON {"topic":"short subject of the lesson","lesson":"what went wrong and the rule to apply next time (include the WHY)"}. If nothing generalizable was learned, output exactly {}.',
|
|
29
|
+
output: '{"topic": string, "lesson": string} or {} when nothing generalizable was learned.',
|
|
30
|
+
writeBack: "memory_write with concept: 'lesson: <topic>', content: <lesson>, origin_class: 'recipe', recipe_id: 'friction-lesson@1', memory_class: 'canonical', event_type: 'friction', tags: ['topic=friction', 'about=<slug>'].",
|
|
31
|
+
validate(concept, content) {
|
|
32
|
+
const errors = [];
|
|
33
|
+
if (!/^lesson:\s*\S/.test(concept))
|
|
34
|
+
errors.push("concept must start with 'lesson: <topic>'");
|
|
35
|
+
if (!content || content.trim().length < 20)
|
|
36
|
+
errors.push('lesson content too short to be applicable');
|
|
37
|
+
return { ok: errors.length === 0, errors };
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
const REGISTRY = {
|
|
41
|
+
[SKILL_DERIVATION.id]: SKILL_DERIVATION,
|
|
42
|
+
[FRICTION_LESSON.id]: FRICTION_LESSON,
|
|
43
|
+
};
|
|
44
|
+
export function getRecipe(id) {
|
|
45
|
+
return REGISTRY[id] ?? null;
|
|
46
|
+
}
|
|
47
|
+
export function listRecipes() {
|
|
48
|
+
return Object.values(REGISTRY);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Validate a recipe-attributed write. Unknown recipe ids are rejected —
|
|
52
|
+
* provenance must never claim a recipe that does not exist.
|
|
53
|
+
*/
|
|
54
|
+
export function validateRecipeWrite(recipeId, concept, content) {
|
|
55
|
+
const recipe = getRecipe(recipeId);
|
|
56
|
+
if (!recipe)
|
|
57
|
+
return { ok: false, errors: [`unknown recipe id '${recipeId}' — known: ${Object.keys(REGISTRY).join(', ')}`] };
|
|
58
|
+
return recipe.validate(concept, content);
|
|
59
|
+
}
|
|
60
|
+
/** Derive the standard skill/lesson slug tag value from a concept. */
|
|
61
|
+
export function recipeSlug(concept) {
|
|
62
|
+
return slugify(concept.replace(/^(skill|lesson):\s*/i, ''));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The invitation appended to memory_task_end responses. Kept compact — it is
|
|
66
|
+
* read by an LLM in-band. The host runs the recipe as its OWN next step
|
|
67
|
+
* (separate focused call) and writes back via ordinary memory_write.
|
|
68
|
+
*/
|
|
69
|
+
export function renderTaskEndInvitation() {
|
|
70
|
+
return [
|
|
71
|
+
'',
|
|
72
|
+
'COGNITION RECIPES (host-side — you do the thinking, one SEPARATE focused pass each):',
|
|
73
|
+
`1. ${SKILL_DERIVATION.title}. Gate: ${SKILL_DERIVATION.gate}`,
|
|
74
|
+
` Think: ${SKILL_DERIVATION.prompt}`,
|
|
75
|
+
` If non-empty, write back: ${SKILL_DERIVATION.writeBack}`,
|
|
76
|
+
`2. ${FRICTION_LESSON.title}. Gate: ${FRICTION_LESSON.gate}`,
|
|
77
|
+
` Think: ${FRICTION_LESSON.prompt}`,
|
|
78
|
+
` If non-empty, write back: ${FRICTION_LESSON.writeBack}`,
|
|
79
|
+
].join('\n');
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recipes/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite-schema.d.ts","sourceRoot":"","sources":["../../src/storage/pglite-schema.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,eAAO,MAAM,wBAAwB,QAAoD,CAAC;AAE1F,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"pglite-schema.d.ts","sourceRoot":"","sources":["../../src/storage/pglite-schema.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,eAAO,MAAM,wBAAwB,QAAoD,CAAC;AAE1F,eAAO,MAAM,iBAAiB,QA0K7B,CAAC"}
|
|
@@ -18,148 +18,175 @@
|
|
|
18
18
|
* PGlite's vector extension does this automatically when imported.
|
|
19
19
|
*/
|
|
20
20
|
export const PGLITE_VECTOR_DIMENSIONS = parseInt(process.env.AWM_EMBED_DIMS ?? '384', 10);
|
|
21
|
-
export const PGLITE_SCHEMA_DDL = `
|
|
22
|
-
CREATE EXTENSION IF NOT EXISTS vector;
|
|
23
|
-
|
|
24
|
-
CREATE TABLE IF NOT EXISTS engrams (
|
|
25
|
-
id TEXT PRIMARY KEY,
|
|
26
|
-
agent_id TEXT NOT NULL,
|
|
27
|
-
concept TEXT NOT NULL,
|
|
28
|
-
content TEXT NOT NULL,
|
|
29
|
-
embedding VECTOR(${PGLITE_VECTOR_DIMENSIONS}),
|
|
30
|
-
embedding_model TEXT,
|
|
31
|
-
confidence DOUBLE PRECISION NOT NULL DEFAULT 0.5,
|
|
32
|
-
salience DOUBLE PRECISION NOT NULL DEFAULT 0.5,
|
|
33
|
-
access_count INTEGER NOT NULL DEFAULT 0,
|
|
34
|
-
last_accessed TEXT NOT NULL,
|
|
35
|
-
created_at TEXT NOT NULL,
|
|
36
|
-
salience_features TEXT NOT NULL DEFAULT '{}',
|
|
37
|
-
reason_codes TEXT NOT NULL DEFAULT '[]',
|
|
38
|
-
stage TEXT NOT NULL DEFAULT 'active',
|
|
39
|
-
ttl INTEGER,
|
|
40
|
-
retracted BOOLEAN NOT NULL DEFAULT FALSE,
|
|
41
|
-
retracted_by TEXT,
|
|
42
|
-
retracted_at TEXT,
|
|
43
|
-
tags TEXT NOT NULL DEFAULT '[]',
|
|
44
|
-
memory_type TEXT NOT NULL DEFAULT 'unclassified',
|
|
45
|
-
memory_class TEXT NOT NULL DEFAULT 'working',
|
|
46
|
-
superseded_by TEXT,
|
|
47
|
-
supersedes TEXT,
|
|
48
|
-
episode_id TEXT,
|
|
49
|
-
task_status TEXT,
|
|
50
|
-
task_priority TEXT,
|
|
51
|
-
blocked_by TEXT,
|
|
52
|
-
sequence INTEGER,
|
|
53
|
-
references_json TEXT,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
CREATE
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
timestamp
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
agent_id
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
21
|
+
export const PGLITE_SCHEMA_DDL = `
|
|
22
|
+
CREATE EXTENSION IF NOT EXISTS vector;
|
|
23
|
+
|
|
24
|
+
CREATE TABLE IF NOT EXISTS engrams (
|
|
25
|
+
id TEXT PRIMARY KEY,
|
|
26
|
+
agent_id TEXT NOT NULL,
|
|
27
|
+
concept TEXT NOT NULL,
|
|
28
|
+
content TEXT NOT NULL,
|
|
29
|
+
embedding VECTOR(${PGLITE_VECTOR_DIMENSIONS}),
|
|
30
|
+
embedding_model TEXT,
|
|
31
|
+
confidence DOUBLE PRECISION NOT NULL DEFAULT 0.5,
|
|
32
|
+
salience DOUBLE PRECISION NOT NULL DEFAULT 0.5,
|
|
33
|
+
access_count INTEGER NOT NULL DEFAULT 0,
|
|
34
|
+
last_accessed TEXT NOT NULL,
|
|
35
|
+
created_at TEXT NOT NULL,
|
|
36
|
+
salience_features TEXT NOT NULL DEFAULT '{}',
|
|
37
|
+
reason_codes TEXT NOT NULL DEFAULT '[]',
|
|
38
|
+
stage TEXT NOT NULL DEFAULT 'active',
|
|
39
|
+
ttl INTEGER,
|
|
40
|
+
retracted BOOLEAN NOT NULL DEFAULT FALSE,
|
|
41
|
+
retracted_by TEXT,
|
|
42
|
+
retracted_at TEXT,
|
|
43
|
+
tags TEXT NOT NULL DEFAULT '[]',
|
|
44
|
+
memory_type TEXT NOT NULL DEFAULT 'unclassified',
|
|
45
|
+
memory_class TEXT NOT NULL DEFAULT 'working',
|
|
46
|
+
superseded_by TEXT,
|
|
47
|
+
supersedes TEXT,
|
|
48
|
+
episode_id TEXT,
|
|
49
|
+
task_status TEXT,
|
|
50
|
+
task_priority TEXT,
|
|
51
|
+
blocked_by TEXT,
|
|
52
|
+
sequence INTEGER,
|
|
53
|
+
references_json TEXT,
|
|
54
|
+
origin_class TEXT,
|
|
55
|
+
writer_session TEXT,
|
|
56
|
+
recipe_id TEXT,
|
|
57
|
+
valid_from TEXT,
|
|
58
|
+
valid_to TEXT,
|
|
59
|
+
fts TSVECTOR
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
-- Memory-spine migration (D5/D8, 2026-07-30): idempotent column adds so
|
|
63
|
+
-- pre-existing stores gain provenance + temporal-validity fields.
|
|
64
|
+
ALTER TABLE engrams ADD COLUMN IF NOT EXISTS origin_class TEXT;
|
|
65
|
+
ALTER TABLE engrams ADD COLUMN IF NOT EXISTS writer_session TEXT;
|
|
66
|
+
ALTER TABLE engrams ADD COLUMN IF NOT EXISTS recipe_id TEXT;
|
|
67
|
+
ALTER TABLE engrams ADD COLUMN IF NOT EXISTS valid_from TEXT;
|
|
68
|
+
ALTER TABLE engrams ADD COLUMN IF NOT EXISTS valid_to TEXT;
|
|
69
|
+
|
|
70
|
+
CREATE INDEX IF NOT EXISTS idx_engrams_agent ON engrams(agent_id);
|
|
71
|
+
CREATE INDEX IF NOT EXISTS idx_engrams_stage ON engrams(agent_id, stage);
|
|
72
|
+
CREATE INDEX IF NOT EXISTS idx_engrams_concept ON engrams(concept);
|
|
73
|
+
CREATE INDEX IF NOT EXISTS idx_engrams_retracted ON engrams(agent_id, retracted);
|
|
74
|
+
CREATE INDEX IF NOT EXISTS idx_engrams_task ON engrams(agent_id, task_status);
|
|
75
|
+
CREATE INDEX IF NOT EXISTS idx_engrams_agent_sequence ON engrams(agent_id, sequence) WHERE sequence IS NOT NULL;
|
|
76
|
+
CREATE INDEX IF NOT EXISTS idx_engrams_fts ON engrams USING GIN(fts);
|
|
77
|
+
|
|
78
|
+
CREATE INDEX IF NOT EXISTS idx_engrams_embedding
|
|
79
|
+
ON engrams USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100);
|
|
80
|
+
|
|
81
|
+
CREATE OR REPLACE FUNCTION engrams_fts_update() RETURNS TRIGGER AS $$
|
|
82
|
+
BEGIN
|
|
83
|
+
NEW.fts := to_tsvector('english',
|
|
84
|
+
COALESCE(NEW.concept, '') || ' ' ||
|
|
85
|
+
COALESCE(NEW.content, '') || ' ' ||
|
|
86
|
+
COALESCE(NEW.tags, ''));
|
|
87
|
+
RETURN NEW;
|
|
88
|
+
END;
|
|
89
|
+
$$ LANGUAGE plpgsql;
|
|
90
|
+
|
|
91
|
+
DROP TRIGGER IF EXISTS engrams_fts_trigger ON engrams;
|
|
92
|
+
CREATE TRIGGER engrams_fts_trigger
|
|
93
|
+
BEFORE INSERT OR UPDATE OF concept, content, tags ON engrams
|
|
94
|
+
FOR EACH ROW EXECUTE FUNCTION engrams_fts_update();
|
|
95
|
+
|
|
96
|
+
CREATE TABLE IF NOT EXISTS associations (
|
|
97
|
+
id TEXT PRIMARY KEY,
|
|
98
|
+
from_engram_id TEXT NOT NULL REFERENCES engrams(id) ON DELETE CASCADE,
|
|
99
|
+
to_engram_id TEXT NOT NULL REFERENCES engrams(id) ON DELETE CASCADE,
|
|
100
|
+
weight DOUBLE PRECISION NOT NULL DEFAULT 0.1,
|
|
101
|
+
confidence DOUBLE PRECISION NOT NULL DEFAULT 0.5,
|
|
102
|
+
type TEXT NOT NULL DEFAULT 'hebbian',
|
|
103
|
+
activation_count INTEGER NOT NULL DEFAULT 0,
|
|
104
|
+
created_at TEXT NOT NULL,
|
|
105
|
+
last_activated TEXT NOT NULL
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
CREATE INDEX IF NOT EXISTS idx_assoc_from ON associations(from_engram_id);
|
|
109
|
+
CREATE INDEX IF NOT EXISTS idx_assoc_to ON associations(to_engram_id);
|
|
110
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_assoc_pair ON associations(from_engram_id, to_engram_id);
|
|
111
|
+
|
|
112
|
+
CREATE TABLE IF NOT EXISTS agents (
|
|
113
|
+
id TEXT PRIMARY KEY,
|
|
114
|
+
name TEXT NOT NULL,
|
|
115
|
+
created_at TEXT NOT NULL,
|
|
116
|
+
config TEXT NOT NULL DEFAULT '{}'
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
CREATE TABLE IF NOT EXISTS activation_events (
|
|
120
|
+
id TEXT PRIMARY KEY,
|
|
121
|
+
agent_id TEXT NOT NULL,
|
|
122
|
+
timestamp TEXT NOT NULL,
|
|
123
|
+
context TEXT NOT NULL,
|
|
124
|
+
results_returned INTEGER NOT NULL,
|
|
125
|
+
top_score DOUBLE PRECISION,
|
|
126
|
+
latency_ms DOUBLE PRECISION NOT NULL,
|
|
127
|
+
engram_ids TEXT NOT NULL DEFAULT '[]'
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
CREATE TABLE IF NOT EXISTS staging_events (
|
|
131
|
+
engram_id TEXT NOT NULL,
|
|
132
|
+
agent_id TEXT NOT NULL,
|
|
133
|
+
action TEXT NOT NULL,
|
|
134
|
+
resonance_score DOUBLE PRECISION,
|
|
135
|
+
timestamp TEXT NOT NULL,
|
|
136
|
+
age_ms INTEGER NOT NULL
|
|
137
|
+
);
|
|
138
|
+
|
|
139
|
+
CREATE TABLE IF NOT EXISTS retrieval_feedback (
|
|
140
|
+
id TEXT PRIMARY KEY,
|
|
141
|
+
activation_event_id TEXT,
|
|
142
|
+
engram_id TEXT NOT NULL,
|
|
143
|
+
useful BOOLEAN NOT NULL,
|
|
144
|
+
context TEXT,
|
|
145
|
+
timestamp TEXT NOT NULL
|
|
146
|
+
);
|
|
147
|
+
|
|
148
|
+
CREATE TABLE IF NOT EXISTS episodes (
|
|
149
|
+
id TEXT PRIMARY KEY,
|
|
150
|
+
agent_id TEXT NOT NULL,
|
|
151
|
+
label TEXT NOT NULL,
|
|
152
|
+
embedding VECTOR(${PGLITE_VECTOR_DIMENSIONS}),
|
|
153
|
+
engram_count INTEGER NOT NULL DEFAULT 0,
|
|
154
|
+
start_time TEXT NOT NULL,
|
|
155
|
+
end_time TEXT NOT NULL,
|
|
156
|
+
created_at TEXT NOT NULL
|
|
157
|
+
);
|
|
158
|
+
|
|
159
|
+
CREATE INDEX IF NOT EXISTS idx_episodes_agent ON episodes(agent_id);
|
|
160
|
+
CREATE INDEX IF NOT EXISTS idx_episodes_time ON episodes(agent_id, end_time);
|
|
161
|
+
|
|
162
|
+
CREATE TABLE IF NOT EXISTS conscious_state (
|
|
163
|
+
agent_id TEXT PRIMARY KEY,
|
|
164
|
+
last_write_id TEXT,
|
|
165
|
+
last_recall_context TEXT,
|
|
166
|
+
last_recall_ids TEXT NOT NULL DEFAULT '[]',
|
|
167
|
+
last_activity_at TEXT NOT NULL DEFAULT (to_char(now() AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')),
|
|
168
|
+
write_count_since_consolidation INTEGER NOT NULL DEFAULT 0,
|
|
169
|
+
recall_count_since_consolidation INTEGER NOT NULL DEFAULT 0,
|
|
170
|
+
execution_state TEXT,
|
|
171
|
+
checkpoint_at TEXT,
|
|
172
|
+
last_consolidation_at TEXT,
|
|
173
|
+
last_mini_consolidation_at TEXT,
|
|
174
|
+
consolidation_cycle_count INTEGER NOT NULL DEFAULT 0,
|
|
175
|
+
updated_at TEXT NOT NULL DEFAULT (to_char(now() AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"'))
|
|
176
|
+
);
|
|
177
|
+
|
|
178
|
+
CREATE TABLE IF NOT EXISTS entity_mentions (
|
|
179
|
+
entity TEXT NOT NULL,
|
|
180
|
+
engram_id TEXT NOT NULL,
|
|
181
|
+
agent_id TEXT NOT NULL,
|
|
182
|
+
PRIMARY KEY (entity, engram_id)
|
|
183
|
+
);
|
|
184
|
+
|
|
185
|
+
CREATE INDEX IF NOT EXISTS idx_entity_mentions_agent ON entity_mentions(agent_id, entity);
|
|
186
|
+
|
|
187
|
+
CREATE TABLE IF NOT EXISTS entity_aliases (
|
|
188
|
+
alias TEXT PRIMARY KEY,
|
|
189
|
+
entity TEXT NOT NULL
|
|
190
|
+
);
|
|
164
191
|
`;
|
|
165
192
|
//# sourceMappingURL=pglite-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite-schema.js","sourceRoot":"","sources":["../../src/storage/pglite-schema.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;kCAQC,wBAAwB
|
|
1
|
+
{"version":3,"file":"pglite-schema.js","sourceRoot":"","sources":["../../src/storage/pglite-schema.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;kCAQC,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA2H9B,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCnD,CAAC"}
|
package/dist/storage/pglite.d.ts
CHANGED
|
@@ -146,6 +146,11 @@ export declare class PGliteEngramStore {
|
|
|
146
146
|
updateAutoCheckpointRecall(agentId: string, context: string, engramIds: string[]): Promise<void>;
|
|
147
147
|
touchActivity(agentId: string): Promise<void>;
|
|
148
148
|
saveCheckpoint(agentId: string, state: ConsciousState): Promise<void>;
|
|
149
|
+
/** Distinct agent ids present in this store (D3 whoami; includes all stages). */
|
|
150
|
+
listAgentIds(): Promise<string[]>;
|
|
151
|
+
recordEntityMentions(engramId: string, agentId: string, entities: string[]): Promise<void>;
|
|
152
|
+
searchEntities(term: string, limit?: number): Promise<string[]>;
|
|
153
|
+
getEngramIdsByEntity(entity: string, agentId?: string): Promise<string[]>;
|
|
149
154
|
getCheckpoint(agentId: string): Promise<CheckpointRow | null>;
|
|
150
155
|
markConsolidation(agentId: string, mini: boolean): Promise<void>;
|
|
151
156
|
getActiveAgents(): Promise<Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite.d.ts","sourceRoot":"","sources":["../../src/storage/pglite.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EACV,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAC/D,WAAW,EAAE,eAAe,EAAE,YAAY,EAC1C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAC9C,cAAc,EAAE,aAAa,EAC9B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"pglite.d.ts","sourceRoot":"","sources":["../../src/storage/pglite.ts"],"names":[],"mappings":"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"}
|