@tyroneross/navgator 0.2.2 → 0.9.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/.agents/plugins/marketplace.json +20 -0
- package/.claude-plugin/marketplace.json +21 -7
- package/.claude-plugin/plugin.json +16 -11
- package/.codex-plugin/plugin.json +31 -0
- package/.mcp.json +8 -0
- package/CLAUDE.md +197 -23
- package/LICENSE +202 -21
- package/README.md +220 -33
- package/agents/architecture-advisor.md +6 -2
- package/agents/architecture-investigator.md +163 -0
- package/agents/architecture-planner.md +160 -0
- package/agents/external-resolver.md +97 -0
- package/dist/__tests__/agent-output.test.d.ts +5 -0
- package/dist/__tests__/agent-output.test.d.ts.map +1 -0
- package/dist/__tests__/agent-output.test.js +233 -0
- package/dist/__tests__/agent-output.test.js.map +1 -0
- package/dist/__tests__/architecture-insights-stack.test.d.ts +21 -0
- package/dist/__tests__/architecture-insights-stack.test.d.ts.map +1 -0
- package/dist/__tests__/architecture-insights-stack.test.js +86 -0
- package/dist/__tests__/architecture-insights-stack.test.js.map +1 -0
- package/dist/__tests__/architecture-insights.test.d.ts +2 -0
- package/dist/__tests__/architecture-insights.test.d.ts.map +1 -0
- package/dist/__tests__/architecture-insights.test.js +46 -0
- package/dist/__tests__/architecture-insights.test.js.map +1 -0
- package/dist/__tests__/audit-sampler.test.d.ts +10 -0
- package/dist/__tests__/audit-sampler.test.d.ts.map +1 -0
- package/dist/__tests__/audit-sampler.test.js +172 -0
- package/dist/__tests__/audit-sampler.test.js.map +1 -0
- package/dist/__tests__/audit-spc.test.d.ts +5 -0
- package/dist/__tests__/audit-spc.test.d.ts.map +1 -0
- package/dist/__tests__/audit-spc.test.js +94 -0
- package/dist/__tests__/audit-spc.test.js.map +1 -0
- package/dist/__tests__/audit-verifiers.test.d.ts +5 -0
- package/dist/__tests__/audit-verifiers.test.d.ts.map +1 -0
- package/dist/__tests__/audit-verifiers.test.js +248 -0
- package/dist/__tests__/audit-verifiers.test.js.map +1 -0
- package/dist/__tests__/auto-refresh.test.d.ts +12 -0
- package/dist/__tests__/auto-refresh.test.d.ts.map +1 -0
- package/dist/__tests__/auto-refresh.test.js +236 -0
- package/dist/__tests__/auto-refresh.test.js.map +1 -0
- package/dist/__tests__/bare-imports.test.d.ts +8 -0
- package/dist/__tests__/bare-imports.test.d.ts.map +1 -0
- package/dist/__tests__/bare-imports.test.js +176 -0
- package/dist/__tests__/bare-imports.test.js.map +1 -0
- package/dist/__tests__/classify.test.d.ts +5 -0
- package/dist/__tests__/classify.test.d.ts.map +1 -0
- package/dist/__tests__/classify.test.js +158 -0
- package/dist/__tests__/classify.test.js.map +1 -0
- package/dist/__tests__/cli-commands.test.d.ts +8 -0
- package/dist/__tests__/cli-commands.test.d.ts.map +1 -0
- package/dist/__tests__/cli-commands.test.js +207 -0
- package/dist/__tests__/cli-commands.test.js.map +1 -0
- package/dist/__tests__/consolidated-readers.test.d.ts +23 -0
- package/dist/__tests__/consolidated-readers.test.d.ts.map +1 -0
- package/dist/__tests__/consolidated-readers.test.js +200 -0
- package/dist/__tests__/consolidated-readers.test.js.map +1 -0
- package/dist/__tests__/coverage.test.d.ts +5 -0
- package/dist/__tests__/coverage.test.d.ts.map +1 -0
- package/dist/__tests__/coverage.test.js +120 -0
- package/dist/__tests__/coverage.test.js.map +1 -0
- package/dist/__tests__/deploy-scanner-runtime.test.d.ts +6 -0
- package/dist/__tests__/deploy-scanner-runtime.test.d.ts.map +1 -0
- package/dist/__tests__/deploy-scanner-runtime.test.js +168 -0
- package/dist/__tests__/deploy-scanner-runtime.test.js.map +1 -0
- package/dist/__tests__/env-scanner.test.d.ts +2 -0
- package/dist/__tests__/env-scanner.test.d.ts.map +1 -0
- package/dist/__tests__/env-scanner.test.js +191 -0
- package/dist/__tests__/env-scanner.test.js.map +1 -0
- package/dist/__tests__/freshness/cli-freshness.test.d.ts +2 -0
- package/dist/__tests__/freshness/cli-freshness.test.d.ts.map +1 -0
- package/dist/__tests__/freshness/cli-freshness.test.js +26 -0
- package/dist/__tests__/freshness/cli-freshness.test.js.map +1 -0
- package/dist/__tests__/freshness/dirty-ledger.test.d.ts +2 -0
- package/dist/__tests__/freshness/dirty-ledger.test.d.ts.map +1 -0
- package/dist/__tests__/freshness/dirty-ledger.test.js +39 -0
- package/dist/__tests__/freshness/dirty-ledger.test.js.map +1 -0
- package/dist/__tests__/freshness/drainer.test.d.ts +2 -0
- package/dist/__tests__/freshness/drainer.test.d.ts.map +1 -0
- package/dist/__tests__/freshness/drainer.test.js +103 -0
- package/dist/__tests__/freshness/drainer.test.js.map +1 -0
- package/dist/__tests__/freshness/paths.test.d.ts +2 -0
- package/dist/__tests__/freshness/paths.test.d.ts.map +1 -0
- package/dist/__tests__/freshness/paths.test.js +19 -0
- package/dist/__tests__/freshness/paths.test.js.map +1 -0
- package/dist/__tests__/freshness/scan-lock.test.d.ts +2 -0
- package/dist/__tests__/freshness/scan-lock.test.d.ts.map +1 -0
- package/dist/__tests__/freshness/scan-lock.test.js +40 -0
- package/dist/__tests__/freshness/scan-lock.test.js.map +1 -0
- package/dist/__tests__/freshness/stamp.test.d.ts +2 -0
- package/dist/__tests__/freshness/stamp.test.d.ts.map +1 -0
- package/dist/__tests__/freshness/stamp.test.js +36 -0
- package/dist/__tests__/freshness/stamp.test.js.map +1 -0
- package/dist/__tests__/gitignore-safety.test.d.ts +2 -0
- package/dist/__tests__/gitignore-safety.test.d.ts.map +1 -0
- package/dist/__tests__/gitignore-safety.test.js +110 -0
- package/dist/__tests__/gitignore-safety.test.js.map +1 -0
- package/dist/__tests__/helpers.d.ts +37 -0
- package/dist/__tests__/helpers.d.ts.map +1 -0
- package/dist/__tests__/helpers.js +134 -0
- package/dist/__tests__/helpers.js.map +1 -0
- package/dist/__tests__/impact.test.d.ts +5 -0
- package/dist/__tests__/impact.test.d.ts.map +1 -0
- package/dist/__tests__/impact.test.js +221 -0
- package/dist/__tests__/impact.test.js.map +1 -0
- package/dist/__tests__/lessons-store.test.d.ts +8 -0
- package/dist/__tests__/lessons-store.test.d.ts.map +1 -0
- package/dist/__tests__/lessons-store.test.js +232 -0
- package/dist/__tests__/lessons-store.test.js.map +1 -0
- package/dist/__tests__/llm-dedup.test.d.ts +2 -0
- package/dist/__tests__/llm-dedup.test.d.ts.map +1 -0
- package/dist/__tests__/llm-dedup.test.js +155 -0
- package/dist/__tests__/llm-dedup.test.js.map +1 -0
- package/dist/__tests__/mjs-frontend-fetch.test.d.ts +19 -0
- package/dist/__tests__/mjs-frontend-fetch.test.d.ts.map +1 -0
- package/dist/__tests__/mjs-frontend-fetch.test.js +179 -0
- package/dist/__tests__/mjs-frontend-fetch.test.js.map +1 -0
- package/dist/__tests__/multi-stack-discovery.test.d.ts +11 -0
- package/dist/__tests__/multi-stack-discovery.test.d.ts.map +1 -0
- package/dist/__tests__/multi-stack-discovery.test.js +75 -0
- package/dist/__tests__/multi-stack-discovery.test.js.map +1 -0
- package/dist/__tests__/per-entity-files-gate.test.d.ts +22 -0
- package/dist/__tests__/per-entity-files-gate.test.d.ts.map +1 -0
- package/dist/__tests__/per-entity-files-gate.test.js +160 -0
- package/dist/__tests__/per-entity-files-gate.test.js.map +1 -0
- package/dist/__tests__/prisma-calls.test.d.ts +2 -0
- package/dist/__tests__/prisma-calls.test.d.ts.map +1 -0
- package/dist/__tests__/prisma-calls.test.js +125 -0
- package/dist/__tests__/prisma-calls.test.js.map +1 -0
- package/dist/__tests__/prisma-parser.test.d.ts +2 -0
- package/dist/__tests__/prisma-parser.test.d.ts.map +1 -0
- package/dist/__tests__/prisma-parser.test.js +252 -0
- package/dist/__tests__/prisma-parser.test.js.map +1 -0
- package/dist/__tests__/prompt-detector.test.d.ts +5 -0
- package/dist/__tests__/prompt-detector.test.d.ts.map +1 -0
- package/dist/__tests__/prompt-detector.test.js +75 -0
- package/dist/__tests__/prompt-detector.test.js.map +1 -0
- package/dist/__tests__/queue-scanner.test.d.ts +5 -0
- package/dist/__tests__/queue-scanner.test.d.ts.map +1 -0
- package/dist/__tests__/queue-scanner.test.js +85 -0
- package/dist/__tests__/queue-scanner.test.js.map +1 -0
- package/dist/__tests__/resolve.test.d.ts +5 -0
- package/dist/__tests__/resolve.test.d.ts.map +1 -0
- package/dist/__tests__/resolve.test.js +196 -0
- package/dist/__tests__/resolve.test.js.map +1 -0
- package/dist/__tests__/rules.test.d.ts +2 -0
- package/dist/__tests__/rules.test.d.ts.map +1 -0
- package/dist/__tests__/rules.test.js +343 -0
- package/dist/__tests__/rules.test.js.map +1 -0
- package/dist/__tests__/sandbox.test.d.ts +5 -0
- package/dist/__tests__/sandbox.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox.test.js +189 -0
- package/dist/__tests__/sandbox.test.js.map +1 -0
- package/dist/__tests__/scanner-audit.test.d.ts +9 -0
- package/dist/__tests__/scanner-audit.test.d.ts.map +1 -0
- package/dist/__tests__/scanner-audit.test.js +64 -0
- package/dist/__tests__/scanner-audit.test.js.map +1 -0
- package/dist/__tests__/scanner-characterization.test.d.ts +16 -0
- package/dist/__tests__/scanner-characterization.test.d.ts.map +1 -0
- package/dist/__tests__/scanner-characterization.test.js +167 -0
- package/dist/__tests__/scanner-characterization.test.js.map +1 -0
- package/dist/__tests__/scanner-incremental.test.d.ts +13 -0
- package/dist/__tests__/scanner-incremental.test.d.ts.map +1 -0
- package/dist/__tests__/scanner-incremental.test.js +725 -0
- package/dist/__tests__/scanner-incremental.test.js.map +1 -0
- package/dist/__tests__/scanner-integration.test.d.ts +7 -0
- package/dist/__tests__/scanner-integration.test.d.ts.map +1 -0
- package/dist/__tests__/scanner-integration.test.js +211 -0
- package/dist/__tests__/scanner-integration.test.js.map +1 -0
- package/dist/__tests__/scip-new-catches.test.d.ts +19 -0
- package/dist/__tests__/scip-new-catches.test.d.ts.map +1 -0
- package/dist/__tests__/scip-new-catches.test.js +90 -0
- package/dist/__tests__/scip-new-catches.test.js.map +1 -0
- package/dist/__tests__/subgraph.test.d.ts +5 -0
- package/dist/__tests__/subgraph.test.d.ts.map +1 -0
- package/dist/__tests__/subgraph.test.js +145 -0
- package/dist/__tests__/subgraph.test.js.map +1 -0
- package/dist/__tests__/trace.test.d.ts +5 -0
- package/dist/__tests__/trace.test.d.ts.map +1 -0
- package/dist/__tests__/trace.test.js +221 -0
- package/dist/__tests__/trace.test.js.map +1 -0
- package/dist/agent-output.d.ts +16 -0
- package/dist/agent-output.d.ts.map +1 -0
- package/dist/agent-output.js +142 -0
- package/dist/agent-output.js.map +1 -0
- package/dist/architecture-insights.d.ts +17 -0
- package/dist/architecture-insights.d.ts.map +1 -0
- package/dist/architecture-insights.js +178 -0
- package/dist/architecture-insights.js.map +1 -0
- package/dist/audit/index.d.ts +69 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +255 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/sampler.d.ts +98 -0
- package/dist/audit/sampler.d.ts.map +1 -0
- package/dist/audit/sampler.js +298 -0
- package/dist/audit/sampler.js.map +1 -0
- package/dist/audit/spc.d.ts +62 -0
- package/dist/audit/spc.d.ts.map +1 -0
- package/dist/audit/spc.js +81 -0
- package/dist/audit/spc.js.map +1 -0
- package/dist/audit/verifiers.d.ts +81 -0
- package/dist/audit/verifiers.d.ts.map +1 -0
- package/dist/audit/verifiers.js +366 -0
- package/dist/audit/verifiers.js.map +1 -0
- package/dist/classify.d.ts +19 -0
- package/dist/classify.d.ts.map +1 -0
- package/dist/classify.js +124 -0
- package/dist/classify.js.map +1 -0
- package/dist/cli/commands/connections.d.ts +3 -0
- package/dist/cli/commands/connections.d.ts.map +1 -0
- package/dist/cli/commands/connections.js +125 -0
- package/dist/cli/commands/connections.js.map +1 -0
- package/dist/cli/commands/coverage.d.ts +3 -0
- package/dist/cli/commands/coverage.d.ts.map +1 -0
- package/dist/cli/commands/coverage.js +94 -0
- package/dist/cli/commands/coverage.js.map +1 -0
- package/dist/cli/commands/dead.d.ts +3 -0
- package/dist/cli/commands/dead.d.ts.map +1 -0
- package/dist/cli/commands/dead.js +80 -0
- package/dist/cli/commands/dead.js.map +1 -0
- package/dist/cli/commands/diagram.d.ts +3 -0
- package/dist/cli/commands/diagram.d.ts.map +1 -0
- package/dist/cli/commands/diagram.js +102 -0
- package/dist/cli/commands/diagram.js.map +1 -0
- package/dist/cli/commands/find.d.ts +3 -0
- package/dist/cli/commands/find.d.ts.map +1 -0
- package/dist/cli/commands/find.js +128 -0
- package/dist/cli/commands/find.js.map +1 -0
- package/dist/cli/commands/freshness.d.ts +20 -0
- package/dist/cli/commands/freshness.d.ts.map +1 -0
- package/dist/cli/commands/freshness.js +90 -0
- package/dist/cli/commands/freshness.js.map +1 -0
- package/dist/cli/commands/helpers.d.ts +7 -0
- package/dist/cli/commands/helpers.d.ts.map +1 -0
- package/dist/cli/commands/helpers.js +30 -0
- package/dist/cli/commands/helpers.js.map +1 -0
- package/dist/cli/commands/impact.d.ts +3 -0
- package/dist/cli/commands/impact.d.ts.map +1 -0
- package/dist/cli/commands/impact.js +172 -0
- package/dist/cli/commands/impact.js.map +1 -0
- package/dist/cli/commands/lessons.d.ts +6 -0
- package/dist/cli/commands/lessons.d.ts.map +1 -0
- package/dist/cli/commands/lessons.js +279 -0
- package/dist/cli/commands/lessons.js.map +1 -0
- package/dist/cli/commands/list.d.ts +3 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +91 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/llm-map.d.ts +3 -0
- package/dist/cli/commands/llm-map.d.ts.map +1 -0
- package/dist/cli/commands/llm-map.js +121 -0
- package/dist/cli/commands/llm-map.js.map +1 -0
- package/dist/cli/commands/misc.d.ts +17 -0
- package/dist/cli/commands/misc.d.ts.map +1 -0
- package/dist/cli/commands/misc.js +495 -0
- package/dist/cli/commands/misc.js.map +1 -0
- package/dist/cli/commands/prompts.d.ts +3 -0
- package/dist/cli/commands/prompts.d.ts.map +1 -0
- package/dist/cli/commands/prompts.js +74 -0
- package/dist/cli/commands/prompts.js.map +1 -0
- package/dist/cli/commands/rules.d.ts +3 -0
- package/dist/cli/commands/rules.d.ts.map +1 -0
- package/dist/cli/commands/rules.js +61 -0
- package/dist/cli/commands/rules.js.map +1 -0
- package/dist/cli/commands/scan.d.ts +3 -0
- package/dist/cli/commands/scan.d.ts.map +1 -0
- package/dist/cli/commands/scan.js +177 -0
- package/dist/cli/commands/scan.js.map +1 -0
- package/dist/cli/commands/schema.d.ts +3 -0
- package/dist/cli/commands/schema.d.ts.map +1 -0
- package/dist/cli/commands/schema.js +126 -0
- package/dist/cli/commands/schema.js.map +1 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +340 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/subgraph.d.ts +3 -0
- package/dist/cli/commands/subgraph.d.ts.map +1 -0
- package/dist/cli/commands/subgraph.js +55 -0
- package/dist/cli/commands/subgraph.js.map +1 -0
- package/dist/cli/commands/temporal.d.ts +3 -0
- package/dist/cli/commands/temporal.d.ts.map +1 -0
- package/dist/cli/commands/temporal.js +112 -0
- package/dist/cli/commands/temporal.js.map +1 -0
- package/dist/cli/commands/trace.d.ts +3 -0
- package/dist/cli/commands/trace.d.ts.map +1 -0
- package/dist/cli/commands/trace.js +65 -0
- package/dist/cli/commands/trace.js.map +1 -0
- package/dist/cli/index.js +88 -825
- package/dist/cli/index.js.map +1 -1
- package/dist/config.d.ts +13 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +106 -12
- package/dist/config.js.map +1 -1
- package/dist/coverage.d.ts +37 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/coverage.js +177 -0
- package/dist/coverage.js.map +1 -0
- package/dist/diagram.d.ts.map +1 -1
- package/dist/diagram.js +41 -0
- package/dist/diagram.js.map +1 -1
- package/dist/diff.d.ts +57 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +527 -0
- package/dist/diff.js.map +1 -0
- package/dist/enrich/cache.d.ts +41 -0
- package/dist/enrich/cache.d.ts.map +1 -0
- package/dist/enrich/cache.js +97 -0
- package/dist/enrich/cache.js.map +1 -0
- package/dist/enrich/external-enrichment.types.d.ts +91 -0
- package/dist/enrich/external-enrichment.types.d.ts.map +1 -0
- package/dist/enrich/external-enrichment.types.js +38 -0
- package/dist/enrich/external-enrichment.types.js.map +1 -0
- package/dist/enrich/external-resolver.d.ts +95 -0
- package/dist/enrich/external-resolver.d.ts.map +1 -0
- package/dist/enrich/external-resolver.js +222 -0
- package/dist/enrich/external-resolver.js.map +1 -0
- package/dist/enrich/fetchers.d.ts +30 -0
- package/dist/enrich/fetchers.d.ts.map +1 -0
- package/dist/enrich/fetchers.js +89 -0
- package/dist/enrich/fetchers.js.map +1 -0
- package/dist/file-resolve.d.ts +35 -0
- package/dist/file-resolve.d.ts.map +1 -0
- package/dist/file-resolve.js +159 -0
- package/dist/file-resolve.js.map +1 -0
- package/dist/freshness/dirty-ledger.d.ts +7 -0
- package/dist/freshness/dirty-ledger.d.ts.map +1 -0
- package/dist/freshness/dirty-ledger.js +56 -0
- package/dist/freshness/dirty-ledger.js.map +1 -0
- package/dist/freshness/drainer.d.ts +38 -0
- package/dist/freshness/drainer.d.ts.map +1 -0
- package/dist/freshness/drainer.js +88 -0
- package/dist/freshness/drainer.js.map +1 -0
- package/dist/freshness/paths.d.ts +9 -0
- package/dist/freshness/paths.d.ts.map +1 -0
- package/dist/freshness/paths.js +24 -0
- package/dist/freshness/paths.js.map +1 -0
- package/dist/freshness/scan-lock.d.ts +8 -0
- package/dist/freshness/scan-lock.d.ts.map +1 -0
- package/dist/freshness/scan-lock.js +68 -0
- package/dist/freshness/scan-lock.js.map +1 -0
- package/dist/freshness/stamp.d.ts +25 -0
- package/dist/freshness/stamp.d.ts.map +1 -0
- package/dist/freshness/stamp.js +50 -0
- package/dist/freshness/stamp.js.map +1 -0
- package/dist/git.d.ts +12 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +42 -0
- package/dist/git.js.map +1 -0
- package/dist/gitignore-safety.d.ts +41 -0
- package/dist/gitignore-safety.d.ts.map +1 -0
- package/dist/gitignore-safety.js +107 -0
- package/dist/gitignore-safety.js.map +1 -0
- package/dist/impact.d.ts +20 -0
- package/dist/impact.d.ts.map +1 -0
- package/dist/impact.js +89 -0
- package/dist/impact.js.map +1 -0
- package/dist/index.d.ts +24 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -1
- package/dist/index.js.map +1 -1
- package/dist/lessons-store.d.ts +93 -0
- package/dist/lessons-store.d.ts.map +1 -0
- package/dist/lessons-store.js +265 -0
- package/dist/lessons-store.js.map +1 -0
- package/dist/llm-dedup.d.ts +40 -0
- package/dist/llm-dedup.d.ts.map +1 -0
- package/dist/llm-dedup.js +373 -0
- package/dist/llm-dedup.js.map +1 -0
- package/dist/mcp/server.d.ts +9 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +87 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +198 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +744 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/metrics/pagerank-louvain.d.ts +44 -0
- package/dist/metrics/pagerank-louvain.d.ts.map +1 -0
- package/dist/metrics/pagerank-louvain.js +128 -0
- package/dist/metrics/pagerank-louvain.js.map +1 -0
- package/dist/parsers/scip-runner.d.ts +63 -0
- package/dist/parsers/scip-runner.d.ts.map +1 -0
- package/dist/parsers/scip-runner.js +179 -0
- package/dist/parsers/scip-runner.js.map +1 -0
- package/dist/projects.d.ts +54 -0
- package/dist/projects.d.ts.map +1 -0
- package/dist/projects.js +153 -0
- package/dist/projects.js.map +1 -0
- package/dist/resolve.d.ts +22 -0
- package/dist/resolve.d.ts.map +1 -0
- package/dist/resolve.js +128 -0
- package/dist/resolve.js.map +1 -0
- package/dist/rules.d.ts +36 -0
- package/dist/rules.d.ts.map +1 -0
- package/dist/rules.js +484 -0
- package/dist/rules.js.map +1 -0
- package/dist/sandbox.d.ts +33 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +91 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/scan-lock.d.ts +37 -0
- package/dist/scan-lock.d.ts.map +1 -0
- package/dist/scan-lock.js +145 -0
- package/dist/scan-lock.js.map +1 -0
- package/dist/scanner.d.ts +126 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +1711 -235
- package/dist/scanner.js.map +1 -1
- package/dist/scanners/connections/ast-scanner.d.ts +9 -2
- package/dist/scanners/connections/ast-scanner.d.ts.map +1 -1
- package/dist/scanners/connections/ast-scanner.js +19 -4
- package/dist/scanners/connections/ast-scanner.js.map +1 -1
- package/dist/scanners/connections/import-scanner.d.ts +27 -0
- package/dist/scanners/connections/import-scanner.d.ts.map +1 -0
- package/dist/scanners/connections/import-scanner.js +537 -0
- package/dist/scanners/connections/import-scanner.js.map +1 -0
- package/dist/scanners/connections/llm-call-tracer.d.ts +1 -1
- package/dist/scanners/connections/llm-call-tracer.d.ts.map +1 -1
- package/dist/scanners/connections/llm-call-tracer.js +6 -2
- package/dist/scanners/connections/llm-call-tracer.js.map +1 -1
- package/dist/scanners/connections/prisma-calls.d.ts +11 -0
- package/dist/scanners/connections/prisma-calls.d.ts.map +1 -0
- package/dist/scanners/connections/prisma-calls.js +237 -0
- package/dist/scanners/connections/prisma-calls.js.map +1 -0
- package/dist/scanners/connections/service-calls.d.ts +1 -1
- package/dist/scanners/connections/service-calls.d.ts.map +1 -1
- package/dist/scanners/connections/service-calls.js +35 -3
- package/dist/scanners/connections/service-calls.js.map +1 -1
- package/dist/scanners/infrastructure/cron-scanner.d.ts +14 -0
- package/dist/scanners/infrastructure/cron-scanner.d.ts.map +1 -0
- package/dist/scanners/infrastructure/cron-scanner.js +383 -0
- package/dist/scanners/infrastructure/cron-scanner.js.map +1 -0
- package/dist/scanners/infrastructure/deploy-scanner.d.ts +11 -0
- package/dist/scanners/infrastructure/deploy-scanner.d.ts.map +1 -0
- package/dist/scanners/infrastructure/deploy-scanner.js +508 -0
- package/dist/scanners/infrastructure/deploy-scanner.js.map +1 -0
- package/dist/scanners/infrastructure/env-scanner.d.ts +55 -0
- package/dist/scanners/infrastructure/env-scanner.d.ts.map +1 -0
- package/dist/scanners/infrastructure/env-scanner.js +431 -0
- package/dist/scanners/infrastructure/env-scanner.js.map +1 -0
- package/dist/scanners/infrastructure/field-usage-analyzer.d.ts +52 -0
- package/dist/scanners/infrastructure/field-usage-analyzer.d.ts.map +1 -0
- package/dist/scanners/infrastructure/field-usage-analyzer.js +480 -0
- package/dist/scanners/infrastructure/field-usage-analyzer.js.map +1 -0
- package/dist/scanners/infrastructure/prisma-parser.d.ts +21 -0
- package/dist/scanners/infrastructure/prisma-parser.d.ts.map +1 -0
- package/dist/scanners/infrastructure/prisma-parser.js +58 -0
- package/dist/scanners/infrastructure/prisma-parser.js.map +1 -0
- package/dist/scanners/infrastructure/prisma-scanner.d.ts +30 -0
- package/dist/scanners/infrastructure/prisma-scanner.d.ts.map +1 -0
- package/dist/scanners/infrastructure/prisma-scanner.js +329 -0
- package/dist/scanners/infrastructure/prisma-scanner.js.map +1 -0
- package/dist/scanners/infrastructure/queue-scanner.d.ts +14 -0
- package/dist/scanners/infrastructure/queue-scanner.d.ts.map +1 -0
- package/dist/scanners/infrastructure/queue-scanner.js +455 -0
- package/dist/scanners/infrastructure/queue-scanner.js.map +1 -0
- package/dist/scanners/infrastructure/typespec-validator.d.ts +50 -0
- package/dist/scanners/infrastructure/typespec-validator.d.ts.map +1 -0
- package/dist/scanners/infrastructure/typespec-validator.js +407 -0
- package/dist/scanners/infrastructure/typespec-validator.js.map +1 -0
- package/dist/scanners/packages/swift.d.ts +5 -0
- package/dist/scanners/packages/swift.d.ts.map +1 -1
- package/dist/scanners/packages/swift.js +23 -0
- package/dist/scanners/packages/swift.js.map +1 -1
- package/dist/scanners/prompts/detector.d.ts +13 -2
- package/dist/scanners/prompts/detector.d.ts.map +1 -1
- package/dist/scanners/prompts/detector.js +97 -46
- package/dist/scanners/prompts/detector.js.map +1 -1
- package/dist/scanners/prompts/index.d.ts +1 -1
- package/dist/scanners/prompts/index.d.ts.map +1 -1
- package/dist/scanners/prompts/index.js +2 -2
- package/dist/scanners/prompts/index.js.map +1 -1
- package/dist/scanners/swift/code-scanner.d.ts +1 -1
- package/dist/scanners/swift/code-scanner.d.ts.map +1 -1
- package/dist/scanners/swift/code-scanner.js +216 -2
- package/dist/scanners/swift/code-scanner.js.map +1 -1
- package/dist/scanners/swift/swiftui-scanner.d.ts +45 -0
- package/dist/scanners/swift/swiftui-scanner.d.ts.map +1 -0
- package/dist/scanners/swift/swiftui-scanner.js +606 -0
- package/dist/scanners/swift/swiftui-scanner.js.map +1 -0
- package/dist/scanners/xcode/pbxproj-parser.d.ts +32 -0
- package/dist/scanners/xcode/pbxproj-parser.d.ts.map +1 -0
- package/dist/scanners/xcode/pbxproj-parser.js +407 -0
- package/dist/scanners/xcode/pbxproj-parser.js.map +1 -0
- package/dist/scanners/xcode/storyboard-scanner.d.ts +13 -0
- package/dist/scanners/xcode/storyboard-scanner.d.ts.map +1 -0
- package/dist/scanners/xcode/storyboard-scanner.js +236 -0
- package/dist/scanners/xcode/storyboard-scanner.js.map +1 -0
- package/dist/storage/markdown-view.d.ts +49 -0
- package/dist/storage/markdown-view.d.ts.map +1 -0
- package/dist/storage/markdown-view.js +233 -0
- package/dist/storage/markdown-view.js.map +1 -0
- package/dist/storage.d.ts +225 -9
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +945 -86
- package/dist/storage.js.map +1 -1
- package/dist/subgraph.d.ts +30 -0
- package/dist/subgraph.d.ts.map +1 -0
- package/dist/subgraph.js +106 -0
- package/dist/subgraph.js.map +1 -0
- package/dist/temporal/git-store.d.ts +65 -0
- package/dist/temporal/git-store.d.ts.map +1 -0
- package/dist/temporal/git-store.js +166 -0
- package/dist/temporal/git-store.js.map +1 -0
- package/dist/trace.d.ts +38 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +292 -0
- package/dist/trace.js.map +1 -0
- package/dist/types.d.ts +322 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +53 -0
- package/dist/types.js.map +1 -1
- package/hooks/hooks.json +1 -55
- package/hooks/mark-dirty.sh +20 -0
- package/hooks/post-bash-suggest.sh +30 -0
- package/hooks/post-edit-suggest.sh +29 -0
- package/hooks/pre-edit-warn.sh +28 -0
- package/hooks/session-start.sh +19 -0
- package/hooks/stop-suggest.sh +49 -0
- package/package.json +30 -11
- package/scripts/install-codex-plugin.sh +119 -0
- package/scripts/install-plugin.sh +29 -24
- package/skills/architecture-export/SKILL.md +79 -0
- package/skills/architecture-scan/SKILL.md +64 -0
- package/skills/code-review/SKILL.md +368 -0
- package/skills/impact-analysis/SKILL.md +80 -0
- package/skills/infrastructure-scanning.md +42 -0
- package/skills/navgator-setup/SKILL.md +108 -0
- package/web/.next/standalone/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/web/.next/app-path-routes-manifest.json +3 -0
- package/web/.next/standalone/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/web/.next/required-server-files.json +4 -4
- package/web/.next/standalone/web/.next/routes-manifest.json +18 -0
- package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found/page/next-font-manifest.json +2 -2
- package/web/.next/standalone/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.rsc +3 -3
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
- package/web/.next/standalone/web/.next/server/app/api/prompts/route.js.nft.json +1 -1
- package/web/.next/standalone/web/.next/server/app/api/rules/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/web/.next/server/app/api/rules/route/build-manifest.json +11 -0
- package/web/.next/standalone/web/.next/server/app/api/rules/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/web/.next/server/app/api/rules/route.js +6 -0
- package/web/.next/standalone/web/.next/server/app/api/rules/route.js.map +5 -0
- package/web/.next/standalone/web/.next/server/app/api/rules/route.js.nft.json +1 -0
- package/web/.next/standalone/web/.next/server/app/api/rules/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route/build-manifest.json +11 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route.js +6 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route.js.map +5 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route.js.nft.json +1 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route/build-manifest.json +11 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route.js +6 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route.js.map +5 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route.js.nft.json +1 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/web/.next/server/app/index.html +1 -1
- package/web/.next/standalone/web/.next/server/app/index.rsc +6 -6
- package/web/.next/standalone/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/index.segments/_full.segment.rsc +6 -6
- package/web/.next/standalone/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/web/.next/standalone/web/.next/server/app/index.segments/_tree.segment.rsc +5 -5
- package/web/.next/standalone/web/.next/server/app/page/next-font-manifest.json +2 -2
- package/web/.next/standalone/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/app-paths-manifest.json +3 -0
- package/web/.next/standalone/web/.next/server/chunks/2374f_next_dist_esm_build_templates_app-route_0bb4e66a.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__006b837d._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__0426efe8._.js +3 -0
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__2e09fec9._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__38d0390f._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__594bcf20._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__b888fadf._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__cd5f36ce._.js +3 -0
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__ee6fc95f._.js +3 -0
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__fa2ec862._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/web_171de0df._.js +9 -4
- package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_rules_route_actions_3de01bd5.js +3 -0
- package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_subgraph_route_actions_d8b5a63f.js +3 -0
- package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_trace_route_actions_b0703ae2.js +3 -0
- package/web/.next/standalone/web/.next/server/next-font-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/next-font-manifest.json +4 -4
- package/web/.next/standalone/web/.next/server/pages/404.html +1 -1
- package/web/.next/standalone/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/server-reference-manifest.json +1 -1
- package/web/.next/standalone/web/.next/static/chunks/22a09ecf6ba35cfd.js +17 -0
- package/web/.next/standalone/web/.next/static/chunks/9857ba86ce4e82d8.css +2 -0
- package/web/.next/standalone/web/.next/static/chunks/f899547f99ef4b76.css +1 -0
- package/web/.next/standalone/web/.next/static/media/4fa387ec64143e14-s.c36e1862.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/53b9e256198e5412-s.853d50a3.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/5ce348bf30bf5439-s.ebceb24d.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/6306c77e7c8268e4-s.ff4a2084.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/7178b3e590c64307-s.55554cd0.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/797e433ab948586e-s.p.479bea2b.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/7d817b4c03b0c5f1-s.f377b9c4.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/8a480f0b521d4e75-s.ea323500.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/bbc41e54d2fcbd21-s.d1207556.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/fef07dbb0973bf53-s.518e079e.woff2 +0 -0
- package/web/.next/standalone/web/app/api/components/route.ts +1 -1
- package/web/.next/standalone/web/app/api/connections/route.ts +3 -1
- package/web/.next/standalone/web/app/api/graph/route.ts +3 -3
- package/web/.next/standalone/web/app/api/projects/route.ts +1 -1
- package/web/.next/standalone/web/app/api/prompts/route.ts +2 -2
- package/web/.next/standalone/web/app/api/rules/route.ts +213 -0
- package/web/.next/standalone/web/app/api/settings/route.ts +2 -2
- package/web/.next/standalone/web/app/api/status/route.ts +1 -1
- package/web/.next/standalone/web/app/api/subgraph/route.ts +267 -0
- package/web/.next/standalone/web/app/api/trace/route.ts +321 -0
- package/web/.next/standalone/web/app/page.tsx +9 -1
- package/web/.next/standalone/web/components/connections-panel.tsx +23 -6
- package/web/.next/standalone/web/components/coverage-panel.tsx +309 -0
- package/web/.next/standalone/web/components/rules-panel.tsx +156 -0
- package/web/.next/standalone/web/components/sidebar.tsx +8 -0
- package/web/.next/standalone/web/components/status-overview.tsx +24 -1
- package/web/.next/standalone/web/components/subgraph-panel.tsx +382 -0
- package/web/.next/standalone/web/components/trace-panel.tsx +325 -0
- package/web/.next/standalone/web/lib/hooks/index.ts +3 -0
- package/web/.next/standalone/web/lib/hooks/use-coverage.ts +68 -0
- package/web/.next/standalone/web/lib/hooks/use-subgraph.ts +85 -0
- package/web/.next/standalone/web/lib/hooks/use-trace.ts +84 -0
- package/web/.next/standalone/web/lib/types.ts +108 -0
- package/web/.next/standalone/web/package-lock.json +218 -0
- package/web/.next/standalone/web/package.json +4 -2
- package/web/.next/standalone/web/server.js +1 -1
- package/web/.next/static/chunks/22a09ecf6ba35cfd.js +17 -0
- package/web/.next/static/chunks/9857ba86ce4e82d8.css +2 -0
- package/web/.next/static/chunks/f899547f99ef4b76.css +1 -0
- package/web/.next/static/media/4fa387ec64143e14-s.c36e1862.woff2 +0 -0
- package/web/.next/static/media/53b9e256198e5412-s.853d50a3.woff2 +0 -0
- package/web/.next/static/media/5ce348bf30bf5439-s.ebceb24d.woff2 +0 -0
- package/web/.next/static/media/6306c77e7c8268e4-s.ff4a2084.woff2 +0 -0
- package/web/.next/static/media/7178b3e590c64307-s.55554cd0.woff2 +0 -0
- package/web/.next/static/media/797e433ab948586e-s.p.479bea2b.woff2 +0 -0
- package/web/.next/static/media/7d817b4c03b0c5f1-s.f377b9c4.woff2 +0 -0
- package/web/.next/static/media/8a480f0b521d4e75-s.ea323500.woff2 +0 -0
- package/web/.next/static/media/bbc41e54d2fcbd21-s.d1207556.woff2 +0 -0
- package/web/.next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2 +0 -0
- package/web/.next/static/media/fef07dbb0973bf53-s.518e079e.woff2 +0 -0
- package/skills/check/SKILL.md +0 -64
- package/skills/connections/SKILL.md +0 -54
- package/skills/diagram/SKILL.md +0 -64
- package/skills/export/SKILL.md +0 -49
- package/skills/impact/SKILL.md +0 -58
- package/skills/install/SKILL.md +0 -94
- package/skills/scan/SKILL.md +0 -75
- package/skills/status/SKILL.md +0 -37
- package/skills/ui/SKILL.md +0 -43
- package/skills/update/SKILL.md +0 -43
- package/web/.next/standalone/web/.next/static/chunks/8a80e7184ad3a13f.css +0 -2
- package/web/.next/standalone/web/.next/static/chunks/c056475f5f4424b6.css +0 -1
- package/web/.next/standalone/web/.next/static/chunks/cb3513192b63e480.js +0 -12
- package/web/.next/standalone/web/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
- package/web/.next/static/chunks/8a80e7184ad3a13f.css +0 -2
- package/web/.next/static/chunks/c056475f5f4424b6.css +0 -1
- package/web/.next/static/chunks/cb3513192b63e480.js +0 -12
- package/web/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
- package/web/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
- package/web/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
- package/web/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
- package/web/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
- package/web/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
- /package/web/.next/standalone/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_buildManifest.js +0 -0
- /package/web/.next/standalone/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/standalone/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_ssgManifest.js +0 -0
- /package/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_buildManifest.js +0 -0
- /package/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# PostToolUse (Write|Edit) — suggest a scan only after touching architecture-critical files.
|
|
3
|
+
# (The original "3+ files modified" heuristic would need persistent state across
|
|
4
|
+
# hook invocations and produced noise anyway. Pattern-matching on the edited
|
|
5
|
+
# path alone is silent by default and still catches the cases that matter.)
|
|
6
|
+
set -u
|
|
7
|
+
|
|
8
|
+
project="${CLAUDE_PROJECT_DIR:-$PWD}"
|
|
9
|
+
[ -f "$project/.navgator/architecture/index.json" ] || exit 0
|
|
10
|
+
|
|
11
|
+
path=$(python3 -c '
|
|
12
|
+
import sys, json
|
|
13
|
+
try:
|
|
14
|
+
print(json.loads(sys.stdin.read()).get("tool_input", {}).get("file_path", ""))
|
|
15
|
+
except Exception:
|
|
16
|
+
pass
|
|
17
|
+
' 2>/dev/null)
|
|
18
|
+
|
|
19
|
+
[ -z "$path" ] && exit 0
|
|
20
|
+
|
|
21
|
+
case "$path" in
|
|
22
|
+
*schema.prisma|*/migrations/*|*/drizzle/*|\
|
|
23
|
+
*/api/*/route.ts|*/api/*/route.js|*/app/api/*|*/pages/api/*|\
|
|
24
|
+
*Package.swift|*.pbxproj|*Podfile|*.entitlements|*Info.plist)
|
|
25
|
+
echo "Architecture-critical file changed — consider running the navgator \`scan\` MCP tool to keep tracking fresh."
|
|
26
|
+
;;
|
|
27
|
+
*) exit 0 ;;
|
|
28
|
+
esac
|
|
29
|
+
exit 0
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# PreToolUse (Edit|Write) — warn only when editing an architecture-critical file.
|
|
3
|
+
# Silent otherwise.
|
|
4
|
+
set -u
|
|
5
|
+
|
|
6
|
+
project="${CLAUDE_PROJECT_DIR:-$PWD}"
|
|
7
|
+
[ -f "$project/.navgator/architecture/index.json" ] || exit 0
|
|
8
|
+
|
|
9
|
+
path=$(python3 -c '
|
|
10
|
+
import sys, json
|
|
11
|
+
try:
|
|
12
|
+
print(json.loads(sys.stdin.read()).get("tool_input", {}).get("file_path", ""))
|
|
13
|
+
except Exception:
|
|
14
|
+
pass
|
|
15
|
+
' 2>/dev/null)
|
|
16
|
+
|
|
17
|
+
[ -z "$path" ] && exit 0
|
|
18
|
+
|
|
19
|
+
case "$path" in
|
|
20
|
+
*schema.prisma|*/migrations/*|*/drizzle/*|*/prisma/*|\
|
|
21
|
+
*/api/*/route.ts|*/api/*/route.js|*/app/api/*|*/pages/api/*|\
|
|
22
|
+
*/workers/*|*/queues/*|*/jobs/*|\
|
|
23
|
+
*Package.swift|*.pbxproj|*Podfile|*.entitlements|*Info.plist)
|
|
24
|
+
echo "Architecture-critical file. Consider running the navgator \`explore\` MCP tool first to check downstream impact."
|
|
25
|
+
;;
|
|
26
|
+
*) exit 0 ;;
|
|
27
|
+
esac
|
|
28
|
+
exit 0
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# SessionStart hook — suggest a scan only when navgator data is missing or stale.
|
|
3
|
+
# Silent otherwise (exits 0 with no stdout).
|
|
4
|
+
set -u
|
|
5
|
+
|
|
6
|
+
project="${CLAUDE_PROJECT_DIR:-$PWD}"
|
|
7
|
+
index="$project/.navgator/architecture/index.json"
|
|
8
|
+
|
|
9
|
+
# Not a navgator-tracked project yet — stay silent. A user who wants tracking
|
|
10
|
+
# runs `/navgator:scan` explicitly; auto-nagging on every SessionStart across
|
|
11
|
+
# every project is noise.
|
|
12
|
+
[ -f "$index" ] || exit 0
|
|
13
|
+
|
|
14
|
+
# Tracked project: check freshness. Suggest refresh only if >24h old.
|
|
15
|
+
if [ "$(find "$index" -mtime +1 -print 2>/dev/null)" ]; then
|
|
16
|
+
echo "NavGator data is >24h old. Consider running the navgator \`scan\` MCP tool to refresh."
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
exit 0
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Stop hook — suggest a scan only if the architecture index is clearly stale
|
|
3
|
+
# relative to tracked source files. Silent otherwise.
|
|
4
|
+
#
|
|
5
|
+
# "Clearly stale" = index.json exists and is older than any file in common
|
|
6
|
+
# source dirs within the last 24h.
|
|
7
|
+
set -u
|
|
8
|
+
|
|
9
|
+
emit_empty() {
|
|
10
|
+
printf '{}\n'
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
emit_context() {
|
|
14
|
+
python3 - "$1" <<'PY' || emit_empty
|
|
15
|
+
import json
|
|
16
|
+
import sys
|
|
17
|
+
|
|
18
|
+
print(json.dumps({
|
|
19
|
+
"hookSpecificOutput": {
|
|
20
|
+
"hookEventName": "Stop",
|
|
21
|
+
"additionalContext": sys.argv[1],
|
|
22
|
+
}
|
|
23
|
+
}))
|
|
24
|
+
PY
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
project="${CLAUDE_PROJECT_DIR:-$PWD}"
|
|
28
|
+
index="$project/.navgator/architecture/index.json"
|
|
29
|
+
[ -f "$index" ] || {
|
|
30
|
+
emit_empty
|
|
31
|
+
exit 0
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
# If anything under typical source dirs is newer than index.json, suggest refresh.
|
|
35
|
+
# find -newer is POSIX; errors silenced for dirs that don't exist.
|
|
36
|
+
newer=$(find \
|
|
37
|
+
"$project/src" "$project/app" "$project/lib" "$project/core" \
|
|
38
|
+
"$project/server" "$project/api" "$project/packages" \
|
|
39
|
+
-type f -newer "$index" -not -path "*/node_modules/*" -not -path "*/.next/*" \
|
|
40
|
+
-not -path "*/dist/*" -not -path "*/build/*" -not -path "*/.turbo/*" \
|
|
41
|
+
-print -quit 2>/dev/null)
|
|
42
|
+
|
|
43
|
+
if [ -n "$newer" ]; then
|
|
44
|
+
emit_context "Source files have changed since the last navgator scan — consider running the navgator \`scan\` MCP tool before ending the session."
|
|
45
|
+
else
|
|
46
|
+
emit_empty
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
exit 0
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tyroneross/navgator",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Architecture connection tracker for Claude Code - know your stack before you change it",
|
|
3
|
+
"version": "0.9.0",
|
|
4
|
+
"description": "Architecture connection tracker for Claude Code and Codex - know your stack before you change it",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"bin": {
|
|
9
|
-
"navgator": "
|
|
9
|
+
"navgator": "dist/cli/index.js"
|
|
10
10
|
},
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
@@ -31,10 +31,18 @@
|
|
|
31
31
|
"hooks",
|
|
32
32
|
"agents",
|
|
33
33
|
".claude-plugin",
|
|
34
|
+
".codex-plugin",
|
|
35
|
+
".agents",
|
|
36
|
+
".mcp.json",
|
|
34
37
|
"scripts/install-plugin.sh",
|
|
38
|
+
"scripts/install-codex-plugin.sh",
|
|
35
39
|
"CLAUDE.md",
|
|
36
40
|
"README.md"
|
|
37
41
|
],
|
|
42
|
+
"publishConfig": {
|
|
43
|
+
"access": "public",
|
|
44
|
+
"provenance": true
|
|
45
|
+
},
|
|
38
46
|
"scripts": {
|
|
39
47
|
"build": "npm run build:cli && npm run build:web",
|
|
40
48
|
"build:cli": "tsc && npm run build:fixshebang",
|
|
@@ -44,15 +52,21 @@
|
|
|
44
52
|
"dev": "tsc --watch",
|
|
45
53
|
"dev:web": "cd web && next dev",
|
|
46
54
|
"start": "node dist/cli/index.js",
|
|
47
|
-
"test": "
|
|
55
|
+
"test": "vitest run",
|
|
56
|
+
"test:release": "vitest run --exclude __tests__/scanner-audit.test.ts --exclude __tests__/scanner-characterization.test.ts --exclude __tests__/scanner-incremental.test.ts",
|
|
48
57
|
"lint": "eslint src/**/*.ts",
|
|
49
58
|
"clean": "rm -rf dist web/.next",
|
|
50
59
|
"prepublishOnly": "npm run clean && npm run build",
|
|
51
60
|
"link:local": "npm run build && npm link",
|
|
52
|
-
"install
|
|
61
|
+
"install:claude": "bash scripts/install-plugin.sh --global",
|
|
62
|
+
"install:codex": "bash scripts/install-codex-plugin.sh --user",
|
|
63
|
+
"install:codex-workspace": "bash scripts/install-codex-plugin.sh --workspace",
|
|
64
|
+
"install-plugin": "bash scripts/install-plugin.sh --global",
|
|
65
|
+
"mcp": "node dist/mcp/server.js"
|
|
53
66
|
},
|
|
54
67
|
"keywords": [
|
|
55
68
|
"claude-code",
|
|
69
|
+
"codex",
|
|
56
70
|
"architecture",
|
|
57
71
|
"dependencies",
|
|
58
72
|
"devtools",
|
|
@@ -61,27 +75,32 @@
|
|
|
61
75
|
"impact-analysis"
|
|
62
76
|
],
|
|
63
77
|
"author": "Tyrone Ross",
|
|
64
|
-
"license": "
|
|
78
|
+
"license": "Apache-2.0",
|
|
65
79
|
"repository": {
|
|
66
80
|
"type": "git",
|
|
67
|
-
"url": "https://github.com/tyroneross/
|
|
81
|
+
"url": "git+https://github.com/tyroneross/NavGator.git"
|
|
68
82
|
},
|
|
69
|
-
"homepage": "https://github.com/tyroneross/
|
|
83
|
+
"homepage": "https://github.com/tyroneross/NavGator#readme",
|
|
70
84
|
"bugs": {
|
|
71
|
-
"url": "https://github.com/tyroneross/
|
|
85
|
+
"url": "https://github.com/tyroneross/NavGator/issues"
|
|
72
86
|
},
|
|
73
87
|
"engines": {
|
|
74
88
|
"node": ">=20.0.0"
|
|
75
89
|
},
|
|
76
90
|
"dependencies": {
|
|
77
91
|
"commander": "^14.0.0",
|
|
78
|
-
"glob": "^13.0.0"
|
|
92
|
+
"glob": "^13.0.0",
|
|
93
|
+
"graphology": "^0.26.0",
|
|
94
|
+
"graphology-communities-louvain": "^2.0.2",
|
|
95
|
+
"graphology-metrics": "^2.4.0"
|
|
79
96
|
},
|
|
80
97
|
"optionalDependencies": {
|
|
81
98
|
"ts-morph": "^27.0.0"
|
|
82
99
|
},
|
|
83
100
|
"devDependencies": {
|
|
101
|
+
"@sourcegraph/scip-typescript": "^0.4.0",
|
|
84
102
|
"@types/node": "^22.0.0",
|
|
85
|
-
"typescript": "^5.3.0"
|
|
103
|
+
"typescript": "^5.3.0",
|
|
104
|
+
"vitest": "^4.0.18"
|
|
86
105
|
}
|
|
87
106
|
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# NavGator Codex plugin installer
|
|
5
|
+
# Usage: ./install-codex-plugin.sh [--user | --workspace]
|
|
6
|
+
|
|
7
|
+
SCOPE="${1:---user}"
|
|
8
|
+
BOLD="\033[1m"
|
|
9
|
+
GREEN="\033[0;32m"
|
|
10
|
+
YELLOW="\033[0;33m"
|
|
11
|
+
RED="\033[0;31m"
|
|
12
|
+
RESET="\033[0m"
|
|
13
|
+
|
|
14
|
+
info() { echo -e "${BOLD}$1${RESET}"; }
|
|
15
|
+
ok() { echo -e "${GREEN}$1${RESET}"; }
|
|
16
|
+
warn() { echo -e "${YELLOW}$1${RESET}"; }
|
|
17
|
+
err() { echo -e "${RED}$1${RESET}" >&2; }
|
|
18
|
+
|
|
19
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
20
|
+
PLUGIN_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
21
|
+
|
|
22
|
+
update_marketplace() {
|
|
23
|
+
local marketplace_path="$1"
|
|
24
|
+
local marketplace_name="$2"
|
|
25
|
+
local display_name="$3"
|
|
26
|
+
local source_path="$4"
|
|
27
|
+
|
|
28
|
+
mkdir -p "$(dirname "$marketplace_path")"
|
|
29
|
+
|
|
30
|
+
node - <<'NODE' "$marketplace_path" "$marketplace_name" "$display_name" "$source_path"
|
|
31
|
+
const fs = require("fs");
|
|
32
|
+
|
|
33
|
+
const [marketplacePath, marketplaceName, displayName, sourcePath] = process.argv.slice(2);
|
|
34
|
+
|
|
35
|
+
let data = {
|
|
36
|
+
name: marketplaceName,
|
|
37
|
+
interface: { displayName },
|
|
38
|
+
plugins: [],
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
if (fs.existsSync(marketplacePath)) {
|
|
42
|
+
data = JSON.parse(fs.readFileSync(marketplacePath, "utf8"));
|
|
43
|
+
if (!data || typeof data !== "object") data = {};
|
|
44
|
+
if (!Array.isArray(data.plugins)) data.plugins = [];
|
|
45
|
+
if (!data.interface || typeof data.interface !== "object") data.interface = {};
|
|
46
|
+
if (!data.name) data.name = marketplaceName;
|
|
47
|
+
if (!data.interface.displayName) data.interface.displayName = displayName;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const entry = {
|
|
51
|
+
name: "navgator",
|
|
52
|
+
source: {
|
|
53
|
+
source: "local",
|
|
54
|
+
path: sourcePath,
|
|
55
|
+
},
|
|
56
|
+
policy: {
|
|
57
|
+
installation: "AVAILABLE",
|
|
58
|
+
authentication: "ON_INSTALL",
|
|
59
|
+
},
|
|
60
|
+
category: "Coding",
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const index = data.plugins.findIndex((plugin) => plugin && plugin.name === "navgator");
|
|
64
|
+
if (index >= 0) {
|
|
65
|
+
data.plugins[index] = {
|
|
66
|
+
...data.plugins[index],
|
|
67
|
+
...entry,
|
|
68
|
+
source: entry.source,
|
|
69
|
+
policy: entry.policy,
|
|
70
|
+
};
|
|
71
|
+
} else {
|
|
72
|
+
data.plugins.push(entry);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
fs.writeFileSync(marketplacePath, `${JSON.stringify(data, null, 2)}\n`);
|
|
76
|
+
NODE
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
case "$SCOPE" in
|
|
80
|
+
--user)
|
|
81
|
+
TARGET_DIR="$HOME/plugins"
|
|
82
|
+
MARKETPLACE_PATH="$HOME/.agents/plugins/marketplace.json"
|
|
83
|
+
LINK_PATH="$TARGET_DIR/navgator"
|
|
84
|
+
info "Installing navgator for Codex at user scope..."
|
|
85
|
+
mkdir -p "$TARGET_DIR" "$HOME/.agents/plugins"
|
|
86
|
+
ln -sfn "$PLUGIN_ROOT" "$LINK_PATH"
|
|
87
|
+
if [ -L "$TARGET_DIR/gator" ]; then
|
|
88
|
+
warn "Removing legacy Codex alias ~/plugins/gator ..."
|
|
89
|
+
rm -f "$TARGET_DIR/gator"
|
|
90
|
+
fi
|
|
91
|
+
update_marketplace "$MARKETPLACE_PATH" "local" "Local Plugins" "./plugins/navgator"
|
|
92
|
+
echo ""
|
|
93
|
+
ok "navgator Codex plugin installed for your user account."
|
|
94
|
+
echo ""
|
|
95
|
+
echo " Plugin link: $LINK_PATH -> $PLUGIN_ROOT"
|
|
96
|
+
echo " Marketplace: $MARKETPLACE_PATH"
|
|
97
|
+
echo ""
|
|
98
|
+
warn "Restart Codex if the plugin does not appear immediately."
|
|
99
|
+
;;
|
|
100
|
+
--workspace)
|
|
101
|
+
MARKETPLACE_PATH="$PLUGIN_ROOT/.agents/plugins/marketplace.json"
|
|
102
|
+
info "Refreshing repo-local Codex marketplace metadata..."
|
|
103
|
+
update_marketplace "$MARKETPLACE_PATH" "navgator-local-workspace" "NavGator Workspace Plugins" "./"
|
|
104
|
+
echo ""
|
|
105
|
+
ok "navgator Codex workspace metadata refreshed."
|
|
106
|
+
echo ""
|
|
107
|
+
echo " Marketplace: $MARKETPLACE_PATH"
|
|
108
|
+
echo " Source path: ./"
|
|
109
|
+
echo ""
|
|
110
|
+
warn "Open this repository as the Codex workspace, or symlink it into another workspace's plugins directory."
|
|
111
|
+
;;
|
|
112
|
+
*)
|
|
113
|
+
echo "Usage: $0 [--user | --workspace]"
|
|
114
|
+
echo ""
|
|
115
|
+
echo " --user Install for your Codex user account (~/.agents/plugins/marketplace.json)"
|
|
116
|
+
echo " --workspace Refresh repo-local workspace metadata (.agents/plugins/marketplace.json)"
|
|
117
|
+
exit 1
|
|
118
|
+
;;
|
|
119
|
+
esac
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -euo pipefail
|
|
3
3
|
|
|
4
|
-
# NavGator
|
|
4
|
+
# NavGator Claude Code plugin installer
|
|
5
5
|
# Usage: ./install-plugin.sh [--global | --project]
|
|
6
6
|
|
|
7
7
|
SCOPE="${1:---global}"
|
|
@@ -20,19 +20,21 @@ err() { echo -e "${RED}$1${RESET}" >&2; }
|
|
|
20
20
|
case "$SCOPE" in
|
|
21
21
|
--global)
|
|
22
22
|
TARGET_DIR="$HOME/.claude/plugins"
|
|
23
|
-
LINK_NAME="
|
|
24
|
-
info "Installing
|
|
23
|
+
LINK_NAME="navgator"
|
|
24
|
+
info "Installing navgator plugin globally for Claude Code..."
|
|
25
25
|
;;
|
|
26
26
|
--project)
|
|
27
27
|
TARGET_DIR=".claude/plugins"
|
|
28
|
-
LINK_NAME="
|
|
29
|
-
info "Installing
|
|
28
|
+
LINK_NAME="navgator"
|
|
29
|
+
info "Installing navgator plugin for the current Claude Code project..."
|
|
30
30
|
;;
|
|
31
31
|
*)
|
|
32
32
|
echo "Usage: $0 [--global | --project]"
|
|
33
33
|
echo ""
|
|
34
|
-
echo " --global Install for all projects (~/.claude/plugins/
|
|
35
|
-
echo " --project Install for current project
|
|
34
|
+
echo " --global Install for all Claude projects (~/.claude/plugins/navgator)"
|
|
35
|
+
echo " --project Install for the current Claude project (.claude/plugins/navgator)"
|
|
36
|
+
echo ""
|
|
37
|
+
echo "For Codex installs, run: bash scripts/install-codex-plugin.sh [--user | --workspace]"
|
|
36
38
|
exit 1
|
|
37
39
|
;;
|
|
38
40
|
esac
|
|
@@ -53,11 +55,11 @@ if [ ! -f "$NAVGATOR_PATH/.claude-plugin/plugin.json" ]; then
|
|
|
53
55
|
exit 1
|
|
54
56
|
fi
|
|
55
57
|
|
|
56
|
-
# --- Clean up old navgator
|
|
57
|
-
|
|
58
|
-
if [ -L "$
|
|
59
|
-
warn "Removing
|
|
60
|
-
rm -f "$
|
|
58
|
+
# --- Clean up old navgator alias ---
|
|
59
|
+
OLD_ALIAS="$TARGET_DIR/navgator"
|
|
60
|
+
if [ -L "$OLD_ALIAS" ]; then
|
|
61
|
+
warn "Removing legacy 'navgator' Claude plugin alias..."
|
|
62
|
+
rm -f "$OLD_ALIAS"
|
|
61
63
|
fi
|
|
62
64
|
|
|
63
65
|
# --- Create symlink ---
|
|
@@ -74,22 +76,25 @@ ln -sfn "$NAVGATOR_PATH" "$FULL_LINK"
|
|
|
74
76
|
# --- Verify ---
|
|
75
77
|
if [ -f "$FULL_LINK/.claude-plugin/plugin.json" ]; then
|
|
76
78
|
echo ""
|
|
77
|
-
ok "
|
|
79
|
+
ok "navgator Claude plugin installed successfully!"
|
|
78
80
|
echo ""
|
|
79
81
|
echo " Location: $FULL_LINK -> $NAVGATOR_PATH"
|
|
80
82
|
echo " Scope: $([ "$SCOPE" = "--global" ] && echo "all projects" || echo "current project only")"
|
|
81
83
|
echo ""
|
|
82
|
-
echo "
|
|
83
|
-
echo " /
|
|
84
|
-
echo " /
|
|
85
|
-
echo " /
|
|
86
|
-
echo " /
|
|
87
|
-
echo " /
|
|
88
|
-
echo " /
|
|
89
|
-
echo " /
|
|
90
|
-
echo " /
|
|
91
|
-
echo " /
|
|
92
|
-
echo " /
|
|
84
|
+
echo " Claude slash commands:"
|
|
85
|
+
echo " /navgator:scan"
|
|
86
|
+
echo " /navgator:map"
|
|
87
|
+
echo " /navgator:trace"
|
|
88
|
+
echo " /navgator:impact"
|
|
89
|
+
echo " /navgator:test"
|
|
90
|
+
echo " /navgator:review"
|
|
91
|
+
echo " /navgator:llm-map"
|
|
92
|
+
echo " /navgator:schema"
|
|
93
|
+
echo " /navgator:dead"
|
|
94
|
+
echo " /navgator:lessons"
|
|
95
|
+
echo ""
|
|
96
|
+
echo " Codex install:"
|
|
97
|
+
echo " bash scripts/install-codex-plugin.sh --user"
|
|
93
98
|
echo ""
|
|
94
99
|
warn "Restart Claude Code for changes to take effect."
|
|
95
100
|
else
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: architecture-export
|
|
3
|
+
description: Use when user asks to show or generate an architecture diagram, visualize dependencies, export architecture docs, create architecture documentation, save architecture output, or create a mermaid diagram of their project.
|
|
4
|
+
version: 0.4.0
|
|
5
|
+
user-invocable: true
|
|
6
|
+
argument-hint: "[diagram|export] [options]"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Architecture Diagrams & Export
|
|
10
|
+
|
|
11
|
+
Generate architecture diagrams and export architecture summaries using the real NavGator MCP and CLI surfaces.
|
|
12
|
+
|
|
13
|
+
## Prerequisites
|
|
14
|
+
|
|
15
|
+
Before generating output, check whether architecture data exists. If the MCP tool or CLI reports missing data, run or recommend `navgator scan` first. Do not fabricate architecture from raw source when scan data is unavailable.
|
|
16
|
+
|
|
17
|
+
## Diagrams
|
|
18
|
+
|
|
19
|
+
For in-chat diagrams, use the `navgator diagram` MCP tool.
|
|
20
|
+
|
|
21
|
+
**MCP modes:**
|
|
22
|
+
- `summary`: top connected components only (default)
|
|
23
|
+
- `focus`: center on a specific component; pass `focus: "<component-name>"`
|
|
24
|
+
- `layer`: show one layer; pass `focus: "<layer-name>"` such as `frontend`, `backend`, `database`, `queue`, `infra`, or `external`
|
|
25
|
+
|
|
26
|
+
The MCP tool returns Mermaid markdown that can be rendered in any Mermaid-compatible viewer.
|
|
27
|
+
|
|
28
|
+
For file output, use the CLI `diagram` command. NavGator does not have an `export` command.
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Raw Mermaid
|
|
32
|
+
npx @tyroneross/navgator diagram --summary --output architecture.mmd
|
|
33
|
+
|
|
34
|
+
# Markdown-wrapped Mermaid
|
|
35
|
+
npx @tyroneross/navgator diagram --summary --markdown --output ARCHITECTURE.md
|
|
36
|
+
|
|
37
|
+
# Focused component diagram
|
|
38
|
+
npx @tyroneross/navgator diagram --focus "component-name" --markdown --output component-architecture.md
|
|
39
|
+
|
|
40
|
+
# Layer diagram
|
|
41
|
+
npx @tyroneross/navgator diagram --layer backend --markdown --output backend-architecture.md
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Summary Export
|
|
45
|
+
|
|
46
|
+
For an in-chat executive summary, use the `navgator summary` MCP tool.
|
|
47
|
+
|
|
48
|
+
For a JSON file, use the CLI `summary` command and shell redirection:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npx @tyroneross/navgator summary > architecture-summary.json
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
If the user asks for machine-readable graph data, point them to the generated scan artifacts rather than inventing an export command:
|
|
55
|
+
|
|
56
|
+
- `.navgator/architecture/index.json`
|
|
57
|
+
- `.navgator/architecture/graph.json`
|
|
58
|
+
- `.navgator/architecture/file_map.json`
|
|
59
|
+
|
|
60
|
+
## Decision Tree
|
|
61
|
+
|
|
62
|
+
| User Intent | Tool | Notes |
|
|
63
|
+
|-------------|------|-------|
|
|
64
|
+
| "Show architecture diagram" | MCP `navgator diagram` | Summary mode |
|
|
65
|
+
| "Diagram of X component" | MCP `navgator diagram` with `mode: "focus"` | Component-focused |
|
|
66
|
+
| "Show backend layer" | MCP `navgator diagram` with `mode: "layer"` | Pass layer name as `focus` |
|
|
67
|
+
| "Save a Mermaid diagram" | CLI `npx @tyroneross/navgator diagram --output <file>` | Add `--markdown` for Markdown docs |
|
|
68
|
+
| "Export architecture summary" | CLI `npx @tyroneross/navgator summary > <file>.json` | JSON file output |
|
|
69
|
+
| "Architecture summary in chat" | MCP `navgator summary` | Executive summary |
|
|
70
|
+
| "Export full graph JSON" | Existing `.navgator/architecture/*.json` files | No CLI export command exists |
|
|
71
|
+
|
|
72
|
+
## Guardrails
|
|
73
|
+
|
|
74
|
+
- Do not use `navgator export`; that command is not registered.
|
|
75
|
+
- Do not run npm or write files unless the user asked for file output.
|
|
76
|
+
- Use `focus` for complex diagrams so the output stays readable.
|
|
77
|
+
- Prefer Markdown-wrapped Mermaid for documentation files and raw Mermaid for diagram-only artifacts.
|
|
78
|
+
|
|
79
|
+
*navgator - architecture tracker*
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: architecture-scan
|
|
3
|
+
description: Use when user asks to scan architecture, check dependencies, find outdated packages, show project structure, refresh architecture, or run a health check. Navgator scan, status, and staleness check.
|
|
4
|
+
version: 0.4.0
|
|
5
|
+
user-invocable: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Architecture Scan & Status
|
|
9
|
+
|
|
10
|
+
Scan project architecture, check health, and monitor staleness using NavGator MCP tools. This skill covers scanning, status display, and health checks.
|
|
11
|
+
|
|
12
|
+
## When to Activate
|
|
13
|
+
|
|
14
|
+
- User asks about project architecture, stack, or dependencies
|
|
15
|
+
- User wants to check for outdated packages or vulnerabilities
|
|
16
|
+
- Session starts and architecture data may be stale (>24h since last scan)
|
|
17
|
+
- User adds/removes dependencies or makes structural changes
|
|
18
|
+
- After `npm install`, `pip install`, or similar dependency operations
|
|
19
|
+
|
|
20
|
+
## Scanning
|
|
21
|
+
|
|
22
|
+
Use the `navgator scan` MCP tool to detect components, connections, AI prompts, and infrastructure.
|
|
23
|
+
|
|
24
|
+
**Options:**
|
|
25
|
+
- Default: Full scan including code analysis
|
|
26
|
+
- `quick: true`: Package files only, skip code analysis (faster)
|
|
27
|
+
|
|
28
|
+
After scanning, present a smart brevity brief:
|
|
29
|
+
- **Line 1**: "Scanned [project]. [N] components, [N] connections."
|
|
30
|
+
- **What's new**: Added/removed components since last scan
|
|
31
|
+
- **What to watch**: Outdated packages, vulnerabilities, low-confidence detections
|
|
32
|
+
- **AI routing**: Providers and model count if AI calls detected
|
|
33
|
+
|
|
34
|
+
## Status
|
|
35
|
+
|
|
36
|
+
Use the `navgator status` MCP tool to show architecture summary without re-scanning.
|
|
37
|
+
|
|
38
|
+
Returns: component counts by type/layer, connection counts, AI routing table, last scan timestamp, and staleness indicator.
|
|
39
|
+
|
|
40
|
+
If no architecture data exists, recommend running a scan first.
|
|
41
|
+
|
|
42
|
+
## Health Checks
|
|
43
|
+
|
|
44
|
+
Use the `navgator scan` MCP tool with a follow-up review of the results. Health information is included in scan output:
|
|
45
|
+
- Outdated packages
|
|
46
|
+
- Security vulnerabilities
|
|
47
|
+
- Orphaned connections (dead code references)
|
|
48
|
+
- Missing imports and unused dependencies
|
|
49
|
+
|
|
50
|
+
## Decision Tree
|
|
51
|
+
|
|
52
|
+
| User Intent | MCP Tool | Notes |
|
|
53
|
+
|-------------|----------|-------|
|
|
54
|
+
| "Scan my project" | `navgator scan` | Full scan |
|
|
55
|
+
| "Quick scan" | `navgator scan` (quick: true) | Packages only |
|
|
56
|
+
| "What's my stack?" | `navgator status` | No re-scan needed |
|
|
57
|
+
| "Any outdated packages?" | `navgator scan` | Check health results |
|
|
58
|
+
| "Is architecture data fresh?" | `navgator status` | Check timestamp |
|
|
59
|
+
|
|
60
|
+
## Output Format
|
|
61
|
+
|
|
62
|
+
Keep output concise. Do NOT dump raw CLI output. Summarize into a scannable brief.
|
|
63
|
+
|
|
64
|
+
*navgator — architecture tracker*
|