@monoes/monograph 2.24.1 → 2.25.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.
Files changed (103) hide show
  1. package/dist/src/embeddings/store.d.ts +38 -0
  2. package/dist/src/embeddings/store.d.ts.map +1 -0
  3. package/dist/src/embeddings/store.js +147 -0
  4. package/dist/src/embeddings/store.js.map +1 -0
  5. package/dist/src/embeddings/transformers-embedder.d.ts +19 -0
  6. package/dist/src/embeddings/transformers-embedder.d.ts.map +1 -0
  7. package/dist/src/embeddings/transformers-embedder.js +48 -0
  8. package/dist/src/embeddings/transformers-embedder.js.map +1 -0
  9. package/dist/src/index.d.ts +4 -0
  10. package/dist/src/index.d.ts.map +1 -1
  11. package/dist/src/index.js +4 -0
  12. package/dist/src/index.js.map +1 -1
  13. package/dist/src/mcp-tools/brief.d.ts +40 -0
  14. package/dist/src/mcp-tools/brief.d.ts.map +1 -0
  15. package/dist/src/mcp-tools/brief.js +65 -0
  16. package/dist/src/mcp-tools/brief.js.map +1 -0
  17. package/dist/src/mcp-tools/context.d.ts +9 -0
  18. package/dist/src/mcp-tools/context.d.ts.map +1 -1
  19. package/dist/src/mcp-tools/context.js +20 -0
  20. package/dist/src/mcp-tools/context.js.map +1 -1
  21. package/dist/src/mcp-tools/impact.d.ts +9 -0
  22. package/dist/src/mcp-tools/impact.d.ts.map +1 -1
  23. package/dist/src/mcp-tools/impact.js +37 -0
  24. package/dist/src/mcp-tools/impact.js.map +1 -1
  25. package/dist/src/mcp-tools/index.d.ts +1 -0
  26. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  27. package/dist/src/mcp-tools/index.js +1 -0
  28. package/dist/src/mcp-tools/index.js.map +1 -1
  29. package/dist/src/pipeline/manifest.d.ts +34 -0
  30. package/dist/src/pipeline/manifest.d.ts.map +1 -0
  31. package/dist/src/pipeline/manifest.js +38 -0
  32. package/dist/src/pipeline/manifest.js.map +1 -0
  33. package/dist/src/pipeline/orchestrator.d.ts.map +1 -1
  34. package/dist/src/pipeline/orchestrator.js +15 -0
  35. package/dist/src/pipeline/orchestrator.js.map +1 -1
  36. package/dist/src/pipeline/phases/agent-registry.d.ts +33 -0
  37. package/dist/src/pipeline/phases/agent-registry.d.ts.map +1 -0
  38. package/dist/src/pipeline/phases/agent-registry.js +153 -0
  39. package/dist/src/pipeline/phases/agent-registry.js.map +1 -0
  40. package/dist/src/pipeline/phases/cross-file.d.ts.map +1 -1
  41. package/dist/src/pipeline/phases/cross-file.js +8 -2
  42. package/dist/src/pipeline/phases/cross-file.js.map +1 -1
  43. package/dist/src/pipeline/phases/god-nodes.d.ts +8 -0
  44. package/dist/src/pipeline/phases/god-nodes.d.ts.map +1 -1
  45. package/dist/src/pipeline/phases/god-nodes.js +8 -0
  46. package/dist/src/pipeline/phases/god-nodes.js.map +1 -1
  47. package/dist/src/pipeline/phases/parse.d.ts.map +1 -1
  48. package/dist/src/pipeline/phases/parse.js +18 -2
  49. package/dist/src/pipeline/phases/parse.js.map +1 -1
  50. package/dist/src/pipeline/phases/summaries.d.ts +22 -0
  51. package/dist/src/pipeline/phases/summaries.d.ts.map +1 -0
  52. package/dist/src/pipeline/phases/summaries.js +196 -0
  53. package/dist/src/pipeline/phases/summaries.js.map +1 -0
  54. package/dist/src/pipeline/phases/tests-edges.d.ts +16 -0
  55. package/dist/src/pipeline/phases/tests-edges.d.ts.map +1 -0
  56. package/dist/src/pipeline/phases/tests-edges.js +44 -0
  57. package/dist/src/pipeline/phases/tests-edges.js.map +1 -0
  58. package/dist/src/pipeline/runner.d.ts.map +1 -1
  59. package/dist/src/pipeline/runner.js +5 -0
  60. package/dist/src/pipeline/runner.js.map +1 -1
  61. package/dist/src/search/eval.d.ts +44 -0
  62. package/dist/src/search/eval.d.ts.map +1 -0
  63. package/dist/src/search/eval.js +35 -0
  64. package/dist/src/search/eval.js.map +1 -0
  65. package/dist/src/search/fused-search.d.ts +22 -0
  66. package/dist/src/search/fused-search.d.ts.map +1 -0
  67. package/dist/src/search/fused-search.js +103 -0
  68. package/dist/src/search/fused-search.js.map +1 -0
  69. package/dist/src/search/hybrid-query.d.ts +29 -2
  70. package/dist/src/search/hybrid-query.d.ts.map +1 -1
  71. package/dist/src/search/hybrid-query.js +113 -2
  72. package/dist/src/search/hybrid-query.js.map +1 -1
  73. package/dist/src/staleness/git-staleness.d.ts.map +1 -1
  74. package/dist/src/staleness/git-staleness.js +2 -0
  75. package/dist/src/staleness/git-staleness.js.map +1 -1
  76. package/dist/src/storage/db.d.ts.map +1 -1
  77. package/dist/src/storage/db.js +3 -2
  78. package/dist/src/storage/db.js.map +1 -1
  79. package/dist/src/storage/fts-store-hybrid.d.ts +2 -2
  80. package/dist/src/storage/fts-store-hybrid.d.ts.map +1 -1
  81. package/dist/src/storage/fts-store-hybrid.js +4 -3
  82. package/dist/src/storage/fts-store-hybrid.js.map +1 -1
  83. package/dist/src/storage/fts-store-search.d.ts +14 -1
  84. package/dist/src/storage/fts-store-search.d.ts.map +1 -1
  85. package/dist/src/storage/fts-store-search.js +25 -8
  86. package/dist/src/storage/fts-store-search.js.map +1 -1
  87. package/dist/src/storage/fts-store-terms.d.ts +1 -0
  88. package/dist/src/storage/fts-store-terms.d.ts.map +1 -1
  89. package/dist/src/storage/fts-store-terms.js +1 -1
  90. package/dist/src/storage/fts-store-terms.js.map +1 -1
  91. package/dist/src/storage/schema.d.ts +14 -2
  92. package/dist/src/storage/schema.d.ts.map +1 -1
  93. package/dist/src/storage/schema.js +22 -5
  94. package/dist/src/storage/schema.js.map +1 -1
  95. package/dist/src/storage/summary-search.d.ts +13 -0
  96. package/dist/src/storage/summary-search.d.ts.map +1 -0
  97. package/dist/src/storage/summary-search.js +58 -0
  98. package/dist/src/storage/summary-search.js.map +1 -0
  99. package/dist/src/types.d.ts +2 -2
  100. package/dist/src/types.d.ts.map +1 -1
  101. package/dist/src/types.js.map +1 -1
  102. package/dist/tsconfig.tsbuildinfo +1 -1
  103. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"god-nodes.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/god-nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"god-nodes.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/god-nodes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/parse.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,WAAW,CA4KjD,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAU7E;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB9E"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/parse.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAKD,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,WAAW,CAmMjD,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAU7E;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB9E"}
@@ -6,6 +6,8 @@ import { deleteEdgesForFile, insertEdges } from '../../storage/edge-store.js';
6
6
  import { deleteNodesForFile, insertNodes } from '../../storage/node-store.js';
7
7
  import { symbolId } from '../../types.js';
8
8
  import { extractVariables, variableToNode } from './variables.js';
9
+ /** Rows per insert call; one progress event is emitted per chunk. */
10
+ const INSERT_CHUNK = 2000;
9
11
  export const parsePhase = {
10
12
  name: 'parse',
11
13
  deps: ['structure'],
@@ -139,13 +141,27 @@ export const parsePhase = {
139
141
  // removed symbol's old row would survive forever (INSERT OR REPLACE only
140
142
  // overwrites rows whose id still matches; it never deletes rows whose id
141
143
  // disappeared because the symbol was renamed).
144
+ // Heartbeat: a large cached insert can run for minutes with no other output
145
+ // (#680), so report every chunk — a healthy build must not look hung.
146
+ const reportInsert = (kind, done, total) => ctx.onProgress?.({
147
+ phase: 'parse',
148
+ filesProcessed: processed,
149
+ totalFiles: fileNodes.length,
150
+ message: `inserted ${done}/${total} ${kind}`,
151
+ });
142
152
  const writeAll = db.transaction(() => {
143
153
  for (const filePath of staleFilePaths) {
144
154
  deleteEdgesForFile(db, filePath);
145
155
  deleteNodesForFile(db, filePath);
146
156
  }
147
- insertNodes(db, nodesToInsert);
148
- insertEdges(db, edgesToInsert);
157
+ for (let i = 0; i < nodesToInsert.length; i += INSERT_CHUNK) {
158
+ insertNodes(db, nodesToInsert.slice(i, i + INSERT_CHUNK));
159
+ reportInsert('nodes', Math.min(i + INSERT_CHUNK, nodesToInsert.length), nodesToInsert.length);
160
+ }
161
+ for (let i = 0; i < edgesToInsert.length; i += INSERT_CHUNK) {
162
+ insertEdges(db, edgesToInsert.slice(i, i + INSERT_CHUNK));
163
+ reportInsert('edges', Math.min(i + INSERT_CHUNK, edgesToInsert.length), edgesToInsert.length);
164
+ }
149
165
  });
150
166
  writeAll();
151
167
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/parse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { PipelinePhase } from '../types.js';
2
+ /** "pickAgents" / "pick_agents" / "pick-agents.ts" → "pick Agents" words. */
3
+ export declare function splitWords(identifier: string): string;
4
+ /**
5
+ * The comment block directly above a 1-based `startLine` (JSDoc, `//`, `///`,
6
+ * `#`), skipping decorator/attribute lines; for a Python-style `def ...:` with
7
+ * no comment above, the docstring that follows it.
8
+ */
9
+ export declare function extractLeadingComment(lines: string[], startLine: number): string;
10
+ /** The first comment block near the top of a file (its stated purpose). */
11
+ export declare function extractFileHeader(lines: string[]): string;
12
+ /** A markdown document's title and opening paragraph — what it says it is about. */
13
+ export declare function extractMarkdownLead(lines: string[]): string;
14
+ /** A bounded excerpt of a markdown document's body (front matter and fenced code dropped). */
15
+ export declare function extractMarkdownBody(lines: string[]): string;
16
+ /** Words a person would use to describe a symbol: its name, location and comment. */
17
+ export declare function buildSummaryText(name: string, filePath: string | null, comment: string): string;
18
+ /** Rebuilds `node_summaries_fts` for every code symbol and file in the graph. */
19
+ export declare const summariesPhase: PipelinePhase<{
20
+ summarized: number;
21
+ }>;
22
+ //# sourceMappingURL=summaries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summaries.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/summaries.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAOrD;AAaD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CA0BhF;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAazD;AAUD,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAsB3D;AAED,8FAA8F;AAC9F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAe3D;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAK/F;AAED,iFAAiF;AACjF,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAsEhE,CAAC"}
@@ -0,0 +1,196 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { basename, dirname, join } from 'node:path';
3
+ import { CODE_SCOPE_LABELS } from '../../search/hybrid-query.js';
4
+ import { definitionText } from './agent-registry.js';
5
+ const MAX_COMMENT_CHARS = 300;
6
+ const HEADER_SCAN_LINES = 40;
7
+ /** Bounded body excerpt indexed per document so body-only words are searchable (#698). */
8
+ const MAX_DOC_BODY_CHARS = 4000;
9
+ /** "pickAgents" / "pick_agents" / "pick-agents.ts" → "pick Agents" words. */
10
+ export function splitWords(identifier) {
11
+ return identifier
12
+ .replace(/\.[A-Za-z0-9]+$/, '')
13
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
14
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')
15
+ .replace(/[_\-./\\]+/g, ' ')
16
+ .trim();
17
+ }
18
+ function cleanCommentLine(line) {
19
+ return line
20
+ .trim()
21
+ .replace(/^\/\*\*?|\*\/$/g, '')
22
+ .replace(/^\/\/\/?!?|^#+|^\*+/g, '')
23
+ .replace(/@\w+\s*(\{[^}]*\})?/g, ' ')
24
+ .trim();
25
+ }
26
+ const isCommentLine = (l) => /^(\/\/|\/\*|\*|#(?!\[)|--|""")/.test(l.trim());
27
+ /**
28
+ * The comment block directly above a 1-based `startLine` (JSDoc, `//`, `///`,
29
+ * `#`), skipping decorator/attribute lines; for a Python-style `def ...:` with
30
+ * no comment above, the docstring that follows it.
31
+ */
32
+ export function extractLeadingComment(lines, startLine) {
33
+ let i = startLine - 2;
34
+ while (i >= 0 && /^\s*(@|#\[)/.test(lines[i]))
35
+ i--;
36
+ const block = [];
37
+ while (i >= 0 && lines[i].trim() !== '' && isCommentLine(lines[i])) {
38
+ block.unshift(lines[i]);
39
+ i--;
40
+ }
41
+ let text = block.map(cleanCommentLine).filter(Boolean).join(' ');
42
+ if (!text) {
43
+ const def = lines[startLine - 1] ?? '';
44
+ const next = (lines[startLine] ?? '').trim();
45
+ const m = def.trimEnd().endsWith(':') && /^[rRuU]?("""|''')/.exec(next);
46
+ if (m) {
47
+ const quote = m[1];
48
+ const parts = [];
49
+ for (let j = startLine; j < Math.min(lines.length, startLine + 8); j++) {
50
+ const part = lines[j].trim().replace(/^[rRuU]?("""|''')/, '');
51
+ const end = part.indexOf(quote);
52
+ parts.push(end === -1 ? part : part.slice(0, end));
53
+ if (end !== -1)
54
+ break;
55
+ }
56
+ text = parts.join(' ');
57
+ }
58
+ }
59
+ return text.replace(/\s+/g, ' ').trim().slice(0, MAX_COMMENT_CHARS);
60
+ }
61
+ /** The first comment block near the top of a file (its stated purpose). */
62
+ export function extractFileHeader(lines) {
63
+ const head = lines.slice(0, HEADER_SCAN_LINES);
64
+ let i = 0;
65
+ while (i < head.length && (head[i].trim() === '' || head[i].startsWith('#!')))
66
+ i++;
67
+ const block = [];
68
+ while (i < head.length && isCommentLine(head[i]))
69
+ block.push(head[i++]);
70
+ return block
71
+ .map(cleanCommentLine)
72
+ .filter(Boolean)
73
+ .join(' ')
74
+ .replace(/\s+/g, ' ')
75
+ .trim()
76
+ .slice(0, MAX_COMMENT_CHARS);
77
+ }
78
+ const stripMarkdown = (s) => s
79
+ .replace(/<!--[\s\S]*?-->/g, ' ')
80
+ .replace(/!?\[([^\]]*)\]\([^)]*\)/g, '$1')
81
+ .replace(/[`*_>#|]/g, ' ')
82
+ .replace(/\s+/g, ' ')
83
+ .trim();
84
+ /** A markdown document's title and opening paragraph — what it says it is about. */
85
+ export function extractMarkdownLead(lines) {
86
+ let i = 0;
87
+ if (lines[0]?.trim() === '---') {
88
+ i = lines.findIndex((l, n) => n > 0 && l.trim() === '---') + 1 || 0;
89
+ }
90
+ let title = '';
91
+ while (i < lines.length && !title) {
92
+ const m = /^#{1,3}\s+(.+)/.exec(lines[i]);
93
+ if (m)
94
+ title = m[1];
95
+ i++;
96
+ }
97
+ const para = [];
98
+ for (; i < lines.length && para.length < 6; i++) {
99
+ const l = lines[i].trim();
100
+ if (/^#{1,6}\s/.test(l) || l.startsWith('```') || l.startsWith('|')) {
101
+ if (para.length)
102
+ break;
103
+ continue;
104
+ }
105
+ if (l)
106
+ para.push(l);
107
+ else if (para.length)
108
+ break;
109
+ }
110
+ return stripMarkdown(`${title}. ${para.join(' ')}`).slice(0, MAX_COMMENT_CHARS);
111
+ }
112
+ /** A bounded excerpt of a markdown document's body (front matter and fenced code dropped). */
113
+ export function extractMarkdownBody(lines) {
114
+ let i = 0;
115
+ if (lines[0]?.trim() === '---') {
116
+ i = lines.findIndex((l, n) => n > 0 && l.trim() === '---') + 1 || 0;
117
+ }
118
+ let fenced = false;
119
+ const kept = [];
120
+ for (; i < lines.length; i++) {
121
+ if (lines[i].trim().startsWith('```')) {
122
+ fenced = !fenced;
123
+ continue;
124
+ }
125
+ if (!fenced)
126
+ kept.push(lines[i]);
127
+ }
128
+ return stripMarkdown(kept.join('\n')).slice(0, MAX_DOC_BODY_CHARS);
129
+ }
130
+ /** Words a person would use to describe a symbol: its name, location and comment. */
131
+ export function buildSummaryText(name, filePath, comment) {
132
+ const where = filePath
133
+ ? `${splitWords(basename(filePath))} ${splitWords(basename(dirname(filePath)))}`
134
+ : '';
135
+ return `${splitWords(name)} ${comment} ${where}`.replace(/\s+/g, ' ').trim();
136
+ }
137
+ /** Rebuilds `node_summaries_fts` for every code symbol and file in the graph. */
138
+ export const summariesPhase = {
139
+ name: 'summaries',
140
+ deps: ['stale-sweep', 'agent-registry'],
141
+ async execute(ctx) {
142
+ const db = ctx.db;
143
+ const labels = [...CODE_SCOPE_LABELS, 'Document'];
144
+ const placeholders = labels.map(() => '?').join(',');
145
+ const rows = db
146
+ .prepare(`SELECT id, label, name, file_path, start_line FROM nodes
147
+ WHERE label IN (${placeholders}) AND file_path IS NOT NULL ORDER BY file_path`)
148
+ .all(...labels);
149
+ db.exec('DELETE FROM node_summaries_fts');
150
+ const insert = db.prepare('INSERT INTO node_summaries_fts (node_id, text) VALUES (?, ?)');
151
+ let summarized = 0;
152
+ // Agent and skill definitions describe themselves in frontmatter.
153
+ const defs = db
154
+ .prepare("SELECT id, name, properties FROM nodes WHERE label IN ('Agent', 'Skill')")
155
+ .all();
156
+ for (const d of defs) {
157
+ let props = {};
158
+ try {
159
+ props = d.properties ? JSON.parse(d.properties) : {};
160
+ }
161
+ catch {
162
+ /* malformed properties: index the name alone */
163
+ }
164
+ insert.run(d.id, definitionText(props, splitWords(d.name)));
165
+ summarized++;
166
+ }
167
+ let currentFile = '';
168
+ let lines = [];
169
+ for (const r of rows) {
170
+ if (r.file_path !== currentFile) {
171
+ currentFile = r.file_path;
172
+ try {
173
+ lines = readFileSync(join(ctx.repoPath, r.file_path), 'utf8').split('\n');
174
+ }
175
+ catch {
176
+ lines = [];
177
+ }
178
+ }
179
+ const isDoc = r.label === 'Document' || /\.(md|mdx)$/i.test(r.file_path);
180
+ const comment = isDoc
181
+ ? `${extractMarkdownLead(lines)} ${extractMarkdownBody(lines)}`
182
+ : r.label === 'File'
183
+ ? extractFileHeader(lines)
184
+ : r.start_line
185
+ ? extractLeadingComment(lines, r.start_line)
186
+ : '';
187
+ const text = buildSummaryText(r.label === 'File' || r.label === 'Document' ? basename(r.file_path) : r.name, r.file_path, comment);
188
+ if (text) {
189
+ insert.run(r.id, text);
190
+ summarized++;
191
+ }
192
+ }
193
+ return { summarized };
194
+ },
195
+ };
196
+ //# sourceMappingURL=summaries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summaries.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/summaries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { PipelinePhase } from '../types.js';
2
+ /** SQL predicate: `col` is the path of a test file. */
3
+ export declare function testPathSql(col: string): string;
4
+ /**
5
+ * Derives `TESTS` edges — test File → the source it exercises — so an agent can
6
+ * ask "what covers this?" and "what should I run after changing it?":
7
+ * - a test file that IMPORTS a non-test file tests that file (INFERRED: an
8
+ * import shows the test touches the file, not that it asserts anything);
9
+ * - a test-file function that CALLS a non-test symbol tests that symbol.
10
+ * Always rebuilt from scratch from the committed IMPORTS/CALLS edges, so it can
11
+ * never drift from them.
12
+ */
13
+ export declare const testsEdgesPhase: PipelinePhase<{
14
+ edges: number;
15
+ }>;
16
+ //# sourceMappingURL=tests-edges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tests-edges.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/tests-edges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAkC5D,CAAC"}
@@ -0,0 +1,44 @@
1
+ /** SQL predicate: `col` is the path of a test file. */
2
+ export function testPathSql(col) {
3
+ return `(${col} LIKE '%.test.%' OR ${col} LIKE '%.spec.%' OR ${col} LIKE '%/__tests__/%' OR ${col} LIKE '%/tests/%' OR ${col} LIKE '%/test/%' OR ${col} LIKE '%\\_test.%' ESCAPE '\\' OR ${col} LIKE 'test\\_%' ESCAPE '\\')`;
4
+ }
5
+ /**
6
+ * Derives `TESTS` edges — test File → the source it exercises — so an agent can
7
+ * ask "what covers this?" and "what should I run after changing it?":
8
+ * - a test file that IMPORTS a non-test file tests that file (INFERRED: an
9
+ * import shows the test touches the file, not that it asserts anything);
10
+ * - a test-file function that CALLS a non-test symbol tests that symbol.
11
+ * Always rebuilt from scratch from the committed IMPORTS/CALLS edges, so it can
12
+ * never drift from them.
13
+ */
14
+ export const testsEdgesPhase = {
15
+ name: 'tests-edges',
16
+ deps: ['stale-sweep'],
17
+ async execute(ctx) {
18
+ const db = ctx.db;
19
+ db.exec("DELETE FROM edges WHERE relation = 'TESTS'");
20
+ db.exec(`
21
+ INSERT OR IGNORE INTO edges (id, source_id, target_id, relation, confidence, confidence_score, reason)
22
+ SELECT 'tests:' || s.id || '>' || t.id, s.id, t.id, 'TESTS', 'INFERRED', 0.7,
23
+ 'test file imports this file'
24
+ FROM edges e
25
+ JOIN nodes s ON s.id = e.source_id AND s.label = 'File'
26
+ JOIN nodes t ON t.id = e.target_id AND t.label = 'File'
27
+ WHERE e.relation = 'IMPORTS'
28
+ AND ${testPathSql('s.file_path')} AND NOT ${testPathSql('t.file_path')}`);
29
+ // Resolves the calling function to its test File node by path.
30
+ db.exec(`
31
+ INSERT OR IGNORE INTO edges (id, source_id, target_id, relation, confidence, confidence_score, reason)
32
+ SELECT 'tests:' || f.id || '>' || t.id, f.id, t.id, 'TESTS', 'INFERRED', 0.9,
33
+ 'test code calls this symbol'
34
+ FROM edges e
35
+ JOIN nodes s ON s.id = e.source_id
36
+ JOIN nodes f ON f.label = 'File' AND f.file_path = s.file_path
37
+ JOIN nodes t ON t.id = e.target_id
38
+ WHERE e.relation = 'CALLS' AND t.label != 'File'
39
+ AND ${testPathSql('s.file_path')} AND NOT ${testPathSql('t.file_path')}`);
40
+ const { n } = db.prepare("SELECT COUNT(*) AS n FROM edges WHERE relation = 'TESTS'").get();
41
+ return { edges: n };
42
+ },
43
+ };
44
+ //# sourceMappingURL=tests-edges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tests-edges.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/tests-edges.ts"],"names":[],"mappings":"AAEA,uDAAuD;AACvD,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,IAAI,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,4BAA4B,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,qCAAqC,GAAG,+BAA+B,CAAC;AAChO,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqC;IAC/D,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,CAAC,aAAa,CAAC;IACrB,KAAK,CAAC,OAAO,CAAC,GAAG;QACf,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;QAClB,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAEtD,EAAE,CAAC,IAAI,CAAC;;;;;;;;cAQE,WAAW,CAAC,aAAa,CAAC,YAAY,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAE9E,+DAA+D;QAC/D,EAAE,CAAC,IAAI,CAAC;;;;;;;;;cASE,WAAW,CAAC,aAAa,CAAC,YAAY,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAE9E,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,EAEvF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACtB,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/pipeline/runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE,qBAAa,cAAc;IACzB,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IACvC,iCAAiC;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;IAE/D,YAAY,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,EAG3C;IAEK,GAAG,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoC7D;CACF"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/pipeline/runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE,qBAAa,cAAc;IACzB,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IACvC,iCAAiC;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;IAE/D,YAAY,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,EAG3C;IAEK,GAAG,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAyC7D;CACF"}
@@ -20,9 +20,14 @@ export class PipelineRunner {
20
20
  // Wait for all dep phases to finish
21
21
  await Promise.all(phase.deps.map((dep) => getOrCreatePromise(dep)));
22
22
  ctx.onProgress?.({ phase: phase.name });
23
+ const startedAt = Date.now();
23
24
  try {
24
25
  const output = await phase.execute(ctx, outputs);
25
26
  outputs.set(phase.name, output);
27
+ ctx.onProgress?.({
28
+ phase: phase.name,
29
+ message: `done in ${((Date.now() - startedAt) / 1000).toFixed(1)}s`,
30
+ });
26
31
  }
27
32
  catch (err) {
28
33
  const msg = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/pipeline/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/pipeline/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Retrieval evaluation: run gold queries through {@link searchGraph} and report
3
+ * how often, and how high, the expected node shows up.
4
+ *
5
+ * A case passes at rank r when any hit's name or file path contains one of its
6
+ * `expect` strings (case-insensitive). Substring matching keeps gold files
7
+ * stable across line-number and id-scheme changes.
8
+ */
9
+ import type Database from 'better-sqlite3';
10
+ import type { Embedder } from '../embeddings/store.js';
11
+ import type { GraphSearchOptions } from './hybrid-query.js';
12
+ export interface EvalCase {
13
+ query: string;
14
+ /** Any hit whose name or filePath contains one of these counts as found. */
15
+ expect: string[];
16
+ /** Free-form bucket for the report: exact, ambiguous, natural, doc, dependency. */
17
+ kind?: string;
18
+ scope?: GraphSearchOptions['scope'];
19
+ }
20
+ export interface EvalCaseResult {
21
+ query: string;
22
+ kind: string;
23
+ /** 1-based rank of the first expected hit, or null when absent from the top k. */
24
+ rank: number | null;
25
+ }
26
+ export interface EvalReport {
27
+ k: number;
28
+ cases: number;
29
+ recallAtK: number;
30
+ /** Mean reciprocal rank: 1/rank per case, 0 when absent. */
31
+ mrr: number;
32
+ byKind: Record<string, {
33
+ cases: number;
34
+ recallAtK: number;
35
+ mrr: number;
36
+ }>;
37
+ results: EvalCaseResult[];
38
+ }
39
+ export declare function evaluateRetrieval(db: Database.Database, cases: EvalCase[], options?: {
40
+ k?: number;
41
+ search?: Partial<GraphSearchOptions>;
42
+ embedder?: Embedder | null;
43
+ }): Promise<EvalReport>;
44
+ //# sourceMappingURL=eval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../../src/search/eval.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1E,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE;IAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAO,GAC7F,OAAO,CAAC,UAAU,CAAC,CA6BrB"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Retrieval evaluation: run gold queries through {@link searchGraph} and report
3
+ * how often, and how high, the expected node shows up.
4
+ *
5
+ * A case passes at rank r when any hit's name or file path contains one of its
6
+ * `expect` strings (case-insensitive). Substring matching keeps gold files
7
+ * stable across line-number and id-scheme changes.
8
+ */
9
+ import { searchGraphFused } from './fused-search.js';
10
+ export async function evaluateRetrieval(db, cases, options = {}) {
11
+ const k = options.k ?? 10;
12
+ const results = [];
13
+ for (const c of cases) {
14
+ const hits = await searchGraphFused(db, c.query, {
15
+ ...options.search,
16
+ scope: c.scope ?? options.search?.scope,
17
+ limit: k,
18
+ embedder: options.embedder,
19
+ });
20
+ const wanted = c.expect.map((e) => e.toLowerCase());
21
+ const idx = hits.findIndex((h) => wanted.some((w) => h.name.toLowerCase().includes(w) || (h.filePath ?? '').toLowerCase().includes(w)));
22
+ results.push({ query: c.query, kind: c.kind ?? 'general', rank: idx === -1 ? null : idx + 1 });
23
+ }
24
+ const summarize = (rs) => ({
25
+ cases: rs.length,
26
+ recallAtK: rs.length ? rs.filter((r) => r.rank !== null).length / rs.length : 0,
27
+ mrr: rs.length ? rs.reduce((sum, r) => sum + (r.rank ? 1 / r.rank : 0), 0) / rs.length : 0,
28
+ });
29
+ const byKind = {};
30
+ for (const kind of new Set(results.map((r) => r.kind))) {
31
+ byKind[kind] = summarize(results.filter((r) => r.kind === kind));
32
+ }
33
+ return { k, ...summarize(results), byKind, results };
34
+ }
35
+ //# sourceMappingURL=eval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../../src/search/eval.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA6BrD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAqB,EACrB,KAAiB,EACjB,OAAO,GAAqF,EAAE;IAE9F,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE;YAC/C,GAAG,OAAO,CAAC,MAAM;YACjB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK;YACvC,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,MAAM,CAAC,IAAI,CACT,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CACxF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,EAAoB,EAAE,EAAE,CAAC,CAAC;QAC3C,KAAK,EAAE,EAAE,CAAC,MAAM;QAChB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/E,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC3F,CAAC,CAAC;IACH,MAAM,MAAM,GAAyB,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACvD,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Lexical + semantic retrieval, fused.
3
+ *
4
+ * Lexical search (names, stemmed summaries) is exact and fast but only finds
5
+ * what shares words with the query. Embeddings find "which agent should handle
6
+ * a task" -> `pickAgents` but blur exact identifiers. Reciprocal-rank fusion
7
+ * keeps the strengths of both; the weights follow the query's style, and an
8
+ * exact name match is always pinned first.
9
+ *
10
+ * Degrades to plain lexical search when no embedder is supplied, nothing has
11
+ * been embedded yet, or the query only concerns documentation.
12
+ */
13
+ import type Database from 'better-sqlite3';
14
+ import { type Embedder } from '../embeddings/store.js';
15
+ import { type GraphSearchOptions, type GraphSearchResult } from './hybrid-query.js';
16
+ export interface FusedSearchOptions extends GraphSearchOptions {
17
+ embedder?: Embedder | null;
18
+ }
19
+ /** A single token (`UserService`, `agent-pick`, `fts-store.ts`) is a name, not a question. */
20
+ export declare function isIdentifierQuery(query: string): boolean;
21
+ export declare function searchGraphFused(db: Database.Database, query: string, options?: FusedSearchOptions): Promise<GraphSearchResult[]>;
22
+ //# sourceMappingURL=fused-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fused-search.d.ts","sourceRoot":"","sources":["../../../src/search/fused-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,QAAQ,EAAoC,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAKvB,MAAM,mBAAmB,CAAC;AAS3B,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC5B;AAED,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD;AAUD,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA0E9B"}