@leemour/cli-messaging 0.99.0 → 0.101.0
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/cli/bot/copy.d.ts.map +1 -1
- package/dist/cli/bot/copy.js +4 -0
- package/dist/cli/bot/copy.js.map +1 -1
- package/dist/cli/bot/port.d.ts +1 -1
- package/dist/cli/bot/port.d.ts.map +1 -1
- package/dist/cli/embedding-keys.d.ts +16 -0
- package/dist/cli/embedding-keys.d.ts.map +1 -0
- package/dist/cli/embedding-keys.js +31 -0
- package/dist/cli/embedding-keys.js.map +1 -0
- package/dist/cli/messenger/conversations-command.d.ts.map +1 -1
- package/dist/cli/messenger/conversations-command.js +166 -4
- package/dist/cli/messenger/conversations-command.js.map +1 -1
- package/dist/cli/messenger/messages-command.js +1 -1
- package/dist/cli/messenger/messages-command.js.map +1 -1
- package/dist/cli/messenger/models-command.d.ts.map +1 -1
- package/dist/cli/messenger/models-command.js +31 -1
- package/dist/cli/messenger/models-command.js.map +1 -1
- package/dist/cli/messenger/store-maintenance-command.js +20 -4
- package/dist/cli/messenger/store-maintenance-command.js.map +1 -1
- package/dist/conversations/chunks.d.ts +28 -0
- package/dist/conversations/chunks.d.ts.map +1 -0
- package/dist/conversations/chunks.js +45 -0
- package/dist/conversations/chunks.js.map +1 -0
- package/dist/conversations/link.d.ts +1 -1
- package/dist/conversations/link.d.ts.map +1 -1
- package/dist/conversations/link.js.map +1 -1
- package/dist/embeddings/models.d.ts +2 -0
- package/dist/embeddings/models.d.ts.map +1 -1
- package/dist/embeddings/models.js +2 -0
- package/dist/embeddings/models.js.map +1 -1
- package/dist/embeddings/pool.d.ts +15 -0
- package/dist/embeddings/pool.d.ts.map +1 -0
- package/dist/embeddings/pool.js +20 -0
- package/dist/embeddings/pool.js.map +1 -0
- package/dist/embeddings/remote.d.ts +43 -0
- package/dist/embeddings/remote.d.ts.map +1 -0
- package/dist/embeddings/remote.js +110 -0
- package/dist/embeddings/remote.js.map +1 -0
- package/dist/embeddings/worker.d.ts +2 -0
- package/dist/embeddings/worker.d.ts.map +1 -0
- package/dist/embeddings/worker.js +22 -0
- package/dist/embeddings/worker.js.map +1 -0
- package/dist/embeddings/workers.d.ts +8 -0
- package/dist/embeddings/workers.d.ts.map +1 -0
- package/dist/embeddings/workers.js +51 -0
- package/dist/embeddings/workers.js.map +1 -0
- package/dist/mcp/tools/conversations.d.ts.map +1 -1
- package/dist/mcp/tools/conversations.js +23 -0
- package/dist/mcp/tools/conversations.js.map +1 -1
- package/dist/mcp/tools/messages.js +2 -2
- package/dist/mcp/tools/messages.js.map +1 -1
- package/dist/search/query.d.ts +7 -2
- package/dist/search/query.d.ts.map +1 -1
- package/dist/search/query.js +9 -2
- package/dist/search/query.js.map +1 -1
- package/dist/sends/permissions.d.ts.map +1 -1
- package/dist/sends/permissions.js +3 -0
- package/dist/sends/permissions.js.map +1 -1
- package/dist/services/archive.d.ts.map +1 -1
- package/dist/services/archive.js +9 -2
- package/dist/services/archive.js.map +1 -1
- package/dist/services/conversations.d.ts.map +1 -1
- package/dist/services/conversations.js +7 -0
- package/dist/services/conversations.js.map +1 -1
- package/dist/services/embeddings.d.ts +64 -0
- package/dist/services/embeddings.d.ts.map +1 -0
- package/dist/services/embeddings.js +141 -0
- package/dist/services/embeddings.js.map +1 -0
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +3 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/messages.js +2 -4
- package/dist/services/messages.js.map +1 -1
- package/dist/services/people.d.ts.map +1 -1
- package/dist/services/people.js +11 -3
- package/dist/services/people.js.map +1 -1
- package/dist/store/sqlite/conversations.d.ts +3 -1
- package/dist/store/sqlite/conversations.d.ts.map +1 -1
- package/dist/store/sqlite/conversations.js +36 -3
- package/dist/store/sqlite/conversations.js.map +1 -1
- package/dist/store/sqlite/drizzle/bun.js +1 -1
- package/dist/store/sqlite/drizzle/core.d.ts +1 -1
- package/dist/store/sqlite/drizzle/core.d.ts.map +1 -1
- package/dist/store/sqlite/drizzle/core.js +3 -1
- package/dist/store/sqlite/drizzle/core.js.map +1 -1
- package/dist/store/sqlite/drizzle/node.js +1 -1
- package/dist/store/sqlite/drizzle/{shared-VIVPOB3Q.js → shared-WZFJ4TMA.js} +94 -93
- package/dist/store/sqlite/drizzle/{shared-VIVPOB3Q.js.map → shared-WZFJ4TMA.js.map} +3 -3
- package/dist/store/sqlite/manifest.d.ts.map +1 -1
- package/dist/store/sqlite/manifest.js +1 -0
- package/dist/store/sqlite/manifest.js.map +1 -1
- package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
- package/dist/store/sqlite/migrations.generated.js +8 -0
- package/dist/store/sqlite/migrations.generated.js.map +1 -1
- package/dist/store/sqlite/schema.d.ts +176 -0
- package/dist/store/sqlite/schema.d.ts.map +1 -1
- package/dist/store/sqlite/schema.js +33 -1
- package/dist/store/sqlite/schema.js.map +1 -1
- package/dist/store/sqlite/vectors.d.ts +53 -0
- package/dist/store/sqlite/vectors.d.ts.map +1 -0
- package/dist/store/sqlite/vectors.js +107 -0
- package/dist/store/sqlite/vectors.js.map +1 -0
- package/dist/store/store.d.ts +40 -0
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +47 -0
- package/dist/store/store.js.map +1 -1
- package/package.json +1 -1
- package/parity.json +66 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE;AAC1D,yFAAyF;GACvF;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,IAAI,CAAA;CAAE,CAAA;AAEhD,eAAO,MAAM,QAAQ,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE;AAC1D,yFAAyF;GACvF;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,IAAI,CAAA;CAAE,CAAA;AAEhD,eAAO,MAAM,QAAQ,EAAE,aAAa,EAcnC,CAAA;AAED,eAAO,MAAM,mBAAmB,cACpB,aAAa,EAAE,cACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,KAClD,SAAS,EAgBX,CAAA"}
|
|
@@ -12,6 +12,7 @@ export const MANIFEST = [
|
|
|
12
12
|
{ name: "20261001110735_version-12-search-state", version: 12, minCompatible: 6 },
|
|
13
13
|
{ name: "20261001110736_version-12-word-index", version: 12, minCompatible: 6 },
|
|
14
14
|
{ name: "20261001170143_version-13-conversations", version: 13, minCompatible: 6 },
|
|
15
|
+
{ name: "20261001231437_version-14-chunks", version: 14, minCompatible: 6 },
|
|
15
16
|
];
|
|
16
17
|
export const generatedMigrations = (manifest = MANIFEST, generated = GENERATED) => {
|
|
17
18
|
const migrations = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/store/sqlite/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAcrD,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,EAAE,IAAI,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,IAAI,EAAE;IAC/D,4FAA4F;IAC5F,EAAE,IAAI,EAAE,kCAAkC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAC1E,EAAE,IAAI,EAAE,wCAAwC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAChF,EAAE,IAAI,EAAE,uCAAuC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAC/E,EAAE,IAAI,EAAE,qCAAqC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7E,EAAE,IAAI,EAAE,uCAAuC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAC/E,EAAE,IAAI,EAAE,oCAAoC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7E,EAAE,IAAI,EAAE,uCAAuC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAChF,EAAE,IAAI,EAAE,wCAAwC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IACjF,EAAE,IAAI,EAAE,sCAAsC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC/E,EAAE,IAAI,EAAE,yCAAyC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/store/sqlite/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAcrD,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,EAAE,IAAI,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,IAAI,EAAE;IAC/D,4FAA4F;IAC5F,EAAE,IAAI,EAAE,kCAAkC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAC1E,EAAE,IAAI,EAAE,wCAAwC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAChF,EAAE,IAAI,EAAE,uCAAuC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAC/E,EAAE,IAAI,EAAE,qCAAqC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7E,EAAE,IAAI,EAAE,uCAAuC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;IAC/E,EAAE,IAAI,EAAE,oCAAoC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7E,EAAE,IAAI,EAAE,uCAAuC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAChF,EAAE,IAAI,EAAE,wCAAwC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IACjF,EAAE,IAAI,EAAE,sCAAsC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC/E,EAAE,IAAI,EAAE,yCAAyC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAClF,EAAE,IAAI,EAAE,kCAAkC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;CAC5E,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAAQ,GAAoB,QAAQ,EACpC,SAAS,GAA6C,SAAS,EAClD,EAAE;IACf,MAAM,UAAU,GAAgB,EAAE,CAAA;IAClC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,sBAAsB,IAAI,KAAK;YAAE,SAAQ;QAC7C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/D,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,gEAAgE,CAAC,CAAA;QACpH,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACpC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACpH,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;QACnF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.generated.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/migrations.generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"migrations.generated.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/migrations.generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,EAwH7D,CAAA"}
|
|
@@ -110,6 +110,14 @@ export const GENERATED = [
|
|
|
110
110
|
"CREATE INDEX `message_links_by_parent` ON `message_links` (`parent_pk`);",
|
|
111
111
|
"CREATE INDEX `message_links_by_build` ON `message_links` (`chat_pk`,`build`);"
|
|
112
112
|
]
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"name": "20261001231437_version-14-chunks",
|
|
116
|
+
"statements": [
|
|
117
|
+
"CREATE TABLE `chunk_vectors` (\n\t`model` text NOT NULL,\n\t`content_hash` text NOT NULL,\n\t`dims` integer NOT NULL,\n\t`vector` blob NOT NULL,\n\t`created_at` integer NOT NULL,\n\tCONSTRAINT `chunk_vectors_pk` PRIMARY KEY(`model`, `content_hash`)\n);",
|
|
118
|
+
"CREATE TABLE `conversation_chunks` (\n\t`conversation_pk` integer NOT NULL,\n\t`ordinal` integer NOT NULL,\n\t`first_message_pk` integer NOT NULL,\n\t`last_message_pk` integer NOT NULL,\n\t`content_hash` text NOT NULL,\n\tCONSTRAINT `conversation_chunks_pk` PRIMARY KEY(`conversation_pk`, `ordinal`),\n\tCONSTRAINT `fk_conversation_chunks_conversation_pk_conversations_pk_fk` FOREIGN KEY (`conversation_pk`) REFERENCES `conversations`(`pk`) ON DELETE CASCADE,\n\tCONSTRAINT `fk_conversation_chunks_first_message_pk_messages_pk_fk` FOREIGN KEY (`first_message_pk`) REFERENCES `messages`(`pk`) ON DELETE CASCADE,\n\tCONSTRAINT `fk_conversation_chunks_last_message_pk_messages_pk_fk` FOREIGN KEY (`last_message_pk`) REFERENCES `messages`(`pk`) ON DELETE CASCADE\n);",
|
|
119
|
+
"CREATE INDEX `conversation_chunks_by_hash` ON `conversation_chunks` (`content_hash`);"
|
|
120
|
+
]
|
|
113
121
|
}
|
|
114
122
|
];
|
|
115
123
|
//# sourceMappingURL=migrations.generated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.generated.js","sourceRoot":"","sources":["../../../src/store/sqlite/migrations.generated.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,MAAM,CAAC,MAAM,SAAS,GAA6C;IACjE;QACE,MAAM,EAAE,yBAAyB;QACjC,YAAY,EAAE;YACZ,wdAAwd;YACxd,2PAA2P;YAC3P,giBAAgiB;YAChiB,0fAA0f;YAC1f,gYAAgY;YAChY,mnBAAmnB;YACnnB,8cAA8c;YAC9c,oRAAoR;YACpR,6+BAA6+B;YAC7+B,sNAAsN;YACtN,sSAAsS;YACtS,qFAAqF;YACrF,4EAA4E;YAC5E,4EAA4E;YAC5E,6EAA6E;YAC7E,8EAA8E;YAC9E,yEAAyE;SAC1E;KACF;IACD;QACE,MAAM,EAAE,kCAAkC;QAC1C,YAAY,EAAE;YACZ,0CAA0C;YAC1C,kDAAkD;YAClD,qEAAqE;YACrE,qEAAqE;YACrE,oDAAoD;YACpD,0DAA0D;YAC1D,iHAAiH;SAClH;KACF;IACD;QACE,MAAM,EAAE,wCAAwC;QAChD,YAAY,EAAE;YACZ,+QAA+Q;YAC/Q,8KAA8K;YAC9K,qOAAqO;YACrO,uOAAuO;YACvO,4LAA4L;SAC7L;KACF;IACD;QACE,MAAM,EAAE,uCAAuC;QAC/C,YAAY,EAAE;YACZ,yYAAyY;YACzY,4EAA4E;SAC7E;KACF;IACD;QACE,MAAM,EAAE,qCAAqC;QAC7C,YAAY,EAAE;YACZ,8TAA8T;SAC/T;KACF;IACD;QACE,MAAM,EAAE,uCAAuC;QAC/C,YAAY,EAAE;YACZ,iUAAiU;SAClU;KACF;IACD;QACE,MAAM,EAAE,oCAAoC;QAC5C,YAAY,EAAE;YACZ,kEAAkE;YAClE,kDAAkD;SACnD;KACF;IACD;QACE,MAAM,EAAE,uCAAuC;QAC/C,YAAY,EAAE;YACZ,2WAA2W;SAC5W;KACF;IACD;QACE,MAAM,EAAE,wCAAwC;QAChD,YAAY,EAAE;YACZ,iPAAiP;SAClP;KACF;IACD;QACE,MAAM,EAAE,sCAAsC;QAC9C,YAAY,EAAE;YACZ,qeAAqe;YACre,wKAAwK;YACxK,iRAAiR;YACjR,8mBAA8mB;YAC9mB,yHAAyH;YACzH,wMAAwM;YACxM,+KAA+K;YAC/K,mhBAAmhB;YACnhB,kPAAkP;SACnP;KACF;IACD;QACE,MAAM,EAAE,yCAAyC;QACjD,YAAY,EAAE;YACZ,yfAAyf;YACzf,6TAA6T;YAC7T,2lBAA2lB;YAC3lB,4tBAA4tB;YAC5tB,6CAA6C;YAC7C,4FAA4F;YAC5F,yFAAyF;YACzF,6IAA6I;YAC7I,0EAA0E;YAC1E,+EAA+E;SAChF;KACF;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"migrations.generated.js","sourceRoot":"","sources":["../../../src/store/sqlite/migrations.generated.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,MAAM,CAAC,MAAM,SAAS,GAA6C;IACjE;QACE,MAAM,EAAE,yBAAyB;QACjC,YAAY,EAAE;YACZ,wdAAwd;YACxd,2PAA2P;YAC3P,giBAAgiB;YAChiB,0fAA0f;YAC1f,gYAAgY;YAChY,mnBAAmnB;YACnnB,8cAA8c;YAC9c,oRAAoR;YACpR,6+BAA6+B;YAC7+B,sNAAsN;YACtN,sSAAsS;YACtS,qFAAqF;YACrF,4EAA4E;YAC5E,4EAA4E;YAC5E,6EAA6E;YAC7E,8EAA8E;YAC9E,yEAAyE;SAC1E;KACF;IACD;QACE,MAAM,EAAE,kCAAkC;QAC1C,YAAY,EAAE;YACZ,0CAA0C;YAC1C,kDAAkD;YAClD,qEAAqE;YACrE,qEAAqE;YACrE,oDAAoD;YACpD,0DAA0D;YAC1D,iHAAiH;SAClH;KACF;IACD;QACE,MAAM,EAAE,wCAAwC;QAChD,YAAY,EAAE;YACZ,+QAA+Q;YAC/Q,8KAA8K;YAC9K,qOAAqO;YACrO,uOAAuO;YACvO,4LAA4L;SAC7L;KACF;IACD;QACE,MAAM,EAAE,uCAAuC;QAC/C,YAAY,EAAE;YACZ,yYAAyY;YACzY,4EAA4E;SAC7E;KACF;IACD;QACE,MAAM,EAAE,qCAAqC;QAC7C,YAAY,EAAE;YACZ,8TAA8T;SAC/T;KACF;IACD;QACE,MAAM,EAAE,uCAAuC;QAC/C,YAAY,EAAE;YACZ,iUAAiU;SAClU;KACF;IACD;QACE,MAAM,EAAE,oCAAoC;QAC5C,YAAY,EAAE;YACZ,kEAAkE;YAClE,kDAAkD;SACnD;KACF;IACD;QACE,MAAM,EAAE,uCAAuC;QAC/C,YAAY,EAAE;YACZ,2WAA2W;SAC5W;KACF;IACD;QACE,MAAM,EAAE,wCAAwC;QAChD,YAAY,EAAE;YACZ,iPAAiP;SAClP;KACF;IACD;QACE,MAAM,EAAE,sCAAsC;QAC9C,YAAY,EAAE;YACZ,qeAAqe;YACre,wKAAwK;YACxK,iRAAiR;YACjR,8mBAA8mB;YAC9mB,yHAAyH;YACzH,wMAAwM;YACxM,+KAA+K;YAC/K,mhBAAmhB;YACnhB,kPAAkP;SACnP;KACF;IACD;QACE,MAAM,EAAE,yCAAyC;QACjD,YAAY,EAAE;YACZ,yfAAyf;YACzf,6TAA6T;YAC7T,2lBAA2lB;YAC3lB,4tBAA4tB;YAC5tB,6CAA6C;YAC7C,4FAA4F;YAC5F,yFAAyF;YACzF,6IAA6I;YAC7I,0EAA0E;YAC1E,+EAA+E;SAChF;KACF;IACD;QACE,MAAM,EAAE,kCAAkC;QAC1C,YAAY,EAAE;YACZ,8PAA8P;YAC9P,4vBAA4vB;YAC5vB,uFAAuF;SACxF;KACF;CACF,CAAA"}
|
|
@@ -2493,4 +2493,180 @@ export declare const conversationState: import("drizzle-orm/sqlite-core").SQLite
|
|
|
2493
2493
|
};
|
|
2494
2494
|
dialect: 'sqlite';
|
|
2495
2495
|
}>;
|
|
2496
|
+
/** A conversation, or a run of its messages when it is longer than one chunk. */
|
|
2497
|
+
export declare const conversationChunks: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
2498
|
+
name: "conversation_chunks";
|
|
2499
|
+
schema: undefined;
|
|
2500
|
+
columns: {
|
|
2501
|
+
conversationPk: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
2502
|
+
name: string;
|
|
2503
|
+
tableName: "conversation_chunks";
|
|
2504
|
+
dataType: "number int53";
|
|
2505
|
+
data: number;
|
|
2506
|
+
driverParam: number;
|
|
2507
|
+
notNull: true;
|
|
2508
|
+
hasDefault: false;
|
|
2509
|
+
isPrimaryKey: false;
|
|
2510
|
+
isAutoincrement: false;
|
|
2511
|
+
hasRuntimeDefault: false;
|
|
2512
|
+
enumValues: undefined;
|
|
2513
|
+
baseColumn: never;
|
|
2514
|
+
identity: undefined;
|
|
2515
|
+
generated: undefined;
|
|
2516
|
+
}, {}>;
|
|
2517
|
+
ordinal: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
2518
|
+
name: string;
|
|
2519
|
+
tableName: "conversation_chunks";
|
|
2520
|
+
dataType: "number int53";
|
|
2521
|
+
data: number;
|
|
2522
|
+
driverParam: number;
|
|
2523
|
+
notNull: true;
|
|
2524
|
+
hasDefault: false;
|
|
2525
|
+
isPrimaryKey: false;
|
|
2526
|
+
isAutoincrement: false;
|
|
2527
|
+
hasRuntimeDefault: false;
|
|
2528
|
+
enumValues: undefined;
|
|
2529
|
+
baseColumn: never;
|
|
2530
|
+
identity: undefined;
|
|
2531
|
+
generated: undefined;
|
|
2532
|
+
}, {}>;
|
|
2533
|
+
firstMessagePk: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
2534
|
+
name: string;
|
|
2535
|
+
tableName: "conversation_chunks";
|
|
2536
|
+
dataType: "number int53";
|
|
2537
|
+
data: number;
|
|
2538
|
+
driverParam: number;
|
|
2539
|
+
notNull: true;
|
|
2540
|
+
hasDefault: false;
|
|
2541
|
+
isPrimaryKey: false;
|
|
2542
|
+
isAutoincrement: false;
|
|
2543
|
+
hasRuntimeDefault: false;
|
|
2544
|
+
enumValues: undefined;
|
|
2545
|
+
baseColumn: never;
|
|
2546
|
+
identity: undefined;
|
|
2547
|
+
generated: undefined;
|
|
2548
|
+
}, {}>;
|
|
2549
|
+
lastMessagePk: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
2550
|
+
name: string;
|
|
2551
|
+
tableName: "conversation_chunks";
|
|
2552
|
+
dataType: "number int53";
|
|
2553
|
+
data: number;
|
|
2554
|
+
driverParam: number;
|
|
2555
|
+
notNull: true;
|
|
2556
|
+
hasDefault: false;
|
|
2557
|
+
isPrimaryKey: false;
|
|
2558
|
+
isAutoincrement: false;
|
|
2559
|
+
hasRuntimeDefault: false;
|
|
2560
|
+
enumValues: undefined;
|
|
2561
|
+
baseColumn: never;
|
|
2562
|
+
identity: undefined;
|
|
2563
|
+
generated: undefined;
|
|
2564
|
+
}, {}>;
|
|
2565
|
+
contentHash: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
2566
|
+
name: string;
|
|
2567
|
+
tableName: "conversation_chunks";
|
|
2568
|
+
dataType: "string";
|
|
2569
|
+
data: string;
|
|
2570
|
+
driverParam: string;
|
|
2571
|
+
notNull: true;
|
|
2572
|
+
hasDefault: false;
|
|
2573
|
+
isPrimaryKey: false;
|
|
2574
|
+
isAutoincrement: false;
|
|
2575
|
+
hasRuntimeDefault: false;
|
|
2576
|
+
enumValues: [string, ...string[]];
|
|
2577
|
+
baseColumn: never;
|
|
2578
|
+
identity: undefined;
|
|
2579
|
+
generated: undefined;
|
|
2580
|
+
}, {}>;
|
|
2581
|
+
};
|
|
2582
|
+
dialect: 'sqlite';
|
|
2583
|
+
}>;
|
|
2584
|
+
/** One model's vector for one chunk text; no chat, so vectors outlive the builds that point at them. */
|
|
2585
|
+
export declare const chunkVectors: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
2586
|
+
name: "chunk_vectors";
|
|
2587
|
+
schema: undefined;
|
|
2588
|
+
columns: {
|
|
2589
|
+
model: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
2590
|
+
name: string;
|
|
2591
|
+
tableName: "chunk_vectors";
|
|
2592
|
+
dataType: "string";
|
|
2593
|
+
data: string;
|
|
2594
|
+
driverParam: string;
|
|
2595
|
+
notNull: true;
|
|
2596
|
+
hasDefault: false;
|
|
2597
|
+
isPrimaryKey: false;
|
|
2598
|
+
isAutoincrement: false;
|
|
2599
|
+
hasRuntimeDefault: false;
|
|
2600
|
+
enumValues: [string, ...string[]];
|
|
2601
|
+
baseColumn: never;
|
|
2602
|
+
identity: undefined;
|
|
2603
|
+
generated: undefined;
|
|
2604
|
+
}, {}>;
|
|
2605
|
+
contentHash: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
2606
|
+
name: string;
|
|
2607
|
+
tableName: "chunk_vectors";
|
|
2608
|
+
dataType: "string";
|
|
2609
|
+
data: string;
|
|
2610
|
+
driverParam: string;
|
|
2611
|
+
notNull: true;
|
|
2612
|
+
hasDefault: false;
|
|
2613
|
+
isPrimaryKey: false;
|
|
2614
|
+
isAutoincrement: false;
|
|
2615
|
+
hasRuntimeDefault: false;
|
|
2616
|
+
enumValues: [string, ...string[]];
|
|
2617
|
+
baseColumn: never;
|
|
2618
|
+
identity: undefined;
|
|
2619
|
+
generated: undefined;
|
|
2620
|
+
}, {}>;
|
|
2621
|
+
dims: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
2622
|
+
name: string;
|
|
2623
|
+
tableName: "chunk_vectors";
|
|
2624
|
+
dataType: "number int53";
|
|
2625
|
+
data: number;
|
|
2626
|
+
driverParam: number;
|
|
2627
|
+
notNull: true;
|
|
2628
|
+
hasDefault: false;
|
|
2629
|
+
isPrimaryKey: false;
|
|
2630
|
+
isAutoincrement: false;
|
|
2631
|
+
hasRuntimeDefault: false;
|
|
2632
|
+
enumValues: undefined;
|
|
2633
|
+
baseColumn: never;
|
|
2634
|
+
identity: undefined;
|
|
2635
|
+
generated: undefined;
|
|
2636
|
+
}, {}>;
|
|
2637
|
+
vector: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
2638
|
+
name: string;
|
|
2639
|
+
tableName: "chunk_vectors";
|
|
2640
|
+
dataType: "object buffer";
|
|
2641
|
+
data: Buffer<ArrayBufferLike>;
|
|
2642
|
+
driverParam: Buffer<ArrayBufferLike>;
|
|
2643
|
+
notNull: true;
|
|
2644
|
+
hasDefault: false;
|
|
2645
|
+
isPrimaryKey: false;
|
|
2646
|
+
isAutoincrement: false;
|
|
2647
|
+
hasRuntimeDefault: false;
|
|
2648
|
+
enumValues: undefined;
|
|
2649
|
+
baseColumn: never;
|
|
2650
|
+
identity: undefined;
|
|
2651
|
+
generated: undefined;
|
|
2652
|
+
}, {}>;
|
|
2653
|
+
createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
2654
|
+
name: string;
|
|
2655
|
+
tableName: "chunk_vectors";
|
|
2656
|
+
dataType: "number int53";
|
|
2657
|
+
data: number;
|
|
2658
|
+
driverParam: number;
|
|
2659
|
+
notNull: true;
|
|
2660
|
+
hasDefault: false;
|
|
2661
|
+
isPrimaryKey: false;
|
|
2662
|
+
isAutoincrement: false;
|
|
2663
|
+
hasRuntimeDefault: false;
|
|
2664
|
+
enumValues: undefined;
|
|
2665
|
+
baseColumn: never;
|
|
2666
|
+
identity: undefined;
|
|
2667
|
+
generated: undefined;
|
|
2668
|
+
}, {}>;
|
|
2669
|
+
};
|
|
2670
|
+
dialect: 'sqlite';
|
|
2671
|
+
}>;
|
|
2496
2672
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { desc, index, integer, primaryKey, real, sql, sqliteTable, text, unique, uniqueIndex } from "./drizzle/core.js";
|
|
1
|
+
import { blob, desc, index, integer, primaryKey, real, sql, sqliteTable, text, unique, uniqueIndex, } from "./drizzle/core.js";
|
|
2
2
|
/**
|
|
3
3
|
* The store's base tables — what `drizzle-kit generate` diffs against.
|
|
4
4
|
* A change here becomes a migration, so it follows the rules at the top of `../migrations.ts`. The
|
|
@@ -294,4 +294,36 @@ export const conversationState = sqliteTable("conversation_state", {
|
|
|
294
294
|
/** The build readers see; a higher one is being written, or failed. */
|
|
295
295
|
currentBuild: integer("current_build"),
|
|
296
296
|
});
|
|
297
|
+
/*
|
|
298
|
+
* Phase 5's search by meaning. Chunks are derived per build, as conversations are; a vector is keyed by
|
|
299
|
+
* the text it encodes, so a rebuild that leaves a conversation's text alone reuses it.
|
|
300
|
+
*/
|
|
301
|
+
/** A conversation, or a run of its messages when it is longer than one chunk. */
|
|
302
|
+
export const conversationChunks = sqliteTable("conversation_chunks", {
|
|
303
|
+
conversationPk: integer("conversation_pk")
|
|
304
|
+
.notNull()
|
|
305
|
+
.references(() => conversations.pk, { onDelete: "cascade" }),
|
|
306
|
+
ordinal: integer("ordinal").notNull(),
|
|
307
|
+
firstMessagePk: integer("first_message_pk")
|
|
308
|
+
.notNull()
|
|
309
|
+
.references(() => messages.pk, { onDelete: "cascade" }),
|
|
310
|
+
lastMessagePk: integer("last_message_pk")
|
|
311
|
+
.notNull()
|
|
312
|
+
.references(() => messages.pk, { onDelete: "cascade" }),
|
|
313
|
+
/** sha256 of the text the model is given, hex. The chunk's text itself is never stored. */
|
|
314
|
+
contentHash: text("content_hash").notNull(),
|
|
315
|
+
}, (table) => [
|
|
316
|
+
primaryKey({ columns: [table.conversationPk, table.ordinal] }),
|
|
317
|
+
index("conversation_chunks_by_hash").on(table.contentHash),
|
|
318
|
+
]);
|
|
319
|
+
/** One model's vector for one chunk text; no chat, so vectors outlive the builds that point at them. */
|
|
320
|
+
export const chunkVectors = sqliteTable("chunk_vectors", {
|
|
321
|
+
/** `<provider>:<model>:<dims>` — vectors of different models never mix. */
|
|
322
|
+
model: text("model").notNull(),
|
|
323
|
+
contentHash: text("content_hash").notNull(),
|
|
324
|
+
dims: integer("dims").notNull(),
|
|
325
|
+
/** Float32, little-endian, length one. */
|
|
326
|
+
vector: blob("vector", { mode: "buffer" }).notNull(),
|
|
327
|
+
createdAt: integer("created_at").notNull(),
|
|
328
|
+
}, (table) => [primaryKey({ columns: [table.model, table.contentHash] })]);
|
|
297
329
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/store/sqlite/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/store/sqlite/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { StoreContext } from "./open.js";
|
|
2
|
+
/** A chunk of the chat's current build: its hash, and the messages its text is cut from. */
|
|
3
|
+
export interface ChunkToEmbed {
|
|
4
|
+
hash: string;
|
|
5
|
+
lines: {
|
|
6
|
+
id: string;
|
|
7
|
+
sender: string | null;
|
|
8
|
+
text: string;
|
|
9
|
+
}[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Chunks of the current build with no vector of `model`, ordered by hash from `after`, each with the
|
|
13
|
+
* messages its text is cut from — the text itself is never stored, so it is read again here.
|
|
14
|
+
*/
|
|
15
|
+
export declare const chunksToEmbed: ({ orm }: StoreContext, chatKey: number, model: string, { after, limit }: {
|
|
16
|
+
after?: string;
|
|
17
|
+
limit: number;
|
|
18
|
+
}) => ChunkToEmbed[];
|
|
19
|
+
/** A vector already there for the same model and text is kept: the same text gives the same vector. */
|
|
20
|
+
export declare const saveVectors: ({ orm, now }: StoreContext, model: string, dims: number, vectors: {
|
|
21
|
+
hash: string;
|
|
22
|
+
vector: Float32Array;
|
|
23
|
+
}[]) => void;
|
|
24
|
+
/** The current build's distinct chunk texts, and how many of them have a vector of `model`. */
|
|
25
|
+
export declare const vectorStatus: ({ orm }: StoreContext, chatKey: number, model: string) => {
|
|
26
|
+
chunks: number;
|
|
27
|
+
embedded: number;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Drops the vectors of the chat's chunks, or only one model's — but not one another chat's chunk still
|
|
31
|
+
* points at: the same text in two chats has one vector. Messages are never touched.
|
|
32
|
+
*/
|
|
33
|
+
export declare const clearVectors: ({ orm }: StoreContext, chatKey: number, model: string | undefined) => number;
|
|
34
|
+
export interface NearestChunk {
|
|
35
|
+
conversationPk: number;
|
|
36
|
+
firstMessagePk: number;
|
|
37
|
+
lastMessagePk: number;
|
|
38
|
+
score: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The conversations of the current builds in scope nearest to `query`, best first: each scored by its
|
|
42
|
+
* best chunk. Vectors are unit length, so the dot product is the cosine (phase 5 E3).
|
|
43
|
+
*/
|
|
44
|
+
export declare const nearestChunks: ({ orm }: StoreContext, accountPk: number, { chatKey, model, since, limit, query, }: {
|
|
45
|
+
chatKey?: number;
|
|
46
|
+
model: string;
|
|
47
|
+
since?: number;
|
|
48
|
+
limit: number;
|
|
49
|
+
query: Float32Array;
|
|
50
|
+
}) => NearestChunk[];
|
|
51
|
+
/** The messenger's ids of these messages, by pk. */
|
|
52
|
+
export declare const messageIds: ({ orm }: StoreContext, pks: number[]) => Map<number, string>;
|
|
53
|
+
//# sourceMappingURL=vectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vectors.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/vectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,4FAA4F;AAC5F,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC7D;AAOD;;;GAGG;AACH,eAAO,MAAM,aAAa,YACf,YAAY,WACZ,MAAM,SACR,MAAM,oBACK;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAClD,YAAY,EAoBd,CAAA;AAED,uGAAuG;AACvG,eAAO,MAAM,WAAW,iBACR,YAAY,SACnB,MAAM,QACP,MAAM,WACH;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,EAAE,KAChD,IASF,CAAA;AAED,+FAA+F;AAC/F,eAAO,MAAM,YAAY,YAAa,YAAY,WAAW,MAAM,SAAS,MAAM;IAMvE,MAAM;IAA4B,QAAQ;CACpD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,YAAa,YAAY,WAAW,MAAM,SAAS,MAAM,GAAG,SAAS,KAAG,MASvF,CAAA;AAEV,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CACd;AAYD;;;GAGG;AACH,eAAO,MAAM,aAAa,YACf,YAAY,aACV,MAAM,4CAOd;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,KACzF,YAAY,EAkCd,CAAA;AAED,oDAAoD;AACpD,eAAO,MAAM,UAAU,YAAa,YAAY,OAAO,MAAM,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAYjF,CAAA"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { sql } from "./drizzle/core.js";
|
|
2
|
+
const currentChunks = (chatKey) => sql `SELECT k.content_hash, k.conversation_pk, k.first_message_pk,
|
|
3
|
+
k.last_message_pk FROM conversation_chunks k JOIN conversations c ON c.pk = k.conversation_pk
|
|
4
|
+
WHERE c.chat_pk = ${chatKey}
|
|
5
|
+
AND c.build = (SELECT s.current_build FROM conversation_state s WHERE s.chat_pk = ${chatKey})`;
|
|
6
|
+
/**
|
|
7
|
+
* Chunks of the current build with no vector of `model`, ordered by hash from `after`, each with the
|
|
8
|
+
* messages its text is cut from — the text itself is never stored, so it is read again here.
|
|
9
|
+
*/
|
|
10
|
+
export const chunksToEmbed = ({ orm }, chatKey, model, { after, limit }) => {
|
|
11
|
+
const chunks = orm.all(sql `SELECT k.content_hash AS hash, min(k.conversation_pk) AS conversation, k.first_message_pk AS first,
|
|
12
|
+
k.last_message_pk AS last
|
|
13
|
+
FROM (${currentChunks(chatKey)}) k
|
|
14
|
+
WHERE k.content_hash > ${after ?? ""}
|
|
15
|
+
AND NOT EXISTS (SELECT 1 FROM chunk_vectors v WHERE v.model = ${model} AND v.content_hash = k.content_hash)
|
|
16
|
+
GROUP BY k.content_hash ORDER BY k.content_hash LIMIT ${limit}`);
|
|
17
|
+
return chunks.map(({ hash, conversation, first, last }) => ({
|
|
18
|
+
hash,
|
|
19
|
+
lines: orm.all(sql `SELECT m.native_id AS id, m.sender_name AS sender, m.text FROM conversation_messages cm
|
|
20
|
+
JOIN messages m ON m.pk = cm.message_pk
|
|
21
|
+
JOIN messages f ON f.pk = ${first} JOIN messages l ON l.pk = ${last}
|
|
22
|
+
WHERE cm.conversation_pk = ${conversation} AND m.deleted_at IS NULL
|
|
23
|
+
AND (m.sent_at, m.pk) >= (f.sent_at, f.pk) AND (m.sent_at, m.pk) <= (l.sent_at, l.pk)
|
|
24
|
+
ORDER BY m.sent_at, m.pk`),
|
|
25
|
+
}));
|
|
26
|
+
};
|
|
27
|
+
/** A vector already there for the same model and text is kept: the same text gives the same vector. */
|
|
28
|
+
export const saveVectors = ({ orm, now }, model, dims, vectors) => {
|
|
29
|
+
const at = now();
|
|
30
|
+
for (const { hash, vector } of vectors) {
|
|
31
|
+
orm.run(sql `INSERT INTO chunk_vectors (model, content_hash, dims, vector, created_at)
|
|
32
|
+
VALUES (${model}, ${hash}, ${dims}, ${Buffer.from(vector.buffer, vector.byteOffset, vector.byteLength)}, ${at})
|
|
33
|
+
ON CONFLICT DO NOTHING`);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
/** The current build's distinct chunk texts, and how many of them have a vector of `model`. */
|
|
37
|
+
export const vectorStatus = ({ orm }, chatKey, model) => {
|
|
38
|
+
const row = orm.get(sql `SELECT count(*) AS chunks, sum(EXISTS (SELECT 1 FROM chunk_vectors v
|
|
39
|
+
WHERE v.model = ${model} AND v.content_hash = k.content_hash)) AS embedded
|
|
40
|
+
FROM (SELECT DISTINCT content_hash FROM (${currentChunks(chatKey)})) k`);
|
|
41
|
+
return { chunks: Number(row?.chunks ?? 0), embedded: Number(row?.embedded ?? 0) };
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Drops the vectors of the chat's chunks, or only one model's — but not one another chat's chunk still
|
|
45
|
+
* points at: the same text in two chats has one vector. Messages are never touched.
|
|
46
|
+
*/
|
|
47
|
+
export const clearVectors = ({ orm }, chatKey, model) => orm.all(sql `DELETE FROM chunk_vectors
|
|
48
|
+
WHERE ${model === undefined ? sql `1` : sql `model = ${model}`}
|
|
49
|
+
AND content_hash IN (SELECT k.content_hash FROM conversation_chunks k
|
|
50
|
+
JOIN conversations c ON c.pk = k.conversation_pk WHERE c.chat_pk = ${chatKey})
|
|
51
|
+
AND content_hash NOT IN (SELECT k.content_hash FROM conversation_chunks k
|
|
52
|
+
JOIN conversations c ON c.pk = k.conversation_pk WHERE c.chat_pk <> ${chatKey})
|
|
53
|
+
RETURNING 1 AS n`).length;
|
|
54
|
+
/** Rows read per step of a search, so a chat of any size is scanned in bounded memory. */
|
|
55
|
+
const SCAN_PAGE = 5_000;
|
|
56
|
+
const dot = (query, blob) => {
|
|
57
|
+
const vector = new Float32Array(blob.buffer.slice(blob.byteOffset, blob.byteOffset + blob.byteLength));
|
|
58
|
+
let sum = 0;
|
|
59
|
+
for (let index = 0; index < query.length; index++)
|
|
60
|
+
sum += query[index] * vector[index];
|
|
61
|
+
return sum;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* The conversations of the current builds in scope nearest to `query`, best first: each scored by its
|
|
65
|
+
* best chunk. Vectors are unit length, so the dot product is the cosine (phase 5 E3).
|
|
66
|
+
*/
|
|
67
|
+
export const nearestChunks = ({ orm }, accountPk, { chatKey, model, since, limit, query, }) => {
|
|
68
|
+
const best = new Map();
|
|
69
|
+
let after = { conversation: 0, ordinal: -1 };
|
|
70
|
+
for (;;) {
|
|
71
|
+
const rows = orm.all(sql `SELECT k.conversation_pk AS conversation, k.ordinal, k.first_message_pk AS first, k.last_message_pk AS last,
|
|
72
|
+
v.vector FROM conversation_chunks k
|
|
73
|
+
JOIN conversations c ON c.pk = k.conversation_pk
|
|
74
|
+
JOIN conversation_state s ON s.chat_pk = c.chat_pk AND s.current_build = c.build
|
|
75
|
+
JOIN chats ch ON ch.pk = c.chat_pk
|
|
76
|
+
JOIN chunk_vectors v ON v.model = ${model} AND v.content_hash = k.content_hash
|
|
77
|
+
WHERE ch.account_pk = ${accountPk}
|
|
78
|
+
${chatKey === undefined ? sql `` : sql `AND c.chat_pk = ${chatKey}`}
|
|
79
|
+
${since === undefined ? sql `` : sql `AND c.last_at >= ${since}`}
|
|
80
|
+
AND (k.conversation_pk, k.ordinal) > (${after.conversation}, ${after.ordinal})
|
|
81
|
+
ORDER BY k.conversation_pk, k.ordinal LIMIT ${SCAN_PAGE}`);
|
|
82
|
+
for (const row of rows) {
|
|
83
|
+
const score = dot(query, row.vector);
|
|
84
|
+
const held = best.get(row.conversation);
|
|
85
|
+
if (!held || score > held.score) {
|
|
86
|
+
best.set(row.conversation, {
|
|
87
|
+
conversationPk: row.conversation,
|
|
88
|
+
firstMessagePk: row.first,
|
|
89
|
+
lastMessagePk: row.last,
|
|
90
|
+
score,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const last = rows.at(-1);
|
|
95
|
+
if (!last || rows.length < SCAN_PAGE)
|
|
96
|
+
break;
|
|
97
|
+
after = { conversation: last.conversation, ordinal: last.ordinal };
|
|
98
|
+
}
|
|
99
|
+
return [...best.values()].sort((a, b) => b.score - a.score).slice(0, limit);
|
|
100
|
+
};
|
|
101
|
+
/** The messenger's ids of these messages, by pk. */
|
|
102
|
+
export const messageIds = ({ orm }, pks) => new Map(pks.length === 0
|
|
103
|
+
? []
|
|
104
|
+
: orm
|
|
105
|
+
.all(sql `SELECT pk, native_id AS id FROM messages WHERE pk IN (${sql.join(pks.map((pk) => sql `${pk}`), sql `, `)})`)
|
|
106
|
+
.map(({ pk, id }) => [pk, id]));
|
|
107
|
+
//# sourceMappingURL=vectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vectors.js","sourceRoot":"","sources":["../../../src/store/sqlite/vectors.ts"],"names":[],"mappings":"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"}
|
package/dist/store/store.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { Chat, Contact, Id, Member, Message, MessageHit, Page, Provider, Re
|
|
|
3
3
|
import type { PeopleLookup } from "../resolve.js";
|
|
4
4
|
import type { ChatCompleteness } from "./sqlite/completeness.js";
|
|
5
5
|
import type { SearchIndexFill, SearchIndexState } from "./sqlite/search-index.js";
|
|
6
|
+
import type { ChunkToEmbed } from "./sqlite/vectors.js";
|
|
6
7
|
import type { ScoredHit, SearchScope, WordOptions, WordQuery } from "./sqlite/words.js";
|
|
7
8
|
/** Which account of which messenger a call is about. */
|
|
8
9
|
export interface AccountKey {
|
|
@@ -160,6 +161,30 @@ export interface MessageStore {
|
|
|
160
161
|
nextBatch(key: AccountKey, chatId: Id, options: {
|
|
161
162
|
size: number;
|
|
162
163
|
}): Promise<LinkBatch | undefined>;
|
|
164
|
+
/** Chunks of the chat's current build with no vector of `model`, by hash after `after` (phase 5). */
|
|
165
|
+
chunksToEmbed(key: AccountKey, chatId: Id, model: string, options: {
|
|
166
|
+
after?: string;
|
|
167
|
+
limit: number;
|
|
168
|
+
}): Promise<ChunkToEmbed[]>;
|
|
169
|
+
saveVectors(model: string, dims: number, vectors: {
|
|
170
|
+
hash: string;
|
|
171
|
+
vector: Float32Array;
|
|
172
|
+
}[]): Promise<void>;
|
|
173
|
+
/** The current build's distinct chunks, and how many have a vector of `model`. */
|
|
174
|
+
vectorStatus(key: AccountKey, chatId: Id, model: string): Promise<{
|
|
175
|
+
chunks: number;
|
|
176
|
+
embedded: number;
|
|
177
|
+
}>;
|
|
178
|
+
/** Drops the chat's vectors, or one model's; a vector another chat's chunk shares stays. */
|
|
179
|
+
clearVectors(key: AccountKey, chatId: Id, model?: string): Promise<number>;
|
|
180
|
+
/** The conversations nearest in meaning to `query`, in one chat or every one of the account, best first. */
|
|
181
|
+
nearestConversations(key: AccountKey, options: {
|
|
182
|
+
chatId?: Id;
|
|
183
|
+
model: string;
|
|
184
|
+
since?: string;
|
|
185
|
+
limit: number;
|
|
186
|
+
query: Float32Array;
|
|
187
|
+
}): Promise<ConversationHit[]>;
|
|
163
188
|
/** Whether the chat's conversations were built, and when; `undefined` when never. */
|
|
164
189
|
conversationState(key: AccountKey, chatId: Id): Promise<{
|
|
165
190
|
enabledAt: string;
|
|
@@ -328,6 +353,21 @@ export interface ConversationBuild {
|
|
|
328
353
|
links: Link[];
|
|
329
354
|
/** Message ids, each conversation oldest first. */
|
|
330
355
|
conversations: Id[][];
|
|
356
|
+
/** Each conversation's chunks, in the same order as `conversations` (phase 5). */
|
|
357
|
+
chunks?: {
|
|
358
|
+
firstId: Id;
|
|
359
|
+
lastId: Id;
|
|
360
|
+
hash: string;
|
|
361
|
+
}[][];
|
|
362
|
+
}
|
|
363
|
+
/** A conversation found by meaning: the chunk that matched best, and how near it is (−1 to 1). */
|
|
364
|
+
export interface ConversationHit {
|
|
365
|
+
summary: ConversationSummary;
|
|
366
|
+
chunk: {
|
|
367
|
+
firstMessageId: Id;
|
|
368
|
+
lastMessageId: Id;
|
|
369
|
+
};
|
|
370
|
+
score: number;
|
|
331
371
|
}
|
|
332
372
|
export interface ConversationSummary {
|
|
333
373
|
id: string;
|