@christopherlittle51/postclaw 1.0.2 → 1.0.3
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 +26 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -15
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/schemas/db.sql +0 -371
package/README.md
CHANGED
|
@@ -50,22 +50,46 @@
|
|
|
50
50
|
## Prerequisites
|
|
51
51
|
|
|
52
52
|
1. **OpenClaw** — installed and configured
|
|
53
|
-
2. **PostgreSQL** (v14+) — installed and running. The `pgvector` extension is installed automatically by the setup command.
|
|
53
|
+
2. **PostgreSQL** (v14+) — installed and running. Depending on your system, you may need the `postgresql-<version>-pgvector` package installed. The `pgvector` extension is installed automatically by the setup command.
|
|
54
54
|
3. **Node.js** (v18+) and **npm**
|
|
55
55
|
4. **Embedding Provider** — LM Studio, Ollama, or any OpenAI-compatible endpoint serving an embedding model (e.g. `nomic-embed-text-v2-moe`)
|
|
56
|
+
```json
|
|
57
|
+
"memorySearch": {
|
|
58
|
+
"provider": "openai",
|
|
59
|
+
"remote": {
|
|
60
|
+
"baseUrl": "http://<IP-ADDRESS>:<PORT>/v1",
|
|
61
|
+
"apiKey": "<API-KEY>"
|
|
62
|
+
},
|
|
63
|
+
"model": "text-embedding-nomic-embed-text-v2-moe"
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
5. **Tools Enabled** - At the least, you need the following permissions setup in your `openclaw.json`. This is a **Breaking Change** introduced in 2026.3.2 of OpenClaw:
|
|
67
|
+
```json
|
|
68
|
+
"tools": {
|
|
69
|
+
"profile": "messaging",
|
|
70
|
+
"alsoAllow": ["postclaw"] // OR group:plugins if you have other plugins installed.
|
|
71
|
+
},
|
|
72
|
+
```
|
|
56
73
|
|
|
57
74
|
---
|
|
58
75
|
|
|
59
76
|
## Quick Start
|
|
60
77
|
|
|
61
78
|
```bash
|
|
79
|
+
# PREREQUISITES
|
|
80
|
+
## You must have a password assigned to your postgres user if you are running openclaw from another user.
|
|
81
|
+
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'YOUR_PASSWORD';"
|
|
82
|
+
|
|
83
|
+
## Install pgvector plugin (change xx to your postgres version:
|
|
84
|
+
sudo apt install postgresql-xx-pgvector # Ubuntu/Debian example.
|
|
85
|
+
|
|
62
86
|
# 1. Install the plugin
|
|
63
87
|
openclaw plugins install @christopherlittle51/postclaw # from npm
|
|
64
88
|
# OR from a local path:
|
|
65
89
|
openclaw plugins install /path/to/PostClaw
|
|
66
90
|
|
|
67
91
|
# 2. Set up the database (creates DB, user, schema, everything)
|
|
68
|
-
openclaw postclaw setup
|
|
92
|
+
openclaw postclaw setup --admin-url postgres://<POSTGRES-USERNAME>:<PASSWORD>@[IP ADDRESS/localhost]/postgres
|
|
69
93
|
|
|
70
94
|
# 3. Restart the gateway
|
|
71
95
|
openclaw restart
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpJ,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC9M,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpJ,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC9M,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAStE,kDAAkD;AAClD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,kDAAkD;AAClD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAiDD,QAAA,MAAM,sBAAsB;;;;kBAKZ,GAAG;CAggBlB,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,8 @@ Object.defineProperty(exports, "storeMemory", { enumerable: true, get: function
|
|
|
24
24
|
Object.defineProperty(exports, "updateMemory", { enumerable: true, get: function () { return memoryService_js_1.updateMemory; } });
|
|
25
25
|
Object.defineProperty(exports, "linkMemories", { enumerable: true, get: function () { return memoryService_js_1.linkMemories; } });
|
|
26
26
|
Object.defineProperty(exports, "storeTool", { enumerable: true, get: function () { return memoryService_js_1.storeTool; } });
|
|
27
|
+
const db_js_2 = require("./services/db.js");
|
|
28
|
+
const sleep_cycle_js_1 = require("./scripts/sleep_cycle.js");
|
|
27
29
|
// =============================================================================
|
|
28
30
|
// IN-MEMORY DEDUPLICATION
|
|
29
31
|
// =============================================================================
|
|
@@ -42,7 +44,7 @@ function isDuplicate(key) {
|
|
|
42
44
|
// =============================================================================
|
|
43
45
|
// HELPERS
|
|
44
46
|
// =============================================================================
|
|
45
|
-
const
|
|
47
|
+
const db_js_3 = require("./services/db.js");
|
|
46
48
|
const memoryService_js_2 = require("./services/memoryService.js");
|
|
47
49
|
const typebox_1 = require("@sinclair/typebox");
|
|
48
50
|
/**
|
|
@@ -75,14 +77,14 @@ const openclawPostgresPlugin = {
|
|
|
75
77
|
// Apply database URL from plugin config (plugins.entries.postclaw.config.dbUrl)
|
|
76
78
|
const pluginConfig = api.config?.plugins?.entries?.postclaw?.config;
|
|
77
79
|
if (pluginConfig?.dbUrl) {
|
|
78
|
-
(0,
|
|
80
|
+
(0, db_js_3.setDbUrl)(pluginConfig.dbUrl);
|
|
79
81
|
console.log("[PostClaw] Database URL configured via plugin config");
|
|
80
82
|
}
|
|
81
83
|
// Extract LLM configuration from OpenClaw (defaulting to localhost if not found)
|
|
82
84
|
const memoryConfig = api.config?.agents?.defaults?.memorySearch;
|
|
83
85
|
const llmUrl = memoryConfig?.remote?.baseUrl || "http://127.0.0.1:1234/v1";
|
|
84
86
|
const llmModel = memoryConfig?.remote?.model || memoryConfig?.model || "text-embedding-nomic-embed-text-v2-moe";
|
|
85
|
-
(0,
|
|
87
|
+
(0, db_js_3.setEmbeddingConfig)(llmUrl, llmModel);
|
|
86
88
|
// -------------------------------------------------------------------------
|
|
87
89
|
// before_prompt_build — Prune + replace system prompt, inject RAG context
|
|
88
90
|
//
|
|
@@ -158,7 +160,7 @@ const openclawPostgresPlugin = {
|
|
|
158
160
|
const result = {};
|
|
159
161
|
if (!isHeartbeat) {
|
|
160
162
|
const hasUserText = cleanText.trim().length > 0;
|
|
161
|
-
const embedding = hasUserText ? await (0,
|
|
163
|
+
const embedding = hasUserText ? await (0, db_js_3.getEmbedding)(cleanText) : null;
|
|
162
164
|
const [memoryContext, personaContext] = await Promise.all([
|
|
163
165
|
// RAG: only when we have user text to search against
|
|
164
166
|
hasUserText ? (0, memoryService_js_2.searchPostgres)(agentId, cleanText) : Promise.resolve(null),
|
|
@@ -327,7 +329,7 @@ const openclawPostgresPlugin = {
|
|
|
327
329
|
if (!isDuplicate(text)) {
|
|
328
330
|
promises.push((async () => {
|
|
329
331
|
try {
|
|
330
|
-
const embedding = await (0,
|
|
332
|
+
const embedding = await (0, db_js_3.getEmbedding)(text);
|
|
331
333
|
await (0, memoryService_js_2.logEpisodicMemory)(agentId, text, embedding, "user_prompt");
|
|
332
334
|
}
|
|
333
335
|
catch (err) {
|
|
@@ -348,7 +350,7 @@ const openclawPostgresPlugin = {
|
|
|
348
350
|
promises.push((async () => {
|
|
349
351
|
try {
|
|
350
352
|
const summary = `Agent executed tool: ${toolCall.function.name} with arguments: ${toolCall.function.arguments}`;
|
|
351
|
-
const embedding = await (0,
|
|
353
|
+
const embedding = await (0, db_js_3.getEmbedding)(summary);
|
|
352
354
|
await (0, memoryService_js_2.logEpisodicToolCall)(agentId, toolCallId, toolCall.function.name, toolCall.function.arguments, embedding);
|
|
353
355
|
}
|
|
354
356
|
catch (err) {
|
|
@@ -415,6 +417,9 @@ const openclawPostgresPlugin = {
|
|
|
415
417
|
dbPassword: opts.dbPassword,
|
|
416
418
|
skipConfig: opts.skipConfig,
|
|
417
419
|
});
|
|
420
|
+
// Clean exit: Stop the timer and close the DB connection
|
|
421
|
+
(0, sleep_cycle_js_1.stopService)();
|
|
422
|
+
await (0, db_js_2.getSql)().end();
|
|
418
423
|
});
|
|
419
424
|
postclaw
|
|
420
425
|
.command("persona")
|
|
@@ -427,11 +432,11 @@ const openclawPostgresPlugin = {
|
|
|
427
432
|
const memCfg = api.config?.agents?.defaults?.memorySearch;
|
|
428
433
|
const llmUrl = memCfg?.remote?.baseUrl || "http://127.0.0.1:1234/v1";
|
|
429
434
|
const embModel = memCfg?.remote?.model || memCfg?.model || "text-embedding-nomic-embed-text-v2-moe";
|
|
430
|
-
(0,
|
|
435
|
+
(0, db_js_3.setEmbeddingConfig)(llmUrl, embModel);
|
|
431
436
|
// Apply dbUrl from plugin config
|
|
432
437
|
const pluginCfg = api.config?.plugins?.entries?.postclaw?.config;
|
|
433
438
|
if (pluginCfg?.dbUrl) {
|
|
434
|
-
(0,
|
|
439
|
+
(0, db_js_3.setDbUrl)(pluginCfg.dbUrl);
|
|
435
440
|
}
|
|
436
441
|
const { bootstrapPersona } = await import("./scripts/bootstrap_persona.js");
|
|
437
442
|
await bootstrapPersona(file, {
|
|
@@ -439,6 +444,9 @@ const openclawPostgresPlugin = {
|
|
|
439
444
|
llmUrl: llmUrl,
|
|
440
445
|
llmModel: opts.llmModel,
|
|
441
446
|
});
|
|
447
|
+
// Clean exit: Stop the timer and close the DB connection
|
|
448
|
+
(0, sleep_cycle_js_1.stopService)();
|
|
449
|
+
await (0, db_js_2.getSql)().end();
|
|
442
450
|
});
|
|
443
451
|
postclaw
|
|
444
452
|
.command("sleep")
|
|
@@ -450,11 +458,11 @@ const openclawPostgresPlugin = {
|
|
|
450
458
|
const memCfg = api.config?.agents?.defaults?.memorySearch;
|
|
451
459
|
const llmUrl = memCfg?.remote?.baseUrl || "http://127.0.0.1:1234/v1";
|
|
452
460
|
const embModel = memCfg?.remote?.model || memCfg?.model || "text-embedding-nomic-embed-text-v2-moe";
|
|
453
|
-
(0,
|
|
461
|
+
(0, db_js_3.setEmbeddingConfig)(llmUrl, embModel);
|
|
454
462
|
// Apply dbUrl from plugin config
|
|
455
463
|
const pluginCfg = api.config?.plugins?.entries?.postclaw?.config;
|
|
456
464
|
if (pluginCfg?.dbUrl) {
|
|
457
|
-
(0,
|
|
465
|
+
(0, db_js_3.setDbUrl)(pluginCfg.dbUrl);
|
|
458
466
|
}
|
|
459
467
|
const { runSleepCycle } = await import("./scripts/sleep_cycle.js");
|
|
460
468
|
await runSleepCycle({
|
|
@@ -462,6 +470,9 @@ const openclawPostgresPlugin = {
|
|
|
462
470
|
llmUrl: llmUrl,
|
|
463
471
|
llmModel: opts.llmModel,
|
|
464
472
|
});
|
|
473
|
+
// Clean exit: Stop the timer and close the DB connection
|
|
474
|
+
(0, sleep_cycle_js_1.stopService)();
|
|
475
|
+
await (0, db_js_2.getSql)().end();
|
|
465
476
|
});
|
|
466
477
|
}, { commands: ["postclaw"] });
|
|
467
478
|
// ─────────────────────────────────────────────────────────────────────────
|
|
@@ -489,17 +500,17 @@ exports.default = openclawPostgresPlugin;
|
|
|
489
500
|
// =============================================================================
|
|
490
501
|
// STANDALONE ENTRY POINT (for testing)
|
|
491
502
|
// =============================================================================
|
|
492
|
-
const
|
|
503
|
+
const db_js_4 = require("./services/db.js");
|
|
493
504
|
if (require.main === module) {
|
|
494
505
|
console.log("=== PostClaw-swarm plugin loaded ===");
|
|
495
|
-
console.log(` DB: ${
|
|
496
|
-
console.log(` LM: ${
|
|
497
|
-
console.log(` Model: ${
|
|
506
|
+
console.log(` DB: ${db_js_4.POSTCLAW_DB_URL}`);
|
|
507
|
+
console.log(` LM: ${db_js_4.LM_STUDIO_URL}`);
|
|
508
|
+
console.log(` Model: ${db_js_4.EMBEDDING_MODEL}`);
|
|
498
509
|
console.log("Hooks: before_prompt_build, agent_end, message_received");
|
|
499
510
|
// Graceful shutdown
|
|
500
511
|
process.on("SIGINT", async () => {
|
|
501
512
|
console.log("\nShutting down...");
|
|
502
|
-
await (0,
|
|
513
|
+
await (0, db_js_2.getSql)().end();
|
|
503
514
|
process.exit(0);
|
|
504
515
|
});
|
|
505
516
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/schemas/db.sql
DELETED
|
@@ -1,371 +0,0 @@
|
|
|
1
|
-
CREATE USER openclaw WITH LOGIN PASSWORD '6599';
|
|
2
|
-
|
|
3
|
-
GRANT CONNECT ON DATABASE memorydb TO openclaw;
|
|
4
|
-
|
|
5
|
-
-- 1. Core Extensions
|
|
6
|
-
CREATE EXTENSION IF NOT EXISTS vector;
|
|
7
|
-
CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
|
8
|
-
|
|
9
|
-
-- 2. Enumerated Types
|
|
10
|
-
CREATE TYPE access_scope_enum AS ENUM ('private', 'shared', 'global');
|
|
11
|
-
CREATE TYPE memory_tier_enum AS ENUM ('volatile', 'session', 'daily', 'stable', 'permanent');
|
|
12
|
-
CREATE TYPE volatility_enum AS ENUM ('low', 'medium', 'high');
|
|
13
|
-
|
|
14
|
-
-- ==========================================
|
|
15
|
-
-- LAYER 0: IDENTITY & TRIGGERS (NEW)
|
|
16
|
-
-- ==========================================
|
|
17
|
-
|
|
18
|
-
-- Trigger to automatically handle updated_at
|
|
19
|
-
CREATE OR REPLACE FUNCTION update_modified_column()
|
|
20
|
-
RETURNS TRIGGER AS $$
|
|
21
|
-
BEGIN
|
|
22
|
-
NEW.updated_at = CURRENT_TIMESTAMP;
|
|
23
|
-
RETURN NEW;
|
|
24
|
-
END;
|
|
25
|
-
$$ language 'plpgsql';
|
|
26
|
-
|
|
27
|
-
-- Function to enforce global record ownership while allowing superceding memories
|
|
28
|
-
CREATE OR REPLACE FUNCTION enforce_immutable_ownership()
|
|
29
|
-
RETURNS TRIGGER AS $$
|
|
30
|
-
BEGIN
|
|
31
|
-
-- Prevent identity spoofing or stealing global memories
|
|
32
|
-
IF NEW.agent_id <> OLD.agent_id THEN
|
|
33
|
-
RAISE EXCEPTION 'Epistemic violation: Cannot change the original author (agent_id) of a memory.';
|
|
34
|
-
END IF;
|
|
35
|
-
RETURN NEW;
|
|
36
|
-
END;
|
|
37
|
-
$$ LANGUAGE plpgsql;
|
|
38
|
-
|
|
39
|
-
-- Core Agents Table (Prevents orphaned memories)
|
|
40
|
-
CREATE TABLE agents (
|
|
41
|
-
id VARCHAR(100) PRIMARY KEY,
|
|
42
|
-
name VARCHAR(255) NOT NULL,
|
|
43
|
-
default_embedding_model VARCHAR(100) DEFAULT 'nomic-embed-text-v2-moe',
|
|
44
|
-
embedding_dimensions INT DEFAULT 768,
|
|
45
|
-
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
46
|
-
is_active BOOLEAN DEFAULT true
|
|
47
|
-
);
|
|
48
|
-
|
|
49
|
-
-- ==========================================
|
|
50
|
-
-- LAYER 1: THE CONSTITUTION & PROTOCOLS
|
|
51
|
-
-- ==========================================
|
|
52
|
-
|
|
53
|
-
CREATE TABLE agent_persona (
|
|
54
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
55
|
-
agent_id VARCHAR(100) NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
|
|
56
|
-
access_scope access_scope_enum DEFAULT 'private',
|
|
57
|
-
category VARCHAR(50) NOT NULL,
|
|
58
|
-
content TEXT NOT NULL,
|
|
59
|
-
is_always_active BOOLEAN DEFAULT false,
|
|
60
|
-
|
|
61
|
-
-- Removed hardcoded dimensions to support model swapping
|
|
62
|
-
embedding vector,
|
|
63
|
-
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
64
|
-
UNIQUE(agent_id, category)
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
CREATE TABLE context_environment (
|
|
68
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
69
|
-
agent_id VARCHAR(100) NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
|
|
70
|
-
access_scope access_scope_enum DEFAULT 'private',
|
|
71
|
-
tool_name VARCHAR(100) NOT NULL,
|
|
72
|
-
context_data TEXT NOT NULL,
|
|
73
|
-
embedding vector,
|
|
74
|
-
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
75
|
-
UNIQUE(agent_id, tool_name) -- NEW: Prevents duplicate tool definitions
|
|
76
|
-
);
|
|
77
|
-
|
|
78
|
-
-- ==========================================
|
|
79
|
-
-- LAYER 2: THE ACTIVE BRAIN (With Drift Protection)
|
|
80
|
-
-- ==========================================
|
|
81
|
-
|
|
82
|
-
CREATE TABLE memory_semantic (
|
|
83
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
84
|
-
agent_id VARCHAR(100) NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
|
|
85
|
-
access_scope access_scope_enum DEFAULT 'private',
|
|
86
|
-
|
|
87
|
-
content TEXT NOT NULL,
|
|
88
|
-
content_hash VARCHAR(64) NOT NULL,
|
|
89
|
-
category VARCHAR(50),
|
|
90
|
-
|
|
91
|
-
source_uri VARCHAR(512),
|
|
92
|
-
volatility volatility_enum DEFAULT 'low',
|
|
93
|
-
is_pointer BOOLEAN DEFAULT false,
|
|
94
|
-
|
|
95
|
-
-- AI Operations
|
|
96
|
-
embedding vector,
|
|
97
|
-
embedding_model VARCHAR(100) NOT NULL, -- Required to group vectors for HNSW
|
|
98
|
-
token_count INT NOT NULL DEFAULT 0,
|
|
99
|
-
|
|
100
|
-
-- FTS switched to 'simple' dictionary to preserve exact code/JSON tokens
|
|
101
|
-
fts_vector tsvector GENERATED ALWAYS AS (to_tsvector('simple'::regconfig, content)) STORED,
|
|
102
|
-
|
|
103
|
-
confidence REAL DEFAULT 0.5,
|
|
104
|
-
tier memory_tier_enum DEFAULT 'daily',
|
|
105
|
-
usefulness_score REAL DEFAULT 0.0,
|
|
106
|
-
|
|
107
|
-
injection_count INT DEFAULT 0,
|
|
108
|
-
access_count INT DEFAULT 0,
|
|
109
|
-
last_injected_at TIMESTAMPTZ,
|
|
110
|
-
last_accessed_at TIMESTAMPTZ,
|
|
111
|
-
|
|
112
|
-
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
113
|
-
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
114
|
-
expires_at TIMESTAMPTZ,
|
|
115
|
-
is_archived BOOLEAN DEFAULT false,
|
|
116
|
-
|
|
117
|
-
-- AI Metadata & Reasoning Trace
|
|
118
|
-
metadata JSONB DEFAULT '{}'::jsonb,
|
|
119
|
-
superseded_by UUID REFERENCES memory_semantic(id) ON DELETE SET NULL,
|
|
120
|
-
|
|
121
|
-
UNIQUE(agent_id, content_hash)
|
|
122
|
-
);
|
|
123
|
-
|
|
124
|
-
CREATE TRIGGER update_memory_semantic_modtime
|
|
125
|
-
BEFORE UPDATE ON memory_semantic
|
|
126
|
-
FOR EACH ROW EXECUTE FUNCTION update_modified_column();
|
|
127
|
-
|
|
128
|
-
CREATE TRIGGER trg_immutable_memory_owner
|
|
129
|
-
BEFORE UPDATE ON memory_semantic
|
|
130
|
-
FOR EACH ROW EXECUTE FUNCTION enforce_immutable_ownership();
|
|
131
|
-
|
|
132
|
-
CREATE TABLE memory_episodic (
|
|
133
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
134
|
-
agent_id VARCHAR(100) NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
|
|
135
|
-
session_id VARCHAR(100) NOT NULL,
|
|
136
|
-
|
|
137
|
-
event_summary TEXT NOT NULL,
|
|
138
|
-
event_type VARCHAR(50),
|
|
139
|
-
source_uri VARCHAR(512),
|
|
140
|
-
|
|
141
|
-
embedding vector,
|
|
142
|
-
embedding_model VARCHAR(100) NOT NULL,
|
|
143
|
-
token_count INT NOT NULL DEFAULT 0,
|
|
144
|
-
|
|
145
|
-
fts_vector tsvector GENERATED ALWAYS AS (to_tsvector('simple'::regconfig, event_summary)) STORED,
|
|
146
|
-
|
|
147
|
-
usefulness_score REAL DEFAULT 0.0,
|
|
148
|
-
metadata JSONB DEFAULT '{}'::jsonb,
|
|
149
|
-
|
|
150
|
-
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
151
|
-
is_archived BOOLEAN DEFAULT false
|
|
152
|
-
);
|
|
153
|
-
|
|
154
|
-
-- ==========================================
|
|
155
|
-
-- LAYER 3: ADVANCED FACULTIES
|
|
156
|
-
-- ==========================================
|
|
157
|
-
|
|
158
|
-
CREATE TABLE conversation_checkpoints (
|
|
159
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
160
|
-
agent_id VARCHAR(100) NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
|
|
161
|
-
session_id VARCHAR(100) NOT NULL,
|
|
162
|
-
summary TEXT NOT NULL,
|
|
163
|
-
active_tasks JSONB,
|
|
164
|
-
token_count INT,
|
|
165
|
-
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
|
|
166
|
-
);
|
|
167
|
-
|
|
168
|
-
CREATE TABLE entity_edges (
|
|
169
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
170
|
-
agent_id VARCHAR(100) NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
|
|
171
|
-
|
|
172
|
-
-- Removed ON DELETE CASCADE to prevent RAG amnesia.
|
|
173
|
-
-- Relies on application-level soft deletion handling.
|
|
174
|
-
source_memory_id UUID REFERENCES memory_semantic(id),
|
|
175
|
-
target_memory_id UUID REFERENCES memory_semantic(id),
|
|
176
|
-
relationship_type VARCHAR(100) NOT NULL,
|
|
177
|
-
weight REAL DEFAULT 1.0,
|
|
178
|
-
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
179
|
-
|
|
180
|
-
-- Prevent self-referential graph loops
|
|
181
|
-
CHECK (source_memory_id != target_memory_id),
|
|
182
|
-
UNIQUE(source_memory_id, target_memory_id, relationship_type)
|
|
183
|
-
);
|
|
184
|
-
|
|
185
|
-
-- ==========================================
|
|
186
|
-
-- INDICES & PERFORMANCE
|
|
187
|
-
-- ==========================================
|
|
188
|
-
|
|
189
|
-
-- Standard and File Watcher Indices
|
|
190
|
-
CREATE INDEX idx_mem_sem_agent_tier ON memory_semantic(agent_id, tier, is_archived);
|
|
191
|
-
CREATE INDEX idx_mem_sem_hash ON memory_semantic(content_hash);
|
|
192
|
-
CREATE INDEX idx_mem_epi_session ON memory_episodic(agent_id, session_id, is_archived);
|
|
193
|
-
CREATE INDEX idx_mem_sem_source_uri ON memory_semantic(source_uri) WHERE source_uri IS NOT NULL;
|
|
194
|
-
CREATE INDEX idx_mem_sem_metadata ON memory_semantic USING gin (metadata);
|
|
195
|
-
CREATE INDEX idx_mem_epi_metadata ON memory_episodic USING gin (metadata);
|
|
196
|
-
CREATE INDEX idx_mem_sem_expires ON memory_semantic(expires_at) WHERE expires_at IS NOT NULL;
|
|
197
|
-
|
|
198
|
-
-- Search Indices
|
|
199
|
-
CREATE INDEX ON memory_semantic USING gin (fts_vector);
|
|
200
|
-
CREATE INDEX ON memory_episodic USING gin (fts_vector);
|
|
201
|
-
|
|
202
|
-
-- Partial HNSW Vector Indices (Segmented by model and cast to specific dimensions)
|
|
203
|
-
CREATE INDEX idx_mem_sem_vector_nomic ON memory_semantic USING hnsw ((embedding::vector(768)) vector_cosine_ops) WHERE embedding_model = 'nomic-embed-text-v2-moe';
|
|
204
|
-
CREATE INDEX idx_mem_sem_vector_openai ON memory_semantic USING hnsw ((embedding::vector(1536)) vector_cosine_ops) WHERE embedding_model = 'text-embedding-3-small';
|
|
205
|
-
|
|
206
|
-
-- GraphRAG Traversal Indices
|
|
207
|
-
CREATE INDEX idx_edges_source ON entity_edges(source_memory_id);
|
|
208
|
-
CREATE INDEX idx_edges_target ON entity_edges(target_memory_id);
|
|
209
|
-
|
|
210
|
-
-- Causal Chain Index (Allows fast lookups of "Which memories were superseded by X?")
|
|
211
|
-
CREATE INDEX idx_mem_sem_superseded ON memory_semantic(superseded_by) WHERE superseded_by IS NOT NULL;
|
|
212
|
-
|
|
213
|
-
-- ==========================================
|
|
214
|
-
-- ADMIN USER SETUP
|
|
215
|
-
-- ==========================================
|
|
216
|
-
|
|
217
|
-
-- Create a role for your backend admin/system jobs
|
|
218
|
-
CREATE ROLE system_admin WITH LOGIN PASSWORD 'snack-trailing-gathering-effective-spiritual-balsamic';
|
|
219
|
-
|
|
220
|
-
-- Grant this role the power to ignore RLS
|
|
221
|
-
ALTER ROLE system_admin BYPASSRLS;
|
|
222
|
-
|
|
223
|
-
-- (Give them standard read/write permissions as well)
|
|
224
|
-
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO system_admin;
|
|
225
|
-
|
|
226
|
-
-- ==========================================
|
|
227
|
-
-- ROW-LEVEL SECURITY (RLS)
|
|
228
|
-
-- ==========================================
|
|
229
|
-
|
|
230
|
-
-- Enable RLS across ALL relevant tables
|
|
231
|
-
ALTER TABLE memory_semantic ENABLE ROW LEVEL SECURITY;
|
|
232
|
-
ALTER TABLE memory_episodic ENABLE ROW LEVEL SECURITY;
|
|
233
|
-
ALTER TABLE agent_persona ENABLE ROW LEVEL SECURITY;
|
|
234
|
-
ALTER TABLE context_environment ENABLE ROW LEVEL SECURITY;
|
|
235
|
-
ALTER TABLE entity_edges ENABLE ROW LEVEL SECURITY;
|
|
236
|
-
|
|
237
|
-
-- 1. Read Policy: Can read own memories + shared/global memories
|
|
238
|
-
CREATE POLICY semantic_read ON memory_semantic FOR SELECT
|
|
239
|
-
USING (agent_id = current_setting('app.current_agent_id', true) OR access_scope IN ('shared', 'global'));
|
|
240
|
-
|
|
241
|
-
-- 2. Insert Policy: Can ONLY insert memories as yourself
|
|
242
|
-
CREATE POLICY semantic_insert ON memory_semantic FOR INSERT
|
|
243
|
-
WITH CHECK (agent_id = current_setting('app.current_agent_id', true));
|
|
244
|
-
|
|
245
|
-
-- 3. Update Policy: Can ONLY update YOUR memories. You cannot alter someone else's global memory.
|
|
246
|
-
CREATE POLICY semantic_update ON memory_semantic FOR UPDATE
|
|
247
|
-
USING (
|
|
248
|
-
-- You can target the row if you own it, OR if it's a global fact
|
|
249
|
-
agent_id = current_setting('app.current_agent_id', true)
|
|
250
|
-
OR access_scope = 'global'
|
|
251
|
-
)
|
|
252
|
-
WITH CHECK (
|
|
253
|
-
-- If you update a global memory, you CANNOT downgrade it to private.
|
|
254
|
-
-- It must remain global for the rest of the hive mind.
|
|
255
|
-
(agent_id = current_setting('app.current_agent_id', true))
|
|
256
|
-
OR
|
|
257
|
-
(access_scope = 'global')
|
|
258
|
-
);
|
|
259
|
-
|
|
260
|
-
-- 4. Delete Policy: Can ONLY delete YOUR memories.
|
|
261
|
-
CREATE POLICY semantic_delete ON memory_semantic FOR DELETE
|
|
262
|
-
USING (agent_id = current_setting('app.current_agent_id', true));
|
|
263
|
-
|
|
264
|
-
-- ==========================================
|
|
265
|
-
-- AGENT PERSONA POLICIES
|
|
266
|
-
-- ==========================================
|
|
267
|
-
CREATE POLICY persona_read ON agent_persona FOR SELECT
|
|
268
|
-
USING (agent_id = current_setting('app.current_agent_id', true) OR access_scope IN ('shared', 'global'));
|
|
269
|
-
|
|
270
|
-
CREATE POLICY persona_insert ON agent_persona FOR INSERT
|
|
271
|
-
WITH CHECK (agent_id = current_setting('app.current_agent_id', true));
|
|
272
|
-
|
|
273
|
-
CREATE POLICY persona_update ON agent_persona FOR UPDATE
|
|
274
|
-
USING (agent_id = current_setting('app.current_agent_id', true) OR access_scope = 'global')
|
|
275
|
-
WITH CHECK (agent_id = current_setting('app.current_agent_id', true) OR access_scope = 'global');
|
|
276
|
-
|
|
277
|
-
CREATE POLICY persona_delete ON agent_persona FOR DELETE
|
|
278
|
-
USING (agent_id = current_setting('app.current_agent_id', true));
|
|
279
|
-
|
|
280
|
-
-- ==========================================
|
|
281
|
-
-- CONTEXT ENVIRONMENT (TOOLS) POLICIES
|
|
282
|
-
-- ==========================================
|
|
283
|
-
CREATE POLICY context_read ON context_environment FOR SELECT
|
|
284
|
-
USING (agent_id = current_setting('app.current_agent_id', true) OR access_scope IN ('shared', 'global'));
|
|
285
|
-
|
|
286
|
-
CREATE POLICY context_insert ON context_environment FOR INSERT
|
|
287
|
-
WITH CHECK (agent_id = current_setting('app.current_agent_id', true));
|
|
288
|
-
|
|
289
|
-
CREATE POLICY context_update ON context_environment FOR UPDATE
|
|
290
|
-
USING (agent_id = current_setting('app.current_agent_id', true) OR access_scope = 'global')
|
|
291
|
-
WITH CHECK (agent_id = current_setting('app.current_agent_id', true) OR access_scope = 'global');
|
|
292
|
-
|
|
293
|
-
CREATE POLICY context_delete ON context_environment FOR DELETE
|
|
294
|
-
USING (agent_id = current_setting('app.current_agent_id', true));
|
|
295
|
-
|
|
296
|
-
-- * CRITICAL SECURITY NOTE: Just like semantic_memory, you must apply the
|
|
297
|
-
-- immutable ownership trigger here so agents can't steal global tools/personas during an UPDATE.
|
|
298
|
-
CREATE TRIGGER trg_immutable_persona_owner BEFORE UPDATE ON agent_persona
|
|
299
|
-
FOR EACH ROW EXECUTE FUNCTION enforce_immutable_ownership();
|
|
300
|
-
CREATE TRIGGER trg_immutable_context_owner BEFORE UPDATE ON context_environment
|
|
301
|
-
FOR EACH ROW EXECUTE FUNCTION enforce_immutable_ownership();
|
|
302
|
-
|
|
303
|
-
-- Ensure RLS is active on Checkpoints (we missed this in the original ALTER TABLE block)
|
|
304
|
-
ALTER TABLE conversation_checkpoints ENABLE ROW LEVEL SECURITY;
|
|
305
|
-
|
|
306
|
-
-- ==========================================
|
|
307
|
-
-- EPISODIC MEMORY POLICIES
|
|
308
|
-
-- ==========================================
|
|
309
|
-
CREATE POLICY episodic_read ON memory_episodic FOR SELECT
|
|
310
|
-
USING (agent_id = current_setting('app.current_agent_id', true));
|
|
311
|
-
|
|
312
|
-
CREATE POLICY episodic_insert ON memory_episodic FOR INSERT
|
|
313
|
-
WITH CHECK (agent_id = current_setting('app.current_agent_id', true));
|
|
314
|
-
|
|
315
|
-
CREATE POLICY episodic_update ON memory_episodic FOR UPDATE
|
|
316
|
-
USING (agent_id = current_setting('app.current_agent_id', true))
|
|
317
|
-
WITH CHECK (agent_id = current_setting('app.current_agent_id', true));
|
|
318
|
-
|
|
319
|
-
CREATE POLICY episodic_delete ON memory_episodic FOR DELETE
|
|
320
|
-
USING (agent_id = current_setting('app.current_agent_id', true));
|
|
321
|
-
|
|
322
|
-
-- ==========================================
|
|
323
|
-
-- CONVERSATION CHECKPOINTS POLICIES
|
|
324
|
-
-- ==========================================
|
|
325
|
-
CREATE POLICY checkpoint_read ON conversation_checkpoints FOR SELECT
|
|
326
|
-
USING (agent_id = current_setting('app.current_agent_id', true));
|
|
327
|
-
|
|
328
|
-
CREATE POLICY checkpoint_insert ON conversation_checkpoints FOR INSERT
|
|
329
|
-
WITH CHECK (agent_id = current_setting('app.current_agent_id', true));
|
|
330
|
-
|
|
331
|
-
CREATE POLICY checkpoint_update ON conversation_checkpoints FOR UPDATE
|
|
332
|
-
USING (agent_id = current_setting('app.current_agent_id', true))
|
|
333
|
-
WITH CHECK (agent_id = current_setting('app.current_agent_id', true));
|
|
334
|
-
|
|
335
|
-
CREATE POLICY checkpoint_delete ON conversation_checkpoints FOR DELETE
|
|
336
|
-
USING (agent_id = current_setting('app.current_agent_id', true));
|
|
337
|
-
|
|
338
|
-
-- ==========================================
|
|
339
|
-
-- KNOWLEDGE GRAPH EDGES POLICIES
|
|
340
|
-
-- ==========================================
|
|
341
|
-
|
|
342
|
-
-- READ: You can see an edge if you drew it yourself, OR if it connects
|
|
343
|
-
-- to at least one memory node that is shared/global.
|
|
344
|
-
CREATE POLICY edge_read ON entity_edges FOR SELECT
|
|
345
|
-
USING (
|
|
346
|
-
agent_id = current_setting('app.current_agent_id', true)
|
|
347
|
-
OR EXISTS (
|
|
348
|
-
SELECT 1 FROM memory_semantic ms
|
|
349
|
-
WHERE ms.id IN (source_memory_id, target_memory_id)
|
|
350
|
-
AND ms.access_scope IN ('shared', 'global')
|
|
351
|
-
)
|
|
352
|
-
);
|
|
353
|
-
|
|
354
|
-
-- INSERT: You can only draw edges as yourself
|
|
355
|
-
CREATE POLICY edge_insert ON entity_edges FOR INSERT
|
|
356
|
-
WITH CHECK (agent_id = current_setting('app.current_agent_id', true));
|
|
357
|
-
|
|
358
|
-
-- UPDATE: Edges are simple metadata (weights, relationship type).
|
|
359
|
-
-- Only the agent who mapped the relationship should be able to update its weight.
|
|
360
|
-
CREATE POLICY edge_update ON entity_edges FOR UPDATE
|
|
361
|
-
USING (agent_id = current_setting('app.current_agent_id', true))
|
|
362
|
-
WITH CHECK (agent_id = current_setting('app.current_agent_id', true));
|
|
363
|
-
|
|
364
|
-
-- DELETE: You can only delete edges you authored
|
|
365
|
-
CREATE POLICY edge_delete ON entity_edges FOR DELETE
|
|
366
|
-
USING (agent_id = current_setting('app.current_agent_id', true));
|
|
367
|
-
|
|
368
|
-
-- Move this to the BOTTOM of init.sql (after all tables are created)
|
|
369
|
-
GRANT USAGE ON SCHEMA public TO openclaw;
|
|
370
|
-
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO openclaw;
|
|
371
|
-
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO openclaw;
|