@veewo/claw-core 0.1.93 → 0.1.94

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.
@@ -4,8 +4,8 @@ import net from "node:net";
4
4
  import path from "node:path";
5
5
  import { EMBEDDING_DAEMON_MAX_MESSAGE_BYTES, EMBEDDING_DAEMON_PROTOCOL_VERSION, createEmbeddingDaemonToken, removeStateIfOwned, writeEmbeddingDaemonState, } from "./embedding-daemon-protocol.js";
6
6
  import { createConfiguredLocalEmbeddingSession, resolveConfiguredLocalEmbeddingFingerprint, resolveEmbeddingDimensions, } from "./embedding-local-runtime.js";
7
- const DEFAULT_IDLE_TTL_MS = 120000;
8
- const DEFAULT_SESSION_LIMIT = 1;
7
+ const DEFAULT_IDLE_TTL_MS = 10 * 60 * 1000;
8
+ const DEFAULT_SESSION_LIMIT = 2;
9
9
  const runtimeDir = resolveRuntimeDirFromArgs(process.argv.slice(2));
10
10
  const instanceId = randomBytes(16).toString("hex");
11
11
  const token = createEmbeddingDaemonToken();
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-daemon.js","sourceRoot":"","sources":["../../src/embedding-daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedding-daemon.js","sourceRoot":"","sources":["../../src/embedding-daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,kCAAkC,EAClC,iCAAiC,EACjC,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,GAI1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,qCAAqC,EACrC,0CAA0C,EAC1C,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AAUtC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnD,MAAM,KAAK,GAAG,0BAA0B,EAAE,CAAC;AAC3C,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,mBAAmB,CAAC,CAAC;AAC1G,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,qBAAqB,CAAC,CAAC;AACjH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;AACjD,IAAI,cAAc,GAAG,CAAC,CAAC;AACvB,IAAI,SAAS,GAA0B,IAAI,CAAC;AAC5C,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAE3D,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE;IACzC,cAAc,EAAE,CAAC;IACjB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,OAAO,IAAI,KAAK,CAAC;QACjB,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,kCAAkC,EAAE,CAAC;YAC7E,OAAO,GAAG,IAAI,CAAC;YACf,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,mDAAmD,CAAC,CAAC,CAAC;YAC9F,OAAO;QACT,CAAC;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACtB,yDAAyD;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IACjC,WAAW,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACxD,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO;IACT,CAAC;IACD,yBAAyB,CAAC,UAAU,EAAE;QACpC,eAAe,EAAE,iCAAiC;QAClD,UAAU;QACV,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IACH,WAAW,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,cAAc,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,KAAK,UAAU,gBAAgB,CAAC,GAAW;IACzC,IAAI,OAA+B,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA2B,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC,EAAE,EAAE,6CAA6C,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,OAAO,CAAC,eAAe,KAAK,iCAAiC,EAAE,CAAC;QAClE,OAAO,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,6CAA6C,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,yCAAyC,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACpG,OAAO,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,4CAA4C,CAAC,CAAC;IACxF,CAAC;IAED,cAAc,IAAI,CAAC,CAAC;IACpB,cAAc,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QACzC,WAAW,CAAC,mBAAmB,EAAE;YAC/B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;SAChC,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC,CAAC;QAC5F,WAAW,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QACzE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;SAClC,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,cAAc,IAAI,CAAC,CAAC;QACpB,cAAc,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,OAA+B;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,GAAG;QACrE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3H,CAAC,CAAC,0CAA0C,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACtF,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,GAAG;YACjE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvD,CAAC,CAAC,qCAAqC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACjF,KAAK,GAAG;YACN,WAAW;YACX,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE;YACxB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC;QACF,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACjC,WAAW,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAChD,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE9B,IAAI,OAAoB,CAAC;IACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;IAC7B,KAAK,CAAC,KAAK,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC1C,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,CAAC;IACf,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACpE,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,iBAAyB;IACpD,IAAI,QAAQ,CAAC,IAAI,IAAI,YAAY,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC7C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,iBAAiB,CAAC;SAC1D,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7D,OAAO,QAAQ,CAAC,IAAI,GAAG,YAAY,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM;QACR,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;QACpC,MAAM,KAAK,CAAC,KAAK,CAAC;QAClB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,WAAW,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,SAA8C;IACvE,MAAM,UAAU,GAAG,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC9D,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,OAAO;QACL,UAAU;QACV,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACnB,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO;gBACL,UAAU;gBACV,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;aACtF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,UAAkB,EAAE,SAAiB;IAC1E,IAAI,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC;IACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IACvD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB,EAAE,OAAe;IACvD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,aAAa,CAAC,MAAkB,EAAE,QAAiC;IAC1E,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,SAAS,EAAE,CAAC;QACd,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IACD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;QAC1B,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,EAAE,SAAS,CAAC,CAAC;IACd,SAAS,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAgB;IACtC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IACD,YAAY,GAAG,IAAI,CAAC;IACpB,IAAI,SAAS,EAAE,CAAC;QACd,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpE,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,KAAK,CAAC;YAClB,MAAM,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;IACD,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC3C,WAAW,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC9B,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,OAAgC;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,EAAE,CAAC;IACnE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IACD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjI,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAc;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAyB,EAAE,QAAgB;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnE,CAAC"}
@@ -24,7 +24,6 @@ export async function createConfiguredLocalEmbeddingSession(embedding, projectCw
24
24
  const fingerprint = createHash("sha256")
25
25
  .update(JSON.stringify({
26
26
  version: 1,
27
- projectCwd: path.resolve(projectCwd),
28
27
  resolvedModulePath,
29
28
  modelId,
30
29
  modelSignature: resolveModelSignature(embedding.local?.modelPath),
@@ -63,7 +62,6 @@ export function resolveConfiguredLocalEmbeddingFingerprint(embedding, projectCwd
63
62
  return createHash("sha256")
64
63
  .update(JSON.stringify({
65
64
  version: 1,
66
- projectCwd: path.resolve(projectCwd),
67
65
  resolvedModulePath: resolveTransformersModulePath(projectRequire, workerRequire),
68
66
  modelId,
69
67
  modelSignature: resolveModelSignature(embedding.local?.modelPath),
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-local-runtime.js","sourceRoot":"","sources":["../../src/embedding-local-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedding-local-runtime.js","sourceRoot":"","sources":["../../src/embedding-local-runtime.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export type ProjectEmbeddingWarmupResult = {
7
7
  };
8
8
  export declare function buildMemoryIndex(input: MemoryIndexInput): MemoryIndexResult;
9
9
  export declare function searchMemory(input: MemorySearchInput): MemorySearchResult;
10
+ export declare function searchMemoryAsync(input: MemorySearchInput): Promise<MemorySearchResult>;
10
11
  export declare function getMemory(input: MemoryGetInput): MemoryGetResult;
11
12
  export declare function warmProjectMemoryEmbedding(input: {
12
13
  cwd: string;
@@ -23,6 +23,10 @@ const DEFAULT_MEMORY_SQLITE_BUSY_TIMEOUT_MS = 5000;
23
23
  const PROJECT_QUERY_EMBEDDING_CACHE_LIMIT = 128;
24
24
  const PROJECT_QUERY_EMBEDDING_CACHE_VERSION = "v1";
25
25
  const PROJECT_EMBEDDING_CHUNKING_VERSION = "generic-knowledge-markers-v3";
26
+ const PROJECT_EMBEDDING_VECTOR_STORAGE_VERSION = "float32-blob-v1";
27
+ const DEFAULT_PERSISTENT_SEARCH_DATABASE_LIMIT = 2;
28
+ const persistentMemoryDatabases = new Map();
29
+ const projectVectorRowsByDatabase = new WeakMap();
26
30
  export function buildMemoryIndex(input) {
27
31
  const { scope, project, task } = resolveMemoryScope(input);
28
32
  if (!isProjectMemoryEnabled(project)) {
@@ -80,6 +84,7 @@ function rebuildTaskMemoryIndex(db, sources) {
80
84
  db.exec("DELETE FROM docs;");
81
85
  db.exec("DELETE FROM docs_fts;");
82
86
  db.exec("DELETE FROM doc_embeddings;");
87
+ db.exec("DELETE FROM doc_embedding_vectors;");
83
88
  const insertDoc = db.prepare("INSERT INTO docs (source_path, kind, content, content_hash) VALUES (?, ?, ?, ?)");
84
89
  const insertFts = db.prepare("INSERT INTO docs_fts (rowid, source_path, kind, content) VALUES (?, ?, ?, ?)");
85
90
  for (const source of sources) {
@@ -134,6 +139,7 @@ function syncProjectMemoryIndex(db, sources, embedding, maxFiles) {
134
139
  deleteDocsById(db, docsToDelete.map((doc) => doc.id));
135
140
  if (requiresVectorReset) {
136
141
  db.exec("DELETE FROM doc_embeddings;");
142
+ db.exec("DELETE FROM doc_embedding_vectors;");
137
143
  db.exec("DELETE FROM query_embeddings;");
138
144
  }
139
145
  insertDocs(db, limitedDocsToInsert);
@@ -162,6 +168,8 @@ function syncProjectMemoryIndex(db, sources, embedding, maxFiles) {
162
168
  pendingFileCount,
163
169
  };
164
170
  }
171
+ backfillDocEmbeddingVectors(db);
172
+ upsertMetadata(db, "embedding_vector_storage", PROJECT_EMBEDDING_VECTOR_STORAGE_VERSION);
165
173
  return {
166
174
  vectorIndex: summarizeVectorIndex(db, embedding),
167
175
  processedFileCount: limitedDocsToInsert.length,
@@ -191,10 +199,12 @@ function deleteDocsById(db, docIds) {
191
199
  }
192
200
  const deleteFts = db.prepare("DELETE FROM docs_fts WHERE rowid = ?");
193
201
  const deleteEmbeddings = db.prepare("DELETE FROM doc_embeddings WHERE doc_id = ?");
202
+ const deleteEmbeddingVectors = db.prepare("DELETE FROM doc_embedding_vectors WHERE doc_id = ?");
194
203
  const deleteDoc = db.prepare("DELETE FROM docs WHERE id = ?");
195
204
  for (const docId of docIds) {
196
205
  deleteFts.run(docId);
197
206
  deleteEmbeddings.run(docId);
207
+ deleteEmbeddingVectors.run(docId);
198
208
  deleteDoc.run(docId);
199
209
  }
200
210
  }
@@ -256,6 +266,60 @@ export function searchMemory(input) {
256
266
  };
257
267
  });
258
268
  }
269
+ export async function searchMemoryAsync(input) {
270
+ const startedAt = performance.now();
271
+ const primedRuntime = await primePersistentProjectQueryEmbedding(input);
272
+ const result = searchMemory(input);
273
+ result.telemetry.durationMs = Number((performance.now() - startedAt).toFixed(2));
274
+ if (primedRuntime) {
275
+ result.telemetry.queryEmbedding = "generated";
276
+ result.telemetry.embeddingRuntime = primedRuntime;
277
+ }
278
+ return result;
279
+ }
280
+ async function primePersistentProjectQueryEmbedding(input) {
281
+ if (input.scope === "task"
282
+ || process.env.CLAW_EMBEDDING_MOCK === "1"
283
+ || process.env.CLAW_EMBEDDING_PERSISTENT_WORKER === "0"
284
+ || !input.query.trim()) {
285
+ return null;
286
+ }
287
+ const project = resolveProjectContext(input.cwd);
288
+ const embedding = resolveProjectMemoryEmbeddingConfig(project);
289
+ const storePath = getMemoryStorePath(project, "project");
290
+ if (embedding?.provider !== "local" || !fs.existsSync(storePath)) {
291
+ return null;
292
+ }
293
+ const queryText = buildProjectQueryIntent(input.query).embeddingText || input.query;
294
+ const identity = buildProjectQueryEmbeddingCacheIdentity(embedding, queryText);
295
+ const cached = withMemoryDatabase(storePath, "query embedding cache lookup", "read", (db) => {
296
+ prepareSchema(db);
297
+ return readProjectQueryEmbeddingCache(db, identity);
298
+ });
299
+ if (cached) {
300
+ return null;
301
+ }
302
+ let generated;
303
+ try {
304
+ generated = await requestPersistentEmbedding({
305
+ embedding,
306
+ texts: [identity.normalizedQueryText],
307
+ projectCwd: project.projectRoot,
308
+ });
309
+ }
310
+ catch {
311
+ return null;
312
+ }
313
+ const vector = generated?.vectors[0];
314
+ if (!vector?.length) {
315
+ return null;
316
+ }
317
+ withMemoryDatabase(storePath, "query embedding cache update", "write", (db) => {
318
+ prepareSchema(db);
319
+ writeProjectQueryEmbeddingCache(db, identity, vector);
320
+ });
321
+ return "persistent_daemon";
322
+ }
259
323
  export function getMemory(input) {
260
324
  const { scope, project, task } = resolveMemoryScope(input);
261
325
  const storePath = getMemoryStorePath(project, scope, task);
@@ -288,10 +352,26 @@ function getMemoryStorePath(project, scope, task) {
288
352
  return path.join(project.clawDir, "memory.sqlite");
289
353
  }
290
354
  function withMemoryDatabase(storePath, operation, access, callback) {
355
+ const persistentRead = access === "read" && process.env.CLAW_SEARCH_DAEMON === "1";
291
356
  let db = null;
292
357
  try {
293
- db = new DatabaseSync(storePath);
294
- configureMemoryDatabase(db, access);
358
+ if (persistentRead) {
359
+ db = persistentMemoryDatabases.get(storePath) ?? null;
360
+ if (!db) {
361
+ evictPersistentMemoryDatabases();
362
+ db = new DatabaseSync(storePath);
363
+ configureMemoryDatabase(db, access);
364
+ persistentMemoryDatabases.set(storePath, db);
365
+ }
366
+ else {
367
+ persistentMemoryDatabases.delete(storePath);
368
+ persistentMemoryDatabases.set(storePath, db);
369
+ }
370
+ }
371
+ else {
372
+ db = new DatabaseSync(storePath);
373
+ configureMemoryDatabase(db, access);
374
+ }
295
375
  return callback(db);
296
376
  }
297
377
  catch (error) {
@@ -301,7 +381,23 @@ function withMemoryDatabase(storePath, operation, access, callback) {
301
381
  throw error;
302
382
  }
303
383
  finally {
304
- db?.close();
384
+ if (!persistentRead) {
385
+ db?.close();
386
+ }
387
+ }
388
+ }
389
+ function evictPersistentMemoryDatabases() {
390
+ const rawLimit = Number.parseInt(process.env.CLAW_SEARCH_DATABASE_LIMIT ?? "", 10);
391
+ const limit = Number.isFinite(rawLimit) && rawLimit > 0
392
+ ? rawLimit
393
+ : DEFAULT_PERSISTENT_SEARCH_DATABASE_LIMIT;
394
+ while (persistentMemoryDatabases.size >= limit) {
395
+ const oldest = persistentMemoryDatabases.entries().next().value;
396
+ if (!oldest) {
397
+ return;
398
+ }
399
+ persistentMemoryDatabases.delete(oldest[0]);
400
+ oldest[1].close();
305
401
  }
306
402
  }
307
403
  function configureMemoryDatabase(db, access) {
@@ -469,6 +565,19 @@ function prepareSchema(db) {
469
565
  " embedding_json TEXT NOT NULL,",
470
566
  " created_at INTEGER NOT NULL",
471
567
  ");",
568
+ "CREATE TABLE IF NOT EXISTS doc_embedding_vectors (",
569
+ " doc_id INTEGER NOT NULL,",
570
+ " chunk_index INTEGER NOT NULL,",
571
+ " source_path TEXT NOT NULL,",
572
+ " kind TEXT NOT NULL,",
573
+ " heading_path TEXT NOT NULL DEFAULT '',",
574
+ " document_kind TEXT NOT NULL DEFAULT 'other',",
575
+ " document_state TEXT,",
576
+ " chunk_state TEXT,",
577
+ " dated TEXT,",
578
+ " embedding_blob BLOB NOT NULL,",
579
+ " PRIMARY KEY (doc_id, chunk_index)",
580
+ ") WITHOUT ROWID;",
472
581
  ].join("\n"));
473
582
  const docsColumns = db.prepare("PRAGMA table_info(docs)").all();
474
583
  if (!docsColumns.some((column) => column.name === "content_hash")) {
@@ -642,10 +751,47 @@ function insertDocEmbeddings(db, embeddings) {
642
751
  "INSERT OR REPLACE INTO doc_embeddings (doc_id, chunk_index, source_path, kind, chunk_text, heading_path, document_kind, document_state, chunk_state, dated, embedding_json)",
643
752
  "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
644
753
  ].join(" "));
754
+ const insertEmbeddingVector = db.prepare([
755
+ "INSERT OR REPLACE INTO doc_embedding_vectors",
756
+ " (doc_id, chunk_index, source_path, kind, heading_path, document_kind, document_state, chunk_state, dated, embedding_blob)",
757
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
758
+ ].join(" "));
645
759
  embeddings.forEach((embedding) => {
646
760
  insertEmbedding.run(embedding.docId, embedding.chunkIndex, embedding.sourcePath, embedding.kind, embedding.chunkText, embedding.headingPath, embedding.documentKind, embedding.documentState, embedding.state, embedding.dated, JSON.stringify(embedding.vector));
761
+ insertEmbeddingVector.run(embedding.docId, embedding.chunkIndex, embedding.sourcePath, embedding.kind, embedding.headingPath, embedding.documentKind, embedding.documentState, embedding.state, embedding.dated, serializeNormalizedEmbedding(embedding.vector));
647
762
  });
648
763
  }
764
+ function backfillDocEmbeddingVectors(db) {
765
+ const missing = db
766
+ .prepare([
767
+ "SELECT e.doc_id, e.chunk_index, e.source_path, e.kind, e.heading_path, e.document_kind,",
768
+ " e.document_state, e.chunk_state, e.dated, e.embedding_json",
769
+ "FROM doc_embeddings e",
770
+ "LEFT JOIN doc_embedding_vectors v",
771
+ " ON v.doc_id = e.doc_id AND v.chunk_index = e.chunk_index",
772
+ "WHERE v.doc_id IS NULL",
773
+ ].join(" "))
774
+ .all();
775
+ if (missing.length === 0) {
776
+ return;
777
+ }
778
+ const insert = db.prepare([
779
+ "INSERT OR REPLACE INTO doc_embedding_vectors",
780
+ " (doc_id, chunk_index, source_path, kind, heading_path, document_kind, document_state, chunk_state, dated, embedding_blob)",
781
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
782
+ ].join(" "));
783
+ db.exec("BEGIN");
784
+ try {
785
+ for (const row of missing) {
786
+ insert.run(row.doc_id, row.chunk_index, row.source_path, row.kind, row.heading_path, row.document_kind, row.document_state, row.chunk_state, row.dated, serializeNormalizedEmbedding(parseEmbeddingJson(row.embedding_json)));
787
+ }
788
+ db.exec("COMMIT");
789
+ }
790
+ catch (error) {
791
+ db.exec("ROLLBACK");
792
+ throw error;
793
+ }
794
+ }
649
795
  function listDocsMissingEmbeddings(db) {
650
796
  return db
651
797
  .prepare([
@@ -1001,75 +1147,67 @@ function searchProjectMemoryHybrid(db, query, limit, project) {
1001
1147
  };
1002
1148
  }
1003
1149
  const queryEmbedding = resolveProjectQueryEmbedding(db, embedding, queryIntent.embeddingText || query);
1004
- const vectorRows = db
1005
- .prepare([
1006
- "SELECT source_path, kind, chunk_text, heading_path, document_kind, document_state, chunk_state, dated, embedding_json",
1007
- "FROM doc_embeddings",
1008
- ].join(" "))
1009
- .all();
1010
- if (vectorRows.length === 0) {
1011
- throw new ClawError("MEMORY_VECTOR_INDEX_REQUIRED", "Project search requires stored vectors. Run `claw search index --refresh` first.");
1012
- }
1013
- const rankedVectors = vectorRows
1014
- .map((row) => {
1015
- const signals = docSignals.get(row.source_path);
1016
- return {
1017
- sourcePath: row.source_path,
1018
- kind: row.kind,
1019
- snippet: buildSnippet(row.chunk_text),
1020
- similarity: cosineSimilarity(queryEmbedding.vector, parseEmbeddingJson(row.embedding_json)),
1021
- exactBoost: signals?.exactBoost ?? 0,
1022
- temporalBoost: calculateTemporalChunkBoost({
1023
- intent: temporalIntent,
1024
- documentState: row.document_state,
1025
- state: row.chunk_state,
1026
- dated: row.dated,
1027
- }),
1028
- documentKind: row.document_kind,
1150
+ const bestVectorBySource = new Map();
1151
+ const compactVectorStorage = getMetadata(db, "embedding_vector_storage")
1152
+ === PROJECT_EMBEDDING_VECTOR_STORAGE_VERSION;
1153
+ const vectorRows = loadProjectVectorRows(db, compactVectorStorage);
1154
+ const normalizedQueryEmbedding = normalizeEmbedding(queryEmbedding.vector);
1155
+ const vectorScanStartedAt = performance.now();
1156
+ let vectorCount = 0;
1157
+ let vectorBytes = 0;
1158
+ for (const row of vectorRows) {
1159
+ const ordinal = vectorCount;
1160
+ vectorCount += 1;
1161
+ const similarity = row.embedding_blob
1162
+ ? dotProductFloat32(normalizedQueryEmbedding, row.embedding_blob)
1163
+ : dotProduct(normalizedQueryEmbedding, normalizeEmbedding(parseEmbeddingJson(row.embedding_json ?? "[]")));
1164
+ vectorBytes += row.embedding_blob?.byteLength ?? Buffer.byteLength(row.embedding_json ?? "", "utf-8");
1165
+ if (!Number.isFinite(similarity)) {
1166
+ continue;
1167
+ }
1168
+ const temporalBoost = calculateTemporalChunkBoost({
1169
+ intent: temporalIntent,
1029
1170
  documentState: row.document_state,
1030
1171
  state: row.chunk_state,
1031
1172
  dated: row.dated,
1032
- headingPath: row.heading_path,
1033
- };
1034
- })
1035
- .filter((row) => Number.isFinite(row.similarity))
1036
- .sort((left, right) => {
1037
- const leftScore = left.similarity + left.exactBoost + left.temporalBoost;
1038
- const rightScore = right.similarity + right.exactBoost + right.temporalBoost;
1039
- return rightScore - leftScore;
1040
- });
1041
- const bestVectorBySource = new Map();
1042
- for (const row of rankedVectors) {
1043
- const existing = bestVectorBySource.get(row.sourcePath);
1044
- const vectorScore = row.similarity + row.temporalBoost;
1173
+ });
1174
+ const existing = bestVectorBySource.get(row.source_path);
1175
+ const vectorScore = similarity + temporalBoost;
1045
1176
  if (!existing || vectorScore > existing.vectorScore) {
1046
- bestVectorBySource.set(row.sourcePath, {
1177
+ bestVectorBySource.set(row.source_path, {
1178
+ docId: row.doc_id,
1179
+ chunkIndex: row.chunk_index,
1047
1180
  kind: row.kind,
1048
- snippet: row.snippet,
1049
- similarity: row.similarity,
1181
+ similarity,
1050
1182
  vectorScore,
1051
- documentKind: row.documentKind,
1052
- documentState: row.documentState,
1053
- state: row.state,
1183
+ documentKind: row.document_kind,
1184
+ documentState: row.document_state,
1185
+ state: row.chunk_state,
1054
1186
  dated: row.dated,
1055
- headingPath: row.headingPath,
1187
+ headingPath: row.heading_path,
1188
+ ordinal,
1056
1189
  });
1057
1190
  }
1058
1191
  }
1192
+ const vectorScanMs = performance.now() - vectorScanStartedAt;
1193
+ if (vectorCount === 0) {
1194
+ throw new ClawError("MEMORY_VECTOR_INDEX_REQUIRED", "Project search requires stored vectors. Run `claw search index --refresh` first.");
1195
+ }
1196
+ const fusionStartedAt = performance.now();
1059
1197
  const fused = new Map();
1060
- Array.from(bestVectorBySource.entries())
1198
+ const selectedVectorCandidates = Array.from(bestVectorBySource.entries())
1061
1199
  .sort((left, right) => {
1062
1200
  const leftScore = left[1].vectorScore + (docSignals.get(left[0])?.exactBoost ?? 0);
1063
1201
  const rightScore = right[1].vectorScore + (docSignals.get(right[0])?.exactBoost ?? 0);
1064
- return rightScore - leftScore;
1202
+ return rightScore - leftScore || left[1].ordinal - right[1].ordinal;
1065
1203
  })
1066
- .slice(0, candidateLimit)
1067
- .forEach(([sourcePath, row], index) => {
1204
+ .slice(0, candidateLimit);
1205
+ selectedVectorCandidates.forEach(([sourcePath, row], index) => {
1068
1206
  const signals = docSignals.get(sourcePath);
1069
1207
  fused.set(sourcePath, {
1070
1208
  sourcePath,
1071
1209
  kind: row.kind,
1072
- snippet: row.snippet,
1210
+ snippet: "",
1073
1211
  score: reciprocalRankScore(index + 1, 0.5) + (signals?.exactBoost ?? 0),
1074
1212
  vectorRank: index + 1,
1075
1213
  documentKind: row.documentKind,
@@ -1108,15 +1246,60 @@ function searchProjectMemoryHybrid(db, query, limit, project) {
1108
1246
  ...(existing ? pickTemporalResultMetadata(existing) : {}),
1109
1247
  });
1110
1248
  });
1249
+ const results = rerankProjectSearchCandidates(Array.from(fused.values()), docSignals, limit);
1250
+ hydrateMissingVectorSnippets(db, results, new Map(selectedVectorCandidates));
1251
+ const fusionMs = performance.now() - fusionStartedAt;
1111
1252
  return {
1112
- results: rerankProjectSearchCandidates(Array.from(fused.values()), docSignals, limit),
1253
+ results,
1113
1254
  telemetry: {
1114
1255
  route: "hybrid",
1115
1256
  queryEmbedding: queryEmbedding.cacheHit ? "cache_hit" : "generated",
1116
1257
  ...(queryEmbedding.runtime ? { embeddingRuntime: queryEmbedding.runtime } : {}),
1258
+ vectorScanMs: Number(vectorScanMs.toFixed(2)),
1259
+ fusionMs: Number(fusionMs.toFixed(2)),
1260
+ vectorCount,
1261
+ vectorBytes,
1117
1262
  },
1118
1263
  };
1119
1264
  }
1265
+ function loadProjectVectorRows(db, compactVectorStorage) {
1266
+ const statement = compactVectorStorage
1267
+ ? db.prepare([
1268
+ "SELECT doc_id, chunk_index, source_path, kind, heading_path, document_kind, document_state, chunk_state, dated, embedding_blob",
1269
+ "FROM doc_embedding_vectors",
1270
+ ].join(" "))
1271
+ : db.prepare([
1272
+ "SELECT doc_id, chunk_index, source_path, kind, heading_path, document_kind, document_state, chunk_state, dated, embedding_json",
1273
+ "FROM doc_embeddings",
1274
+ ].join(" "));
1275
+ if (process.env.CLAW_SEARCH_DAEMON !== "1") {
1276
+ return statement.iterate();
1277
+ }
1278
+ const indexedAt = getMetadata(db, "indexed_at");
1279
+ const cached = projectVectorRowsByDatabase.get(db);
1280
+ if (cached?.indexedAt === indexedAt && cached.compactVectorStorage === compactVectorStorage) {
1281
+ return cached.rows;
1282
+ }
1283
+ const rows = statement.all();
1284
+ projectVectorRowsByDatabase.set(db, { indexedAt, compactVectorStorage, rows });
1285
+ return rows;
1286
+ }
1287
+ function hydrateMissingVectorSnippets(db, results, vectorCandidates) {
1288
+ const readChunk = db.prepare("SELECT chunk_text FROM doc_embeddings WHERE doc_id = ? AND chunk_index = ?");
1289
+ for (const result of results) {
1290
+ if (result.snippet) {
1291
+ continue;
1292
+ }
1293
+ const candidate = vectorCandidates.get(result.sourcePath);
1294
+ if (!candidate) {
1295
+ continue;
1296
+ }
1297
+ const row = readChunk.get(candidate.docId, candidate.chunkIndex);
1298
+ if (row) {
1299
+ result.snippet = buildSnippet(row.chunk_text);
1300
+ }
1301
+ }
1302
+ }
1120
1303
  function tryProjectLexicalFastPath(input) {
1121
1304
  const { queryIntent } = input;
1122
1305
  const primaryKeywordStep = buildProjectKeywordSearchPlan(input.query)[0];
@@ -1181,6 +1364,23 @@ function tryProjectLexicalFastPath(input) {
1181
1364
  return rerankProjectSearchCandidates(Array.from(candidates.values()), input.docSignals, input.limit);
1182
1365
  }
1183
1366
  function resolveProjectQueryEmbedding(db, embedding, queryText) {
1367
+ const identity = buildProjectQueryEmbeddingCacheIdentity(embedding, queryText);
1368
+ const cached = readProjectQueryEmbeddingCache(db, identity);
1369
+ if (cached) {
1370
+ return { vector: cached, cacheHit: true };
1371
+ }
1372
+ const generated = runEmbeddingWorker({
1373
+ embedding,
1374
+ texts: [identity.normalizedQueryText],
1375
+ });
1376
+ const vector = generated.vectors[0];
1377
+ if (!vector?.length) {
1378
+ throw new ClawError("MEMORY_VECTOR_INDEX_REQUIRED", "Unable to generate a query embedding for project search.");
1379
+ }
1380
+ writeProjectQueryEmbeddingCache(db, identity, vector);
1381
+ return { vector, cacheHit: false, ...(generated.runtime ? { runtime: generated.runtime } : {}) };
1382
+ }
1383
+ function buildProjectQueryEmbeddingCacheIdentity(embedding, queryText) {
1184
1384
  const normalizedQueryText = queryText.trim().replace(/\s+/g, " ");
1185
1385
  const embeddingFingerprint = createHash("sha256")
1186
1386
  .update(JSON.stringify(embedding))
@@ -1188,28 +1388,27 @@ function resolveProjectQueryEmbedding(db, embedding, queryText) {
1188
1388
  const cacheKey = createHash("sha256")
1189
1389
  .update(`${PROJECT_QUERY_EMBEDDING_CACHE_VERSION}\0${embeddingFingerprint}\0${normalizedQueryText}`)
1190
1390
  .digest("hex");
1391
+ return { cacheKey, embeddingFingerprint, normalizedQueryText };
1392
+ }
1393
+ function readProjectQueryEmbeddingCache(db, identity) {
1191
1394
  const cached = db
1192
1395
  .prepare([
1193
1396
  "SELECT dimensions, embedding_json",
1194
1397
  "FROM query_embeddings",
1195
1398
  "WHERE cache_key = ? AND embedding_fingerprint = ? AND query_text = ?",
1196
1399
  ].join(" "))
1197
- .get(cacheKey, embeddingFingerprint, normalizedQueryText);
1198
- if (cached) {
1199
- const vector = parseEmbeddingJson(cached.embedding_json);
1200
- if (cached.dimensions > 0 && vector.length === cached.dimensions) {
1201
- return { vector, cacheHit: true };
1202
- }
1203
- db.prepare("DELETE FROM query_embeddings WHERE cache_key = ?").run(cacheKey);
1400
+ .get(identity.cacheKey, identity.embeddingFingerprint, identity.normalizedQueryText);
1401
+ if (!cached) {
1402
+ return null;
1204
1403
  }
1205
- const generated = runEmbeddingWorker({
1206
- embedding,
1207
- texts: [normalizedQueryText],
1208
- });
1209
- const vector = generated.vectors[0];
1210
- if (!vector?.length) {
1211
- throw new ClawError("MEMORY_VECTOR_INDEX_REQUIRED", "Unable to generate a query embedding for project search.");
1404
+ const vector = parseEmbeddingJson(cached.embedding_json);
1405
+ if (cached.dimensions > 0 && vector.length === cached.dimensions) {
1406
+ return vector;
1212
1407
  }
1408
+ db.prepare("DELETE FROM query_embeddings WHERE cache_key = ?").run(identity.cacheKey);
1409
+ return null;
1410
+ }
1411
+ function writeProjectQueryEmbeddingCache(db, identity, vector) {
1213
1412
  db.prepare([
1214
1413
  "INSERT INTO query_embeddings",
1215
1414
  " (cache_key, embedding_fingerprint, query_text, dimensions, embedding_json, created_at)",
@@ -1220,7 +1419,7 @@ function resolveProjectQueryEmbedding(db, embedding, queryText) {
1220
1419
  " dimensions = excluded.dimensions,",
1221
1420
  " embedding_json = excluded.embedding_json,",
1222
1421
  " created_at = excluded.created_at",
1223
- ].join(" ")).run(cacheKey, embeddingFingerprint, normalizedQueryText, vector.length, JSON.stringify(vector), Date.now());
1422
+ ].join(" ")).run(identity.cacheKey, identity.embeddingFingerprint, identity.normalizedQueryText, vector.length, JSON.stringify(vector), Date.now());
1224
1423
  db.prepare([
1225
1424
  "DELETE FROM query_embeddings",
1226
1425
  "WHERE cache_key IN (",
@@ -1229,7 +1428,6 @@ function resolveProjectQueryEmbedding(db, embedding, queryText) {
1229
1428
  " LIMIT -1 OFFSET ?",
1230
1429
  ")",
1231
1430
  ].join(" ")).run(PROJECT_QUERY_EMBEDDING_CACHE_LIMIT);
1232
- return { vector, cacheHit: false, ...(generated.runtime ? { runtime: generated.runtime } : {}) };
1233
1431
  }
1234
1432
  function searchProjectMemoryKeywords(db, query, limit) {
1235
1433
  const plan = buildProjectKeywordSearchPlan(query);
@@ -1667,6 +1865,56 @@ function parseEmbeddingJson(value) {
1667
1865
  const parsed = JSON.parse(value);
1668
1866
  return Array.isArray(parsed) ? parsed.map((entry) => Number(entry)) : [];
1669
1867
  }
1868
+ function normalizeEmbedding(vector) {
1869
+ let squaredNorm = 0;
1870
+ for (const value of vector) {
1871
+ squaredNorm += value * value;
1872
+ }
1873
+ if (squaredNorm === 0) {
1874
+ return [];
1875
+ }
1876
+ const inverseNorm = 1 / Math.sqrt(squaredNorm);
1877
+ return vector.map((value) => value * inverseNorm);
1878
+ }
1879
+ function serializeNormalizedEmbedding(vector) {
1880
+ const normalized = normalizeEmbedding(vector);
1881
+ const buffer = Buffer.allocUnsafe(normalized.length * Float32Array.BYTES_PER_ELEMENT);
1882
+ for (let index = 0; index < normalized.length; index += 1) {
1883
+ buffer.writeFloatLE(normalized[index] ?? 0, index * Float32Array.BYTES_PER_ELEMENT);
1884
+ }
1885
+ return buffer;
1886
+ }
1887
+ function dotProduct(left, right) {
1888
+ const dimensions = Math.min(left.length, right.length);
1889
+ if (dimensions === 0) {
1890
+ return Number.NEGATIVE_INFINITY;
1891
+ }
1892
+ let dot = 0;
1893
+ for (let index = 0; index < dimensions; index += 1) {
1894
+ dot += (left[index] ?? 0) * (right[index] ?? 0);
1895
+ }
1896
+ return dot;
1897
+ }
1898
+ function dotProductFloat32(left, right) {
1899
+ const dimensions = Math.min(left.length, Math.floor(right.byteLength / Float32Array.BYTES_PER_ELEMENT));
1900
+ if (dimensions === 0) {
1901
+ return Number.NEGATIVE_INFINITY;
1902
+ }
1903
+ let dot = 0;
1904
+ if (right.byteOffset % Float32Array.BYTES_PER_ELEMENT === 0) {
1905
+ const view = new Float32Array(right.buffer, right.byteOffset, dimensions);
1906
+ for (let index = 0; index < dimensions; index += 1) {
1907
+ dot += (left[index] ?? 0) * (view[index] ?? 0);
1908
+ }
1909
+ }
1910
+ else {
1911
+ const view = new DataView(right.buffer, right.byteOffset, right.byteLength);
1912
+ for (let index = 0; index < dimensions; index += 1) {
1913
+ dot += (left[index] ?? 0) * view.getFloat32(index * Float32Array.BYTES_PER_ELEMENT, true);
1914
+ }
1915
+ }
1916
+ return dot;
1917
+ }
1670
1918
  function cosineSimilarity(left, right) {
1671
1919
  const dimensions = Math.min(left.length, right.length);
1672
1920
  if (dimensions === 0) {