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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/bin/installer/instructions.ts"],
|
|
4
|
-
"sourcesContent": ["import { CAVEMAN_RULES, CavemanMode } from './caveman';\n\nexport interface InstructionOptions {\n cavemanMode?: CavemanMode | 'off';\n shellCompressionLevel?: 'off' | 'normal' | 'aggressive' | 'ultra';\n enableArchitecture?: boolean;\n enableMemory?: boolean;\n enableDocs?: boolean;\n enableData?: boolean;\n enableSecurity?: boolean;\n enablePatterns?: boolean;\n enableWiki?: boolean;\n hasHooks?: boolean;\n}\n\nconst LEVEL_DESCRIPTIONS: Record<string, string> = {\n normal: 'Balanced: removes noise, keeps structure.',\n aggressive: 'Compact: groups by category, limits output.',\n ultra: 'Maximum compression: counts and summaries only.',\n};\n\nconst LEVEL_EXAMPLES: Record<string, string> = {\n normal: `\\`\\`\\`\nkirograph_exec(command: \"git status\")\nkirograph_exec(command: \"npm test\")\nkirograph_exec(command: \"cargo build\")\nkirograph_exec(command: \"ls -la src/\")\n\\`\\`\\``,\n aggressive: `\\`\\`\\`\nkirograph_exec(command: \"git status\", level: \"aggressive\")\nkirograph_exec(command: \"npm test\", level: \"aggressive\")\nkirograph_exec(command: \"eslint .\", level: \"aggressive\")\nkirograph_exec(command: \"find . -name '*.ts'\", level: \"aggressive\")\n\\`\\`\\``,\n ultra: `\\`\\`\\`\nkirograph_exec(command: \"git status\", level: \"ultra\")\nkirograph_exec(command: \"npm test\", level: \"ultra\")\nkirograph_exec(command: \"docker ps\", level: \"ultra\")\nkirograph_exec(command: \"ls -la src/\", level: \"ultra\")\n\\`\\`\\``,\n};\n\nexport function buildAgentInstructions(cavemanModeOrOpts?: CavemanMode | 'off' | InstructionOptions): string {\n // Support both old signature (cavemanMode string) and new signature (options object)\n const opts: InstructionOptions = typeof cavemanModeOrOpts === 'object' && cavemanModeOrOpts !== null\n ? cavemanModeOrOpts\n : { cavemanMode: cavemanModeOrOpts ?? undefined };\n\n const cavemanMode = opts.cavemanMode;\n const enableCompression = opts.shellCompressionLevel && opts.shellCompressionLevel !== 'off';\n const shellCompressionLevel = opts.shellCompressionLevel ?? 'normal';\n const enableArchitecture = opts.enableArchitecture ?? false;\n const enableMemory = opts.enableMemory ?? false;\n const enableDocs = opts.enableDocs ?? false;\n const enableData = opts.enableData ?? false;\n const enableSecurity = opts.enableSecurity ?? false;\n const enablePatterns = opts.enablePatterns ?? false;\n const enableWiki = opts.enableWiki ?? false;\n\n let content = `# KiroGraph\n\nKiroGraph builds a local semantic knowledge graph of this codebase. When the \\`kirograph\\` MCP server is available, prefer its tools over broad grep/glob/file-read exploration.\n\n## Quick decision guide\n\n| Question | Tool |\n|----------|------|\n| Where do I start on this task? | \\`kirograph_context\\` |\n| What is this symbol / show me its code | \\`kirograph_node\\` with \\`includeCode: true\\` |\n| Find a symbol by name | \\`kirograph_search\\` |\n| Who calls function X? | \\`kirograph_callers\\` |\n| What does function X call? | \\`kirograph_callees\\` |\n| What breaks if I change X? | \\`kirograph_impact\\` |\n| How are X and Y connected? | \\`kirograph_path\\` |\n| What extends / implements this type? | \\`kirograph_type_hierarchy\\` |\n| Which code is never called? | \\`kirograph_dead_code\\` |\n| Are there import cycles? | \\`kirograph_circular_deps\\` |\n| What files are indexed? | \\`kirograph_files\\` |\n| Is the index healthy? | \\`kirograph_status\\` |\n| What are the most critical symbols? | \\`kirograph_hotspots\\` |\n| Any unexpected cross-module coupling? | \\`kirograph_surprising\\` |\n| What changed since the last snapshot? | \\`kirograph_diff\\` |\n${enableArchitecture ? '| What packages/layers exist? | `kirograph_architecture` |\\n| How coupled is package X? | `kirograph_coupling` |\\n| What does package X depend on? | `kirograph_package` |\\n' : ''}\n${enableCompression ? '| Run a command with token savings | `kirograph_exec` |\\n| Check token savings stats | `kirograph_gain` |\\n' : ''}${enableMemory ? '| Search past decisions/patterns | `kirograph_mem_search` |\\n| Store an observation | `kirograph_mem_store` |\\n' : ''}${enableDocs ? '| Find a doc section | `kirograph_docs_search` |\\n| Get doc table of contents | `kirograph_docs_toc` |\\n' : ''}${enableData ? '| What datasets are indexed? | `kirograph_data_list` |\\n| Query rows with filters | `kirograph_data_query` |\\n| Aggregate data server-side | `kirograph_data_aggregate` |\\n' : ''}${enableSecurity ? '| Are there vulnerable dependencies? | `kirograph_security` |\\n| Which CVEs affect my project? | `kirograph_vulns` |\\n| Is this vulnerability reachable? | `kirograph_reachability` |\\n| What licenses do my deps use? | `kirograph_licenses` |\\n| Are dependencies outdated? | `kirograph_staleness` |\\n' : ''}${enablePatterns ? '| Find structural code patterns? | `kirograph_live_search` |\\n| Browse SAST rules | `kirograph pattern --list` |\\n' : ''}${enableWiki ? '| Look up project knowledge | `kirograph_wiki_search` |\\n| Update wiki with new knowledge | `kirograph_wiki_ingest` + `kirograph_wiki_apply_diff` |\\n' : ''}\n## Tool selection\n\n- Start code tasks with \\`kirograph_context\\`.\n- Find symbols by name with \\`kirograph_search\\`.\n- Inspect a symbol with \\`kirograph_node\\`; set \\`includeCode: true\\` only when source is needed.\n- Trace call flow with \\`kirograph_callers\\` and \\`kirograph_callees\\`.\n- Check blast radius before edits with \\`kirograph_impact\\`.\n- Use \\`kirograph_path\\` to explain how two symbols connect.\n- Use \\`kirograph_type_hierarchy\\` for inheritance/interface questions.\n- Use \\`kirograph_files\\` to inspect indexed file structure.\n- Use \\`kirograph_status\\` if results seem stale or incomplete.\n- Use \\`kirograph_architecture\\`, \\`kirograph_coupling\\`, and \\`kirograph_package\\` for package/layer questions when architecture analysis is enabled.\n- Use \\`kirograph_hotspots\\`, \\`kirograph_surprising\\`, and \\`kirograph_diff\\` for refactor planning and review.\n\n## Workflow\n\n1. Call \\`kirograph_context\\` for orientation.\n2. Drill into specific symbols with \\`kirograph_node\\`.\n3. Use graph traversal tools before reading unrelated files.\n4. Fall back to normal filesystem tools only when the graph is missing, stale, or lacks the needed detail.\n\nIf \\`.kirograph/\\` does not exist, ask whether to run \\`kirograph init --index\\`.\n`;\n\n // Shell compression section\n if (enableCompression) {\n const level = shellCompressionLevel as 'normal' | 'aggressive' | 'ultra';\n content += `\n## Shell Compression (\\`kirograph_exec\\`)\n\nWhen running shell commands, prefer \\`kirograph_exec\\` over raw shell execution for:\n- **git** operations (status, log, diff, push, pull, commit, add, fetch, branch)\n- **GitHub CLI** (gh pr list/view, gh issue list, gh run list)\n- **test runners** (jest, vitest, pytest, cargo test, go test, rspec, minitest, playwright)\n- **linters/build** (eslint, tsc, ruff, clippy, cargo build, prettier, biome, golangci-lint, rubocop, next build)\n- **file listings** (ls, find, tree)\n- **search** (grep, rg/ripgrep: grouped by file)\n- **diff** (diff file1 file2: condensed context)\n- **docker/k8s** (docker ps, images, logs, compose ps, kubectl pods, logs, services)\n- **package managers** (npm/pnpm install/list, pip list/install, bundle install, prisma generate)\n- **AWS CLI** (sts, ec2, lambda, logs, cloudformation, dynamodb, iam, s3, ecs, sqs, sns)\n- **network** (curl, wget: strip progress bars and headers)\n\nThis saves 60-90% of tokens compared to raw output.\n\nCompression level: **${level}**: ${LEVEL_DESCRIPTIONS[level]}\n\n${LEVEL_EXAMPLES[level]}\n\n**Important:** Error details are always preserved. Failed commands show full diagnostic output regardless of level.\n\n**Do NOT re-run commands:** When \\`kirograph_exec\\` returns a result, treat it as the final answer. Never re-run the same command with raw shell execution to \"get more details.\" The compressed output preserves all essential information. If you genuinely need something missing from the output, explain what's missing before making a second call.\n\nUse \\`kirograph_gain\\` to check token savings statistics.\n`;\n }\n\n // Memory section\n if (enableMemory) {\n content += `\n## Memory\n\nKiroGraph has persistent memory. Use \\`kirograph_mem_search\\` to recall past decisions,\nerrors, and patterns before making changes. Use \\`kirograph_mem_store\\` to save important\nobservations (architecture decisions, bug root causes, patterns discovered).\n\nMemory is searchable via hybrid FTS + vector search. Observations are automatically\nlinked to code symbols in the graph and surface in \\`kirograph_context\\` and\n\\`kirograph_impact\\` results when relevant.\n\n**When to store:** After fixing a bug, making an architecture decision, discovering a pattern,\nencountering a non-obvious error, or learning something about the codebase that future sessions\nshould know. Keep observations concise \u2014 one fact per store call.\n`;\n }\n\n // Architecture section\n if (enableArchitecture) {\n content += `\n## Architecture\n\nKiroGraph analyzes the package structure and layer dependencies of the codebase.\n\n- \\`kirograph_architecture\\` \u2014 full package graph, detected layers (api/service/data/ui/shared), dependency edges\n- \\`kirograph_coupling\\` \u2014 Ca (afferent), Ce (efferent), instability per package; high Ca = load-bearing, high Ce = volatile\n- \\`kirograph_package\\` \u2014 drill into a single package: coupling metrics, deps, dependents, files\n\nUse \\`kirograph_architecture\\` for architectural questions instead of reading directory trees.\nHigh Ca + low instability = risky to change interface. High Ce + high instability = safe to refactor internals.\n`;\n }\n\n // Documentation section\n if (enableDocs) {\n content += `\n## Documentation\n\nKiroGraph indexes project documentation by heading structure. Use \\`kirograph_docs_search\\`\nto find relevant sections instead of reading entire files.\n\n- \\`kirograph_docs_toc\\` \u2014 table of contents for a file or the whole project\n- \\`kirograph_docs_search\\` \u2014 search sections by query\n- \\`kirograph_docs_section\\` \u2014 retrieve full section content by ID\n- \\`kirograph_docs_outline\\` \u2014 heading hierarchy for a single file\n- \\`kirograph_docs_refs\\` \u2014 code \u2194 doc cross-references\n\nBefore reading a doc file directly, try \\`kirograph_docs_search\\` or \\`kirograph_docs_outline\\` first.\n`;\n }\n\n // Data section\n if (enableData) {\n content += `\n## Data\n\nKiroGraph indexes tabular data files (CSV, TSV, JSONL, JSON, Excel, Parquet).\n\n- \\`kirograph_data_list\\` \u2014 list all indexed datasets\n- \\`kirograph_data_describe\\` \u2014 schema profile: column names, types, cardinality, samples\n- \\`kirograph_data_query\\` \u2014 filtered row retrieval (eq, gt, contains, in, between)\n- \\`kirograph_data_aggregate\\` \u2014 server-side GROUP BY: count, sum, avg, min, max\n\nUse \\`kirograph_data_describe\\` before reading a data file. Use \\`kirograph_data_query\\` with\nfilters instead of loading all rows. Use \\`kirograph_data_aggregate\\` for statistics.\nThis saves 95-99% of tokens compared to reading raw data files.\n`;\n }\n\n // Security section\n if (enableSecurity) {\n content += `\n## Security\n\nKiroGraph scans dependency manifests across 14 ecosystems for known vulnerabilities, performs\ncall-graph reachability analysis, tracks EPSS exploitation probability, checks license\ncompliance, and monitors dependency staleness.\n\n**Available tools:**\n- \\`kirograph_security\\` \u2014 overview: dep count, CVE count, verdict breakdown, stale warnings\n- \\`kirograph_vulns\\` \u2014 list CVEs with severity, EPSS score, reachability verdict, fix suggestion\n- \\`kirograph_reachability\\` \u2014 call paths, entry points, affected layers for one CVE or package\n- \\`kirograph_licenses\\` \u2014 list dependency licenses; flag policy violations\n- \\`kirograph_staleness\\` \u2014 identify outdated dependencies (staleness score 0.0\u20131.0)\n- \\`kirograph_sbom\\` / \\`kirograph_vex\\` \u2014 export CycloneDX 1.5 SBOM and VEX documents\n- \\`kirograph_vuln_add\\` \u2014 manually register a private/internal CVE\n\n**Proactive triggers:** Run \\`kirograph_security\\` when a dependency is added/updated, before a\nproduction deploy, or when the user asks about security/compliance.\n\n**Interpreting verdicts:**\n- \\`affected\\` \u2014 a call path exists from an entry point to the vulnerable code. Act on this.\n- \\`not_affected\\` \u2014 no reachable path found. Strong signal: likely safe.\n- \\`under_investigation\\` \u2014 unresolved symbols in traversal. Treat with caution.\n\n**EPSS scores:** >= 0.5 = patch immediately; 0.1\u20130.5 = elevated risk; < 0.1 = low probability.\n\n**Workflow:** \\`kirograph_security\\` \u2192 \\`kirograph_vulns --verdict affected\\` \u2192 \\`kirograph_reachability <cve>\\` \u2192 fix \u2192 \\`kirograph_vulns --refresh\\`\n`;\n }\n\n // Wiki section\n if (enableWiki) {\n content += `\n## Wiki\n\nKiroGraph maintains a structured LLM wiki \u2014 a set of markdown pages that compound knowledge\nacross sessions. Consult it before starting a complex task, and update it after sessions that\nproduce durable knowledge.\n\n**Available tools:**\n- \\`kirograph_wiki_search\\` \u2014 full-text search over wiki pages\n- \\`kirograph_wiki_page\\` \u2014 retrieve a page by slug\n- \\`kirograph_wiki_list\\` \u2014 list all pages\n- \\`kirograph_wiki_ingest\\` \u2014 build an ingest prompt for a source text\n- \\`kirograph_wiki_apply_diff\\` \u2014 apply a WIKI_DIFF to create or update pages\n- \\`kirograph_wiki_lint\\` \u2014 health check: broken links, orphans, contradictions\n\n**Ingest workflow (two-tool):**\n1. \\`kirograph_wiki_ingest(source: \"...\", sourceName: \"...\")\\` \u2014 get the structured prompt\n2. Generate a \\`WIKI_DIFF_START ... WIKI_DIFF_END\\` block from the prompt\n3. \\`kirograph_wiki_apply_diff(diff: \"...\")\\` \u2014 apply it; review conflicts in the response\n\n**When to consult:** Before starting complex work, search for relevant wiki pages.\n**When to update:** After sessions with architecture decisions, API contracts, or process knowledge.\n`;\n }\n\n // Pattern matching section\n if (enablePatterns) {\n content += `\n## Pattern Search\n\nKiroGraph supports AST structural pattern search via \\`kirograph_live_search\\` (only available when \\`enablePatterns: true\\` and \\`@ast-grep/napi\\` is installed).\n\n- \\`kirograph_live_search\\` \u2014 find any structural code pattern across the indexed file list\n- \\`kirograph pattern --list\\` \u2014 browse 10 bundled SAST rules (SQL injection, eval, path traversal, etc.)\n- \\`kirograph pattern --library <id>\\` \u2014 run a specific library rule\n\nUse \\`kirograph_live_search\\` when you need to find patterns that can't be expressed as symbol names: anonymous functions, specific code structures, or security anti-patterns.\n`;\n }\n\n // Session hygiene for tools without hooks\n if (!opts.hasHooks) {\n content += `\n## Session Hygiene\n\nThis tool does not have automatic sync hooks. To keep the index fresh:\n- Run \\`kirograph sync\\` at the **start** of each session if files changed outside the agent.\n- Run \\`kirograph sync\\` at the **end** of each session after making changes.\n- If results from graph tools seem stale, run \\`kirograph sync\\` before retrying.\n${enableMemory ? '- Store important observations with `kirograph_mem_store` before ending your session.\\n' : ''}`;\n }\n\n // Caveman mode\n const caveman = cavemanMode && cavemanMode !== 'off' ? CAVEMAN_RULES[cavemanMode] : null;\n if (caveman) {\n content = content.trimEnd() + '\\n\\n' + caveman + '\\n';\n }\n\n return content;\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA2C;
|
|
4
|
+
"sourcesContent": ["import { CAVEMAN_RULES, CavemanMode } from './caveman';\n\nexport interface InstructionOptions {\n cavemanMode?: CavemanMode | 'off';\n shellCompressionLevel?: 'off' | 'normal' | 'aggressive' | 'ultra';\n enableArchitecture?: boolean;\n enableMemory?: boolean;\n enableDocs?: boolean;\n enableData?: boolean;\n enableSecurity?: boolean;\n enablePatterns?: boolean;\n enableWiki?: boolean;\n enableCodeHealth?: boolean;\n enableNavigation?: boolean;\n enableComplexity?: boolean;\n enableGitContext?: boolean;\n enableEditPrimitives?: boolean;\n enableBranch?: boolean;\n enableAgentUtils?: boolean;\n enableGeneralCompression?: boolean;\n trackCallSites?: boolean;\n hasHooks?: boolean;\n}\n\nconst LEVEL_DESCRIPTIONS: Record<string, string> = {\n normal: 'Balanced: removes noise, keeps structure.',\n aggressive: 'Compact: groups by category, limits output.',\n ultra: 'Maximum compression: counts and summaries only.',\n};\n\nconst LEVEL_EXAMPLES: Record<string, string> = {\n normal: `\\`\\`\\`\nkirograph_exec(command: \"git status\")\nkirograph_exec(command: \"npm test\")\nkirograph_exec(command: \"cargo build\")\nkirograph_exec(command: \"ls -la src/\")\n\\`\\`\\``,\n aggressive: `\\`\\`\\`\nkirograph_exec(command: \"git status\", level: \"aggressive\")\nkirograph_exec(command: \"npm test\", level: \"aggressive\")\nkirograph_exec(command: \"eslint .\", level: \"aggressive\")\nkirograph_exec(command: \"find . -name '*.ts'\", level: \"aggressive\")\n\\`\\`\\``,\n ultra: `\\`\\`\\`\nkirograph_exec(command: \"git status\", level: \"ultra\")\nkirograph_exec(command: \"npm test\", level: \"ultra\")\nkirograph_exec(command: \"docker ps\", level: \"ultra\")\nkirograph_exec(command: \"ls -la src/\", level: \"ultra\")\n\\`\\`\\``,\n};\n\nexport function buildAgentInstructions(cavemanModeOrOpts?: CavemanMode | 'off' | InstructionOptions): string {\n // Support both old signature (cavemanMode string) and new signature (options object)\n const opts: InstructionOptions = typeof cavemanModeOrOpts === 'object' && cavemanModeOrOpts !== null\n ? cavemanModeOrOpts\n : { cavemanMode: cavemanModeOrOpts ?? undefined };\n\n const cavemanMode = opts.cavemanMode;\n const enableCompression = opts.shellCompressionLevel && opts.shellCompressionLevel !== 'off';\n const shellCompressionLevel = opts.shellCompressionLevel ?? 'normal';\n const enableArchitecture = opts.enableArchitecture ?? false;\n const enableMemory = opts.enableMemory ?? false;\n const enableDocs = opts.enableDocs ?? false;\n const enableData = opts.enableData ?? false;\n const enableSecurity = opts.enableSecurity ?? false;\n const enablePatterns = opts.enablePatterns ?? false;\n const enableWiki = opts.enableWiki ?? false;\n const enableCodeHealth = opts.enableCodeHealth ?? false;\n const enableNavigation = opts.enableNavigation ?? false;\n const enableComplexity = opts.enableComplexity ?? false;\n const enableGitContext = opts.enableGitContext ?? false;\n const enableEditPrimitives = opts.enableEditPrimitives ?? false;\n const enableAgentUtils = opts.enableAgentUtils ?? false;\n const enableGeneralCompression = opts.enableGeneralCompression ?? false;\n const trackCallSites = opts.trackCallSites ?? false;\n\n let content = `# KiroGraph\n\nKiroGraph builds a local semantic knowledge graph of this codebase. When the \\`kirograph\\` MCP server is available, prefer its tools over broad grep/glob/file-read exploration.\n\n## Quick decision guide\n\n| Question | Tool |\n|----------|------|\n| Where do I start on this task? | \\`kirograph_context\\` |\n| What is this symbol / show me its code | \\`kirograph_node\\` with \\`detail: \"signatures\"\\` |\n| Find a symbol by name | \\`kirograph_search\\` |\n${trackCallSites ? '| Who calls function X? | `kirograph_callers` |\\n| What does function X call? | `kirograph_callees` |\\n' : ''}${enableNavigation ? '| What breaks if I change X? | `kirograph_impact` |\\n| What files are indexed? | `kirograph_files` |\\n| Is the index healthy? | `kirograph_status` |\\n' : ''}${enableCodeHealth ? '| How are X and Y connected? | `kirograph_path` |\\n| Which code is never called? | `kirograph_dead_code` |\\n| Are there import cycles? | `kirograph_circular_deps` |\\n| What extends / implements this type? | `kirograph_type_hierarchy` |\\n' : ''}\n${enableCodeHealth ? '| What are the most critical symbols? | `kirograph_hotspots` |\\n| Any unexpected cross-module coupling? | `kirograph_surprising` |\\n| What changed since the last snapshot? | `kirograph_diff` |\\n' : ''}${enableGitContext ? '| Semantic context for my current changes? | `kirograph_flows` |\\n' : ''}${enableArchitecture ? '| What packages/layers exist? | `kirograph_architecture` |\\n| How coupled is package X? | `kirograph_coupling` |\\n| What does package X depend on? | `kirograph_package` |\\n' : ''}${enableCompression ? '| Run a command with token savings | `kirograph_exec` |\\n' : ''}${enableAgentUtils ? '| Check token savings stats | `kirograph_gain` |\\n| Read a file (cached) | `kirograph_read` |\\n' : ''}${enableGeneralCompression ? '| Compress text or shell output before sending | `kirograph_compress` |\\n' : ''}${enableMemory ? '| Search past decisions/patterns | `kirograph_mem_search` |\\n| Store an observation | `kirograph_mem_store` |\\n' : ''}${enableDocs ? '| Find a doc section | `kirograph_docs_search` |\\n| Get doc table of contents | `kirograph_docs_toc` |\\n' : ''}${enableData ? '| What datasets are indexed? | `kirograph_data_list` |\\n| Query rows with filters | `kirograph_data_query` |\\n| Aggregate data server-side | `kirograph_data_aggregate` |\\n' : ''}${enableSecurity ? '| Are there vulnerable dependencies? | `kirograph_security` |\\n| Which CVEs affect my project? | `kirograph_vulns` |\\n| Is this vulnerability reachable? | `kirograph_reachability` |\\n| What licenses do my deps use? | `kirograph_licenses` |\\n| Are dependencies outdated? | `kirograph_staleness` |\\n' : ''}${enablePatterns ? '| Find structural code patterns? | `kirograph_live_search` |\\n| Browse SAST rules | `kirograph pattern --list` |\\n' : ''}${enableWiki ? '| Look up project knowledge | `kirograph_wiki_search` |\\n| Update wiki with new knowledge | `kirograph_wiki_ingest` + `kirograph_wiki_apply_diff` |\\n' : ''}\n## Tool selection\n\n- Start code tasks with \\`kirograph_context\\`; use \\`detail: \"signatures\"\\` to reduce tokens when full source isn't needed yet.\n- Find symbols by name with \\`kirograph_search\\`.\n- Inspect a symbol with \\`kirograph_node\\`; use \\`detail: \"full\"\\` only when source is needed.\n${trackCallSites ? '- Trace call flow with `kirograph_callers` and `kirograph_callees`.\\n' : ''}${enableNavigation ? '- Check blast radius before edits with `kirograph_impact`.\\n- Use `kirograph_files` to inspect indexed file structure.\\n- Use `kirograph_status` if results seem stale or incomplete.\\n' : ''}${enableCodeHealth ? '- Use `kirograph_path` to explain how two symbols connect.\\n- Use `kirograph_type_hierarchy` for inheritance/interface questions.\\n- Use `kirograph_hotspots`, `kirograph_surprising`, and `kirograph_diff` for refactor planning and review.\\n' : ''}${enableArchitecture ? '- Use `kirograph_architecture`, `kirograph_coupling`, and `kirograph_package` for package/layer questions.\\n' : ''}\n\n## Workflow\n\n1. Call \\`kirograph_context\\` for orientation.\n2. Drill into specific symbols with \\`kirograph_node\\`.\n3. Use graph traversal tools before reading unrelated files.\n4. Fall back to normal filesystem tools only when the graph is missing, stale, or lacks the needed detail.\n\nIf \\`.kirograph/\\` does not exist, ask whether to run \\`kirograph init --index\\`.\n`;\n\n // Shell compression section\n if (enableCompression) {\n const level = shellCompressionLevel as 'normal' | 'aggressive' | 'ultra';\n content += `\n## Shell Compression (\\`kirograph_exec\\`)\n\nWhen running shell commands, prefer \\`kirograph_exec\\` over raw shell execution for:\n- **git** operations (status, log, diff, push, pull, commit, add, fetch, branch)\n- **GitHub CLI** (gh pr list/view, gh issue list, gh run list)\n- **test runners** (jest, vitest, pytest, cargo test, go test, rspec, minitest, playwright)\n- **linters/build** (eslint, tsc, ruff, clippy, cargo build, prettier, biome, golangci-lint, rubocop, next build)\n- **file listings** (ls, find, tree)\n- **search** (grep, rg/ripgrep: grouped by file)\n- **diff** (diff file1 file2: condensed context)\n- **docker/k8s** (docker ps, images, logs, compose ps, kubectl pods, logs, services)\n- **package managers** (npm/pnpm install/list, pip list/install, bundle install, prisma generate)\n- **AWS CLI** (sts, ec2, lambda, logs, cloudformation, dynamodb, iam, s3, ecs, sqs, sns)\n- **network** (curl, wget: strip progress bars and headers)\n\nThis saves 60-90% of tokens compared to raw output.\n\nCompression level: **${level}**: ${LEVEL_DESCRIPTIONS[level]}\n\n${LEVEL_EXAMPLES[level]}\n\n**Important:** Error details are always preserved. Failed commands show full diagnostic output regardless of level.\n\n**Do NOT re-run commands:** When \\`kirograph_exec\\` returns a result, treat it as the final answer. Never re-run the same command with raw shell execution to \"get more details.\" The compressed output preserves all essential information. If you genuinely need something missing from the output, explain what's missing before making a second call.\n\nUse \\`kirograph_gain\\` to check token savings statistics.\n`;\n }\n\n // Memory section\n if (enableMemory) {\n content += `\n## Memory\n\nKiroGraph has persistent memory. Use \\`kirograph_mem_search\\` to recall past decisions,\nerrors, and patterns before making changes. Use \\`kirograph_mem_store\\` to save important\nobservations (architecture decisions, bug root causes, patterns discovered).\n\nMemory is searchable via hybrid FTS + vector search. Observations are automatically\nlinked to code symbols in the graph and surface in \\`kirograph_context\\` and\n\\`kirograph_impact\\` results when relevant.\n\n**When to store:** After fixing a bug, making an architecture decision, discovering a pattern,\nencountering a non-obvious error, or learning something about the codebase that future sessions\nshould know. Keep observations concise \u2014 one fact per store call.\n`;\n }\n\n // Architecture section\n if (enableArchitecture) {\n content += `\n## Architecture\n\nKiroGraph analyzes the package structure and layer dependencies of the codebase.\n\n- \\`kirograph_architecture\\` \u2014 full package graph, detected layers (api/service/data/ui/shared), dependency edges\n- \\`kirograph_coupling\\` \u2014 Ca (afferent), Ce (efferent), instability per package; high Ca = load-bearing, high Ce = volatile\n- \\`kirograph_package\\` \u2014 drill into a single package: coupling metrics, deps, dependents, files\n\nUse \\`kirograph_architecture\\` for architectural questions instead of reading directory trees.\nHigh Ca + low instability = risky to change interface. High Ce + high instability = safe to refactor internals.\n`;\n }\n\n // Documentation section\n if (enableDocs) {\n content += `\n## Documentation\n\nKiroGraph indexes project documentation by heading structure. Use \\`kirograph_docs_search\\`\nto find relevant sections instead of reading entire files.\n\n- \\`kirograph_docs_toc\\` \u2014 table of contents for a file or the whole project\n- \\`kirograph_docs_search\\` \u2014 search sections by query\n- \\`kirograph_docs_section\\` \u2014 retrieve full section content by ID\n- \\`kirograph_docs_outline\\` \u2014 heading hierarchy for a single file\n- \\`kirograph_docs_refs\\` \u2014 code \u2194 doc cross-references\n\nBefore reading a doc file directly, try \\`kirograph_docs_search\\` or \\`kirograph_docs_outline\\` first.\n`;\n }\n\n // Data section\n if (enableData) {\n content += `\n## Data\n\nKiroGraph indexes tabular data files (CSV, TSV, JSONL, JSON, Excel, Parquet).\n\n- \\`kirograph_data_list\\` \u2014 list all indexed datasets\n- \\`kirograph_data_describe\\` \u2014 schema profile: column names, types, cardinality, samples\n- \\`kirograph_data_query\\` \u2014 filtered row retrieval (eq, gt, contains, in, between)\n- \\`kirograph_data_aggregate\\` \u2014 server-side GROUP BY: count, sum, avg, min, max\n\nUse \\`kirograph_data_describe\\` before reading a data file. Use \\`kirograph_data_query\\` with\nfilters instead of loading all rows. Use \\`kirograph_data_aggregate\\` for statistics.\nThis saves 95-99% of tokens compared to reading raw data files.\n`;\n }\n\n // Security section\n if (enableSecurity) {\n content += `\n## Security\n\nKiroGraph scans dependency manifests across 14 ecosystems for known vulnerabilities, performs\ncall-graph reachability analysis, tracks EPSS exploitation probability, checks license\ncompliance, and monitors dependency staleness.\n\n**Available tools:**\n- \\`kirograph_security\\` \u2014 overview: dep count, CVE count, verdict breakdown, stale warnings\n- \\`kirograph_vulns\\` \u2014 list CVEs with severity, EPSS score, reachability verdict, fix suggestion\n- \\`kirograph_reachability\\` \u2014 call paths, entry points, affected layers for one CVE or package\n- \\`kirograph_licenses\\` \u2014 list dependency licenses; flag policy violations\n- \\`kirograph_staleness\\` \u2014 identify outdated dependencies (staleness score 0.0\u20131.0)\n- \\`kirograph_sbom\\` / \\`kirograph_vex\\` \u2014 export CycloneDX 1.5 SBOM and VEX documents\n- \\`kirograph_vuln_add\\` \u2014 manually register a private/internal CVE\n\n**Proactive triggers:** Run \\`kirograph_security\\` when a dependency is added/updated, before a\nproduction deploy, or when the user asks about security/compliance.\n\n**Interpreting verdicts:**\n- \\`affected\\` \u2014 a call path exists from an entry point to the vulnerable code. Act on this.\n- \\`not_affected\\` \u2014 no reachable path found. Strong signal: likely safe.\n- \\`under_investigation\\` \u2014 unresolved symbols in traversal. Treat with caution.\n\n**EPSS scores:** >= 0.5 = patch immediately; 0.1\u20130.5 = elevated risk; < 0.1 = low probability.\n\n**Workflow:** \\`kirograph_security\\` \u2192 \\`kirograph_vulns --verdict affected\\` \u2192 \\`kirograph_reachability <cve>\\` \u2192 fix \u2192 \\`kirograph_vulns --refresh\\`\n`;\n }\n\n // Wiki section\n if (enableWiki) {\n content += `\n## Wiki\n\nKiroGraph maintains a structured LLM wiki \u2014 a set of markdown pages that compound knowledge\nacross sessions. Consult it before starting a complex task, and update it after sessions that\nproduce durable knowledge.\n\n**Available tools:**\n- \\`kirograph_wiki_search\\` \u2014 full-text search over wiki pages\n- \\`kirograph_wiki_page\\` \u2014 retrieve a page by slug\n- \\`kirograph_wiki_list\\` \u2014 list all pages\n- \\`kirograph_wiki_ingest\\` \u2014 build an ingest prompt for a source text\n- \\`kirograph_wiki_apply_diff\\` \u2014 apply a WIKI_DIFF to create or update pages\n- \\`kirograph_wiki_lint\\` \u2014 health check: broken links, orphans, contradictions\n\n**Ingest workflow (two-tool):**\n1. \\`kirograph_wiki_ingest(source: \"...\", sourceName: \"...\")\\` \u2014 get the structured prompt\n2. Generate a \\`WIKI_DIFF_START ... WIKI_DIFF_END\\` block from the prompt\n3. \\`kirograph_wiki_apply_diff(diff: \"...\")\\` \u2014 apply it; review conflicts in the response\n\n**When to consult:** Before starting complex work, search for relevant wiki pages.\n**When to update:** After sessions with architecture decisions, API contracts, or process knowledge.\n`;\n }\n\n // Pattern matching section\n if (enablePatterns) {\n content += `\n## Pattern Search\n\nKiroGraph supports AST structural pattern search via \\`kirograph_live_search\\` (only available when \\`enablePatterns: true\\` and \\`@ast-grep/napi\\` is installed).\n\n- \\`kirograph_live_search\\` \u2014 find any structural code pattern across the indexed file list\n- \\`kirograph pattern --list\\` \u2014 browse 10 bundled SAST rules (SQL injection, eval, path traversal, etc.)\n- \\`kirograph pattern --library <id>\\` \u2014 run a specific library rule\n\nUse \\`kirograph_live_search\\` when you need to find patterns that can't be expressed as symbol names: anonymous functions, specific code structures, or security anti-patterns.\n`;\n }\n\n // Session hygiene for tools without hooks\n if (!opts.hasHooks) {\n content += `\n## Session Hygiene\n\nThis tool does not have automatic sync hooks. To keep the index fresh:\n- Run \\`kirograph sync\\` at the **start** of each session if files changed outside the agent.\n- Run \\`kirograph sync\\` at the **end** of each session after making changes.\n- If results from graph tools seem stale, run \\`kirograph sync\\` before retrying.\n${enableMemory ? '- Store important observations with `kirograph_mem_store` before ending your session.\\n' : ''}`;\n }\n\n // Caveman mode\n const caveman = cavemanMode && cavemanMode !== 'off' ? CAVEMAN_RULES[cavemanMode] : null;\n if (caveman) {\n content = content.trimEnd() + '\\n\\n' + caveman + '\\n';\n }\n\n return content;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/bin/installer/mcp.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * KiroGraph Installer \u2014 MCP server registration\n */\n\nimport * as path from 'path';\nimport { KIROGRAPH_COMMAND, KIROGRAPH_MCP_ARGS, KIROGRAPH_TOOLS, writeMcpServersConfig, overwriteMcpServersConfig, readJson, writeJson } from './common';\nimport { FEATURE_TOOL_SETS } from '../../mcp/tool-names';\n\nexport interface McpFeatureFlags {\n enableArchitecture?: boolean;\n enableMemory?: boolean;\n enableDocs?: boolean;\n enableData?: boolean;\n enableSecurity?: boolean;\n enablePatterns?: boolean;\n enableWiki?: boolean;\n enableCodeHealth?: boolean;\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,WAAsB;AACtB,oBAA8I;AAC9I,wBAAkC;
|
|
4
|
+
"sourcesContent": ["/**\n * KiroGraph Installer \u2014 MCP server registration\n */\n\nimport * as path from 'path';\nimport { KIROGRAPH_COMMAND, KIROGRAPH_MCP_ARGS, KIROGRAPH_TOOLS, writeMcpServersConfig, overwriteMcpServersConfig, readJson, writeJson } from './common';\nimport { FEATURE_TOOL_SETS } from '../../mcp/tool-names';\n\nexport interface McpFeatureFlags {\n enableArchitecture?: boolean;\n enableMemory?: boolean;\n enableWatchmen?: boolean;\n enableDocs?: boolean;\n enableData?: boolean;\n enableSecurity?: boolean;\n enablePatterns?: boolean;\n enableWiki?: boolean;\n enableCodeHealth?: boolean;\n enableNavigation?: boolean;\n enableComplexity?: boolean;\n enableGitContext?: boolean;\n enableEditPrimitives?: boolean;\n enableBranch?: boolean;\n enableAgentUtils?: boolean;\n enableGeneralCompression?: boolean;\n enableShellExec?: boolean;\n trackCallSites?: boolean;\n}\n\nfunction computeAutoApprove(features?: McpFeatureFlags): string[] {\n if (!features) return KIROGRAPH_TOOLS;\n const hidden = new Set<string>();\n for (const [flag, names] of Object.entries(FEATURE_TOOL_SETS)) {\n if ((features as Record<string, boolean | undefined>)[flag] === false) {\n for (const n of names) hidden.add(n);\n }\n }\n return KIROGRAPH_TOOLS.filter(n => !hidden.has(n));\n}\n\nexport function writeMcpConfig(kiroDir: string, projectRoot?: string): void {\n const mcpPath = path.join(kiroDir, 'settings', 'mcp.json');\n const args = projectRoot\n ? [...KIROGRAPH_MCP_ARGS, '--path', projectRoot]\n : KIROGRAPH_MCP_ARGS;\n writeMcpServersConfig(mcpPath, {\n command: KIROGRAPH_COMMAND,\n args,\n disabled: false,\n autoApprove: KIROGRAPH_TOOLS,\n });\n console.log(` \u2713 MCP server registered in ${mcpPath}`);\n}\n\n/** Called after feature prompts to update autoApprove to match enabled features. */\nexport function updateMcpAutoApprove(kiroDir: string, features: McpFeatureFlags): void {\n const mcpPath = path.join(kiroDir, 'settings', 'mcp.json');\n const existing = readJson(mcpPath);\n if (!existing.mcpServers?.kirograph) return;\n existing.mcpServers.kirograph.autoApprove = computeAutoApprove(features);\n writeJson(mcpPath, existing);\n}\n\n/**\n * Write the final MCP config with the correct autoApprove in one atomic write.\n * Always overwrites any existing entry \u2014 no intermediate \"all tools\" state.\n * Call this from installLate where feature flags are known.\n */\nexport function writeMcpConfigFinal(kiroDir: string, projectRoot: string, features: McpFeatureFlags): void {\n const mcpPath = path.join(kiroDir, 'settings', 'mcp.json');\n overwriteMcpServersConfig(mcpPath, {\n command: KIROGRAPH_COMMAND,\n args: [...KIROGRAPH_MCP_ARGS, '--path', projectRoot],\n disabled: false,\n autoApprove: computeAutoApprove(features),\n });\n console.log(` \u2713 MCP server registered in ${mcpPath}`);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,WAAsB;AACtB,oBAA8I;AAC9I,wBAAkC;AAuBlC,SAAS,mBAAmB,UAAsC;AAChE,MAAI,CAAC,SAAU,QAAO;AACtB,QAAM,SAAS,oBAAI,IAAY;AAC/B,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,mCAAiB,GAAG;AAC7D,QAAK,SAAiD,IAAI,MAAM,OAAO;AACrE,iBAAW,KAAK,MAAO,QAAO,IAAI,CAAC;AAAA,IACrC;AAAA,EACF;AACA,SAAO,8BAAgB,OAAO,OAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AACnD;AAEO,SAAS,eAAe,SAAiB,aAA4B;AAC1E,QAAM,UAAU,KAAK,KAAK,SAAS,YAAY,UAAU;AACzD,QAAM,OAAO,cACT,CAAC,GAAG,kCAAoB,UAAU,WAAW,IAC7C;AACJ,2CAAsB,SAAS;AAAA,IAC7B,SAAS;AAAA,IACT;AAAA,IACA,UAAU;AAAA,IACV,aAAa;AAAA,EACf,CAAC;AACD,UAAQ,IAAI,qCAAgC,OAAO,EAAE;AACvD;AAGO,SAAS,qBAAqB,SAAiB,UAAiC;AACrF,QAAM,UAAU,KAAK,KAAK,SAAS,YAAY,UAAU;AACzD,QAAM,eAAW,wBAAS,OAAO;AACjC,MAAI,CAAC,SAAS,YAAY,UAAW;AACrC,WAAS,WAAW,UAAU,cAAc,mBAAmB,QAAQ;AACvE,+BAAU,SAAS,QAAQ;AAC7B;AAOO,SAAS,oBAAoB,SAAiB,aAAqB,UAAiC;AACzG,QAAM,UAAU,KAAK,KAAK,SAAS,YAAY,UAAU;AACzD,+CAA0B,SAAS;AAAA,IACjC,SAAS;AAAA,IACT,MAAM,CAAC,GAAG,kCAAoB,UAAU,WAAW;AAAA,IACnD,UAAU;AAAA,IACV,aAAa,mBAAmB,QAAQ;AAAA,EAC1C,CAAC;AACD,UAAQ,IAAI,qCAAgC,OAAO,EAAE;AACvD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|