@gzoo/cortex 0.5.10 → 0.5.12

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 (67) hide show
  1. package/dist/cortex-mcp.mjs +1668 -55
  2. package/dist/cortex.mjs +318 -147
  3. package/package.json +1 -1
  4. package/packages/cli/dist/commands/ingest.js +1 -0
  5. package/packages/cli/dist/commands/ingest.js.map +1 -1
  6. package/packages/cli/dist/commands/mcp.js +1 -1
  7. package/packages/cli/dist/commands/mcp.js.map +1 -1
  8. package/packages/cli/dist/commands/models.js +2 -1
  9. package/packages/cli/dist/commands/models.js.map +1 -1
  10. package/packages/cli/dist/commands/serve.js +1 -1
  11. package/packages/cli/dist/commands/serve.js.map +1 -1
  12. package/packages/cli/dist/commands/watch.js +1 -0
  13. package/packages/cli/dist/commands/watch.js.map +1 -1
  14. package/packages/cli/dist/index.js +1 -1
  15. package/packages/cli/dist/index.js.map +1 -1
  16. package/packages/graph/dist/migrations/002-add-indexes.d.ts +4 -0
  17. package/packages/graph/dist/migrations/002-add-indexes.d.ts.map +1 -0
  18. package/packages/graph/dist/migrations/002-add-indexes.js +30 -0
  19. package/packages/graph/dist/migrations/002-add-indexes.js.map +1 -0
  20. package/packages/graph/dist/query-engine.d.ts.map +1 -1
  21. package/packages/graph/dist/query-engine.js +16 -25
  22. package/packages/graph/dist/query-engine.js.map +1 -1
  23. package/packages/graph/dist/sqlite-store.d.ts +5 -1
  24. package/packages/graph/dist/sqlite-store.d.ts.map +1 -1
  25. package/packages/graph/dist/sqlite-store.js +152 -118
  26. package/packages/graph/dist/sqlite-store.js.map +1 -1
  27. package/packages/ingest/dist/pipeline.d.ts +7 -0
  28. package/packages/ingest/dist/pipeline.d.ts.map +1 -1
  29. package/packages/ingest/dist/pipeline.js +43 -5
  30. package/packages/ingest/dist/pipeline.js.map +1 -1
  31. package/packages/ingest/dist/watcher.d.ts +1 -0
  32. package/packages/ingest/dist/watcher.d.ts.map +1 -1
  33. package/packages/ingest/dist/watcher.js +13 -5
  34. package/packages/ingest/dist/watcher.js.map +1 -1
  35. package/packages/llm/dist/cache.js +5 -5
  36. package/packages/llm/dist/cache.js.map +1 -1
  37. package/packages/llm/dist/providers/ollama.d.ts +1 -0
  38. package/packages/llm/dist/providers/ollama.d.ts.map +1 -1
  39. package/packages/llm/dist/providers/ollama.js +68 -17
  40. package/packages/llm/dist/providers/ollama.js.map +1 -1
  41. package/packages/llm/dist/token-tracker.d.ts +1 -0
  42. package/packages/llm/dist/token-tracker.d.ts.map +1 -1
  43. package/packages/llm/dist/token-tracker.js +19 -0
  44. package/packages/llm/dist/token-tracker.js.map +1 -1
  45. package/packages/mcp/dist/server.d.ts.map +1 -1
  46. package/packages/mcp/dist/server.js +56 -0
  47. package/packages/mcp/dist/server.js.map +1 -1
  48. package/packages/mcp/dist/tools/ingest.d.ts +16 -0
  49. package/packages/mcp/dist/tools/ingest.d.ts.map +1 -0
  50. package/packages/mcp/dist/tools/ingest.js +65 -0
  51. package/packages/mcp/dist/tools/ingest.js.map +1 -0
  52. package/packages/mcp/dist/tools/manage.d.ts +28 -0
  53. package/packages/mcp/dist/tools/manage.d.ts.map +1 -0
  54. package/packages/mcp/dist/tools/manage.js +54 -0
  55. package/packages/mcp/dist/tools/manage.js.map +1 -0
  56. package/packages/mcp/dist/tools/search.d.ts +20 -0
  57. package/packages/mcp/dist/tools/search.d.ts.map +1 -0
  58. package/packages/mcp/dist/tools/search.js +20 -0
  59. package/packages/mcp/dist/tools/search.js.map +1 -0
  60. package/packages/server/dist/index.d.ts.map +1 -1
  61. package/packages/server/dist/index.js +13 -1
  62. package/packages/server/dist/index.js.map +1 -1
  63. package/packages/server/dist/middleware/auth.d.ts.map +1 -1
  64. package/packages/server/dist/middleware/auth.js +4 -0
  65. package/packages/server/dist/middleware/auth.js.map +1 -1
  66. package/packages/server/dist/routes/status.js +1 -1
  67. package/packages/server/dist/routes/status.js.map +1 -1
@@ -14,10 +14,37 @@ export class IngestionPipeline {
14
14
  // Shared across all ingestFile calls — prevents the same entity pair from being
15
15
  // evaluated twice when multiple files ingest in the same batch.
16
16
  checkedContradictionPairs = new Set();
17
+ // Pre-compiled secret patterns for scrubbing before cloud LLM calls
18
+ compiledSecretPatterns;
17
19
  constructor(router, store, options) {
18
20
  this.router = router;
19
21
  this.store = store;
20
22
  this.options = options;
23
+ this.compiledSecretPatterns = (options.secretPatterns ?? [])
24
+ .map((pattern) => {
25
+ try {
26
+ return new RegExp(pattern, 'g');
27
+ }
28
+ catch {
29
+ logger.warn('Invalid secret pattern, skipping', { pattern });
30
+ return null;
31
+ }
32
+ })
33
+ .filter((r) => r !== null);
34
+ }
35
+ /**
36
+ * Scrub secrets from content before sending to cloud LLMs.
37
+ * Only applied for standard privacy (sensitive/restricted use local provider).
38
+ */
39
+ scrubSecrets(content) {
40
+ if (this.compiledSecretPatterns.length === 0)
41
+ return content;
42
+ let scrubbed = content;
43
+ for (const re of this.compiledSecretPatterns) {
44
+ re.lastIndex = 0; // reset global regex state
45
+ scrubbed = scrubbed.replace(re, '[SECRET_REDACTED]');
46
+ }
47
+ return scrubbed;
21
48
  }
22
49
  async ingestFile(filePath) {
23
50
  // Resolve symlinks and verify the real path is within the project root
@@ -105,11 +132,17 @@ export class IngestionPipeline {
105
132
  // Deduplicate entities by name within this file
106
133
  const deduped = this.deduplicateEntities(allEntities);
107
134
  logger.debug('Extracted entities', { filePath, raw: allEntities.length, deduped: deduped.length });
108
- // Store entities
135
+ // Store entities in a transaction for atomicity and performance
136
+ // (better-sqlite3 operations are synchronous, so await resolves immediately)
109
137
  const storedEntities = [];
110
- for (const entity of deduped) {
111
- const stored = await this.store.createEntity(entity);
112
- storedEntities.push(stored);
138
+ this.store.transaction(() => {
139
+ for (const entity of deduped) {
140
+ // createEntity is sync under the hood (better-sqlite3)
141
+ storedEntities.push(this.store.createEntitySync(entity));
142
+ }
143
+ });
144
+ // Emit events outside the transaction
145
+ for (const stored of storedEntities) {
113
146
  eventBus.emit({
114
147
  type: 'entity.created',
115
148
  payload: { entity: stored },
@@ -179,6 +212,11 @@ export class IngestionPipeline {
179
212
  const privacyOverride = this.options.projectPrivacyLevel !== 'standard'
180
213
  ? { forceProvider: 'local' }
181
214
  : {};
215
+ // Step 2: scrub secrets before sending to cloud LLM
216
+ // (only relevant for standard privacy; sensitive/restricted use local provider)
217
+ const safeContent = this.options.projectPrivacyLevel === 'standard'
218
+ ? this.scrubSecrets(chunk.content)
219
+ : chunk.content;
182
220
  try {
183
221
  const result = await this.router.completeStructured({
184
222
  systemPrompt: entityExtractionPrompt.systemPrompt,
@@ -186,7 +224,7 @@ export class IngestionPipeline {
186
224
  filePath,
187
225
  projectName: this.options.projectName,
188
226
  fileType,
189
- content: chunk.content,
227
+ content: safeContent,
190
228
  }),
191
229
  promptId: entityExtractionPrompt.PROMPT_ID,
192
230
  promptVersion: entityExtractionPrompt.PROMPT_VERSION,
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EAIX,qBAAqB,EACrB,OAAO,GAGR,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAc,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAqB/C,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAS;IACf,KAAK,CAAc;IACnB,OAAO,CAAkB;IACjC,gFAAgF;IAChF,gEAAgE;IACxD,yBAAyB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAC3D,oEAAoE;IAC5D,sBAAsB,CAAW;IAEzC,YACE,MAAc,EACd,KAAkB,EAClB,OAAwB;QAExB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,sBAAsB,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;aACzD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACf,IAAI,CAAC;gBACH,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,OAAe;QAClC,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAC7D,IAAI,QAAQ,GAAG,OAAO,CAAC;QACvB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC7C,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,2BAA2B;YAC7C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,uEAAuE;QACvE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC5C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC5E,MAAM,CAAC,IAAI,CAAC,gEAAgE,EAAE;oBAC5E,QAAQ;oBACR,QAAQ;oBACR,WAAW;iBACZ,CAAC,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;YAC9G,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;QAC3E,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAErD,yEAAyE;QACzE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YACnE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC/E,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;QACvG,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YACtG,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;QACxG,CAAC;QAED,YAAY;QACZ,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ;gBAChE,KAAK,EAAE,eAAe,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aACzE,CAAC;QACJ,CAAC;QAED,kEAAkE;QAClE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAE,CAAC;QAElD,uBAAuB;QACvB,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEvE,2CAA2C;QAC3C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,YAAY,IAAI,YAAY,CAAC,WAAW,KAAK,WAAW,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACnG,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvD,OAAO;gBACL,MAAM,EAAE,YAAY,CAAC,EAAE;gBACvB,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,eAAe,EAAE,EAAE;gBACnB,MAAM,EAAE,UAAU;aACnB,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,aAAa;YACb,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAE1D,QAAQ;YACR,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAIlE,MAAM,WAAW,GAAkB,EAAE,CAAC;YACtC,IAAI,gBAAgB,GAAG,CAAC,CAAC;YACzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAChF,IAAI,QAAQ;oBAAE,gBAAgB,EAAE,CAAC;gBACjC,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;YAChC,CAAC;YAED,qFAAqF;YACrF,oEAAoE;YACpE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1E,MAAM,IAAI,WAAW,CACnB,qBAAqB,EAAE,MAAM,EAAE,KAAK,EACpC,oCAAoC,MAAM,CAAC,MAAM,gBAAgB,QAAQ,EAAE,CAC5E,CAAC;YACJ,CAAC;YAED,gDAAgD;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAEnG,gEAAgE;YAChE,6EAA6E;YAC7E,MAAM,cAAc,GAAa,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;gBAC1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,uDAAuD;oBACvD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,sCAAsC;YACtC,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;gBACpC,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;oBAC3B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,MAAM,EAAE,iBAAiB;iBAC1B,CAAC,CAAC;YACL,CAAC;YAED,qEAAqE;YACrE,MAAM,iBAAiB,CACrB,cAAc,EACd,QAAQ,EACR,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CAAC,wBAAwB,CACtC,CAAC;YACF,MAAM,yBAAyB,CAC7B,cAAc,EACd,QAAQ,EACR,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAChC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,yBAAyB,CAC/B,CAAC;YAEF,uCAAuC;YACvC,MAAM,eAAe,GAAa,EAAE,CAAC;YACrC,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;gBAC3D,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAChC,CAAC;YAED,qBAAqB;YACrB,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC7C,IAAI,EAAE,QAAQ;gBACd,YAAY;gBACZ,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBACjC,WAAW;gBACX,QAAQ,EAAE,GAAG;gBACb,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBACtC,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACxC,SAAS;gBACT,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,qBAAqB;YACrB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;gBAC9D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,iBAAiB;aAC1B,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;gBAC3B,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,SAAS,CAAC,MAAM;gBAC1B,aAAa,EAAE,eAAe,CAAC,MAAM;aACtC,CAAC,CAAC;YAEH,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEhE,qBAAqB;YACrB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC1B,IAAI,EAAE,QAAQ;gBACd,YAAY;gBACZ,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBACjC,WAAW;gBACX,QAAQ,EAAE,GAAG;gBACb,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBACtC,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,QAAQ;aACrB,CAAC,CAAC;YAEH,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC/F,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,KAAY,EACZ,QAAgB,EAChB,QAAgB;QAEhB,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7E,uEAAuE;QACvE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,UAAU;YACrE,CAAC,CAAC,EAAE,aAAa,EAAE,OAAgB,EAAE;YACrC,CAAC,CAAC,EAAE,CAAC;QAEP,oDAAoD;QACpD,gFAAgF;QAChF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,UAAU;YACjE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;YAClC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CACjD;gBACE,YAAY,EAAE,sBAAsB,CAAC,YAAY;gBACjD,UAAU,EAAE,sBAAsB,CAAC,eAAe,CAAC;oBACjD,QAAQ;oBACR,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;oBACrC,QAAQ;oBACR,OAAO,EAAE,WAAW;iBACrB,CAAC;gBACF,QAAQ,EAAE,sBAAsB,CAAC,SAAS;gBAC1C,aAAa,EAAE,sBAAsB,CAAC,cAAc;gBACpD,IAAI,EAAE,OAAO,CAAC,iBAAiB;gBAC/B,eAAe,EAAE,sBAAsB,CAAC,MAAM,CAAC,KAAK;gBACpD,WAAW,EAAE,sBAAsB,CAAC,MAAM,CAAC,WAAW;gBACtD,SAAS,EAAE,sBAAsB,CAAC,MAAM,CAAC,SAAS;gBAClD,WAAW;gBACX,GAAG,eAAe;aACnB,EACD,sBAAsB,CAAC,YAAY,CACpC,CAAC;YAEF,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,EAAE,CAAC,CAAC,IAAkB;oBAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,UAAU,EAAE,QAAQ;oBACpB,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;oBACnE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;oBACjC,WAAW,EAAE;wBACX,QAAQ,EAAE,sBAAsB,CAAC,SAAS;wBAC1C,aAAa,EAAE,sBAAsB,CAAC,cAAc;wBACpD,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE;wBACtE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC;oBACD,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,MAAM,EAAE,QAAiB;iBAC1B,CAAC,CAAC;gBACH,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE;gBAChD,QAAQ;gBACR,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,QAAkB;QACjD,uEAAuE;QACvE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,UAAU;YACrE,CAAC,CAAC,EAAE,aAAa,EAAE,OAAgB,EAAE;YACrC,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CACjD;gBACE,YAAY,EAAE,2BAA2B,CAAC,YAAY;gBACtD,UAAU,EAAE,2BAA2B,CAAC,eAAe,CAAC;oBACtD,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC7B,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;qBACzB,CAAC,CAAC;iBACJ,CAAC;gBACF,QAAQ,EAAE,2BAA2B,CAAC,SAAS;gBAC/C,aAAa,EAAE,2BAA2B,CAAC,cAAc;gBACzD,IAAI,EAAE,OAAO,CAAC,sBAAsB;gBACpC,eAAe,EAAE,2BAA2B,CAAC,MAAM,CAAC,KAAK;gBACzD,WAAW,EAAE,2BAA2B,CAAC,MAAM,CAAC,WAAW;gBAC3D,SAAS,EAAE,2BAA2B,CAAC,MAAM,CAAC,SAAS;gBACvD,GAAG,eAAe;aACnB,EACD,2BAA2B,CAAC,YAAY,CACzC,CAAC;YAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvD,MAAM,eAAe,GAAa,EAAE,CAAC;YAErC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC5C,0CAA0C;gBAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBACjF,SAAS;gBACX,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;oBACjD,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,cAAc,EAAE,GAAG,CAAC,cAAc;oBAClC,cAAc,EAAE,GAAG,CAAC,cAAc;oBAClC,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,UAAU,EAAE,EAAE;oBACd,WAAW,EAAE;wBACX,QAAQ,EAAE,2BAA2B,CAAC,SAAS;wBAC/C,aAAa,EAAE,2BAA2B,CAAC,cAAc;wBACzD,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE;wBACtE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC;iBACF,CAAC,CAAC;gBAEH,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAEhC,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;oBACjC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,MAAM,EAAE,iBAAiB;iBAC1B,CAAC,CAAC;YACL,CAAC;YAED,OAAO,eAAe,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;gBAC3C,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,mBAAmB,CACzB,QAA0D;QAE1D,MAAM,IAAI,GAAG,IAAI,GAAG,EAA0D,CAAC;QAE/E,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACzD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5B,CAAC;CACF"}
@@ -14,6 +14,7 @@ export declare class FileWatcher {
14
14
  private options;
15
15
  private handler;
16
16
  private debounceTimers;
17
+ private compiledExcludePatterns;
17
18
  constructor(options: WatcherOptions);
18
19
  static fromConfig(config: IngestConfig): FileWatcher;
19
20
  onFileChange(handler: FileChangeHandler): void;
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAIzE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;AAEhG,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,cAAc,CAAyD;gBAEnE,OAAO,EAAE,cAAc;IAInC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW;IAWpD,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAI9C,KAAK,IAAI,IAAI;IA2BP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,mBAAmB;CAwB5B"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAIzE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;AAEhG,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,cAAc,CAAyD;IAC/E,OAAO,CAAC,uBAAuB,CAAuD;gBAE1E,OAAO,EAAE,cAAc;IAcnC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW;IAWpD,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAI9C,KAAK,IAAI,IAAI;IA2BP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,mBAAmB;CAwB5B"}
@@ -7,8 +7,17 @@ export class FileWatcher {
7
7
  options;
8
8
  handler = null;
9
9
  debounceTimers = new Map();
10
+ compiledExcludePatterns;
10
11
  constructor(options) {
11
12
  this.options = options;
13
+ // Pre-compile exclude patterns once instead of on every file event
14
+ this.compiledExcludePatterns = options.exclude.map((pattern) => {
15
+ if (pattern.includes('*')) {
16
+ const re = new RegExp('^' + pattern.replace(/\\/g, '\\\\').replace(/\./g, '\\.').replace(/\*\*/g, '.*').replace(/\*/g, '[^/\\\\]*') + '$');
17
+ return { pattern: re, isGlob: true };
18
+ }
19
+ return pattern;
20
+ });
12
21
  }
13
22
  static fromConfig(config) {
14
23
  return new FileWatcher({
@@ -98,14 +107,13 @@ export class FileWatcher {
98
107
  }
99
108
  isExcluded(filePath) {
100
109
  const parts = filePath.split(/[\\/]/);
101
- for (const pattern of this.options.exclude) {
102
- if (pattern.includes('*')) {
103
- const re = new RegExp('^' + pattern.replace(/\./g, '\\.').replace(/\*\*/g, '.*').replace(/\*/g, '[^/\\\\]*') + '$');
104
- if (parts.some((p) => re.test(p)))
110
+ for (const compiled of this.compiledExcludePatterns) {
111
+ if (typeof compiled === 'string') {
112
+ if (parts.some((p) => p === compiled))
105
113
  return true;
106
114
  }
107
115
  else {
108
- if (parts.some((p) => p === pattern))
116
+ if (parts.some((p) => compiled.pattern.test(p)))
109
117
  return true;
110
118
  }
111
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"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"}
@@ -33,12 +33,12 @@ export class ResponseCache {
33
33
  set(contentHash, promptId, promptVersion, response, model, inputTokens, outputTokens) {
34
34
  if (!this.enabled)
35
35
  return;
36
- // Evict oldest entries if at capacity
36
+ // Evict oldest entry if at capacity — Map preserves insertion order,
37
+ // so the first key is the oldest (O(1) instead of O(n log n) sort)
37
38
  if (this.cache.size >= this.maxEntries) {
38
- const oldest = [...this.cache.entries()]
39
- .sort((a, b) => a[1].createdAt - b[1].createdAt)[0];
40
- if (oldest) {
41
- this.cache.delete(oldest[0]);
39
+ const firstKey = this.cache.keys().next().value;
40
+ if (firstKey !== undefined) {
41
+ this.cache.delete(firstKey);
42
42
  }
43
43
  }
44
44
  const key = this.buildKey(contentHash, promptId, promptVersion);
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AAgBzC,MAAM,OAAO,aAAa;IAChB,KAAK,GAA4B,IAAI,GAAG,EAAE,CAAC;IAC3C,OAAO,CAAU;IACjB,KAAK,CAAS;IACd,UAAU,CAAS;IAE3B,YAAY,UAAgC,EAAE;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;QAChE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC;IACjD,CAAC;IAEO,QAAQ,CAAC,WAAmB,EAAE,QAAgB,EAAE,aAAqB;QAC3E,OAAO,UAAU,CAAC,QAAQ,CAAC;aACxB,MAAM,CAAC,GAAG,WAAW,IAAI,QAAQ,IAAI,aAAa,EAAE,CAAC;aACrD,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED,GAAG,CACD,WAAmB,EACnB,QAAgB,EAChB,aAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE/B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CACD,WAAmB,EACnB,QAAgB,EAChB,aAAqB,EACrB,QAAgB,EAChB,KAAa,EACb,WAAmB,EACnB,YAAoB;QAEpB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,qEAAqE;QACrE,mEAAmE;QACnE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,QAAQ;YACR,KAAK;YACL,WAAW;YACX,YAAY;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF"}
@@ -18,6 +18,7 @@ export declare class OllamaProvider implements LLMProvider {
18
18
  private numGpu;
19
19
  private timeoutMs;
20
20
  private keepAlive;
21
+ private streamInactivityTimeoutMs;
21
22
  readonly capabilities: ProviderCapabilities;
22
23
  constructor(options?: OllamaProviderOptions);
23
24
  getModel(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAM1B,MAAM,cAAc,CAAC;AAItB,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiDD,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAEjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAE1B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAezC;gBAEU,OAAO,GAAE,qBAA0B;IAa/C,QAAQ,IAAI,MAAM;IAIZ,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAKtE,kBAAkB,CACtB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,EAC3B,gBAAgB,GAAE,SAAS,GAAG,MAAkB,GAC/C,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAkEnF,kBAAkB,CAAC,CAAC,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,CAAC,CAAC;IAKN,MAAM,CACX,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,iBAAiB,GAC1B,cAAc,CAAC,MAAM,CAAC;IAIlB,gBAAgB,CACrB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,EAC3B,gBAAgB,GAAE,SAAS,GAAG,MAAkB,GAC/C,cAAc,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAmFjF,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAsC/C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IA8B/B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC5B,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAe3F,OAAO,IAAI,MAAM;IAIjB,SAAS,IAAI,MAAM;IAInB,SAAS,IAAI,MAAM;IAInB,iBAAiB,IAAI,MAAM;IAI3B,OAAO,CAAC,QAAQ;CAoDjB"}
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAM1B,MAAM,cAAc,CAAC;AAItB,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6FD,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAEjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,yBAAyB,CAAS;IAE1C,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAezC;gBAEU,OAAO,GAAE,qBAA0B;IAe/C,QAAQ,IAAI,MAAM;IAIZ,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAKtE,kBAAkB,CACtB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,EAC3B,gBAAgB,GAAE,SAAS,GAAG,MAAkB,GAC/C,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAkEnF,kBAAkB,CAAC,CAAC,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,CAAC,CAAC;IAKN,MAAM,CACX,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,iBAAiB,GAC1B,cAAc,CAAC,MAAM,CAAC;IAIlB,gBAAgB,CACrB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,EAC3B,gBAAgB,GAAE,SAAS,GAAG,MAAkB,GAC/C,cAAc,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAoHjF,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAsC/C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IA8B/B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC5B,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAe3F,OAAO,IAAI,MAAM;IAIjB,SAAS,IAAI,MAAM;IAInB,SAAS,IAAI,MAAM;IAInB,iBAAiB,IAAI,MAAM;IAI3B,OAAO,CAAC,QAAQ;CAoDjB"}
@@ -1,5 +1,31 @@
1
1
  import { LLMTask, CortexError, LLM_PROVIDER_UNAVAILABLE, LLM_TIMEOUT, createLogger, } from '@cortex/core';
2
2
  const logger = createLogger('llm:ollama');
3
+ // IPs that must never be used as Ollama host (cloud metadata, link-local)
4
+ const BLOCKED_HOST_PATTERNS = [
5
+ /^169\.254\./, // AWS/Azure metadata link-local
6
+ /^fd[0-9a-f]{2}:/i, // IPv6 unique local (fd00::/8)
7
+ /^fe80:/i, // IPv6 link-local
8
+ ];
9
+ function validateOllamaHost(host) {
10
+ let parsed;
11
+ try {
12
+ parsed = new URL(host);
13
+ }
14
+ catch {
15
+ throw new CortexError(LLM_PROVIDER_UNAVAILABLE, 'high', 'llm', `Invalid Ollama host URL: ${host}`, { host }, 'Set a valid URL like http://localhost:11434', false);
16
+ }
17
+ const hostname = parsed.hostname;
18
+ for (const pattern of BLOCKED_HOST_PATTERNS) {
19
+ if (pattern.test(hostname)) {
20
+ throw new CortexError(LLM_PROVIDER_UNAVAILABLE, 'high', 'llm', `Ollama host "${hostname}" is blocked — it matches a link-local or cloud metadata IP range.`, { host }, 'Use a non-link-local address for Ollama.', false);
21
+ }
22
+ }
23
+ const localhostNames = new Set(['localhost', '127.0.0.1', '::1', '0.0.0.0']);
24
+ if (!localhostNames.has(hostname)) {
25
+ logger.warn(`Ollama host is not localhost (${hostname}). ` +
26
+ 'Ensure the remote Ollama instance is trusted and network-secured.');
27
+ }
28
+ }
3
29
  export class OllamaProvider {
4
30
  name = 'ollama';
5
31
  type = 'local';
@@ -10,6 +36,7 @@ export class OllamaProvider {
10
36
  numGpu;
11
37
  timeoutMs;
12
38
  keepAlive;
39
+ streamInactivityTimeoutMs;
13
40
  capabilities = {
14
41
  supportedTasks: [
15
42
  LLMTask.ENTITY_EXTRACTION,
@@ -28,12 +55,14 @@ export class OllamaProvider {
28
55
  };
29
56
  constructor(options = {}) {
30
57
  this.host = options.host ?? process.env['CORTEX_OLLAMA_HOST'] ?? 'http://localhost:11434';
58
+ validateOllamaHost(this.host);
31
59
  this.model = options.model ?? 'mistral:7b-instruct-q5_K_M';
32
60
  this.embeddingModel = options.embeddingModel ?? 'nomic-embed-text';
33
61
  this.numCtx = options.numCtx ?? 8192;
34
62
  this.numGpu = options.numGpu ?? -1;
35
63
  this.timeoutMs = options.timeoutMs ?? 300_000; // 5 minutes - allows for cold start model loading
36
64
  this.keepAlive = options.keepAlive ?? '5m';
65
+ this.streamInactivityTimeoutMs = 60_000; // 60s inactivity timeout during streaming
37
66
  // Update max context tokens based on config
38
67
  this.capabilities.maxContextTokens = this.numCtx;
39
68
  }
@@ -148,28 +177,50 @@ export class OllamaProvider {
148
177
  const decoder = new TextDecoder();
149
178
  let inputTokens = 0;
150
179
  let outputTokens = 0;
151
- while (true) {
152
- const { done, value } = await reader.read();
153
- if (done)
154
- break;
155
- const chunk = decoder.decode(value, { stream: true });
156
- const lines = chunk.split('\n').filter(line => line.trim());
157
- for (const line of lines) {
158
- try {
159
- const data = JSON.parse(line);
160
- if (data.response) {
161
- yield data.response;
180
+ // Per-chunk inactivity timeout — aborts if model stalls mid-stream
181
+ const streamController = new AbortController();
182
+ let inactivityTimer = setTimeout(() => streamController.abort(), this.streamInactivityTimeoutMs);
183
+ try {
184
+ while (true) {
185
+ const readPromise = reader.read();
186
+ // Race the read against the inactivity abort
187
+ const raceResult = await Promise.race([
188
+ readPromise,
189
+ new Promise((_, reject) => {
190
+ streamController.signal.addEventListener('abort', () => reject(new Error('Stream inactivity timeout')), { once: true });
191
+ if (streamController.signal.aborted) {
192
+ reject(new Error('Stream inactivity timeout'));
193
+ }
194
+ }),
195
+ ]);
196
+ const { done, value } = raceResult;
197
+ if (done)
198
+ break;
199
+ // Reset inactivity timer on each chunk
200
+ clearTimeout(inactivityTimer);
201
+ inactivityTimer = setTimeout(() => streamController.abort(), this.streamInactivityTimeoutMs);
202
+ const chunk = decoder.decode(value, { stream: true });
203
+ const lines = chunk.split('\n').filter(line => line.trim());
204
+ for (const line of lines) {
205
+ try {
206
+ const data = JSON.parse(line);
207
+ if (data.response) {
208
+ yield data.response;
209
+ }
210
+ if (data.done) {
211
+ inputTokens = data.prompt_eval_count ?? 0;
212
+ outputTokens = data.eval_count ?? 0;
213
+ }
162
214
  }
163
- if (data.done) {
164
- inputTokens = data.prompt_eval_count ?? 0;
165
- outputTokens = data.eval_count ?? 0;
215
+ catch {
216
+ // Skip invalid JSON lines
166
217
  }
167
218
  }
168
- catch {
169
- // Skip invalid JSON lines
170
- }
171
219
  }
172
220
  }
221
+ finally {
222
+ clearTimeout(inactivityTimer);
223
+ }
173
224
  return {
174
225
  inputTokens,
175
226
  outputTokens,
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare class TokenTracker {
7
7
  private warningsFired;
8
8
  constructor(monthlyBudgetUsd?: number, warningThresholds?: number[]);
9
9
  record(requestId: string, task: LLMTask, provider: string, model: string, inputTokens: number, outputTokens: number, latencyMs: number): TokenUsageRecord;
10
+ private trimOldRecords;
10
11
  private checkBudget;
11
12
  getCurrentMonthSpend(): number;
12
13
  isBudgetExhausted(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"token-tracker.d.ts","sourceRoot":"","sources":["../src/token-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAY3F,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,MAAM,CAMR;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,iBAAiB,CAAW;IACpC,OAAO,CAAC,aAAa,CAA0B;gBAEnC,gBAAgB,SAAK,EAAE,iBAAiB,WAAkB;IAKtE,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,gBAAgB;IAsBnB,OAAO,CAAC,WAAW;IAoCnB,oBAAoB,IAAI,MAAM;IAO9B,iBAAiB,IAAI,OAAO;IAI5B,kBAAkB,IAAI,MAAM;IAI5B,UAAU,IAAI,gBAAgB,EAAE;IAIhC,UAAU,IAAI;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC;CA2BF"}
1
+ {"version":3,"file":"token-tracker.d.ts","sourceRoot":"","sources":["../src/token-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAY3F,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,MAAM,CAMR;AAID,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,iBAAiB,CAAW;IACpC,OAAO,CAAC,aAAa,CAA0B;gBAEnC,gBAAgB,SAAK,EAAE,iBAAiB,WAAkB;IAKtE,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,gBAAgB;IAuBnB,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,WAAW;IAoCnB,oBAAoB,IAAI,MAAM;IAO9B,iBAAiB,IAAI,OAAO;IAI5B,kBAAkB,IAAI,MAAM;IAI5B,UAAU,IAAI,gBAAgB,EAAE;IAIhC,UAAU,IAAI;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC;CA2BF"}
@@ -11,6 +11,7 @@ export function estimateCost(model, inputTokens, outputTokens) {
11
11
  return ((inputTokens / 1_000_000) * costs.input +
12
12
  (outputTokens / 1_000_000) * costs.output);
13
13
  }
14
+ const MAX_IN_MEMORY_RECORDS = 10_000;
14
15
  export class TokenTracker {
15
16
  records = [];
16
17
  monthlyBudgetUsd;
@@ -35,9 +36,27 @@ export class TokenTracker {
35
36
  timestamp: new Date().toISOString(),
36
37
  };
37
38
  this.records.push(record);
39
+ this.trimOldRecords();
38
40
  this.checkBudget();
39
41
  return record;
40
42
  }
43
+ trimOldRecords() {
44
+ if (this.records.length <= MAX_IN_MEMORY_RECORDS)
45
+ return;
46
+ // Keep all current-month records; drop oldest records from prior months
47
+ const currentMonth = new Date().toISOString().slice(0, 7);
48
+ const currentMonthRecords = this.records.filter((r) => r.timestamp.startsWith(currentMonth));
49
+ const priorRecords = this.records.filter((r) => !r.timestamp.startsWith(currentMonth));
50
+ if (currentMonthRecords.length >= MAX_IN_MEMORY_RECORDS) {
51
+ // Even current month alone exceeds cap — keep only the most recent records
52
+ this.records = currentMonthRecords.slice(-MAX_IN_MEMORY_RECORDS);
53
+ }
54
+ else {
55
+ // Keep all current month + most recent prior month records to fill cap
56
+ const keepFromPrior = MAX_IN_MEMORY_RECORDS - currentMonthRecords.length;
57
+ this.records = [...priorRecords.slice(-keepFromPrior), ...currentMonthRecords];
58
+ }
59
+ }
41
60
  checkBudget() {
42
61
  const spent = this.getCurrentMonthSpend();
43
62
  const usedPercent = this.monthlyBudgetUsd > 0 ? spent / this.monthlyBudgetUsd : 0;
@@ -1 +1 @@
1
- {"version":3,"file":"token-tracker.js","sourceRoot":"","sources":["../src/token-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAuC,MAAM,cAAc,CAAC;AAE3F,MAAM,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;AAEjD,qDAAqD;AACrD,MAAM,WAAW,GAAsD;IACrE,4BAA4B,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAC1D,2BAA2B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;CAC1D,CAAC;AAEF,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAElD,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,WAAmB,EACnB,YAAoB;IAEpB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC;IACjD,OAAO,CACL,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK;QACvC,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,MAAM,CAC1C,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,YAAY;IACf,OAAO,GAAuB,EAAE,CAAC;IACjC,gBAAgB,CAAS;IACzB,iBAAiB,CAAW;IAC5B,aAAa,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE/C,YAAY,gBAAgB,GAAG,EAAE,EAAE,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACpE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED,MAAM,CACJ,SAAiB,EACjB,IAAa,EACb,QAAgB,EAChB,KAAa,EACb,WAAmB,EACnB,YAAoB,EACpB,SAAiB;QAEjB,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAqB;YAC/B,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;YACvB,SAAS;YACT,IAAI;YACJ,QAAQ;YACR,KAAK;YACL,WAAW;YACX,YAAY;YACZ,gBAAgB,EAAE,OAAO;YACzB,SAAS;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,WAAW;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEpC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/C,IAAI,WAAW,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAClC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;oBACrE,KAAK;oBACL,MAAM,EAAE,IAAI,CAAC,gBAAgB;oBAC7B,SAAS;iBACV,CAAC,CAAC;gBACH,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE;oBAChF,SAAS,EAAE,EAAE;oBACb,MAAM,EAAE,mBAAmB;iBAC5B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,0DAA0D;QAC1D,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,WAAW,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC1E,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;gBACjC,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,mBAAmB;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,oBAAoB;QAClB,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;aACnD,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC;IAC9D,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,UAAU;QAQR,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;QAEtF,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,MAAM,cAAc,GAA2B,EAAE,CAAC;QAClD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,UAAU,IAAI,CAAC,CAAC,WAAW,CAAC;YAC5B,WAAW,IAAI,CAAC,CAAC,YAAY,CAAC;YAC9B,SAAS,IAAI,CAAC,CAAC,gBAAgB,CAAC;YAChC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC;YACpE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC;QACtF,CAAC;QAED,OAAO;YACL,YAAY,EAAE,SAAS;YACvB,gBAAgB,EAAE,UAAU;YAC5B,iBAAiB,EAAE,WAAW;YAC9B,YAAY,EAAE,YAAY,CAAC,MAAM;YACjC,UAAU;YACV,cAAc;SACf,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"token-tracker.js","sourceRoot":"","sources":["../src/token-tracker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAO1C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAmIpF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAU1C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAyNpF"}
@@ -5,6 +5,9 @@ import { handleFindEntity } from './tools/find.js';
5
5
  import { handleListProjects } from './tools/projects.js';
6
6
  import { handleGetStatus } from './tools/status.js';
7
7
  import { handleGetContradictions, handleResolveContradiction } from './tools/contradictions.js';
8
+ import { handleSearchEntities } from './tools/search.js';
9
+ import { handleIngestFile } from './tools/ingest.js';
10
+ import { handleAddProject, handleRemoveProject } from './tools/manage.js';
8
11
  export function createCortexMcpServer(bundle, router) {
9
12
  const server = new McpServer({
10
13
  name: 'cortex',
@@ -82,6 +85,59 @@ export function createCortexMcpServer(bundle, router) {
82
85
  const result = await handleResolveContradiction({ id, action }, bundle.store);
83
86
  return { content: [{ type: 'text', text: result }] };
84
87
  });
88
+ server.registerTool('search_entities', {
89
+ title: 'Search Entities',
90
+ description: 'Search across all entities in the knowledge graph using full-text search. ' +
91
+ 'Returns matching entities ranked by relevance. Use this for broad searches ' +
92
+ 'when you don\'t know the exact entity name.',
93
+ inputSchema: {
94
+ query: z.string().describe('Search text (keywords, phrases)'),
95
+ limit: z.number().optional().describe('Max results to return (default: 20, max: 100)'),
96
+ type: z.string().optional().describe('Filter by entity type: Decision, Requirement, Pattern, Component, ' +
97
+ 'Dependency, Interface, Constraint, ActionItem, Risk, Note'),
98
+ },
99
+ }, async ({ query, limit, type }) => {
100
+ const result = await handleSearchEntities({ query, limit, type }, bundle.store);
101
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
102
+ });
103
+ server.registerTool('ingest_file', {
104
+ title: 'Ingest File',
105
+ description: 'Trigger ingestion of a single file into the knowledge graph. Extracts entities ' +
106
+ 'and relationships using LLMs. The file must belong to a registered project. ' +
107
+ 'If projectId is omitted, Cortex auto-detects the project from the file path.',
108
+ inputSchema: {
109
+ filePath: z.string().describe('Absolute path to the file to ingest'),
110
+ projectId: z.string().optional().describe('Project ID to ingest into. If omitted, auto-detected from file path.'),
111
+ },
112
+ }, async ({ filePath, projectId }) => {
113
+ const result = await handleIngestFile({ filePath, projectId }, bundle.store, router);
114
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
115
+ });
116
+ server.registerTool('add_project', {
117
+ title: 'Add Project',
118
+ description: 'Register a new project directory for Cortex to watch and index. ' +
119
+ 'The path must exist and be a directory.',
120
+ inputSchema: {
121
+ name: z.string().describe('Unique project name (e.g., "my-app", "api-server")'),
122
+ path: z.string().describe('Absolute path to the project root directory'),
123
+ privacyLevel: z.string().optional().describe('Privacy level: standard (default), sensitive, or restricted. ' +
124
+ 'Restricted projects are never sent to cloud LLMs.'),
125
+ },
126
+ }, async ({ name, path, privacyLevel }) => {
127
+ const result = await handleAddProject({ name, path, privacyLevel: privacyLevel }, bundle.store);
128
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
129
+ });
130
+ server.registerTool('remove_project', {
131
+ title: 'Remove Project',
132
+ description: 'Unregister a project from Cortex. Removes it from the project registry but ' +
133
+ 'preserves all extracted entities in the knowledge graph.',
134
+ inputSchema: {
135
+ name: z.string().describe('Name of the project to remove'),
136
+ },
137
+ }, async ({ name }) => {
138
+ const result = await handleRemoveProject({ name });
139
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
140
+ });
85
141
  return server;
86
142
  }
87
143
  //# sourceMappingURL=server.js.map