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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/bin/commands/memory.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * KiroGraph Memory CLI \u2014 mirrors MCP tools + maintenance commands\n *\n * kirograph mem search <query>\n * kirograph mem store <content>\n * kirograph mem timeline\n * kirograph mem status\n * kirograph mem prune\n * kirograph mem export\n * kirograph mem import\n * kirograph mem reembed\n * kirograph mem lint\n */\n\nimport { Command } from 'commander';\nimport { dim, reset, violet, bold, section } from '../ui';\n\nexport function register(program: Command): void {\n const mem = program\n .command('mem')\n .description('Persistent cross-session memory (requires enableMemory: true)');\n\n // \u2500\u2500 search \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('search <query>')\n .description('Search memory observations (hybrid FTS + vector)')\n .option('--kind <kind>', 'Filter by kind: decision, error, pattern, architecture, summary, note')\n .option('--limit <n>', 'Max results', '10')\n .option('--session <id>', 'Filter to specific session')\n .option('--format <fmt>', 'Output format: text, json', 'text')\n .action(async (query: string, opts: { kind?: string; limit: string; session?: string; format: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const { trackCliToolSaving } = await Promise.resolve().then(() => require('./utils.js'));\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const results = await mem.search(query, {\n limit: parseInt(opts.limit),\n kind: opts.kind as any,\n sessionId: opts.session,\n });\n\n if (opts.format === 'json') {\n console.log(JSON.stringify(results.map(r => ({\n id: r.observation.id,\n kind: r.observation.kind,\n content: r.observation.content,\n score: r.score,\n createdAt: r.observation.createdAt,\n sessionId: r.observation.sessionId,\n })), null, 2));\n } else {\n if (results.length === 0) {\n console.log(`\\n ${dim}No observations found for \"${query}\"${reset}\\n`);\n } else {\n console.log(`\\n ${section('Memory Search:')} ${violet}${bold}${query}${reset}\\n`);\n for (const r of results) {\n const age = formatAge(r.observation.createdAt);\n console.log(` ${violet}[${r.observation.kind}]${reset} ${r.observation.content}`);\n console.log(` ${dim}${age} \u00B7 score: ${r.score.toFixed(3)}${reset}\\n`);\n }\n }\n }\n\n const output = results.map(r => `[${r.observation.kind}] ${r.observation.content}`).join('\\n');\n trackCliToolSaving(cwd, 'kirograph_mem_search', output, { limit: parseInt(opts.limit) });\n cg.close();\n });\n\n // \u2500\u2500 store \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('store [content]')\n .description('Store an observation in memory')\n .option('--kind <kind>', 'Observation kind', 'note')\n .action(async (content: string | undefined, opts: { kind: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n // Read from stdin if no content argument\n let text = content;\n if (!text) {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) {\n chunks.push(chunk);\n }\n text = Buffer.concat(chunks).toString('utf8').trim();\n }\n\n if (!text) {\n console.error(' \u2716 No content provided. Pass as argument or pipe from stdin.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const id = await mem.store({ content: text, kind: opts.kind as any, source: 'manual' });\n\n if (id) {\n console.log(` \u2713 Stored observation ${dim}${id}${reset} [${violet}${opts.kind}${reset}]`);\n } else {\n console.log(` ${dim}Duplicate observation \u2014 already stored.${reset}`);\n }\n\n cg.close();\n });\n\n // \u2500\u2500 timeline \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('timeline')\n .description('List recent sessions and observations')\n .option('--limit <n>', 'Number of sessions', '5')\n .option('--session <id>', 'Show observations for a specific session')\n .option('--format <fmt>', 'Output format: text, json', 'text')\n .action(async (opts: { limit: string; session?: string; format: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const { trackCliToolSaving } = await Promise.resolve().then(() => require('./utils.js'));\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const { sessions, observations } = mem.timeline({\n limit: parseInt(opts.limit),\n sessionId: opts.session,\n });\n\n if (opts.format === 'json') {\n console.log(JSON.stringify({\n sessions: sessions.map(s => ({\n id: s.id,\n ide: s.ide,\n startedAt: s.startedAt,\n endedAt: s.endedAt,\n observations: (observations.get(s.id) ?? []).map(o => ({\n id: o.id, kind: o.kind, content: o.content, createdAt: o.createdAt,\n })),\n })),\n }, null, 2));\n } else {\n if (sessions.length === 0) {\n console.log(`\\n ${dim}No memory sessions found.${reset}\\n`);\n } else {\n console.log(`\\n ${section('Memory Timeline')}\\n`);\n for (const session of sessions) {\n const start = new Date(session.startedAt).toISOString().slice(0, 16).replace('T', ' ');\n const status = session.endedAt ? dim + 'ended' + reset : violet + 'active' + reset;\n const obs = observations.get(session.id) ?? [];\n console.log(` ${bold}${start}${reset} [${session.ide ?? 'unknown'}] ${status} \u00B7 ${obs.length} observations`);\n for (const o of obs.slice(0, 5)) {\n console.log(` ${dim}\u00B7${reset} ${violet}[${o.kind}]${reset} ${o.content.slice(0, 100)}`);\n }\n if (obs.length > 5) console.log(` ${dim}\u2026and ${obs.length - 5} more${reset}`);\n console.log('');\n }\n }\n }\n\n const output = sessions.map(s => s.id).join('\\n');\n trackCliToolSaving(cwd, 'kirograph_mem_timeline', output, { limit: parseInt(opts.limit) });\n cg.close();\n });\n\n // \u2500\u2500 status \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('status')\n .description('Show memory subsystem health')\n .action(async () => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const stats = mem.getStats();\n console.log(`\\n ${section('Memory Status')}\\n`);\n console.log(` Sessions: ${bold}${stats.sessions}${reset} (${stats.activeSessions} active)`);\n console.log(` Observations: ${bold}${stats.observations}${reset}`);\n console.log(` Symbol links: ${bold}${stats.links}${reset}`);\n console.log(` Embeddings: ${bold}${stats.vectors}${reset} / ${stats.embeddableCount}`);\n console.log(` Model mismatch: ${stats.modelMismatch ? violet + '\u26A0 yes \u2014 run kirograph mem reembed' + reset : dim + 'no' + reset}`);\n console.log(` Compression: ${config.cavemanMode !== 'off' ? violet + config.cavemanMode + reset : dim + 'off (storing raw)' + reset}`);\n console.log('');\n\n cg.close();\n });\n\n // \u2500\u2500 prune \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('prune')\n .description('Remove old observations')\n .option('--older-than <duration>', 'Duration (e.g. 90d, 6m)', '90d')\n .action(async (opts: { olderThan: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const ms = parseDuration(opts.olderThan);\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const deleted = mem.prune(ms);\n console.log(` \u2713 Pruned ${deleted} observation(s) older than ${opts.olderThan}`);\n\n cg.close();\n });\n\n // \u2500\u2500 export \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('export')\n .description('Export memory observations')\n .option('--format <fmt>', 'Output format: jsonl, md', 'jsonl')\n .action(async (opts: { format: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const { sessions, observations } = mem.timeline({ limit: 1000 });\n\n if (opts.format === 'jsonl') {\n for (const session of sessions) {\n const obs = observations.get(session.id) ?? [];\n for (const o of obs) {\n console.log(JSON.stringify({\n id: o.id,\n content: o.content,\n content_raw: o.contentRaw,\n kind: o.kind,\n tags: o.tags,\n created_at: o.createdAt,\n session_id: o.sessionId,\n }));\n }\n }\n } else {\n // Markdown format\n for (const session of sessions) {\n const start = new Date(session.startedAt).toISOString().slice(0, 10);\n console.log(`## Session ${start} (${session.ide ?? 'unknown'})\\n`);\n const obs = observations.get(session.id) ?? [];\n for (const o of obs) {\n const time = new Date(o.createdAt).toISOString().slice(11, 16);\n console.log(`### [${o.kind}] ${time}`);\n console.log(o.content);\n console.log('');\n }\n }\n }\n\n cg.close();\n });\n\n // \u2500\u2500 import \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('import <file>')\n .description('Import observations from JSONL backup')\n .action(async (file: string) => {\n const fs = await import('fs');\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n if (!fs.existsSync(file)) {\n console.error(` \u2716 File not found: ${file}`);\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const lines = fs.readFileSync(file, 'utf8').split('\\n').filter(l => l.trim());\n let imported = 0;\n let skipped = 0;\n\n for (const line of lines) {\n try {\n const data = JSON.parse(line);\n const id = await mem.store({\n content: data.content_raw || data.content,\n kind: data.kind ?? 'note',\n source: 'manual',\n tags: data.tags,\n });\n if (id) imported++;\n else skipped++;\n } catch {\n skipped++;\n }\n }\n\n console.log(` \u2713 Imported ${imported} observation(s), skipped ${skipped} (duplicates/errors)`);\n cg.close();\n });\n\n // \u2500\u2500 reembed \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('reembed')\n .description('Re-embed all observations with the current model')\n .option('--batch <n>', 'Batch size', '32')\n .action(async (opts: { batch: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n console.log(' Re-embedding all observations...');\n const count = await mem.reembed(parseInt(opts.batch));\n console.log(` \u2713 Re-embedded ${count} observation(s)`);\n\n cg.close();\n });\n\n // \u2500\u2500 lint \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('lint')\n .description('Health check: find stale links, model mismatch, orphans')\n .option('--fix', 'Auto-fix issues (remove stale links, close stale sessions)')\n .action(async (opts: { fix?: boolean }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const result = mem.lint();\n\n console.log(`\\n ${section('Memory Lint')}\\n`);\n console.log(` Stale links: ${result.staleLinks > 0 ? violet + result.staleLinks + reset : dim + '0' + reset}`);\n console.log(` Model mismatch: ${result.modelMismatch ? violet + 'yes' + reset : dim + 'no' + reset}`);\n console.log(` Stale sessions: ${result.staleSessions > 0 ? violet + String(result.staleSessions) + ' (auto-closed)' + reset : dim + '0' + reset}`);\n\n if (opts.fix && result.staleLinks > 0) {\n const removed = mem.removeStaleLinks();\n console.log(`\\n \u2713 Removed ${removed} stale link(s)`);\n } else if (result.staleLinks > 0) {\n console.log(`\\n ${dim}Run with --fix to remove stale links${reset}`);\n }\n\n if (result.modelMismatch) {\n console.log(` ${dim}Run 'kirograph mem reembed' to fix model mismatch${reset}`);\n }\n\n console.log('');\n cg.close();\n });\n\n // \u2500\u2500 session management (for hooks) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('session-start')\n .description('Start a new memory session (called by hooks)')\n .option('--ide <name>', 'IDE name', 'kiro')\n .action(async (opts: { ide: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) return;\n const config = await loadConfig(cwd);\n if (!config.enableMemory) return;\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n // getOrCreateSession handles auto-creation\n const { MemoryDatabase } = await Promise.resolve().then(() => require('../../memory/database.js'));\n const memDb = new MemoryDatabase(db.getRawDb());\n memDb.initialize();\n const sessionId = memDb.getOrCreateSession(opts.ide, cwd);\n console.log(sessionId);\n\n cg.close();\n });\n\n mem\n .command('session-end')\n .description('End the current memory session (called by hooks)')\n .option('--ide <name>', 'IDE name', 'kiro')\n .action(async (opts: { ide: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) return;\n const config = await loadConfig(cwd);\n if (!config.enableMemory) return;\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n mem.endCurrentSession(opts.ide);\n\n cg.close();\n });\n}\n\n// \u2500\u2500 Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction formatAge(timestamp: number): string {\n const diff = Date.now() - timestamp;\n const minutes = Math.floor(diff / 60000);\n if (minutes < 60) return `${minutes}m ago`;\n const hours = Math.floor(minutes / 60);\n if (hours < 24) return `${hours}h ago`;\n const days = Math.floor(hours / 24);\n if (days < 7) return `${days}d ago`;\n const weeks = Math.floor(days / 7);\n if (weeks < 5) return `${weeks}w ago`;\n const months = Math.floor(days / 30);\n return `${months}mo ago`;\n}\n\nfunction parseDuration(duration: string): number {\n const match = duration.match(/^(\\d+)(d|m|w|h)$/);\n if (!match) return 90 * 24 * 60 * 60 * 1000; // default 90 days\n\n const value = parseInt(match[1]);\n switch (match[2]) {\n case 'h': return value * 60 * 60 * 1000;\n case 'd': return value * 24 * 60 * 60 * 1000;\n case 'w': return value * 7 * 24 * 60 * 60 * 1000;\n case 'm': return value * 30 * 24 * 60 * 60 * 1000;\n default: return 90 * 24 * 60 * 60 * 1000;\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["/**\n * KiroGraph Memory CLI \u2014 mirrors MCP tools + maintenance commands\n *\n * kirograph mem search <query>\n * kirograph mem store <content>\n * kirograph mem timeline\n * kirograph mem status\n * kirograph mem prune\n * kirograph mem export\n * kirograph mem import\n * kirograph mem reembed\n * kirograph mem lint\n */\n\nimport { Command } from 'commander';\nimport { dim, reset, violet, bold, section } from '../ui';\n\nexport function register(program: Command): void {\n const mem = program\n .command('mem')\n .description('Persistent cross-session memory (requires enableMemory: true)');\n\n // \u2500\u2500 search \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('search <query>')\n .description('Search memory observations (hybrid FTS + vector)')\n .option('--kind <kind>', 'Filter by kind: decision, error, pattern, architecture, summary, note')\n .option('--limit <n>', 'Max results', '10')\n .option('--session <id>', 'Filter to specific session')\n .option('--format <fmt>', 'Output format: text, json', 'text')\n .action(async (query: string, opts: { kind?: string; limit: string; session?: string; format: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const { trackCliToolSaving } = await Promise.resolve().then(() => require('./utils.js'));\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const results = await mem.search(query, {\n limit: parseInt(opts.limit),\n kind: opts.kind as any,\n sessionId: opts.session,\n });\n\n if (opts.format === 'json') {\n console.log(JSON.stringify(results.map(r => ({\n id: r.observation.id,\n kind: r.observation.kind,\n content: r.observation.content,\n score: r.score,\n createdAt: r.observation.createdAt,\n sessionId: r.observation.sessionId,\n })), null, 2));\n } else {\n if (results.length === 0) {\n console.log(`\\n ${dim}No observations found for \"${query}\"${reset}\\n`);\n } else {\n console.log(`\\n ${section('Memory Search:')} ${violet}${bold}${query}${reset}\\n`);\n for (const r of results) {\n const age = formatAge(r.observation.createdAt);\n console.log(` ${violet}[${r.observation.kind}]${reset} ${r.observation.content}`);\n console.log(` ${dim}${age} \u00B7 score: ${r.score.toFixed(3)}${reset}\\n`);\n }\n }\n }\n\n const output = results.map(r => `[${r.observation.kind}] ${r.observation.content}`).join('\\n');\n trackCliToolSaving(cwd, 'kirograph_mem_search', output, { limit: parseInt(opts.limit) });\n cg.close();\n });\n\n // \u2500\u2500 store \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('store [content]')\n .description('Store an observation in memory')\n .option('--kind <kind>', 'Observation kind', 'note')\n .action(async (content: string | undefined, opts: { kind: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n // Read from stdin if no content argument\n let text = content;\n if (!text) {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) {\n chunks.push(chunk);\n }\n text = Buffer.concat(chunks).toString('utf8').trim();\n }\n\n if (!text) {\n console.error(' \u2716 No content provided. Pass as argument or pipe from stdin.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const result = await mem.store({ content: text, kind: opts.kind as any, source: 'manual' });\n\n if (!result) {\n console.log(` ${dim}Duplicate observation \u2014 already stored.${reset}`);\n } else if (typeof result === 'object' && result.watchmenReady) {\n console.log(` \u2713 Stored observation ${dim}${result.id}${reset} [${violet}${opts.kind}${reset}]`);\n console.log(`\\n ${violet}\u26A1 Watchmen ready${reset} \u2014 ${result.pendingCount} observations since last synthesis`);\n console.log(` Target files:`);\n for (const f of result.targetFiles) {\n console.log(` ${dim}\u00B7${reset} ${f}`);\n }\n if (result.skillTargetDir) {\n console.log(` Skill dir: ${dim}${result.skillTargetDir}/watchmen-<slug>.md${reset} (inclusion: manual)`);\n }\n console.log(`\\n ${dim}Run synthesis manually or let the agentStop hook handle it.${reset}`);\n } else {\n console.log(` \u2713 Stored observation ${dim}${result}${reset} [${violet}${opts.kind}${reset}]`);\n }\n\n cg.close();\n });\n\n // \u2500\u2500 timeline \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('timeline')\n .description('List recent sessions and observations')\n .option('--limit <n>', 'Number of sessions', '5')\n .option('--session <id>', 'Show observations for a specific session')\n .option('--format <fmt>', 'Output format: text, json', 'text')\n .action(async (opts: { limit: string; session?: string; format: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n const { trackCliToolSaving } = await Promise.resolve().then(() => require('./utils.js'));\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const { sessions, observations } = mem.timeline({\n limit: parseInt(opts.limit),\n sessionId: opts.session,\n });\n\n if (opts.format === 'json') {\n console.log(JSON.stringify({\n sessions: sessions.map(s => ({\n id: s.id,\n ide: s.ide,\n startedAt: s.startedAt,\n endedAt: s.endedAt,\n observations: (observations.get(s.id) ?? []).map(o => ({\n id: o.id, kind: o.kind, content: o.content, createdAt: o.createdAt,\n })),\n })),\n }, null, 2));\n } else {\n if (sessions.length === 0) {\n console.log(`\\n ${dim}No memory sessions found.${reset}\\n`);\n } else {\n console.log(`\\n ${section('Memory Timeline')}\\n`);\n for (const session of sessions) {\n const start = new Date(session.startedAt).toISOString().slice(0, 16).replace('T', ' ');\n const status = session.endedAt ? dim + 'ended' + reset : violet + 'active' + reset;\n const obs = observations.get(session.id) ?? [];\n console.log(` ${bold}${start}${reset} [${session.ide ?? 'unknown'}] ${status} \u00B7 ${obs.length} observations`);\n for (const o of obs.slice(0, 5)) {\n console.log(` ${dim}\u00B7${reset} ${violet}[${o.kind}]${reset} ${o.content.slice(0, 100)}`);\n }\n if (obs.length > 5) console.log(` ${dim}\u2026and ${obs.length - 5} more${reset}`);\n console.log('');\n }\n }\n }\n\n const output = sessions.map(s => s.id).join('\\n');\n trackCliToolSaving(cwd, 'kirograph_mem_timeline', output, { limit: parseInt(opts.limit) });\n cg.close();\n });\n\n // \u2500\u2500 status \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('status')\n .description('Show memory subsystem health')\n .action(async () => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const stats = mem.getStats();\n console.log(`\\n ${section('Memory Status')}\\n`);\n console.log(` Sessions: ${bold}${stats.sessions}${reset} (${stats.activeSessions} active)`);\n console.log(` Observations: ${bold}${stats.observations}${reset}`);\n console.log(` Symbol links: ${bold}${stats.links}${reset}`);\n console.log(` Embeddings: ${bold}${stats.vectors}${reset} / ${stats.embeddableCount}`);\n console.log(` Model mismatch: ${stats.modelMismatch ? violet + '\u26A0 yes \u2014 run kirograph mem reembed' + reset : dim + 'no' + reset}`);\n console.log(` Compression: ${config.cavemanMode !== 'off' ? violet + config.cavemanMode + reset : dim + 'off (storing raw)' + reset}`);\n console.log('');\n\n cg.close();\n });\n\n // \u2500\u2500 prune \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('prune')\n .description('Remove old observations')\n .option('--older-than <duration>', 'Duration (e.g. 90d, 6m)', '90d')\n .action(async (opts: { olderThan: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const ms = parseDuration(opts.olderThan);\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const deleted = mem.prune(ms);\n console.log(` \u2713 Pruned ${deleted} observation(s) older than ${opts.olderThan}`);\n\n cg.close();\n });\n\n // \u2500\u2500 export \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('export')\n .description('Export memory observations')\n .option('--format <fmt>', 'Output format: jsonl, md', 'jsonl')\n .action(async (opts: { format: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const { sessions, observations } = mem.timeline({ limit: 1000 });\n\n if (opts.format === 'jsonl') {\n for (const session of sessions) {\n const obs = observations.get(session.id) ?? [];\n for (const o of obs) {\n console.log(JSON.stringify({\n id: o.id,\n content: o.content,\n content_raw: o.contentRaw,\n kind: o.kind,\n tags: o.tags,\n created_at: o.createdAt,\n session_id: o.sessionId,\n }));\n }\n }\n } else {\n // Markdown format\n for (const session of sessions) {\n const start = new Date(session.startedAt).toISOString().slice(0, 10);\n console.log(`## Session ${start} (${session.ide ?? 'unknown'})\\n`);\n const obs = observations.get(session.id) ?? [];\n for (const o of obs) {\n const time = new Date(o.createdAt).toISOString().slice(11, 16);\n console.log(`### [${o.kind}] ${time}`);\n console.log(o.content);\n console.log('');\n }\n }\n }\n\n cg.close();\n });\n\n // \u2500\u2500 import \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('import <file>')\n .description('Import observations from JSONL backup')\n .action(async (file: string) => {\n const fs = await import('fs');\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n if (!fs.existsSync(file)) {\n console.error(` \u2716 File not found: ${file}`);\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const lines = fs.readFileSync(file, 'utf8').split('\\n').filter(l => l.trim());\n let imported = 0;\n let skipped = 0;\n\n for (const line of lines) {\n try {\n const data = JSON.parse(line);\n const id = await mem.store({\n content: data.content_raw || data.content,\n kind: data.kind ?? 'note',\n source: 'manual',\n tags: data.tags,\n });\n if (id) imported++;\n else skipped++;\n } catch {\n skipped++;\n }\n }\n\n console.log(` \u2713 Imported ${imported} observation(s), skipped ${skipped} (duplicates/errors)`);\n cg.close();\n });\n\n // \u2500\u2500 reembed \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('reembed')\n .description('Re-embed all observations with the current model')\n .option('--batch <n>', 'Batch size', '32')\n .action(async (opts: { batch: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n console.log(' Re-embedding all observations...');\n const count = await mem.reembed(parseInt(opts.batch));\n console.log(` \u2713 Re-embedded ${count} observation(s)`);\n\n cg.close();\n });\n\n // \u2500\u2500 lint \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('lint')\n .description('Health check: find stale links, model mismatch, orphans')\n .option('--fix', 'Auto-fix issues (remove stale links, close stale sessions)')\n .action(async (opts: { fix?: boolean }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n const result = mem.lint();\n\n console.log(`\\n ${section('Memory Lint')}\\n`);\n console.log(` Stale links: ${result.staleLinks > 0 ? violet + result.staleLinks + reset : dim + '0' + reset}`);\n console.log(` Model mismatch: ${result.modelMismatch ? violet + 'yes' + reset : dim + 'no' + reset}`);\n console.log(` Stale sessions: ${result.staleSessions > 0 ? violet + String(result.staleSessions) + ' (auto-closed)' + reset : dim + '0' + reset}`);\n\n if (opts.fix && result.staleLinks > 0) {\n const removed = mem.removeStaleLinks();\n console.log(`\\n \u2713 Removed ${removed} stale link(s)`);\n } else if (result.staleLinks > 0) {\n console.log(`\\n ${dim}Run with --fix to remove stale links${reset}`);\n }\n\n if (result.modelMismatch) {\n console.log(` ${dim}Run 'kirograph mem reembed' to fix model mismatch${reset}`);\n }\n\n console.log('');\n cg.close();\n });\n\n // \u2500\u2500 watchmen \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n const watchmen = mem\n .command('watchmen')\n .description('Watchmen \u2014 workspace brief synthesis from memory observations (requires enableWatchmen: true)');\n\n watchmen\n .command('status')\n .description('Show pending observation count and which files would be written on next synthesis')\n .action(async () => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { WatchmenChecker } = await Promise.resolve().then(() => require('../../watchmen/index.js'));\n const { MemoryDatabase } = await Promise.resolve().then(() => require('../../memory/database.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled. Set enableMemory: true in .kirograph/config.json');\n process.exit(1);\n }\n if (!config.enableWatchmen) {\n console.error(' \u2716 Watchmen is not enabled. Set enableWatchmen: true in .kirograph/config.json');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const memDb = new MemoryDatabase(db.getRawDb());\n memDb.initialize();\n\n const checker = new WatchmenChecker(config.watchmenThreshold);\n const { ready, pendingCount } = checker.shouldSynthesize(memDb);\n const { targetFiles } = checker.buildReadyResponse('', pendingCount, cwd);\n\n console.log(`\\n ${section('Watchmen Status')}\\n`);\n console.log(` Pending observations: ${bold}${pendingCount}${reset} / ${config.watchmenThreshold} threshold`);\n console.log(` Ready to synthesize: ${ready ? violet + 'yes' + reset : dim + 'no' + reset}`);\n console.log(` Target files:`);\n for (const f of targetFiles) {\n console.log(` ${dim}\u00B7${reset} ${f}`);\n }\n console.log('');\n\n cg.close();\n });\n\n watchmen\n .command('synthesize')\n .description('Run local model synthesis immediately (requires watchmenSynthesisMode: local)')\n .option('--force', 'Run even if below threshold')\n .option('--quiet', 'Suppress output (used by runCommand hook)')\n .action(async (opts: { force?: boolean; quiet?: boolean }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { WatchmenChecker } = await Promise.resolve().then(() => require('../../watchmen/index.js'));\n const { MemoryDatabase } = await Promise.resolve().then(() => require('../../memory/database.js'));\n const { runLocalSynthesis } = await Promise.resolve().then(() => require('../../watchmen/synthesize.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n if (!opts.quiet) console.error(' \u2716 KiroGraph is not initialized.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory || !config.enableWatchmen) {\n if (!opts.quiet) console.error(' \u2716 Watchmen is not enabled (enableMemory + enableWatchmen required).');\n process.exit(1);\n }\n if (config.watchmenSynthesisMode !== 'local') {\n if (!opts.quiet) console.error(' \u2716 watchmenSynthesisMode is not \"local\" \u2014 use the agent hook instead.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const memDb = new MemoryDatabase(db.getRawDb());\n memDb.initialize();\n\n const checker = new WatchmenChecker(config.watchmenThreshold);\n const { ready, pendingCount } = checker.shouldSynthesize(memDb);\n\n if (!ready && !opts.force) {\n if (!opts.quiet) console.log(` ${dim}Watchmen: ${pendingCount}/${config.watchmenThreshold} observations \u2014 threshold not reached.${reset}`);\n cg.close();\n return;\n }\n\n const observations = memDb.getObservationsSinceLastSummary(50);\n if (observations.length === 0) {\n if (!opts.quiet) console.log(` ${dim}No observations to synthesize.${reset}`);\n cg.close();\n return;\n }\n\n if (!opts.quiet) {\n console.log(`\\n ${section('Watchmen Synthesis')}\\n`);\n console.log(` Synthesizing ${observations.length} observations with ${dim}${config.watchmenLocalModel}${reset}`);\n const cacheDir = require('path').join(require('os').homedir(), '.kirograph', 'models');\n const cached = require('fs').existsSync(require('path').join(cacheDir, config.watchmenLocalModel));\n if (!cached) console.log(` ${dim}Downloading model \u2014 first run only (cached in ~/.kirograph/models/)${reset}`);\n console.log('');\n }\n\n const readyResult = checker.buildReadyResponse('', pendingCount, cwd);\n const result = await runLocalSynthesis(observations, readyResult, config.watchmenLocalModel, cwd, !!opts.quiet);\n\n // Store summary observation to reset counter\n const mgr = new MemoryManager(config, db.getRawDb(), cwd);\n mgr.initialize();\n await mgr.store({ content: result.summaryObservation, kind: 'summary', source: 'agent' });\n\n if (!opts.quiet) {\n if (result.filesWritten.length) console.log(` \u2713 Brief written to: ${result.filesWritten.map(f => violet + f + reset).join(', ')}`);\n if (result.skillsWritten.length) console.log(` \u2713 Skills written: ${result.skillsWritten.map(f => violet + f + reset).join(', ')}`);\n if (result.skillsPruned.length) console.log(` ${dim}\u2717 Pruned stale: ${result.skillsPruned.join(', ')}${reset}`);\n console.log('');\n }\n\n cg.close();\n });\n\n watchmen\n .command('reset')\n .description('Store a summary observation to reset the synthesis counter without running synthesis')\n .action(async () => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) {\n console.error(' \u2716 KiroGraph is not initialized. Run `kirograph init` first.');\n process.exit(1);\n }\n const config = await loadConfig(cwd);\n if (!config.enableMemory) {\n console.error(' \u2716 Memory is not enabled.');\n process.exit(1);\n }\n if (!config.enableWatchmen) {\n console.error(' \u2716 Watchmen is not enabled.');\n process.exit(1);\n }\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mgr = new MemoryManager(config, db.getRawDb(), cwd);\n mgr.initialize();\n\n // Bypass watchmen check by storing directly as summary\n const id = await mgr.store({ content: `Watchmen counter reset manually via CLI at ${new Date().toISOString()}.`, kind: 'summary', source: 'manual' });\n if (id) {\n console.log(` \u2713 Counter reset \u2014 pending observations set back to 0`);\n } else {\n console.log(` ${dim}Already at zero \u2014 nothing to reset.${reset}`);\n }\n\n cg.close();\n });\n\n // \u2500\u2500 session management (for hooks) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n mem\n .command('session-start')\n .description('Start a new memory session (called by hooks)')\n .option('--ide <name>', 'IDE name', 'kiro')\n .action(async (opts: { ide: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) return;\n const config = await loadConfig(cwd);\n if (!config.enableMemory) return;\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n\n // getOrCreateSession handles auto-creation\n const { MemoryDatabase } = await Promise.resolve().then(() => require('../../memory/database.js'));\n const memDb = new MemoryDatabase(db.getRawDb());\n memDb.initialize();\n const sessionId = memDb.getOrCreateSession(opts.ide, cwd);\n console.log(sessionId);\n\n cg.close();\n });\n\n mem\n .command('session-end')\n .description('End the current memory session (called by hooks)')\n .option('--ide <name>', 'IDE name', 'kiro')\n .action(async (opts: { ide: string }) => {\n const { MemoryManager } = await Promise.resolve().then(() => require('../../memory/index.js'));\n const { loadConfig } = await Promise.resolve().then(() => require('../../config.js'));\n const KiroGraph = (await Promise.resolve().then(() => require('../../index.js'))).default;\n\n const cwd = process.cwd();\n if (!KiroGraph.isInitialized(cwd)) return;\n const config = await loadConfig(cwd);\n if (!config.enableMemory) return;\n\n const cg = await KiroGraph.open(cwd);\n const db = cg.getDatabase();\n db.applyMemorySchema();\n const mem = new MemoryManager(config, db.getRawDb());\n mem.initialize();\n mem.endCurrentSession(opts.ide);\n\n cg.close();\n });\n}\n\n// \u2500\u2500 Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction formatAge(timestamp: number): string {\n const diff = Date.now() - timestamp;\n const minutes = Math.floor(diff / 60000);\n if (minutes < 60) return `${minutes}m ago`;\n const hours = Math.floor(minutes / 60);\n if (hours < 24) return `${hours}h ago`;\n const days = Math.floor(hours / 24);\n if (days < 7) return `${days}d ago`;\n const weeks = Math.floor(days / 7);\n if (weeks < 5) return `${weeks}w ago`;\n const months = Math.floor(days / 30);\n return `${months}mo ago`;\n}\n\nfunction parseDuration(duration: string): number {\n const match = duration.match(/^(\\d+)(d|m|w|h)$/);\n if (!match) return 90 * 24 * 60 * 60 * 1000; // default 90 days\n\n const value = parseInt(match[1]);\n switch (match[2]) {\n case 'h': return value * 60 * 60 * 1000;\n case 'd': return value * 24 * 60 * 60 * 1000;\n case 'w': return value * 7 * 24 * 60 * 60 * 1000;\n case 'm': return value * 30 * 24 * 60 * 60 * 1000;\n default: return 90 * 24 * 60 * 60 * 1000;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["mem"]
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/path.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2D/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/pattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4CpC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8mB/C"}
|