@monoes/monograph 2.25.0 → 2.25.6
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.
- package/LICENSE +191 -0
- package/README.md +28 -16
- package/dist/src/embeddings/transformers-embedder.d.ts.map +1 -1
- package/dist/src/embeddings/transformers-embedder.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp-tools/brief.d.ts +2 -0
- package/dist/src/mcp-tools/brief.d.ts.map +1 -1
- package/dist/src/mcp-tools/brief.js +6 -3
- package/dist/src/mcp-tools/brief.js.map +1 -1
- package/dist/src/parsers/extractor.d.ts.map +1 -1
- package/dist/src/parsers/extractor.js +17 -1
- package/dist/src/parsers/extractor.js.map +1 -1
- package/dist/src/pipeline/index-scope.d.ts +3 -0
- package/dist/src/pipeline/index-scope.d.ts.map +1 -1
- package/dist/src/pipeline/index-scope.js +14 -0
- package/dist/src/pipeline/index-scope.js.map +1 -1
- package/dist/src/pipeline/manifest.d.ts +3 -0
- package/dist/src/pipeline/manifest.d.ts.map +1 -1
- package/dist/src/pipeline/manifest.js +1 -0
- package/dist/src/pipeline/manifest.js.map +1 -1
- package/dist/src/pipeline/orchestrator.d.ts.map +1 -1
- package/dist/src/pipeline/orchestrator.js +6 -1
- package/dist/src/pipeline/orchestrator.js.map +1 -1
- package/dist/src/pipeline/phases/agent-registry.d.ts.map +1 -1
- package/dist/src/pipeline/phases/agent-registry.js +2 -0
- package/dist/src/pipeline/phases/agent-registry.js.map +1 -1
- package/dist/src/pipeline/phases/parse.d.ts.map +1 -1
- package/dist/src/pipeline/phases/parse.js +11 -1
- package/dist/src/pipeline/phases/parse.js.map +1 -1
- package/dist/src/pipeline/phases/scan.d.ts.map +1 -1
- package/dist/src/pipeline/phases/scan.js +4 -0
- package/dist/src/pipeline/phases/scan.js.map +1 -1
- package/dist/src/pipeline/phases/summaries.d.ts +2 -0
- package/dist/src/pipeline/phases/summaries.d.ts.map +1 -1
- package/dist/src/pipeline/phases/summaries.js +21 -1
- package/dist/src/pipeline/phases/summaries.js.map +1 -1
- package/dist/src/pipeline/types.d.ts +6 -0
- package/dist/src/pipeline/types.d.ts.map +1 -1
- package/dist/src/pipeline/types.js +1 -0
- package/dist/src/pipeline/types.js.map +1 -1
- package/dist/src/search/fused-search.d.ts.map +1 -1
- package/dist/src/search/fused-search.js +3 -0
- package/dist/src/search/fused-search.js.map +1 -1
- package/dist/src/search/hybrid-query.d.ts +2 -0
- package/dist/src/search/hybrid-query.d.ts.map +1 -1
- package/dist/src/search/hybrid-query.js +20 -10
- package/dist/src/search/hybrid-query.js.map +1 -1
- package/dist/src/search/relevance.d.ts +29 -0
- package/dist/src/search/relevance.d.ts.map +1 -0
- package/dist/src/search/relevance.js +87 -0
- package/dist/src/search/relevance.js.map +1 -0
- package/dist/src/storage/summary-search.d.ts +2 -2
- package/dist/src/storage/summary-search.d.ts.map +1 -1
- package/dist/src/storage/summary-search.js +3 -3
- package/dist/src/storage/summary-search.js.map +1 -1
- package/dist/src/watch/watcher.d.ts.map +1 -1
- package/dist/src/watch/watcher.js.map +1 -1
- package/package.json +11 -9
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Absolute relevance check for natural-language task queries.
|
|
3
|
+
*
|
|
4
|
+
* Ranked retrieval always returns its best N, even when nothing matches: fusion
|
|
5
|
+
* scores are relative to the pool, so a nonexistent concept still "scores 0.96".
|
|
6
|
+
* {@link assessRelevance} asks the absolute question instead — does any top hit
|
|
7
|
+
* share enough of the query's content words (or sit close enough in embedding
|
|
8
|
+
* space) to be about it at all? — so `suggest` and `brief` can say "no relevant
|
|
9
|
+
* match" rather than hand back ten unrelated nodes.
|
|
10
|
+
*/
|
|
11
|
+
import type Database from 'better-sqlite3';
|
|
12
|
+
import type { GraphSearchResult } from './hybrid-query.js';
|
|
13
|
+
/** Cosine similarity at which an embedding neighbour counts as on-topic without shared words. */
|
|
14
|
+
export declare const SEMANTIC_RELEVANT_SIMILARITY = 0.55;
|
|
15
|
+
export interface RelevanceVerdict {
|
|
16
|
+
relevant: boolean;
|
|
17
|
+
/** Content words of the query the on-topic hits cover. */
|
|
18
|
+
bestCoverage: number;
|
|
19
|
+
/** Content words of the query. */
|
|
20
|
+
words: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Whether `hits` plausibly answer `query`. Only multi-word queries are judged: a bare
|
|
24
|
+
* identifier is a name lookup, where "no hit" already means no match and a typo should
|
|
25
|
+
* still return its fuzzy neighbours. A question needs on-topic hits that together cover at
|
|
26
|
+
* least half of its content words (and never fewer than one).
|
|
27
|
+
*/
|
|
28
|
+
export declare function assessRelevance(db: Database.Database, query: string, hits: readonly GraphSearchResult[]): RelevanceVerdict;
|
|
29
|
+
//# sourceMappingURL=relevance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relevance.d.ts","sourceRoot":"","sources":["../../../src/search/relevance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,iGAAiG;AACjG,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAIjD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;CACf;AA2CD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,iBAAiB,EAAE,GACjC,gBAAgB,CA6BlB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Absolute relevance check for natural-language task queries.
|
|
3
|
+
*
|
|
4
|
+
* Ranked retrieval always returns its best N, even when nothing matches: fusion
|
|
5
|
+
* scores are relative to the pool, so a nonexistent concept still "scores 0.96".
|
|
6
|
+
* {@link assessRelevance} asks the absolute question instead — does any top hit
|
|
7
|
+
* share enough of the query's content words (or sit close enough in embedding
|
|
8
|
+
* space) to be about it at all? — so `suggest` and `brief` can say "no relevant
|
|
9
|
+
* match" rather than hand back ten unrelated nodes.
|
|
10
|
+
*/
|
|
11
|
+
import { contentWords } from '../storage/summary-search.js';
|
|
12
|
+
/** Cosine similarity at which an embedding neighbour counts as on-topic without shared words. */
|
|
13
|
+
export const SEMANTIC_RELEVANT_SIMILARITY = 0.55;
|
|
14
|
+
/** How many of the best hits are inspected. */
|
|
15
|
+
const INSPECTED_HITS = 10;
|
|
16
|
+
/** Lowercased word tokens, splitting camelCase, snake_case, kebab-case and paths. */
|
|
17
|
+
function tokens(text) {
|
|
18
|
+
return text
|
|
19
|
+
.replace(/([a-z0-9])([A-Z])/g, '$1 $2')
|
|
20
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')
|
|
21
|
+
.toLowerCase()
|
|
22
|
+
.split(/[^a-z0-9]+/)
|
|
23
|
+
.filter(Boolean);
|
|
24
|
+
}
|
|
25
|
+
/** Equal, or one is the stem of the other (`schedule`/`scheduler`, `index`/`indexes`). */
|
|
26
|
+
function sameWord(token, word) {
|
|
27
|
+
if (token === word)
|
|
28
|
+
return true;
|
|
29
|
+
if (token.length < 4 || word.length < 4)
|
|
30
|
+
return false;
|
|
31
|
+
return token.startsWith(word) || word.startsWith(token);
|
|
32
|
+
}
|
|
33
|
+
function summaryText(db, id) {
|
|
34
|
+
try {
|
|
35
|
+
const row = db.prepare('SELECT text FROM node_summaries_fts WHERE node_id = ?').get(id);
|
|
36
|
+
return row?.text ?? '';
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return ''; // index built before summaries existed
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** Query words found in the hit's name, path and summary, and the share of its name that is query words. */
|
|
43
|
+
function match(db, hit, words) {
|
|
44
|
+
const nameTokens = tokens(hit.name);
|
|
45
|
+
const bag = tokens(`${hit.name} ${hit.filePath ?? ''} ${summaryText(db, hit.id)}`);
|
|
46
|
+
const covered = new Set(words.filter((w) => bag.some((t) => sameWord(t, w))));
|
|
47
|
+
const inName = nameTokens.filter((t) => words.some((w) => sameWord(t, w))).length;
|
|
48
|
+
return { covered, nameShare: nameTokens.length ? inName / nameTokens.length : 0 };
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Whether `hits` plausibly answer `query`. Only multi-word queries are judged: a bare
|
|
52
|
+
* identifier is a name lookup, where "no hit" already means no match and a typo should
|
|
53
|
+
* still return its fuzzy neighbours. A question needs on-topic hits that together cover at
|
|
54
|
+
* least half of its content words (and never fewer than one).
|
|
55
|
+
*/
|
|
56
|
+
export function assessRelevance(db, query, hits) {
|
|
57
|
+
const words = contentWords(query);
|
|
58
|
+
if (hits.length === 0)
|
|
59
|
+
return { relevant: false, bestCoverage: 0, words: words.length };
|
|
60
|
+
if (!/\s/.test(query.trim()) || words.length < 2) {
|
|
61
|
+
return { relevant: true, bestCoverage: words.length, words: words.length };
|
|
62
|
+
}
|
|
63
|
+
// A name typed into the question ("fix PaymentProcessor logging") is a direct reference.
|
|
64
|
+
const typed = new Set(query
|
|
65
|
+
.toLowerCase()
|
|
66
|
+
.split(/[^a-z0-9_$]+/)
|
|
67
|
+
.filter((w) => w.length > 2));
|
|
68
|
+
if (hits.slice(0, INSPECTED_HITS).some((h) => typed.has(h.name.toLowerCase()))) {
|
|
69
|
+
return { relevant: true, bestCoverage: words.length, words: words.length };
|
|
70
|
+
}
|
|
71
|
+
const need = Math.ceil(words.length / 2);
|
|
72
|
+
// A hit is on topic when it covers `need` words alone, or is named mostly in the query's
|
|
73
|
+
// own words (`greet`, `helper`) — a long constant that merely contains "org" is not. The
|
|
74
|
+
// task is answered when the on-topic hits together cover `need` of its words.
|
|
75
|
+
const covered = new Set();
|
|
76
|
+
for (const hit of hits.slice(0, INSPECTED_HITS)) {
|
|
77
|
+
if ((hit.similarity ?? 0) >= SEMANTIC_RELEVANT_SIMILARITY) {
|
|
78
|
+
return { relevant: true, bestCoverage: words.length, words: words.length };
|
|
79
|
+
}
|
|
80
|
+
const m = match(db, hit, words);
|
|
81
|
+
if (m.covered.size >= need || m.nameShare >= 0.5)
|
|
82
|
+
for (const w of m.covered)
|
|
83
|
+
covered.add(w);
|
|
84
|
+
}
|
|
85
|
+
return { relevant: covered.size >= need, bestCoverage: covered.size, words: words.length };
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=relevance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relevance.js","sourceRoot":"","sources":["../../../src/search/relevance.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@ export declare function contentWords(query: string): string[];
|
|
|
6
6
|
* Stemmed BM25 over `node_summaries_fts`. Terms are OR-ed — a natural-language
|
|
7
7
|
* question rarely repeats every word a symbol is described with — and BM25
|
|
8
8
|
* rewards the symbols that match the most of them. Returns `[]` for queries
|
|
9
|
-
* with fewer than two content words (a bare identifier is the lexical path's
|
|
9
|
+
* with fewer than `minWords` (default two) content words (a bare identifier is the lexical path's
|
|
10
10
|
* job) or when the table is missing/empty (index built before summaries).
|
|
11
11
|
*/
|
|
12
|
-
export declare function summarySearch(db: Database.Database, query: string, limit: number, label?: LabelFilter): FtsResult[];
|
|
12
|
+
export declare function summarySearch(db: Database.Database, query: string, limit: number, label?: LabelFilter, minWords?: number): FtsResult[];
|
|
13
13
|
//# sourceMappingURL=summary-search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary-search.d.ts","sourceRoot":"","sources":["../../../src/storage/summary-search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAe,MAAM,uBAAuB,CAAC;AAMtF,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAMpD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"summary-search.d.ts","sourceRoot":"","sources":["../../../src/storage/summary-search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAe,MAAM,uBAAuB,CAAC;AAMtF,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAMpD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,WAAW,EACnB,QAAQ,SAAI,GACX,SAAS,EAAE,CAoCb"}
|
|
@@ -16,12 +16,12 @@ export function contentWords(query) {
|
|
|
16
16
|
* Stemmed BM25 over `node_summaries_fts`. Terms are OR-ed — a natural-language
|
|
17
17
|
* question rarely repeats every word a symbol is described with — and BM25
|
|
18
18
|
* rewards the symbols that match the most of them. Returns `[]` for queries
|
|
19
|
-
* with fewer than two content words (a bare identifier is the lexical path's
|
|
19
|
+
* with fewer than `minWords` (default two) content words (a bare identifier is the lexical path's
|
|
20
20
|
* job) or when the table is missing/empty (index built before summaries).
|
|
21
21
|
*/
|
|
22
|
-
export function summarySearch(db, query, limit, label) {
|
|
22
|
+
export function summarySearch(db, query, limit, label, minWords = 2) {
|
|
23
23
|
const words = contentWords(query);
|
|
24
|
-
if (words.length <
|
|
24
|
+
if (words.length < minWords)
|
|
25
25
|
return [];
|
|
26
26
|
const match = words.map((w) => `"${w}"`).join(' OR ');
|
|
27
27
|
let sql = `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary-search.js","sourceRoot":"","sources":["../../../src/storage/summary-search.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAGhF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAoC,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,0EAA0E;AAC1E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjG,qFAAqF;AACrF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,KAAK,GAAG,KAAK;SAChB,WAAW,EAAE;SACb,KAAK,CAAC,YAAY,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,EAAqB,EACrB,KAAa,EACb,KAAa,EACb,KAAmB;
|
|
1
|
+
{"version":3,"file":"summary-search.js","sourceRoot":"","sources":["../../../src/storage/summary-search.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAGhF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAoC,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,0EAA0E;AAC1E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjG,qFAAqF;AACrF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,KAAK,GAAG,KAAK;SAChB,WAAW,EAAE;SACb,KAAK,CAAC,YAAY,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,EAAqB,EACrB,KAAa,EACb,KAAa,EACb,KAAmB,EACnB,QAAQ,GAAG,CAAC;IAEZ,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,GAAG,GAAG;;;;;2CAK+B,yBAAyB,EAAE,CAAC;IACrE,MAAM,MAAM,GAAc,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9B,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,GAAG,IAAI,2CAA2C,CAAC;IACnD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAI,MAAiC,CAGnE,CAAC;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,EAAE,EAAE,CAAC,CAAC,EAAY;YAClB,IAAI,EAAE,CAAC,CAAC,IAAc;YACtB,SAAS,EAAE,CAAC,CAAC,UAAoB;YACjC,QAAQ,EAAG,CAAC,CAAC,SAA2B,IAAI,IAAI;YAChD,KAAK,EAAE,CAAC,CAAC,KAAe;YACxB,IAAI,EAAE,CAAC,CAAC,IAAc;YACtB,SAAS,EAAG,CAAC,CAAC,UAA4B,IAAI,IAAI;YAClD,OAAO,EAAG,CAAC,CAAC,QAA0B,IAAI,IAAI;SAC/C,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../src/watch/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAYpD,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8FAA8F;AAC9F,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAiFxC;AAED,qBAAa,gBAAiB,SAAQ,YAAY;IAO9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAN3B,OAAO,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../src/watch/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAYpD,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8FAA8F;AAC9F,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAiFxC;AAED,qBAAa,gBAAiB,SAAQ,YAAY;IAO9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAN3B,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,YACmB,QAAQ,EAAE,MAAM,EACjC,IAAI,GAAE,cAAmB,EAI1B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B3B;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAI1B;IAED,OAAO,CAAC,YAAY;CAarB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../../src/watch/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../../src/watch/watcher.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monoes/monograph",
|
|
3
|
-
"version": "2.25.
|
|
3
|
+
"version": "2.25.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Code intelligence engine for monomind — tree-sitter WASM grammars + SQLite knowledge graph, no native builds",
|
|
6
|
+
"license": "Apache-2.0",
|
|
6
7
|
"main": "dist/src/index.js",
|
|
7
8
|
"types": "dist/src/index.d.ts",
|
|
8
9
|
"exports": {
|
|
@@ -24,10 +25,11 @@
|
|
|
24
25
|
}
|
|
25
26
|
},
|
|
26
27
|
"engines": {
|
|
27
|
-
"node": ">=22.
|
|
28
|
+
"node": ">=22.22.0"
|
|
28
29
|
},
|
|
29
30
|
"files": [
|
|
30
31
|
"dist",
|
|
32
|
+
"!dist/tsconfig.tsbuildinfo",
|
|
31
33
|
"README.md"
|
|
32
34
|
],
|
|
33
35
|
"publishConfig": {
|
|
@@ -36,21 +38,21 @@
|
|
|
36
38
|
},
|
|
37
39
|
"dependencies": {
|
|
38
40
|
"better-sqlite3": "^12.0.0",
|
|
39
|
-
"chokidar": "^
|
|
41
|
+
"chokidar": "^6.0.0",
|
|
40
42
|
"express": "^4.21.2",
|
|
41
|
-
"graphology": "^0.
|
|
43
|
+
"graphology": "^0.26.0",
|
|
42
44
|
"graphology-communities-louvain": "^2.0.1",
|
|
43
|
-
"graphology-metrics": "^2.4.
|
|
45
|
+
"graphology-metrics": "^2.4.2",
|
|
44
46
|
"graphology-shortest-path": "^2.0.2",
|
|
45
47
|
"graphology-traversal": "^0.3.1",
|
|
46
48
|
"micromatch": "^4.0.8",
|
|
47
|
-
"web-tree-sitter": "^0.27.
|
|
49
|
+
"web-tree-sitter": "^0.27.2"
|
|
48
50
|
},
|
|
49
51
|
"devDependencies": {
|
|
50
52
|
"@types/better-sqlite3": "^7.6.0",
|
|
51
53
|
"@types/express": "^5.0.0",
|
|
52
54
|
"@types/micromatch": "^4.0.10",
|
|
53
|
-
"@types/node": "^
|
|
55
|
+
"@types/node": "^26.6.6",
|
|
54
56
|
"tree-sitter": "^0.22.0",
|
|
55
57
|
"tree-sitter-c": "~0.23.6",
|
|
56
58
|
"tree-sitter-c-sharp": "0.23.1",
|
|
@@ -65,9 +67,9 @@
|
|
|
65
67
|
"tree-sitter-rust": "^0.23.0",
|
|
66
68
|
"tree-sitter-swift": "^0.7.1",
|
|
67
69
|
"tree-sitter-typescript": "^0.23.0",
|
|
68
|
-
"tree-sitter-cli": "0.27.
|
|
70
|
+
"tree-sitter-cli": "0.27.2",
|
|
69
71
|
"typescript": "^7.0.2",
|
|
70
|
-
"vitest": "^
|
|
72
|
+
"vitest": "^5.1.0"
|
|
71
73
|
},
|
|
72
74
|
"scripts": {
|
|
73
75
|
"prebuild": "node ../../../scripts/build-fs.mjs clean dist tsconfig.tsbuildinfo",
|