codesift-mcp 0.5.7 → 0.5.9

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 (84) hide show
  1. package/dist/cli/commands.d.ts.map +1 -1
  2. package/dist/cli/commands.js +16 -0
  3. package/dist/cli/commands.js.map +1 -1
  4. package/dist/cli/help.d.ts +1 -1
  5. package/dist/cli/help.d.ts.map +1 -1
  6. package/dist/cli/help.js +4 -0
  7. package/dist/cli/help.js.map +1 -1
  8. package/dist/cli/hooks.d.ts +2 -0
  9. package/dist/cli/hooks.d.ts.map +1 -1
  10. package/dist/cli/hooks.js +141 -1
  11. package/dist/cli/hooks.js.map +1 -1
  12. package/dist/cli/setup.d.ts.map +1 -1
  13. package/dist/cli/setup.js +2 -0
  14. package/dist/cli/setup.js.map +1 -1
  15. package/dist/cli/wiki-commands.d.ts +4 -0
  16. package/dist/cli/wiki-commands.d.ts.map +1 -0
  17. package/dist/cli/wiki-commands.js +53 -0
  18. package/dist/cli/wiki-commands.js.map +1 -0
  19. package/dist/formatters.d.ts.map +1 -1
  20. package/dist/formatters.js +9 -8
  21. package/dist/formatters.js.map +1 -1
  22. package/dist/instructions.d.ts +1 -1
  23. package/dist/instructions.d.ts.map +1 -1
  24. package/dist/instructions.js +3 -0
  25. package/dist/instructions.js.map +1 -1
  26. package/dist/register-tool-loaders.d.ts +1 -0
  27. package/dist/register-tool-loaders.d.ts.map +1 -1
  28. package/dist/register-tool-loaders.js +2 -0
  29. package/dist/register-tool-loaders.js.map +1 -1
  30. package/dist/register-tools.d.ts +10 -0
  31. package/dist/register-tools.d.ts.map +1 -1
  32. package/dist/register-tools.js +42 -7
  33. package/dist/register-tools.js.map +1 -1
  34. package/dist/search/tool-ranker.js +1 -1
  35. package/dist/server-helpers.d.ts.map +1 -1
  36. package/dist/server-helpers.js +12 -0
  37. package/dist/server-helpers.js.map +1 -1
  38. package/dist/tools/lens-template.d.ts +37 -0
  39. package/dist/tools/lens-template.d.ts.map +1 -0
  40. package/dist/tools/lens-template.js +326 -0
  41. package/dist/tools/lens-template.js.map +1 -0
  42. package/dist/tools/lens-tools.d.ts +12 -0
  43. package/dist/tools/lens-tools.d.ts.map +1 -0
  44. package/dist/tools/lens-tools.js +17 -0
  45. package/dist/tools/lens-tools.js.map +1 -0
  46. package/dist/tools/nextjs-component-readers.d.ts.map +1 -1
  47. package/dist/tools/nextjs-component-readers.js +1 -0
  48. package/dist/tools/nextjs-component-readers.js.map +1 -1
  49. package/dist/tools/nextjs-component-tools.js +1 -0
  50. package/dist/tools/nextjs-component-tools.js.map +1 -1
  51. package/dist/tools/nextjs-framework-audit-tools.d.ts +2 -2
  52. package/dist/tools/nextjs-framework-audit-tools.d.ts.map +1 -1
  53. package/dist/tools/plan-turn-tools.d.ts.map +1 -1
  54. package/dist/tools/plan-turn-tools.js +10 -7
  55. package/dist/tools/plan-turn-tools.js.map +1 -1
  56. package/dist/tools/wiki-escape.d.ts +11 -0
  57. package/dist/tools/wiki-escape.d.ts.map +1 -0
  58. package/dist/tools/wiki-escape.js +21 -0
  59. package/dist/tools/wiki-escape.js.map +1 -0
  60. package/dist/tools/wiki-links.d.ts +23 -0
  61. package/dist/tools/wiki-links.d.ts.map +1 -0
  62. package/dist/tools/wiki-links.js +57 -0
  63. package/dist/tools/wiki-links.js.map +1 -0
  64. package/dist/tools/wiki-lint.d.ts +13 -0
  65. package/dist/tools/wiki-lint.d.ts.map +1 -0
  66. package/dist/tools/wiki-lint.js +70 -0
  67. package/dist/tools/wiki-lint.js.map +1 -0
  68. package/dist/tools/wiki-manifest.d.ts +44 -0
  69. package/dist/tools/wiki-manifest.d.ts.map +1 -0
  70. package/dist/tools/wiki-manifest.js +72 -0
  71. package/dist/tools/wiki-manifest.js.map +1 -0
  72. package/dist/tools/wiki-page-generators.d.ts +38 -0
  73. package/dist/tools/wiki-page-generators.d.ts.map +1 -0
  74. package/dist/tools/wiki-page-generators.js +129 -0
  75. package/dist/tools/wiki-page-generators.js.map +1 -0
  76. package/dist/tools/wiki-surprise.d.ts +31 -0
  77. package/dist/tools/wiki-surprise.d.ts.map +1 -0
  78. package/dist/tools/wiki-surprise.js +77 -0
  79. package/dist/tools/wiki-surprise.js.map +1 -0
  80. package/dist/tools/wiki-tools.d.ts +14 -0
  81. package/dist/tools/wiki-tools.d.ts.map +1 -0
  82. package/dist/tools/wiki-tools.js +251 -0
  83. package/dist/tools/wiki-tools.js.map +1 -0
  84. package/package.json +1 -1
@@ -5,7 +5,7 @@ import { wrapTool, registerShortener } from "./server-helpers.js";
5
5
  import { detectProjectLanguagesSync } from "./utils/language-detect.js";
6
6
  import { STUB_LANGUAGES } from "./parser/stub-languages.js";
7
7
  import { getUsageStats, formatUsageReport } from "./storage/usage-stats.js";
8
- import { indexFolder, indexFile, indexRepo, listAllRepos, invalidateCache, getCodeIndex, searchSymbols, searchText, semanticSearch, getFileTree, getFileOutline, getRepoOutline, suggestQueries, getSymbol, getSymbols, findAndShow, findReferences, findReferencesBatch, findDeadCode, getContextBundle, formatRefsCompact, formatSymbolCompact, formatSymbolsCompact, formatBundleCompact, traceCallChain, traceComponentTree, analyzeHooks, analyzeRenders, buildContextGraph, auditCompilerReadiness, reactQuickstart, impactAnalysis, traceRoute, detectCommunities, assembleContext, getKnowledgeMap, diffOutline, changedSymbols, generateClaudeMd, codebaseRetrieval, analyzeComplexity, findClones, analyzeHotspots, crossRepoSearchSymbols, crossRepoFindReferences, searchPatterns, listPatterns, generateReport, goToDefinition, getTypeInfo, renameSymbol, getCallHierarchy, indexConversations, searchConversations, searchAllConversations, findConversationsForSymbol, scanSecrets, resolvePhpNamespace, tracePhpEvent, findPhpViews, resolvePhpService, phpSecurityScan, phpProjectAudit, consolidateMemories, readMemory, createAnalysisPlan, writeScratchpad, readScratchpad, listScratchpad, updateStepStatus, getPlan, listPlans, frequencyAnalysis, findExtensionFunctions, analyzeSealedHierarchy, traceSuspendChain, analyzeKmpDeclarations, traceFlowChain, traceHiltGraph, traceComposeTree, analyzeComposeRecomposition, traceRoomSchema, extractKotlinSerializationContract, astroAnalyzeIslands, astroHydrationAudit, astroRouteMap, astroActionsAudit, astroAudit, nextjsRouteMap, nextjsMetadataAudit, frameworkAudit, astroConfigAnalyze, astroContentCollections, analyzeProject, getExtractorVersions, getModelGraph, getTestFixtures, findFrameworkWiring, runRuff, parsePyproject, resolveConstantValue, effectiveDjangoViewSecurity, findPythonCallers, taintTrace, analyzeDjangoSettings, runMypy, runPyright, analyzePythonDeps, pythonAudit, traceFastAPIDepends, analyzeAsyncCorrectness, getPydanticModels, reviewDiff, auditScan, indexStatus, auditAgentConfig, testImpactAnalysis, dependencyAudit, migrationLint, planTurn, formatPlanTurnResult, astroMigrationCheck, analyzePrismaSchema, findPerfHotspots, fanInFanOut, coChangeAnalysis, architectureSummary, nestAudit, explainQuery, } from "./register-tool-loaders.js";
8
+ import { indexFolder, indexFile, indexRepo, listAllRepos, invalidateCache, getCodeIndex, searchSymbols, searchText, semanticSearch, getFileTree, getFileOutline, getRepoOutline, suggestQueries, getSymbol, getSymbols, findAndShow, findReferences, findReferencesBatch, findDeadCode, getContextBundle, formatRefsCompact, formatSymbolCompact, formatSymbolsCompact, formatBundleCompact, traceCallChain, traceComponentTree, analyzeHooks, analyzeRenders, buildContextGraph, auditCompilerReadiness, reactQuickstart, impactAnalysis, traceRoute, detectCommunities, assembleContext, getKnowledgeMap, diffOutline, changedSymbols, generateClaudeMd, codebaseRetrieval, analyzeComplexity, findClones, analyzeHotspots, crossRepoSearchSymbols, crossRepoFindReferences, searchPatterns, listPatterns, generateReport, goToDefinition, getTypeInfo, renameSymbol, getCallHierarchy, indexConversations, searchConversations, searchAllConversations, findConversationsForSymbol, scanSecrets, resolvePhpNamespace, tracePhpEvent, findPhpViews, resolvePhpService, phpSecurityScan, phpProjectAudit, consolidateMemories, readMemory, createAnalysisPlan, writeScratchpad, readScratchpad, listScratchpad, updateStepStatus, getPlan, listPlans, frequencyAnalysis, findExtensionFunctions, analyzeSealedHierarchy, traceSuspendChain, analyzeKmpDeclarations, traceFlowChain, traceHiltGraph, traceComposeTree, analyzeComposeRecomposition, traceRoomSchema, extractKotlinSerializationContract, astroAnalyzeIslands, astroHydrationAudit, astroRouteMap, astroActionsAudit, astroAudit, nextjsRouteMap, nextjsMetadataAudit, frameworkAudit, astroConfigAnalyze, astroContentCollections, analyzeProject, getExtractorVersions, getModelGraph, getTestFixtures, findFrameworkWiring, runRuff, parsePyproject, resolveConstantValue, effectiveDjangoViewSecurity, findPythonCallers, taintTrace, analyzeDjangoSettings, runMypy, runPyright, analyzePythonDeps, pythonAudit, traceFastAPIDepends, analyzeAsyncCorrectness, getPydanticModels, reviewDiff, auditScan, indexStatus, auditAgentConfig, testImpactAnalysis, dependencyAudit, migrationLint, planTurn, formatPlanTurnResult, astroMigrationCheck, analyzePrismaSchema, findPerfHotspots, fanInFanOut, coChangeAnalysis, architectureSummary, nestAudit, explainQuery, generateWiki, } from "./register-tool-loaders.js";
9
9
  import { formatSnapshot, getContext, getSessionState } from "./storage/session-state.js";
10
10
  import { formatComplexityCompact, formatComplexityCounts, formatClonesCompact, formatClonesCounts, formatHotspotsCompact, formatHotspotsCounts, formatTraceRouteCompact, formatTraceRouteCounts } from "./formatters-shortening.js";
11
11
  import { formatSearchSymbols, formatFileTree, formatFileOutline, formatSearchPatterns, formatDeadCode, formatComplexity, formatClones, formatHotspots, formatRepoOutline, formatSuggestQueries, formatSecrets, formatConversations, formatRoles, formatAssembleContext, formatCommunities, formatCallTree, formatTraceRoute, formatKnowledgeMap, formatImpactAnalysis, formatDiffOutline, formatChangedSymbols, formatReviewDiff, formatPerfHotspots, formatFanInFanOut, formatCoChange, formatArchitectureSummary, formatNextjsRouteMap, formatNextjsMetadataAudit, formatFrameworkAudit } from "./formatters.js";
@@ -153,7 +153,7 @@ function ensureToolRegistered(name) {
153
153
  return undefined;
154
154
  return registerToolDefinition(context.server, tool, context.languages);
155
155
  }
156
- function enableToolByName(name) {
156
+ export function enableToolByName(name) {
157
157
  const handle = ensureToolRegistered(name);
158
158
  if (!handle)
159
159
  return false;
@@ -482,6 +482,8 @@ export const CORE_TOOL_NAMES = new Set([
482
482
  // --- Composite tools ---
483
483
  "audit_scan", // one-call audit: CQ8+CQ11+CQ13+CQ14+CQ17
484
484
  "nest_audit", // one-call NestJS analysis: modules+DI+guards+routes+lifecycle
485
+ "review_diff", // 9 parallel static analysis checks on git diffs
486
+ "scan_secrets", // ~1100 secret detection rules
485
487
  // --- Essential infrastructure ---
486
488
  "index_folder", // repo onboarding
487
489
  "discover_tools", // meta: discovers remaining hidden tools
@@ -527,10 +529,20 @@ const TOOL_DEFINITIONS = [
527
529
  incremental: zBool().describe("Only re-index changed files"),
528
530
  include_paths: z.union([z.array(z.string()), z.string().transform((s) => JSON.parse(s))]).optional().describe("Glob patterns to include. Can be passed as JSON string."),
529
531
  })),
530
- handler: (args) => indexFolder(args.path, {
531
- incremental: args.incremental,
532
- include_paths: args.include_paths,
533
- }),
532
+ handler: async (args) => {
533
+ const result = await indexFolder(args.path, {
534
+ incremental: args.incremental,
535
+ include_paths: args.include_paths,
536
+ });
537
+ // Auto-enable framework tools based on indexed path (not CWD)
538
+ try {
539
+ const toEnable = await detectAutoLoadToolsCached(args.path);
540
+ for (const name of toEnable)
541
+ enableToolByName(name);
542
+ }
543
+ catch { /* best-effort — non-fatal */ }
544
+ return result;
545
+ },
534
546
  },
535
547
  {
536
548
  name: "index_repo",
@@ -1564,6 +1576,26 @@ const TOOL_DEFINITIONS = [
1564
1576
  })),
1565
1577
  handler: (args) => generateReport(args.repo),
1566
1578
  },
1579
+ {
1580
+ name: "generate_wiki",
1581
+ category: "reporting",
1582
+ searchHint: "generate wiki markdown community hub architecture documentation",
1583
+ description: "Generate wiki pages and optional Lens HTML dashboard from code topology (communities, hubs, surprises, hotspots).",
1584
+ schema: lazySchema(() => ({
1585
+ repo: z.string().optional().describe("Repository identifier (default: auto-detected from CWD)"),
1586
+ focus: z.string().optional().describe("Scope to directory (e.g., 'src/tools')"),
1587
+ output_dir: z.string().optional().describe("Output directory (default: {repo_root}/.codesift/wiki)"),
1588
+ })),
1589
+ handler: async (args) => {
1590
+ const opts = {};
1591
+ if (args.focus !== undefined)
1592
+ opts.focus = args.focus;
1593
+ if (args.output_dir !== undefined)
1594
+ opts.output_dir = args.output_dir;
1595
+ const result = await generateWiki(args.repo, opts);
1596
+ return JSON.stringify(result, null, 2);
1597
+ },
1598
+ },
1567
1599
  // --- Conversations ---
1568
1600
  {
1569
1601
  name: "index_conversations",
@@ -3607,7 +3639,7 @@ function buildToolSummaries() {
3607
3639
  /**
3608
3640
  * Extract structured param info from a ToolDefinition's Zod schema.
3609
3641
  */
3610
- function extractToolParams(def) {
3642
+ export function extractToolParams(def) {
3611
3643
  const cached = TOOL_PARAMS_CACHE.get(def.name);
3612
3644
  if (cached)
3613
3645
  return cached;
@@ -3623,6 +3655,9 @@ function extractToolParams(def) {
3623
3655
  TOOL_PARAMS_CACHE.set(def.name, params);
3624
3656
  return params;
3625
3657
  }
3658
+ export function getToolDefinition(name) {
3659
+ return TOOL_DEFINITION_MAP.get(name);
3660
+ }
3626
3661
  /**
3627
3662
  * Return full param details for a specific list of tool names.
3628
3663
  * Unknown names are collected in not_found.