kirograph 0.17.0 → 0.20.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/LICENSE +1 -1
- package/README.md +105 -1822
- package/dist/architecture/layers/dart.d.ts +10 -0
- package/dist/architecture/layers/dart.d.ts.map +1 -0
- package/dist/architecture/layers/dart.js +112 -0
- package/dist/architecture/layers/dart.js.map +7 -0
- package/dist/architecture/layers/elixir.d.ts +6 -0
- package/dist/architecture/layers/elixir.d.ts.map +1 -0
- package/dist/architecture/layers/index.d.ts.map +1 -1
- package/dist/architecture/layers/index.js +3 -1
- package/dist/architecture/layers/index.js.map +2 -2
- package/dist/architecture/layers/ocaml.d.ts +6 -0
- package/dist/architecture/layers/ocaml.d.ts.map +1 -0
- package/dist/architecture/layers/scala.d.ts +6 -0
- package/dist/architecture/layers/scala.d.ts.map +1 -0
- package/dist/architecture/layers/solidity.d.ts +6 -0
- package/dist/architecture/layers/solidity.d.ts.map +1 -0
- package/dist/architecture/layers/vue.d.ts +6 -0
- package/dist/architecture/layers/vue.d.ts.map +1 -0
- package/dist/architecture/manifest/elm.d.ts +3 -0
- package/dist/architecture/manifest/elm.d.ts.map +1 -0
- package/dist/architecture/manifest/index.d.ts.map +1 -1
- package/dist/architecture/manifest/ocaml.d.ts +3 -0
- package/dist/architecture/manifest/ocaml.d.ts.map +1 -0
- package/dist/architecture/manifest/scala.d.ts +3 -0
- package/dist/architecture/manifest/scala.d.ts.map +1 -0
- package/dist/bin/banner.d.ts.map +1 -1
- package/dist/bin/banner.js +74 -6
- package/dist/bin/banner.js.map +2 -2
- package/dist/bin/commands/affected.d.ts.map +1 -1
- package/dist/bin/commands/attack-surface.d.ts +3 -0
- package/dist/bin/commands/attack-surface.d.ts.map +1 -0
- package/dist/bin/commands/attack-surface.js +164 -0
- package/dist/bin/commands/attack-surface.js.map +7 -0
- package/dist/bin/commands/benchmark.d.ts +9 -0
- package/dist/bin/commands/benchmark.d.ts.map +1 -0
- package/dist/bin/commands/benchmark.js +206 -0
- package/dist/bin/commands/benchmark.js.map +7 -0
- package/dist/bin/commands/budget.d.ts +6 -0
- package/dist/bin/commands/budget.d.ts.map +1 -0
- package/dist/bin/commands/budget.js +70 -0
- package/dist/bin/commands/budget.js.map +7 -0
- package/dist/bin/commands/caveman.d.ts +7 -0
- package/dist/bin/commands/caveman.d.ts.map +1 -0
- package/dist/bin/commands/communities.d.ts +3 -0
- package/dist/bin/commands/communities.d.ts.map +1 -0
- package/dist/bin/commands/communities.js +77 -0
- package/dist/bin/commands/communities.js.map +7 -0
- package/dist/bin/commands/compression.d.ts +7 -0
- package/dist/bin/commands/compression.d.ts.map +1 -0
- package/dist/bin/commands/context.d.ts.map +1 -1
- package/dist/bin/commands/data.d.ts +3 -0
- package/dist/bin/commands/data.d.ts.map +1 -0
- package/dist/bin/commands/dead-code.d.ts +3 -0
- package/dist/bin/commands/dead-code.d.ts.map +1 -0
- package/dist/bin/commands/dep-confusion.d.ts +3 -0
- package/dist/bin/commands/dep-confusion.d.ts.map +1 -0
- package/dist/bin/commands/dep-confusion.js +119 -0
- package/dist/bin/commands/dep-confusion.js.map +7 -0
- package/dist/bin/commands/docs.d.ts +3 -0
- package/dist/bin/commands/docs.d.ts.map +1 -0
- package/dist/bin/commands/exec.d.ts +11 -0
- package/dist/bin/commands/exec.d.ts.map +1 -0
- package/dist/bin/commands/export.d.ts +3 -0
- package/dist/bin/commands/export.d.ts.map +1 -0
- package/dist/bin/commands/export.js +304 -10
- package/dist/bin/commands/export.js.map +2 -2
- package/dist/bin/commands/flows.d.ts +3 -0
- package/dist/bin/commands/flows.d.ts.map +1 -0
- package/dist/bin/commands/flows.js +97 -0
- package/dist/bin/commands/flows.js.map +7 -0
- package/dist/bin/commands/gain.d.ts +6 -0
- package/dist/bin/commands/gain.d.ts.map +1 -0
- package/dist/bin/commands/help.d.ts +7 -0
- package/dist/bin/commands/help.d.ts.map +1 -1
- package/dist/bin/commands/help.js +399 -101
- package/dist/bin/commands/help.js.map +2 -2
- package/dist/bin/commands/hotspots.d.ts +3 -0
- package/dist/bin/commands/hotspots.d.ts.map +1 -0
- package/dist/bin/commands/hotspots.js +94 -1
- package/dist/bin/commands/hotspots.js.map +3 -3
- package/dist/bin/commands/install.d.ts.map +1 -1
- package/dist/bin/commands/install.js +90 -8
- package/dist/bin/commands/install.js.map +2 -2
- package/dist/bin/commands/licenses.d.ts +3 -0
- package/dist/bin/commands/licenses.d.ts.map +1 -0
- package/dist/bin/commands/licenses.js +201 -0
- package/dist/bin/commands/licenses.js.map +7 -0
- package/dist/bin/commands/memory.d.ts +16 -0
- package/dist/bin/commands/memory.d.ts.map +1 -0
- package/dist/bin/commands/memory.js +151 -4
- package/dist/bin/commands/memory.js.map +2 -2
- package/dist/bin/commands/path.d.ts +3 -0
- package/dist/bin/commands/path.d.ts.map +1 -0
- package/dist/bin/commands/pattern.d.ts +3 -0
- package/dist/bin/commands/pattern.d.ts.map +1 -0
- package/dist/bin/commands/pattern.js +592 -0
- package/dist/bin/commands/pattern.js.map +7 -0
- package/dist/bin/commands/query.d.ts.map +1 -1
- package/dist/bin/commands/reachability.d.ts +3 -0
- package/dist/bin/commands/reachability.d.ts.map +1 -0
- package/dist/bin/commands/reachability.js +160 -0
- package/dist/bin/commands/reachability.js.map +7 -0
- package/dist/bin/commands/read.d.ts +6 -0
- package/dist/bin/commands/read.d.ts.map +1 -0
- package/dist/bin/commands/read.js +100 -0
- package/dist/bin/commands/read.js.map +7 -0
- package/dist/bin/commands/refactor.d.ts +3 -0
- package/dist/bin/commands/refactor.d.ts.map +1 -0
- package/dist/bin/commands/refactor.js +116 -0
- package/dist/bin/commands/refactor.js.map +7 -0
- package/dist/bin/commands/remediation.d.ts +3 -0
- package/dist/bin/commands/remediation.d.ts.map +1 -0
- package/dist/bin/commands/remediation.js +133 -0
- package/dist/bin/commands/remediation.js.map +7 -0
- package/dist/bin/commands/sbom.d.ts +3 -0
- package/dist/bin/commands/sbom.d.ts.map +1 -0
- package/dist/bin/commands/sbom.js +76 -0
- package/dist/bin/commands/sbom.js.map +7 -0
- package/dist/bin/commands/security-ci-report.d.ts +9 -0
- package/dist/bin/commands/security-ci-report.d.ts.map +1 -0
- package/dist/bin/commands/security-ci-report.js +267 -0
- package/dist/bin/commands/security-ci-report.js.map +7 -0
- package/dist/bin/commands/security-export.d.ts +2 -0
- package/dist/bin/commands/security-export.d.ts.map +1 -0
- package/dist/bin/commands/security-export.js +1349 -0
- package/dist/bin/commands/security-export.js.map +7 -0
- package/dist/bin/commands/security-flows.d.ts +3 -0
- package/dist/bin/commands/security-flows.d.ts.map +1 -0
- package/dist/bin/commands/security-flows.js +126 -0
- package/dist/bin/commands/security-flows.js.map +7 -0
- package/dist/bin/commands/security-secrets.d.ts +3 -0
- package/dist/bin/commands/security-secrets.d.ts.map +1 -0
- package/dist/bin/commands/security-secrets.js +170 -0
- package/dist/bin/commands/security-secrets.js.map +7 -0
- package/dist/bin/commands/security.d.ts +3 -0
- package/dist/bin/commands/security.d.ts.map +1 -0
- package/dist/bin/commands/security.js +208 -0
- package/dist/bin/commands/security.js.map +7 -0
- package/dist/bin/commands/snapshot.d.ts +3 -0
- package/dist/bin/commands/snapshot.d.ts.map +1 -0
- package/dist/bin/commands/staleness.d.ts +3 -0
- package/dist/bin/commands/staleness.d.ts.map +1 -0
- package/dist/bin/commands/staleness.js +144 -0
- package/dist/bin/commands/staleness.js.map +7 -0
- package/dist/bin/commands/status.d.ts.map +1 -1
- package/dist/bin/commands/status.js +129 -2
- package/dist/bin/commands/status.js.map +2 -2
- package/dist/bin/commands/supply-chain.d.ts +3 -0
- package/dist/bin/commands/supply-chain.d.ts.map +1 -0
- package/dist/bin/commands/supply-chain.js +138 -0
- package/dist/bin/commands/supply-chain.js.map +7 -0
- package/dist/bin/commands/surprising.d.ts +3 -0
- package/dist/bin/commands/surprising.d.ts.map +1 -0
- package/dist/bin/commands/sync.d.ts.map +1 -1
- package/dist/bin/commands/uninit.d.ts.map +1 -1
- package/dist/bin/commands/uninit.js +109 -60
- package/dist/bin/commands/uninit.js.map +2 -2
- package/dist/bin/commands/utils.d.ts +5 -0
- package/dist/bin/commands/utils.d.ts.map +1 -1
- package/dist/bin/commands/vex.d.ts +3 -0
- package/dist/bin/commands/vex.d.ts.map +1 -0
- package/dist/bin/commands/vex.js +76 -0
- package/dist/bin/commands/vex.js.map +7 -0
- package/dist/bin/commands/vuln-suppress.d.ts +3 -0
- package/dist/bin/commands/vuln-suppress.d.ts.map +1 -0
- package/dist/bin/commands/vuln-suppress.js +95 -0
- package/dist/bin/commands/vuln-suppress.js.map +7 -0
- package/dist/bin/commands/vulns.d.ts +3 -0
- package/dist/bin/commands/vulns.d.ts.map +1 -0
- package/dist/bin/commands/vulns.js +382 -0
- package/dist/bin/commands/vulns.js.map +7 -0
- package/dist/bin/installer/archive.d.ts +47 -0
- package/dist/bin/installer/archive.d.ts.map +1 -0
- package/dist/bin/installer/auto-detect.d.ts +16 -0
- package/dist/bin/installer/auto-detect.d.ts.map +1 -0
- package/dist/bin/installer/auto-detect.js +125 -0
- package/dist/bin/installer/auto-detect.js.map +7 -0
- package/dist/bin/installer/caveman.d.ts +12 -0
- package/dist/bin/installer/caveman.d.ts.map +1 -0
- package/dist/bin/installer/cli-agent.d.ts +7 -2
- package/dist/bin/installer/cli-agent.d.ts.map +1 -1
- package/dist/bin/installer/cli-agent.js +32 -5
- package/dist/bin/installer/cli-agent.js.map +2 -2
- package/dist/bin/installer/common.d.ts +36 -0
- package/dist/bin/installer/common.d.ts.map +1 -0
- package/dist/bin/installer/common.js +48 -0
- package/dist/bin/installer/common.js.map +2 -2
- package/dist/bin/installer/config-prompt.d.ts +1 -1
- package/dist/bin/installer/config-prompt.d.ts.map +1 -1
- package/dist/bin/installer/config-prompt.js +85 -2
- package/dist/bin/installer/config-prompt.js.map +2 -2
- package/dist/bin/installer/dashboard.d.ts.map +1 -1
- package/dist/bin/installer/detect.d.ts +30 -0
- package/dist/bin/installer/detect.d.ts.map +1 -0
- package/dist/bin/installer/detect.js +309 -0
- package/dist/bin/installer/detect.js.map +7 -0
- package/dist/bin/installer/hooks.d.ts +4 -1
- package/dist/bin/installer/hooks.d.ts.map +1 -1
- package/dist/bin/installer/hooks.js +34 -0
- package/dist/bin/installer/hooks.js.map +2 -2
- package/dist/bin/installer/index.d.ts +5 -4
- package/dist/bin/installer/index.d.ts.map +1 -1
- package/dist/bin/installer/index.js +46 -8
- package/dist/bin/installer/index.js.map +2 -2
- package/dist/bin/installer/instructions.d.ts +14 -0
- package/dist/bin/installer/instructions.d.ts.map +1 -0
- package/dist/bin/installer/instructions.js +209 -3
- package/dist/bin/installer/instructions.js.map +2 -2
- package/dist/bin/installer/mcp.d.ts.map +1 -1
- package/dist/bin/installer/prompts.d.ts +17 -0
- package/dist/bin/installer/prompts.d.ts.map +1 -1
- package/dist/bin/installer/qdrant-dashboard.d.ts.map +1 -1
- package/dist/bin/installer/steering.d.ts +14 -2
- package/dist/bin/installer/steering.d.ts.map +1 -1
- package/dist/bin/installer/steering.js +488 -0
- package/dist/bin/installer/steering.js.map +2 -2
- package/dist/bin/installer/targets/aider.d.ts +6 -0
- package/dist/bin/installer/targets/aider.d.ts.map +1 -0
- 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.d.ts +6 -0
- package/dist/bin/installer/targets/amp.d.ts.map +1 -0
- 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.d.ts +13 -0
- package/dist/bin/installer/targets/antigravity.d.ts.map +1 -0
- package/dist/bin/installer/targets/antigravity.js +35 -6
- package/dist/bin/installer/targets/antigravity.js.map +2 -2
- package/dist/bin/installer/targets/augment.d.ts +6 -0
- package/dist/bin/installer/targets/augment.d.ts.map +1 -0
- 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.d.ts +6 -0
- package/dist/bin/installer/targets/claude.d.ts.map +1 -0
- package/dist/bin/installer/targets/claude.js +49 -5
- package/dist/bin/installer/targets/claude.js.map +2 -2
- package/dist/bin/installer/targets/cline.d.ts +13 -0
- package/dist/bin/installer/targets/cline.d.ts.map +1 -0
- package/dist/bin/installer/targets/cline.js +32 -6
- package/dist/bin/installer/targets/cline.js.map +2 -2
- package/dist/bin/installer/targets/codex.d.ts +6 -0
- package/dist/bin/installer/targets/codex.d.ts.map +1 -0
- package/dist/bin/installer/targets/codex.js +64 -12
- package/dist/bin/installer/targets/codex.js.map +2 -2
- package/dist/bin/installer/targets/continue.d.ts +12 -0
- package/dist/bin/installer/targets/continue.d.ts.map +1 -0
- package/dist/bin/installer/targets/continue.js +2 -2
- package/dist/bin/installer/targets/continue.js.map +2 -2
- package/dist/bin/installer/targets/copilot-cli.d.ts +12 -0
- package/dist/bin/installer/targets/copilot-cli.d.ts.map +1 -0
- package/dist/bin/installer/targets/copilot-cli.js +101 -0
- package/dist/bin/installer/targets/copilot-cli.js.map +7 -0
- package/dist/bin/installer/targets/copilot.d.ts +6 -0
- package/dist/bin/installer/targets/copilot.d.ts.map +1 -0
- package/dist/bin/installer/targets/copilot.js +31 -5
- package/dist/bin/installer/targets/copilot.js.map +2 -2
- package/dist/bin/installer/targets/cursor.d.ts +6 -0
- package/dist/bin/installer/targets/cursor.d.ts.map +1 -0
- package/dist/bin/installer/targets/cursor.js +4 -4
- package/dist/bin/installer/targets/cursor.js.map +2 -2
- package/dist/bin/installer/targets/devin.d.ts +13 -0
- package/dist/bin/installer/targets/devin.d.ts.map +1 -0
- package/dist/bin/installer/targets/devin.js +2 -2
- package/dist/bin/installer/targets/devin.js.map +2 -2
- package/dist/bin/installer/targets/gemini-cli.d.ts +16 -0
- package/dist/bin/installer/targets/gemini-cli.d.ts.map +1 -0
- package/dist/bin/installer/targets/gemini-cli.js +2 -2
- package/dist/bin/installer/targets/gemini-cli.js.map +2 -2
- package/dist/bin/installer/targets/generic.d.ts +59 -0
- package/dist/bin/installer/targets/generic.d.ts.map +1 -0
- package/dist/bin/installer/targets/generic.js +2 -14
- package/dist/bin/installer/targets/generic.js.map +2 -2
- package/dist/bin/installer/targets/goose.d.ts +6 -0
- package/dist/bin/installer/targets/goose.d.ts.map +1 -0
- package/dist/bin/installer/targets/goose.js +3 -3
- package/dist/bin/installer/targets/goose.js.map +2 -2
- package/dist/bin/installer/targets/index.d.ts +11 -0
- package/dist/bin/installer/targets/index.d.ts.map +1 -0
- package/dist/bin/installer/targets/index.js +250 -0
- package/dist/bin/installer/targets/index.js.map +2 -2
- package/dist/bin/installer/targets/junie.d.ts +13 -0
- package/dist/bin/installer/targets/junie.d.ts.map +1 -0
- package/dist/bin/installer/targets/junie.js +2 -2
- package/dist/bin/installer/targets/junie.js.map +2 -2
- package/dist/bin/installer/targets/kilo.d.ts +12 -0
- package/dist/bin/installer/targets/kilo.d.ts.map +1 -0
- package/dist/bin/installer/targets/kilo.js +2 -2
- package/dist/bin/installer/targets/kilo.js.map +2 -2
- package/dist/bin/installer/targets/kiro.d.ts +5 -0
- package/dist/bin/installer/targets/kiro.d.ts.map +1 -0
- package/dist/bin/installer/targets/kiro.js +4 -4
- package/dist/bin/installer/targets/kiro.js.map +2 -2
- package/dist/bin/installer/targets/opencode.d.ts +13 -0
- package/dist/bin/installer/targets/opencode.d.ts.map +1 -0
- package/dist/bin/installer/targets/opencode.js +2 -2
- package/dist/bin/installer/targets/opencode.js.map +2 -2
- package/dist/bin/installer/targets/openhands.d.ts +6 -0
- package/dist/bin/installer/targets/openhands.d.ts.map +1 -0
- 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.d.ts +12 -0
- package/dist/bin/installer/targets/qoder.d.ts.map +1 -0
- package/dist/bin/installer/targets/qoder.js +91 -0
- package/dist/bin/installer/targets/qoder.js.map +7 -0
- package/dist/bin/installer/targets/qwen.d.ts +12 -0
- package/dist/bin/installer/targets/qwen.d.ts.map +1 -0
- package/dist/bin/installer/targets/qwen.js +96 -0
- package/dist/bin/installer/targets/qwen.js.map +7 -0
- package/dist/bin/installer/targets/replit.d.ts +6 -0
- package/dist/bin/installer/targets/replit.d.ts.map +1 -0
- 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.d.ts +13 -0
- package/dist/bin/installer/targets/roo.d.ts.map +1 -0
- package/dist/bin/installer/targets/roo.js +2 -2
- package/dist/bin/installer/targets/roo.js.map +2 -2
- package/dist/bin/installer/targets/tabnine.d.ts +6 -0
- package/dist/bin/installer/targets/tabnine.d.ts.map +1 -0
- 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.d.ts +6 -0
- package/dist/bin/installer/targets/trae.d.ts.map +1 -0
- package/dist/bin/installer/targets/trae.js +5 -5
- package/dist/bin/installer/targets/trae.js.map +2 -2
- package/dist/bin/installer/targets/warp.d.ts +12 -0
- package/dist/bin/installer/targets/warp.d.ts.map +1 -0
- package/dist/bin/installer/targets/warp.js +2 -2
- package/dist/bin/installer/targets/warp.js.map +2 -2
- package/dist/bin/installer/targets/windsurf.d.ts +13 -0
- package/dist/bin/installer/targets/windsurf.d.ts.map +1 -0
- package/dist/bin/installer/targets/windsurf.js +35 -6
- package/dist/bin/installer/targets/windsurf.js.map +2 -2
- package/dist/bin/kirograph.js +74 -6
- package/dist/bin/kirograph.js.map +3 -3
- package/dist/bin/progress.d.ts +16 -1
- package/dist/bin/progress.d.ts.map +1 -1
- package/dist/compression/filters/aws.d.ts +9 -0
- package/dist/compression/filters/aws.d.ts.map +1 -0
- package/dist/compression/filters/docker.d.ts +6 -0
- package/dist/compression/filters/docker.d.ts.map +1 -0
- package/dist/compression/filters/files.d.ts +6 -0
- package/dist/compression/filters/files.d.ts.map +1 -0
- package/dist/compression/filters/generic.d.ts +7 -0
- package/dist/compression/filters/generic.d.ts.map +1 -0
- package/dist/compression/filters/git.d.ts +6 -0
- package/dist/compression/filters/git.d.ts.map +1 -0
- package/dist/compression/filters/github.d.ts +6 -0
- package/dist/compression/filters/github.d.ts.map +1 -0
- package/dist/compression/filters/lint.d.ts +6 -0
- package/dist/compression/filters/lint.d.ts.map +1 -0
- package/dist/compression/filters/misc.d.ts +6 -0
- package/dist/compression/filters/misc.d.ts.map +1 -0
- package/dist/compression/filters/package.d.ts +6 -0
- package/dist/compression/filters/package.d.ts.map +1 -0
- package/dist/compression/filters/test.d.ts +6 -0
- package/dist/compression/filters/test.d.ts.map +1 -0
- package/dist/compression/index.d.ts +29 -0
- package/dist/compression/index.d.ts.map +1 -0
- package/dist/compression/naive-cost.d.ts +26 -0
- package/dist/compression/naive-cost.d.ts.map +1 -0
- package/dist/compression/tracker.d.ts +155 -0
- package/dist/compression/tracker.d.ts.map +1 -0
- package/dist/compression/tracker.js +80 -0
- package/dist/compression/tracker.js.map +2 -2
- package/dist/compression/types.d.ts +49 -0
- package/dist/compression/types.d.ts.map +1 -0
- package/dist/config.d.ts +90 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +144 -3
- package/dist/config.js.map +2 -2
- package/dist/core/lock-manager.d.ts +2 -0
- package/dist/core/lock-manager.d.ts.map +1 -1
- package/dist/core/pipeline.d.ts +4 -1
- package/dist/core/pipeline.d.ts.map +1 -1
- package/dist/core/pipeline.js +78 -2
- package/dist/core/pipeline.js.map +2 -2
- package/dist/core/snapshot.d.ts +58 -0
- package/dist/core/snapshot.d.ts.map +1 -0
- package/dist/data/filters.d.ts +23 -0
- package/dist/data/filters.d.ts.map +1 -0
- package/dist/data/indexer.d.ts +25 -0
- package/dist/data/indexer.d.ts.map +1 -0
- package/dist/data/linker.d.ts +37 -0
- package/dist/data/linker.d.ts.map +1 -0
- package/dist/data/lint.d.ts +27 -0
- package/dist/data/lint.d.ts.map +1 -0
- package/dist/data/parsers/csv.d.ts +11 -0
- package/dist/data/parsers/csv.d.ts.map +1 -0
- package/dist/data/parsers/excel.d.ts +10 -0
- package/dist/data/parsers/excel.d.ts.map +1 -0
- package/dist/data/parsers/index.d.ts +28 -0
- package/dist/data/parsers/index.d.ts.map +1 -0
- package/dist/data/parsers/json-array.d.ts +9 -0
- package/dist/data/parsers/json-array.d.ts.map +1 -0
- package/dist/data/parsers/jsonl.d.ts +9 -0
- package/dist/data/parsers/jsonl.d.ts.map +1 -0
- package/dist/data/parsers/parquet.d.ts +10 -0
- package/dist/data/parsers/parquet.d.ts.map +1 -0
- package/dist/data/profiler.d.ts +29 -0
- package/dist/data/profiler.d.ts.map +1 -0
- package/dist/data/queries.d.ts +95 -0
- package/dist/data/queries.d.ts.map +1 -0
- package/dist/data/types.d.ts +103 -0
- package/dist/data/types.d.ts.map +1 -0
- package/dist/db/database.d.ts +57 -0
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/database.js +75 -5
- package/dist/db/database.js.map +2 -2
- package/dist/db/memory-schema.sql +5 -1
- package/dist/db/patterns-schema.sql +23 -0
- package/dist/db/schema.sql +3 -1
- package/dist/db/security-schema.sql +72 -0
- package/dist/docs/formats/asciidoc.d.ts +9 -0
- package/dist/docs/formats/asciidoc.d.ts.map +1 -0
- package/dist/docs/formats/html.d.ts +10 -0
- package/dist/docs/formats/html.d.ts.map +1 -0
- package/dist/docs/formats/index.d.ts +31 -0
- package/dist/docs/formats/index.d.ts.map +1 -0
- package/dist/docs/formats/markdown.d.ts +11 -0
- package/dist/docs/formats/markdown.d.ts.map +1 -0
- package/dist/docs/formats/openapi.d.ts +17 -0
- package/dist/docs/formats/openapi.d.ts.map +1 -0
- package/dist/docs/formats/org.d.ts +9 -0
- package/dist/docs/formats/org.d.ts.map +1 -0
- package/dist/docs/formats/plaintext.d.ts +11 -0
- package/dist/docs/formats/plaintext.d.ts.map +1 -0
- package/dist/docs/formats/rdoc.d.ts +10 -0
- package/dist/docs/formats/rdoc.d.ts.map +1 -0
- package/dist/docs/formats/rst.d.ts +11 -0
- package/dist/docs/formats/rst.d.ts.map +1 -0
- package/dist/docs/indexer.d.ts +49 -0
- package/dist/docs/indexer.d.ts.map +1 -0
- package/dist/docs/linker.d.ts +30 -0
- package/dist/docs/linker.d.ts.map +1 -0
- package/dist/docs/lint.d.ts +27 -0
- package/dist/docs/lint.d.ts.map +1 -0
- package/dist/docs/queries.d.ts +78 -0
- package/dist/docs/queries.d.ts.map +1 -0
- package/dist/docs/section-id.d.ts +48 -0
- package/dist/docs/section-id.d.ts.map +1 -0
- package/dist/docs/summarizer.d.ts +13 -0
- package/dist/docs/summarizer.d.ts.map +1 -0
- package/dist/docs/types.d.ts +71 -0
- package/dist/docs/types.d.ts.map +1 -0
- package/dist/docs/vectors.d.ts +54 -0
- package/dist/docs/vectors.d.ts.map +1 -0
- package/dist/extraction/extractor.d.ts +1 -1
- package/dist/extraction/extractor.d.ts.map +1 -1
- package/dist/extraction/extractor.js +81 -0
- package/dist/extraction/extractor.js.map +2 -2
- package/dist/extraction/grammars.d.ts +6 -0
- package/dist/extraction/grammars.d.ts.map +1 -1
- package/dist/extraction/grammars.js +32 -8
- package/dist/extraction/grammars.js.map +2 -2
- package/dist/extraction/languages.d.ts.map +1 -1
- package/dist/extraction/languages.js +43 -1
- package/dist/extraction/languages.js.map +2 -2
- package/dist/extraction/notebook.d.ts +14 -0
- package/dist/extraction/notebook.d.ts.map +1 -0
- package/dist/extraction/notebook.js +300 -0
- package/dist/extraction/notebook.js.map +7 -0
- package/dist/extraction/wasm/tree-sitter-astro.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-gdscript.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-julia.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-perl.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-powershell.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-sql.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-verilog.wasm +0 -0
- package/dist/frameworks/amplify.d.ts +9 -0
- package/dist/frameworks/amplify.d.ts.map +1 -0
- package/dist/frameworks/angular.d.ts +9 -0
- package/dist/frameworks/angular.d.ts.map +1 -0
- package/dist/frameworks/ansible.d.ts +8 -0
- package/dist/frameworks/ansible.d.ts.map +1 -0
- package/dist/frameworks/cloudformation.d.ts +9 -0
- package/dist/frameworks/cloudformation.d.ts.map +1 -0
- package/dist/frameworks/docker.d.ts +9 -0
- package/dist/frameworks/docker.d.ts.map +1 -0
- package/dist/frameworks/elixir.d.ts +6 -0
- package/dist/frameworks/elixir.d.ts.map +1 -0
- package/dist/frameworks/flutter.d.ts +12 -0
- package/dist/frameworks/flutter.d.ts.map +1 -0
- package/dist/frameworks/flutter.js +130 -0
- package/dist/frameworks/flutter.js.map +7 -0
- package/dist/frameworks/iac.d.ts +10 -0
- package/dist/frameworks/iac.d.ts.map +1 -0
- package/dist/frameworks/index.d.ts +14 -0
- package/dist/frameworks/index.d.ts.map +1 -1
- package/dist/frameworks/index.js +7 -1
- package/dist/frameworks/index.js.map +3 -3
- package/dist/frameworks/kubernetes.d.ts +9 -0
- package/dist/frameworks/kubernetes.d.ts.map +1 -0
- package/dist/frameworks/pulumi.d.ts +9 -0
- package/dist/frameworks/pulumi.d.ts.map +1 -0
- package/dist/frameworks/scala.d.ts +6 -0
- package/dist/frameworks/scala.d.ts.map +1 -0
- package/dist/frameworks/solidity.d.ts +6 -0
- package/dist/frameworks/solidity.d.ts.map +1 -0
- package/dist/frameworks/terraform.d.ts +14 -0
- package/dist/frameworks/terraform.d.ts.map +1 -0
- package/dist/frameworks/vue.d.ts +7 -0
- package/dist/frameworks/vue.d.ts.map +1 -0
- package/dist/graph/communities.d.ts +43 -0
- package/dist/graph/communities.d.ts.map +1 -0
- package/dist/graph/communities.js +317 -0
- package/dist/graph/communities.js.map +7 -0
- package/dist/graph/flows.d.ts +55 -0
- package/dist/graph/flows.d.ts.map +1 -0
- package/dist/graph/flows.js +138 -0
- package/dist/graph/flows.js.map +7 -0
- package/dist/graph/refactor.d.ts +43 -0
- package/dist/graph/refactor.d.ts.map +1 -0
- package/dist/graph/refactor.js +155 -0
- package/dist/graph/refactor.js.map +7 -0
- package/dist/index.d.ts +36 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +2 -2
- package/dist/mcp/cache.d.ts +69 -0
- package/dist/mcp/cache.d.ts.map +1 -0
- package/dist/mcp/cache.js +172 -0
- package/dist/mcp/cache.js.map +7 -0
- package/dist/mcp/read-modes.d.ts +31 -0
- package/dist/mcp/read-modes.d.ts.map +1 -0
- package/dist/mcp/read-modes.js +295 -0
- package/dist/mcp/read-modes.js.map +7 -0
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +17 -3
- package/dist/mcp/server.js.map +2 -2
- package/dist/mcp/tool-names.d.ts +2 -0
- package/dist/mcp/tool-names.d.ts.map +1 -0
- package/dist/mcp/tool-names.js +24 -1
- package/dist/mcp/tool-names.js.map +2 -2
- package/dist/mcp/tools.d.ts +12 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +1560 -4
- package/dist/mcp/tools.js.map +3 -3
- package/dist/memory/compress.d.ts +19 -0
- package/dist/memory/compress.d.ts.map +1 -0
- package/dist/memory/database.d.ts +92 -0
- package/dist/memory/database.d.ts.map +1 -0
- package/dist/memory/database.js +70 -2
- package/dist/memory/database.js.map +2 -2
- package/dist/memory/index.d.ts +71 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +12 -2
- package/dist/memory/index.js.map +2 -2
- package/dist/memory/symbols.d.ts +21 -0
- package/dist/memory/symbols.d.ts.map +1 -0
- package/dist/memory/types.d.ts +78 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js.map +1 -1
- package/dist/memory/vectors.d.ts +43 -0
- package/dist/memory/vectors.d.ts.map +1 -0
- package/dist/patterns/graph.d.ts +16 -0
- package/dist/patterns/graph.d.ts.map +1 -0
- package/dist/patterns/graph.js +45 -0
- package/dist/patterns/graph.js.map +7 -0
- package/dist/patterns/index.d.ts +4 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +39 -0
- package/dist/patterns/index.js.map +7 -0
- package/dist/patterns/indexer.d.ts +15 -0
- package/dist/patterns/indexer.d.ts.map +1 -0
- package/dist/patterns/indexer.js +97 -0
- package/dist/patterns/indexer.js.map +7 -0
- package/dist/patterns/library/command-injection-go.yaml +11 -0
- package/dist/patterns/library/dangerous-eval-js.yaml +14 -0
- package/dist/patterns/library/dangerous-exec-py.yaml +13 -0
- package/dist/patterns/library/dangerous-reflection-java.yaml +8 -0
- package/dist/patterns/library/path-traversal-go.yaml +11 -0
- package/dist/patterns/library/path-traversal-py.yaml +12 -0
- package/dist/patterns/library/path-traversal-readfile-js.yaml +14 -0
- package/dist/patterns/library/prototype-pollution-js.yaml +12 -0
- package/dist/patterns/library/sql-injection-concat-js.yaml +12 -0
- package/dist/patterns/library/sql-injection-java.yaml +13 -0
- package/dist/patterns/library/sql-injection-py.yaml +12 -0
- package/dist/patterns/library/sql-injection-template-js.yaml +13 -0
- package/dist/patterns/library/weak-crypto-md5-js.yaml +13 -0
- package/dist/patterns/library/weak-crypto-py.yaml +13 -0
- package/dist/patterns/loader.d.ts +18 -0
- package/dist/patterns/loader.d.ts.map +1 -0
- package/dist/patterns/loader.js +277 -0
- package/dist/patterns/loader.js.map +7 -0
- package/dist/patterns/runner.d.ts +42 -0
- package/dist/patterns/runner.d.ts.map +1 -0
- package/dist/patterns/runner.js +277 -0
- package/dist/patterns/runner.js.map +7 -0
- package/dist/patterns/types.d.ts +27 -0
- package/dist/patterns/types.d.ts.map +1 -0
- package/dist/patterns/types.js +34 -0
- package/dist/patterns/types.js.map +7 -0
- package/dist/resolution/bridges/android-rn.d.ts +13 -0
- package/dist/resolution/bridges/android-rn.d.ts.map +1 -0
- package/dist/resolution/bridges/android-rn.js +298 -0
- package/dist/resolution/bridges/android-rn.js.map +7 -0
- package/dist/resolution/bridges/expo-modules.d.ts +10 -0
- package/dist/resolution/bridges/expo-modules.d.ts.map +1 -0
- package/dist/resolution/bridges/expo-modules.js +155 -0
- package/dist/resolution/bridges/expo-modules.js.map +7 -0
- package/dist/resolution/bridges/flutter-channel.d.ts +14 -0
- package/dist/resolution/bridges/flutter-channel.d.ts.map +1 -0
- package/dist/resolution/bridges/flutter-channel.js +385 -0
- package/dist/resolution/bridges/flutter-channel.js.map +7 -0
- package/dist/resolution/bridges/index.d.ts +40 -0
- package/dist/resolution/bridges/index.d.ts.map +1 -0
- package/dist/resolution/bridges/index.js +80 -0
- package/dist/resolution/bridges/index.js.map +7 -0
- package/dist/resolution/bridges/native-events.d.ts +10 -0
- package/dist/resolution/bridges/native-events.d.ts.map +1 -0
- package/dist/resolution/bridges/native-events.js +188 -0
- package/dist/resolution/bridges/native-events.js.map +7 -0
- package/dist/resolution/bridges/native-views.d.ts +13 -0
- package/dist/resolution/bridges/native-views.d.ts.map +1 -0
- package/dist/resolution/bridges/native-views.js +244 -0
- package/dist/resolution/bridges/native-views.js.map +7 -0
- package/dist/resolution/bridges/react-native.d.ts +9 -0
- package/dist/resolution/bridges/react-native.d.ts.map +1 -0
- package/dist/resolution/bridges/react-native.js +161 -0
- package/dist/resolution/bridges/react-native.js.map +7 -0
- package/dist/resolution/bridges/swift-objc.d.ts +14 -0
- package/dist/resolution/bridges/swift-objc.d.ts.map +1 -0
- package/dist/resolution/bridges/swift-objc.js +227 -0
- package/dist/resolution/bridges/swift-objc.js.map +7 -0
- package/dist/resolution/bridges/turbomodules.d.ts +10 -0
- package/dist/resolution/bridges/turbomodules.d.ts.map +1 -0
- package/dist/resolution/bridges/turbomodules.js +216 -0
- package/dist/resolution/bridges/turbomodules.js.map +7 -0
- package/dist/resolution/index.d.ts +28 -3
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +61 -2
- package/dist/resolution/index.js.map +2 -2
- package/dist/security/attack-surface.d.ts +46 -0
- package/dist/security/attack-surface.d.ts.map +1 -0
- package/dist/security/attack-surface.js +206 -0
- package/dist/security/attack-surface.js.map +7 -0
- package/dist/security/context-warnings.d.ts +40 -0
- package/dist/security/context-warnings.d.ts.map +1 -0
- package/dist/security/context-warnings.js +123 -0
- package/dist/security/context-warnings.js.map +7 -0
- package/dist/security/data-flows.d.ts +33 -0
- package/dist/security/data-flows.d.ts.map +1 -0
- package/dist/security/data-flows.js +286 -0
- package/dist/security/data-flows.js.map +7 -0
- package/dist/security/dep-confusion.d.ts +23 -0
- package/dist/security/dep-confusion.d.ts.map +1 -0
- package/dist/security/dep-confusion.js +255 -0
- package/dist/security/dep-confusion.js.map +7 -0
- package/dist/security/errors.d.ts +16 -0
- package/dist/security/errors.d.ts.map +1 -0
- package/dist/security/errors.js +51 -0
- package/dist/security/errors.js.map +7 -0
- package/dist/security/export/fix-suggestions.d.ts +21 -0
- package/dist/security/export/fix-suggestions.d.ts.map +1 -0
- package/dist/security/export/fix-suggestions.js +58 -0
- package/dist/security/export/fix-suggestions.js.map +7 -0
- package/dist/security/export/sbom.d.ts +33 -0
- package/dist/security/export/sbom.d.ts.map +1 -0
- package/dist/security/export/sbom.js +230 -0
- package/dist/security/export/sbom.js.map +7 -0
- package/dist/security/export/serialization.d.ts +62 -0
- package/dist/security/export/serialization.d.ts.map +1 -0
- package/dist/security/export/serialization.js +142 -0
- package/dist/security/export/serialization.js.map +7 -0
- package/dist/security/export/vex.d.ts +58 -0
- package/dist/security/export/vex.d.ts.map +1 -0
- package/dist/security/export/vex.js +220 -0
- package/dist/security/export/vex.js.map +7 -0
- package/dist/security/index.d.ts +21 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +67 -0
- package/dist/security/index.js.map +7 -0
- package/dist/security/integrator.d.ts +63 -0
- package/dist/security/integrator.d.ts.map +1 -0
- package/dist/security/integrator.js +491 -0
- package/dist/security/integrator.js.map +7 -0
- package/dist/security/license.d.ts +33 -0
- package/dist/security/license.d.ts.map +1 -0
- package/dist/security/license.js +70 -0
- package/dist/security/license.js.map +7 -0
- package/dist/security/manifest/adapter.d.ts +92 -0
- package/dist/security/manifest/adapter.d.ts.map +1 -0
- package/dist/security/manifest/adapter.js +243 -0
- package/dist/security/manifest/adapter.js.map +7 -0
- package/dist/security/manifest/parser.d.ts +73 -0
- package/dist/security/manifest/parser.d.ts.map +1 -0
- package/dist/security/manifest/parser.js +376 -0
- package/dist/security/manifest/parser.js.map +7 -0
- package/dist/security/manifest/plugins/cargo.d.ts +11 -0
- package/dist/security/manifest/plugins/cargo.d.ts.map +1 -0
- package/dist/security/manifest/plugins/cargo.js +233 -0
- package/dist/security/manifest/plugins/cargo.js.map +7 -0
- package/dist/security/manifest/plugins/composer.d.ts +11 -0
- package/dist/security/manifest/plugins/composer.d.ts.map +1 -0
- package/dist/security/manifest/plugins/composer.js +152 -0
- package/dist/security/manifest/plugins/composer.js.map +7 -0
- package/dist/security/manifest/plugins/go.d.ts +12 -0
- package/dist/security/manifest/plugins/go.d.ts.map +1 -0
- package/dist/security/manifest/plugins/go.js +146 -0
- package/dist/security/manifest/plugins/go.js.map +7 -0
- package/dist/security/manifest/plugins/gradle.d.ts +12 -0
- package/dist/security/manifest/plugins/gradle.d.ts.map +1 -0
- package/dist/security/manifest/plugins/gradle.js +159 -0
- package/dist/security/manifest/plugins/gradle.js.map +7 -0
- package/dist/security/manifest/plugins/hex.d.ts +11 -0
- package/dist/security/manifest/plugins/hex.d.ts.map +1 -0
- package/dist/security/manifest/plugins/hex.js +159 -0
- package/dist/security/manifest/plugins/hex.js.map +7 -0
- package/dist/security/manifest/plugins/maven.d.ts +11 -0
- package/dist/security/manifest/plugins/maven.d.ts.map +1 -0
- package/dist/security/manifest/plugins/maven.js +128 -0
- package/dist/security/manifest/plugins/maven.js.map +7 -0
- package/dist/security/manifest/plugins/npm.d.ts +11 -0
- package/dist/security/manifest/plugins/npm.d.ts.map +1 -0
- package/dist/security/manifest/plugins/npm.js +284 -0
- package/dist/security/manifest/plugins/npm.js.map +7 -0
- package/dist/security/manifest/plugins/nuget.d.ts +12 -0
- package/dist/security/manifest/plugins/nuget.d.ts.map +1 -0
- package/dist/security/manifest/plugins/nuget.js +186 -0
- package/dist/security/manifest/plugins/nuget.js.map +7 -0
- package/dist/security/manifest/plugins/pip.d.ts +11 -0
- package/dist/security/manifest/plugins/pip.d.ts.map +1 -0
- package/dist/security/manifest/plugins/pip.js +123 -0
- package/dist/security/manifest/plugins/pip.js.map +7 -0
- package/dist/security/manifest/plugins/pubspec.d.ts +11 -0
- package/dist/security/manifest/plugins/pubspec.d.ts.map +1 -0
- package/dist/security/manifest/plugins/pubspec.js +212 -0
- package/dist/security/manifest/plugins/pubspec.js.map +7 -0
- package/dist/security/manifest/plugins/pyproject.d.ts +3 -0
- package/dist/security/manifest/plugins/pyproject.d.ts.map +1 -0
- package/dist/security/manifest/plugins/pyproject.js +261 -0
- package/dist/security/manifest/plugins/pyproject.js.map +7 -0
- package/dist/security/manifest/plugins/rubygems.d.ts +11 -0
- package/dist/security/manifest/plugins/rubygems.d.ts.map +1 -0
- package/dist/security/manifest/plugins/rubygems.js +185 -0
- package/dist/security/manifest/plugins/rubygems.js.map +7 -0
- package/dist/security/manifest/plugins/swift.d.ts +11 -0
- package/dist/security/manifest/plugins/swift.d.ts.map +1 -0
- package/dist/security/manifest/plugins/swift.js +200 -0
- package/dist/security/manifest/plugins/swift.js.map +7 -0
- package/dist/security/owasp.d.ts +16 -0
- package/dist/security/owasp.d.ts.map +1 -0
- package/dist/security/owasp.js +104 -0
- package/dist/security/owasp.js.map +7 -0
- package/dist/security/pipeline.d.ts +37 -0
- package/dist/security/pipeline.d.ts.map +1 -0
- package/dist/security/pipeline.js +125 -0
- package/dist/security/pipeline.js.map +7 -0
- package/dist/security/reachability.d.ts +67 -0
- package/dist/security/reachability.d.ts.map +1 -0
- package/dist/security/reachability.js +276 -0
- package/dist/security/reachability.js.map +7 -0
- package/dist/security/remediation.d.ts +51 -0
- package/dist/security/remediation.d.ts.map +1 -0
- package/dist/security/remediation.js +126 -0
- package/dist/security/remediation.js.map +7 -0
- package/dist/security/secrets.d.ts +38 -0
- package/dist/security/secrets.d.ts.map +1 -0
- package/dist/security/secrets.js +176 -0
- package/dist/security/secrets.js.map +7 -0
- package/dist/security/staleness.d.ts +43 -0
- package/dist/security/staleness.d.ts.map +1 -0
- package/dist/security/staleness.js +231 -0
- package/dist/security/staleness.js.map +7 -0
- package/dist/security/supply-chain.d.ts +34 -0
- package/dist/security/supply-chain.d.ts.map +1 -0
- package/dist/security/supply-chain.js +301 -0
- package/dist/security/supply-chain.js.map +7 -0
- package/dist/security/suppressions.d.ts +18 -0
- package/dist/security/suppressions.d.ts.map +1 -0
- package/dist/security/suppressions.js +106 -0
- package/dist/security/suppressions.js.map +7 -0
- package/dist/security/types.d.ts +144 -0
- package/dist/security/types.d.ts.map +1 -0
- package/dist/security/types.js +17 -0
- package/dist/security/types.js.map +7 -0
- package/dist/security/vuln/client.d.ts +90 -0
- package/dist/security/vuln/client.d.ts.map +1 -0
- package/dist/security/vuln/client.js +355 -0
- package/dist/security/vuln/client.js.map +7 -0
- package/dist/security/vuln/epss-client.d.ts +26 -0
- package/dist/security/vuln/epss-client.d.ts.map +1 -0
- package/dist/security/vuln/epss-client.js +95 -0
- package/dist/security/vuln/epss-client.js.map +7 -0
- package/dist/security/vuln/index.d.ts +6 -0
- package/dist/security/vuln/index.d.ts.map +1 -0
- package/dist/security/vuln/index.js +29 -0
- package/dist/security/vuln/index.js.map +7 -0
- package/dist/security/vuln/osv-adapter.d.ts +58 -0
- package/dist/security/vuln/osv-adapter.d.ts.map +1 -0
- package/dist/security/vuln/osv-adapter.js +321 -0
- package/dist/security/vuln/osv-adapter.js.map +7 -0
- package/dist/security/vuln/types.d.ts +29 -0
- package/dist/security/vuln/types.d.ts.map +1 -0
- package/dist/security/vuln/types.js +17 -0
- package/dist/security/vuln/types.js.map +7 -0
- package/dist/sync/index.d.ts +4 -2
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/types.d.ts +10 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +2 -2
- package/dist/vectors/index.d.ts +11 -3
- package/dist/vectors/index.d.ts.map +1 -1
- package/dist/vectors/qdrant-index.d.ts +10 -3
- package/dist/vectors/qdrant-index.d.ts.map +1 -1
- package/dist/vectors/typesense-index.d.ts.map +1 -1
- package/dist/watchmen/index.js +83 -0
- package/dist/watchmen/index.js.map +7 -0
- package/dist/watchmen/synthesize.js +475 -0
- package/dist/watchmen/synthesize.js.map +7 -0
- package/package.json +6 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cline target.
|
|
3
|
+
*
|
|
4
|
+
* MCP: .cline/mcp_settings.json
|
|
5
|
+
* Rules: .clinerules/kirograph.md (directory-based, not a flat file)
|
|
6
|
+
* Hooks: .cline/hooks/task_completed (executable script)
|
|
7
|
+
*/
|
|
8
|
+
import { CavemanMode } from '../caveman';
|
|
9
|
+
export declare function installClineEarly(projectRoot: string): void;
|
|
10
|
+
export declare function installClineLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string, enableMemory?: boolean, enableDocs?: boolean, enableData?: boolean, enableSecurity?: boolean, enableArchitecture?: boolean, enablePatterns?: boolean): void;
|
|
11
|
+
export declare function uninitCline(projectRoot: string): void;
|
|
12
|
+
export declare function printClineNextSteps(_projectRoot: string): void;
|
|
13
|
+
//# sourceMappingURL=cline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cline.d.ts","sourceRoot":"","sources":["../../../../src/bin/installer/targets/cline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAezC,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAiB3D;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAyBnR;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA6BrD;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAI9D"}
|
|
@@ -40,10 +40,25 @@ var import_common = require("../common");
|
|
|
40
40
|
var import_instructions = require("../instructions");
|
|
41
41
|
const CLINE_RULES_FILE = "kirograph.md";
|
|
42
42
|
const CLINE_HOOK_SCRIPT = "#!/bin/sh\nkirograph sync --quiet 2>/dev/null || true\n";
|
|
43
|
-
function installClineEarly(
|
|
43
|
+
function installClineEarly(projectRoot) {
|
|
44
|
+
const mcpPath = path.join(projectRoot, ".cline", "mcp_settings.json");
|
|
45
|
+
(0, import_common.ensureDir)(path.dirname(mcpPath));
|
|
46
|
+
const existing = (0, import_common.readJson)(mcpPath);
|
|
47
|
+
existing.mcpServers = existing.mcpServers ?? {};
|
|
48
|
+
if (existing.mcpServers[import_common.KIROGRAPH_SERVER_NAME]) {
|
|
49
|
+
console.log(` \u2713 Cline MCP already configured in ${mcpPath}`);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
existing.mcpServers[import_common.KIROGRAPH_SERVER_NAME] = {
|
|
53
|
+
command: import_common.KIROGRAPH_COMMAND,
|
|
54
|
+
args: import_common.KIROGRAPH_MCP_ARGS,
|
|
55
|
+
disabled: false
|
|
56
|
+
};
|
|
57
|
+
(0, import_common.writeJson)(mcpPath, existing);
|
|
58
|
+
console.log(` \u2713 Cline MCP server registered in ${mcpPath}`);
|
|
44
59
|
}
|
|
45
|
-
function installClineLate(projectRoot, cavemanMode, shellCompressionLevel, enableMemory) {
|
|
46
|
-
const opts = (0, import_common.buildInstructionOpts)(cavemanMode, shellCompressionLevel, enableMemory, true);
|
|
60
|
+
function installClineLate(projectRoot, cavemanMode, shellCompressionLevel, enableMemory, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns) {
|
|
61
|
+
const opts = (0, import_common.buildInstructionOpts)(cavemanMode, shellCompressionLevel, enableMemory, true, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns);
|
|
47
62
|
const instructionsPath = path.join(projectRoot, ".kirograph", "cline.md");
|
|
48
63
|
(0, import_common.ensureDir)(path.dirname(instructionsPath));
|
|
49
64
|
fs.writeFileSync(instructionsPath, (0, import_instructions.buildAgentInstructions)(opts));
|
|
@@ -63,6 +78,16 @@ function installClineLate(projectRoot, cavemanMode, shellCompressionLevel, enabl
|
|
|
63
78
|
console.log(` \u2713 Cline hook written to ${hookPath}`);
|
|
64
79
|
}
|
|
65
80
|
function uninitCline(projectRoot) {
|
|
81
|
+
const mcpPath = path.join(projectRoot, ".cline", "mcp_settings.json");
|
|
82
|
+
if (fs.existsSync(mcpPath)) {
|
|
83
|
+
const config = (0, import_common.readJson)(mcpPath);
|
|
84
|
+
if (config.mcpServers?.[import_common.KIROGRAPH_SERVER_NAME]) {
|
|
85
|
+
delete config.mcpServers[import_common.KIROGRAPH_SERVER_NAME];
|
|
86
|
+
if (Object.keys(config.mcpServers).length === 0) delete config.mcpServers;
|
|
87
|
+
(0, import_common.writeJson)(mcpPath, config);
|
|
88
|
+
console.log(` \u2713 Removed kirograph from .cline/mcp_settings.json`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
66
91
|
const rulePath = path.join(projectRoot, ".clinerules", CLINE_RULES_FILE);
|
|
67
92
|
if (fs.existsSync(rulePath)) {
|
|
68
93
|
fs.unlinkSync(rulePath);
|
|
@@ -77,9 +102,10 @@ function uninitCline(projectRoot) {
|
|
|
77
102
|
}
|
|
78
103
|
}
|
|
79
104
|
}
|
|
80
|
-
function printClineNextSteps(
|
|
81
|
-
console.log("\n Done!
|
|
82
|
-
(
|
|
105
|
+
function printClineNextSteps(_projectRoot) {
|
|
106
|
+
console.log("\n Done! Restart Cline for the MCP server to load.");
|
|
107
|
+
console.log(" MCP registered in .cline/mcp_settings.json");
|
|
108
|
+
console.log(" KiroGraph rule and hook are in .clinerules/\n");
|
|
83
109
|
}
|
|
84
110
|
// Annotate the CommonJS export names for ESM import in node:
|
|
85
111
|
0 && (module.exports = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/bin/installer/targets/cline.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Cline target.\n *\n * MCP: .cline/mcp_settings.json\n * Rules: .clinerules/kirograph.md (directory-based, not a flat file)\n * Hooks: .cline/hooks/task_completed (executable script)\n */\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { CavemanMode } from '../caveman';\nimport {\n ensureDir,\n buildInstructionOpts,\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAoB;AACpB,WAAsB;AAEtB,
|
|
4
|
+
"sourcesContent": ["/**\n * Cline target.\n *\n * MCP: .cline/mcp_settings.json\n * Rules: .clinerules/kirograph.md (directory-based, not a flat file)\n * Hooks: .cline/hooks/task_completed (executable script)\n */\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { CavemanMode } from '../caveman';\nimport {\n ensureDir,\n buildInstructionOpts,\n readJson,\n writeJson,\n KIROGRAPH_COMMAND,\n KIROGRAPH_MCP_ARGS,\n KIROGRAPH_SERVER_NAME,\n} from '../common';\nimport { buildAgentInstructions } from '../instructions';\n\nconst CLINE_RULES_FILE = 'kirograph.md';\nconst CLINE_HOOK_SCRIPT = '#!/bin/sh\\nkirograph sync --quiet 2>/dev/null || true\\n';\n\nexport function installClineEarly(projectRoot: string): void {\n // Write MCP config to workspace-level .cline/mcp_settings.json\n const mcpPath = path.join(projectRoot, '.cline', 'mcp_settings.json');\n ensureDir(path.dirname(mcpPath));\n const existing = readJson(mcpPath);\n existing.mcpServers = existing.mcpServers ?? {};\n if (existing.mcpServers[KIROGRAPH_SERVER_NAME]) {\n console.log(` \u2713 Cline MCP already configured in ${mcpPath}`);\n return;\n }\n existing.mcpServers[KIROGRAPH_SERVER_NAME] = {\n command: KIROGRAPH_COMMAND,\n args: KIROGRAPH_MCP_ARGS,\n disabled: false,\n };\n writeJson(mcpPath, existing);\n console.log(` \u2713 Cline MCP server registered in ${mcpPath}`);\n}\n\nexport function installClineLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string, enableMemory?: boolean, enableDocs?: boolean, enableData?: boolean, enableSecurity?: boolean, enableArchitecture?: boolean, enablePatterns?: boolean): void {\n const opts = buildInstructionOpts(cavemanMode, shellCompressionLevel, enableMemory, true, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns);\n\n const instructionsPath = path.join(projectRoot, '.kirograph', 'cline.md');\n ensureDir(path.dirname(instructionsPath));\n fs.writeFileSync(instructionsPath, buildAgentInstructions(opts));\n console.log(` \u2713 Cline instructions written to ${instructionsPath}`);\n\n // Write rules file inside .clinerules/ directory\n const rulesDir = path.join(projectRoot, '.clinerules');\n // If .clinerules exists as a flat file (legacy), remove it first\n if (fs.existsSync(rulesDir) && fs.statSync(rulesDir).isFile()) {\n fs.unlinkSync(rulesDir);\n }\n ensureDir(rulesDir);\n const rulePath = path.join(rulesDir, CLINE_RULES_FILE);\n fs.writeFileSync(rulePath, buildAgentInstructions(opts));\n console.log(` \u2713 Cline rule written to ${rulePath}`);\n\n // Write hook script\n const hooksDir = path.join(projectRoot, '.clinerules', 'hooks');\n ensureDir(hooksDir);\n const hookPath = path.join(hooksDir, 'task_completed');\n fs.writeFileSync(hookPath, CLINE_HOOK_SCRIPT, { mode: 0o755 });\n console.log(` \u2713 Cline hook written to ${hookPath}`);\n}\n\nexport function uninitCline(projectRoot: string): void {\n // Remove MCP entry\n const mcpPath = path.join(projectRoot, '.cline', 'mcp_settings.json');\n if (fs.existsSync(mcpPath)) {\n const config = readJson(mcpPath);\n if (config.mcpServers?.[KIROGRAPH_SERVER_NAME]) {\n delete config.mcpServers[KIROGRAPH_SERVER_NAME];\n if (Object.keys(config.mcpServers).length === 0) delete config.mcpServers;\n writeJson(mcpPath, config);\n console.log(` \u2713 Removed kirograph from .cline/mcp_settings.json`);\n }\n }\n\n // Remove rule file\n const rulePath = path.join(projectRoot, '.clinerules', CLINE_RULES_FILE);\n if (fs.existsSync(rulePath)) {\n fs.unlinkSync(rulePath);\n console.log(` \u2713 Removed .clinerules/${CLINE_RULES_FILE}`);\n }\n\n // Remove hook\n const hookPath = path.join(projectRoot, '.clinerules', 'hooks', 'task_completed');\n if (fs.existsSync(hookPath)) {\n const content = fs.readFileSync(hookPath, 'utf8');\n if (content.includes('kirograph')) {\n fs.unlinkSync(hookPath);\n console.log(` \u2713 Removed Cline hook .clinerules/hooks/task_completed`);\n }\n }\n}\n\nexport function printClineNextSteps(_projectRoot: string): void {\n console.log('\\n Done! Restart Cline for the MCP server to load.');\n console.log(' MCP registered in .cline/mcp_settings.json');\n console.log(' KiroGraph rule and hook are in .clinerules/\\n');\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CavemanMode } from '../caveman';
|
|
2
|
+
export declare function installCodexEarly(projectRoot: string): void;
|
|
3
|
+
export declare function installCodexLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string, enableMemory?: boolean, enableDocs?: boolean, enableData?: boolean, enableSecurity?: boolean, enableArchitecture?: boolean, enablePatterns?: boolean): void;
|
|
4
|
+
export declare function uninitCodex(projectRoot: string): void;
|
|
5
|
+
export declare function printCodexNextSteps(projectRoot: string): void;
|
|
6
|
+
//# sourceMappingURL=codex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/bin/installer/targets/codex.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAgCzC,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAwB3D;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAanR;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA2BrD;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAK7D"}
|
|
@@ -39,15 +39,52 @@ var path = __toESM(require("path"));
|
|
|
39
39
|
var import_common = require("../common");
|
|
40
40
|
var import_instructions = require("../instructions");
|
|
41
41
|
const CODEX_BLOCK_ID = "codex";
|
|
42
|
-
function
|
|
42
|
+
function buildCodexHooks() {
|
|
43
|
+
return {
|
|
44
|
+
hooks: {
|
|
45
|
+
Stop: [
|
|
46
|
+
{
|
|
47
|
+
hooks: [
|
|
48
|
+
{
|
|
49
|
+
type: "command",
|
|
50
|
+
command: "kirograph sync --quiet 2>/dev/null || true",
|
|
51
|
+
timeout: 30
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
};
|
|
43
58
|
}
|
|
44
|
-
function
|
|
59
|
+
function installCodexEarly(projectRoot) {
|
|
60
|
+
const codexDir = path.join(projectRoot, ".codex");
|
|
61
|
+
(0, import_common.ensureDir)(codexDir);
|
|
62
|
+
const hooksPath = path.join(codexDir, "hooks.json");
|
|
63
|
+
const existing = (0, import_common.readJson)(hooksPath);
|
|
64
|
+
const kgHooks = buildCodexHooks();
|
|
65
|
+
existing.hooks = existing.hooks ?? {};
|
|
66
|
+
for (const [event, matchers] of Object.entries(kgHooks.hooks)) {
|
|
67
|
+
existing.hooks[event] = existing.hooks[event] ?? [];
|
|
68
|
+
for (const matcher of matchers) {
|
|
69
|
+
const hasKirograph = existing.hooks[event].some(
|
|
70
|
+
(m) => m.hooks?.some((h) => h.command?.includes("kirograph"))
|
|
71
|
+
);
|
|
72
|
+
if (!hasKirograph) {
|
|
73
|
+
existing.hooks[event].push(matcher);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
(0, import_common.writeJson)(hooksPath, existing);
|
|
78
|
+
console.log(` \u2713 Codex hooks written to ${hooksPath}`);
|
|
79
|
+
}
|
|
80
|
+
function installCodexLate(projectRoot, cavemanMode, shellCompressionLevel, enableMemory, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns) {
|
|
81
|
+
const opts = (0, import_common.buildInstructionOpts)(cavemanMode, shellCompressionLevel, enableMemory, true, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns);
|
|
45
82
|
const instructionsPath = path.join(projectRoot, ".kirograph", "codex.md");
|
|
46
83
|
(0, import_common.ensureDir)(path.dirname(instructionsPath));
|
|
47
|
-
fs.writeFileSync(instructionsPath, (0, import_instructions.buildAgentInstructions)(
|
|
84
|
+
fs.writeFileSync(instructionsPath, (0, import_instructions.buildAgentInstructions)(opts));
|
|
48
85
|
console.log(` \u2713 Codex instructions written to ${instructionsPath}`);
|
|
49
86
|
const agentsPath = path.join(projectRoot, "AGENTS.md");
|
|
50
|
-
const changed = (0, import_common.upsertGeneratedBlock)(agentsPath, CODEX_BLOCK_ID, "## KiroGraph", (0, import_instructions.buildAgentInstructions)(
|
|
87
|
+
const changed = (0, import_common.upsertGeneratedBlock)(agentsPath, CODEX_BLOCK_ID, "## KiroGraph", (0, import_instructions.buildAgentInstructions)(opts));
|
|
51
88
|
console.log(changed ? ` \u2713 Codex project instructions updated in ${agentsPath}` : ` \u2713 Codex project instructions already up to date`);
|
|
52
89
|
}
|
|
53
90
|
function uninitCodex(projectRoot) {
|
|
@@ -55,17 +92,32 @@ function uninitCodex(projectRoot) {
|
|
|
55
92
|
if ((0, import_common.removeGeneratedBlock)(agentsPath, CODEX_BLOCK_ID)) {
|
|
56
93
|
console.log(` \u2713 Removed KiroGraph block from AGENTS.md`);
|
|
57
94
|
}
|
|
95
|
+
const hooksPath = path.join(projectRoot, ".codex", "hooks.json");
|
|
96
|
+
if (fs.existsSync(hooksPath)) {
|
|
97
|
+
const config = (0, import_common.readJson)(hooksPath);
|
|
98
|
+
if (config.hooks) {
|
|
99
|
+
let changed = false;
|
|
100
|
+
for (const event of Object.keys(config.hooks)) {
|
|
101
|
+
const before = config.hooks[event].length;
|
|
102
|
+
config.hooks[event] = config.hooks[event].filter(
|
|
103
|
+
(m) => !m.hooks?.some((h) => h.command?.includes("kirograph"))
|
|
104
|
+
);
|
|
105
|
+
if (config.hooks[event].length === 0) delete config.hooks[event];
|
|
106
|
+
if (config.hooks[event]?.length !== before) changed = true;
|
|
107
|
+
}
|
|
108
|
+
if (Object.keys(config.hooks).length === 0) delete config.hooks;
|
|
109
|
+
if (changed) {
|
|
110
|
+
(0, import_common.writeJson)(hooksPath, config);
|
|
111
|
+
console.log(` \u2713 Removed kirograph hooks from .codex/hooks.json`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
58
115
|
}
|
|
59
116
|
function printCodexNextSteps(projectRoot) {
|
|
60
117
|
const escapedPath = projectRoot.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
61
|
-
console.log("\n Done! Codex project instructions are installed.");
|
|
62
|
-
console.log("
|
|
63
|
-
|
|
64
|
-
console.log("\n Or add this to ~/.codex/config.toml:");
|
|
65
|
-
console.log(" [mcp_servers.kirograph]");
|
|
66
|
-
console.log(' command = "kirograph"');
|
|
67
|
-
console.log(` args = ["serve", "--mcp", "--path", "${escapedPath}"]
|
|
68
|
-
`);
|
|
118
|
+
console.log("\n Done! Codex project instructions and hooks are installed.");
|
|
119
|
+
console.log(" Auto-sync hook runs on Stop event.");
|
|
120
|
+
(0, import_common.printMcpCommand)(`codex mcp add kirograph -- kirograph serve --mcp --path "${escapedPath}"`);
|
|
69
121
|
}
|
|
70
122
|
// Annotate the CommonJS export names for ESM import in node:
|
|
71
123
|
0 && (module.exports = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/bin/installer/targets/codex.ts"],
|
|
4
|
-
"sourcesContent": ["import * as fs from 'fs';\nimport * as path from 'path';\nimport { CavemanMode } from '../caveman';\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAoB;AACpB,WAAsB;AAEtB,
|
|
4
|
+
"sourcesContent": ["import * as fs from 'fs';\nimport * as path from 'path';\nimport { CavemanMode } from '../caveman';\nimport {\n ensureDir,\n buildInstructionOpts,\n readJson,\n writeJson,\n printMcpCommand,\n removeGeneratedBlock,\n upsertGeneratedBlock,\n} from '../common';\nimport { buildAgentInstructions } from '../instructions';\n\nconst CODEX_BLOCK_ID = 'codex';\n\nfunction buildCodexHooks(): object {\n return {\n hooks: {\n Stop: [\n {\n hooks: [\n {\n type: 'command',\n command: 'kirograph sync --quiet 2>/dev/null || true',\n timeout: 30,\n },\n ],\n },\n ],\n },\n };\n}\n\nexport function installCodexEarly(projectRoot: string): void {\n // Codex now supports project-level .codex/ config.\n // Write hooks.json there for auto-sync.\n const codexDir = path.join(projectRoot, '.codex');\n ensureDir(codexDir);\n const hooksPath = path.join(codexDir, 'hooks.json');\n const existing = readJson(hooksPath);\n const kgHooks = buildCodexHooks() as any;\n\n existing.hooks = existing.hooks ?? {};\n for (const [event, matchers] of Object.entries(kgHooks.hooks)) {\n existing.hooks[event] = existing.hooks[event] ?? [];\n for (const matcher of matchers as any[]) {\n // Avoid duplicates by checking if a kirograph command already exists\n const hasKirograph = existing.hooks[event].some((m: any) =>\n m.hooks?.some((h: any) => h.command?.includes('kirograph'))\n );\n if (!hasKirograph) {\n existing.hooks[event].push(matcher);\n }\n }\n }\n writeJson(hooksPath, existing);\n console.log(` \u2713 Codex hooks written to ${hooksPath}`);\n}\n\nexport function installCodexLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string, enableMemory?: boolean, enableDocs?: boolean, enableData?: boolean, enableSecurity?: boolean, enableArchitecture?: boolean, enablePatterns?: boolean): void {\n const opts = buildInstructionOpts(cavemanMode, shellCompressionLevel, enableMemory, true, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns);\n\n const instructionsPath = path.join(projectRoot, '.kirograph', 'codex.md');\n ensureDir(path.dirname(instructionsPath));\n fs.writeFileSync(instructionsPath, buildAgentInstructions(opts));\n console.log(` \u2713 Codex instructions written to ${instructionsPath}`);\n\n const agentsPath = path.join(projectRoot, 'AGENTS.md');\n const changed = upsertGeneratedBlock(agentsPath, CODEX_BLOCK_ID, '## KiroGraph', buildAgentInstructions(opts));\n console.log(changed\n ? ` \u2713 Codex project instructions updated in ${agentsPath}`\n : ` \u2713 Codex project instructions already up to date`);\n}\n\nexport function uninitCodex(projectRoot: string): void {\n const agentsPath = path.join(projectRoot, 'AGENTS.md');\n if (removeGeneratedBlock(agentsPath, CODEX_BLOCK_ID)) {\n console.log(` \u2713 Removed KiroGraph block from AGENTS.md`);\n }\n\n // Remove hooks\n const hooksPath = path.join(projectRoot, '.codex', 'hooks.json');\n if (fs.existsSync(hooksPath)) {\n const config = readJson(hooksPath);\n if (config.hooks) {\n let changed = false;\n for (const event of Object.keys(config.hooks)) {\n const before = config.hooks[event].length;\n config.hooks[event] = config.hooks[event].filter((m: any) =>\n !m.hooks?.some((h: any) => h.command?.includes('kirograph'))\n );\n if (config.hooks[event].length === 0) delete config.hooks[event];\n if (config.hooks[event]?.length !== before) changed = true;\n }\n if (Object.keys(config.hooks).length === 0) delete config.hooks;\n if (changed) {\n writeJson(hooksPath, config);\n console.log(` \u2713 Removed kirograph hooks from .codex/hooks.json`);\n }\n }\n }\n}\n\nexport function printCodexNextSteps(projectRoot: string): void {\n const escapedPath = projectRoot.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n console.log('\\n Done! Codex project instructions and hooks are installed.');\n console.log(' Auto-sync hook runs on Stop event.');\n printMcpCommand(`codex mcp add kirograph -- kirograph serve --mcp --path \"${escapedPath}\"`);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Continue target.
|
|
3
|
+
*
|
|
4
|
+
* MCP: .continue/mcpServers/kirograph.json (project-level, JSON format)
|
|
5
|
+
* Rules: .continue/rules/kirograph.md
|
|
6
|
+
*/
|
|
7
|
+
import { CavemanMode } from '../caveman';
|
|
8
|
+
export declare function installContinueEarly(projectRoot: string): void;
|
|
9
|
+
export declare function installContinueLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string, enableMemory?: boolean, enableDocs?: boolean, enableData?: boolean, enableSecurity?: boolean, enableArchitecture?: boolean, enablePatterns?: boolean): void;
|
|
10
|
+
export declare function uninitContinue(projectRoot: string): void;
|
|
11
|
+
export declare function printContinueNextSteps(): void;
|
|
12
|
+
//# sourceMappingURL=continue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"continue.d.ts","sourceRoot":"","sources":["../../../../src/bin/installer/targets/continue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAazC,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAe9D;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CActR;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA4BxD;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C"}
|
|
@@ -55,8 +55,8 @@ function installContinueEarly(projectRoot) {
|
|
|
55
55
|
(0, import_common.writeJson)(mcpPath, config);
|
|
56
56
|
console.log(` \u2713 Continue MCP server registered in ${mcpPath}`);
|
|
57
57
|
}
|
|
58
|
-
function installContinueLate(projectRoot, cavemanMode, shellCompressionLevel, enableMemory) {
|
|
59
|
-
const opts = (0, import_common.buildInstructionOpts)(cavemanMode, shellCompressionLevel, enableMemory);
|
|
58
|
+
function installContinueLate(projectRoot, cavemanMode, shellCompressionLevel, enableMemory, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns) {
|
|
59
|
+
const opts = (0, import_common.buildInstructionOpts)(cavemanMode, shellCompressionLevel, enableMemory, void 0, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns);
|
|
60
60
|
const instructionsPath = path.join(projectRoot, ".kirograph", "continue.md");
|
|
61
61
|
(0, import_common.ensureDir)(path.dirname(instructionsPath));
|
|
62
62
|
fs.writeFileSync(instructionsPath, (0, import_instructions.buildAgentInstructions)(opts));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/bin/installer/targets/continue.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Continue target.\n *\n * MCP: .continue/mcpServers/kirograph.json (project-level, JSON format)\n * Rules: .continue/rules/kirograph.md\n */\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { CavemanMode } from '../caveman';\nimport {\n ensureDir,\n buildInstructionOpts,\n writeJson,\n KIROGRAPH_COMMAND,\n KIROGRAPH_MCP_ARGS,\n} from '../common';\nimport { buildAgentInstructions } from '../instructions';\n\nconst MCP_FILE = 'kirograph.json';\nconst RULES_FILE = 'kirograph.md';\n\nexport function installContinueEarly(projectRoot: string): void {\n // Write MCP config as a JSON file in .continue/mcpServers/\n const mcpDir = path.join(projectRoot, '.continue', 'mcpServers');\n ensureDir(mcpDir);\n const mcpPath = path.join(mcpDir, MCP_FILE);\n const config = {\n mcpServers: {\n kirograph: {\n command: KIROGRAPH_COMMAND,\n args: KIROGRAPH_MCP_ARGS,\n },\n },\n };\n writeJson(mcpPath, config);\n console.log(` \u2713 Continue MCP server registered in ${mcpPath}`);\n}\n\nexport function installContinueLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string, enableMemory?: boolean): void {\n const opts = buildInstructionOpts(cavemanMode, shellCompressionLevel, enableMemory);\n\n const instructionsPath = path.join(projectRoot, '.kirograph', 'continue.md');\n ensureDir(path.dirname(instructionsPath));\n fs.writeFileSync(instructionsPath, buildAgentInstructions(opts));\n console.log(` \u2713 Continue instructions written to ${instructionsPath}`);\n\n // Write rules file in .continue/rules/\n const rulesDir = path.join(projectRoot, '.continue', 'rules');\n ensureDir(rulesDir);\n const rulePath = path.join(rulesDir, RULES_FILE);\n fs.writeFileSync(rulePath, buildAgentInstructions(opts));\n console.log(` \u2713 Continue rule written to ${rulePath}`);\n}\n\nexport function uninitContinue(projectRoot: string): void {\n // Remove MCP file\n const mcpPath = path.join(projectRoot, '.continue', 'mcpServers', MCP_FILE);\n if (fs.existsSync(mcpPath)) {\n fs.unlinkSync(mcpPath);\n console.log(` \u2713 Removed .continue/mcpServers/${MCP_FILE}`);\n }\n\n // Remove rule file\n const rulePath = path.join(projectRoot, '.continue', 'rules', RULES_FILE);\n if (fs.existsSync(rulePath)) {\n fs.unlinkSync(rulePath);\n console.log(` \u2713 Removed .continue/rules/${RULES_FILE}`);\n }\n\n // Remove legacy config.json entry if it exists\n const legacyPath = path.join(projectRoot, '.continue', 'config.json');\n if (fs.existsSync(legacyPath)) {\n try {\n const config = JSON.parse(fs.readFileSync(legacyPath, 'utf8'));\n if (config.mcpServers?.kirograph) {\n delete config.mcpServers.kirograph;\n if (Object.keys(config.mcpServers).length === 0) delete config.mcpServers;\n fs.writeFileSync(legacyPath, JSON.stringify(config, null, 2) + '\\n');\n console.log(` \u2713 Removed legacy kirograph from .continue/config.json`);\n }\n } catch {}\n }\n}\n\nexport function printContinueNextSteps(): void {\n console.log('\\n Done! Restart Continue for the MCP server to load.');\n console.log(' MCP is in .continue/mcpServers/kirograph.json');\n console.log(' KiroGraph rule is in .continue/rules/kirograph.md\\n');\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAoB;AACpB,WAAsB;AAEtB,oBAMO;AACP,0BAAuC;AAEvC,MAAM,WAAW;AACjB,MAAM,aAAa;AAEZ,SAAS,qBAAqB,aAA2B;AAE9D,QAAM,SAAS,KAAK,KAAK,aAAa,aAAa,YAAY;AAC/D,+BAAU,MAAM;AAChB,QAAM,UAAU,KAAK,KAAK,QAAQ,QAAQ;AAC1C,QAAM,SAAS;AAAA,IACb,YAAY;AAAA,MACV,WAAW;AAAA,QACT,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,+BAAU,SAAS,MAAM;AACzB,UAAQ,IAAI,8CAAyC,OAAO,EAAE;AAChE;AAEO,SAAS,oBAAoB,aAAqB,aAAmC,uBAAgC,
|
|
4
|
+
"sourcesContent": ["/**\n * Continue target.\n *\n * MCP: .continue/mcpServers/kirograph.json (project-level, JSON format)\n * Rules: .continue/rules/kirograph.md\n */\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { CavemanMode } from '../caveman';\nimport {\n ensureDir,\n buildInstructionOpts,\n writeJson,\n KIROGRAPH_COMMAND,\n KIROGRAPH_MCP_ARGS,\n} from '../common';\nimport { buildAgentInstructions } from '../instructions';\n\nconst MCP_FILE = 'kirograph.json';\nconst RULES_FILE = 'kirograph.md';\n\nexport function installContinueEarly(projectRoot: string): void {\n // Write MCP config as a JSON file in .continue/mcpServers/\n const mcpDir = path.join(projectRoot, '.continue', 'mcpServers');\n ensureDir(mcpDir);\n const mcpPath = path.join(mcpDir, MCP_FILE);\n const config = {\n mcpServers: {\n kirograph: {\n command: KIROGRAPH_COMMAND,\n args: KIROGRAPH_MCP_ARGS,\n },\n },\n };\n writeJson(mcpPath, config);\n console.log(` \u2713 Continue MCP server registered in ${mcpPath}`);\n}\n\nexport function installContinueLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string, enableMemory?: boolean, enableDocs?: boolean, enableData?: boolean, enableSecurity?: boolean, enableArchitecture?: boolean, enablePatterns?: boolean): void {\n const opts = buildInstructionOpts(cavemanMode, shellCompressionLevel, enableMemory, undefined, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns);\n\n const instructionsPath = path.join(projectRoot, '.kirograph', 'continue.md');\n ensureDir(path.dirname(instructionsPath));\n fs.writeFileSync(instructionsPath, buildAgentInstructions(opts));\n console.log(` \u2713 Continue instructions written to ${instructionsPath}`);\n\n // Write rules file in .continue/rules/\n const rulesDir = path.join(projectRoot, '.continue', 'rules');\n ensureDir(rulesDir);\n const rulePath = path.join(rulesDir, RULES_FILE);\n fs.writeFileSync(rulePath, buildAgentInstructions(opts));\n console.log(` \u2713 Continue rule written to ${rulePath}`);\n}\n\nexport function uninitContinue(projectRoot: string): void {\n // Remove MCP file\n const mcpPath = path.join(projectRoot, '.continue', 'mcpServers', MCP_FILE);\n if (fs.existsSync(mcpPath)) {\n fs.unlinkSync(mcpPath);\n console.log(` \u2713 Removed .continue/mcpServers/${MCP_FILE}`);\n }\n\n // Remove rule file\n const rulePath = path.join(projectRoot, '.continue', 'rules', RULES_FILE);\n if (fs.existsSync(rulePath)) {\n fs.unlinkSync(rulePath);\n console.log(` \u2713 Removed .continue/rules/${RULES_FILE}`);\n }\n\n // Remove legacy config.json entry if it exists\n const legacyPath = path.join(projectRoot, '.continue', 'config.json');\n if (fs.existsSync(legacyPath)) {\n try {\n const config = JSON.parse(fs.readFileSync(legacyPath, 'utf8'));\n if (config.mcpServers?.kirograph) {\n delete config.mcpServers.kirograph;\n if (Object.keys(config.mcpServers).length === 0) delete config.mcpServers;\n fs.writeFileSync(legacyPath, JSON.stringify(config, null, 2) + '\\n');\n console.log(` \u2713 Removed legacy kirograph from .continue/config.json`);\n }\n } catch {}\n }\n}\n\nexport function printContinueNextSteps(): void {\n console.log('\\n Done! Restart Continue for the MCP server to load.');\n console.log(' MCP is in .continue/mcpServers/kirograph.json');\n console.log(' KiroGraph rule is in .continue/rules/kirograph.md\\n');\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAoB;AACpB,WAAsB;AAEtB,oBAMO;AACP,0BAAuC;AAEvC,MAAM,WAAW;AACjB,MAAM,aAAa;AAEZ,SAAS,qBAAqB,aAA2B;AAE9D,QAAM,SAAS,KAAK,KAAK,aAAa,aAAa,YAAY;AAC/D,+BAAU,MAAM;AAChB,QAAM,UAAU,KAAK,KAAK,QAAQ,QAAQ;AAC1C,QAAM,SAAS;AAAA,IACb,YAAY;AAAA,MACV,WAAW;AAAA,QACT,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,+BAAU,SAAS,MAAM;AACzB,UAAQ,IAAI,8CAAyC,OAAO,EAAE;AAChE;AAEO,SAAS,oBAAoB,aAAqB,aAAmC,uBAAgC,cAAwB,YAAsB,YAAsB,gBAA0B,oBAA8B,gBAAgC;AACtR,QAAM,WAAO,oCAAqB,aAAa,uBAAuB,cAAc,QAAW,YAAY,YAAY,gBAAgB,oBAAoB,cAAc;AAEzK,QAAM,mBAAmB,KAAK,KAAK,aAAa,cAAc,aAAa;AAC3E,+BAAU,KAAK,QAAQ,gBAAgB,CAAC;AACxC,KAAG,cAAc,sBAAkB,4CAAuB,IAAI,CAAC;AAC/D,UAAQ,IAAI,6CAAwC,gBAAgB,EAAE;AAGtE,QAAM,WAAW,KAAK,KAAK,aAAa,aAAa,OAAO;AAC5D,+BAAU,QAAQ;AAClB,QAAM,WAAW,KAAK,KAAK,UAAU,UAAU;AAC/C,KAAG,cAAc,cAAU,4CAAuB,IAAI,CAAC;AACvD,UAAQ,IAAI,qCAAgC,QAAQ,EAAE;AACxD;AAEO,SAAS,eAAe,aAA2B;AAExD,QAAM,UAAU,KAAK,KAAK,aAAa,aAAa,cAAc,QAAQ;AAC1E,MAAI,GAAG,WAAW,OAAO,GAAG;AAC1B,OAAG,WAAW,OAAO;AACrB,YAAQ,IAAI,yCAAoC,QAAQ,EAAE;AAAA,EAC5D;AAGA,QAAM,WAAW,KAAK,KAAK,aAAa,aAAa,SAAS,UAAU;AACxE,MAAI,GAAG,WAAW,QAAQ,GAAG;AAC3B,OAAG,WAAW,QAAQ;AACtB,YAAQ,IAAI,oCAA+B,UAAU,EAAE;AAAA,EACzD;AAGA,QAAM,aAAa,KAAK,KAAK,aAAa,aAAa,aAAa;AACpE,MAAI,GAAG,WAAW,UAAU,GAAG;AAC7B,QAAI;AACF,YAAM,SAAS,KAAK,MAAM,GAAG,aAAa,YAAY,MAAM,CAAC;AAC7D,UAAI,OAAO,YAAY,WAAW;AAChC,eAAO,OAAO,WAAW;AACzB,YAAI,OAAO,KAAK,OAAO,UAAU,EAAE,WAAW,EAAG,QAAO,OAAO;AAC/D,WAAG,cAAc,YAAY,KAAK,UAAU,QAAQ,MAAM,CAAC,IAAI,IAAI;AACnE,gBAAQ,IAAI,8DAAyD;AAAA,MACvE;AAAA,IACF,QAAQ;AAAA,IAAC;AAAA,EACX;AACF;AAEO,SAAS,yBAA+B;AAC7C,UAAQ,IAAI,wDAAwD;AACpE,UAAQ,IAAI,iDAAiD;AAC7D,UAAQ,IAAI,uDAAuD;AACrE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Copilot CLI target.
|
|
3
|
+
*
|
|
4
|
+
* MCP: ~/.copilot/mcp-config.json with "servers" key
|
|
5
|
+
* Instructions: AGENTS.md (upsert block)
|
|
6
|
+
*/
|
|
7
|
+
import { CavemanMode } from '../caveman';
|
|
8
|
+
export declare function installCopilotCliEarly(_projectRoot: string): void;
|
|
9
|
+
export declare function installCopilotCliLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string, enableMemory?: boolean, enableDocs?: boolean, enableData?: boolean, enableSecurity?: boolean, enableArchitecture?: boolean, enablePatterns?: boolean): void;
|
|
10
|
+
export declare function uninitCopilotCli(projectRoot: string): void;
|
|
11
|
+
export declare function printCopilotCliNextSteps(): void;
|
|
12
|
+
//# sourceMappingURL=copilot-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-cli.d.ts","sourceRoot":"","sources":["../../../../src/bin/installer/targets/copilot-cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAgBzC,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAiBjE;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAaxR;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAiB1D;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAM/C"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var copilot_cli_exports = {};
|
|
30
|
+
__export(copilot_cli_exports, {
|
|
31
|
+
installCopilotCliEarly: () => installCopilotCliEarly,
|
|
32
|
+
installCopilotCliLate: () => installCopilotCliLate,
|
|
33
|
+
printCopilotCliNextSteps: () => printCopilotCliNextSteps,
|
|
34
|
+
uninitCopilotCli: () => uninitCopilotCli
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(copilot_cli_exports);
|
|
37
|
+
var fs = __toESM(require("fs"));
|
|
38
|
+
var path = __toESM(require("path"));
|
|
39
|
+
var import_common = require("../common");
|
|
40
|
+
var import_instructions = require("../instructions");
|
|
41
|
+
const COPILOT_CLI_BLOCK_ID = "copilot-cli";
|
|
42
|
+
function installCopilotCliEarly(_projectRoot) {
|
|
43
|
+
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
44
|
+
const mcpPath = path.join(home, ".copilot", "mcp-config.json");
|
|
45
|
+
(0, import_common.ensureDir)(path.dirname(mcpPath));
|
|
46
|
+
const config = (0, import_common.readJson)(mcpPath);
|
|
47
|
+
config.servers = config.servers ?? {};
|
|
48
|
+
if (config.servers[import_common.KIROGRAPH_SERVER_NAME]) {
|
|
49
|
+
console.log(` \u2713 Copilot CLI MCP already configured in ${mcpPath}`);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
config.servers[import_common.KIROGRAPH_SERVER_NAME] = {
|
|
53
|
+
type: "stdio",
|
|
54
|
+
command: import_common.KIROGRAPH_COMMAND,
|
|
55
|
+
args: import_common.KIROGRAPH_MCP_ARGS
|
|
56
|
+
};
|
|
57
|
+
(0, import_common.writeJson)(mcpPath, config);
|
|
58
|
+
console.log(` \u2713 Copilot CLI MCP server registered in ${mcpPath}`);
|
|
59
|
+
}
|
|
60
|
+
function installCopilotCliLate(projectRoot, cavemanMode, shellCompressionLevel, enableMemory, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns) {
|
|
61
|
+
const opts = (0, import_common.buildInstructionOpts)(cavemanMode, shellCompressionLevel, enableMemory, void 0, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns);
|
|
62
|
+
const instructionsPath = path.join(projectRoot, ".kirograph", "copilot-cli.md");
|
|
63
|
+
(0, import_common.ensureDir)(path.dirname(instructionsPath));
|
|
64
|
+
fs.writeFileSync(instructionsPath, (0, import_instructions.buildAgentInstructions)(opts));
|
|
65
|
+
console.log(` \u2713 Copilot CLI instructions written to ${instructionsPath}`);
|
|
66
|
+
const agentsPath = path.join(projectRoot, "AGENTS.md");
|
|
67
|
+
const changed = (0, import_common.upsertGeneratedBlock)(agentsPath, COPILOT_CLI_BLOCK_ID, "## KiroGraph", (0, import_instructions.buildAgentInstructions)(opts));
|
|
68
|
+
console.log(changed ? ` \u2713 AGENTS.md updated with KiroGraph instructions (Copilot CLI)` : ` \u2713 AGENTS.md already up to date`);
|
|
69
|
+
}
|
|
70
|
+
function uninitCopilotCli(projectRoot) {
|
|
71
|
+
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
72
|
+
const mcpPath = path.join(home, ".copilot", "mcp-config.json");
|
|
73
|
+
if (fs.existsSync(mcpPath)) {
|
|
74
|
+
const config = (0, import_common.readJson)(mcpPath);
|
|
75
|
+
if (config.servers?.[import_common.KIROGRAPH_SERVER_NAME]) {
|
|
76
|
+
delete config.servers[import_common.KIROGRAPH_SERVER_NAME];
|
|
77
|
+
if (Object.keys(config.servers).length === 0) delete config.servers;
|
|
78
|
+
(0, import_common.writeJson)(mcpPath, config);
|
|
79
|
+
console.log(` \u2713 Removed kirograph from ~/.copilot/mcp-config.json`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const agentsPath = path.join(projectRoot, "AGENTS.md");
|
|
83
|
+
if ((0, import_common.removeGeneratedBlock)(agentsPath, COPILOT_CLI_BLOCK_ID)) {
|
|
84
|
+
console.log(` \u2713 Removed KiroGraph block from AGENTS.md (Copilot CLI)`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function printCopilotCliNextSteps() {
|
|
88
|
+
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
89
|
+
const mcpPath = path.join(home, ".copilot", "mcp-config.json");
|
|
90
|
+
console.log("\n Done! Copilot CLI MCP server registered.");
|
|
91
|
+
console.log(` MCP config: ${mcpPath}`);
|
|
92
|
+
console.log(" KiroGraph instructions are in AGENTS.md\n");
|
|
93
|
+
}
|
|
94
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
95
|
+
0 && (module.exports = {
|
|
96
|
+
installCopilotCliEarly,
|
|
97
|
+
installCopilotCliLate,
|
|
98
|
+
printCopilotCliNextSteps,
|
|
99
|
+
uninitCopilotCli
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=copilot-cli.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/bin/installer/targets/copilot-cli.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * GitHub Copilot CLI target.\n *\n * MCP: ~/.copilot/mcp-config.json with \"servers\" key\n * Instructions: AGENTS.md (upsert block)\n */\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { CavemanMode } from '../caveman';\nimport {\n ensureDir,\n buildInstructionOpts,\n readJson,\n writeJson,\n KIROGRAPH_COMMAND,\n KIROGRAPH_MCP_ARGS,\n KIROGRAPH_SERVER_NAME,\n upsertGeneratedBlock,\n removeGeneratedBlock,\n} from '../common';\nimport { buildAgentInstructions } from '../instructions';\n\nconst COPILOT_CLI_BLOCK_ID = 'copilot-cli';\n\nexport function installCopilotCliEarly(_projectRoot: string): void {\n const home = process.env.HOME || process.env.USERPROFILE || '';\n const mcpPath = path.join(home, '.copilot', 'mcp-config.json');\n ensureDir(path.dirname(mcpPath));\n const config = readJson(mcpPath);\n config.servers = config.servers ?? {};\n if (config.servers[KIROGRAPH_SERVER_NAME]) {\n console.log(` \u2713 Copilot CLI MCP already configured in ${mcpPath}`);\n return;\n }\n config.servers[KIROGRAPH_SERVER_NAME] = {\n type: 'stdio',\n command: KIROGRAPH_COMMAND,\n args: KIROGRAPH_MCP_ARGS,\n };\n writeJson(mcpPath, config);\n console.log(` \u2713 Copilot CLI MCP server registered in ${mcpPath}`);\n}\n\nexport function installCopilotCliLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string, enableMemory?: boolean, enableDocs?: boolean, enableData?: boolean, enableSecurity?: boolean, enableArchitecture?: boolean, enablePatterns?: boolean): void {\n const opts = buildInstructionOpts(cavemanMode, shellCompressionLevel, enableMemory, undefined, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns);\n\n const instructionsPath = path.join(projectRoot, '.kirograph', 'copilot-cli.md');\n ensureDir(path.dirname(instructionsPath));\n fs.writeFileSync(instructionsPath, buildAgentInstructions(opts));\n console.log(` \u2713 Copilot CLI instructions written to ${instructionsPath}`);\n\n const agentsPath = path.join(projectRoot, 'AGENTS.md');\n const changed = upsertGeneratedBlock(agentsPath, COPILOT_CLI_BLOCK_ID, '## KiroGraph', buildAgentInstructions(opts));\n console.log(changed\n ? ` \u2713 AGENTS.md updated with KiroGraph instructions (Copilot CLI)`\n : ` \u2713 AGENTS.md already up to date`);\n}\n\nexport function uninitCopilotCli(projectRoot: string): void {\n const home = process.env.HOME || process.env.USERPROFILE || '';\n const mcpPath = path.join(home, '.copilot', 'mcp-config.json');\n if (fs.existsSync(mcpPath)) {\n const config = readJson(mcpPath);\n if (config.servers?.[KIROGRAPH_SERVER_NAME]) {\n delete config.servers[KIROGRAPH_SERVER_NAME];\n if (Object.keys(config.servers).length === 0) delete config.servers;\n writeJson(mcpPath, config);\n console.log(` \u2713 Removed kirograph from ~/.copilot/mcp-config.json`);\n }\n }\n\n const agentsPath = path.join(projectRoot, 'AGENTS.md');\n if (removeGeneratedBlock(agentsPath, COPILOT_CLI_BLOCK_ID)) {\n console.log(` \u2713 Removed KiroGraph block from AGENTS.md (Copilot CLI)`);\n }\n}\n\nexport function printCopilotCliNextSteps(): void {\n const home = process.env.HOME || process.env.USERPROFILE || '';\n const mcpPath = path.join(home, '.copilot', 'mcp-config.json');\n console.log('\\n Done! Copilot CLI MCP server registered.');\n console.log(` MCP config: ${mcpPath}`);\n console.log(' KiroGraph instructions are in AGENTS.md\\n');\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAoB;AACpB,WAAsB;AAEtB,oBAUO;AACP,0BAAuC;AAEvC,MAAM,uBAAuB;AAEtB,SAAS,uBAAuB,cAA4B;AACjE,QAAM,OAAO,QAAQ,IAAI,QAAQ,QAAQ,IAAI,eAAe;AAC5D,QAAM,UAAU,KAAK,KAAK,MAAM,YAAY,iBAAiB;AAC7D,+BAAU,KAAK,QAAQ,OAAO,CAAC;AAC/B,QAAM,aAAS,wBAAS,OAAO;AAC/B,SAAO,UAAU,OAAO,WAAW,CAAC;AACpC,MAAI,OAAO,QAAQ,mCAAqB,GAAG;AACzC,YAAQ,IAAI,kDAA6C,OAAO,EAAE;AAClE;AAAA,EACF;AACA,SAAO,QAAQ,mCAAqB,IAAI;AAAA,IACtC,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AACA,+BAAU,SAAS,MAAM;AACzB,UAAQ,IAAI,iDAA4C,OAAO,EAAE;AACnE;AAEO,SAAS,sBAAsB,aAAqB,aAAmC,uBAAgC,cAAwB,YAAsB,YAAsB,gBAA0B,oBAA8B,gBAAgC;AACxR,QAAM,WAAO,oCAAqB,aAAa,uBAAuB,cAAc,QAAW,YAAY,YAAY,gBAAgB,oBAAoB,cAAc;AAEzK,QAAM,mBAAmB,KAAK,KAAK,aAAa,cAAc,gBAAgB;AAC9E,+BAAU,KAAK,QAAQ,gBAAgB,CAAC;AACxC,KAAG,cAAc,sBAAkB,4CAAuB,IAAI,CAAC;AAC/D,UAAQ,IAAI,gDAA2C,gBAAgB,EAAE;AAEzE,QAAM,aAAa,KAAK,KAAK,aAAa,WAAW;AACrD,QAAM,cAAU,oCAAqB,YAAY,sBAAsB,oBAAgB,4CAAuB,IAAI,CAAC;AACnH,UAAQ,IAAI,UACR,yEACA,uCAAkC;AACxC;AAEO,SAAS,iBAAiB,aAA2B;AAC1D,QAAM,OAAO,QAAQ,IAAI,QAAQ,QAAQ,IAAI,eAAe;AAC5D,QAAM,UAAU,KAAK,KAAK,MAAM,YAAY,iBAAiB;AAC7D,MAAI,GAAG,WAAW,OAAO,GAAG;AAC1B,UAAM,aAAS,wBAAS,OAAO;AAC/B,QAAI,OAAO,UAAU,mCAAqB,GAAG;AAC3C,aAAO,OAAO,QAAQ,mCAAqB;AAC3C,UAAI,OAAO,KAAK,OAAO,OAAO,EAAE,WAAW,EAAG,QAAO,OAAO;AAC5D,mCAAU,SAAS,MAAM;AACzB,cAAQ,IAAI,4DAAuD;AAAA,IACrE;AAAA,EACF;AAEA,QAAM,aAAa,KAAK,KAAK,aAAa,WAAW;AACrD,UAAI,oCAAqB,YAAY,oBAAoB,GAAG;AAC1D,YAAQ,IAAI,+DAA0D;AAAA,EACxE;AACF;AAEO,SAAS,2BAAiC;AAC/C,QAAM,OAAO,QAAQ,IAAI,QAAQ,QAAQ,IAAI,eAAe;AAC5D,QAAM,UAAU,KAAK,KAAK,MAAM,YAAY,iBAAiB;AAC7D,UAAQ,IAAI,8CAA8C;AAC1D,UAAQ,IAAI,iBAAiB,OAAO,EAAE;AACtC,UAAQ,IAAI,6CAA6C;AAC3D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CavemanMode } from '../caveman';
|
|
2
|
+
export declare function installCopilotEarly(projectRoot: string): void;
|
|
3
|
+
export declare function installCopilotLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string, enableMemory?: boolean, enableDocs?: boolean, enableData?: boolean, enableSecurity?: boolean, enableArchitecture?: boolean, enablePatterns?: boolean): void;
|
|
4
|
+
export declare function uninitCopilot(projectRoot: string): void;
|
|
5
|
+
export declare function printCopilotNextSteps(): void;
|
|
6
|
+
//# sourceMappingURL=copilot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../../../src/bin/installer/targets/copilot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA4BzC,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA2B7D;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CA8BrR;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA0CvD;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C"}
|
|
@@ -49,15 +49,30 @@ function buildCopilotHooks() {
|
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
51
|
function installCopilotEarly(projectRoot) {
|
|
52
|
-
const
|
|
53
|
-
(0, import_common.
|
|
52
|
+
const vscodeMcpPath = path.join(projectRoot, ".vscode", "mcp.json");
|
|
53
|
+
(0, import_common.ensureDir)(path.dirname(vscodeMcpPath));
|
|
54
|
+
const vscodeConfig = (0, import_common.readJson)(vscodeMcpPath);
|
|
55
|
+
vscodeConfig.servers = vscodeConfig.servers ?? {};
|
|
56
|
+
if (!vscodeConfig.servers[import_common.KIROGRAPH_SERVER_NAME]) {
|
|
57
|
+
vscodeConfig.servers[import_common.KIROGRAPH_SERVER_NAME] = {
|
|
58
|
+
type: "stdio",
|
|
59
|
+
command: import_common.KIROGRAPH_COMMAND,
|
|
60
|
+
args: import_common.KIROGRAPH_MCP_ARGS
|
|
61
|
+
};
|
|
62
|
+
(0, import_common.writeJson)(vscodeMcpPath, vscodeConfig);
|
|
63
|
+
console.log(` \u2713 Copilot MCP registered in ${vscodeMcpPath}`);
|
|
64
|
+
} else {
|
|
65
|
+
console.log(` \u2713 Copilot MCP already configured in ${vscodeMcpPath}`);
|
|
66
|
+
}
|
|
67
|
+
const ghMcpPath = path.join(projectRoot, ".github", "copilot-mcp.json");
|
|
68
|
+
const ghWritten = (0, import_common.writeMcpServersConfig)(ghMcpPath, {
|
|
54
69
|
command: import_common.KIROGRAPH_COMMAND,
|
|
55
70
|
args: import_common.KIROGRAPH_MCP_ARGS
|
|
56
71
|
});
|
|
57
|
-
console.log(` \u2713
|
|
72
|
+
console.log(ghWritten ? ` \u2713 Copilot MCP registered in ${ghMcpPath}` : ` \u2713 Copilot MCP already configured in ${ghMcpPath}`);
|
|
58
73
|
}
|
|
59
|
-
function installCopilotLate(projectRoot, cavemanMode, shellCompressionLevel, enableMemory) {
|
|
60
|
-
const opts = (0, import_common.buildInstructionOpts)(cavemanMode, shellCompressionLevel, enableMemory, true);
|
|
74
|
+
function installCopilotLate(projectRoot, cavemanMode, shellCompressionLevel, enableMemory, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns) {
|
|
75
|
+
const opts = (0, import_common.buildInstructionOpts)(cavemanMode, shellCompressionLevel, enableMemory, true, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns);
|
|
61
76
|
const instructionsPath = path.join(projectRoot, ".kirograph", "copilot.md");
|
|
62
77
|
(0, import_common.ensureDir)(path.dirname(instructionsPath));
|
|
63
78
|
fs.writeFileSync(instructionsPath, (0, import_instructions.buildAgentInstructions)(opts));
|
|
@@ -82,6 +97,16 @@ function installCopilotLate(projectRoot, cavemanMode, shellCompressionLevel, ena
|
|
|
82
97
|
console.log(` \u2713 Copilot hooks written to ${hooksPath}`);
|
|
83
98
|
}
|
|
84
99
|
function uninitCopilot(projectRoot) {
|
|
100
|
+
const vscodeMcpPath = path.join(projectRoot, ".vscode", "mcp.json");
|
|
101
|
+
if (fs.existsSync(vscodeMcpPath)) {
|
|
102
|
+
const config = (0, import_common.readJson)(vscodeMcpPath);
|
|
103
|
+
if (config.servers?.[import_common.KIROGRAPH_SERVER_NAME]) {
|
|
104
|
+
delete config.servers[import_common.KIROGRAPH_SERVER_NAME];
|
|
105
|
+
if (Object.keys(config.servers).length === 0) delete config.servers;
|
|
106
|
+
(0, import_common.writeJson)(vscodeMcpPath, config);
|
|
107
|
+
console.log(` \u2713 Removed kirograph from .vscode/mcp.json`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
85
110
|
const mcpPath = path.join(projectRoot, ".github", "copilot-mcp.json");
|
|
86
111
|
if ((0, import_common.removeMcpServersConfig)(mcpPath)) {
|
|
87
112
|
console.log(` \u2713 Removed kirograph from .github/copilot-mcp.json`);
|
|
@@ -111,6 +136,7 @@ function uninitCopilot(projectRoot) {
|
|
|
111
136
|
}
|
|
112
137
|
function printCopilotNextSteps() {
|
|
113
138
|
console.log("\n Done! Restart your editor for the Copilot MCP server and hooks to load.");
|
|
139
|
+
console.log(" MCP registered in .vscode/mcp.json and .github/copilot-mcp.json");
|
|
114
140
|
console.log(" Auto-sync hook runs on session end.\n");
|
|
115
141
|
}
|
|
116
142
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/bin/installer/targets/copilot.ts"],
|
|
4
|
-
"sourcesContent": ["import * as fs from 'fs';\nimport * as path from 'path';\nimport { CavemanMode } from '../caveman';\nimport {\n ensureDir,\n buildInstructionOpts,\n readJson,\n writeJson,\n KIROGRAPH_COMMAND,\n KIROGRAPH_MCP_ARGS,\n removeMcpServersConfig,\n upsertGeneratedBlock,\n removeGeneratedBlock,\n writeMcpServersConfig,\n} from '../common';\nimport { buildAgentInstructions } from '../instructions';\n\nconst COPILOT_BLOCK_ID = 'copilot';\n\nfunction buildCopilotHooks(): object {\n return {\n hooks: {\n 'session-end': [\n { command: 'kirograph sync --quiet 2>/dev/null || true' },\n ],\n },\n };\n}\n\nexport function installCopilotEarly(projectRoot: string): void {\n const
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAoB;AACpB,WAAsB;AAEtB,
|
|
4
|
+
"sourcesContent": ["import * as fs from 'fs';\nimport * as path from 'path';\nimport { CavemanMode } from '../caveman';\nimport {\n ensureDir,\n buildInstructionOpts,\n readJson,\n writeJson,\n KIROGRAPH_COMMAND,\n KIROGRAPH_MCP_ARGS,\n KIROGRAPH_SERVER_NAME,\n removeMcpServersConfig,\n upsertGeneratedBlock,\n removeGeneratedBlock,\n writeMcpServersConfig,\n} from '../common';\nimport { buildAgentInstructions } from '../instructions';\n\nconst COPILOT_BLOCK_ID = 'copilot';\n\nfunction buildCopilotHooks(): object {\n return {\n hooks: {\n 'session-end': [\n { command: 'kirograph sync --quiet 2>/dev/null || true' },\n ],\n },\n };\n}\n\nexport function installCopilotEarly(projectRoot: string): void {\n // VS Code Copilot Chat format: .vscode/mcp.json with \"servers\" key\n const vscodeMcpPath = path.join(projectRoot, '.vscode', 'mcp.json');\n ensureDir(path.dirname(vscodeMcpPath));\n const vscodeConfig = readJson(vscodeMcpPath);\n vscodeConfig.servers = vscodeConfig.servers ?? {};\n if (!vscodeConfig.servers[KIROGRAPH_SERVER_NAME]) {\n vscodeConfig.servers[KIROGRAPH_SERVER_NAME] = {\n type: 'stdio',\n command: KIROGRAPH_COMMAND,\n args: KIROGRAPH_MCP_ARGS,\n };\n writeJson(vscodeMcpPath, vscodeConfig);\n console.log(` \u2713 Copilot MCP registered in ${vscodeMcpPath}`);\n } else {\n console.log(` \u2713 Copilot MCP already configured in ${vscodeMcpPath}`);\n }\n\n // GitHub Copilot agent mode format: .github/copilot-mcp.json with \"mcpServers\" key\n const ghMcpPath = path.join(projectRoot, '.github', 'copilot-mcp.json');\n const ghWritten = writeMcpServersConfig(ghMcpPath, {\n command: KIROGRAPH_COMMAND,\n args: KIROGRAPH_MCP_ARGS,\n });\n console.log(ghWritten\n ? ` \u2713 Copilot MCP registered in ${ghMcpPath}`\n : ` \u2713 Copilot MCP already configured in ${ghMcpPath}`);\n}\n\nexport function installCopilotLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string, enableMemory?: boolean, enableDocs?: boolean, enableData?: boolean, enableSecurity?: boolean, enableArchitecture?: boolean, enablePatterns?: boolean): void {\n const opts = buildInstructionOpts(cavemanMode, shellCompressionLevel, enableMemory, true, enableDocs, enableData, enableSecurity, enableArchitecture, enablePatterns);\n\n const instructionsPath = path.join(projectRoot, '.kirograph', 'copilot.md');\n ensureDir(path.dirname(instructionsPath));\n fs.writeFileSync(instructionsPath, buildAgentInstructions(opts));\n console.log(` \u2713 Copilot instructions written to ${instructionsPath}`);\n\n const rulesPath = path.join(projectRoot, '.github', 'copilot-instructions.md');\n ensureDir(path.dirname(rulesPath));\n const changed = upsertGeneratedBlock(rulesPath, COPILOT_BLOCK_ID, '## KiroGraph', buildAgentInstructions(opts));\n console.log(changed\n ? ` \u2713 .github/copilot-instructions.md updated with KiroGraph instructions`\n : ` \u2713 .github/copilot-instructions.md already up to date`);\n\n // Write hooks\n const hooksPath = path.join(projectRoot, '.github', 'hooks.json');\n const existing = readJson(hooksPath);\n const kgHooks = buildCopilotHooks() as any;\n existing.hooks = existing.hooks ?? {};\n for (const [event, commands] of Object.entries(kgHooks.hooks)) {\n existing.hooks[event] = existing.hooks[event] ?? [];\n for (const cmd of commands as Array<{ command: string }>) {\n if (!existing.hooks[event].some((h: any) => h.command === cmd.command)) {\n existing.hooks[event].push(cmd);\n }\n }\n }\n writeJson(hooksPath, existing);\n console.log(` \u2713 Copilot hooks written to ${hooksPath}`);\n}\n\nexport function uninitCopilot(projectRoot: string): void {\n // Remove from .vscode/mcp.json (servers key)\n const vscodeMcpPath = path.join(projectRoot, '.vscode', 'mcp.json');\n if (fs.existsSync(vscodeMcpPath)) {\n const config = readJson(vscodeMcpPath);\n if (config.servers?.[KIROGRAPH_SERVER_NAME]) {\n delete config.servers[KIROGRAPH_SERVER_NAME];\n if (Object.keys(config.servers).length === 0) delete config.servers;\n writeJson(vscodeMcpPath, config);\n console.log(` \u2713 Removed kirograph from .vscode/mcp.json`);\n }\n }\n\n // Remove from .github/copilot-mcp.json\n const mcpPath = path.join(projectRoot, '.github', 'copilot-mcp.json');\n if (removeMcpServersConfig(mcpPath)) {\n console.log(` \u2713 Removed kirograph from .github/copilot-mcp.json`);\n }\n\n const rulesPath = path.join(projectRoot, '.github', 'copilot-instructions.md');\n if (removeGeneratedBlock(rulesPath, COPILOT_BLOCK_ID)) {\n console.log(` \u2713 Removed KiroGraph block from .github/copilot-instructions.md`);\n }\n\n const hooksPath = path.join(projectRoot, '.github', 'hooks.json');\n if (fs.existsSync(hooksPath)) {\n const config = readJson(hooksPath);\n if (config.hooks) {\n let changed = false;\n for (const event of Object.keys(config.hooks)) {\n const before = config.hooks[event].length;\n config.hooks[event] = config.hooks[event].filter((h: any) => !h.command?.includes('kirograph'));\n if (config.hooks[event].length === 0) delete config.hooks[event];\n if (config.hooks[event]?.length !== before) changed = true;\n }\n if (Object.keys(config.hooks).length === 0) delete config.hooks;\n if (changed) {\n writeJson(hooksPath, config);\n console.log(` \u2713 Removed kirograph hooks from .github/hooks.json`);\n }\n }\n }\n}\n\nexport function printCopilotNextSteps(): void {\n console.log('\\n Done! Restart your editor for the Copilot MCP server and hooks to load.');\n console.log(' MCP registered in .vscode/mcp.json and .github/copilot-mcp.json');\n console.log(' Auto-sync hook runs on session end.\\n');\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CavemanMode } from '../caveman';
|
|
2
|
+
export declare function installCursorEarly(projectRoot: string): void;
|
|
3
|
+
export declare function installCursorLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string, enableMemory?: boolean, enableDocs?: boolean, enableData?: boolean, enableSecurity?: boolean, enableArchitecture?: boolean, enablePatterns?: boolean): void;
|
|
4
|
+
export declare function uninitCursor(projectRoot: string): void;
|
|
5
|
+
export declare function printCursorNextSteps(): void;
|
|
6
|
+
//# sourceMappingURL=cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../../src/bin/installer/targets/cursor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAgCzC,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAS5D;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CA2CpR;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA+BtD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAI3C"}
|