@signetai/connector-openclaw 0.206.8 → 0.207.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 +270 -10
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -15618,6 +15618,92 @@ function up132(db) {
15618
15618
  ON epistemic_assertions(agent_id, subject_entity_id, status, asserted_at DESC, created_at DESC);
15619
15619
  `);
15620
15620
  }
15621
+ function up133(db) {
15622
+ db.exec(`
15623
+ CREATE TABLE IF NOT EXISTS memory_head_revisions (
15624
+ id TEXT PRIMARY KEY,
15625
+ agent_id TEXT NOT NULL,
15626
+ revision INTEGER NOT NULL,
15627
+ content TEXT NOT NULL,
15628
+ content_hash TEXT NOT NULL,
15629
+ rendered_token_count INTEGER NOT NULL,
15630
+ pass_id TEXT NOT NULL,
15631
+ base_revision INTEGER NOT NULL,
15632
+ base_hash TEXT NOT NULL,
15633
+ created_at TEXT NOT NULL,
15634
+ UNIQUE(agent_id, revision)
15635
+ );
15636
+ CREATE INDEX IF NOT EXISTS idx_memory_head_revisions_agent
15637
+ ON memory_head_revisions(agent_id, revision DESC);
15638
+ CREATE TABLE IF NOT EXISTS memory_head_entries (
15639
+ entry_id TEXT PRIMARY KEY,
15640
+ agent_id TEXT NOT NULL,
15641
+ canonical_text TEXT NOT NULL,
15642
+ entry_hash TEXT NOT NULL,
15643
+ status TEXT NOT NULL CHECK(status IN ('active','removed','superseded')),
15644
+ first_revision INTEGER NOT NULL,
15645
+ last_revision INTEGER NOT NULL,
15646
+ created_at TEXT NOT NULL,
15647
+ updated_at TEXT NOT NULL
15648
+ );
15649
+ CREATE INDEX IF NOT EXISTS idx_memory_head_entries_agent
15650
+ ON memory_head_entries(agent_id, entry_id, last_revision DESC);
15651
+ CREATE TABLE IF NOT EXISTS memory_head_revision_entries (
15652
+ agent_id TEXT NOT NULL,
15653
+ revision INTEGER NOT NULL,
15654
+ entry_id TEXT NOT NULL,
15655
+ ordinal INTEGER NOT NULL,
15656
+ operation TEXT NOT NULL CHECK(operation IN ('add','update','remove','retain')),
15657
+ provenance_json TEXT NOT NULL,
15658
+ PRIMARY KEY(agent_id, revision, entry_id),
15659
+ UNIQUE(agent_id, revision, ordinal)
15660
+ );
15661
+ CREATE INDEX IF NOT EXISTS idx_memory_head_revision_entries_entry
15662
+ ON memory_head_revision_entries(agent_id, entry_id, revision DESC);
15663
+ `);
15664
+ const columns = db.prepare("PRAGMA table_info(memory_md_heads)").all();
15665
+ const names = new Set(columns.map((column) => String(column.name)));
15666
+ if (!names.has("revision_id"))
15667
+ db.exec("ALTER TABLE memory_md_heads ADD COLUMN revision_id TEXT");
15668
+ if (!names.has("pass_id"))
15669
+ db.exec("ALTER TABLE memory_md_heads ADD COLUMN pass_id TEXT");
15670
+ if (!names.has("format_version"))
15671
+ db.exec("ALTER TABLE memory_md_heads ADD COLUMN format_version INTEGER NOT NULL DEFAULT 1");
15672
+ }
15673
+ function up134(db) {
15674
+ db.exec(`
15675
+ CREATE TABLE memory_head_entries_v134 (
15676
+ entry_id TEXT NOT NULL, agent_id TEXT NOT NULL, canonical_text TEXT NOT NULL,
15677
+ entry_hash TEXT NOT NULL, status TEXT NOT NULL CHECK(status IN ('active','removed','superseded')),
15678
+ first_revision INTEGER NOT NULL, last_revision INTEGER NOT NULL,
15679
+ created_at TEXT NOT NULL, updated_at TEXT NOT NULL,
15680
+ PRIMARY KEY(agent_id, entry_id)
15681
+ );
15682
+ INSERT INTO memory_head_entries_v134
15683
+ SELECT entry_id, agent_id, canonical_text, entry_hash, status, first_revision, last_revision, created_at, updated_at
15684
+ FROM memory_head_entries;
15685
+ DROP TABLE memory_head_entries;
15686
+ ALTER TABLE memory_head_entries_v134 RENAME TO memory_head_entries;
15687
+ CREATE INDEX idx_memory_head_entries_agent
15688
+ ON memory_head_entries(agent_id, entry_id, last_revision DESC);
15689
+ `);
15690
+ }
15691
+ function up135(db) {
15692
+ db.exec(`
15693
+ CREATE TABLE IF NOT EXISTS memory_head_publications (
15694
+ agent_id TEXT NOT NULL,
15695
+ revision INTEGER NOT NULL,
15696
+ revision_id TEXT NOT NULL,
15697
+ status TEXT NOT NULL CHECK(status IN ('pending', 'completed')),
15698
+ created_at TEXT NOT NULL,
15699
+ completed_at TEXT,
15700
+ PRIMARY KEY(agent_id, revision),
15701
+ UNIQUE(agent_id, revision_id)
15702
+ );
15703
+ CREATE INDEX IF NOT EXISTS idx_memory_head_publications_pending
15704
+ ON memory_head_publications(agent_id, status, revision DESC);
15705
+ `);
15706
+ }
15621
15707
  var MIGRATIONS = [
15622
15708
  {
15623
15709
  version: 1,
@@ -16672,6 +16758,24 @@ var MIGRATIONS = [
16672
16758
  name: "observer-scoped-epistemic-assertions",
16673
16759
  up: up132,
16674
16760
  artifacts: { tables: ["epistemic_assertions"] }
16761
+ },
16762
+ {
16763
+ version: 133,
16764
+ name: "dreaming-memory-head",
16765
+ up: up133,
16766
+ artifacts: { tables: ["memory_head_revisions", "memory_head_entries", "memory_head_revision_entries"] }
16767
+ },
16768
+ {
16769
+ version: 134,
16770
+ name: "scope-memory-head-entries",
16771
+ up: up134,
16772
+ artifacts: { tables: ["memory_head_entries"] }
16773
+ },
16774
+ {
16775
+ version: 135,
16776
+ name: "memory-head-publication",
16777
+ up: up135,
16778
+ artifacts: { tables: ["memory_head_publications"] }
16675
16779
  }
16676
16780
  ];
16677
16781
  var LATEST_SCHEMA_VERSION = MIGRATIONS[MIGRATIONS.length - 1]?.version ?? 0;
@@ -16707,16 +16811,42 @@ function classifyError(error) {
16707
16811
  }
16708
16812
  return { state: "corrupt", message };
16709
16813
  }
16814
+ function tryRequireOverride() {
16815
+ const override = process.env.SIGNET_KEYRING_NATIVE_MODULE_PATH?.trim();
16816
+ if (!override)
16817
+ return null;
16818
+ const isAbsolute2 = override.startsWith("/") || /^\\\\[^\\]+\\[^\\]+/.test(override) || /^[A-Za-z]:[\\/]/.test(override);
16819
+ if (!isAbsolute2)
16820
+ return null;
16821
+ try {
16822
+ return require2(override);
16823
+ } catch {
16824
+ return null;
16825
+ }
16826
+ }
16710
16827
  async function loadModule() {
16711
- modulePromise ??= Promise.resolve().then(() => __toESM2(require_keyring(), 1)).catch(() => null);
16828
+ modulePromise ??= (async () => {
16829
+ const override = process.env.SIGNET_KEYRING_NATIVE_MODULE_PATH?.trim();
16830
+ if (override)
16831
+ return tryRequireOverride();
16832
+ return await Promise.resolve().then(() => __toESM2(require_keyring(), 1)).catch(() => null);
16833
+ })();
16712
16834
  return modulePromise;
16713
16835
  }
16714
16836
  function loadModuleSync() {
16715
16837
  if (syncModule !== undefined)
16716
16838
  return syncModule;
16839
+ if (process.env.SIGNET_KEYRING_NATIVE_MODULE_PATH?.trim()) {
16840
+ syncModule = tryRequireOverride();
16841
+ return syncModule;
16842
+ }
16843
+ const override = tryRequireOverride();
16844
+ if (override) {
16845
+ syncModule = override;
16846
+ return syncModule;
16847
+ }
16717
16848
  try {
16718
- const mod = require2("@napi-rs/keyring");
16719
- syncModule = mod;
16849
+ syncModule = require2("@napi-rs/keyring");
16720
16850
  } catch {
16721
16851
  syncModule = null;
16722
16852
  }
@@ -30482,7 +30612,7 @@ function memoriesFtsNeedsTokenizerRepair2(sql) {
30482
30612
  return true;
30483
30613
  return !normalized.includes(`tokenize='${MEMORIES_FTS_TOKENIZER2}'`);
30484
30614
  }
30485
- function up133(db) {
30615
+ function up136(db) {
30486
30616
  db.exec(`
30487
30617
  CREATE TABLE IF NOT EXISTS schema_migrations (
30488
30618
  version INTEGER PRIMARY KEY,
@@ -30966,7 +31096,7 @@ function addColumnIfMissing52(db, table, column, definition) {
30966
31096
  db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`);
30967
31097
  }
30968
31098
  }
30969
- function up134(db) {
31099
+ function up137(db) {
30970
31100
  db.exec(`
30971
31101
  CREATE TABLE IF NOT EXISTS ingestion_jobs (
30972
31102
  id TEXT PRIMARY KEY,
@@ -34721,11 +34851,97 @@ function up1322(db) {
34721
34851
  ON epistemic_assertions(agent_id, subject_entity_id, status, asserted_at DESC, created_at DESC);
34722
34852
  `);
34723
34853
  }
34854
+ function up1332(db) {
34855
+ db.exec(`
34856
+ CREATE TABLE IF NOT EXISTS memory_head_revisions (
34857
+ id TEXT PRIMARY KEY,
34858
+ agent_id TEXT NOT NULL,
34859
+ revision INTEGER NOT NULL,
34860
+ content TEXT NOT NULL,
34861
+ content_hash TEXT NOT NULL,
34862
+ rendered_token_count INTEGER NOT NULL,
34863
+ pass_id TEXT NOT NULL,
34864
+ base_revision INTEGER NOT NULL,
34865
+ base_hash TEXT NOT NULL,
34866
+ created_at TEXT NOT NULL,
34867
+ UNIQUE(agent_id, revision)
34868
+ );
34869
+ CREATE INDEX IF NOT EXISTS idx_memory_head_revisions_agent
34870
+ ON memory_head_revisions(agent_id, revision DESC);
34871
+ CREATE TABLE IF NOT EXISTS memory_head_entries (
34872
+ entry_id TEXT PRIMARY KEY,
34873
+ agent_id TEXT NOT NULL,
34874
+ canonical_text TEXT NOT NULL,
34875
+ entry_hash TEXT NOT NULL,
34876
+ status TEXT NOT NULL CHECK(status IN ('active','removed','superseded')),
34877
+ first_revision INTEGER NOT NULL,
34878
+ last_revision INTEGER NOT NULL,
34879
+ created_at TEXT NOT NULL,
34880
+ updated_at TEXT NOT NULL
34881
+ );
34882
+ CREATE INDEX IF NOT EXISTS idx_memory_head_entries_agent
34883
+ ON memory_head_entries(agent_id, entry_id, last_revision DESC);
34884
+ CREATE TABLE IF NOT EXISTS memory_head_revision_entries (
34885
+ agent_id TEXT NOT NULL,
34886
+ revision INTEGER NOT NULL,
34887
+ entry_id TEXT NOT NULL,
34888
+ ordinal INTEGER NOT NULL,
34889
+ operation TEXT NOT NULL CHECK(operation IN ('add','update','remove','retain')),
34890
+ provenance_json TEXT NOT NULL,
34891
+ PRIMARY KEY(agent_id, revision, entry_id),
34892
+ UNIQUE(agent_id, revision, ordinal)
34893
+ );
34894
+ CREATE INDEX IF NOT EXISTS idx_memory_head_revision_entries_entry
34895
+ ON memory_head_revision_entries(agent_id, entry_id, revision DESC);
34896
+ `);
34897
+ const columns = db.prepare("PRAGMA table_info(memory_md_heads)").all();
34898
+ const names = new Set(columns.map((column) => String(column.name)));
34899
+ if (!names.has("revision_id"))
34900
+ db.exec("ALTER TABLE memory_md_heads ADD COLUMN revision_id TEXT");
34901
+ if (!names.has("pass_id"))
34902
+ db.exec("ALTER TABLE memory_md_heads ADD COLUMN pass_id TEXT");
34903
+ if (!names.has("format_version"))
34904
+ db.exec("ALTER TABLE memory_md_heads ADD COLUMN format_version INTEGER NOT NULL DEFAULT 1");
34905
+ }
34906
+ function up1342(db) {
34907
+ db.exec(`
34908
+ CREATE TABLE memory_head_entries_v134 (
34909
+ entry_id TEXT NOT NULL, agent_id TEXT NOT NULL, canonical_text TEXT NOT NULL,
34910
+ entry_hash TEXT NOT NULL, status TEXT NOT NULL CHECK(status IN ('active','removed','superseded')),
34911
+ first_revision INTEGER NOT NULL, last_revision INTEGER NOT NULL,
34912
+ created_at TEXT NOT NULL, updated_at TEXT NOT NULL,
34913
+ PRIMARY KEY(agent_id, entry_id)
34914
+ );
34915
+ INSERT INTO memory_head_entries_v134
34916
+ SELECT entry_id, agent_id, canonical_text, entry_hash, status, first_revision, last_revision, created_at, updated_at
34917
+ FROM memory_head_entries;
34918
+ DROP TABLE memory_head_entries;
34919
+ ALTER TABLE memory_head_entries_v134 RENAME TO memory_head_entries;
34920
+ CREATE INDEX idx_memory_head_entries_agent
34921
+ ON memory_head_entries(agent_id, entry_id, last_revision DESC);
34922
+ `);
34923
+ }
34924
+ function up1352(db) {
34925
+ db.exec(`
34926
+ CREATE TABLE IF NOT EXISTS memory_head_publications (
34927
+ agent_id TEXT NOT NULL,
34928
+ revision INTEGER NOT NULL,
34929
+ revision_id TEXT NOT NULL,
34930
+ status TEXT NOT NULL CHECK(status IN ('pending', 'completed')),
34931
+ created_at TEXT NOT NULL,
34932
+ completed_at TEXT,
34933
+ PRIMARY KEY(agent_id, revision),
34934
+ UNIQUE(agent_id, revision_id)
34935
+ );
34936
+ CREATE INDEX IF NOT EXISTS idx_memory_head_publications_pending
34937
+ ON memory_head_publications(agent_id, status, revision DESC);
34938
+ `);
34939
+ }
34724
34940
  var MIGRATIONS2 = [
34725
34941
  {
34726
34942
  version: 1,
34727
34943
  name: "baseline",
34728
- up: up133,
34944
+ up: up136,
34729
34945
  artifacts: { tables: ["memories", "conversations", "embeddings"] }
34730
34946
  },
34731
34947
  {
@@ -34803,7 +35019,7 @@ var MIGRATIONS2 = [
34803
35019
  {
34804
35020
  version: 13,
34805
35021
  name: "ingestion-tracking",
34806
- up: up134,
35022
+ up: up137,
34807
35023
  artifacts: {
34808
35024
  columns: [
34809
35025
  { table: "memories", column: "source_path" },
@@ -35775,6 +35991,24 @@ var MIGRATIONS2 = [
35775
35991
  name: "observer-scoped-epistemic-assertions",
35776
35992
  up: up1322,
35777
35993
  artifacts: { tables: ["epistemic_assertions"] }
35994
+ },
35995
+ {
35996
+ version: 133,
35997
+ name: "dreaming-memory-head",
35998
+ up: up1332,
35999
+ artifacts: { tables: ["memory_head_revisions", "memory_head_entries", "memory_head_revision_entries"] }
36000
+ },
36001
+ {
36002
+ version: 134,
36003
+ name: "scope-memory-head-entries",
36004
+ up: up1342,
36005
+ artifacts: { tables: ["memory_head_entries"] }
36006
+ },
36007
+ {
36008
+ version: 135,
36009
+ name: "memory-head-publication",
36010
+ up: up1352,
36011
+ artifacts: { tables: ["memory_head_publications"] }
35778
36012
  }
35779
36013
  ];
35780
36014
  var LATEST_SCHEMA_VERSION2 = MIGRATIONS2[MIGRATIONS2.length - 1]?.version ?? 0;
@@ -35817,16 +36051,42 @@ function classifyError2(error) {
35817
36051
  }
35818
36052
  return { state: "corrupt", message };
35819
36053
  }
36054
+ function tryRequireOverride2() {
36055
+ const override = process.env.SIGNET_KEYRING_NATIVE_MODULE_PATH?.trim();
36056
+ if (!override)
36057
+ return null;
36058
+ const isAbsolute2 = override.startsWith("/") || /^\\\\[^\\]+\\[^\\]+/.test(override) || /^[A-Za-z]:[\\/]/.test(override);
36059
+ if (!isAbsolute2)
36060
+ return null;
36061
+ try {
36062
+ return require22(override);
36063
+ } catch {
36064
+ return null;
36065
+ }
36066
+ }
35820
36067
  async function loadModule2() {
35821
- modulePromise2 ??= Promise.resolve().then(() => __toESM3(require_keyring2(), 1)).catch(() => null);
36068
+ modulePromise2 ??= (async () => {
36069
+ const override = process.env.SIGNET_KEYRING_NATIVE_MODULE_PATH?.trim();
36070
+ if (override)
36071
+ return tryRequireOverride2();
36072
+ return await Promise.resolve().then(() => __toESM3(require_keyring2(), 1)).catch(() => null);
36073
+ })();
35822
36074
  return modulePromise2;
35823
36075
  }
35824
36076
  function loadModuleSync2() {
35825
36077
  if (syncModule2 !== undefined)
35826
36078
  return syncModule2;
36079
+ if (process.env.SIGNET_KEYRING_NATIVE_MODULE_PATH?.trim()) {
36080
+ syncModule2 = tryRequireOverride2();
36081
+ return syncModule2;
36082
+ }
36083
+ const override = tryRequireOverride2();
36084
+ if (override) {
36085
+ syncModule2 = override;
36086
+ return syncModule2;
36087
+ }
35827
36088
  try {
35828
- const mod = require22("@napi-rs/keyring");
35829
- syncModule2 = mod;
36089
+ syncModule2 = require22("@napi-rs/keyring");
35830
36090
  } catch {
35831
36091
  syncModule2 = null;
35832
36092
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signetai/connector-openclaw",
3
- "version": "0.206.8",
3
+ "version": "0.207.2",
4
4
  "description": "Signet connector for OpenClaw - configures workspace and memory hooks",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,8 +25,8 @@
25
25
  "test": "bun test"
26
26
  },
27
27
  "dependencies": {
28
- "@signetai/connector-base": "0.206.8",
29
- "@signetai/core": "0.206.8"
28
+ "@signetai/connector-base": "0.207.2",
29
+ "@signetai/core": "0.207.2"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/node": "^22.0.0",