@signetai/signet-memory-openclaw 0.85.2 → 0.85.4

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 +178 -0
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -8567,6 +8567,176 @@ function up49(db) {
8567
8567
  );
8568
8568
  `);
8569
8569
  }
8570
+ function hasTable(db, name) {
8571
+ return db.prepare(`SELECT name
8572
+ FROM sqlite_master
8573
+ WHERE type = 'table' AND name = ?
8574
+ LIMIT 1`).get(name) !== undefined;
8575
+ }
8576
+ function up50(db) {
8577
+ db.exec(`
8578
+ CREATE TABLE IF NOT EXISTS entity_dependency_history (
8579
+ id TEXT PRIMARY KEY,
8580
+ dependency_id TEXT NOT NULL,
8581
+ source_entity_id TEXT NOT NULL,
8582
+ target_entity_id TEXT NOT NULL,
8583
+ agent_id TEXT NOT NULL DEFAULT 'default',
8584
+ dependency_type TEXT NOT NULL,
8585
+ event TEXT NOT NULL,
8586
+ changed_by TEXT NOT NULL,
8587
+ reason TEXT NOT NULL,
8588
+ previous_reason TEXT,
8589
+ metadata TEXT,
8590
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
8591
+ );
8592
+
8593
+ CREATE INDEX IF NOT EXISTS idx_entity_dependency_history_dep
8594
+ ON entity_dependency_history(dependency_id);
8595
+ CREATE INDEX IF NOT EXISTS idx_entity_dependency_history_agent
8596
+ ON entity_dependency_history(agent_id);
8597
+ CREATE INDEX IF NOT EXISTS idx_entity_dependency_history_created
8598
+ ON entity_dependency_history(created_at DESC);
8599
+ `);
8600
+ if (!hasTable(db, "entity_dependencies"))
8601
+ return;
8602
+ db.exec("DROP TRIGGER IF EXISTS trg_entity_dependencies_related_to_reason_insert");
8603
+ db.exec("DROP TRIGGER IF EXISTS trg_entity_dependencies_related_to_reason_update");
8604
+ db.exec("DROP TRIGGER IF EXISTS trg_entity_dependencies_audit_insert");
8605
+ db.exec("DROP TRIGGER IF EXISTS trg_entity_dependencies_audit_update");
8606
+ db.exec("DROP TRIGGER IF EXISTS trg_entity_dependencies_audit_delete");
8607
+ db.exec(`
8608
+ CREATE TRIGGER trg_entity_dependencies_related_to_reason_insert
8609
+ BEFORE INSERT ON entity_dependencies
8610
+ FOR EACH ROW
8611
+ WHEN NEW.dependency_type = 'related_to'
8612
+ AND (NEW.reason IS NULL OR length(trim(NEW.reason)) = 0)
8613
+ BEGIN
8614
+ SELECT RAISE(ABORT, 'related_to dependencies require a non-empty reason');
8615
+ END;
8616
+ `);
8617
+ db.exec(`
8618
+ CREATE TRIGGER trg_entity_dependencies_related_to_reason_update
8619
+ BEFORE UPDATE OF dependency_type, reason ON entity_dependencies
8620
+ FOR EACH ROW
8621
+ WHEN NEW.dependency_type = 'related_to'
8622
+ AND (NEW.reason IS NULL OR length(trim(NEW.reason)) = 0)
8623
+ BEGIN
8624
+ SELECT RAISE(ABORT, 'related_to dependencies require a non-empty reason');
8625
+ END;
8626
+ `);
8627
+ db.exec(`
8628
+ CREATE TRIGGER trg_entity_dependencies_audit_insert
8629
+ AFTER INSERT ON entity_dependencies
8630
+ FOR EACH ROW
8631
+ BEGIN
8632
+ INSERT INTO entity_dependency_history (
8633
+ id, dependency_id, source_entity_id, target_entity_id, agent_id,
8634
+ dependency_type, event, changed_by, reason, previous_reason,
8635
+ metadata, created_at
8636
+ ) VALUES (
8637
+ lower(hex(randomblob(16))),
8638
+ NEW.id,
8639
+ NEW.source_entity_id,
8640
+ NEW.target_entity_id,
8641
+ NEW.agent_id,
8642
+ NEW.dependency_type,
8643
+ 'created',
8644
+ 'db-trigger',
8645
+ COALESCE(NEW.reason, 'created without reason'),
8646
+ NULL,
8647
+ '{"source":"trg_entity_dependencies_audit_insert"}',
8648
+ datetime('now')
8649
+ );
8650
+ END;
8651
+ `);
8652
+ db.exec(`
8653
+ CREATE TRIGGER trg_entity_dependencies_audit_update
8654
+ AFTER UPDATE ON entity_dependencies
8655
+ FOR EACH ROW
8656
+ BEGIN
8657
+ INSERT INTO entity_dependency_history (
8658
+ id, dependency_id, source_entity_id, target_entity_id, agent_id,
8659
+ dependency_type, event, changed_by, reason, previous_reason,
8660
+ metadata, created_at
8661
+ ) VALUES (
8662
+ lower(hex(randomblob(16))),
8663
+ NEW.id,
8664
+ NEW.source_entity_id,
8665
+ NEW.target_entity_id,
8666
+ NEW.agent_id,
8667
+ NEW.dependency_type,
8668
+ 'updated',
8669
+ 'db-trigger',
8670
+ COALESCE(NEW.reason, 'updated without reason'),
8671
+ OLD.reason,
8672
+ '{"source":"trg_entity_dependencies_audit_update"}',
8673
+ datetime('now')
8674
+ );
8675
+ END;
8676
+ `);
8677
+ db.exec(`
8678
+ CREATE TRIGGER trg_entity_dependencies_audit_delete
8679
+ AFTER DELETE ON entity_dependencies
8680
+ FOR EACH ROW
8681
+ BEGIN
8682
+ INSERT INTO entity_dependency_history (
8683
+ id, dependency_id, source_entity_id, target_entity_id, agent_id,
8684
+ dependency_type, event, changed_by, reason, previous_reason,
8685
+ metadata, created_at
8686
+ ) VALUES (
8687
+ lower(hex(randomblob(16))),
8688
+ OLD.id,
8689
+ OLD.source_entity_id,
8690
+ OLD.target_entity_id,
8691
+ OLD.agent_id,
8692
+ OLD.dependency_type,
8693
+ 'deleted',
8694
+ 'db-trigger',
8695
+ COALESCE(OLD.reason, 'deleted without reason'),
8696
+ NULL,
8697
+ '{"source":"trg_entity_dependencies_audit_delete"}',
8698
+ datetime('now')
8699
+ );
8700
+ END;
8701
+ `);
8702
+ db.exec(`
8703
+ INSERT INTO entity_dependency_history (
8704
+ id, dependency_id, source_entity_id, target_entity_id, agent_id,
8705
+ dependency_type, event, changed_by, reason, previous_reason,
8706
+ metadata, created_at
8707
+ )
8708
+ SELECT
8709
+ lower(hex(randomblob(16))),
8710
+ d.id,
8711
+ d.source_entity_id,
8712
+ d.target_entity_id,
8713
+ d.agent_id,
8714
+ d.dependency_type,
8715
+ 'backfill',
8716
+ 'migration-050',
8717
+ CASE
8718
+ WHEN d.reason IS NULL OR length(trim(d.reason)) = 0
8719
+ THEN 'legacy dependency without recorded reason'
8720
+ ELSE d.reason
8721
+ END,
8722
+ NULL,
8723
+ '{"source":"migration-050"}',
8724
+ datetime('now')
8725
+ FROM entity_dependencies d
8726
+ WHERE NOT EXISTS (
8727
+ SELECT 1
8728
+ FROM entity_dependency_history h
8729
+ WHERE h.dependency_id = d.id
8730
+ AND h.event = 'backfill'
8731
+ )
8732
+ `);
8733
+ db.exec(`
8734
+ UPDATE entity_dependencies
8735
+ SET reason = 'legacy-unattributed related_to edge'
8736
+ WHERE dependency_type = 'related_to'
8737
+ AND (reason IS NULL OR length(trim(reason)) = 0)
8738
+ `);
8739
+ }
8570
8740
  var MIGRATIONS = [
8571
8741
  {
8572
8742
  version: 1,
@@ -8951,6 +9121,14 @@ var MIGRATIONS = [
8951
9121
  artifacts: {
8952
9122
  tables: ["session_extract_cursors"]
8953
9123
  }
9124
+ },
9125
+ {
9126
+ version: 50,
9127
+ name: "related-to-audit",
9128
+ up: up50,
9129
+ artifacts: {
9130
+ tables: ["entity_dependency_history"]
9131
+ }
8954
9132
  }
8955
9133
  ];
8956
9134
  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.85.2",
3
+ "version": "0.85.4",
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.85.2",
39
+ "@signet/core": "0.85.4",
40
40
  "@types/node": "^22.0.0"
41
41
  },
42
42
  "peerDependencies": {