@signetai/core 0.146.3 → 0.146.5

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/dist/index.js CHANGED
@@ -10004,6 +10004,157 @@ function up82(db) {
10004
10004
  db.exec("CREATE INDEX IF NOT EXISTS idx_skill_inv_harness ON skill_invocations(harness, created_at)");
10005
10005
  }
10006
10006
 
10007
+ // src/migrations/083-memory-lifecycle-repair.ts
10008
+ var DEPENDENCY_TYPES = new Set([
10009
+ "uses",
10010
+ "requires",
10011
+ "owned_by",
10012
+ "owns",
10013
+ "blocks",
10014
+ "informs",
10015
+ "maintains",
10016
+ "implements",
10017
+ "built",
10018
+ "depends_on",
10019
+ "related_to",
10020
+ "learned_from",
10021
+ "teaches",
10022
+ "knows",
10023
+ "assumes",
10024
+ "supports_claim",
10025
+ "authored_by",
10026
+ "links_to",
10027
+ "contains",
10028
+ "contains_note",
10029
+ "contradicts",
10030
+ "supersedes",
10031
+ "part_of",
10032
+ "produced_artifact",
10033
+ "precedes",
10034
+ "follows",
10035
+ "triggers",
10036
+ "may_execute",
10037
+ "requires_approval_from",
10038
+ "impacts",
10039
+ "produces",
10040
+ "consumes"
10041
+ ]);
10042
+ function sqlStringList(values) {
10043
+ return [...values].map((value) => `'${value}'`).join(", ");
10044
+ }
10045
+ function hasTable3(db, table) {
10046
+ return Boolean(db.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?").get(table));
10047
+ }
10048
+ function hasColumn12(db, table, column) {
10049
+ const rows = db.prepare(`PRAGMA table_info(${table})`).all();
10050
+ return rows.some((row) => row.name === column);
10051
+ }
10052
+ function addColumnIfMissing20(db, table, column, definition) {
10053
+ if (!hasColumn12(db, table, column))
10054
+ db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`);
10055
+ }
10056
+ function documentScopeColumnsPreservingExisting(db) {
10057
+ const preserveAgentId = hasColumn12(db, "documents", "agent_id");
10058
+ const preserveProject = hasColumn12(db, "documents", "project");
10059
+ if (preserveAgentId) {
10060
+ db.exec(`
10061
+ CREATE TEMP TABLE __signet_doc_agent_guard AS
10062
+ SELECT id, agent_id FROM documents
10063
+ WHERE NULLIF(TRIM(agent_id), '') IS NOT NULL
10064
+ AND NULLIF(TRIM(agent_id), '') <> 'default'
10065
+ `);
10066
+ }
10067
+ if (preserveProject) {
10068
+ db.exec(`
10069
+ CREATE TEMP TABLE __signet_doc_project_guard AS
10070
+ SELECT id, project FROM documents
10071
+ WHERE NULLIF(TRIM(project), '') IS NOT NULL
10072
+ `);
10073
+ }
10074
+ try {
10075
+ up80(db);
10076
+ if (preserveAgentId) {
10077
+ db.exec(`
10078
+ UPDATE documents
10079
+ SET agent_id = (SELECT agent_id FROM __signet_doc_agent_guard WHERE __signet_doc_agent_guard.id = documents.id)
10080
+ WHERE EXISTS (SELECT 1 FROM __signet_doc_agent_guard WHERE __signet_doc_agent_guard.id = documents.id)
10081
+ `);
10082
+ }
10083
+ if (preserveProject) {
10084
+ db.exec(`
10085
+ UPDATE documents
10086
+ SET project = (SELECT project FROM __signet_doc_project_guard WHERE __signet_doc_project_guard.id = documents.id)
10087
+ WHERE EXISTS (SELECT 1 FROM __signet_doc_project_guard WHERE __signet_doc_project_guard.id = documents.id)
10088
+ `);
10089
+ }
10090
+ } finally {
10091
+ db.exec("DROP TABLE IF EXISTS temp.__signet_doc_agent_guard");
10092
+ db.exec("DROP TABLE IF EXISTS temp.__signet_doc_project_guard");
10093
+ }
10094
+ }
10095
+ function up83(db) {
10096
+ up79(db);
10097
+ if (hasTable3(db, "documents")) {
10098
+ documentScopeColumnsPreservingExisting(db);
10099
+ }
10100
+ up81(db);
10101
+ addColumnIfMissing20(db, "memories", "superseded_by", "TEXT");
10102
+ addColumnIfMissing20(db, "memories", "superseded_at", "TEXT");
10103
+ addColumnIfMissing20(db, "memories", "superseded_reason", "TEXT");
10104
+ db.exec("CREATE INDEX IF NOT EXISTS idx_memories_superseded_by ON memories(superseded_by)");
10105
+ db.exec("CREATE INDEX IF NOT EXISTS idx_memories_active_supersession ON memories(is_deleted, superseded_by)");
10106
+ if (!hasTable3(db, "relations") || !hasTable3(db, "entity_dependencies"))
10107
+ return;
10108
+ addColumnIfMissing20(db, "entity_dependencies", "confidence", "REAL");
10109
+ addColumnIfMissing20(db, "entity_dependencies", "reason", "TEXT");
10110
+ addColumnIfMissing20(db, "entity_dependencies", "source_id", "TEXT");
10111
+ addColumnIfMissing20(db, "entity_dependencies", "source_kind", "TEXT");
10112
+ addColumnIfMissing20(db, "entity_dependencies", "proposal_evidence", "TEXT NOT NULL DEFAULT '[]'");
10113
+ addColumnIfMissing20(db, "entity_dependencies", "status", "TEXT NOT NULL DEFAULT 'active'");
10114
+ const relationConfidence = hasColumn12(db, "relations", "confidence") ? "r.confidence" : "NULL";
10115
+ const relationUpdatedAt = hasColumn12(db, "relations", "updated_at") ? "r.updated_at" : "r.created_at";
10116
+ const sourceAgentId = hasColumn12(db, "entities", "agent_id") ? "COALESCE(NULLIF(TRIM(src.agent_id), ''), 'default')" : "'default'";
10117
+ const targetAgentId = hasColumn12(db, "entities", "agent_id") ? "COALESCE(NULLIF(TRIM(dst.agent_id), ''), 'default')" : "'default'";
10118
+ db.exec(`
10119
+ INSERT OR IGNORE INTO entity_dependencies (
10120
+ id,
10121
+ source_entity_id,
10122
+ target_entity_id,
10123
+ agent_id,
10124
+ dependency_type,
10125
+ strength,
10126
+ confidence,
10127
+ reason,
10128
+ created_at,
10129
+ updated_at,
10130
+ source_id,
10131
+ source_kind,
10132
+ proposal_evidence,
10133
+ status
10134
+ )
10135
+ SELECT
10136
+ 'relation:' || r.id,
10137
+ r.source_entity_id,
10138
+ r.target_entity_id,
10139
+ COALESCE(${sourceAgentId}, ${targetAgentId}, 'default'),
10140
+ CASE WHEN r.relation_type IN (${sqlStringList(DEPENDENCY_TYPES)}) THEN r.relation_type ELSE 'related_to' END,
10141
+ MAX(0.1, MIN(1.0, COALESCE(r.strength, 0.5))),
10142
+ MAX(0.1, MIN(1.0, COALESCE(${relationConfidence}, 0.7))),
10143
+ 'legacy relation backfill: ' || r.relation_type,
10144
+ COALESCE(r.created_at, datetime('now')),
10145
+ COALESCE(${relationUpdatedAt}, r.created_at, datetime('now')),
10146
+ r.id,
10147
+ 'relation',
10148
+ '[]',
10149
+ 'active'
10150
+ FROM relations r
10151
+ JOIN entities src ON src.id = r.source_entity_id
10152
+ JOIN entities dst ON dst.id = r.target_entity_id
10153
+ WHERE r.source_entity_id <> r.target_entity_id
10154
+ AND ${sourceAgentId} = ${targetAgentId}
10155
+ `);
10156
+ }
10157
+
10007
10158
  // src/migrations/index.ts
10008
10159
  var MIGRATIONS = [
10009
10160
  {
@@ -10669,6 +10820,21 @@ var MIGRATIONS = [
10669
10820
  { table: "skill_invocations", column: "tool_use_id" }
10670
10821
  ]
10671
10822
  }
10823
+ },
10824
+ {
10825
+ version: 83,
10826
+ name: "memory-lifecycle-repair",
10827
+ up: up83,
10828
+ artifacts: {
10829
+ tables: ["transcript_capture_jobs", "aggregate_evidence_sources", "entity_dependencies"],
10830
+ columns: [
10831
+ { table: "documents", column: "agent_id" },
10832
+ { table: "documents", column: "project" },
10833
+ { table: "memories", column: "superseded_by" },
10834
+ { table: "memories", column: "superseded_at" },
10835
+ { table: "memories", column: "superseded_reason" }
10836
+ ]
10837
+ }
10672
10838
  }
10673
10839
  ];
10674
10840
  function checksum(m) {
@@ -11572,7 +11738,7 @@ var ENTITY_TYPES = [
11572
11738
  ];
11573
11739
  var ATTRIBUTE_KINDS = ["attribute", "constraint"];
11574
11740
  var ATTRIBUTE_STATUSES = ["active", "superseded", "deleted"];
11575
- var DEPENDENCY_TYPES = [
11741
+ var DEPENDENCY_TYPES2 = [
11576
11742
  "uses",
11577
11743
  "requires",
11578
11744
  "owned_by",
@@ -20494,7 +20660,7 @@ export {
20494
20660
  Database,
20495
20661
  DOCUMENT_STATUSES,
20496
20662
  DOCUMENT_SOURCE_TYPES,
20497
- DEPENDENCY_TYPES,
20663
+ DEPENDENCY_TYPES2 as DEPENDENCY_TYPES,
20498
20664
  DEPENDENCY_DESCRIPTIONS,
20499
20665
  DEFAULT_REPLAY_WINDOW_MS,
20500
20666
  DEFAULT_PROVIDER_RATE_LIMIT,
@@ -0,0 +1,3 @@
1
+ import type { MigrationDb } from "./index";
2
+ export declare function up(db: MigrationDb): void;
3
+ //# sourceMappingURL=083-memory-lifecycle-repair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"083-memory-lifecycle-repair.d.ts","sourceRoot":"","sources":["../../src/migrations/083-memory-lifecycle-repair.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA8F3C,wBAAgB,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAwExC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuFH,MAAM,WAAW,WAAW;IAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QACrB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC9B,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;QAC7D,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;KACnD,CAAC;CACF;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;QAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,6FAA6F;QAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;KAC5B,EAAE,CAAC;CACJ;AAED,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;CACxC;AAED,oEAAoE;AACpE,eAAO,MAAM,UAAU,EAAE,SAAS,SAAS,EA4pB1C,CAAC;AAqOF;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAiB7D;AAED,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,QAAkD,CAAC;AAsBrF;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAiDnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwFH,MAAM,WAAW,WAAW;IAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QACrB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC9B,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;QAC7D,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;KACnD,CAAC;CACF;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;QAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,6FAA6F;QAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;KAC5B,EAAE,CAAC;CACJ;AAED,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;CACxC;AAED,oEAAoE;AACpE,eAAO,MAAM,UAAU,EAAE,SAAS,SAAS,EA2qB1C,CAAC;AAqOF;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAiB7D;AAED,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,QAAkD,CAAC;AAsBrF;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAiDnD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signetai/core",
3
- "version": "0.146.3",
3
+ "version": "0.146.5",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Core library for Signet - portable AI agent identity",
6
6
  "type": "module",