@duckcodeailabs/dql-agent 1.4.4 → 1.5.1

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.
@@ -33,6 +33,7 @@ export class KGStore {
33
33
  llm_context TEXT,
34
34
  tags_json TEXT NOT NULL DEFAULT '[]',
35
35
  examples_json TEXT NOT NULL DEFAULT '[]',
36
+ metadata_json TEXT NOT NULL DEFAULT '{}',
36
37
  source_path TEXT,
37
38
  git_sha TEXT NOT NULL DEFAULT '',
38
39
  updated_at TEXT NOT NULL
@@ -80,6 +81,13 @@ export class KGStore {
80
81
  value TEXT NOT NULL
81
82
  );
82
83
  `);
84
+ this.ensureColumn('kg_nodes', 'metadata_json', `TEXT NOT NULL DEFAULT '{}'`);
85
+ }
86
+ ensureColumn(table, column, definition) {
87
+ const rows = this.db.prepare(`PRAGMA table_info(${table})`).all();
88
+ if (!rows.some((row) => row.name === column)) {
89
+ this.db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`);
90
+ }
83
91
  }
84
92
  /**
85
93
  * Wholesale rebuild — clears every node/edge then inserts the supplied
@@ -90,8 +98,8 @@ export class KGStore {
90
98
  const insertNode = this.db.prepare(`
91
99
  INSERT INTO kg_nodes (
92
100
  node_id, kind, name, domain, status, owner, description, llm_context,
93
- tags_json, examples_json, source_path, git_sha, updated_at
94
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
101
+ tags_json, examples_json, metadata_json, source_path, git_sha, updated_at
102
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
95
103
  `);
96
104
  const insertFts = this.db.prepare(`
97
105
  INSERT INTO kg_nodes_fts (node_id, name, description, llm_context, tags, kind, domain)
@@ -106,7 +114,7 @@ export class KGStore {
106
114
  this.db.prepare('DELETE FROM kg_nodes_fts').run();
107
115
  this.db.prepare('DELETE FROM kg_nodes').run();
108
116
  for (const n of nodes) {
109
- insertNode.run(n.nodeId, n.kind, n.name, n.domain ?? null, n.status ?? null, n.owner ?? null, n.description ?? null, n.llmContext ?? null, JSON.stringify(n.tags ?? []), JSON.stringify(n.examples ?? []), n.sourcePath ?? null, n.gitSha ?? '', now);
117
+ insertNode.run(n.nodeId, n.kind, n.name, n.domain ?? null, n.status ?? null, n.owner ?? null, n.description ?? null, n.llmContext ?? null, JSON.stringify(n.tags ?? []), JSON.stringify(n.examples ?? []), JSON.stringify(nodeMetadata(n)), n.sourcePath ?? null, n.gitSha ?? '', now);
110
118
  insertFts.run(n.nodeId, n.name, n.description ?? '', n.llmContext ?? '', (n.tags ?? []).join(' '), n.kind, n.domain ?? '');
111
119
  }
112
120
  for (const e of edges) {
@@ -204,6 +212,7 @@ export class KGStore {
204
212
  }
205
213
  }
206
214
  function rowToNode(row) {
215
+ const metadata = safeJSON(row.metadata_json, {});
207
216
  return {
208
217
  nodeId: row.node_id,
209
218
  kind: row.kind,
@@ -217,8 +226,39 @@ function rowToNode(row) {
217
226
  examples: safeJSON(row.examples_json, []),
218
227
  sourcePath: row.source_path ?? undefined,
219
228
  gitSha: row.git_sha ?? undefined,
229
+ sourceTier: metadata.sourceTier,
230
+ certification: metadata.certification,
231
+ provenance: metadata.provenance,
232
+ freshness: metadata.freshness,
233
+ businessOutcome: metadata.businessOutcome,
234
+ businessOwner: metadata.businessOwner,
235
+ decisionUse: metadata.decisionUse,
236
+ reviewCadence: metadata.reviewCadence,
237
+ businessRules: metadata.businessRules,
238
+ caveats: metadata.caveats,
220
239
  };
221
240
  }
241
+ function nodeMetadata(node) {
242
+ const metadata = {};
243
+ for (const key of [
244
+ 'sourceTier',
245
+ 'certification',
246
+ 'provenance',
247
+ 'freshness',
248
+ 'businessOutcome',
249
+ 'businessOwner',
250
+ 'decisionUse',
251
+ 'reviewCadence',
252
+ 'businessRules',
253
+ 'caveats',
254
+ ]) {
255
+ const value = node[key];
256
+ if (value !== undefined) {
257
+ metadata[key] = value;
258
+ }
259
+ }
260
+ return metadata;
261
+ }
222
262
  function safeJSON(raw, fallback) {
223
263
  if (!raw)
224
264
  return fallback;
@@ -229,29 +269,42 @@ function safeJSON(raw, fallback) {
229
269
  return fallback;
230
270
  }
231
271
  }
272
+ const STOP_WORDS = new Set([
273
+ 'a', 'about', 'above', 'after', 'again', 'against', 'all', 'am', 'an', 'and', 'any', 'are', 'as', 'at',
274
+ 'be', 'because', 'been', 'before', 'being', 'below', 'between', 'both', 'but', 'by',
275
+ 'can', 'could', 'current', 'did', 'do', 'does', 'doing', 'down', 'during',
276
+ 'each', 'explain', 'few', 'find', 'for', 'from', 'further',
277
+ 'get', 'give',
278
+ 'had', 'has', 'have', 'having', 'he', 'her', 'here', 'hers', 'herself', 'him', 'himself', 'his', 'how',
279
+ 'i', 'if', 'in', 'into', 'is', 'it', 'its', 'itself',
280
+ 'just',
281
+ 'me', 'more', 'most', 'my', 'myself',
282
+ 'no', 'nor', 'not', 'now',
283
+ 'of', 'off', 'on', 'once', 'only', 'or', 'other', 'our', 'ours', 'ourselves', 'out', 'over', 'own',
284
+ 'please',
285
+ 'query',
286
+ 'same', 'she', 'should', 'show', 'so', 'some', 'sql', 'such',
287
+ 'than', 'that', 'the', 'their', 'theirs', 'them', 'themselves', 'then', 'there', 'these', 'they', 'this', 'those', 'through', 'to', 'too',
288
+ 'under', 'until', 'up', 'using',
289
+ 'very',
290
+ 'was', 'we', 'were', 'what', 'when', 'where', 'which', 'while', 'who', 'whom', 'why', 'will', 'with', 'would',
291
+ 'you', 'your', 'yours', 'yourself', 'yourselves',
292
+ ]);
232
293
  /**
233
- * Defang FTS5 query syntax we don't trust from arbitrary user input.
234
- * Allows AND/OR/NOT/quotes/parens and column-prefix syntax (`name:foo`).
235
- * Strips anything else to whitespace, then collapses.
294
+ * Defang FTS5 query syntax from arbitrary user/chat input.
295
+ *
296
+ * FTS5 treats `foo:bar` as a column-scoped query. That is useful for hand
297
+ * written searches, but it is unsafe for notebook chat because upstream
298
+ * context often includes labels like `Current upstream SQL:`. Tokenize to
299
+ * quoted terms so SQL snippets, punctuation, and boolean words are plain text.
236
300
  */
237
301
  function sanitizeFtsQuery(raw) {
238
- // Drop characters FTS5 might interpret as operators we don't want exposed,
239
- // except for quotes (allows phrase search) and a couple of column scopers.
240
- const cleaned = raw
241
- .replace(/[*]/g, ' ') // strip wildcard injection
242
- .replace(/\s+/g, ' ')
243
- .trim();
244
- if (!cleaned)
245
- return '';
246
- // If no quotes and no boolean keyword, fall back to a tokenized OR query
247
- // for better recall — FTS5 default is implicit AND.
248
- if (!/["()]|\b(AND|OR|NOT|NEAR)\b/.test(cleaned)) {
249
- return cleaned
250
- .split(/\s+/)
251
- .map((t) => t.replace(/[^\w]/g, ''))
252
- .filter(Boolean)
253
- .join(' OR ');
254
- }
255
- return cleaned;
302
+ return raw
303
+ .split(/\s+/)
304
+ .map((t) => t.replace(/[^\p{L}\p{N}_]/gu, ''))
305
+ .filter((t) => t.length > 1 && !STOP_WORDS.has(t.toLowerCase()))
306
+ .slice(0, 48)
307
+ .map((t) => `"${t}"`)
308
+ .join(' OR ');
256
309
  }
257
310
  //# sourceMappingURL=sqlite-fts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-fts.js","sourceRoot":"","sources":["../../src/kg/sqlite-fts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-fts.js","sourceRoot":"","sources":["../../src/kg/sqlite-fts.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,9 @@
6
6
  * Skills folder. It is stored in SQLite at `.dql/cache/agent-kg.sqlite` with
7
7
  * an FTS5 index for keyword search and structured filters for domain/kind.
8
8
  */
9
- export type KGNodeKind = 'block' | 'metric' | 'dimension' | 'domain' | 'dbt_model' | 'dbt_source' | 'dashboard' | 'app' | 'skill';
9
+ export type KGNodeKind = 'block' | 'metric' | 'dimension' | 'measure' | 'entity' | 'semantic_model' | 'saved_query' | 'domain' | 'dbt_model' | 'dbt_source' | 'notebook' | 'dashboard' | 'app' | 'skill';
10
+ export type KGSourceTier = 'certified_artifact' | 'semantic_layer' | 'dbt_manifest' | 'business_context' | 'memory' | 'project';
11
+ export type KGCertification = 'certified' | 'ai_generated' | 'analyst_review_required' | 'uncertified';
10
12
  export interface KGNode {
11
13
  /** Stable identifier — `${kind}:${name}` (lower-cased). */
12
14
  nodeId: string;
@@ -28,6 +30,26 @@ export interface KGNode {
28
30
  sourcePath?: string;
29
31
  /** Pinned git SHA at index time. */
30
32
  gitSha?: string;
33
+ /** Governing source tier used by the agent's precedence policy. */
34
+ sourceTier?: KGSourceTier;
35
+ /** Certification/review state. Kept advisory; block.status remains authoritative for blocks. */
36
+ certification?: KGCertification;
37
+ /** Human-readable provenance label, e.g. "dbt semantic_manifest.json". */
38
+ provenance?: string;
39
+ /** ISO timestamp or source freshness marker when available. */
40
+ freshness?: string;
41
+ /** Business outcome the artifact or semantic object is meant to support. */
42
+ businessOutcome?: string;
43
+ /** Business owner for the outcome, when distinct from the technical owner. */
44
+ businessOwner?: string;
45
+ /** Decision or workflow this asset is intended to inform. */
46
+ decisionUse?: string;
47
+ /** Expected review cadence for certification/freshness. */
48
+ reviewCadence?: string;
49
+ /** Business rules attached to this asset. */
50
+ businessRules?: string[];
51
+ /** Known caveats or interpretation constraints. */
52
+ caveats?: string[];
31
53
  }
32
54
  export interface KGEdge {
33
55
  src: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/kg/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,WAAW,GACX,KAAK,GACL,OAAO,CAAC;AAEZ,MAAM,WAAW,MAAM;IACrB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,2FAA2F;IAC3F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;IAC3G,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,kGAAkG;IAClG,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,WAAW,GAAG,aAAa,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/kg/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Local, scoped agent memory for DQL analytics.
3
+ *
4
+ * Memory is advisory context only. The governed answer loop always ranks
5
+ * certified artifacts, semantic metadata, and dbt manifest facts above memory.
6
+ */
7
+ export type AgentMemoryScope = 'thread' | 'notebook' | 'project' | 'user' | 'artifact';
8
+ export interface AgentMemory {
9
+ id: string;
10
+ scope: AgentMemoryScope;
11
+ scopeId?: string;
12
+ title: string;
13
+ content: string;
14
+ tags: string[];
15
+ source: string;
16
+ confidence: number;
17
+ importance: number;
18
+ validFrom?: string;
19
+ validTo?: string;
20
+ supersedes?: string;
21
+ lastUsed?: string;
22
+ createdAt: string;
23
+ updatedAt: string;
24
+ enabled: boolean;
25
+ }
26
+ export interface AgentMemoryInput {
27
+ id?: string;
28
+ scope: AgentMemoryScope;
29
+ scopeId?: string;
30
+ title: string;
31
+ content: string;
32
+ tags?: string[];
33
+ source?: string;
34
+ confidence?: number;
35
+ importance?: number;
36
+ validFrom?: string;
37
+ validTo?: string;
38
+ supersedes?: string;
39
+ enabled?: boolean;
40
+ }
41
+ export interface MemorySearchOptions {
42
+ query: string;
43
+ scopes?: AgentMemoryScope[];
44
+ scopeId?: string;
45
+ limit?: number;
46
+ now?: Date;
47
+ }
48
+ export declare function defaultMemoryPath(projectRoot: string): string;
49
+ export declare function ensureDefaultMemoryFiles(projectRoot: string): string[];
50
+ export declare class MemoryStore {
51
+ private db;
52
+ constructor(dbPath: string);
53
+ private initSchema;
54
+ upsert(input: AgentMemoryInput): AgentMemory;
55
+ get(id: string): AgentMemory | null;
56
+ list(scope?: AgentMemoryScope): AgentMemory[];
57
+ search(options: MemorySearchOptions): AgentMemory[];
58
+ setEnabled(id: string, enabled: boolean): void;
59
+ delete(id: string): void;
60
+ close(): void;
61
+ }
62
+ //# sourceMappingURL=sqlite-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-memory.d.ts","sourceRoot":"","sources":["../../src/memory/sqlite-memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAEvF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBtE;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAoB;gBAElB,MAAM,EAAE,MAAM;IAO1B,OAAO,CAAC,UAAU;IAmClB,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW;IA0D5C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAKnC,IAAI,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,WAAW,EAAE;IAO7C,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,WAAW,EAAE;IA4CnD,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAK9C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQxB,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Local, scoped agent memory for DQL analytics.
3
+ *
4
+ * Memory is advisory context only. The governed answer loop always ranks
5
+ * certified artifacts, semantic metadata, and dbt manifest facts above memory.
6
+ */
7
+ import Database from 'better-sqlite3';
8
+ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
9
+ import { dirname, join } from 'node:path';
10
+ export function defaultMemoryPath(projectRoot) {
11
+ return join(projectRoot, '.dql', 'cache', 'agent-memory.sqlite');
12
+ }
13
+ export function ensureDefaultMemoryFiles(projectRoot) {
14
+ const dir = join(projectRoot, '.dql', 'memory');
15
+ mkdirSync(dir, { recursive: true });
16
+ const files = [
17
+ ['business-context.md', '# Business Context\n\n'],
18
+ ['glossary.md', '# Glossary\n\n'],
19
+ ['decisions.md', '# Analyst Decisions\n\n'],
20
+ ['rules.md', '# Agent Rules\n\n'],
21
+ ];
22
+ const paths = [];
23
+ for (const [name, body] of files) {
24
+ const path = join(dir, name);
25
+ if (!existsSync(path))
26
+ writeFileSync(path, body, 'utf-8');
27
+ paths.push(path);
28
+ }
29
+ return paths;
30
+ }
31
+ export class MemoryStore {
32
+ db;
33
+ constructor(dbPath) {
34
+ mkdirSync(dirname(dbPath), { recursive: true });
35
+ this.db = new Database(dbPath);
36
+ this.db.pragma('journal_mode = WAL');
37
+ this.initSchema();
38
+ }
39
+ initSchema() {
40
+ this.db.exec(`
41
+ CREATE TABLE IF NOT EXISTS agent_memory (
42
+ id TEXT PRIMARY KEY,
43
+ scope TEXT NOT NULL,
44
+ scope_id TEXT,
45
+ title TEXT NOT NULL,
46
+ content TEXT NOT NULL,
47
+ tags_json TEXT NOT NULL DEFAULT '[]',
48
+ source TEXT NOT NULL DEFAULT 'manual',
49
+ confidence REAL NOT NULL DEFAULT 0.7,
50
+ importance REAL NOT NULL DEFAULT 0.5,
51
+ valid_from TEXT,
52
+ valid_to TEXT,
53
+ supersedes TEXT,
54
+ last_used TEXT,
55
+ created_at TEXT NOT NULL,
56
+ updated_at TEXT NOT NULL,
57
+ enabled INTEGER NOT NULL DEFAULT 1
58
+ );
59
+
60
+ CREATE INDEX IF NOT EXISTS idx_agent_memory_scope ON agent_memory(scope, scope_id);
61
+ CREATE INDEX IF NOT EXISTS idx_agent_memory_enabled ON agent_memory(enabled);
62
+
63
+ CREATE VIRTUAL TABLE IF NOT EXISTS agent_memory_fts USING fts5(
64
+ id UNINDEXED,
65
+ title,
66
+ content,
67
+ tags,
68
+ scope,
69
+ tokenize = 'porter unicode61'
70
+ );
71
+ `);
72
+ }
73
+ upsert(input) {
74
+ const now = new Date().toISOString();
75
+ const id = input.id ?? `mem_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
76
+ const existing = this.get(id);
77
+ const row = {
78
+ id,
79
+ scope: input.scope,
80
+ scopeId: input.scopeId,
81
+ title: input.title.trim(),
82
+ content: input.content.trim(),
83
+ tags: input.tags ?? [],
84
+ source: input.source ?? 'manual',
85
+ confidence: clamp(input.confidence ?? existing?.confidence ?? 0.7),
86
+ importance: clamp(input.importance ?? existing?.importance ?? 0.5),
87
+ validFrom: input.validFrom,
88
+ validTo: input.validTo,
89
+ supersedes: input.supersedes,
90
+ lastUsed: existing?.lastUsed,
91
+ createdAt: existing?.createdAt ?? now,
92
+ updatedAt: now,
93
+ enabled: input.enabled ?? existing?.enabled ?? true,
94
+ };
95
+ const txn = this.db.transaction(() => {
96
+ this.db.prepare(`
97
+ INSERT OR REPLACE INTO agent_memory (
98
+ id, scope, scope_id, title, content, tags_json, source, confidence,
99
+ importance, valid_from, valid_to, supersedes, last_used, created_at,
100
+ updated_at, enabled
101
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
102
+ `).run(row.id, row.scope, row.scopeId ?? null, row.title, row.content, JSON.stringify(row.tags), row.source, row.confidence, row.importance, row.validFrom ?? null, row.validTo ?? null, row.supersedes ?? null, row.lastUsed ?? null, row.createdAt, row.updatedAt, row.enabled ? 1 : 0);
103
+ this.db.prepare('DELETE FROM agent_memory_fts WHERE id = ?').run(row.id);
104
+ this.db.prepare(`
105
+ INSERT INTO agent_memory_fts (id, title, content, tags, scope)
106
+ VALUES (?, ?, ?, ?, ?)
107
+ `).run(row.id, row.title, row.content, row.tags.join(' '), row.scope);
108
+ });
109
+ txn();
110
+ return row;
111
+ }
112
+ get(id) {
113
+ const row = this.db.prepare('SELECT * FROM agent_memory WHERE id = ?').get(id);
114
+ return row ? rowToMemory(row) : null;
115
+ }
116
+ list(scope) {
117
+ const rows = scope
118
+ ? this.db.prepare('SELECT * FROM agent_memory WHERE scope = ? ORDER BY importance DESC, updated_at DESC').all(scope)
119
+ : this.db.prepare('SELECT * FROM agent_memory ORDER BY importance DESC, updated_at DESC').all();
120
+ return rows.map(rowToMemory);
121
+ }
122
+ search(options) {
123
+ const query = sanitizeFtsQuery(options.query);
124
+ if (!query)
125
+ return [];
126
+ const filters = ['m.enabled = 1'];
127
+ const params = [query];
128
+ const now = (options.now ?? new Date()).toISOString();
129
+ filters.push('(m.valid_from IS NULL OR m.valid_from <= ?)');
130
+ params.push(now);
131
+ filters.push('(m.valid_to IS NULL OR m.valid_to >= ?)');
132
+ params.push(now);
133
+ if (options.scopes && options.scopes.length > 0) {
134
+ filters.push(`m.scope IN (${options.scopes.map(() => '?').join(', ')})`);
135
+ params.push(...options.scopes);
136
+ }
137
+ if (options.scopeId) {
138
+ filters.push('(m.scope_id IS NULL OR m.scope_id = ?)');
139
+ params.push(options.scopeId);
140
+ }
141
+ const rows = this.db.prepare(`
142
+ SELECT m.*, bm25(agent_memory_fts) AS rank
143
+ FROM agent_memory_fts AS f
144
+ JOIN agent_memory AS m ON m.id = f.id
145
+ WHERE agent_memory_fts MATCH ?
146
+ AND ${filters.join(' AND ')}
147
+ ORDER BY (m.importance + m.confidence) DESC, rank
148
+ LIMIT ?
149
+ `).all(...params, options.limit ?? 6);
150
+ const ids = rows.map((row) => row.id);
151
+ if (ids.length > 0) {
152
+ const mark = this.db.prepare('UPDATE agent_memory SET last_used = ? WHERE id = ?');
153
+ const nowUsed = new Date().toISOString();
154
+ const txn = this.db.transaction(() => {
155
+ for (const id of ids)
156
+ mark.run(nowUsed, id);
157
+ });
158
+ txn();
159
+ }
160
+ return rows.map(rowToMemory);
161
+ }
162
+ setEnabled(id, enabled) {
163
+ this.db.prepare('UPDATE agent_memory SET enabled = ?, updated_at = ? WHERE id = ?')
164
+ .run(enabled ? 1 : 0, new Date().toISOString(), id);
165
+ }
166
+ delete(id) {
167
+ const txn = this.db.transaction(() => {
168
+ this.db.prepare('DELETE FROM agent_memory_fts WHERE id = ?').run(id);
169
+ this.db.prepare('DELETE FROM agent_memory WHERE id = ?').run(id);
170
+ });
171
+ txn();
172
+ }
173
+ close() {
174
+ this.db.close();
175
+ }
176
+ }
177
+ function rowToMemory(row) {
178
+ return {
179
+ id: row.id,
180
+ scope: row.scope,
181
+ scopeId: row.scope_id ?? undefined,
182
+ title: row.title,
183
+ content: row.content,
184
+ tags: safeJSON(row.tags_json, []),
185
+ source: row.source,
186
+ confidence: row.confidence,
187
+ importance: row.importance,
188
+ validFrom: row.valid_from ?? undefined,
189
+ validTo: row.valid_to ?? undefined,
190
+ supersedes: row.supersedes ?? undefined,
191
+ lastUsed: row.last_used ?? undefined,
192
+ createdAt: row.created_at,
193
+ updatedAt: row.updated_at,
194
+ enabled: Boolean(row.enabled),
195
+ };
196
+ }
197
+ function safeJSON(raw, fallback) {
198
+ if (!raw)
199
+ return fallback;
200
+ try {
201
+ return JSON.parse(raw);
202
+ }
203
+ catch {
204
+ return fallback;
205
+ }
206
+ }
207
+ function clamp(value) {
208
+ if (!Number.isFinite(value))
209
+ return 0.5;
210
+ return Math.max(0, Math.min(1, value));
211
+ }
212
+ const STOP_WORDS = new Set([
213
+ 'a', 'about', 'above', 'after', 'again', 'against', 'all', 'am', 'an', 'and', 'any', 'are', 'as', 'at',
214
+ 'be', 'because', 'been', 'before', 'being', 'below', 'between', 'both', 'but', 'by',
215
+ 'can', 'could', 'current', 'did', 'do', 'does', 'doing', 'down', 'during',
216
+ 'each', 'explain', 'few', 'find', 'for', 'from', 'further',
217
+ 'get', 'give',
218
+ 'had', 'has', 'have', 'having', 'he', 'her', 'here', 'hers', 'herself', 'him', 'himself', 'his', 'how',
219
+ 'i', 'if', 'in', 'into', 'is', 'it', 'its', 'itself',
220
+ 'just',
221
+ 'me', 'more', 'most', 'my', 'myself',
222
+ 'no', 'nor', 'not', 'now',
223
+ 'of', 'off', 'on', 'once', 'only', 'or', 'other', 'our', 'ours', 'ourselves', 'out', 'over', 'own',
224
+ 'please',
225
+ 'query',
226
+ 'same', 'she', 'should', 'show', 'so', 'some', 'sql', 'such',
227
+ 'than', 'that', 'the', 'their', 'theirs', 'them', 'themselves', 'then', 'there', 'these', 'they', 'this', 'those', 'through', 'to', 'too',
228
+ 'under', 'until', 'up', 'using',
229
+ 'very',
230
+ 'was', 'we', 'were', 'what', 'when', 'where', 'which', 'while', 'who', 'whom', 'why', 'will', 'with', 'would',
231
+ 'you', 'your', 'yours', 'yourself', 'yourselves',
232
+ ]);
233
+ function sanitizeFtsQuery(raw) {
234
+ return raw
235
+ .split(/\s+/)
236
+ .map((t) => t.replace(/[^\p{L}\p{N}_]/gu, ''))
237
+ .filter((t) => t.length > 1 && !STOP_WORDS.has(t.toLowerCase()))
238
+ .slice(0, 48)
239
+ .map((t) => `"${t}"`)
240
+ .join(' OR ');
241
+ }
242
+ //# sourceMappingURL=sqlite-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-memory.js","sourceRoot":"","sources":["../../src/memory/sqlite-memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA+C1C,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,OAAO,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,WAAmB;IAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG;QACZ,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;QACjD,CAAC,aAAa,EAAE,gBAAgB,CAAC;QACjC,CAAC,cAAc,EAAE,yBAAyB,CAAC;QAC3C,CAAC,UAAU,EAAE,mBAAmB,CAAC;KACzB,CAAC;IACX,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,OAAO,WAAW;IACd,EAAE,CAAoB;IAE9B,YAAY,MAAc;QACxB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+BZ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAuB;QAC5B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAClG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAgB;YACvB,EAAE;YACF,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;YACzB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;YAC7B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,QAAQ;YAChC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,IAAI,QAAQ,EAAE,UAAU,IAAI,GAAG,CAAC;YAClE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,IAAI,QAAQ,EAAE,UAAU,IAAI,GAAG,CAAC;YAClE,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG;YACrC,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,QAAQ,EAAE,OAAO,IAAI,IAAI;SACpD,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;OAMf,CAAC,CAAC,GAAG,CACJ,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,OAAO,IAAI,IAAI,EACnB,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,OAAO,EACX,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EACxB,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,SAAS,IAAI,IAAI,EACrB,GAAG,CAAC,OAAO,IAAI,IAAI,EACnB,GAAG,CAAC,UAAU,IAAI,IAAI,EACtB,GAAG,CAAC,QAAQ,IAAI,IAAI,EACpB,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACpB,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAGf,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,GAAG,EAAE,CAAC;QACN,OAAO,GAAG,CAAC;IACb,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,CAAC,EAAE,CAA0B,CAAC;QACxG,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,KAAwB;QAC3B,MAAM,IAAI,GAAG,KAAK;YAChB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sFAAsF,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;YACpH,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC,GAAG,EAAE,CAAC;QAClG,OAAQ,IAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,OAA4B;QACjC,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,MAAM,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC;QAClC,MAAM,MAAM,GAAc,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;cAKnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;;;KAG9B,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,CAAgB,CAAC;QAErD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC;YACnF,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;gBACnC,KAAK,MAAM,EAAE,IAAI,GAAG;oBAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,GAAG,EAAE,CAAC;QACR,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,EAAU,EAAE,OAAgB;QACrC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kEAAkE,CAAC;aAChF,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,EAAU;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,GAAG,EAAE,CAAC;IACR,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF;AAqBD,SAAS,WAAW,CAAC,GAAc;IACjC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,KAAK,EAAE,GAAG,CAAC,KAAyB;QACpC,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS;QAClC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAc,CAAC;QAC7C,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;QACtC,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS;QAClC,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;QACvC,QAAQ,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;QACpC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAI,GAA8B,EAAE,QAAW;IAC9D,IAAI,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI;IACtG,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI;IACnF,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IACzE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS;IAC1D,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK;IACtG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ;IACpD,MAAM;IACN,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IACpC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IACzB,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;IAClG,QAAQ;IACR,OAAO;IACP,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAC5D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;IACzI,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;IAC/B,MAAM;IACN,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAC7G,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY;CACjD,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,GAAW;IACnC,OAAO,GAAG;SACP,KAAK,CAAC,KAAK,CAAC;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;SAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;SAC/D,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;SACpB,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC"}
@@ -9,13 +9,16 @@ import type { AgentProvider, AgentMessage, ProviderRunOptions } from './types.js
9
9
  */
10
10
  export declare class OllamaProvider implements AgentProvider {
11
11
  readonly name: "ollama";
12
- private readonly baseUrl;
12
+ private readonly baseUrls;
13
13
  private readonly defaultModel;
14
+ private resolvedBaseUrl?;
14
15
  constructor(opts?: {
15
16
  baseUrl?: string;
16
17
  model?: string;
17
18
  });
18
19
  available(): Promise<boolean>;
19
20
  generate(messages: AgentMessage[], options?: ProviderRunOptions): Promise<string>;
21
+ private resolveBaseUrl;
22
+ private orderedBaseUrls;
20
23
  }
21
24
  //# sourceMappingURL=ollama.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;IAKrD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAS7B,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;CAsB5F"}
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,eAAe,CAAC,CAAS;gBAErB,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;IAKrD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;YAkC7E,cAAc;YAad,eAAe;CAK9B"}