kirograph 0.27.1 → 0.28.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.
- package/README.md +35 -2
- package/dist/bin/commands/annotations.js +56 -0
- package/dist/bin/commands/annotations.js.map +7 -0
- package/dist/bin/commands/ast-rewrite.js +55 -0
- package/dist/bin/commands/ast-rewrite.js.map +7 -0
- package/dist/bin/commands/bench.js +103 -0
- package/dist/bin/commands/bench.js.map +7 -0
- package/dist/bin/commands/branch.js +133 -0
- package/dist/bin/commands/branch.js.map +7 -0
- package/dist/bin/commands/callees.js +76 -0
- package/dist/bin/commands/callees.js.map +7 -0
- package/dist/bin/commands/callers.js +76 -0
- package/dist/bin/commands/callers.js.map +7 -0
- package/dist/bin/commands/changelog.js +55 -0
- package/dist/bin/commands/changelog.js.map +7 -0
- package/dist/bin/commands/circular-deps.js +68 -0
- package/dist/bin/commands/circular-deps.js.map +7 -0
- package/dist/bin/commands/commit-context.js +55 -0
- package/dist/bin/commands/commit-context.js.map +7 -0
- package/dist/bin/commands/complexity.js +60 -0
- package/dist/bin/commands/complexity.js.map +7 -0
- package/dist/bin/commands/cost.js +146 -0
- package/dist/bin/commands/cost.js.map +7 -0
- package/dist/bin/commands/dependency-depth.js +55 -0
- package/dist/bin/commands/dependency-depth.js.map +7 -0
- package/dist/bin/commands/diff-context.js +55 -0
- package/dist/bin/commands/diff-context.js.map +7 -0
- package/dist/bin/commands/distribution.js +56 -0
- package/dist/bin/commands/distribution.js.map +7 -0
- package/dist/bin/commands/doc-coverage.js +56 -0
- package/dist/bin/commands/doc-coverage.js.map +7 -0
- package/dist/bin/commands/doctor.js +202 -0
- package/dist/bin/commands/doctor.js.map +7 -0
- package/dist/bin/commands/dsm.js +56 -0
- package/dist/bin/commands/dsm.js.map +7 -0
- package/dist/bin/commands/gini.js +55 -0
- package/dist/bin/commands/gini.js.map +7 -0
- package/dist/bin/commands/god-class.js +56 -0
- package/dist/bin/commands/god-class.js.map +7 -0
- package/dist/bin/commands/health.js +55 -0
- package/dist/bin/commands/health.js.map +7 -0
- package/dist/bin/commands/help.js +224 -45
- package/dist/bin/commands/help.js.map +2 -2
- package/dist/bin/commands/impact.js +76 -0
- package/dist/bin/commands/impact.js.map +7 -0
- package/dist/bin/commands/inheritance-depth.js +56 -0
- package/dist/bin/commands/inheritance-depth.js.map +7 -0
- package/dist/bin/commands/insert-at.js +55 -0
- package/dist/bin/commands/insert-at.js.map +7 -0
- package/dist/bin/commands/largest.js +56 -0
- package/dist/bin/commands/largest.js.map +7 -0
- package/dist/bin/commands/manifest.js +158 -0
- package/dist/bin/commands/manifest.js.map +7 -0
- package/dist/bin/commands/module-api.js +57 -0
- package/dist/bin/commands/module-api.js.map +7 -0
- package/dist/bin/commands/monitor.js +91 -0
- package/dist/bin/commands/monitor.js.map +7 -0
- package/dist/bin/commands/multi-replace.js +66 -0
- package/dist/bin/commands/multi-replace.js.map +7 -0
- package/dist/bin/commands/pr-context.js +55 -0
- package/dist/bin/commands/pr-context.js.map +7 -0
- package/dist/bin/commands/query.js +19 -1
- package/dist/bin/commands/query.js.map +3 -3
- package/dist/bin/commands/rank.js +56 -0
- package/dist/bin/commands/rank.js.map +7 -0
- package/dist/bin/commands/read.js +1 -1
- package/dist/bin/commands/read.js.map +2 -2
- package/dist/bin/commands/recursion.js +56 -0
- package/dist/bin/commands/recursion.js.map +7 -0
- package/dist/bin/commands/rename-preview.js +56 -0
- package/dist/bin/commands/rename-preview.js.map +7 -0
- package/dist/bin/commands/session.js +60 -0
- package/dist/bin/commands/session.js.map +7 -0
- package/dist/bin/commands/simplify-scan.js +56 -0
- package/dist/bin/commands/simplify-scan.js.map +7 -0
- package/dist/bin/commands/str-replace.js +55 -0
- package/dist/bin/commands/str-replace.js.map +7 -0
- package/dist/bin/commands/test-coverage.js +59 -0
- package/dist/bin/commands/test-coverage.js.map +7 -0
- package/dist/bin/commands/test-map.js +56 -0
- package/dist/bin/commands/test-map.js.map +7 -0
- package/dist/bin/commands/test-risk.js +59 -0
- package/dist/bin/commands/test-risk.js.map +7 -0
- package/dist/bin/commands/type-hierarchy.js +76 -0
- package/dist/bin/commands/type-hierarchy.js.map +7 -0
- package/dist/bin/commands/unused-imports.js +55 -0
- package/dist/bin/commands/unused-imports.js.map +7 -0
- package/dist/bin/commands/upgrade.js +78 -0
- package/dist/bin/commands/upgrade.js.map +7 -0
- package/dist/bin/installer/common.js +19 -9
- package/dist/bin/installer/common.js.map +2 -2
- package/dist/bin/installer/config-prompt.js +147 -12
- package/dist/bin/installer/config-prompt.js.map +3 -3
- package/dist/bin/installer/index.js +62 -6
- package/dist/bin/installer/index.js.map +2 -2
- package/dist/bin/installer/instructions.js +14 -25
- package/dist/bin/installer/instructions.js.map +2 -2
- package/dist/bin/installer/mcp.js.map +2 -2
- package/dist/bin/installer/steering.js +569 -100
- package/dist/bin/installer/steering.js.map +2 -2
- package/dist/bin/installer/targets/aider.js +3 -3
- package/dist/bin/installer/targets/aider.js.map +2 -2
- package/dist/bin/installer/targets/amp.js +3 -3
- package/dist/bin/installer/targets/amp.js.map +2 -2
- package/dist/bin/installer/targets/antigravity.js +4 -4
- package/dist/bin/installer/targets/antigravity.js.map +2 -2
- package/dist/bin/installer/targets/augment.js +3 -3
- package/dist/bin/installer/targets/augment.js.map +2 -2
- package/dist/bin/installer/targets/claude.js +3 -3
- package/dist/bin/installer/targets/claude.js.map +2 -2
- package/dist/bin/installer/targets/cline.js +4 -4
- package/dist/bin/installer/targets/cline.js.map +2 -2
- package/dist/bin/installer/targets/codex.js +4 -4
- package/dist/bin/installer/targets/codex.js.map +2 -2
- package/dist/bin/installer/targets/continue.js +4 -4
- package/dist/bin/installer/targets/continue.js.map +2 -2
- package/dist/bin/installer/targets/copilot-cli.js +4 -4
- package/dist/bin/installer/targets/copilot-cli.js.map +2 -2
- package/dist/bin/installer/targets/copilot.js +4 -4
- package/dist/bin/installer/targets/copilot.js.map +2 -2
- package/dist/bin/installer/targets/cursor.js +5 -5
- package/dist/bin/installer/targets/cursor.js.map +2 -2
- package/dist/bin/installer/targets/devin.js +4 -4
- package/dist/bin/installer/targets/devin.js.map +2 -2
- package/dist/bin/installer/targets/gemini-cli.js +4 -4
- package/dist/bin/installer/targets/gemini-cli.js.map +2 -2
- package/dist/bin/installer/targets/generic.js +2 -2
- package/dist/bin/installer/targets/generic.js.map +2 -2
- package/dist/bin/installer/targets/goose.js +3 -4
- package/dist/bin/installer/targets/goose.js.map +3 -3
- package/dist/bin/installer/targets/index.js.map +1 -1
- package/dist/bin/installer/targets/junie.js +4 -4
- package/dist/bin/installer/targets/junie.js.map +2 -2
- package/dist/bin/installer/targets/kilo.js +4 -4
- package/dist/bin/installer/targets/kilo.js.map +2 -2
- package/dist/bin/installer/targets/kiro.js +27 -3
- package/dist/bin/installer/targets/kiro.js.map +2 -2
- package/dist/bin/installer/targets/opencode.js +3 -3
- package/dist/bin/installer/targets/opencode.js.map +2 -2
- package/dist/bin/installer/targets/openhands.js +3 -3
- package/dist/bin/installer/targets/openhands.js.map +2 -2
- package/dist/bin/installer/targets/qoder.js +2 -2
- package/dist/bin/installer/targets/qoder.js.map +2 -2
- package/dist/bin/installer/targets/qwen.js +2 -2
- package/dist/bin/installer/targets/qwen.js.map +2 -2
- package/dist/bin/installer/targets/replit.js +3 -3
- package/dist/bin/installer/targets/replit.js.map +2 -2
- package/dist/bin/installer/targets/roo.js +4 -4
- package/dist/bin/installer/targets/roo.js.map +2 -2
- package/dist/bin/installer/targets/tabnine.js +3 -3
- package/dist/bin/installer/targets/tabnine.js.map +2 -2
- package/dist/bin/installer/targets/trae.js +3 -3
- package/dist/bin/installer/targets/trae.js.map +2 -2
- package/dist/bin/installer/targets/warp.js +4 -4
- package/dist/bin/installer/targets/warp.js.map +2 -2
- package/dist/bin/installer/targets/windsurf.js +4 -4
- package/dist/bin/installer/targets/windsurf.js.map +2 -2
- package/dist/bin/kirograph.js +83 -1
- package/dist/bin/kirograph.js.map +3 -3
- package/dist/config.js +30 -8
- package/dist/config.js.map +2 -2
- package/dist/core/branch-manager.js +111 -0
- package/dist/core/branch-manager.js.map +7 -0
- package/dist/core/pipeline.js +3 -3
- package/dist/core/pipeline.js.map +2 -2
- package/dist/data/pixelrag-bridge.js +93 -0
- package/dist/data/pixelrag-bridge.js.map +7 -0
- package/dist/data/pixelrag-manager.js +416 -0
- package/dist/data/pixelrag-manager.js.map +7 -0
- package/dist/db/database.js +34 -7
- package/dist/db/database.js.map +2 -2
- package/dist/db/schema.sql +7 -1
- package/dist/extraction/complexity.js +116 -0
- package/dist/extraction/complexity.js.map +7 -0
- package/dist/extraction/extractor.js +52 -1
- package/dist/extraction/extractor.js.map +2 -2
- package/dist/graph/git-context.js +229 -0
- package/dist/graph/git-context.js.map +7 -0
- package/dist/index.js +4 -2
- package/dist/index.js.map +2 -2
- package/dist/mcp/cache.js +1 -1
- package/dist/mcp/cache.js.map +2 -2
- package/dist/mcp/handler.js +446 -0
- package/dist/mcp/handler.js.map +7 -0
- package/dist/mcp/handlers/architecture.js +297 -0
- package/dist/mcp/handlers/architecture.js.map +7 -0
- package/dist/mcp/handlers/branch.js +175 -0
- package/dist/mcp/handlers/branch.js.map +7 -0
- package/dist/mcp/handlers/code-health.js +563 -0
- package/dist/mcp/handlers/code-health.js.map +7 -0
- package/dist/mcp/handlers/complexity.js +267 -0
- package/dist/mcp/handlers/complexity.js.map +7 -0
- package/dist/mcp/handlers/core.js +611 -0
- package/dist/mcp/handlers/core.js.map +7 -0
- package/dist/mcp/handlers/data.js +337 -0
- package/dist/mcp/handlers/data.js.map +7 -0
- package/dist/mcp/handlers/docs.js +159 -0
- package/dist/mcp/handlers/docs.js.map +7 -0
- package/dist/mcp/handlers/edit-primitives.js +200 -0
- package/dist/mcp/handlers/edit-primitives.js.map +7 -0
- package/dist/mcp/handlers/git-context.js +286 -0
- package/dist/mcp/handlers/git-context.js.map +7 -0
- package/dist/mcp/handlers/memory.js +363 -0
- package/dist/mcp/handlers/memory.js.map +7 -0
- package/dist/mcp/handlers/patterns.js +310 -0
- package/dist/mcp/handlers/patterns.js.map +7 -0
- package/dist/mcp/handlers/security.js +699 -0
- package/dist/mcp/handlers/security.js.map +7 -0
- package/dist/mcp/handlers/utils.js +97 -0
- package/dist/mcp/handlers/utils.js.map +7 -0
- package/dist/mcp/handlers/watchmen.js +104 -0
- package/dist/mcp/handlers/watchmen.js.map +7 -0
- package/dist/mcp/handlers/wiki.js +242 -0
- package/dist/mcp/handlers/wiki.js.map +7 -0
- package/dist/mcp/server.js +72 -3
- package/dist/mcp/server.js.map +2 -2
- package/dist/mcp/tool-names.js +136 -10
- package/dist/mcp/tool-names.js.map +2 -2
- package/dist/mcp/tools.js +846 -3019
- package/dist/mcp/tools.js.map +3 -3
- package/dist/types.js.map +2 -2
- package/package.json +36 -10
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/mcp/handlers/wiki.ts"],
|
|
4
|
+
"sourcesContent": ["import KiroGraph from '../../index';\n\nexport async function handleWiki(toolName: string, args: Record<string, unknown>, cg: KiroGraph): Promise<string> {\n switch (toolName) {\n case 'kirograph_wiki_ingest': {\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const projectRoot = cg.getProjectRoot();\n const config = await loadConfig(projectRoot);\n if (!config.enableWiki) return 'Wiki is not enabled. Set enableWiki: true in .kirograph/config.json';\n\n const { KiroGraphWiki } = await Promise.resolve().then(() => require('../../wiki/index.js'));\n const db = cg.getDatabase();\n db.applyWikiSchema();\n const wiki = new KiroGraphWiki(db.getRawDb(), projectRoot + '/.kirograph', {\n autoResolveConflicts: (config as any).wikiAutoResolveConflicts ?? false,\n });\n wiki.initialize();\n\n const source = args.source as string ?? '';\n const sourceName = args.sourceName as string ?? 'source';\n if (!source) return 'source is required';\n\n if (config.wikiSynthesisMode === 'local') {\n wiki.queueSource(source, sourceName);\n const count = wiki.getQueueCount();\n return `Source \"${sourceName}\" queued for local wiki synthesis (${count} in queue). The agentStop hook will run \"kirograph wiki synthesize\" automatically.`;\n }\n\n const prompt = wiki.getIngestPrompt(source, sourceName);\n return `WIKI_INGEST_PROMPT\\n${prompt}\\n\\nProduce WIKI_DIFF blocks following SCHEMA.md, then call kirograph_wiki_apply_diff with the diff string.`;\n }\n\n case 'kirograph_wiki_apply_diff': {\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const projectRoot = cg.getProjectRoot();\n const config = await loadConfig(projectRoot);\n if (!config.enableWiki) return 'Wiki is not enabled. Set enableWiki: true in .kirograph/config.json';\n\n const { KiroGraphWiki } = await Promise.resolve().then(() => require('../../wiki/index.js'));\n const db = cg.getDatabase();\n db.applyWikiSchema();\n const wiki = new KiroGraphWiki(db.getRawDb(), projectRoot + '/.kirograph', {\n autoResolveConflicts: (config as any).wikiAutoResolveConflicts ?? false,\n });\n wiki.initialize();\n\n const diff = args.diff as string ?? '';\n if (!diff) return 'diff is required';\n\n const result = wiki.applyDiff(diff);\n const lines: string[] = ['\u2713 Wiki diff applied'];\n if (result.created.length) lines.push(` Created: ${result.created.join(', ')}`);\n if (result.updated.length) lines.push(` Updated: ${result.updated.join(', ')}`);\n if (result.conflictsResolved.length) lines.push(` Conflicts auto-resolved: ${result.conflictsResolved.join(', ')}`);\n if (result.conflictsPending.length) {\n lines.push(` \u26A1 Conflicts pending (${result.conflictsPending.length}):`);\n for (const c of result.conflictsPending) {\n lines.push(` ${c.page} \u00A7${c.section}: \"${c.existing}\" vs \"${c.incoming}\" (source: ${c.source})`);\n }\n }\n return lines.join('\\n');\n }\n\n case 'kirograph_wiki_search': {\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const projectRoot = cg.getProjectRoot();\n const config = await loadConfig(projectRoot);\n if (!config.enableWiki) return 'Wiki is not enabled. Set enableWiki: true in .kirograph/config.json';\n\n const { KiroGraphWiki } = await Promise.resolve().then(() => require('../../wiki/index.js'));\n const db = cg.getDatabase();\n db.applyWikiSchema();\n const wiki = new KiroGraphWiki(db.getRawDb(), projectRoot + '/.kirograph');\n wiki.initialize();\n\n const query = args.query as string ?? '';\n if (!query) return 'query is required';\n const limit = Math.min(Number(args.limit ?? 5), 20);\n\n const results = wiki.search(query, limit);\n if (results.length === 0) return `No wiki pages found for \"${query}\".`;\n\n const lines = [`Wiki Search: ${query}`, ''];\n for (const { page, score } of results) {\n lines.push(`[${page.slug}] ${page.title} (score: ${score.toFixed(3)})`);\n // Show first non-heading line as preview\n const preview = page.content.split('\\n').find(l => l.trim() && !l.startsWith('#'));\n if (preview) lines.push(` ${preview.trim().slice(0, 120)}`);\n lines.push('');\n }\n return lines.join('\\n').trim();\n }\n\n case 'kirograph_wiki_page': {\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const projectRoot = cg.getProjectRoot();\n const config = await loadConfig(projectRoot);\n if (!config.enableWiki) return 'Wiki is not enabled. Set enableWiki: true in .kirograph/config.json';\n\n const { KiroGraphWiki } = await Promise.resolve().then(() => require('../../wiki/index.js'));\n const db = cg.getDatabase();\n db.applyWikiSchema();\n const wiki = new KiroGraphWiki(db.getRawDb(), projectRoot + '/.kirograph');\n wiki.initialize();\n\n const slug = args.slug as string ?? '';\n if (!slug) return 'slug is required';\n\n const page = wiki.getPage(slug);\n if (!page) return `Wiki page \"${slug}\" not found. Use kirograph_wiki_list to see available pages.`;\n\n return page.content;\n }\n\n case 'kirograph_wiki_lint': {\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const projectRoot = cg.getProjectRoot();\n const config = await loadConfig(projectRoot);\n if (!config.enableWiki) return 'Wiki is not enabled. Set enableWiki: true in .kirograph/config.json';\n\n const { KiroGraphWiki } = await Promise.resolve().then(() => require('../../wiki/index.js'));\n const db = cg.getDatabase();\n db.applyWikiSchema();\n const wiki = new KiroGraphWiki(db.getRawDb(), projectRoot + '/.kirograph');\n wiki.initialize();\n\n const issues = wiki.lint();\n if (issues.length === 0) return '\u2713 Wiki lint passed \u2014 no issues found.';\n\n const lines = [`Wiki Lint \u2014 ${issues.length} issue(s)`, ''];\n for (const issue of issues) {\n const icon = issue.kind === 'contradiction' ? '\u26A1' : issue.kind === 'orphan' ? '\u25CB' : issue.kind === 'broken_link' ? '\uD83D\uDD17' : '\u26A0';\n lines.push(`${icon} [${issue.kind}] ${issue.slug}`);\n lines.push(` ${issue.detail}`);\n lines.push('');\n }\n return lines.join('\\n').trim();\n }\n\n case 'kirograph_wiki_list': {\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const projectRoot = cg.getProjectRoot();\n const config = await loadConfig(projectRoot);\n if (!config.enableWiki) return 'Wiki is not enabled. Set enableWiki: true in .kirograph/config.json';\n\n const { KiroGraphWiki } = await Promise.resolve().then(() => require('../../wiki/index.js'));\n const db = cg.getDatabase();\n db.applyWikiSchema();\n const wiki = new KiroGraphWiki(db.getRawDb(), projectRoot + '/.kirograph');\n wiki.initialize();\n\n const pages = wiki.listPages();\n if (pages.length === 0) return 'Wiki is empty. Use kirograph_wiki_ingest to add pages.';\n\n const stats = wiki.getStats();\n const lines = [\n `Wiki \u2014 ${stats.pageCount} page(s), ${stats.totalSources} total sources`,\n '',\n ];\n for (const page of pages) {\n const date = new Date(page.updatedAt).toISOString().slice(0, 10);\n lines.push(` ${page.slug.padEnd(32)} ${page.title} (${page.sourceCount} src, ${date})`);\n }\n return lines.join('\\n');\n }\n\n case 'kirograph_wiki_synthesize': {\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const projectRoot = args.projectPath as string ?? cg.getProjectRoot();\n const config = await loadConfig(projectRoot);\n if (!config.enableWiki) return 'Wiki is not enabled. Set enableWiki: true in .kirograph/config.json';\n if (config.wikiSynthesisMode !== 'local') return 'wikiSynthesisMode is not \"local\". This tool is for local-model synthesis only.';\n\n const { KiroGraphWiki } = await Promise.resolve().then(() => require('../../wiki/index.js'));\n const db = cg.getDatabase();\n db.applyWikiSchema();\n const wiki = new KiroGraphWiki(db.getRawDb(), projectRoot + '/.kirograph', {\n autoResolveConflicts: (config as any).wikiAutoResolveConflicts ?? false,\n });\n wiki.initialize();\n\n const queueCount = wiki.getQueueCount();\n if (queueCount === 0) return 'Wiki queue is empty \u2014 nothing to synthesize.';\n\n const result = await wiki.synthesize(config.wikiLocalModel, true);\n const synthLines = [`Wiki synthesis complete \u2014 processed ${result.processed} source(s).`];\n if (result.created.length) synthLines.push(`Created: ${result.created.join(', ')}`);\n if (result.updated.length) synthLines.push(`Updated: ${result.updated.join(', ')}`);\n if (result.errors.length) synthLines.push(`Errors: ${result.errors.join('; ')}`);\n return synthLines.join('\\n');\n }\n\n case 'kirograph_wiki_init': {\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const projectRoot = args.projectPath as string ?? cg.getProjectRoot();\n const config = await loadConfig(projectRoot);\n if (!config.enableWiki) return 'Wiki is not enabled. Set enableWiki: true in .kirograph/config.json';\n\n const { KiroGraphWiki } = await Promise.resolve().then(() => require('../../wiki/index.js'));\n const db = cg.getDatabase();\n db.applyWikiSchema();\n const wiki = new KiroGraphWiki(db.getRawDb(), projectRoot + '/.kirograph', {\n autoResolveConflicts: (config as any).wikiAutoResolveConflicts ?? false,\n });\n wiki.initWiki();\n return 'Wiki initialized. SCHEMA.md and MANIFEST.md created in .kirograph/wiki/.';\n }\n\n case 'kirograph_wiki_reindex': {\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const projectRoot = args.projectPath as string ?? cg.getProjectRoot();\n const config = await loadConfig(projectRoot);\n if (!config.enableWiki) return 'Wiki is not enabled. Set enableWiki: true in .kirograph/config.json';\n\n const { KiroGraphWiki } = await Promise.resolve().then(() => require('../../wiki/index.js'));\n const db = cg.getDatabase();\n db.applyWikiSchema();\n const wiki = new KiroGraphWiki(db.getRawDb(), projectRoot + '/.kirograph');\n wiki.initialize();\n\n const count = wiki.reindex();\n return `Reindexed ${count} wiki page(s) from .kirograph/wiki/*.md.`;\n }\n\n case 'kirograph_wiki_status': {\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const projectRoot = args.projectPath as string ?? cg.getProjectRoot();\n const config = await loadConfig(projectRoot);\n if (!config.enableWiki) return 'Wiki is not enabled. Set enableWiki: true in .kirograph/config.json';\n\n const { KiroGraphWiki } = await Promise.resolve().then(() => require('../../wiki/index.js'));\n const db = cg.getDatabase();\n db.applyWikiSchema();\n const wiki = new KiroGraphWiki(db.getRawDb(), projectRoot + '/.kirograph');\n wiki.initialize();\n\n const stats = wiki.getStats();\n const oldest = stats.oldestPage ? new Date(stats.oldestPage).toISOString().slice(0, 10) : 'n/a';\n const newest = stats.newestPage ? new Date(stats.newestPage).toISOString().slice(0, 10) : 'n/a';\n return [\n 'Wiki Status:',\n ` Pages: ${stats.pageCount}`,\n ` Total sources: ${stats.totalSources}`,\n ` Oldest page: ${oldest}`,\n ` Newest page: ${newest}`,\n ` Wiki dir: .kirograph/wiki/`,\n ].join('\\n');\n }\n\n default:\n return `Unknown tool: ${toolName}`;\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,eAAsB,WAAW,UAAkB,MAA+B,IAAgC;AAChH,UAAQ,UAAU;AAAA,IAChB,KAAK,yBAAyB;AAC5B,YAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,YAAM,cAAc,GAAG,eAAe;AACtC,YAAM,SAAS,MAAM,WAAW,WAAW;AAC3C,UAAI,CAAC,OAAO,WAAY,QAAO;AAE/B,YAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,qBAAqB,CAAC;AAC3F,YAAM,KAAK,GAAG,YAAY;AAC1B,SAAG,gBAAgB;AACnB,YAAM,OAAO,IAAI,cAAc,GAAG,SAAS,GAAG,cAAc,eAAe;AAAA,QACzE,sBAAuB,OAAe,4BAA4B;AAAA,MACpE,CAAC;AACD,WAAK,WAAW;AAEhB,YAAM,SAAS,KAAK,UAAoB;AACxC,YAAM,aAAa,KAAK,cAAwB;AAChD,UAAI,CAAC,OAAQ,QAAO;AAEpB,UAAI,OAAO,sBAAsB,SAAS;AACxC,aAAK,YAAY,QAAQ,UAAU;AACnC,cAAM,QAAQ,KAAK,cAAc;AACjC,eAAO,WAAW,UAAU,sCAAsC,KAAK;AAAA,MACzE;AAEA,YAAM,SAAS,KAAK,gBAAgB,QAAQ,UAAU;AACtD,aAAO;AAAA,EAAuB,MAAM;AAAA;AAAA;AAAA,IACtC;AAAA,IAEA,KAAK,6BAA6B;AAChC,YAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,YAAM,cAAc,GAAG,eAAe;AACtC,YAAM,SAAS,MAAM,WAAW,WAAW;AAC3C,UAAI,CAAC,OAAO,WAAY,QAAO;AAE/B,YAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,qBAAqB,CAAC;AAC3F,YAAM,KAAK,GAAG,YAAY;AAC1B,SAAG,gBAAgB;AACnB,YAAM,OAAO,IAAI,cAAc,GAAG,SAAS,GAAG,cAAc,eAAe;AAAA,QACzE,sBAAuB,OAAe,4BAA4B;AAAA,MACpE,CAAC;AACD,WAAK,WAAW;AAEhB,YAAM,OAAO,KAAK,QAAkB;AACpC,UAAI,CAAC,KAAM,QAAO;AAElB,YAAM,SAAS,KAAK,UAAU,IAAI;AAClC,YAAM,QAAkB,CAAC,0BAAqB;AAC9C,UAAI,OAAO,QAAQ,OAAQ,OAAM,KAAK,cAAc,OAAO,QAAQ,KAAK,IAAI,CAAC,EAAE;AAC/E,UAAI,OAAO,QAAQ,OAAQ,OAAM,KAAK,cAAc,OAAO,QAAQ,KAAK,IAAI,CAAC,EAAE;AAC/E,UAAI,OAAO,kBAAkB,OAAQ,OAAM,KAAK,8BAA8B,OAAO,kBAAkB,KAAK,IAAI,CAAC,EAAE;AACnH,UAAI,OAAO,iBAAiB,QAAQ;AAClC,cAAM,KAAK,+BAA0B,OAAO,iBAAiB,MAAM,IAAI;AACvE,mBAAW,KAAK,OAAO,kBAAkB;AACvC,gBAAM,KAAK,OAAO,EAAE,IAAI,QAAK,EAAE,OAAO,MAAM,EAAE,QAAQ,SAAS,EAAE,QAAQ,cAAc,EAAE,MAAM,GAAG;AAAA,QACpG;AAAA,MACF;AACA,aAAO,MAAM,KAAK,IAAI;AAAA,IACxB;AAAA,IAEA,KAAK,yBAAyB;AAC5B,YAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,YAAM,cAAc,GAAG,eAAe;AACtC,YAAM,SAAS,MAAM,WAAW,WAAW;AAC3C,UAAI,CAAC,OAAO,WAAY,QAAO;AAE/B,YAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,qBAAqB,CAAC;AAC3F,YAAM,KAAK,GAAG,YAAY;AAC1B,SAAG,gBAAgB;AACnB,YAAM,OAAO,IAAI,cAAc,GAAG,SAAS,GAAG,cAAc,aAAa;AACzE,WAAK,WAAW;AAEhB,YAAM,QAAQ,KAAK,SAAmB;AACtC,UAAI,CAAC,MAAO,QAAO;AACnB,YAAM,QAAQ,KAAK,IAAI,OAAO,KAAK,SAAS,CAAC,GAAG,EAAE;AAElD,YAAM,UAAU,KAAK,OAAO,OAAO,KAAK;AACxC,UAAI,QAAQ,WAAW,EAAG,QAAO,4BAA4B,KAAK;AAElE,YAAM,QAAQ,CAAC,gBAAgB,KAAK,IAAI,EAAE;AAC1C,iBAAW,EAAE,MAAM,MAAM,KAAK,SAAS;AACrC,cAAM,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,aAAa,MAAM,QAAQ,CAAC,CAAC,GAAG;AAEvE,cAAM,UAAU,KAAK,QAAQ,MAAM,IAAI,EAAE,KAAK,OAAK,EAAE,KAAK,KAAK,CAAC,EAAE,WAAW,GAAG,CAAC;AACjF,YAAI,QAAS,OAAM,KAAK,KAAK,QAAQ,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,EAAE;AAC3D,cAAM,KAAK,EAAE;AAAA,MACf;AACA,aAAO,MAAM,KAAK,IAAI,EAAE,KAAK;AAAA,IAC/B;AAAA,IAEA,KAAK,uBAAuB;AAC1B,YAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,YAAM,cAAc,GAAG,eAAe;AACtC,YAAM,SAAS,MAAM,WAAW,WAAW;AAC3C,UAAI,CAAC,OAAO,WAAY,QAAO;AAE/B,YAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,qBAAqB,CAAC;AAC3F,YAAM,KAAK,GAAG,YAAY;AAC1B,SAAG,gBAAgB;AACnB,YAAM,OAAO,IAAI,cAAc,GAAG,SAAS,GAAG,cAAc,aAAa;AACzE,WAAK,WAAW;AAEhB,YAAM,OAAO,KAAK,QAAkB;AACpC,UAAI,CAAC,KAAM,QAAO;AAElB,YAAM,OAAO,KAAK,QAAQ,IAAI;AAC9B,UAAI,CAAC,KAAM,QAAO,cAAc,IAAI;AAEpC,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,KAAK,uBAAuB;AAC1B,YAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,YAAM,cAAc,GAAG,eAAe;AACtC,YAAM,SAAS,MAAM,WAAW,WAAW;AAC3C,UAAI,CAAC,OAAO,WAAY,QAAO;AAE/B,YAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,qBAAqB,CAAC;AAC3F,YAAM,KAAK,GAAG,YAAY;AAC1B,SAAG,gBAAgB;AACnB,YAAM,OAAO,IAAI,cAAc,GAAG,SAAS,GAAG,cAAc,aAAa;AACzE,WAAK,WAAW;AAEhB,YAAM,SAAS,KAAK,KAAK;AACzB,UAAI,OAAO,WAAW,EAAG,QAAO;AAEhC,YAAM,QAAQ,CAAC,oBAAe,OAAO,MAAM,aAAa,EAAE;AAC1D,iBAAW,SAAS,QAAQ;AAC1B,cAAM,OAAO,MAAM,SAAS,kBAAkB,WAAM,MAAM,SAAS,WAAW,WAAM,MAAM,SAAS,gBAAgB,cAAO;AAC1H,cAAM,KAAK,GAAG,IAAI,KAAK,MAAM,IAAI,KAAK,MAAM,IAAI,EAAE;AAClD,cAAM,KAAK,KAAK,MAAM,MAAM,EAAE;AAC9B,cAAM,KAAK,EAAE;AAAA,MACf;AACA,aAAO,MAAM,KAAK,IAAI,EAAE,KAAK;AAAA,IAC/B;AAAA,IAEA,KAAK,uBAAuB;AAC1B,YAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,YAAM,cAAc,GAAG,eAAe;AACtC,YAAM,SAAS,MAAM,WAAW,WAAW;AAC3C,UAAI,CAAC,OAAO,WAAY,QAAO;AAE/B,YAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,qBAAqB,CAAC;AAC3F,YAAM,KAAK,GAAG,YAAY;AAC1B,SAAG,gBAAgB;AACnB,YAAM,OAAO,IAAI,cAAc,GAAG,SAAS,GAAG,cAAc,aAAa;AACzE,WAAK,WAAW;AAEhB,YAAM,QAAQ,KAAK,UAAU;AAC7B,UAAI,MAAM,WAAW,EAAG,QAAO;AAE/B,YAAM,QAAQ,KAAK,SAAS;AAC5B,YAAM,QAAQ;AAAA,QACZ,eAAU,MAAM,SAAS,aAAa,MAAM,YAAY;AAAA,QACxD;AAAA,MACF;AACA,iBAAW,QAAQ,OAAO;AACxB,cAAM,OAAO,IAAI,KAAK,KAAK,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,EAAE;AAC/D,cAAM,KAAK,KAAK,KAAK,KAAK,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,MAAM,KAAK,WAAW,SAAS,IAAI,GAAG;AAAA,MAC1F;AACA,aAAO,MAAM,KAAK,IAAI;AAAA,IACxB;AAAA,IAEA,KAAK,6BAA6B;AAChC,YAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,YAAM,cAAc,KAAK,eAAyB,GAAG,eAAe;AACpE,YAAM,SAAS,MAAM,WAAW,WAAW;AAC3C,UAAI,CAAC,OAAO,WAAY,QAAO;AAC/B,UAAI,OAAO,sBAAsB,QAAS,QAAO;AAEjD,YAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,qBAAqB,CAAC;AAC3F,YAAM,KAAK,GAAG,YAAY;AAC1B,SAAG,gBAAgB;AACnB,YAAM,OAAO,IAAI,cAAc,GAAG,SAAS,GAAG,cAAc,eAAe;AAAA,QACzE,sBAAuB,OAAe,4BAA4B;AAAA,MACpE,CAAC;AACD,WAAK,WAAW;AAEhB,YAAM,aAAa,KAAK,cAAc;AACtC,UAAI,eAAe,EAAG,QAAO;AAE7B,YAAM,SAAS,MAAM,KAAK,WAAW,OAAO,gBAAgB,IAAI;AAChE,YAAM,aAAa,CAAC,4CAAuC,OAAO,SAAS,aAAa;AACxF,UAAI,OAAO,QAAQ,OAAQ,YAAW,KAAK,YAAY,OAAO,QAAQ,KAAK,IAAI,CAAC,EAAE;AAClF,UAAI,OAAO,QAAQ,OAAQ,YAAW,KAAK,YAAY,OAAO,QAAQ,KAAK,IAAI,CAAC,EAAE;AAClF,UAAI,OAAO,OAAO,OAAQ,YAAW,KAAK,WAAW,OAAO,OAAO,KAAK,IAAI,CAAC,EAAE;AAC/E,aAAO,WAAW,KAAK,IAAI;AAAA,IAC7B;AAAA,IAEA,KAAK,uBAAuB;AAC1B,YAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,YAAM,cAAc,KAAK,eAAyB,GAAG,eAAe;AACpE,YAAM,SAAS,MAAM,WAAW,WAAW;AAC3C,UAAI,CAAC,OAAO,WAAY,QAAO;AAE/B,YAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,qBAAqB,CAAC;AAC3F,YAAM,KAAK,GAAG,YAAY;AAC1B,SAAG,gBAAgB;AACnB,YAAM,OAAO,IAAI,cAAc,GAAG,SAAS,GAAG,cAAc,eAAe;AAAA,QACzE,sBAAuB,OAAe,4BAA4B;AAAA,MACpE,CAAC;AACD,WAAK,SAAS;AACd,aAAO;AAAA,IACT;AAAA,IAEA,KAAK,0BAA0B;AAC7B,YAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,YAAM,cAAc,KAAK,eAAyB,GAAG,eAAe;AACpE,YAAM,SAAS,MAAM,WAAW,WAAW;AAC3C,UAAI,CAAC,OAAO,WAAY,QAAO;AAE/B,YAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,qBAAqB,CAAC;AAC3F,YAAM,KAAK,GAAG,YAAY;AAC1B,SAAG,gBAAgB;AACnB,YAAM,OAAO,IAAI,cAAc,GAAG,SAAS,GAAG,cAAc,aAAa;AACzE,WAAK,WAAW;AAEhB,YAAM,QAAQ,KAAK,QAAQ;AAC3B,aAAO,aAAa,KAAK;AAAA,IAC3B;AAAA,IAEA,KAAK,yBAAyB;AAC5B,YAAM,EAAE,WAAW,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,iBAAiB,CAAC;AACpF,YAAM,cAAc,KAAK,eAAyB,GAAG,eAAe;AACpE,YAAM,SAAS,MAAM,WAAW,WAAW;AAC3C,UAAI,CAAC,OAAO,WAAY,QAAO;AAE/B,YAAM,EAAE,cAAc,IAAI,MAAM,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,qBAAqB,CAAC;AAC3F,YAAM,KAAK,GAAG,YAAY;AAC1B,SAAG,gBAAgB;AACnB,YAAM,OAAO,IAAI,cAAc,GAAG,SAAS,GAAG,cAAc,aAAa;AACzE,WAAK,WAAW;AAEhB,YAAM,QAAQ,KAAK,SAAS;AAC5B,YAAM,SAAS,MAAM,aAAa,IAAI,KAAK,MAAM,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,EAAE,IAAI;AAC1F,YAAM,SAAS,MAAM,aAAa,IAAI,KAAK,MAAM,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,EAAE,IAAI;AAC1F,aAAO;AAAA,QACL;AAAA,QACA,oBAAoB,MAAM,SAAS;AAAA,QACnC,oBAAoB,MAAM,YAAY;AAAA,QACtC,oBAAoB,MAAM;AAAA,QAC1B,oBAAoB,MAAM;AAAA,QAC1B;AAAA,MACF,EAAE,KAAK,IAAI;AAAA,IACb;AAAA,IAEA;AACE,aAAO,iBAAiB,QAAQ;AAAA,EACpC;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/mcp/server.js
CHANGED
|
@@ -39,6 +39,32 @@ var import_tool_names = require("./tool-names");
|
|
|
39
39
|
var import_runner = require("../patterns/runner");
|
|
40
40
|
const SERVER_INFO = { name: "kirograph", version: "0.1.0" };
|
|
41
41
|
const PROTOCOL_VERSION = "2024-11-05";
|
|
42
|
+
const WRITE_TOOLS = /* @__PURE__ */ new Set([
|
|
43
|
+
"kirograph_snapshot_save",
|
|
44
|
+
"kirograph_exec",
|
|
45
|
+
"kirograph_refactor",
|
|
46
|
+
"kirograph_str_replace",
|
|
47
|
+
"kirograph_multi_str_replace",
|
|
48
|
+
"kirograph_insert_at",
|
|
49
|
+
"kirograph_ast_grep_rewrite",
|
|
50
|
+
"kirograph_session_start",
|
|
51
|
+
"kirograph_session_end",
|
|
52
|
+
"kirograph_mem_store",
|
|
53
|
+
"kirograph_mem_mark_reviewed",
|
|
54
|
+
"kirograph_mem_capture",
|
|
55
|
+
"kirograph_mem_save_prompt",
|
|
56
|
+
"kirograph_mem_prune",
|
|
57
|
+
"kirograph_mem_conflicts_ignore",
|
|
58
|
+
"kirograph_wiki_ingest",
|
|
59
|
+
"kirograph_wiki_apply_diff",
|
|
60
|
+
"kirograph_wiki_init",
|
|
61
|
+
"kirograph_wiki_reindex",
|
|
62
|
+
"kirograph_watchmen_reset",
|
|
63
|
+
"kirograph_vuln_add",
|
|
64
|
+
"kirograph_vuln_suppress",
|
|
65
|
+
"kirograph_pattern_save_baseline"
|
|
66
|
+
]);
|
|
67
|
+
const ALWAYS_LOAD_TOOLS = /* @__PURE__ */ new Set(["kirograph_context", "kirograph_search", "kirograph_status"]);
|
|
42
68
|
class MCPServer {
|
|
43
69
|
constructor(projectPath) {
|
|
44
70
|
this.transport = new import_transport.StdioTransport();
|
|
@@ -93,7 +119,7 @@ class MCPServer {
|
|
|
93
119
|
}
|
|
94
120
|
return {
|
|
95
121
|
protocolVersion: PROTOCOL_VERSION,
|
|
96
|
-
capabilities: { tools: {} },
|
|
122
|
+
capabilities: { tools: {}, resources: {} },
|
|
97
123
|
serverInfo: SERVER_INFO
|
|
98
124
|
};
|
|
99
125
|
}
|
|
@@ -117,6 +143,43 @@ class MCPServer {
|
|
|
117
143
|
};
|
|
118
144
|
}
|
|
119
145
|
}
|
|
146
|
+
case "resources/list": {
|
|
147
|
+
const resources = [];
|
|
148
|
+
if (this.cg) {
|
|
149
|
+
resources.push(
|
|
150
|
+
{ uri: "kirograph://status", name: "Index Status", description: "Graph index health and statistics", mimeType: "text/plain" },
|
|
151
|
+
{ uri: "kirograph://files", name: "Indexed Files", description: "All indexed files with language and symbol counts", mimeType: "text/plain" },
|
|
152
|
+
{ uri: "kirograph://overview", name: "Project Overview", description: "High-level summary: node count, edge count, top files", mimeType: "text/plain" }
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
return { resources };
|
|
156
|
+
}
|
|
157
|
+
case "resources/read": {
|
|
158
|
+
const uri = req.params?.uri ?? "";
|
|
159
|
+
if (!this.cg) return { contents: [{ uri, mimeType: "text/plain", text: "KiroGraph not initialized." }] };
|
|
160
|
+
let text = "";
|
|
161
|
+
try {
|
|
162
|
+
if (uri === "kirograph://status") {
|
|
163
|
+
text = (await this.toolHandler.handle("kirograph_status", {})).content.map((c) => c.text).join("");
|
|
164
|
+
} else if (uri === "kirograph://files") {
|
|
165
|
+
text = (await this.toolHandler.handle("kirograph_files", {})).content.map((c) => c.text).join("");
|
|
166
|
+
} else if (uri === "kirograph://overview") {
|
|
167
|
+
const stats = await this.cg.getStats();
|
|
168
|
+
text = [
|
|
169
|
+
`Project: ${this.projectPath ?? "unknown"}`,
|
|
170
|
+
`Nodes: ${stats.nodes.toLocaleString()}`,
|
|
171
|
+
`Edges: ${stats.edges.toLocaleString()}`,
|
|
172
|
+
`Files: ${stats.files.toLocaleString()}`,
|
|
173
|
+
`DB: ${(stats.dbSizeBytes / 1024 / 1024).toFixed(2)} MB`
|
|
174
|
+
].join("\n");
|
|
175
|
+
} else {
|
|
176
|
+
return { contents: [{ uri, mimeType: "text/plain", text: `Unknown resource: ${uri}` }] };
|
|
177
|
+
}
|
|
178
|
+
} catch (err) {
|
|
179
|
+
text = `Error reading resource: ${err instanceof Error ? err.message : String(err)}`;
|
|
180
|
+
}
|
|
181
|
+
return { contents: [{ uri, mimeType: "text/plain", text }] };
|
|
182
|
+
}
|
|
120
183
|
case "notifications/initialized":
|
|
121
184
|
case "ping":
|
|
122
185
|
return {};
|
|
@@ -134,10 +197,16 @@ class MCPServer {
|
|
|
134
197
|
}
|
|
135
198
|
}
|
|
136
199
|
}
|
|
137
|
-
const
|
|
200
|
+
const filtered = import_tools.tools.filter((t) => !hidden.has(t.name));
|
|
138
201
|
if (this.config?.enablePatterns && new import_runner.PatternRunner().isAvailable()) {
|
|
139
|
-
|
|
202
|
+
filtered.push(import_tools.LIVE_SEARCH_TOOL_DEFINITION);
|
|
140
203
|
}
|
|
204
|
+
const list = filtered.map((t) => {
|
|
205
|
+
const ann = { ...t.annotations };
|
|
206
|
+
if (!WRITE_TOOLS.has(t.name)) ann.readOnlyHint = true;
|
|
207
|
+
if (ALWAYS_LOAD_TOOLS.has(t.name)) ann["anthropic:alwaysLoad"] = true;
|
|
208
|
+
return Object.keys(ann).length > 0 ? { ...t, annotations: ann } : t;
|
|
209
|
+
});
|
|
141
210
|
this.enabledTools = list;
|
|
142
211
|
this.enabledToolNames = new Set(list.map((t) => t.name));
|
|
143
212
|
}
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/mcp/server.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * KiroGraph MCP Server\n * Implements the Model Context Protocol over stdio.\n */\n\nimport * as path from 'path';\nimport KiroGraph, { findNearestKiroGraphRoot } from '../index';\nimport { StdioTransport, ErrorCodes } from './transport';\nimport { tools, ToolHandler, LIVE_SEARCH_TOOL_DEFINITION } from './tools';\nimport { FEATURE_TOOL_SETS } from './tool-names';\nimport { PatternRunner } from '../patterns/runner';\nimport type { JsonRpcMessage } from './transport';\n\nconst SERVER_INFO = { name: 'kirograph', version: '0.1.0' };\nconst PROTOCOL_VERSION = '2024-11-05';\n\nexport class MCPServer {\n private transport = new StdioTransport();\n private cg: KiroGraph | null = null;\n private toolHandler: ToolHandler;\n private projectPath: string | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private config: any | null = null;\n private enabledTools: typeof tools = [];\n private enabledToolNames = new Set<string>();\n\n constructor(projectPath?: string) {\n // Normalize to absolute path immediately to prevent any path traversal\n this.projectPath = projectPath ? path.resolve(projectPath) : null;\n this.toolHandler = new ToolHandler(null);\n this.setEnabledTools(); // default: all tools until config loads\n }\n\n async start(): Promise<void> {\n // Load config before the transport starts so tools/list is never served stale.\n if (this.projectPath) await this.tryInit(this.projectPath);\n this.transport.start(this.handleMessage.bind(this));\n process.on('SIGINT', () => this.stop());\n process.on('SIGTERM', () => this.stop());\n process.stdin.on('end', () => this.stop());\n process.stdin.on('close', () => this.stop());\n }\n\n private async tryInit(projectPath: string): Promise<void> {\n const root = findNearestKiroGraphRoot(projectPath);\n if (!root) { this.projectPath = projectPath; return; }\n this.projectPath = root;\n try {\n this.cg = await KiroGraph.open(root);\n this.toolHandler.setDefaultKiroGraph(this.cg);\n } catch (err) {\n process.stderr.write(`[KiroGraph MCP] Failed to open ${root}: ${err}\\n`);\n }\n try {\n const { loadConfig } = await Promise.resolve().then(() => require('../config.js'));\n this.config = await loadConfig(root);\n } catch {\n // config is optional \u2014 proceed without it\n }\n this.setEnabledTools();\n }\n\n private async handleMessage(msg: JsonRpcMessage): Promise<unknown> {\n const req = msg as any;\n\n switch (req.method) {\n case 'initialize': {\n // If start() already loaded config from --path, skip re-init.\n // If no config yet (no --path), try the rootUri sent by the IDE.\n if (!this.config) {\n const rootUri = req.params?.rootUri ?? req.params?.workspaceFolders?.[0]?.uri;\n if (rootUri) {\n const p = rootUri.startsWith('file://') ? decodeURIComponent(rootUri.replace(/^file:\\/\\/\\/?/, '')) : rootUri;\n await this.tryInit(p);\n }\n }\n return {\n protocolVersion: PROTOCOL_VERSION,\n capabilities: { tools: {} },\n serverInfo: SERVER_INFO,\n };\n }\n\n case 'tools/list': {\n return { tools: this.enabledTools };\n }\n\n case 'tools/call': {\n const { name, arguments: args = {} } = req.params ?? {};\n if (!this.enabledToolNames.has(name)) {\n return {\n content: [{ type: 'text', text: `Tool \"${name}\" is not available. The feature it belongs to is not enabled in .kirograph/config.json.` }],\n isError: true,\n };\n }\n try {\n return await this.toolHandler.handle(name, args);\n } catch (err) {\n return {\n content: [{ type: 'text', text: `Error: ${err instanceof Error ? err.message : String(err)}` }],\n isError: true,\n };\n }\n }\n\n case 'notifications/initialized':\n case 'ping':\n return {};\n\n default:\n this.transport.sendError(req.id, ErrorCodes.MethodNotFound, `Unknown method: ${req.method}`);\n return undefined;\n }\n }\n\n private setEnabledTools(): void {\n // Only exclude a tool when its feature flag is explicitly false.\n // undefined = not in config (old install) = keep the tool.\n const hidden = new Set<string>();\n if (this.config) {\n for (const [flag, names] of Object.entries(FEATURE_TOOL_SETS)) {\n if (this.config[flag] === false) {\n for (const n of names) hidden.add(n);\n }\n }\n }\n const
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,WAAsB;AACtB,eAAoD;AACpD,uBAA2C;AAC3C,mBAAgE;AAChE,wBAAkC;AAClC,oBAA8B;AAG9B,MAAM,cAAc,EAAE,MAAM,aAAa,SAAS,QAAQ;AAC1D,MAAM,mBAAmB;
|
|
4
|
+
"sourcesContent": ["/**\n * KiroGraph MCP Server\n * Implements the Model Context Protocol over stdio.\n */\n\nimport * as path from 'path';\nimport KiroGraph, { findNearestKiroGraphRoot } from '../index';\nimport { StdioTransport, ErrorCodes } from './transport';\nimport { tools, ToolHandler, LIVE_SEARCH_TOOL_DEFINITION } from './tools';\nimport { FEATURE_TOOL_SETS } from './tool-names';\nimport { PatternRunner } from '../patterns/runner';\nimport type { JsonRpcMessage } from './transport';\n\nconst SERVER_INFO = { name: 'kirograph', version: '0.1.0' };\nconst PROTOCOL_VERSION = '2024-11-05';\n\n// Tools that write, execute, or mutate state \u2014 excluded from readOnlyHint.\nconst WRITE_TOOLS = new Set([\n 'kirograph_snapshot_save', 'kirograph_exec', 'kirograph_refactor',\n 'kirograph_str_replace', 'kirograph_multi_str_replace', 'kirograph_insert_at', 'kirograph_ast_grep_rewrite',\n 'kirograph_session_start', 'kirograph_session_end',\n 'kirograph_mem_store', 'kirograph_mem_mark_reviewed', 'kirograph_mem_capture',\n 'kirograph_mem_save_prompt', 'kirograph_mem_prune', 'kirograph_mem_conflicts_ignore',\n 'kirograph_wiki_ingest', 'kirograph_wiki_apply_diff', 'kirograph_wiki_init',\n 'kirograph_wiki_reindex', 'kirograph_watchmen_reset', 'kirograph_vuln_add',\n 'kirograph_vuln_suppress', 'kirograph_pattern_save_baseline',\n]);\n\n// Tools that should always be loaded by the IDE regardless of compaction.\nconst ALWAYS_LOAD_TOOLS = new Set(['kirograph_context', 'kirograph_search', 'kirograph_status']);\n\nexport class MCPServer {\n private transport = new StdioTransport();\n private cg: KiroGraph | null = null;\n private toolHandler: ToolHandler;\n private projectPath: string | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private config: any | null = null;\n private enabledTools: typeof tools = [];\n private enabledToolNames = new Set<string>();\n\n constructor(projectPath?: string) {\n // Normalize to absolute path immediately to prevent any path traversal\n this.projectPath = projectPath ? path.resolve(projectPath) : null;\n this.toolHandler = new ToolHandler(null);\n this.setEnabledTools(); // default: all tools until config loads\n }\n\n async start(): Promise<void> {\n // Load config before the transport starts so tools/list is never served stale.\n if (this.projectPath) await this.tryInit(this.projectPath);\n this.transport.start(this.handleMessage.bind(this));\n process.on('SIGINT', () => this.stop());\n process.on('SIGTERM', () => this.stop());\n process.stdin.on('end', () => this.stop());\n process.stdin.on('close', () => this.stop());\n }\n\n private async tryInit(projectPath: string): Promise<void> {\n const root = findNearestKiroGraphRoot(projectPath);\n if (!root) { this.projectPath = projectPath; return; }\n this.projectPath = root;\n try {\n this.cg = await KiroGraph.open(root);\n this.toolHandler.setDefaultKiroGraph(this.cg);\n } catch (err) {\n process.stderr.write(`[KiroGraph MCP] Failed to open ${root}: ${err}\\n`);\n }\n try {\n const { loadConfig } = await Promise.resolve().then(() => require('../config.js'));\n this.config = await loadConfig(root);\n } catch {\n // config is optional \u2014 proceed without it\n }\n this.setEnabledTools();\n }\n\n private async handleMessage(msg: JsonRpcMessage): Promise<unknown> {\n const req = msg as any;\n\n switch (req.method) {\n case 'initialize': {\n // If start() already loaded config from --path, skip re-init.\n // If no config yet (no --path), try the rootUri sent by the IDE.\n if (!this.config) {\n const rootUri = req.params?.rootUri ?? req.params?.workspaceFolders?.[0]?.uri;\n if (rootUri) {\n const p = rootUri.startsWith('file://') ? decodeURIComponent(rootUri.replace(/^file:\\/\\/\\/?/, '')) : rootUri;\n await this.tryInit(p);\n }\n }\n return {\n protocolVersion: PROTOCOL_VERSION,\n capabilities: { tools: {}, resources: {} },\n serverInfo: SERVER_INFO,\n };\n }\n\n case 'tools/list': {\n return { tools: this.enabledTools };\n }\n\n case 'tools/call': {\n const { name, arguments: args = {} } = req.params ?? {};\n if (!this.enabledToolNames.has(name)) {\n return {\n content: [{ type: 'text', text: `Tool \"${name}\" is not available. The feature it belongs to is not enabled in .kirograph/config.json.` }],\n isError: true,\n };\n }\n try {\n return await this.toolHandler.handle(name, args);\n } catch (err) {\n return {\n content: [{ type: 'text', text: `Error: ${err instanceof Error ? err.message : String(err)}` }],\n isError: true,\n };\n }\n }\n\n case 'resources/list': {\n const resources = [];\n if (this.cg) {\n resources.push(\n { uri: 'kirograph://status', name: 'Index Status', description: 'Graph index health and statistics', mimeType: 'text/plain' },\n { uri: 'kirograph://files', name: 'Indexed Files', description: 'All indexed files with language and symbol counts', mimeType: 'text/plain' },\n { uri: 'kirograph://overview', name: 'Project Overview', description: 'High-level summary: node count, edge count, top files', mimeType: 'text/plain' },\n );\n }\n return { resources };\n }\n\n case 'resources/read': {\n const uri = (req.params?.uri as string) ?? '';\n if (!this.cg) return { contents: [{ uri, mimeType: 'text/plain', text: 'KiroGraph not initialized.' }] };\n let text = '';\n try {\n if (uri === 'kirograph://status') {\n text = (await this.toolHandler.handle('kirograph_status', {})).content.map(c => c.text).join('');\n } else if (uri === 'kirograph://files') {\n text = (await this.toolHandler.handle('kirograph_files', {})).content.map(c => c.text).join('');\n } else if (uri === 'kirograph://overview') {\n const stats = await this.cg.getStats();\n text = [\n `Project: ${this.projectPath ?? 'unknown'}`,\n `Nodes: ${stats.nodes.toLocaleString()}`,\n `Edges: ${stats.edges.toLocaleString()}`,\n `Files: ${stats.files.toLocaleString()}`,\n `DB: ${(stats.dbSizeBytes / 1024 / 1024).toFixed(2)} MB`,\n ].join('\\n');\n } else {\n return { contents: [{ uri, mimeType: 'text/plain', text: `Unknown resource: ${uri}` }] };\n }\n } catch (err) {\n text = `Error reading resource: ${err instanceof Error ? err.message : String(err)}`;\n }\n return { contents: [{ uri, mimeType: 'text/plain', text }] };\n }\n\n case 'notifications/initialized':\n case 'ping':\n return {};\n\n default:\n this.transport.sendError(req.id, ErrorCodes.MethodNotFound, `Unknown method: ${req.method}`);\n return undefined;\n }\n }\n\n private setEnabledTools(): void {\n // Only exclude a tool when its feature flag is explicitly false.\n // undefined = not in config (old install) = keep the tool.\n const hidden = new Set<string>();\n if (this.config) {\n for (const [flag, names] of Object.entries(FEATURE_TOOL_SETS)) {\n if (this.config[flag] === false) {\n for (const n of names) hidden.add(n);\n }\n }\n }\n const filtered = tools.filter(t => !hidden.has(t.name));\n if (this.config?.enablePatterns && new PatternRunner().isAvailable()) {\n filtered.push(LIVE_SEARCH_TOOL_DEFINITION);\n }\n // Inject MCP annotations: readOnlyHint for non-mutating tools, alwaysLoad for core entry points.\n const list = filtered.map(t => {\n const ann: Record<string, unknown> = { ...t.annotations };\n if (!WRITE_TOOLS.has(t.name)) ann.readOnlyHint = true;\n if (ALWAYS_LOAD_TOOLS.has(t.name)) ann['anthropic:alwaysLoad'] = true;\n return Object.keys(ann).length > 0 ? { ...t, annotations: ann } : t;\n });\n this.enabledTools = list;\n this.enabledToolNames = new Set(list.map(t => t.name));\n }\n\n private stop(): void {\n this.cg?.close();\n this.toolHandler.closeAll();\n process.exit(0);\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["KiroGraph"]
|
|
7
7
|
}
|
package/dist/mcp/tool-names.js
CHANGED
|
@@ -23,10 +23,17 @@ __export(tool_names_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(tool_names_exports);
|
|
25
25
|
const FEATURE_TOOL_SETS = {
|
|
26
|
+
enableNavigation: [
|
|
27
|
+
"kirograph_status",
|
|
28
|
+
"kirograph_files",
|
|
29
|
+
"kirograph_impact"
|
|
30
|
+
],
|
|
26
31
|
enableArchitecture: [
|
|
27
32
|
"kirograph_architecture",
|
|
28
33
|
"kirograph_coupling",
|
|
29
|
-
"kirograph_package"
|
|
34
|
+
"kirograph_package",
|
|
35
|
+
"kirograph_communities",
|
|
36
|
+
"kirograph_manifest"
|
|
30
37
|
],
|
|
31
38
|
enableMemory: [
|
|
32
39
|
"kirograph_mem_search",
|
|
@@ -40,7 +47,11 @@ const FEATURE_TOOL_SETS = {
|
|
|
40
47
|
"kirograph_mem_capture",
|
|
41
48
|
"kirograph_mem_save_prompt",
|
|
42
49
|
"kirograph_mem_suggest_topic_key",
|
|
43
|
-
"kirograph_mem_conflicts_scan"
|
|
50
|
+
"kirograph_mem_conflicts_scan",
|
|
51
|
+
"kirograph_mem_prune",
|
|
52
|
+
"kirograph_mem_lint",
|
|
53
|
+
"kirograph_mem_conflicts_list",
|
|
54
|
+
"kirograph_mem_conflicts_ignore"
|
|
44
55
|
],
|
|
45
56
|
enableDocs: [
|
|
46
57
|
"kirograph_docs_toc",
|
|
@@ -57,7 +68,9 @@ const FEATURE_TOOL_SETS = {
|
|
|
57
68
|
"kirograph_data_search",
|
|
58
69
|
"kirograph_data_join",
|
|
59
70
|
"kirograph_data_correlations",
|
|
60
|
-
"kirograph_data_quality"
|
|
71
|
+
"kirograph_data_quality",
|
|
72
|
+
"kirograph_data_drift",
|
|
73
|
+
"kirograph_data_history"
|
|
61
74
|
],
|
|
62
75
|
enableSecurity: [
|
|
63
76
|
"kirograph_security",
|
|
@@ -87,26 +100,81 @@ const FEATURE_TOOL_SETS = {
|
|
|
87
100
|
"kirograph_wiki_search",
|
|
88
101
|
"kirograph_wiki_page",
|
|
89
102
|
"kirograph_wiki_lint",
|
|
90
|
-
"kirograph_wiki_list"
|
|
103
|
+
"kirograph_wiki_list",
|
|
104
|
+
"kirograph_wiki_synthesize",
|
|
105
|
+
"kirograph_wiki_init",
|
|
106
|
+
"kirograph_wiki_reindex",
|
|
107
|
+
"kirograph_wiki_status"
|
|
91
108
|
],
|
|
92
109
|
enableCodeHealth: [
|
|
93
110
|
"kirograph_hotspots",
|
|
94
111
|
"kirograph_surprising",
|
|
95
112
|
"kirograph_diff",
|
|
113
|
+
"kirograph_snapshot_save",
|
|
114
|
+
"kirograph_snapshot_list",
|
|
96
115
|
"kirograph_dead_code",
|
|
97
|
-
"kirograph_circular_deps"
|
|
98
|
-
|
|
99
|
-
|
|
116
|
+
"kirograph_circular_deps",
|
|
117
|
+
"kirograph_path",
|
|
118
|
+
"kirograph_affected",
|
|
100
119
|
"kirograph_type_hierarchy",
|
|
120
|
+
"kirograph_module_api",
|
|
121
|
+
"kirograph_rename_preview",
|
|
122
|
+
"kirograph_doc_coverage",
|
|
123
|
+
"kirograph_god_class",
|
|
124
|
+
"kirograph_inheritance_depth",
|
|
125
|
+
"kirograph_recursion",
|
|
126
|
+
"kirograph_largest",
|
|
127
|
+
"kirograph_rank",
|
|
128
|
+
"kirograph_distribution",
|
|
129
|
+
"kirograph_annotations",
|
|
130
|
+
"kirograph_session_start",
|
|
131
|
+
"kirograph_session_end",
|
|
132
|
+
"kirograph_unused_imports",
|
|
133
|
+
"kirograph_gini",
|
|
134
|
+
"kirograph_dependency_depth"
|
|
135
|
+
],
|
|
136
|
+
enableComplexity: [
|
|
137
|
+
"kirograph_complexity",
|
|
138
|
+
"kirograph_simplify_scan",
|
|
139
|
+
"kirograph_health",
|
|
140
|
+
"kirograph_dsm",
|
|
141
|
+
"kirograph_test_risk"
|
|
142
|
+
],
|
|
143
|
+
enableGitContext: [
|
|
101
144
|
"kirograph_flows",
|
|
102
|
-
"
|
|
103
|
-
"
|
|
145
|
+
"kirograph_diff_context",
|
|
146
|
+
"kirograph_commit_context",
|
|
147
|
+
"kirograph_pr_context",
|
|
148
|
+
"kirograph_changelog",
|
|
149
|
+
"kirograph_test_map",
|
|
150
|
+
"kirograph_test_coverage"
|
|
151
|
+
],
|
|
152
|
+
enableEditPrimitives: [
|
|
153
|
+
"kirograph_refactor",
|
|
154
|
+
"kirograph_str_replace",
|
|
155
|
+
"kirograph_multi_str_replace",
|
|
156
|
+
"kirograph_insert_at",
|
|
157
|
+
"kirograph_ast_grep_rewrite"
|
|
158
|
+
],
|
|
159
|
+
enableBranch: [
|
|
160
|
+
"kirograph_branch_list",
|
|
161
|
+
"kirograph_branch_diff",
|
|
162
|
+
"kirograph_branch_search"
|
|
104
163
|
],
|
|
105
164
|
enableAgentUtils: [
|
|
106
165
|
"kirograph_read",
|
|
166
|
+
"kirograph_retrieve",
|
|
107
167
|
"kirograph_gain",
|
|
108
168
|
"kirograph_budget"
|
|
109
169
|
],
|
|
170
|
+
enableGeneralCompression: [
|
|
171
|
+
"kirograph_compress"
|
|
172
|
+
],
|
|
173
|
+
enableWatchmen: [
|
|
174
|
+
"kirograph_watchmen_status",
|
|
175
|
+
"kirograph_watchmen_synthesize",
|
|
176
|
+
"kirograph_watchmen_reset"
|
|
177
|
+
],
|
|
110
178
|
// Derived from shellCompressionLevel — disabled when compression is off
|
|
111
179
|
enableShellExec: [
|
|
112
180
|
"kirograph_exec"
|
|
@@ -135,13 +203,18 @@ const KIROGRAPH_TOOL_NAMES = [
|
|
|
135
203
|
"kirograph_hotspots",
|
|
136
204
|
"kirograph_surprising",
|
|
137
205
|
"kirograph_diff",
|
|
206
|
+
"kirograph_snapshot_save",
|
|
207
|
+
"kirograph_snapshot_list",
|
|
138
208
|
"kirograph_type_hierarchy",
|
|
139
209
|
"kirograph_exec",
|
|
140
210
|
"kirograph_gain",
|
|
141
211
|
"kirograph_read",
|
|
212
|
+
"kirograph_retrieve",
|
|
213
|
+
"kirograph_compress",
|
|
142
214
|
"kirograph_budget",
|
|
143
215
|
"kirograph_flows",
|
|
144
216
|
"kirograph_communities",
|
|
217
|
+
"kirograph_manifest",
|
|
145
218
|
"kirograph_refactor",
|
|
146
219
|
"kirograph_mem_search",
|
|
147
220
|
"kirograph_mem_store",
|
|
@@ -155,6 +228,10 @@ const KIROGRAPH_TOOL_NAMES = [
|
|
|
155
228
|
"kirograph_mem_save_prompt",
|
|
156
229
|
"kirograph_mem_suggest_topic_key",
|
|
157
230
|
"kirograph_mem_conflicts_scan",
|
|
231
|
+
"kirograph_mem_prune",
|
|
232
|
+
"kirograph_mem_lint",
|
|
233
|
+
"kirograph_mem_conflicts_list",
|
|
234
|
+
"kirograph_mem_conflicts_ignore",
|
|
158
235
|
"kirograph_docs_toc",
|
|
159
236
|
"kirograph_docs_search",
|
|
160
237
|
"kirograph_docs_section",
|
|
@@ -168,6 +245,8 @@ const KIROGRAPH_TOOL_NAMES = [
|
|
|
168
245
|
"kirograph_data_join",
|
|
169
246
|
"kirograph_data_correlations",
|
|
170
247
|
"kirograph_data_quality",
|
|
248
|
+
"kirograph_data_drift",
|
|
249
|
+
"kirograph_data_history",
|
|
171
250
|
"kirograph_security",
|
|
172
251
|
"kirograph_vulns",
|
|
173
252
|
"kirograph_sbom",
|
|
@@ -191,7 +270,54 @@ const KIROGRAPH_TOOL_NAMES = [
|
|
|
191
270
|
"kirograph_wiki_search",
|
|
192
271
|
"kirograph_wiki_page",
|
|
193
272
|
"kirograph_wiki_lint",
|
|
194
|
-
"kirograph_wiki_list"
|
|
273
|
+
"kirograph_wiki_list",
|
|
274
|
+
"kirograph_wiki_synthesize",
|
|
275
|
+
"kirograph_wiki_init",
|
|
276
|
+
"kirograph_wiki_reindex",
|
|
277
|
+
"kirograph_wiki_status",
|
|
278
|
+
"kirograph_watchmen_status",
|
|
279
|
+
"kirograph_watchmen_synthesize",
|
|
280
|
+
"kirograph_watchmen_reset",
|
|
281
|
+
"kirograph_affected",
|
|
282
|
+
// Phase 2 additions — complexity
|
|
283
|
+
"kirograph_complexity",
|
|
284
|
+
"kirograph_simplify_scan",
|
|
285
|
+
// Phase 2 additions — git context
|
|
286
|
+
"kirograph_diff_context",
|
|
287
|
+
"kirograph_commit_context",
|
|
288
|
+
"kirograph_pr_context",
|
|
289
|
+
"kirograph_changelog",
|
|
290
|
+
"kirograph_test_map",
|
|
291
|
+
// Phase 1 additions
|
|
292
|
+
"kirograph_module_api",
|
|
293
|
+
"kirograph_rename_preview",
|
|
294
|
+
"kirograph_doc_coverage",
|
|
295
|
+
"kirograph_god_class",
|
|
296
|
+
"kirograph_inheritance_depth",
|
|
297
|
+
"kirograph_recursion",
|
|
298
|
+
"kirograph_largest",
|
|
299
|
+
"kirograph_rank",
|
|
300
|
+
"kirograph_distribution",
|
|
301
|
+
"kirograph_annotations",
|
|
302
|
+
"kirograph_session_start",
|
|
303
|
+
"kirograph_session_end",
|
|
304
|
+
"kirograph_unused_imports",
|
|
305
|
+
"kirograph_gini",
|
|
306
|
+
"kirograph_dependency_depth",
|
|
307
|
+
"kirograph_str_replace",
|
|
308
|
+
"kirograph_multi_str_replace",
|
|
309
|
+
"kirograph_insert_at",
|
|
310
|
+
"kirograph_ast_grep_rewrite",
|
|
311
|
+
// Phase 3 additions — complexity
|
|
312
|
+
"kirograph_health",
|
|
313
|
+
"kirograph_dsm",
|
|
314
|
+
"kirograph_test_risk",
|
|
315
|
+
// Phase 3 additions — git context
|
|
316
|
+
"kirograph_test_coverage",
|
|
317
|
+
// Phase 4 additions — branch
|
|
318
|
+
"kirograph_branch_list",
|
|
319
|
+
"kirograph_branch_diff",
|
|
320
|
+
"kirograph_branch_search"
|
|
195
321
|
];
|
|
196
322
|
// Annotate the CommonJS export names for ESM import in node:
|
|
197
323
|
0 && (module.exports = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/mcp/tool-names.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Feature flag \u2192 tool names. Used by the MCP server to filter tools/list\n * and by the installer to trim the autoApprove list.\n * Only tools NOT present in any feature set are always-on core tools.\n */\nexport const FEATURE_TOOL_SETS: Record<string, string[]> = {\n enableArchitecture: [\n 'kirograph_architecture',\n 'kirograph_coupling',\n 'kirograph_package',\n ],\n enableMemory: [\n 'kirograph_mem_search',\n 'kirograph_mem_store',\n 'kirograph_mem_timeline',\n 'kirograph_mem_status',\n 'kirograph_mem_review',\n 'kirograph_mem_mark_reviewed',\n 'kirograph_mem_compare',\n 'kirograph_mem_judge',\n 'kirograph_mem_capture',\n 'kirograph_mem_save_prompt',\n 'kirograph_mem_suggest_topic_key',\n 'kirograph_mem_conflicts_scan',\n ],\n enableDocs: [\n 'kirograph_docs_toc',\n 'kirograph_docs_search',\n 'kirograph_docs_section',\n 'kirograph_docs_outline',\n 'kirograph_docs_refs',\n ],\n enableData: [\n 'kirograph_data_list',\n 'kirograph_data_describe',\n 'kirograph_data_query',\n 'kirograph_data_aggregate',\n 'kirograph_data_search',\n 'kirograph_data_join',\n 'kirograph_data_correlations',\n 'kirograph_data_quality',\n ],\n enableSecurity: [\n 'kirograph_security',\n 'kirograph_vulns',\n 'kirograph_vuln_add',\n 'kirograph_vuln_suppress',\n 'kirograph_sbom',\n 'kirograph_vex',\n 'kirograph_reachability',\n 'kirograph_staleness',\n 'kirograph_licenses',\n 'kirograph_attack_surface',\n 'kirograph_secrets',\n 'kirograph_security_flows',\n 'kirograph_supply_chain',\n 'kirograph_dep_confusion',\n 'kirograph_remediation',\n ],\n enablePatterns: [\n 'kirograph_pattern_coverage',\n 'kirograph_pattern_save_baseline',\n 'kirograph_pattern_diff',\n ],\n enableWiki: [\n 'kirograph_wiki_ingest',\n 'kirograph_wiki_apply_diff',\n 'kirograph_wiki_search',\n 'kirograph_wiki_page',\n 'kirograph_wiki_lint',\n 'kirograph_wiki_list',\n ],\n enableCodeHealth: [\n 'kirograph_hotspots',\n 'kirograph_surprising',\n 'kirograph_diff',\n 'kirograph_dead_code',\n 'kirograph_circular_deps',\n ],\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,MAAM,oBAA8C;AAAA,EACzD,oBAAoB;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,
|
|
4
|
+
"sourcesContent": ["/**\n * Feature flag \u2192 tool names. Used by the MCP server to filter tools/list\n * and by the installer to trim the autoApprove list.\n * Only tools NOT present in any feature set are always-on core tools.\n */\nexport const FEATURE_TOOL_SETS: Record<string, string[]> = {\n enableNavigation: [\n 'kirograph_status',\n 'kirograph_files',\n 'kirograph_impact',\n ],\n enableArchitecture: [\n 'kirograph_architecture',\n 'kirograph_coupling',\n 'kirograph_package',\n 'kirograph_communities',\n 'kirograph_manifest',\n ],\n enableMemory: [\n 'kirograph_mem_search',\n 'kirograph_mem_store',\n 'kirograph_mem_timeline',\n 'kirograph_mem_status',\n 'kirograph_mem_review',\n 'kirograph_mem_mark_reviewed',\n 'kirograph_mem_compare',\n 'kirograph_mem_judge',\n 'kirograph_mem_capture',\n 'kirograph_mem_save_prompt',\n 'kirograph_mem_suggest_topic_key',\n 'kirograph_mem_conflicts_scan',\n 'kirograph_mem_prune',\n 'kirograph_mem_lint',\n 'kirograph_mem_conflicts_list',\n 'kirograph_mem_conflicts_ignore',\n ],\n enableDocs: [\n 'kirograph_docs_toc',\n 'kirograph_docs_search',\n 'kirograph_docs_section',\n 'kirograph_docs_outline',\n 'kirograph_docs_refs',\n ],\n enableData: [\n 'kirograph_data_list',\n 'kirograph_data_describe',\n 'kirograph_data_query',\n 'kirograph_data_aggregate',\n 'kirograph_data_search',\n 'kirograph_data_join',\n 'kirograph_data_correlations',\n 'kirograph_data_quality',\n 'kirograph_data_drift',\n 'kirograph_data_history',\n ],\n enableSecurity: [\n 'kirograph_security',\n 'kirograph_vulns',\n 'kirograph_vuln_add',\n 'kirograph_vuln_suppress',\n 'kirograph_sbom',\n 'kirograph_vex',\n 'kirograph_reachability',\n 'kirograph_staleness',\n 'kirograph_licenses',\n 'kirograph_attack_surface',\n 'kirograph_secrets',\n 'kirograph_security_flows',\n 'kirograph_supply_chain',\n 'kirograph_dep_confusion',\n 'kirograph_remediation',\n ],\n enablePatterns: [\n 'kirograph_pattern_coverage',\n 'kirograph_pattern_save_baseline',\n 'kirograph_pattern_diff',\n ],\n enableWiki: [\n 'kirograph_wiki_ingest',\n 'kirograph_wiki_apply_diff',\n 'kirograph_wiki_search',\n 'kirograph_wiki_page',\n 'kirograph_wiki_lint',\n 'kirograph_wiki_list',\n 'kirograph_wiki_synthesize',\n 'kirograph_wiki_init',\n 'kirograph_wiki_reindex',\n 'kirograph_wiki_status',\n ],\n enableCodeHealth: [\n 'kirograph_hotspots',\n 'kirograph_surprising',\n 'kirograph_diff',\n 'kirograph_snapshot_save',\n 'kirograph_snapshot_list',\n 'kirograph_dead_code',\n 'kirograph_circular_deps',\n 'kirograph_path',\n 'kirograph_affected',\n 'kirograph_type_hierarchy',\n 'kirograph_module_api',\n 'kirograph_rename_preview',\n 'kirograph_doc_coverage',\n 'kirograph_god_class',\n 'kirograph_inheritance_depth',\n 'kirograph_recursion',\n 'kirograph_largest',\n 'kirograph_rank',\n 'kirograph_distribution',\n 'kirograph_annotations',\n 'kirograph_session_start',\n 'kirograph_session_end',\n 'kirograph_unused_imports',\n 'kirograph_gini',\n 'kirograph_dependency_depth',\n ],\n enableComplexity: [\n 'kirograph_complexity',\n 'kirograph_simplify_scan',\n 'kirograph_health',\n 'kirograph_dsm',\n 'kirograph_test_risk',\n ],\n enableGitContext: [\n 'kirograph_flows',\n 'kirograph_diff_context',\n 'kirograph_commit_context',\n 'kirograph_pr_context',\n 'kirograph_changelog',\n 'kirograph_test_map',\n 'kirograph_test_coverage',\n ],\n enableEditPrimitives: [\n 'kirograph_refactor',\n 'kirograph_str_replace',\n 'kirograph_multi_str_replace',\n 'kirograph_insert_at',\n 'kirograph_ast_grep_rewrite',\n ],\n enableBranch: [\n 'kirograph_branch_list',\n 'kirograph_branch_diff',\n 'kirograph_branch_search',\n ],\n enableAgentUtils: [\n 'kirograph_read',\n 'kirograph_retrieve',\n 'kirograph_gain',\n 'kirograph_budget',\n ],\n enableGeneralCompression: [\n 'kirograph_compress',\n ],\n enableWatchmen: [\n 'kirograph_watchmen_status',\n 'kirograph_watchmen_synthesize',\n 'kirograph_watchmen_reset',\n ],\n // Derived from shellCompressionLevel \u2014 disabled when compression is off\n enableShellExec: [\n 'kirograph_exec',\n ],\n // Disabled when call-site tracking is off\n trackCallSites: [\n 'kirograph_callers',\n 'kirograph_callees',\n ],\n};\n\nexport const KIROGRAPH_TOOL_NAMES = [\n 'kirograph_search',\n 'kirograph_context',\n 'kirograph_callers',\n 'kirograph_callees',\n 'kirograph_impact',\n 'kirograph_node',\n 'kirograph_status',\n 'kirograph_files',\n 'kirograph_dead_code',\n 'kirograph_circular_deps',\n 'kirograph_path',\n 'kirograph_architecture',\n 'kirograph_coupling',\n 'kirograph_package',\n 'kirograph_hotspots',\n 'kirograph_surprising',\n 'kirograph_diff',\n 'kirograph_snapshot_save',\n 'kirograph_snapshot_list',\n 'kirograph_type_hierarchy',\n 'kirograph_exec',\n 'kirograph_gain',\n 'kirograph_read',\n 'kirograph_retrieve',\n 'kirograph_compress',\n 'kirograph_budget',\n 'kirograph_flows',\n 'kirograph_communities',\n 'kirograph_manifest',\n 'kirograph_refactor',\n 'kirograph_mem_search',\n 'kirograph_mem_store',\n 'kirograph_mem_timeline',\n 'kirograph_mem_status',\n 'kirograph_mem_review',\n 'kirograph_mem_mark_reviewed',\n 'kirograph_mem_compare',\n 'kirograph_mem_judge',\n 'kirograph_mem_capture',\n 'kirograph_mem_save_prompt',\n 'kirograph_mem_suggest_topic_key',\n 'kirograph_mem_conflicts_scan',\n 'kirograph_mem_prune',\n 'kirograph_mem_lint',\n 'kirograph_mem_conflicts_list',\n 'kirograph_mem_conflicts_ignore',\n 'kirograph_docs_toc',\n 'kirograph_docs_search',\n 'kirograph_docs_section',\n 'kirograph_docs_outline',\n 'kirograph_docs_refs',\n 'kirograph_data_list',\n 'kirograph_data_describe',\n 'kirograph_data_query',\n 'kirograph_data_aggregate',\n 'kirograph_data_search',\n 'kirograph_data_join',\n 'kirograph_data_correlations',\n 'kirograph_data_quality',\n 'kirograph_data_drift',\n 'kirograph_data_history',\n 'kirograph_security',\n 'kirograph_vulns',\n 'kirograph_sbom',\n 'kirograph_vex',\n 'kirograph_reachability',\n 'kirograph_vuln_add',\n 'kirograph_vuln_suppress',\n 'kirograph_staleness',\n 'kirograph_licenses',\n 'kirograph_attack_surface',\n 'kirograph_secrets',\n 'kirograph_security_flows',\n 'kirograph_supply_chain',\n 'kirograph_dep_confusion',\n 'kirograph_remediation',\n 'kirograph_pattern_coverage',\n 'kirograph_pattern_save_baseline',\n 'kirograph_pattern_diff',\n 'kirograph_wiki_ingest',\n 'kirograph_wiki_apply_diff',\n 'kirograph_wiki_search',\n 'kirograph_wiki_page',\n 'kirograph_wiki_lint',\n 'kirograph_wiki_list',\n 'kirograph_wiki_synthesize',\n 'kirograph_wiki_init',\n 'kirograph_wiki_reindex',\n 'kirograph_wiki_status',\n 'kirograph_watchmen_status',\n 'kirograph_watchmen_synthesize',\n 'kirograph_watchmen_reset',\n 'kirograph_affected',\n // Phase 2 additions \u2014 complexity\n 'kirograph_complexity',\n 'kirograph_simplify_scan',\n // Phase 2 additions \u2014 git context\n 'kirograph_diff_context',\n 'kirograph_commit_context',\n 'kirograph_pr_context',\n 'kirograph_changelog',\n 'kirograph_test_map',\n // Phase 1 additions\n 'kirograph_module_api',\n 'kirograph_rename_preview',\n 'kirograph_doc_coverage',\n 'kirograph_god_class',\n 'kirograph_inheritance_depth',\n 'kirograph_recursion',\n 'kirograph_largest',\n 'kirograph_rank',\n 'kirograph_distribution',\n 'kirograph_annotations',\n 'kirograph_session_start',\n 'kirograph_session_end',\n 'kirograph_unused_imports',\n 'kirograph_gini',\n 'kirograph_dependency_depth',\n 'kirograph_str_replace',\n 'kirograph_multi_str_replace',\n 'kirograph_insert_at',\n 'kirograph_ast_grep_rewrite',\n // Phase 3 additions \u2014 complexity\n 'kirograph_health',\n 'kirograph_dsm',\n 'kirograph_test_risk',\n // Phase 3 additions \u2014 git context\n 'kirograph_test_coverage',\n // Phase 4 additions \u2014 branch\n 'kirograph_branch_list',\n 'kirograph_branch_diff',\n 'kirograph_branch_search',\n];\n\n"],
|
|
5
|
+
"mappings": "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CA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|