@backendkit-labs/agent-enterprise 0.4.0 → 0.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,WAAW,EAGX,gBAAgB,EAInB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAY1D,MAAM,WAAW,sBAAsB;IACnC,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sEAAsE;IACtE,SAAS,EAAE,gBAAgB,CAAC;IAC5B,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,iFAAiF;IACjF,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,KAAK,WAAW,CAAC;CAC3E;AAcD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,GAAG,eAAe,CAqGnF"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,WAAW,EACX,gBAAgB,EAKnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAkB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAY1D,MAAM,WAAW,sBAAsB;IACnC,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sEAAsE;IACtE,SAAS,EAAE,gBAAgB,CAAC;IAC5B,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,iFAAiF;IACjF,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,KAAK,WAAW,CAAC;CAC3E;AAcD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,GAAG,eAAe,CAmGnF"}
package/dist/factory.js CHANGED
@@ -99,13 +99,11 @@ function createEnterpriseSetup(opts) {
99
99
  }
100
100
  // ── Engine factory ────────────────────────────────────────────────────────
101
101
  function engineFactory(sessionId, transport) {
102
- const tools = new agent_core_1.ToolRegistry();
103
- // Global search (General agent)
104
- tools.register(globalRAG.createTool());
102
+ const tools = [globalRAG.createTool()];
105
103
  // Department search tools
106
104
  for (const [toolName, rag] of deptRAGs) {
107
105
  const deptRag = rag;
108
- tools.register((0, agent_core_1.defineTool)({
106
+ tools.push((0, agent_core_1.defineTool)({
109
107
  name: toolName,
110
108
  description: `Search the ${toolName.replace('search_', '').replace('_kb', '')} department knowledge base.`,
111
109
  input: agent_core_1.z.object({
@@ -115,17 +113,15 @@ function createEnterpriseSetup(opts) {
115
113
  }));
116
114
  }
117
115
  // Write to vault
118
- tools.register(writer.createTool('general'));
116
+ tools.push(writer.createTool('general'));
119
117
  // n8n integration (opt-in — only when a webhook URL is configured)
120
118
  const n8nUrl = opts.n8nWebhookUrl ?? process.env.N8N_WEBHOOK_URL;
121
119
  if (n8nUrl) {
122
- tools.register((0, integrations_1.createN8nTriggerTool)({ webhookUrl: n8nUrl }));
120
+ tools.push((0, integrations_1.createN8nTriggerTool)({ webhookUrl: n8nUrl }));
123
121
  }
124
122
  // Agents
125
- const agents = new agent_core_1.AgentRegistry();
126
- const profiles = [...profiles_1.ALL_ENTERPRISE_PROFILES, ...(opts.extraProfiles ?? [])];
127
- for (const profile of profiles)
128
- agents.register(profile);
123
+ const agents = [...profiles_1.ALL_ENTERPRISE_PROFILES, ...(opts.extraProfiles ?? [])];
124
+ const providers = opts.providers.getAll();
129
125
  // Per-session memory
130
126
  const memory = (0, agent_core_1.createMemorySystem)({
131
127
  episodic: { provider: 'json', path: path.join(sessionsDir, sessionId, 'ep.json') },
@@ -133,19 +129,20 @@ function createEnterpriseSetup(opts) {
133
129
  procedural: { provider: 'json', path: path.join(sessionsDir, sessionId, 'proc.json') },
134
130
  retention: { maxEpisodes: 100 },
135
131
  });
136
- return new agent_core_1.AgentEngine({
137
- model: { provider: opts.defaultProvider, id: '' },
132
+ const engine = (0, agent_core_1.createBaseEngine)({
138
133
  agents,
139
134
  tools,
140
- providers: opts.providers,
135
+ providers,
141
136
  defaultProvider: opts.defaultProvider,
142
- defaultAgentId: 'general',
137
+ defaultAgent: 'general',
143
138
  transport,
144
139
  maxIterations: opts.maxIterations ?? 20,
145
- iterationMode: 'auto',
146
140
  memorySystem: memory,
147
141
  sessionId,
148
142
  });
143
+ // createBaseEngine defaults to 'interactive' — enterprise sessions run unattended per WS turn.
144
+ engine.setIterationMode('auto');
145
+ return engine;
149
146
  }
150
147
  return { indexAll, engineFactory };
151
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqFA,sDAqGC;AA1LD,2CAA6B;AAC7B,uCAAyB;AACzB,4DAQqC;AAErC,mEAAgE;AAEhE,mDAAgD;AAChD,yDAAsD;AACtD,yCAIoB;AACpB,iDAAsD;AAoCtD,iFAAiF;AAEjF,MAAM,YAAY,GAAmD;IACjE,EAAE,QAAQ,EAAE,2BAAgB,CAAC,cAAc,EAAG,OAAO,EAAE,CAAC,wBAAa,CAAC,OAAO,EAAG,wBAAa,CAAC,OAAO,EAAE,wBAAa,CAAC,QAAQ,CAAC,EAAE;IAChI,EAAE,QAAQ,EAAE,2BAAgB,CAAC,SAAS,EAAQ,OAAO,EAAE,CAAC,wBAAa,CAAC,EAAE,EAAQ,wBAAa,CAAC,OAAO,EAAE,wBAAa,CAAC,QAAQ,CAAC,EAAE;IAChI,EAAE,QAAQ,EAAE,2BAAgB,CAAC,YAAY,EAAK,OAAO,EAAE,CAAC,wBAAa,CAAC,KAAK,EAAK,wBAAa,CAAC,OAAO,EAAE,wBAAa,CAAC,QAAQ,CAAC,EAAE;IAChI,EAAE,QAAQ,EAAE,2BAAgB,CAAC,cAAc,EAAG,OAAO,EAAE,CAAC,wBAAa,CAAC,OAAO,EAAG,wBAAa,CAAC,OAAO,EAAE,wBAAa,CAAC,QAAQ,CAAC,EAAE;IAChI,EAAE,QAAQ,EAAE,2BAAgB,CAAC,UAAU,EAAO,OAAO,EAAE,CAAC,wBAAa,CAAC,GAAG,EAAO,wBAAa,CAAC,OAAO,EAAE,wBAAa,CAAC,QAAQ,CAAC,EAAE;CACnI,CAAC;AAEF,kFAAkF;AAElF;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,qBAAqB,CAAC,IAA4B;IAC9D,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,+BAAc,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC9F,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAEzF,4EAA4E;IAE5E,MAAM,SAAS,GAAG,IAAI,yCAAmB,CAAC;QACtC,SAAS,EAAG,IAAI,CAAC,SAAS;QAC1B,SAAS,EAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC9C,QAAQ;QACR,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,GAAG;KAChB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,CACpB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACxC,QAAQ;QACR,IAAI,yCAAmB,CAAC;YACpB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YACpD,QAAQ;YACR,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,GAAG;SAChB,CAAC;KACL,CAAC,CACL,CAAC;IAEF,4EAA4E;IAE5E,MAAM,MAAM,GAAG,IAAI,yBAAW,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAE9D,4EAA4E;IAE5E,KAAK,UAAU,QAAQ,CAAC,YAAmC,EAAE;QACzD,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,6EAA6E;IAE7E,SAAS,aAAa,CAAC,SAAiB,EAAE,SAAoB;QAC1D,MAAM,KAAK,GAAG,IAAI,yBAAY,EAAE,CAAC;QAEjC,gCAAgC;QAChC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QAEvC,0BAA0B;QAC1B,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,GAAG,CAAC;YACpB,KAAK,CAAC,QAAQ,CACV,IAAA,uBAAU,EAAC;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,cAAc,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,6BAA6B;gBAC1G,KAAK,EAAE,cAAC,CAAC,MAAM,CAAC;oBACZ,KAAK,EAAE,cAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;iBACnD,CAAC;gBACF,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;aACtD,CAAC,CACL,CAAC;QACN,CAAC;QAED,iBAAiB;QACjB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QAE7C,mEAAmE;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACjE,IAAI,MAAM,EAAE,CAAC;YACT,KAAK,CAAC,QAAQ,CAAC,IAAA,mCAAoB,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,SAAS;QACT,MAAM,MAAM,GAAG,IAAI,0BAAa,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,GAAG,kCAAuB,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7E,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEzD,qBAAqB;QACrB,MAAM,MAAM,GAAG,IAAA,+BAAkB,EAAC;YAC9B,QAAQ,EAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;YACpF,QAAQ,EAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE;YACrF,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE;YACtF,SAAS,EAAG,EAAE,WAAW,EAAE,GAAG,EAAE;SACnC,CAAC,CAAC;QAEH,OAAO,IAAI,wBAAW,CAAC;YACnB,KAAK,EAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE;YAC3D,MAAM;YACN,KAAK;YACL,SAAS,EAAQ,IAAI,CAAC,SAAS;YAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,cAAc,EAAG,SAAS;YAC1B,SAAS;YACT,aAAa,EAAI,IAAI,CAAC,aAAa,IAAI,EAAE;YACzC,aAAa,EAAI,MAAM;YACvB,YAAY,EAAK,MAAM;YACvB,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,21 @@ export interface ObsidianRAGOptions {
24
24
  minScore?: number;
25
25
  /** Tags del frontmatter a excluir de la indexación. Default: ['skill'] */
26
26
  excludeTags?: string[];
27
+ /**
28
+ * Milisegundos de pausa entre batches durante index(). Un reindex grande (cientos
29
+ * de archivos) corre CPU-bound sostenido a través de embed() sin dar respiro al
30
+ * resto de la máquina; esta pausa le da al SO/otros procesos una ventana entre
31
+ * batches. Default: 300ms. 0 desactiva el pacing.
32
+ */
33
+ batchPacingMs?: number;
34
+ /**
35
+ * Cantidad de archivos por etapa. Cada vez que el reindex completa una etapa,
36
+ * pausa stagePacingMs en vez del batchPacingMs normal — un respiro más largo y
37
+ * periódico además del pacing entre batches, para vaults muy grandes. Default: 50.
38
+ */
39
+ stageSize?: number;
40
+ /** Milisegundos de pausa al completar cada etapa (stageSize archivos). Default: 3000ms. */
41
+ stagePacingMs?: number;
27
42
  }
28
43
  export declare class ObsidianRAGProvider {
29
44
  private readonly embedder;
@@ -31,6 +46,9 @@ export declare class ObsidianRAGProvider {
31
46
  private readonly indexer;
32
47
  private readonly topK;
33
48
  private readonly minScore;
49
+ private readonly batchPacingMs;
50
+ private readonly stageSize;
51
+ private readonly stagePacingMs;
34
52
  private indexed;
35
53
  constructor(opts: ObsidianRAGOptions);
36
54
  /**
@@ -39,6 +57,10 @@ export declare class ObsidianRAGProvider {
39
57
  */
40
58
  index(opts?: {
41
59
  verbose?: boolean;
60
+ onProgress?: (p: {
61
+ processed: number;
62
+ total: number;
63
+ }) => void;
42
64
  }): Promise<{
43
65
  indexed: number;
44
66
  removed: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ObsidianRAGProvider.d.ts","sourceRoot":"","sources":["../../src/rag/ObsidianRAGProvider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAKlE,mDAAmD;AACnD,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB;IAC/B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAID,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,kBAAkB;IA2BpC;;;OAGG;IACG,KAAK,CAAC,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAwC5F,oDAAoD;IAC9C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2B3D,8EAA8E;IAC9E,UAAU,IAAI,cAAc;IAkB5B,IAAI,UAAU,IAAI,MAAM,CAEvB;CACJ"}
1
+ {"version":3,"file":"ObsidianRAGProvider.d.ts","sourceRoot":"","sources":["../../src/rag/ObsidianRAGProvider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAKlE,mDAAmD;AACnD,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB;IAC/B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAWD,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,kBAAkB;IA8BpC;;;OAGG;IACG,KAAK,CACP,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAA;KAAO,GACjG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAgEhD,oDAAoD;IAC9C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2B3D,8EAA8E;IAC9E,UAAU,IAAI,cAAc;IAkB5B,IAAI,UAAU,IAAI,MAAM,CAEvB;CACJ"}
@@ -41,12 +41,21 @@ const OllamaEmbedder_1 = require("./OllamaEmbedder");
41
41
  const VectorStore_1 = require("./VectorStore");
42
42
  const VaultIndexer_1 = require("./VaultIndexer");
43
43
  const BATCH_SIZE = 10;
44
+ const DEFAULT_BATCH_PACING_MS = 300;
45
+ const DEFAULT_STAGE_SIZE = 50;
46
+ const DEFAULT_STAGE_PACING_MS = 3000;
47
+ function sleep(ms) {
48
+ return new Promise(resolve => setTimeout(resolve, ms));
49
+ }
44
50
  class ObsidianRAGProvider {
45
51
  embedder;
46
52
  store;
47
53
  indexer;
48
54
  topK;
49
55
  minScore;
56
+ batchPacingMs;
57
+ stageSize;
58
+ stagePacingMs;
50
59
  indexed = false;
51
60
  constructor(opts) {
52
61
  if (opts.embedder) {
@@ -66,6 +75,9 @@ class ObsidianRAGProvider {
66
75
  });
67
76
  this.topK = opts.topK ?? 5;
68
77
  this.minScore = opts.minScore ?? 0.3;
78
+ this.batchPacingMs = opts.batchPacingMs ?? DEFAULT_BATCH_PACING_MS;
79
+ this.stageSize = opts.stageSize ?? DEFAULT_STAGE_SIZE;
80
+ this.stagePacingMs = opts.stagePacingMs ?? DEFAULT_STAGE_PACING_MS;
69
81
  }
70
82
  /**
71
83
  * Indexa el vault de forma incremental.
@@ -81,18 +93,40 @@ class ObsidianRAGProvider {
81
93
  let indexed = 0;
82
94
  for (let i = 0; i < toIndex.length; i += BATCH_SIZE) {
83
95
  const batch = toIndex.slice(i, i + BATCH_SIZE);
96
+ const processedSoFar = Math.min(i + BATCH_SIZE, toIndex.length);
84
97
  const rawChunksBatch = await Promise.all(batch.map(f => this.indexer.buildChunks(f.filePath, f.mtime)));
85
98
  const allRaw = rawChunksBatch.flat();
86
- if (allRaw.length === 0)
99
+ if (allRaw.length === 0) {
100
+ opts.onProgress?.({ processed: processedSoFar, total: toIndex.length });
87
101
  continue;
102
+ }
88
103
  const embeddings = await this.embedder.embed(allRaw.map(c => c.text));
89
104
  const vectorChunks = allRaw.map((raw, idx) => this.indexer.toVectorChunk(raw, embeddings[idx] ?? []));
90
105
  for (const f of batch)
91
106
  this.store.removeFile(f.filePath);
92
107
  this.store.addChunks(vectorChunks);
93
108
  indexed += vectorChunks.length;
109
+ // Checkpoint per batch, not just at the end — a crash mid-index (e.g. a large
110
+ // first-time vault reindex) must resume from here instead of re-embedding
111
+ // everything from scratch. Mirrors the manifest-per-batch pattern already used
112
+ // for curate_path.
113
+ await this.store.save();
114
+ opts.onProgress?.({ processed: processedSoFar, total: toIndex.length });
94
115
  if (opts.verbose) {
95
- console.log(`[RAG] Indexados ${Math.min(i + BATCH_SIZE, toIndex.length)}/${toIndex.length} archivos`);
116
+ console.log(`[RAG] Indexados ${processedSoFar}/${toIndex.length} archivos`);
117
+ }
118
+ // Pace between batches so a large reindex doesn't hold the CPU/memory
119
+ // sustained for its whole duration. Skipped after the last batch. Every
120
+ // stageSize files, take the longer stage pause instead of the regular one —
121
+ // a periodic deeper breather on top of the per-batch pacing, for large vaults.
122
+ const hasMoreBatches = i + BATCH_SIZE < toIndex.length;
123
+ if (hasMoreBatches) {
124
+ const processedSoFar = i + BATCH_SIZE;
125
+ const crossedStageBoundary = Math.floor(processedSoFar / this.stageSize) >
126
+ Math.floor((processedSoFar - BATCH_SIZE) / this.stageSize);
127
+ const pauseMs = crossedStageBoundary ? this.stagePacingMs : this.batchPacingMs;
128
+ if (pauseMs > 0)
129
+ await sleep(pauseMs);
96
130
  }
97
131
  }
98
132
  await this.store.save();
@@ -1 +1 @@
1
- {"version":3,"file":"ObsidianRAGProvider.js","sourceRoot":"","sources":["../../src/rag/ObsidianRAGProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObsidianRAGProvider.js","sourceRoot":"","sources":["../../src/rag/ObsidianRAGProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,uCAAyB;AACzB,4DAA4D;AAE5D,qDAAyG;AACzG,+CAA4C;AAC5C,iDAA8C;AA6C9C,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC,SAAS,KAAK,CAAC,EAAU;IACrB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAa,mBAAmB;IACX,QAAQ,CAAW;IACnB,KAAK,CAAc;IACnB,OAAO,CAAe;IACtB,IAAI,CAAS;IACb,QAAQ,CAAS;IACjB,aAAa,CAAS;IACtB,SAAS,CAAS;IAClB,aAAa,CAAS;IAC/B,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,IAAwB;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,0CAAyB,CAAC;YAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,IAAI,2CAA0B,CAAC;YAChE,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAC9B,EAAE,CAAC,OAAO,EAAE,EACZ,WAAW,EACX,KAAK,EACL,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAC1C,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,SAAS,IAAI,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEtF,IAAI,CAAC,OAAO,GAAG,IAAI,2BAAY,CAAC;YAC5B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,uBAAuB,CAAC;QACnE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,uBAAuB,CAAC;IACvE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CACP,OAA8F,EAAE;QAEhG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAE9E,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;YAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAChE,CAAC;YAEF,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxE,SAAS;YACb,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAEtE,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACzC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CACzD,CAAC;YAEF,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACnC,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC;YAE/B,8EAA8E;YAC9E,0EAA0E;YAC1E,+EAA+E;YAC/E,mBAAmB;YACnB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAExE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,mBAAmB,cAAc,IAAI,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;YAChF,CAAC;YAED,sEAAsE;YACtE,wEAAwE;YACxE,4EAA4E;YAC5E,+EAA+E;YAC/E,MAAM,cAAc,GAAG,CAAC,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;YACvD,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,cAAc,GAAG,CAAC,GAAG,UAAU,CAAC;gBACtC,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;oBACpE,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/D,MAAM,OAAO,GAAG,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC/E,IAAI,OAAO,GAAG,CAAC;oBAAE,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IACjD,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAa;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,oFAAoF,CAAC;QAChG,CAAC;QAED,OAAO,QAAQ;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACV,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,OAAO;gBACH,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,KAAK,OAAO;gBACtF,WAAW,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrE,KAAK,CAAC,IAAI;aACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC;aACD,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,8EAA8E;IAC9E,UAAU;QACN,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO,IAAA,uBAAU,EAAC;YACd,IAAI,EAAE,kBAAkB;YACxB,WAAW,EACP,wDAAwD;gBACxD,qGAAqG;YACzG,KAAK,EAAE,cAAC,CAAC,MAAM,CAAC;gBACZ,KAAK,EAAE,cAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;gBAC7E,KAAK,EAAE,cAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;qBAC5C,QAAQ,CAAC,wCAAwC,CAAC;aAC1D,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;gBAChC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3B,CAAC;CACJ;AAjKD,kDAiKC"}
@@ -5,19 +5,41 @@
5
5
  * 1. Tokenising text into lowercase alphanumeric tokens
6
6
  * 2. Mapping each token to a bucket via djb2 hash % DIMS
7
7
  * 3. Accumulating term-frequency counts in the bucket
8
- * 4. L2-normalising to a unit vector
8
+ * 4. Weighting each bucket by inverse document frequency (rarer buckets score higher)
9
+ * 5. L2-normalising to a unit vector
9
10
  *
10
11
  * Not semantically equivalent to transformer embeddings, but clusters texts
11
12
  * with shared vocabulary close together — sufficient to find notes whose
12
- * content matches the query's key terms.
13
+ * content matches the query's key terms, and the IDF term keeps common
14
+ * words (the, and, sistema, ...) from drowning out the words that actually
15
+ * distinguish one note from another.
13
16
  *
14
17
  * Use this when Ollama is not available (dev, CI, pilot). For production,
15
18
  * prefer OllamaEmbedder with nomic-embed-text for semantic accuracy.
16
19
  */
17
20
  import type { Embedder } from './ObsidianRAGProvider';
18
21
  export declare class SimpleEmbedder implements Embedder {
22
+ private readonly statsPath?;
19
23
  readonly model = "simple-tfidf-256";
24
+ private docCount;
25
+ private readonly docFreq;
26
+ private loaded;
27
+ /**
28
+ * @param statsPath Optional path to persist document-frequency stats across
29
+ * process restarts. Without it, IDF starts fresh (pure TF) every time the
30
+ * process starts and improves as more text gets embedded during that run.
31
+ */
32
+ constructor(statsPath?: string | undefined);
33
+ private ensureLoaded;
34
+ private persist;
35
+ /** Smoothed IDF — always positive, well-defined even when a bucket has never been seen (df=0). */
36
+ private idf;
37
+ private vectorise;
38
+ /** Registers `text` as a corpus document (updates docFreq/docCount), then vectorises it against the updated stats. */
39
+ private observe;
40
+ /** Indexing path — each text counts toward the corpus's document-frequency stats. */
20
41
  embed(texts: string[]): Promise<number[][]>;
42
+ /** Query path — a search query is not a new corpus document, so it's weighted read-only against current stats, never counted. */
21
43
  embedOne(text: string): Promise<number[]>;
22
44
  }
23
45
  //# sourceMappingURL=SimpleEmbedder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleEmbedder.d.ts","sourceRoot":"","sources":["../../src/rag/SimpleEmbedder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAyCtD,qBAAa,cAAe,YAAW,QAAQ;IAC3C,QAAQ,CAAC,KAAK,sBAAsB;IAE9B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAI3C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAGlD"}
1
+ {"version":3,"file":"SimpleEmbedder.d.ts","sourceRoot":"","sources":["../../src/rag/SimpleEmbedder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AA4BtD,qBAAa,cAAe,YAAW,QAAQ;IAY/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAXvC,QAAQ,CAAC,KAAK,sBAAsB;IAEpC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;OAIG;gBAC0B,SAAS,CAAC,EAAE,MAAM,YAAA;YAEjC,YAAY;YAgBZ,OAAO;IAUrB,kGAAkG;IAClG,OAAO,CAAC,GAAG;IAKX,OAAO,CAAC,SAAS;IAuBjB,sHAAsH;IACtH,OAAO,CAAC,OAAO;IAOf,qFAAqF;IAC/E,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAOjD,iIAAiI;IAC3H,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAIlD"}
@@ -6,17 +6,54 @@
6
6
  * 1. Tokenising text into lowercase alphanumeric tokens
7
7
  * 2. Mapping each token to a bucket via djb2 hash % DIMS
8
8
  * 3. Accumulating term-frequency counts in the bucket
9
- * 4. L2-normalising to a unit vector
9
+ * 4. Weighting each bucket by inverse document frequency (rarer buckets score higher)
10
+ * 5. L2-normalising to a unit vector
10
11
  *
11
12
  * Not semantically equivalent to transformer embeddings, but clusters texts
12
13
  * with shared vocabulary close together — sufficient to find notes whose
13
- * content matches the query's key terms.
14
+ * content matches the query's key terms, and the IDF term keeps common
15
+ * words (the, and, sistema, ...) from drowning out the words that actually
16
+ * distinguish one note from another.
14
17
  *
15
18
  * Use this when Ollama is not available (dev, CI, pilot). For production,
16
19
  * prefer OllamaEmbedder with nomic-embed-text for semantic accuracy.
17
20
  */
21
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ var desc = Object.getOwnPropertyDescriptor(m, k);
24
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
25
+ desc = { enumerable: true, get: function() { return m[k]; } };
26
+ }
27
+ Object.defineProperty(o, k2, desc);
28
+ }) : (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ o[k2] = m[k];
31
+ }));
32
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
33
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
34
+ }) : function(o, v) {
35
+ o["default"] = v;
36
+ });
37
+ var __importStar = (this && this.__importStar) || (function () {
38
+ var ownKeys = function(o) {
39
+ ownKeys = Object.getOwnPropertyNames || function (o) {
40
+ var ar = [];
41
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
42
+ return ar;
43
+ };
44
+ return ownKeys(o);
45
+ };
46
+ return function (mod) {
47
+ if (mod && mod.__esModule) return mod;
48
+ var result = {};
49
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
50
+ __setModuleDefault(result, mod);
51
+ return result;
52
+ };
53
+ })();
18
54
  Object.defineProperty(exports, "__esModule", { value: true });
19
55
  exports.SimpleEmbedder = void 0;
56
+ const fs = __importStar(require("fs/promises"));
20
57
  const DIMS = 256;
21
58
  function djb2(str) {
22
59
  let h = 5381;
@@ -33,32 +70,94 @@ function tokenise(text) {
33
70
  .split(/[^a-z0-9]+/)
34
71
  .filter(t => t.length > 2); // skip 1-2 char noise tokens
35
72
  }
36
- function vectorise(text) {
37
- const vec = new Array(DIMS).fill(0);
38
- const tokens = tokenise(text);
39
- if (tokens.length === 0)
73
+ class SimpleEmbedder {
74
+ statsPath;
75
+ model = 'simple-tfidf-256';
76
+ docCount = 0;
77
+ docFreq = new Map();
78
+ loaded = false;
79
+ /**
80
+ * @param statsPath Optional path to persist document-frequency stats across
81
+ * process restarts. Without it, IDF starts fresh (pure TF) every time the
82
+ * process starts and improves as more text gets embedded during that run.
83
+ */
84
+ constructor(statsPath) {
85
+ this.statsPath = statsPath;
86
+ }
87
+ async ensureLoaded() {
88
+ if (this.loaded)
89
+ return;
90
+ this.loaded = true;
91
+ if (!this.statsPath)
92
+ return;
93
+ try {
94
+ const raw = await fs.readFile(this.statsPath, 'utf-8');
95
+ const data = JSON.parse(raw);
96
+ this.docCount = data.docCount;
97
+ for (const [bucket, count] of Object.entries(data.docFreq)) {
98
+ this.docFreq.set(Number(bucket), count);
99
+ }
100
+ }
101
+ catch {
102
+ // No stats file yet — start fresh.
103
+ }
104
+ }
105
+ async persist() {
106
+ if (!this.statsPath)
107
+ return;
108
+ const data = {
109
+ version: 1,
110
+ docCount: this.docCount,
111
+ docFreq: Object.fromEntries(this.docFreq),
112
+ };
113
+ await fs.writeFile(this.statsPath, JSON.stringify(data), 'utf-8');
114
+ }
115
+ /** Smoothed IDF — always positive, well-defined even when a bucket has never been seen (df=0). */
116
+ idf(bucket) {
117
+ const df = this.docFreq.get(bucket) ?? 0;
118
+ return Math.log((this.docCount + 1) / (df + 1)) + 1;
119
+ }
120
+ vectorise(text) {
121
+ const vec = new Array(DIMS).fill(0);
122
+ const tokens = tokenise(text);
123
+ if (tokens.length === 0)
124
+ return vec;
125
+ for (const t of tokens) {
126
+ vec[djb2(t) % DIMS] += 1;
127
+ }
128
+ // Weight each occupied bucket by IDF, then L2-normalise.
129
+ let norm = 0;
130
+ for (let i = 0; i < DIMS; i++) {
131
+ if (vec[i] > 0)
132
+ vec[i] *= this.idf(i);
133
+ norm += vec[i] * vec[i];
134
+ }
135
+ norm = Math.sqrt(norm);
136
+ if (norm > 0) {
137
+ for (let i = 0; i < DIMS; i++)
138
+ vec[i] /= norm;
139
+ }
40
140
  return vec;
41
- for (const t of tokens) {
42
- vec[djb2(t) % DIMS] += 1;
43
141
  }
44
- // L2 normalise
45
- let norm = 0;
46
- for (const v of vec)
47
- norm += v * v;
48
- norm = Math.sqrt(norm);
49
- if (norm > 0) {
50
- for (let i = 0; i < DIMS; i++)
51
- vec[i] /= norm;
142
+ /** Registers `text` as a corpus document (updates docFreq/docCount), then vectorises it against the updated stats. */
143
+ observe(text) {
144
+ const buckets = new Set(tokenise(text).map(t => djb2(t) % DIMS));
145
+ for (const b of buckets)
146
+ this.docFreq.set(b, (this.docFreq.get(b) ?? 0) + 1);
147
+ this.docCount++;
148
+ return this.vectorise(text);
52
149
  }
53
- return vec;
54
- }
55
- class SimpleEmbedder {
56
- model = 'simple-tfidf-256';
150
+ /** Indexing path — each text counts toward the corpus's document-frequency stats. */
57
151
  async embed(texts) {
58
- return texts.map(vectorise);
152
+ await this.ensureLoaded();
153
+ const vectors = texts.map(t => this.observe(t));
154
+ await this.persist();
155
+ return vectors;
59
156
  }
157
+ /** Query path — a search query is not a new corpus document, so it's weighted read-only against current stats, never counted. */
60
158
  async embedOne(text) {
61
- return vectorise(text);
159
+ await this.ensureLoaded();
160
+ return this.vectorise(text);
62
161
  }
63
162
  }
64
163
  exports.SimpleEmbedder = SimpleEmbedder;
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleEmbedder.js","sourceRoot":"","sources":["../../src/rag/SimpleEmbedder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAIH,MAAM,IAAI,GAAG,GAAG,CAAC;AAEjB,SAAS,IAAI,CAAC,GAAW;IACrB,IAAI,CAAC,GAAG,IAAI,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC1B,OAAO,IAAI;SACN,WAAW,EAAE;SACb,SAAS,CAAC,KAAK,CAAC;SAChB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAG,mBAAmB;SAC3C,KAAK,CAAC,YAAY,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAS,6BAA6B;AACzE,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC3B,MAAM,GAAG,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAEpC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,eAAe;IACf,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;YAAE,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAClD,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAa,cAAc;IACd,KAAK,GAAG,kBAAkB,CAAC;IAEpC,KAAK,CAAC,KAAK,CAAC,KAAe;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACvB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACJ;AAVD,wCAUC"}
1
+ {"version":3,"file":"SimpleEmbedder.js","sourceRoot":"","sources":["../../src/rag/SimpleEmbedder.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { FailureRecord, DetectedPattern, ManifestPolicyRule } from '@backendkit-labs/agent-core/dist/reflection/types';
1
+ import type { FailureRecord, DetectedPattern, ManifestPolicyRule } from '@backendkit-labs/agent-core/reflection';
2
2
  import type { GateRecord } from '../flow/ComplianceGate.js';
3
3
  export interface EnterpriseReflectionOptions {
4
4
  /** Absolute path to the Obsidian vault. Generated manifest lives inside it. */
@@ -1 +1 @@
1
- {"version":3,"file":"EnterpriseReflection.d.ts","sourceRoot":"","sources":["../../src/reflection/EnterpriseReflection.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAC5H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAM5D,MAAM,WAAW,2BAA2B;IACxC,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAI,eAAe,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACtB;AAID;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAW;IACzC,OAAO,CAAU,WAAW,CAAY;IAIxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;gBAEtD,IAAI,EAAE,2BAA2B;IA0B7C;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBjC;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAQrE;;;OAGG;IACG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA+BzD;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAOtD;;;;;OAKG;IACG,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgB/F;;;OAGG;IACG,eAAe,CACjB,OAAO,EAAG,eAAe,EACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAI,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAoBhB;;;OAGG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAQ9E;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtF;;;;;;OAMG;IACG,kBAAkB,CAAC,IAAI,GAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAanH;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBnF,KAAK;IAOX,OAAO,CAAC,iBAAiB;YAMX,gBAAgB;CAgBjC"}
1
+ {"version":3,"file":"EnterpriseReflection.d.ts","sourceRoot":"","sources":["../../src/reflection/EnterpriseReflection.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAM5D,MAAM,WAAW,2BAA2B;IACxC,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAI,eAAe,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACtB;AAID;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAW;IACzC,OAAO,CAAU,WAAW,CAAY;IAIxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;gBAEtD,IAAI,EAAE,2BAA2B;IA0B7C;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBjC;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAQrE;;;OAGG;IACG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA+BzD;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAOtD;;;;;OAKG;IACG,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgB/F;;;OAGG;IACG,eAAe,CACjB,OAAO,EAAG,eAAe,EACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAI,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAoBhB;;;OAGG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAQ9E;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtF;;;;;;OAMG;IACG,kBAAkB,CAAC,IAAI,GAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAanH;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBnF,KAAK;IAOX,OAAO,CAAC,iBAAiB;YAMX,gBAAgB;CAgBjC"}
@@ -1,5 +1,5 @@
1
1
  import type { ReflectionEngine } from '@backendkit-labs/agent-core';
2
- import type { FailureRecord } from '@backendkit-labs/agent-core/dist/reflection/types';
2
+ import type { FailureRecord } from '@backendkit-labs/agent-core/reflection';
3
3
  import type { GateRecord } from '../flow/ComplianceGate.js';
4
4
  export interface GateBridgeResult {
5
5
  incidents: FailureRecord[];
@@ -1 +1 @@
1
- {"version":3,"file":"GateReflectionBridge.d.ts","sourceRoot":"","sources":["../../src/reflection/GateReflectionBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AA8B5D,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAG,aAAa,EAAE,CAAC;IAC5B,SAAS,EAAG,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAG,gBAAgB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAgE3B"}
1
+ {"version":3,"file":"GateReflectionBridge.d.ts","sourceRoot":"","sources":["../../src/reflection/GateReflectionBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AA8B5D,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAG,aAAa,EAAE,CAAC;IAC5B,SAAS,EAAG,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAG,gBAAgB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAgE3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backendkit-labs/agent-enterprise",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Business agents with local LLM and RAG knowledge base for agent-core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -16,7 +16,7 @@
16
16
  "prepublishOnly": "npm run build"
17
17
  },
18
18
  "dependencies": {
19
- "@backendkit-labs/agent-core": "*",
19
+ "@backendkit-labs/agent-core": "^0.24.0",
20
20
  "yaml": "^2.4.0"
21
21
  },
22
22
  "optionalDependencies": {