@toolpack-sdk/knowledge 1.2.0-SNAPSHOT.04032026-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 (46) hide show
  1. package/README.md +220 -0
  2. package/dist/embedders/ollama.d.ts +15 -0
  3. package/dist/embedders/ollama.d.ts.map +1 -0
  4. package/dist/embedders/ollama.js +51 -0
  5. package/dist/embedders/ollama.js.map +1 -0
  6. package/dist/embedders/openai.d.ts +18 -0
  7. package/dist/embedders/openai.d.ts.map +1 -0
  8. package/dist/embedders/openai.js +63 -0
  9. package/dist/embedders/openai.js.map +1 -0
  10. package/dist/errors.d.ts +25 -0
  11. package/dist/errors.d.ts.map +1 -0
  12. package/dist/errors.js +58 -0
  13. package/dist/errors.js.map +1 -0
  14. package/dist/index.d.ts +14 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +31 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/interfaces.d.ts +48 -0
  19. package/dist/interfaces.d.ts.map +1 -0
  20. package/dist/interfaces.js +3 -0
  21. package/dist/interfaces.js.map +1 -0
  22. package/dist/knowledge.d.ts +74 -0
  23. package/dist/knowledge.d.ts.map +1 -0
  24. package/dist/knowledge.js +120 -0
  25. package/dist/knowledge.js.map +1 -0
  26. package/dist/providers/memory.d.ts +16 -0
  27. package/dist/providers/memory.d.ts.map +1 -0
  28. package/dist/providers/memory.js +72 -0
  29. package/dist/providers/memory.js.map +1 -0
  30. package/dist/providers/persistent.d.ts +23 -0
  31. package/dist/providers/persistent.d.ts.map +1 -0
  32. package/dist/providers/persistent.js +162 -0
  33. package/dist/providers/persistent.js.map +1 -0
  34. package/dist/sources/markdown.d.ts +20 -0
  35. package/dist/sources/markdown.d.ts.map +1 -0
  36. package/dist/sources/markdown.js +196 -0
  37. package/dist/sources/markdown.js.map +1 -0
  38. package/dist/utils/chunking.d.ts +6 -0
  39. package/dist/utils/chunking.d.ts.map +1 -0
  40. package/dist/utils/chunking.js +86 -0
  41. package/dist/utils/chunking.js.map +1 -0
  42. package/dist/utils/cosine.d.ts +4 -0
  43. package/dist/utils/cosine.d.ts.map +1 -0
  44. package/dist/utils/cosine.js +52 -0
  45. package/dist/utils/cosine.js.map +1 -0
  46. package/package.json +39 -0
@@ -0,0 +1,74 @@
1
+ import { KnowledgeProvider, KnowledgeSource, Embedder, QueryOptions, QueryResult, Chunk } from './interfaces.js';
2
+ export interface KnowledgeOptions {
3
+ provider: KnowledgeProvider;
4
+ sources: KnowledgeSource[];
5
+ embedder: Embedder;
6
+ description: string;
7
+ reSync?: boolean;
8
+ onError?: ErrorHandler;
9
+ onSync?: SyncEventHandler;
10
+ onEmbeddingProgress?: EmbeddingProgressHandler;
11
+ }
12
+ export type ErrorHandler = (error: Error, context: {
13
+ file?: string;
14
+ chunk?: Chunk;
15
+ }) => 'skip' | 'abort';
16
+ export interface SyncEvent {
17
+ type: 'start' | 'file' | 'chunk' | 'complete' | 'error';
18
+ file?: string;
19
+ chunksAffected?: number;
20
+ error?: Error;
21
+ }
22
+ export type SyncEventHandler = (event: SyncEvent) => void;
23
+ export interface EmbeddingProgressEvent {
24
+ source: string;
25
+ current: number;
26
+ total: number;
27
+ percent: number;
28
+ }
29
+ export type EmbeddingProgressHandler = (event: EmbeddingProgressEvent) => void;
30
+ export declare class Knowledge {
31
+ private provider;
32
+ private embedder;
33
+ private description;
34
+ private sources;
35
+ private options;
36
+ private constructor();
37
+ static create(options: KnowledgeOptions): Promise<Knowledge>;
38
+ query(text: string, options?: QueryOptions): Promise<QueryResult[]>;
39
+ sync(): Promise<void>;
40
+ private embedChunks;
41
+ stop(): Promise<void>;
42
+ toTool(): KnowledgeTool;
43
+ }
44
+ export interface KnowledgeTool {
45
+ name: string;
46
+ displayName: string;
47
+ description: string;
48
+ category: string;
49
+ cacheable?: boolean;
50
+ parameters: {
51
+ type: string;
52
+ properties: Record<string, unknown>;
53
+ required: string[];
54
+ };
55
+ execute: (params: KnowledgeToolParams) => Promise<KnowledgeToolResult[]>;
56
+ }
57
+ export interface KnowledgeToolParams {
58
+ query: string;
59
+ limit?: number;
60
+ threshold?: number;
61
+ filter?: Record<string, string | number | boolean | {
62
+ $in: unknown[];
63
+ } | {
64
+ $gt: number;
65
+ } | {
66
+ $lt: number;
67
+ }>;
68
+ }
69
+ export interface KnowledgeToolResult {
70
+ content: string;
71
+ score: number;
72
+ metadata: Record<string, unknown>;
73
+ }
74
+ //# sourceMappingURL=knowledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../src/knowledge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Knowledge = void 0;
4
+ const persistent_js_1 = require("./providers/persistent.js");
5
+ class Knowledge {
6
+ provider;
7
+ embedder;
8
+ description;
9
+ sources;
10
+ options;
11
+ constructor(provider, embedder, description, sources, options) {
12
+ this.provider = provider;
13
+ this.embedder = embedder;
14
+ this.description = description;
15
+ this.sources = sources;
16
+ this.options = options;
17
+ }
18
+ static async create(options) {
19
+ await options.provider.validateDimensions(options.embedder.dimensions);
20
+ const kb = new Knowledge(options.provider, options.embedder, options.description, options.sources, options);
21
+ const userWantsSync = options.reSync !== false;
22
+ if (!userWantsSync && options.provider instanceof persistent_js_1.PersistentKnowledgeProvider) {
23
+ if (options.provider.shouldReSync()) {
24
+ await kb.sync();
25
+ }
26
+ return kb;
27
+ }
28
+ if (userWantsSync) {
29
+ await kb.sync();
30
+ }
31
+ return kb;
32
+ }
33
+ async query(text, options) {
34
+ const vector = await this.embedder.embed(text);
35
+ return this.provider.query(vector, options);
36
+ }
37
+ async sync() {
38
+ this.options.onSync?.({ type: 'start' });
39
+ try {
40
+ const dimensions = this.embedder.dimensions;
41
+ await this.provider.clear();
42
+ await this.provider.validateDimensions(dimensions);
43
+ const allChunks = [];
44
+ for (const source of this.sources) {
45
+ for await (const chunk of source.load()) {
46
+ allChunks.push(chunk);
47
+ }
48
+ }
49
+ const embeddedChunks = await this.embedChunks(allChunks);
50
+ if (embeddedChunks.length > 0) {
51
+ await this.provider.add(embeddedChunks);
52
+ }
53
+ this.options.onSync?.({ type: 'complete', chunksAffected: embeddedChunks.length });
54
+ }
55
+ catch (error) {
56
+ this.options.onSync?.({ type: 'error', error: error });
57
+ throw error;
58
+ }
59
+ }
60
+ async embedChunks(chunks) {
61
+ const embeddedChunks = [];
62
+ for (let i = 0; i < chunks.length; i++) {
63
+ try {
64
+ const vector = await this.embedder.embed(chunks[i].content);
65
+ embeddedChunks.push({ ...chunks[i], vector });
66
+ this.options.onEmbeddingProgress?.({
67
+ source: 'sync',
68
+ current: i + 1,
69
+ total: chunks.length,
70
+ percent: Math.round(((i + 1) / chunks.length) * 100),
71
+ });
72
+ }
73
+ catch (error) {
74
+ const action = this.options.onError?.(error, { chunk: chunks[i] });
75
+ if (action === 'abort') {
76
+ throw error;
77
+ }
78
+ }
79
+ }
80
+ return embeddedChunks;
81
+ }
82
+ async stop() {
83
+ if (this.provider instanceof persistent_js_1.PersistentKnowledgeProvider) {
84
+ this.provider.close();
85
+ }
86
+ }
87
+ toTool() {
88
+ return {
89
+ name: 'knowledge_search',
90
+ displayName: 'Knowledge Search',
91
+ description: this.description || 'Search the knowledge base for relevant information',
92
+ category: 'search',
93
+ cacheable: false,
94
+ parameters: {
95
+ type: 'object',
96
+ properties: {
97
+ query: { type: 'string', description: 'Search query to find relevant information' },
98
+ limit: { type: 'number', description: 'Maximum number of results to return (default: 10)' },
99
+ threshold: { type: 'number', description: 'Minimum similarity threshold 0-1 (default: 0.7)' },
100
+ filter: { type: 'object', description: 'Optional metadata filters' },
101
+ },
102
+ required: ['query'],
103
+ },
104
+ execute: async (params) => {
105
+ const results = await this.query(params.query, {
106
+ limit: params.limit,
107
+ threshold: params.threshold,
108
+ filter: params.filter,
109
+ });
110
+ return results.map(r => ({
111
+ content: r.chunk.content,
112
+ score: r.score,
113
+ metadata: r.chunk.metadata,
114
+ }));
115
+ },
116
+ };
117
+ }
118
+ }
119
+ exports.Knowledge = Knowledge;
120
+ //# sourceMappingURL=knowledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../src/knowledge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { KnowledgeProvider, Chunk, QueryOptions, QueryResult } from '../interfaces.js';
2
+ export interface MemoryProviderOptions {
3
+ maxChunks?: number;
4
+ }
5
+ export declare class MemoryProvider implements KnowledgeProvider {
6
+ private options;
7
+ private chunks;
8
+ private dimensions?;
9
+ constructor(options?: MemoryProviderOptions);
10
+ validateDimensions(dimensions: number): Promise<void>;
11
+ add(chunks: Chunk[]): Promise<void>;
12
+ query(queryVector: number[], options?: QueryOptions): Promise<QueryResult[]>;
13
+ delete(ids: string[]): Promise<void>;
14
+ clear(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/providers/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIvF,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAe,YAAW,iBAAiB;IAI1C,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,MAAM,CAAyD;IACvE,OAAO,CAAC,UAAU,CAAC,CAAS;gBAER,OAAO,GAAE,qBAA0B;IAEjD,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAqChF,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryProvider = void 0;
4
+ const errors_js_1 = require("../errors.js");
5
+ const cosine_js_1 = require("../utils/cosine.js");
6
+ class MemoryProvider {
7
+ options;
8
+ chunks = new Map();
9
+ dimensions;
10
+ constructor(options = {}) {
11
+ this.options = options;
12
+ }
13
+ async validateDimensions(dimensions) {
14
+ if (this.dimensions && this.dimensions !== dimensions) {
15
+ throw new errors_js_1.DimensionMismatchError(this.dimensions, dimensions);
16
+ }
17
+ this.dimensions = dimensions;
18
+ }
19
+ async add(chunks) {
20
+ for (const chunk of chunks) {
21
+ if (!chunk.vector) {
22
+ throw new errors_js_1.KnowledgeProviderError('Chunk missing vector');
23
+ }
24
+ if (this.options.maxChunks && this.chunks.size >= this.options.maxChunks) {
25
+ throw new errors_js_1.KnowledgeProviderError(`Max chunks limit reached: ${this.options.maxChunks}`);
26
+ }
27
+ this.chunks.set(chunk.id, {
28
+ chunk: {
29
+ id: chunk.id,
30
+ content: chunk.content,
31
+ metadata: chunk.metadata,
32
+ },
33
+ vector: chunk.vector
34
+ });
35
+ }
36
+ }
37
+ async query(queryVector, options = {}) {
38
+ const { limit = 10, threshold = 0.7, filter, includeMetadata = true, includeVectors = false, } = options;
39
+ const results = [];
40
+ for (const { chunk, vector } of this.chunks.values()) {
41
+ if (filter && !(0, cosine_js_1.matchesFilter)(chunk.metadata, filter)) {
42
+ continue;
43
+ }
44
+ const score = (0, cosine_js_1.cosineSimilarity)(queryVector, vector);
45
+ if (score >= threshold) {
46
+ results.push({
47
+ chunk: {
48
+ id: chunk.id,
49
+ content: chunk.content,
50
+ metadata: includeMetadata ? chunk.metadata : {},
51
+ vector: includeVectors ? vector : undefined,
52
+ },
53
+ score,
54
+ distance: 1 - score,
55
+ });
56
+ }
57
+ }
58
+ results.sort((a, b) => b.score - a.score);
59
+ return results.slice(0, limit);
60
+ }
61
+ async delete(ids) {
62
+ for (const id of ids) {
63
+ this.chunks.delete(id);
64
+ }
65
+ }
66
+ async clear() {
67
+ this.chunks.clear();
68
+ this.dimensions = undefined;
69
+ }
70
+ }
71
+ exports.MemoryProvider = MemoryProvider;
72
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/providers/memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { KnowledgeProvider, Chunk, QueryOptions, QueryResult } from '../interfaces.js';
2
+ export interface PersistentKnowledgeProviderOptions {
3
+ namespace: string;
4
+ storagePath?: string;
5
+ reSync?: boolean;
6
+ }
7
+ export declare class PersistentKnowledgeProvider implements KnowledgeProvider {
8
+ private options;
9
+ private db;
10
+ private dimensions?;
11
+ private dbPath;
12
+ constructor(options: PersistentKnowledgeProviderOptions);
13
+ private initSchema;
14
+ private loadDimensions;
15
+ validateDimensions(dimensions: number): Promise<void>;
16
+ add(chunks: Chunk[]): Promise<void>;
17
+ query(queryVector: number[], options?: QueryOptions): Promise<QueryResult[]>;
18
+ delete(ids: string[]): Promise<void>;
19
+ clear(): Promise<void>;
20
+ shouldReSync(): boolean;
21
+ close(): void;
22
+ }
23
+ //# sourceMappingURL=persistent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistent.d.ts","sourceRoot":"","sources":["../../src/providers/persistent.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIvF,MAAM,WAAW,kCAAkC;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,2BAA4B,YAAW,iBAAiB;IAKvD,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;gBAEH,OAAO,EAAE,kCAAkC;IAa/D,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,cAAc;IAOhB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BnC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAgDhF,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,YAAY,IAAI,OAAO;IAQvB,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.PersistentKnowledgeProvider = void 0;
40
+ const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const os = __importStar(require("os"));
44
+ const errors_js_1 = require("../errors.js");
45
+ const cosine_js_1 = require("../utils/cosine.js");
46
+ class PersistentKnowledgeProvider {
47
+ options;
48
+ db;
49
+ dimensions;
50
+ dbPath;
51
+ constructor(options) {
52
+ this.options = options;
53
+ const basePath = options.storagePath || path.join(os.homedir(), '.toolpack', 'knowledge');
54
+ this.dbPath = path.join(basePath, `${options.namespace}.db`);
55
+ fs.mkdirSync(basePath, { recursive: true });
56
+ this.db = new better_sqlite3_1.default(this.dbPath);
57
+ this.db.pragma('journal_mode = WAL');
58
+ this.initSchema();
59
+ this.loadDimensions();
60
+ }
61
+ initSchema() {
62
+ this.db.exec(`
63
+ CREATE TABLE IF NOT EXISTS chunks (
64
+ id TEXT PRIMARY KEY,
65
+ content TEXT NOT NULL,
66
+ metadata TEXT NOT NULL,
67
+ vector BLOB NOT NULL,
68
+ synced_at INTEGER NOT NULL
69
+ );
70
+
71
+ CREATE TABLE IF NOT EXISTS provider_meta (
72
+ key TEXT PRIMARY KEY,
73
+ value TEXT NOT NULL
74
+ );
75
+ `);
76
+ }
77
+ loadDimensions() {
78
+ const row = this.db.prepare('SELECT value FROM provider_meta WHERE key = ?').get('dimensions');
79
+ if (row) {
80
+ this.dimensions = parseInt(row.value, 10);
81
+ }
82
+ }
83
+ async validateDimensions(dimensions) {
84
+ if (this.dimensions && this.dimensions !== dimensions) {
85
+ throw new errors_js_1.DimensionMismatchError(this.dimensions, dimensions);
86
+ }
87
+ if (!this.dimensions) {
88
+ this.db.prepare('INSERT OR REPLACE INTO provider_meta (key, value) VALUES (?, ?)').run('dimensions', dimensions.toString());
89
+ this.dimensions = dimensions;
90
+ }
91
+ }
92
+ async add(chunks) {
93
+ const insert = this.db.prepare(`
94
+ INSERT OR REPLACE INTO chunks (id, content, metadata, vector, synced_at)
95
+ VALUES (?, ?, ?, ?, ?)
96
+ `);
97
+ const transaction = this.db.transaction((chunks) => {
98
+ for (const chunk of chunks) {
99
+ if (!chunk.vector) {
100
+ throw new errors_js_1.KnowledgeProviderError('Chunk missing vector');
101
+ }
102
+ const vectorBlob = Buffer.from(new Float32Array(chunk.vector).buffer);
103
+ insert.run(chunk.id, chunk.content, JSON.stringify(chunk.metadata), vectorBlob, Date.now());
104
+ }
105
+ });
106
+ transaction(chunks);
107
+ }
108
+ async query(queryVector, options = {}) {
109
+ const { limit = 10, threshold = 0.7, filter, includeMetadata = true, includeVectors = false, } = options;
110
+ const rows = this.db.prepare('SELECT id, content, metadata, vector FROM chunks').all();
111
+ const results = [];
112
+ for (const row of rows) {
113
+ const metadata = JSON.parse(row.metadata);
114
+ if (filter && !(0, cosine_js_1.matchesFilter)(metadata, filter)) {
115
+ continue;
116
+ }
117
+ const vector = new Float32Array(row.vector.buffer, row.vector.byteOffset, row.vector.byteLength / 4);
118
+ const vectorArray = Array.from(vector);
119
+ const score = (0, cosine_js_1.cosineSimilarity)(queryVector, vectorArray);
120
+ if (score >= threshold) {
121
+ results.push({
122
+ chunk: {
123
+ id: row.id,
124
+ content: row.content,
125
+ metadata: includeMetadata ? metadata : {},
126
+ vector: includeVectors ? vectorArray : undefined,
127
+ },
128
+ score,
129
+ distance: 1 - score,
130
+ });
131
+ }
132
+ }
133
+ results.sort((a, b) => b.score - a.score);
134
+ return results.slice(0, limit);
135
+ }
136
+ async delete(ids) {
137
+ const del = this.db.prepare('DELETE FROM chunks WHERE id = ?');
138
+ const transaction = this.db.transaction((ids) => {
139
+ for (const id of ids) {
140
+ del.run(id);
141
+ }
142
+ });
143
+ transaction(ids);
144
+ }
145
+ async clear() {
146
+ this.db.prepare('DELETE FROM chunks').run();
147
+ this.db.prepare('DELETE FROM provider_meta').run();
148
+ this.dimensions = undefined;
149
+ }
150
+ shouldReSync() {
151
+ if (this.options.reSync === false) {
152
+ const count = this.db.prepare('SELECT COUNT(*) as count FROM chunks').get();
153
+ return count.count === 0;
154
+ }
155
+ return true;
156
+ }
157
+ close() {
158
+ this.db.close();
159
+ }
160
+ }
161
+ exports.PersistentKnowledgeProvider = PersistentKnowledgeProvider;
162
+ //# sourceMappingURL=persistent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistent.js","sourceRoot":"","sources":["../../src/providers/persistent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsC;AACtC,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,4CAA8E;AAC9E,kDAAqE;AAQrE,MAAa,2BAA2B;IAKlB;IAJZ,EAAE,CAAoB;IACtB,UAAU,CAAU;IACpB,MAAM,CAAS;IAEvB,YAAoB,OAA2C;QAA3C,YAAO,GAAP,OAAO,CAAoC;QAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,KAAK,CAAC,CAAC;QAE7D,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5C,IAAI,CAAC,EAAE,GAAG,IAAI,wBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAErC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;KAaZ,CAAC,CAAC;IACL,CAAC;IAEO,cAAc;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,YAAY,CAAkC,CAAC;QAChI,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QACzC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACtD,MAAM,IAAI,kCAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5H,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAe;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG9B,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,MAAe,EAAE,EAAE;YAC1D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClB,MAAM,IAAI,kCAAsB,CAAC,sBAAsB,CAAC,CAAC;gBAC3D,CAAC;gBAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;gBACtE,MAAM,CAAC,GAAG,CACR,KAAK,CAAC,EAAE,EACR,KAAK,CAAC,OAAO,EACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC9B,UAAU,EACV,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,WAAqB,EAAE,UAAwB,EAAE;QAC3D,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,SAAS,GAAG,GAAG,EACf,MAAM,EACN,eAAe,GAAG,IAAI,EACtB,cAAc,GAAG,KAAK,GACvB,GAAG,OAAO,CAAC;QAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,EAKlF,CAAC;QAEH,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE1C,IAAI,MAAM,IAAI,CAAC,IAAA,yBAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC/C,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YACrG,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,IAAA,4BAAgB,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAEzD,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE;wBACL,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;wBACzC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;qBACjD;oBACD,KAAK;oBACL,QAAQ,EAAE,CAAC,GAAG,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAE1C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAa;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,GAAa,EAAE,EAAE;YACxD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QACH,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,GAAG,EAAE,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,EAAuB,CAAC;YACjG,OAAO,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF;AA1JD,kEA0JC"}
@@ -0,0 +1,20 @@
1
+ import { KnowledgeSource, Chunk } from '../interfaces.js';
2
+ export interface MarkdownSourceOptions {
3
+ maxChunkSize?: number;
4
+ chunkOverlap?: number;
5
+ minChunkSize?: number;
6
+ namespace?: string;
7
+ metadata?: Record<string, unknown>;
8
+ }
9
+ export declare class MarkdownSource implements KnowledgeSource {
10
+ private pattern;
11
+ private options;
12
+ constructor(pattern: string, options?: MarkdownSourceOptions);
13
+ load(): AsyncIterable<Chunk>;
14
+ private chunkMarkdown;
15
+ private parseHeadings;
16
+ private extractFrontmatter;
17
+ private removeFrontmatter;
18
+ private generateChunkId;
19
+ }
20
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/sources/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAI1D,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAQD,qBAAa,cAAe,YAAW,eAAe;IAIlD,OAAO,CAAC,OAAO;IAHjB,OAAO,CAAC,OAAO,CAAkC;gBAGvC,OAAO,EAAE,MAAM,EACvB,OAAO,GAAE,qBAA0B;IAW9B,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC;IAiBnC,OAAO,CAAC,aAAa;IA0DrB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;CAKxB"}