nodebench-mcp 2.14.1 → 2.15.0

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 (36) hide show
  1. package/NODEBENCH_AGENTS.md +19 -9
  2. package/README.md +42 -19
  3. package/dist/__tests__/critterCalibrationEval.d.ts +8 -0
  4. package/dist/__tests__/critterCalibrationEval.js +370 -0
  5. package/dist/__tests__/critterCalibrationEval.js.map +1 -0
  6. package/dist/__tests__/embeddingProvider.test.d.ts +1 -0
  7. package/dist/__tests__/embeddingProvider.test.js +86 -0
  8. package/dist/__tests__/embeddingProvider.test.js.map +1 -0
  9. package/dist/__tests__/gaiaCapabilityAudioEval.test.js +1 -1
  10. package/dist/__tests__/gaiaCapabilityAudioEval.test.js.map +1 -1
  11. package/dist/__tests__/gaiaCapabilityEval.test.js +541 -27
  12. package/dist/__tests__/gaiaCapabilityEval.test.js.map +1 -1
  13. package/dist/__tests__/gaiaCapabilityFilesEval.test.js +1 -1
  14. package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +1 -1
  15. package/dist/__tests__/gaiaCapabilityMediaEval.test.js +473 -4
  16. package/dist/__tests__/gaiaCapabilityMediaEval.test.js.map +1 -1
  17. package/dist/__tests__/tools.test.js +1010 -8
  18. package/dist/__tests__/tools.test.js.map +1 -1
  19. package/dist/db.js +64 -0
  20. package/dist/db.js.map +1 -1
  21. package/dist/index.js +70 -9
  22. package/dist/index.js.map +1 -1
  23. package/dist/tools/critterTools.d.ts +21 -0
  24. package/dist/tools/critterTools.js +230 -0
  25. package/dist/tools/critterTools.js.map +1 -0
  26. package/dist/tools/embeddingProvider.d.ts +67 -0
  27. package/dist/tools/embeddingProvider.js +299 -0
  28. package/dist/tools/embeddingProvider.js.map +1 -0
  29. package/dist/tools/progressiveDiscoveryTools.js +24 -7
  30. package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
  31. package/dist/tools/reconTools.js +83 -33
  32. package/dist/tools/reconTools.js.map +1 -1
  33. package/dist/tools/toolRegistry.d.ts +30 -2
  34. package/dist/tools/toolRegistry.js +253 -25
  35. package/dist/tools/toolRegistry.js.map +1 -1
  36. package/package.json +13 -3
@@ -1 +1 @@
1
- {"version":3,"file":"reconTools.js","sourceRoot":"","sources":["../../src/tools/reconTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconTools.js","sourceRoot":"","sources":["../../src/tools/reconTools.ts"],"names":[],"mappings":"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"}
@@ -52,9 +52,30 @@ export interface SearchResult {
52
52
  phase: string;
53
53
  tags: string[];
54
54
  }
55
- export type SearchMode = "hybrid" | "fuzzy" | "regex" | "prefix" | "semantic" | "exact" | "dense";
55
+ export type SearchMode = "hybrid" | "fuzzy" | "regex" | "prefix" | "semantic" | "exact" | "dense" | "embedding";
56
+ /** Tokenize text into lowercase words (alpha + underscore only) */
57
+ export declare function tokenize(text: string): string[];
58
+ export declare function buildDenseIndex(): {
59
+ vectors: Map<string, Map<string, number>>;
60
+ idf: Map<string, number>;
61
+ };
62
+ /** Inject the DB accessor — called once from index.ts at startup. */
63
+ export declare function _setDbAccessor(accessor: () => any): void;
64
+ /** Reset co-occurrence cache — for testing only. */
65
+ export declare function _resetCooccurrenceCache(): void;
66
+ /** Inject co-occurrence edges directly — for testing only. */
67
+ export declare function _setCooccurrenceForTesting(edges: Map<string, string[]>): void;
68
+ /** Override wRRF weights — for ablation testing only.
69
+ * Allows comparing paper's α_A=1.5,α_T=1.0,K=60 vs our α_T=1.0,α_D=0.6,K=20. */
70
+ export declare function _setWrrfParamsForTesting(params: {
71
+ alphaT?: number;
72
+ alphaD?: number;
73
+ k?: number;
74
+ }): void;
75
+ /** Restore default wRRF weights — for ablation testing only. */
76
+ export declare function _resetWrrfParamsForTesting(): void;
56
77
  /**
57
- * Multi-modal hybrid search engine.
78
+ * Multi-modal hybrid search engine with Agent-as-a-Graph bipartite retrieval.
58
79
  *
59
80
  * Search modes (all run in parallel, scores merged):
60
81
  * - **keyword**: Exact and partial word matching on name, tags, description, category
@@ -66,6 +87,11 @@ export type SearchMode = "hybrid" | "fuzzy" | "regex" | "prefix" | "semantic" |
66
87
  * - **regex**: Pass a regex pattern to match against tool names/descriptions
67
88
  * - **bigram**: Two-word phrase matching (e.g., "quality gate" matched as phrase)
68
89
  * - **domain boost**: Related categories get boosted when top results cluster
90
+ * - **embedding**: Neural embedding with type-specific wRRF (tool α_T + domain α_D nodes)
91
+ * - **graph traversal**: Upward traversal from tools → domains → sibling tools
92
+ * - **trace edges**: Execution co-occurrence mining from tool_call_log (dynamic graph edges)
93
+ *
94
+ * Graph architecture based on arxiv:2511.18194 (Agent-as-a-Graph).
69
95
  */
70
96
  export declare function hybridSearch(query: string, tools: Array<{
71
97
  name: string;
@@ -77,6 +103,8 @@ export declare function hybridSearch(query: string, tools: Array<{
77
103
  mode?: SearchMode;
78
104
  /** If true, includes matchReasons in results explaining why each tool matched */
79
105
  explain?: boolean;
106
+ /** Pre-computed query embedding vector for semantic search (passed from async caller) */
107
+ embeddingQueryVec?: Float32Array;
80
108
  }): SearchResult[];
81
109
  /** Available search modes for discover_tools */
82
110
  export declare const SEARCH_MODES: SearchMode[];
@@ -9,6 +9,7 @@
9
9
  * 2. Append quickRefs to every tool response (so agents always know what to do next)
10
10
  * 3. Build tool chains (recommended sequences for common workflows)
11
11
  */
12
+ import { isEmbeddingReady, embeddingSearch } from "./embeddingProvider.js";
12
13
  // ── Registry: every tool mapped with metadata ────────────────────────────
13
14
  const REGISTRY_ENTRIES = [
14
15
  // ═══ VERIFICATION ═══
@@ -1824,6 +1825,19 @@ const REGISTRY_ENTRIES = [
1824
1825
  },
1825
1826
  phase: "research",
1826
1827
  },
1828
+ // ═══ CRITTER (pre-action intentionality check) ═══
1829
+ {
1830
+ name: "critter_check",
1831
+ category: "critter",
1832
+ tags: ["intentionality", "why", "who", "purpose", "audience", "reflection", "scope", "pre-action", "metacognition"],
1833
+ quickRef: {
1834
+ nextAction: "Answered critter check. If verdict is 'proceed', continue with your task. If 'reconsider', sharpen answers and re-run.",
1835
+ nextTools: ["save_session_note", "start_verification_cycle", "run_recon"],
1836
+ methodology: "agent_contract",
1837
+ tip: "Call at the start of any non-trivial task. Prevents scope creep and aimless exploration.",
1838
+ },
1839
+ phase: "research",
1840
+ },
1827
1841
  ];
1828
1842
  // ── Exported lookup structures ───────────────────────────────────────────
1829
1843
  /** Map of tool name → registry entry for O(1) lookup */
@@ -1877,6 +1891,7 @@ const CATEGORY_COMPLEXITY = {
1877
1891
  git_workflow: "medium",
1878
1892
  seo: "medium",
1879
1893
  voice_bridge: "medium",
1894
+ critter: "low",
1880
1895
  };
1881
1896
  /** Per-tool complexity overrides (when category default is wrong) */
1882
1897
  const TOOL_COMPLEXITY_OVERRIDES = {
@@ -1946,7 +1961,7 @@ export function getToolComplexity(toolName) {
1946
1961
  }
1947
1962
  // ── Synonym / semantic expansion map ──────────────────────────────────────
1948
1963
  const SYNONYM_MAP = {
1949
- verify: ["validate", "check", "confirm", "test", "assert", "ensure"],
1964
+ verify: ["validate", "check", "confirm", "test", "assert", "ensure", "correct"],
1950
1965
  test: ["verify", "validate", "check", "assert", "spec", "expect"],
1951
1966
  search: ["find", "discover", "lookup", "query", "locate", "browse"],
1952
1967
  find: ["search", "discover", "lookup", "locate"],
@@ -1958,7 +1973,7 @@ const SYNONYM_MAP = {
1958
1973
  monitor: ["watch", "observe", "track", "follow"],
1959
1974
  security: ["vulnerability", "audit", "cve", "secret", "credential", "leak", "exposure"],
1960
1975
  benchmark: ["measure", "evaluate", "score", "grade", "performance", "capability"],
1961
- parallel: ["multi-agent", "coordinate", "team", "concurrent", "distributed"],
1976
+ parallel: ["multi-agent", "coordinate", "team", "concurrent", "distributed", "multiple"],
1962
1977
  document: ["doc", "documentation", "readme", "agents-md", "report"],
1963
1978
  research: ["recon", "investigate", "discover", "explore", "gather"],
1964
1979
  quality: ["gate", "check", "validate", "standard", "rule"],
@@ -1970,10 +1985,19 @@ const SYNONYM_MAP = {
1970
1985
  review: ["inspect", "audit", "pr", "pull-request", "feedback", "critique"],
1971
1986
  performance: ["speed", "latency", "optimize", "fast", "slow", "bottleneck"],
1972
1987
  data: ["csv", "xlsx", "json", "pdf", "file", "parse", "extract", "spreadsheet"],
1973
- paper: ["academic", "research", "write", "publish", "neurips", "icml", "arxiv"],
1988
+ paper: ["academic", "research", "write", "publish", "neurips", "icml", "arxiv", "section"],
1974
1989
  start: ["begin", "init", "kick-off", "launch", "bootstrap", "new"],
1975
1990
  report: ["generate", "summary", "output", "export", "document"],
1976
1991
  clean: ["cleanup", "prune", "remove", "delete", "stale", "orphan"],
1992
+ remember: ["save", "record", "persist", "store", "note", "session"],
1993
+ save: ["remember", "record", "persist", "store", "note", "keep"],
1994
+ wrong: ["investigate", "debug", "diagnose", "error", "issue", "problem", "fail"],
1995
+ correct: ["verify", "validate", "check", "ensure", "confirm"],
1996
+ write: ["paper", "section", "draft", "compose", "author", "document"],
1997
+ task: ["claim", "assign", "work", "agent", "parallel", "concurrent"],
1998
+ why: ["purpose", "reason", "intentionality", "motivation", "goal", "critter"],
1999
+ purpose: ["why", "reason", "intentionality", "motivation", "goal", "critter"],
2000
+ reflect: ["think", "pause", "reconsider", "intentionality", "metacognition", "critter"],
1977
2001
  };
1978
2002
  // ── TF-IDF: compute inverse document frequency for tags ───────────────────
1979
2003
  let _idfCache = null;
@@ -2042,7 +2066,7 @@ function ngramSimilarity(a, b, n = 3) {
2042
2066
  }
2043
2067
  // ── Dense search: TF-IDF cosine similarity on full text ──────────────────
2044
2068
  /** Tokenize text into lowercase words (alpha + underscore only) */
2045
- function tokenize(text) {
2069
+ export function tokenize(text) {
2046
2070
  return text.toLowerCase().match(/[a-z_]+/g) ?? [];
2047
2071
  }
2048
2072
  /** Build a TF vector: word → frequency */
@@ -2059,7 +2083,7 @@ function termFreq(tokens) {
2059
2083
  /** Pre-computed document TF-IDF vectors for dense search (lazy init) */
2060
2084
  let _denseVectorsCache = null;
2061
2085
  let _denseIDFCache = null;
2062
- function buildDenseIndex() {
2086
+ export function buildDenseIndex() {
2063
2087
  if (_denseVectorsCache && _denseIDFCache)
2064
2088
  return { vectors: _denseVectorsCache, idf: _denseIDFCache };
2065
2089
  // Build corpus: each tool's full text (name + tags + description + category)
@@ -2120,6 +2144,137 @@ const DOMAIN_CLUSTERS = {
2120
2144
  writing: ["research_writing", "documentation"],
2121
2145
  measurement: ["eval", "benchmark", "self_eval"],
2122
2146
  };
2147
+ // ── Execution trace edges — co-occurrence mining from tool_call_log ────────
2148
+ // Based on Agent-as-a-Graph (arxiv:2511.18194): execution trace edges
2149
+ // mine sequential co-occurrence patterns to discover implicit tool relationships.
2150
+ let _cooccurrenceCache = null;
2151
+ let _cooccurrenceCacheTime = 0;
2152
+ const COOCCURRENCE_TTL_MS = 60_000; // refresh every 60s
2153
+ /** Agent-as-a-Graph wRRF constants (arxiv:2511.18194).
2154
+ *
2155
+ * Paper optimal: α_A=1.5, α_T=1.0, K=60. Ablation confirmed this beats 5 alternatives
2156
+ * even for single-server tool retrieval (Recall@5=0.625 vs 0.583 for α_D=0.6/K=20).
2157
+ *
2158
+ * Key finding: K and α_D are coupled. K=60 dampens scores enough that α_D=1.5 lifts
2159
+ * category siblings gently. K=20 with α_D=1.5 overshoots (domain boost drowns lexical).
2160
+ * The paper's full parameter set is internally consistent — don't cherry-pick.
2161
+ *
2162
+ * Max embedding contribution at rank 1: α_T * 1000/(60+1) ≈ 16 pts (tool),
2163
+ * α_D * 1000/(60+1) ≈ 25 pts (domain). These slot into the additive scoring system
2164
+ * alongside keyword (3-50), fuzzy (4-12), dense (0-40) as a moderate signal.
2165
+ *
2166
+ * Validated via 6-config ablation grid: see tools.test.ts "wRRF α ratio ablation". */
2167
+ let WRRF_ALPHA_T = 1.0; // tool weight — direct embedding match
2168
+ let WRRF_ALPHA_D = 1.5; // domain weight — upward traversal boost (paper optimal)
2169
+ let WRRF_K = 60; // RRF smoothing constant (paper optimal)
2170
+ /** Bonus score for tools that frequently co-occur with top-ranked results.
2171
+ * Calibrated to lift borderline tools ~1-2 positions without overriding strong lexical matches.
2172
+ * At +4, a tool needs ≥8 points of lexical evidence to appear in results at all (score > 0),
2173
+ * then trace edges nudge it up. Compare: keyword:desc = +3, semantic:tag = +6, domain_boost = +5. */
2174
+ const TRACE_EDGE_BOOST = 4;
2175
+ // DB accessor injected at init time to avoid circular import (toolRegistry is pure ESM)
2176
+ let _dbAccessor = null;
2177
+ /** Inject the DB accessor — called once from index.ts at startup. */
2178
+ export function _setDbAccessor(accessor) {
2179
+ _dbAccessor = accessor;
2180
+ }
2181
+ /**
2182
+ * Mine co-occurrence patterns from tool_call_log.
2183
+ * Returns a map of toolName → [most co-occurring tools] based on session adjacency.
2184
+ *
2185
+ * Approach: for each session, pull the ordered tool sequence, then count
2186
+ * pairs within a sliding window of 5 calls. O(n) per session, no self-join.
2187
+ */
2188
+ function getCooccurrenceEdges() {
2189
+ const now = Date.now();
2190
+ if (_cooccurrenceCache && now - _cooccurrenceCacheTime < COOCCURRENCE_TTL_MS) {
2191
+ return _cooccurrenceCache;
2192
+ }
2193
+ const edges = new Map();
2194
+ if (!_dbAccessor) {
2195
+ _cooccurrenceCache = edges;
2196
+ _cooccurrenceCacheTime = now;
2197
+ return edges;
2198
+ }
2199
+ try {
2200
+ const db = _dbAccessor();
2201
+ // Pull recent sessions' tool sequences, ordered by creation time
2202
+ const rows = db.prepare(`
2203
+ SELECT session_id, tool_name
2204
+ FROM tool_call_log
2205
+ WHERE created_at > datetime('now', '-7 days')
2206
+ ORDER BY session_id, created_at ASC
2207
+ `).all();
2208
+ // Group by session
2209
+ const sessions = new Map();
2210
+ for (const row of rows) {
2211
+ const list = sessions.get(row.session_id) ?? [];
2212
+ list.push(row.tool_name);
2213
+ sessions.set(row.session_id, list);
2214
+ }
2215
+ // Count co-occurrences within sliding window of 5
2216
+ const pairCounts = new Map();
2217
+ for (const [, sequence] of sessions) {
2218
+ for (let i = 0; i < sequence.length; i++) {
2219
+ const toolA = sequence[i];
2220
+ for (let j = i + 1; j < Math.min(i + 6, sequence.length); j++) {
2221
+ const toolB = sequence[j];
2222
+ if (toolA === toolB)
2223
+ continue;
2224
+ const key = `${toolA}\0${toolB}`;
2225
+ pairCounts.set(key, (pairCounts.get(key) ?? 0) + 1);
2226
+ // Bidirectional
2227
+ const keyR = `${toolB}\0${toolA}`;
2228
+ pairCounts.set(keyR, (pairCounts.get(keyR) ?? 0) + 1);
2229
+ }
2230
+ }
2231
+ }
2232
+ // Filter to pairs with 2+ co-occurrences, sort by count
2233
+ const sorted = [...pairCounts.entries()]
2234
+ .filter(([, cnt]) => cnt >= 2)
2235
+ .sort((a, b) => b[1] - a[1]);
2236
+ for (const [key] of sorted) {
2237
+ const [toolA, toolB] = key.split("\0");
2238
+ const list = edges.get(toolA) ?? [];
2239
+ if (list.length < 10) {
2240
+ list.push(toolB);
2241
+ edges.set(toolA, list);
2242
+ }
2243
+ }
2244
+ }
2245
+ catch {
2246
+ // No DB or table not yet created — return empty (graceful degradation)
2247
+ }
2248
+ _cooccurrenceCache = edges;
2249
+ _cooccurrenceCacheTime = now;
2250
+ return edges;
2251
+ }
2252
+ /** Reset co-occurrence cache — for testing only. */
2253
+ export function _resetCooccurrenceCache() {
2254
+ _cooccurrenceCache = null;
2255
+ _cooccurrenceCacheTime = 0;
2256
+ }
2257
+ /** Inject co-occurrence edges directly — for testing only. */
2258
+ export function _setCooccurrenceForTesting(edges) {
2259
+ _cooccurrenceCache = edges;
2260
+ _cooccurrenceCacheTime = Date.now() + 999_999_999; // never expire
2261
+ }
2262
+ /** Override wRRF weights — for ablation testing only.
2263
+ * Allows comparing paper's α_A=1.5,α_T=1.0,K=60 vs our α_T=1.0,α_D=0.6,K=20. */
2264
+ export function _setWrrfParamsForTesting(params) {
2265
+ if (params.alphaT !== undefined)
2266
+ WRRF_ALPHA_T = params.alphaT;
2267
+ if (params.alphaD !== undefined)
2268
+ WRRF_ALPHA_D = params.alphaD;
2269
+ if (params.k !== undefined)
2270
+ WRRF_K = params.k;
2271
+ }
2272
+ /** Restore default wRRF weights — for ablation testing only. */
2273
+ export function _resetWrrfParamsForTesting() {
2274
+ WRRF_ALPHA_T = 1.0;
2275
+ WRRF_ALPHA_D = 1.5;
2276
+ WRRF_K = 60;
2277
+ }
2123
2278
  function getDomainBoost(category, topCategories) {
2124
2279
  for (const [, cluster] of Object.entries(DOMAIN_CLUSTERS)) {
2125
2280
  if (cluster.includes(category) && cluster.some((c) => topCategories.has(c) && c !== category)) {
@@ -2129,7 +2284,7 @@ function getDomainBoost(category, topCategories) {
2129
2284
  return 0;
2130
2285
  }
2131
2286
  /**
2132
- * Multi-modal hybrid search engine.
2287
+ * Multi-modal hybrid search engine with Agent-as-a-Graph bipartite retrieval.
2133
2288
  *
2134
2289
  * Search modes (all run in parallel, scores merged):
2135
2290
  * - **keyword**: Exact and partial word matching on name, tags, description, category
@@ -2141,6 +2296,11 @@ function getDomainBoost(category, topCategories) {
2141
2296
  * - **regex**: Pass a regex pattern to match against tool names/descriptions
2142
2297
  * - **bigram**: Two-word phrase matching (e.g., "quality gate" matched as phrase)
2143
2298
  * - **domain boost**: Related categories get boosted when top results cluster
2299
+ * - **embedding**: Neural embedding with type-specific wRRF (tool α_T + domain α_D nodes)
2300
+ * - **graph traversal**: Upward traversal from tools → domains → sibling tools
2301
+ * - **trace edges**: Execution co-occurrence mining from tool_call_log (dynamic graph edges)
2302
+ *
2303
+ * Graph architecture based on arxiv:2511.18194 (Agent-as-a-Graph).
2144
2304
  */
2145
2305
  export function hybridSearch(query, tools, options) {
2146
2306
  const queryLower = query.toLowerCase().trim();
@@ -2171,6 +2331,41 @@ export function hybridSearch(query, tools, options) {
2171
2331
  syns.forEach((s) => expandedWords.add(s));
2172
2332
  }
2173
2333
  }
2334
+ // ── Pre-compute query-invariant data ONCE before the per-tool loop ──
2335
+ // Dense: TF-IDF query vector (query-invariant — don't recompute per tool)
2336
+ let denseQueryVec = null;
2337
+ let denseDocVectors = null;
2338
+ if (mode === "dense" || mode === "hybrid") {
2339
+ const { vectors, idf: denseIdf } = buildDenseIndex();
2340
+ const queryTokens = tokenize(queryLower);
2341
+ if (queryTokens.length > 0) {
2342
+ const queryTf = termFreq(queryTokens);
2343
+ denseQueryVec = new Map();
2344
+ for (const [term, tfVal] of queryTf) {
2345
+ denseQueryVec.set(term, tfVal * (denseIdf.get(term) ?? 1));
2346
+ }
2347
+ denseDocVectors = vectors;
2348
+ }
2349
+ }
2350
+ // Embedding: pre-split ranks by node type (query-invariant — don't recompute per tool)
2351
+ let embToolRanks = null;
2352
+ let embDomainRanks = null;
2353
+ if ((mode === "embedding" || mode === "hybrid") && isEmbeddingReady() && options?.embeddingQueryVec) {
2354
+ const vecResults = embeddingSearch(options.embeddingQueryVec, 50);
2355
+ embToolRanks = new Map();
2356
+ embDomainRanks = new Map();
2357
+ let toolIdx = 0, domainIdx = 0;
2358
+ for (const r of vecResults) {
2359
+ if (r.nodeType === "domain") {
2360
+ domainIdx++;
2361
+ embDomainRanks.set(r.name.replace("domain:", ""), domainIdx);
2362
+ }
2363
+ else {
2364
+ toolIdx++;
2365
+ embToolRanks.set(r.name, toolIdx);
2366
+ }
2367
+ }
2368
+ }
2174
2369
  const toolScores = new Map();
2175
2370
  for (const tool of tools) {
2176
2371
  const entry = TOOL_REGISTRY.get(tool.name);
@@ -2347,27 +2542,35 @@ export function hybridSearch(query, tools, options) {
2347
2542
  }
2348
2543
  }
2349
2544
  }
2350
- // ── DENSE: TF-IDF cosine similarity on full text ──
2351
- if (mode === "dense" || mode === "hybrid") {
2352
- const { vectors, idf: denseIdf } = buildDenseIndex();
2353
- const queryTokens = tokenize(queryLower);
2354
- if (queryTokens.length > 0) {
2355
- const queryTf = termFreq(queryTokens);
2356
- const queryVec = new Map();
2357
- for (const [term, tfVal] of queryTf) {
2358
- queryVec.set(term, tfVal * (denseIdf.get(term) ?? 1));
2359
- }
2360
- const docVec = vectors.get(tool.name);
2361
- if (docVec) {
2362
- const sim = cosineSimilarity(queryVec, docVec);
2363
- if (sim > 0.05) {
2364
- const denseScore = Math.round(sim * 40);
2365
- score += denseScore;
2366
- reasons.push(`dense:cosine(sim=${sim.toFixed(3)},+${denseScore})`);
2367
- }
2545
+ // ── DENSE: TF-IDF cosine similarity (query vec pre-computed above) ──
2546
+ if (denseQueryVec && denseDocVectors) {
2547
+ const docVec = denseDocVectors.get(tool.name);
2548
+ if (docVec) {
2549
+ const sim = cosineSimilarity(denseQueryVec, docVec);
2550
+ if (sim > 0.05) {
2551
+ const denseScore = Math.round(sim * 40);
2552
+ score += denseScore;
2553
+ reasons.push(`dense:cosine(sim=${sim.toFixed(3)},+${denseScore})`);
2368
2554
  }
2369
2555
  }
2370
2556
  }
2557
+ // ── EMBEDDING: Agent-as-a-Graph bipartite RRF (ranks pre-computed above) ──
2558
+ if (embToolRanks && embDomainRanks) {
2559
+ const toolRank = embToolRanks.get(tool.name);
2560
+ if (toolRank) {
2561
+ const rrfScore = Math.round(WRRF_ALPHA_T * 1000 / (WRRF_K + toolRank));
2562
+ score += rrfScore;
2563
+ reasons.push(`embedding:tool_rrf(rank=${toolRank},+${rrfScore})`);
2564
+ }
2565
+ // Upward traversal: if this tool's domain matched, boost it (sibling expansion)
2566
+ const toolCategory = entry.category;
2567
+ const domainRank = embDomainRanks.get(toolCategory);
2568
+ if (domainRank) {
2569
+ const domainRrf = Math.round(WRRF_ALPHA_D * 1000 / (WRRF_K + domainRank));
2570
+ score += domainRrf;
2571
+ reasons.push(`embedding:domain_rrf(${toolCategory},rank=${domainRank},+${domainRrf})`);
2572
+ }
2573
+ }
2371
2574
  if (score > 0) {
2372
2575
  toolScores.set(tool.name, { score, reasons });
2373
2576
  }
@@ -2380,6 +2583,17 @@ export function hybridSearch(query, tools, options) {
2380
2583
  if (entry)
2381
2584
  topCategories.add(entry.category);
2382
2585
  }
2586
+ // ── Execution trace edges (2nd pass) — co-occurrence boost ──
2587
+ // Agent-as-a-Graph: mine tool_call_log for sequential co-occurrence.
2588
+ // If a top-ranked tool frequently co-occurs with another tool, boost the sibling.
2589
+ const cooccurrence = getCooccurrenceEdges();
2590
+ const topToolNames = sortedPrelim.slice(0, 5).map(([name]) => name);
2591
+ const traceBoostTargets = new Set();
2592
+ for (const topTool of topToolNames) {
2593
+ const neighbors = cooccurrence.get(topTool);
2594
+ if (neighbors)
2595
+ neighbors.forEach((n) => traceBoostTargets.add(n));
2596
+ }
2383
2597
  const results = [];
2384
2598
  for (const tool of tools) {
2385
2599
  const entry = TOOL_REGISTRY.get(tool.name);
@@ -2391,6 +2605,11 @@ export function hybridSearch(query, tools, options) {
2391
2605
  scored.score += domainBoost;
2392
2606
  scored.reasons.push(`domain_boost:+${domainBoost}`);
2393
2607
  }
2608
+ // Execution trace edge: boost tools that frequently co-occur with top results
2609
+ if (traceBoostTargets.has(tool.name) && !topToolNames.includes(tool.name)) {
2610
+ scored.score += TRACE_EDGE_BOOST;
2611
+ scored.reasons.push(`trace_edge:+${TRACE_EDGE_BOOST}`);
2612
+ }
2394
2613
  results.push({
2395
2614
  name: tool.name,
2396
2615
  description: tool.description,
@@ -2406,7 +2625,7 @@ export function hybridSearch(query, tools, options) {
2406
2625
  return results.slice(0, limit);
2407
2626
  }
2408
2627
  /** Available search modes for discover_tools */
2409
- export const SEARCH_MODES = ["hybrid", "fuzzy", "regex", "prefix", "semantic", "exact", "dense"];
2628
+ export const SEARCH_MODES = ["hybrid", "fuzzy", "regex", "prefix", "semantic", "exact", "dense", "embedding"];
2410
2629
  /** Pre-built workflow chains for common tasks */
2411
2630
  export const WORKFLOW_CHAINS = {
2412
2631
  new_feature: {
@@ -2736,5 +2955,14 @@ export const WORKFLOW_CHAINS = {
2736
2955
  { tool: "record_learning", action: "Record voice pipeline implementation patterns" },
2737
2956
  ],
2738
2957
  },
2958
+ intentionality_check: {
2959
+ name: "Intentionality Check (Critter)",
2960
+ description: "Pause before action — articulate why and who, then proceed with clarity",
2961
+ steps: [
2962
+ { tool: "critter_check", action: "Answer: Why are you doing this? Who is it for? Score your intentionality" },
2963
+ { tool: "save_session_note", action: "Persist the critter check so it survives context compaction" },
2964
+ { tool: "run_recon", action: "Gather context now that purpose is clear" },
2965
+ ],
2966
+ },
2739
2967
  };
2740
2968
  //# sourceMappingURL=toolRegistry.js.map