@signetai/signet-memory-openclaw 0.75.0 → 0.75.2

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.
Files changed (2) hide show
  1. package/dist/index.js +186 -0
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -7983,6 +7983,169 @@ function up40(db) {
7983
7983
  ON session_transcripts(created_at);
7984
7984
  `);
7985
7985
  }
7986
+ function addColumnIfMissing12(db, table, column, definition) {
7987
+ const cols = db.prepare(`PRAGMA table_info(${table})`).all();
7988
+ if (!cols.some((c) => c.name === column)) {
7989
+ db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`);
7990
+ }
7991
+ }
7992
+ function up41(db) {
7993
+ addColumnIfMissing12(db, "session_memories", "path_json", "TEXT");
7994
+ db.exec(`
7995
+ CREATE TABLE IF NOT EXISTS path_feedback_events (
7996
+ id TEXT PRIMARY KEY,
7997
+ agent_id TEXT NOT NULL,
7998
+ session_key TEXT NOT NULL,
7999
+ memory_id TEXT NOT NULL,
8000
+ path_hash TEXT NOT NULL,
8001
+ path_json TEXT NOT NULL,
8002
+ rating REAL NOT NULL,
8003
+ reward REAL NOT NULL DEFAULT 0,
8004
+ reward_forward REAL NOT NULL DEFAULT 0,
8005
+ reward_update REAL NOT NULL DEFAULT 0,
8006
+ reward_downstream REAL NOT NULL DEFAULT 0,
8007
+ reward_dead_end REAL NOT NULL DEFAULT 0,
8008
+ created_at TEXT NOT NULL
8009
+ );
8010
+
8011
+ CREATE INDEX IF NOT EXISTS idx_path_feedback_events_agent_path
8012
+ ON path_feedback_events(agent_id, path_hash);
8013
+ CREATE INDEX IF NOT EXISTS idx_path_feedback_events_session
8014
+ ON path_feedback_events(session_key);
8015
+ CREATE INDEX IF NOT EXISTS idx_path_feedback_events_memory
8016
+ ON path_feedback_events(memory_id);
8017
+
8018
+ CREATE TABLE IF NOT EXISTS path_feedback_stats (
8019
+ agent_id TEXT NOT NULL,
8020
+ path_hash TEXT NOT NULL,
8021
+ path_json TEXT NOT NULL,
8022
+ q_value REAL NOT NULL DEFAULT 0,
8023
+ sample_count INTEGER NOT NULL DEFAULT 0,
8024
+ positive_count INTEGER NOT NULL DEFAULT 0,
8025
+ negative_count INTEGER NOT NULL DEFAULT 0,
8026
+ neutral_count INTEGER NOT NULL DEFAULT 0,
8027
+ updated_at TEXT NOT NULL,
8028
+ created_at TEXT NOT NULL,
8029
+ PRIMARY KEY (agent_id, path_hash)
8030
+ );
8031
+
8032
+ CREATE TABLE IF NOT EXISTS entity_retrieval_stats (
8033
+ agent_id TEXT NOT NULL,
8034
+ entity_id TEXT NOT NULL,
8035
+ session_count INTEGER NOT NULL DEFAULT 0,
8036
+ last_session_key TEXT,
8037
+ updated_at TEXT NOT NULL,
8038
+ created_at TEXT NOT NULL,
8039
+ PRIMARY KEY (agent_id, entity_id)
8040
+ );
8041
+
8042
+ CREATE TABLE IF NOT EXISTS entity_cooccurrence (
8043
+ agent_id TEXT NOT NULL,
8044
+ source_entity_id TEXT NOT NULL,
8045
+ target_entity_id TEXT NOT NULL,
8046
+ session_count INTEGER NOT NULL DEFAULT 0,
8047
+ last_session_key TEXT,
8048
+ updated_at TEXT NOT NULL,
8049
+ created_at TEXT NOT NULL,
8050
+ PRIMARY KEY (agent_id, source_entity_id, target_entity_id)
8051
+ );
8052
+
8053
+ CREATE TABLE IF NOT EXISTS path_feedback_sessions (
8054
+ agent_id TEXT NOT NULL,
8055
+ session_key TEXT NOT NULL,
8056
+ created_at TEXT NOT NULL,
8057
+ PRIMARY KEY (agent_id, session_key)
8058
+ );
8059
+ `);
8060
+ }
8061
+ function addColumnIfMissing13(db, table, column, definition) {
8062
+ const cols = db.prepare(`PRAGMA table_info(${table})`).all();
8063
+ if (cols.some((col) => col.name === column))
8064
+ return;
8065
+ db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`);
8066
+ }
8067
+ function up42(db) {
8068
+ addColumnIfMissing13(db, "session_memories", "entity_slot", "INTEGER");
8069
+ addColumnIfMissing13(db, "session_memories", "aspect_slot", "INTEGER");
8070
+ addColumnIfMissing13(db, "session_memories", "is_constraint", "INTEGER NOT NULL DEFAULT 0");
8071
+ addColumnIfMissing13(db, "session_memories", "structural_density", "INTEGER");
8072
+ addColumnIfMissing13(db, "session_memories", "predictor_rank", "INTEGER");
8073
+ addColumnIfMissing13(db, "session_memories", "agent_relevance_score", "REAL");
8074
+ addColumnIfMissing13(db, "session_memories", "agent_feedback_count", "INTEGER DEFAULT 0");
8075
+ addColumnIfMissing13(db, "session_memories", "path_json", "TEXT");
8076
+ const cols = db.prepare("PRAGMA table_info(session_memories)").all();
8077
+ const hasAgent = cols.some((col) => col.name === "agent_id");
8078
+ const agentExpr = hasAgent ? "COALESCE(NULLIF(agent_id, ''), 'default')" : "'default'";
8079
+ db.exec(`
8080
+ CREATE TABLE IF NOT EXISTS session_memories_new (
8081
+ id TEXT PRIMARY KEY,
8082
+ session_key TEXT NOT NULL,
8083
+ agent_id TEXT NOT NULL DEFAULT 'default',
8084
+ memory_id TEXT NOT NULL,
8085
+ source TEXT NOT NULL,
8086
+ effective_score REAL,
8087
+ predictor_score REAL,
8088
+ final_score REAL NOT NULL,
8089
+ rank INTEGER NOT NULL,
8090
+ was_injected INTEGER NOT NULL,
8091
+ relevance_score REAL,
8092
+ fts_hit_count INTEGER NOT NULL DEFAULT 0,
8093
+ agent_preference TEXT,
8094
+ created_at TEXT NOT NULL,
8095
+ entity_slot INTEGER,
8096
+ aspect_slot INTEGER,
8097
+ is_constraint INTEGER NOT NULL DEFAULT 0,
8098
+ structural_density INTEGER,
8099
+ predictor_rank INTEGER,
8100
+ agent_relevance_score REAL,
8101
+ agent_feedback_count INTEGER DEFAULT 0,
8102
+ path_json TEXT,
8103
+ UNIQUE(session_key, agent_id, memory_id)
8104
+ );
8105
+
8106
+ INSERT INTO session_memories_new
8107
+ (id, session_key, agent_id, memory_id, source,
8108
+ effective_score, predictor_score, final_score, rank,
8109
+ was_injected, relevance_score, fts_hit_count,
8110
+ agent_preference, created_at, entity_slot, aspect_slot,
8111
+ is_constraint, structural_density, predictor_rank,
8112
+ agent_relevance_score, agent_feedback_count, path_json)
8113
+ SELECT
8114
+ id,
8115
+ session_key,
8116
+ ${agentExpr},
8117
+ memory_id,
8118
+ source,
8119
+ effective_score,
8120
+ predictor_score,
8121
+ final_score,
8122
+ rank,
8123
+ was_injected,
8124
+ relevance_score,
8125
+ fts_hit_count,
8126
+ agent_preference,
8127
+ created_at,
8128
+ entity_slot,
8129
+ aspect_slot,
8130
+ COALESCE(is_constraint, 0),
8131
+ structural_density,
8132
+ predictor_rank,
8133
+ agent_relevance_score,
8134
+ COALESCE(agent_feedback_count, 0),
8135
+ path_json
8136
+ FROM session_memories;
8137
+
8138
+ DROP TABLE session_memories;
8139
+ ALTER TABLE session_memories_new RENAME TO session_memories;
8140
+
8141
+ CREATE INDEX IF NOT EXISTS idx_session_memories_session
8142
+ ON session_memories(session_key);
8143
+ CREATE INDEX IF NOT EXISTS idx_session_memories_memory
8144
+ ON session_memories(memory_id);
8145
+ CREATE INDEX IF NOT EXISTS idx_session_memories_agent_session
8146
+ ON session_memories(agent_id, session_key);
8147
+ `);
8148
+ }
7986
8149
  var MIGRATIONS = [
7987
8150
  {
7988
8151
  version: 1,
@@ -8298,6 +8461,29 @@ var MIGRATIONS = [
8298
8461
  name: "session-transcripts",
8299
8462
  up: up40,
8300
8463
  artifacts: { tables: ["session_transcripts"] }
8464
+ },
8465
+ {
8466
+ version: 41,
8467
+ name: "path-feedback",
8468
+ up: up41,
8469
+ artifacts: {
8470
+ tables: [
8471
+ "path_feedback_events",
8472
+ "path_feedback_stats",
8473
+ "entity_retrieval_stats",
8474
+ "entity_cooccurrence",
8475
+ "path_feedback_sessions"
8476
+ ],
8477
+ columns: [{ table: "session_memories", column: "path_json" }]
8478
+ }
8479
+ },
8480
+ {
8481
+ version: 42,
8482
+ name: "session-memories-agent-id",
8483
+ up: up42,
8484
+ artifacts: {
8485
+ columns: [{ table: "session_memories", column: "agent_id" }]
8486
+ }
8301
8487
  }
8302
8488
  ];
8303
8489
  var LATEST_SCHEMA_VERSION = MIGRATIONS[MIGRATIONS.length - 1]?.version ?? 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signetai/signet-memory-openclaw",
3
- "version": "0.75.0",
3
+ "version": "0.75.2",
4
4
  "description": "Signet adapter for OpenClaw — runtime plugin for AI agent memory",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -36,7 +36,7 @@
36
36
  "@sinclair/typebox": "0.34.47"
37
37
  },
38
38
  "devDependencies": {
39
- "@signet/core": "0.75.0",
39
+ "@signet/core": "0.75.2",
40
40
  "@types/node": "^22.0.0"
41
41
  },
42
42
  "peerDependencies": {