codesift-mcp 0.2.18 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +143 -20
- package/dist/cache/hono-cache.d.ts +50 -0
- package/dist/cache/hono-cache.d.ts.map +1 -0
- package/dist/cache/hono-cache.js +132 -0
- package/dist/cache/hono-cache.js.map +1 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +17 -2
- package/dist/cli/setup.js.map +1 -1
- package/dist/formatters-shortening.d.ts +13 -0
- package/dist/formatters-shortening.d.ts.map +1 -1
- package/dist/formatters-shortening.js +131 -0
- package/dist/formatters-shortening.js.map +1 -1
- package/dist/formatters.d.ts +38 -0
- package/dist/formatters.d.ts.map +1 -1
- package/dist/formatters.js +498 -0
- package/dist/formatters.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +27 -26
- package/dist/instructions.js.map +1 -1
- package/dist/lsp/lsp-servers.d.ts.map +1 -1
- package/dist/lsp/lsp-servers.js +5 -0
- package/dist/lsp/lsp-servers.js.map +1 -1
- package/dist/lsp/lsp-tools.d.ts.map +1 -1
- package/dist/lsp/lsp-tools.js +1 -0
- package/dist/lsp/lsp-tools.js.map +1 -1
- package/dist/parser/astro-template.d.ts +47 -0
- package/dist/parser/astro-template.d.ts.map +1 -0
- package/dist/parser/astro-template.js +171 -0
- package/dist/parser/astro-template.js.map +1 -0
- package/dist/parser/extractors/_shared.d.ts +4 -0
- package/dist/parser/extractors/_shared.d.ts.map +1 -1
- package/dist/parser/extractors/_shared.js +8 -0
- package/dist/parser/extractors/_shared.js.map +1 -1
- package/dist/parser/extractors/astro.d.ts +4 -5
- package/dist/parser/extractors/astro.d.ts.map +1 -1
- package/dist/parser/extractors/astro.js +102 -26
- package/dist/parser/extractors/astro.js.map +1 -1
- package/dist/parser/extractors/gradle-kts.d.ts +4 -0
- package/dist/parser/extractors/gradle-kts.d.ts.map +1 -0
- package/dist/parser/extractors/gradle-kts.js +246 -0
- package/dist/parser/extractors/gradle-kts.js.map +1 -0
- package/dist/parser/extractors/hono-inline-analyzer.d.ts +34 -0
- package/dist/parser/extractors/hono-inline-analyzer.d.ts.map +1 -0
- package/dist/parser/extractors/hono-inline-analyzer.js +465 -0
- package/dist/parser/extractors/hono-inline-analyzer.js.map +1 -0
- package/dist/parser/extractors/hono-model.d.ts +196 -0
- package/dist/parser/extractors/hono-model.d.ts.map +1 -0
- package/dist/parser/extractors/hono-model.js +10 -0
- package/dist/parser/extractors/hono-model.js.map +1 -0
- package/dist/parser/extractors/hono.d.ts +118 -0
- package/dist/parser/extractors/hono.d.ts.map +1 -0
- package/dist/parser/extractors/hono.js +1527 -0
- package/dist/parser/extractors/hono.js.map +1 -0
- package/dist/parser/extractors/kotlin.d.ts +4 -0
- package/dist/parser/extractors/kotlin.d.ts.map +1 -0
- package/dist/parser/extractors/kotlin.js +521 -0
- package/dist/parser/extractors/kotlin.js.map +1 -0
- package/dist/parser/extractors/php.d.ts +22 -0
- package/dist/parser/extractors/php.d.ts.map +1 -0
- package/dist/parser/extractors/php.js +326 -0
- package/dist/parser/extractors/php.js.map +1 -0
- package/dist/parser/extractors/python.d.ts.map +1 -1
- package/dist/parser/extractors/python.js +234 -11
- package/dist/parser/extractors/python.js.map +1 -1
- package/dist/parser/extractors/sql.d.ts +33 -0
- package/dist/parser/extractors/sql.d.ts.map +1 -0
- package/dist/parser/extractors/sql.js +506 -0
- package/dist/parser/extractors/sql.js.map +1 -0
- package/dist/parser/extractors/typescript.d.ts.map +1 -1
- package/dist/parser/extractors/typescript.js +166 -3
- package/dist/parser/extractors/typescript.js.map +1 -1
- package/dist/parser/languages/tree-sitter-javascript.wasm +0 -0
- package/dist/parser/languages/tree-sitter-kotlin.wasm +0 -0
- package/dist/parser/languages/tree-sitter-php.wasm +0 -0
- package/dist/parser/languages/tree-sitter-php_only.wasm +0 -0
- package/dist/parser/languages/tree-sitter-python.wasm +0 -0
- package/dist/parser/parser-manager.d.ts +32 -0
- package/dist/parser/parser-manager.d.ts.map +1 -1
- package/dist/parser/parser-manager.js +82 -3
- package/dist/parser/parser-manager.js.map +1 -1
- package/dist/parser/symbol-extractor.d.ts.map +1 -1
- package/dist/parser/symbol-extractor.js +16 -0
- package/dist/parser/symbol-extractor.js.map +1 -1
- package/dist/register-tools.d.ts +37 -1
- package/dist/register-tools.d.ts.map +1 -1
- package/dist/register-tools.js +2657 -191
- package/dist/register-tools.js.map +1 -1
- package/dist/search/reranker.js +1 -1
- package/dist/search/reranker.js.map +1 -1
- package/dist/server-helpers.d.ts.map +1 -1
- package/dist/server-helpers.js +11 -0
- package/dist/server-helpers.js.map +1 -1
- package/dist/server.js +28 -1
- package/dist/server.js.map +1 -1
- package/dist/storage/index-store.d.ts +15 -1
- package/dist/storage/index-store.d.ts.map +1 -1
- package/dist/storage/index-store.js +27 -1
- package/dist/storage/index-store.js.map +1 -1
- package/dist/storage/session-state.d.ts +1 -1
- package/dist/storage/session-state.d.ts.map +1 -1
- package/dist/storage/session-state.js +6 -4
- package/dist/storage/session-state.js.map +1 -1
- package/dist/tools/agent-config-tools.d.ts +24 -0
- package/dist/tools/agent-config-tools.d.ts.map +1 -0
- package/dist/tools/agent-config-tools.js +119 -0
- package/dist/tools/agent-config-tools.js.map +1 -0
- package/dist/tools/architecture-tools.d.ts +23 -0
- package/dist/tools/architecture-tools.d.ts.map +1 -0
- package/dist/tools/architecture-tools.js +140 -0
- package/dist/tools/architecture-tools.js.map +1 -0
- package/dist/tools/astro-config.d.ts +33 -0
- package/dist/tools/astro-config.d.ts.map +1 -0
- package/dist/tools/astro-config.js +260 -0
- package/dist/tools/astro-config.js.map +1 -0
- package/dist/tools/astro-islands.d.ts +61 -0
- package/dist/tools/astro-islands.d.ts.map +1 -0
- package/dist/tools/astro-islands.js +240 -0
- package/dist/tools/astro-islands.js.map +1 -0
- package/dist/tools/astro-routes.d.ts +49 -0
- package/dist/tools/astro-routes.d.ts.map +1 -0
- package/dist/tools/astro-routes.js +119 -0
- package/dist/tools/astro-routes.js.map +1 -0
- package/dist/tools/audit-tools.d.ts +38 -0
- package/dist/tools/audit-tools.d.ts.map +1 -0
- package/dist/tools/audit-tools.js +248 -0
- package/dist/tools/audit-tools.js.map +1 -0
- package/dist/tools/celery-tools.d.ts +38 -0
- package/dist/tools/celery-tools.d.ts.map +1 -0
- package/dist/tools/celery-tools.js +154 -0
- package/dist/tools/celery-tools.js.map +1 -0
- package/dist/tools/clone-tools.js +1 -1
- package/dist/tools/clone-tools.js.map +1 -1
- package/dist/tools/complexity-tools.d.ts +4 -0
- package/dist/tools/complexity-tools.d.ts.map +1 -1
- package/dist/tools/complexity-tools.js +78 -4
- package/dist/tools/complexity-tools.js.map +1 -1
- package/dist/tools/compose-tools.d.ts +60 -0
- package/dist/tools/compose-tools.d.ts.map +1 -0
- package/dist/tools/compose-tools.js +203 -0
- package/dist/tools/compose-tools.js.map +1 -0
- package/dist/tools/coupling-tools.d.ts +50 -0
- package/dist/tools/coupling-tools.d.ts.map +1 -0
- package/dist/tools/coupling-tools.js +262 -0
- package/dist/tools/coupling-tools.js.map +1 -0
- package/dist/tools/dependency-audit-tools.d.ts +65 -0
- package/dist/tools/dependency-audit-tools.d.ts.map +1 -0
- package/dist/tools/dependency-audit-tools.js +553 -0
- package/dist/tools/dependency-audit-tools.js.map +1 -0
- package/dist/tools/django-settings.d.ts +22 -0
- package/dist/tools/django-settings.d.ts.map +1 -0
- package/dist/tools/django-settings.js +301 -0
- package/dist/tools/django-settings.js.map +1 -0
- package/dist/tools/frequency-tools.js +1 -1
- package/dist/tools/frequency-tools.js.map +1 -1
- package/dist/tools/graph-tools.d.ts +8 -2
- package/dist/tools/graph-tools.d.ts.map +1 -1
- package/dist/tools/graph-tools.js +44 -3
- package/dist/tools/graph-tools.js.map +1 -1
- package/dist/tools/hilt-tools.d.ts +55 -0
- package/dist/tools/hilt-tools.d.ts.map +1 -0
- package/dist/tools/hilt-tools.js +258 -0
- package/dist/tools/hilt-tools.js.map +1 -0
- package/dist/tools/hono-analyze-app.d.ts +48 -0
- package/dist/tools/hono-analyze-app.d.ts.map +1 -0
- package/dist/tools/hono-analyze-app.js +102 -0
- package/dist/tools/hono-analyze-app.js.map +1 -0
- package/dist/tools/hono-api-contract.d.ts +22 -0
- package/dist/tools/hono-api-contract.d.ts.map +1 -0
- package/dist/tools/hono-api-contract.js +80 -0
- package/dist/tools/hono-api-contract.js.map +1 -0
- package/dist/tools/hono-conditional-middleware.d.ts +27 -0
- package/dist/tools/hono-conditional-middleware.d.ts.map +1 -0
- package/dist/tools/hono-conditional-middleware.js +62 -0
- package/dist/tools/hono-conditional-middleware.js.map +1 -0
- package/dist/tools/hono-context-flow.d.ts +24 -0
- package/dist/tools/hono-context-flow.d.ts.map +1 -0
- package/dist/tools/hono-context-flow.js +78 -0
- package/dist/tools/hono-context-flow.js.map +1 -0
- package/dist/tools/hono-dead-routes.d.ts +26 -0
- package/dist/tools/hono-dead-routes.d.ts.map +1 -0
- package/dist/tools/hono-dead-routes.js +109 -0
- package/dist/tools/hono-dead-routes.js.map +1 -0
- package/dist/tools/hono-env-regression.d.ts +29 -0
- package/dist/tools/hono-env-regression.d.ts.map +1 -0
- package/dist/tools/hono-env-regression.js +157 -0
- package/dist/tools/hono-env-regression.js.map +1 -0
- package/dist/tools/hono-inline-analyze.d.ts +31 -0
- package/dist/tools/hono-inline-analyze.d.ts.map +1 -0
- package/dist/tools/hono-inline-analyze.js +67 -0
- package/dist/tools/hono-inline-analyze.js.map +1 -0
- package/dist/tools/hono-middleware-chain.d.ts +22 -0
- package/dist/tools/hono-middleware-chain.d.ts.map +1 -0
- package/dist/tools/hono-middleware-chain.js +84 -0
- package/dist/tools/hono-middleware-chain.js.map +1 -0
- package/dist/tools/hono-modules.d.ts +22 -0
- package/dist/tools/hono-modules.d.ts.map +1 -0
- package/dist/tools/hono-modules.js +126 -0
- package/dist/tools/hono-modules.js.map +1 -0
- package/dist/tools/hono-response-types.d.ts +37 -0
- package/dist/tools/hono-response-types.d.ts.map +1 -0
- package/dist/tools/hono-response-types.js +84 -0
- package/dist/tools/hono-response-types.js.map +1 -0
- package/dist/tools/hono-rpc-types.d.ts +21 -0
- package/dist/tools/hono-rpc-types.d.ts.map +1 -0
- package/dist/tools/hono-rpc-types.js +57 -0
- package/dist/tools/hono-rpc-types.js.map +1 -0
- package/dist/tools/hono-security.d.ts +21 -0
- package/dist/tools/hono-security.d.ts.map +1 -0
- package/dist/tools/hono-security.js +98 -0
- package/dist/tools/hono-security.js.map +1 -0
- package/dist/tools/hono-visualize.d.ts +13 -0
- package/dist/tools/hono-visualize.d.ts.map +1 -0
- package/dist/tools/hono-visualize.js +72 -0
- package/dist/tools/hono-visualize.js.map +1 -0
- package/dist/tools/hotspot-tools.d.ts.map +1 -1
- package/dist/tools/hotspot-tools.js +9 -7
- package/dist/tools/hotspot-tools.js.map +1 -1
- package/dist/tools/index-tools.d.ts +17 -0
- package/dist/tools/index-tools.d.ts.map +1 -1
- package/dist/tools/index-tools.js +210 -10
- package/dist/tools/index-tools.js.map +1 -1
- package/dist/tools/kotlin-tools.d.ts +142 -0
- package/dist/tools/kotlin-tools.d.ts.map +1 -0
- package/dist/tools/kotlin-tools.js +572 -0
- package/dist/tools/kotlin-tools.js.map +1 -0
- package/dist/tools/legacy-hono-conventions.d.ts +14 -0
- package/dist/tools/legacy-hono-conventions.d.ts.map +1 -0
- package/dist/tools/legacy-hono-conventions.js +152 -0
- package/dist/tools/legacy-hono-conventions.js.map +1 -0
- package/dist/tools/migration-lint-tools.d.ts +26 -0
- package/dist/tools/migration-lint-tools.d.ts.map +1 -0
- package/dist/tools/migration-lint-tools.js +247 -0
- package/dist/tools/migration-lint-tools.js.map +1 -0
- package/dist/tools/model-tools.d.ts +30 -0
- package/dist/tools/model-tools.d.ts.map +1 -0
- package/dist/tools/model-tools.js +145 -0
- package/dist/tools/model-tools.js.map +1 -0
- package/dist/tools/nest-ext-tools.d.ts +92 -0
- package/dist/tools/nest-ext-tools.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools.js +359 -0
- package/dist/tools/nest-ext-tools.js.map +1 -0
- package/dist/tools/nest-tools.d.ts +171 -0
- package/dist/tools/nest-tools.d.ts.map +1 -0
- package/dist/tools/nest-tools.js +1042 -0
- package/dist/tools/nest-tools.js.map +1 -0
- package/dist/tools/nextjs-api-contract-readers.d.ts +14 -0
- package/dist/tools/nextjs-api-contract-readers.d.ts.map +1 -0
- package/dist/tools/nextjs-api-contract-readers.js +204 -0
- package/dist/tools/nextjs-api-contract-readers.js.map +1 -0
- package/dist/tools/nextjs-api-contract-tools.d.ts +57 -0
- package/dist/tools/nextjs-api-contract-tools.d.ts.map +1 -0
- package/dist/tools/nextjs-api-contract-tools.js +144 -0
- package/dist/tools/nextjs-api-contract-tools.js.map +1 -0
- package/dist/tools/nextjs-boundary-tools.d.ts +39 -0
- package/dist/tools/nextjs-boundary-tools.d.ts.map +1 -0
- package/dist/tools/nextjs-boundary-tools.js +152 -0
- package/dist/tools/nextjs-boundary-tools.js.map +1 -0
- package/dist/tools/nextjs-component-tools.d.ts +121 -0
- package/dist/tools/nextjs-component-tools.d.ts.map +1 -0
- package/dist/tools/nextjs-component-tools.js +460 -0
- package/dist/tools/nextjs-component-tools.js.map +1 -0
- package/dist/tools/nextjs-data-flow-tools.d.ts +42 -0
- package/dist/tools/nextjs-data-flow-tools.d.ts.map +1 -0
- package/dist/tools/nextjs-data-flow-tools.js +158 -0
- package/dist/tools/nextjs-data-flow-tools.js.map +1 -0
- package/dist/tools/nextjs-framework-audit-tools.d.ts +37 -0
- package/dist/tools/nextjs-framework-audit-tools.d.ts.map +1 -0
- package/dist/tools/nextjs-framework-audit-tools.js +211 -0
- package/dist/tools/nextjs-framework-audit-tools.js.map +1 -0
- package/dist/tools/nextjs-link-tools.d.ts +41 -0
- package/dist/tools/nextjs-link-tools.d.ts.map +1 -0
- package/dist/tools/nextjs-link-tools.js +157 -0
- package/dist/tools/nextjs-link-tools.js.map +1 -0
- package/dist/tools/nextjs-metadata-tools.d.ts +74 -0
- package/dist/tools/nextjs-metadata-tools.d.ts.map +1 -0
- package/dist/tools/nextjs-metadata-tools.js +252 -0
- package/dist/tools/nextjs-metadata-tools.js.map +1 -0
- package/dist/tools/nextjs-middleware-coverage-tools.d.ts +41 -0
- package/dist/tools/nextjs-middleware-coverage-tools.d.ts.map +1 -0
- package/dist/tools/nextjs-middleware-coverage-tools.js +88 -0
- package/dist/tools/nextjs-middleware-coverage-tools.js.map +1 -0
- package/dist/tools/nextjs-route-tools.d.ts +100 -0
- package/dist/tools/nextjs-route-tools.d.ts.map +1 -0
- package/dist/tools/nextjs-route-tools.js +493 -0
- package/dist/tools/nextjs-route-tools.js.map +1 -0
- package/dist/tools/nextjs-security-readers.d.ts +22 -0
- package/dist/tools/nextjs-security-readers.d.ts.map +1 -0
- package/dist/tools/nextjs-security-readers.js +318 -0
- package/dist/tools/nextjs-security-readers.js.map +1 -0
- package/dist/tools/nextjs-security-scoring.d.ts +15 -0
- package/dist/tools/nextjs-security-scoring.d.ts.map +1 -0
- package/dist/tools/nextjs-security-scoring.js +65 -0
- package/dist/tools/nextjs-security-scoring.js.map +1 -0
- package/dist/tools/nextjs-security-tools.d.ts +75 -0
- package/dist/tools/nextjs-security-tools.d.ts.map +1 -0
- package/dist/tools/nextjs-security-tools.js +153 -0
- package/dist/tools/nextjs-security-tools.js.map +1 -0
- package/dist/tools/nextjs-tools.d.ts +15 -0
- package/dist/tools/nextjs-tools.d.ts.map +1 -0
- package/dist/tools/nextjs-tools.js +15 -0
- package/dist/tools/nextjs-tools.js.map +1 -0
- package/dist/tools/outline-tools.d.ts.map +1 -1
- package/dist/tools/outline-tools.js +20 -0
- package/dist/tools/outline-tools.js.map +1 -1
- package/dist/tools/pattern-tools.d.ts +8 -0
- package/dist/tools/pattern-tools.d.ts.map +1 -1
- package/dist/tools/pattern-tools.js +561 -3
- package/dist/tools/pattern-tools.js.map +1 -1
- package/dist/tools/perf-tools.d.ts +32 -0
- package/dist/tools/perf-tools.d.ts.map +1 -0
- package/dist/tools/perf-tools.js +227 -0
- package/dist/tools/perf-tools.js.map +1 -0
- package/dist/tools/php-tools.d.ts +176 -0
- package/dist/tools/php-tools.d.ts.map +1 -0
- package/dist/tools/php-tools.js +543 -0
- package/dist/tools/php-tools.js.map +1 -0
- package/dist/tools/prisma-schema-tools.d.ts +44 -0
- package/dist/tools/prisma-schema-tools.d.ts.map +1 -0
- package/dist/tools/prisma-schema-tools.js +358 -0
- package/dist/tools/prisma-schema-tools.js.map +1 -0
- package/dist/tools/project-tools.d.ts +115 -6
- package/dist/tools/project-tools.d.ts.map +1 -1
- package/dist/tools/project-tools.js +594 -217
- package/dist/tools/project-tools.js.map +1 -1
- package/dist/tools/pyproject-tools.d.ts +23 -0
- package/dist/tools/pyproject-tools.d.ts.map +1 -0
- package/dist/tools/pyproject-tools.js +133 -0
- package/dist/tools/pyproject-tools.js.map +1 -0
- package/dist/tools/pytest-tools.d.ts +20 -0
- package/dist/tools/pytest-tools.d.ts.map +1 -0
- package/dist/tools/pytest-tools.js +106 -0
- package/dist/tools/pytest-tools.js.map +1 -0
- package/dist/tools/python-callers.d.ts +28 -0
- package/dist/tools/python-callers.d.ts.map +1 -0
- package/dist/tools/python-callers.js +110 -0
- package/dist/tools/python-callers.js.map +1 -0
- package/dist/tools/python-circular-imports.d.ts +19 -0
- package/dist/tools/python-circular-imports.d.ts.map +1 -0
- package/dist/tools/python-circular-imports.js +126 -0
- package/dist/tools/python-circular-imports.js.map +1 -0
- package/dist/tools/python-deps-analyzer.d.ts +46 -0
- package/dist/tools/python-deps-analyzer.d.ts.map +1 -0
- package/dist/tools/python-deps-analyzer.js +227 -0
- package/dist/tools/python-deps-analyzer.js.map +1 -0
- package/dist/tools/query-tools.d.ts +23 -0
- package/dist/tools/query-tools.d.ts.map +1 -0
- package/dist/tools/query-tools.js +256 -0
- package/dist/tools/query-tools.js.map +1 -0
- package/dist/tools/react-tools.d.ts +218 -0
- package/dist/tools/react-tools.d.ts.map +1 -0
- package/dist/tools/react-tools.js +714 -0
- package/dist/tools/react-tools.js.map +1 -0
- package/dist/tools/report-tools.js +47 -0
- package/dist/tools/report-tools.js.map +1 -1
- package/dist/tools/review-diff-tools.d.ts +2 -6
- package/dist/tools/review-diff-tools.d.ts.map +1 -1
- package/dist/tools/review-diff-tools.js +51 -66
- package/dist/tools/review-diff-tools.js.map +1 -1
- package/dist/tools/room-tools.d.ts +36 -0
- package/dist/tools/room-tools.d.ts.map +1 -0
- package/dist/tools/room-tools.js +147 -0
- package/dist/tools/room-tools.js.map +1 -0
- package/dist/tools/route-tools.d.ts +27 -1
- package/dist/tools/route-tools.d.ts.map +1 -1
- package/dist/tools/route-tools.js +744 -18
- package/dist/tools/route-tools.js.map +1 -1
- package/dist/tools/ruff-tools.d.ts +32 -0
- package/dist/tools/ruff-tools.d.ts.map +1 -0
- package/dist/tools/ruff-tools.js +114 -0
- package/dist/tools/ruff-tools.js.map +1 -0
- package/dist/tools/search-ranker.d.ts.map +1 -1
- package/dist/tools/search-ranker.js +7 -0
- package/dist/tools/search-ranker.js.map +1 -1
- package/dist/tools/serialization-tools.d.ts +24 -0
- package/dist/tools/serialization-tools.d.ts.map +1 -0
- package/dist/tools/serialization-tools.js +156 -0
- package/dist/tools/serialization-tools.js.map +1 -0
- package/dist/tools/sql-tools.d.ts +234 -0
- package/dist/tools/sql-tools.d.ts.map +1 -0
- package/dist/tools/sql-tools.js +1037 -0
- package/dist/tools/sql-tools.js.map +1 -0
- package/dist/tools/status-tools.d.ts +10 -0
- package/dist/tools/status-tools.d.ts.map +1 -0
- package/dist/tools/status-tools.js +32 -0
- package/dist/tools/status-tools.js.map +1 -0
- package/dist/tools/symbol-tools.d.ts +19 -0
- package/dist/tools/symbol-tools.d.ts.map +1 -1
- package/dist/tools/symbol-tools.js +78 -4
- package/dist/tools/symbol-tools.js.map +1 -1
- package/dist/tools/test-impact-tools.d.ts +29 -0
- package/dist/tools/test-impact-tools.d.ts.map +1 -0
- package/dist/tools/test-impact-tools.js +156 -0
- package/dist/tools/test-impact-tools.js.map +1 -0
- package/dist/tools/typecheck-tools.d.ts +39 -0
- package/dist/tools/typecheck-tools.d.ts.map +1 -0
- package/dist/tools/typecheck-tools.js +191 -0
- package/dist/tools/typecheck-tools.js.map +1 -0
- package/dist/tools/wiring-tools.d.ts +19 -0
- package/dist/tools/wiring-tools.d.ts.map +1 -0
- package/dist/tools/wiring-tools.js +147 -0
- package/dist/tools/wiring-tools.js.map +1 -0
- package/dist/types.d.ts +9 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/framework-detect.d.ts +18 -2
- package/dist/utils/framework-detect.d.ts.map +1 -1
- package/dist/utils/framework-detect.js +150 -3
- package/dist/utils/framework-detect.js.map +1 -1
- package/dist/utils/import-graph.d.ts +36 -0
- package/dist/utils/import-graph.d.ts.map +1 -1
- package/dist/utils/import-graph.js +212 -9
- package/dist/utils/import-graph.js.map +1 -1
- package/dist/utils/language-detect.d.ts +21 -0
- package/dist/utils/language-detect.d.ts.map +1 -0
- package/dist/utils/language-detect.js +183 -0
- package/dist/utils/language-detect.js.map +1 -0
- package/dist/utils/nextjs-ast-readers.d.ts +44 -0
- package/dist/utils/nextjs-ast-readers.d.ts.map +1 -0
- package/dist/utils/nextjs-ast-readers.js +341 -0
- package/dist/utils/nextjs-ast-readers.js.map +1 -0
- package/dist/utils/nextjs-audit-cache.d.ts +51 -0
- package/dist/utils/nextjs-audit-cache.d.ts.map +1 -0
- package/dist/utils/nextjs-audit-cache.js +116 -0
- package/dist/utils/nextjs-audit-cache.js.map +1 -0
- package/dist/utils/nextjs-metadata-readers.d.ts +65 -0
- package/dist/utils/nextjs-metadata-readers.d.ts.map +1 -0
- package/dist/utils/nextjs-metadata-readers.js +447 -0
- package/dist/utils/nextjs-metadata-readers.js.map +1 -0
- package/dist/utils/nextjs.d.ts +42 -0
- package/dist/utils/nextjs.d.ts.map +1 -0
- package/dist/utils/nextjs.js +284 -0
- package/dist/utils/nextjs.js.map +1 -0
- package/dist/utils/python-import-resolver.d.ts +42 -0
- package/dist/utils/python-import-resolver.d.ts.map +1 -0
- package/dist/utils/python-import-resolver.js +101 -0
- package/dist/utils/python-import-resolver.js.map +1 -0
- package/dist/utils/python-imports.d.ts +28 -0
- package/dist/utils/python-imports.d.ts.map +1 -0
- package/dist/utils/python-imports.js +117 -0
- package/dist/utils/python-imports.js.map +1 -0
- package/dist/utils/react-alias.d.ts +15 -0
- package/dist/utils/react-alias.d.ts.map +1 -0
- package/dist/utils/react-alias.js +31 -0
- package/dist/utils/react-alias.js.map +1 -0
- package/dist/utils/test-file.d.ts.map +1 -1
- package/dist/utils/test-file.js +7 -0
- package/dist/utils/test-file.js.map +1 -1
- package/dist/utils/walk.d.ts +22 -0
- package/dist/utils/walk.d.ts.map +1 -1
- package/dist/utils/walk.js +70 -2
- package/dist/utils/walk.js.map +1 -1
- package/package.json +3 -2
- package/rules/codesift.md +34 -5
- package/rules/codesift.mdc +34 -5
- package/rules/codex.md +34 -5
- package/rules/gemini.md +34 -5
- package/src/parser/languages/tree-sitter-javascript.wasm +0 -0
- package/src/parser/languages/tree-sitter-kotlin.wasm +0 -0
- package/src/parser/languages/tree-sitter-php.wasm +0 -0
- package/src/parser/languages/tree-sitter-php_only.wasm +0 -0
- package/src/parser/languages/tree-sitter-python.wasm +0 -0
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* analyze_prisma_schema — AST-aware Prisma schema coverage report.
|
|
3
|
+
*
|
|
4
|
+
* Parses `schema.prisma` via @mrleebo/prisma-ast and produces a structured
|
|
5
|
+
* report covering FK index coverage, soft-delete detection, status-as-String
|
|
6
|
+
* code smells, and timestamp hygiene. Complements the regex-based extractor
|
|
7
|
+
* in src/parser/extractors/prisma.ts (which only catches top-level block
|
|
8
|
+
* names for the symbol index).
|
|
9
|
+
*/
|
|
10
|
+
import { readFile } from "node:fs/promises";
|
|
11
|
+
import { join } from "node:path";
|
|
12
|
+
import { getSchema, } from "@mrleebo/prisma-ast";
|
|
13
|
+
import { getCodeIndex } from "./index-tools.js";
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// Constants
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
const TIMESTAMP_CREATED = new Set(["createdAt", "created_at"]);
|
|
18
|
+
const TIMESTAMP_UPDATED = new Set(["updatedAt", "updated_at"]);
|
|
19
|
+
const SOFT_DELETE_NAMES = new Set(["deletedAt", "deleted_at"]);
|
|
20
|
+
const STATUS_LIKE_RE = /^(status|state|type|kind)$/i;
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// AST helpers — narrow types safely
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
function isModel(block) {
|
|
25
|
+
return block.type === "model";
|
|
26
|
+
}
|
|
27
|
+
function isEnum(block) {
|
|
28
|
+
return block.type === "enum";
|
|
29
|
+
}
|
|
30
|
+
function isField(prop) {
|
|
31
|
+
return (typeof prop === "object" &&
|
|
32
|
+
prop !== null &&
|
|
33
|
+
prop.type === "field");
|
|
34
|
+
}
|
|
35
|
+
function isBlockAttribute(prop) {
|
|
36
|
+
return (typeof prop === "object" &&
|
|
37
|
+
prop !== null &&
|
|
38
|
+
prop.type === "attribute" &&
|
|
39
|
+
prop.kind === "object");
|
|
40
|
+
}
|
|
41
|
+
function isFieldAttribute(attr) {
|
|
42
|
+
return (typeof attr === "object" &&
|
|
43
|
+
attr !== null &&
|
|
44
|
+
attr.type === "attribute" &&
|
|
45
|
+
attr.kind === "field");
|
|
46
|
+
}
|
|
47
|
+
function isKeyValue(value) {
|
|
48
|
+
return (typeof value === "object" &&
|
|
49
|
+
value !== null &&
|
|
50
|
+
value.type === "keyValue");
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Extract the primitive type name for a Field's `fieldType`. Relation fields
|
|
54
|
+
* have a string type (e.g. "User"); scalars also have string types ("String",
|
|
55
|
+
* "Int"). Func-typed fields (rare, e.g. Unsupported) return null.
|
|
56
|
+
*/
|
|
57
|
+
function getFieldTypeName(field) {
|
|
58
|
+
if (typeof field.fieldType === "string")
|
|
59
|
+
return field.fieldType;
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Pull string column names out of a Value that is expected to be an array of
|
|
64
|
+
* identifiers (the typical shape of `[authorId, createdAt]` in @@index,
|
|
65
|
+
* @@unique, or @relation(fields: [...])).
|
|
66
|
+
*/
|
|
67
|
+
function extractIdentifierArray(value) {
|
|
68
|
+
if (typeof value === "object" &&
|
|
69
|
+
value !== null &&
|
|
70
|
+
!Array.isArray(value) &&
|
|
71
|
+
value.type === "array") {
|
|
72
|
+
const args = value.args;
|
|
73
|
+
if (Array.isArray(args)) {
|
|
74
|
+
return args.filter((a) => typeof a === "string");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Given a field-level `@relation(...)` attribute, return the list of scalar FK
|
|
81
|
+
* column names from its `fields:` argument. Missing/empty when the field is
|
|
82
|
+
* the inverse side of a 1-to-many (no `fields:` key).
|
|
83
|
+
*/
|
|
84
|
+
function getRelationFkColumns(relationAttr) {
|
|
85
|
+
const args = relationAttr.args;
|
|
86
|
+
if (!args)
|
|
87
|
+
return [];
|
|
88
|
+
for (const arg of args) {
|
|
89
|
+
const v = arg.value;
|
|
90
|
+
if (isKeyValue(v) && v.key === "fields") {
|
|
91
|
+
return extractIdentifierArray(v.value);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return [];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Given a model-level `@@index([a, b])` or `@@unique([a, b])`, return the
|
|
98
|
+
* column list.
|
|
99
|
+
*/
|
|
100
|
+
function getBlockAttrColumns(blockAttr) {
|
|
101
|
+
const args = blockAttr.args;
|
|
102
|
+
if (!args || args.length === 0)
|
|
103
|
+
return [];
|
|
104
|
+
// First positional arg is the column array; named args like `name:` come
|
|
105
|
+
// later and should be ignored here.
|
|
106
|
+
const first = args[0];
|
|
107
|
+
if (!first)
|
|
108
|
+
return [];
|
|
109
|
+
const v = first.value;
|
|
110
|
+
if (isKeyValue(v))
|
|
111
|
+
return extractIdentifierArray(v.value);
|
|
112
|
+
return extractIdentifierArray(v);
|
|
113
|
+
}
|
|
114
|
+
// ---------------------------------------------------------------------------
|
|
115
|
+
// Schema file resolution
|
|
116
|
+
// ---------------------------------------------------------------------------
|
|
117
|
+
async function resolveSchemaPath(repoRoot, indexFiles, explicit) {
|
|
118
|
+
if (explicit) {
|
|
119
|
+
return {
|
|
120
|
+
absolute: join(repoRoot, explicit),
|
|
121
|
+
relative: explicit,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
const match = indexFiles.find((f) => f.path.endsWith(".prisma"));
|
|
125
|
+
if (!match) {
|
|
126
|
+
throw new Error("No Prisma schema found in index. Pass options.schema_path or index a .prisma file first.");
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
absolute: join(repoRoot, match.path),
|
|
130
|
+
relative: match.path,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
function analyzeModel(model, enumNames) {
|
|
134
|
+
const warnings = [];
|
|
135
|
+
let fieldCount = 0;
|
|
136
|
+
let hasId = false;
|
|
137
|
+
let hasCreatedAt = false;
|
|
138
|
+
let hasUpdatedAt = false;
|
|
139
|
+
let hasSoftDelete = false;
|
|
140
|
+
const fkColumns = [];
|
|
141
|
+
const usesEnumFields = [];
|
|
142
|
+
const statusLikeStringFields = [];
|
|
143
|
+
const compositeIndexColumns = [];
|
|
144
|
+
const singleIndexColumns = [];
|
|
145
|
+
const uniqueConstraintColumns = [];
|
|
146
|
+
// --- pass 1: fields ---
|
|
147
|
+
for (const prop of model.properties) {
|
|
148
|
+
if (!isField(prop))
|
|
149
|
+
continue;
|
|
150
|
+
fieldCount++;
|
|
151
|
+
const field = prop;
|
|
152
|
+
const typeName = getFieldTypeName(field);
|
|
153
|
+
// id detection — either @id attribute or name === "id"
|
|
154
|
+
if (field.name === "id" || hasFieldAttribute(field, "id")) {
|
|
155
|
+
hasId = true;
|
|
156
|
+
}
|
|
157
|
+
// timestamps
|
|
158
|
+
if (TIMESTAMP_CREATED.has(field.name))
|
|
159
|
+
hasCreatedAt = true;
|
|
160
|
+
if (TIMESTAMP_UPDATED.has(field.name))
|
|
161
|
+
hasUpdatedAt = true;
|
|
162
|
+
if (SOFT_DELETE_NAMES.has(field.name))
|
|
163
|
+
hasSoftDelete = true;
|
|
164
|
+
// @relation → FK columns
|
|
165
|
+
const relationAttr = findFieldAttribute(field, "relation");
|
|
166
|
+
if (relationAttr) {
|
|
167
|
+
for (const col of getRelationFkColumns(relationAttr)) {
|
|
168
|
+
if (!fkColumns.includes(col))
|
|
169
|
+
fkColumns.push(col);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// enum-typed fields
|
|
173
|
+
if (typeName && enumNames.has(typeName)) {
|
|
174
|
+
usesEnumFields.push(field.name);
|
|
175
|
+
}
|
|
176
|
+
// status-like String fields
|
|
177
|
+
if (typeName === "String" && STATUS_LIKE_RE.test(field.name)) {
|
|
178
|
+
statusLikeStringFields.push(field.name);
|
|
179
|
+
}
|
|
180
|
+
// single-column @unique on field
|
|
181
|
+
if (hasFieldAttribute(field, "unique")) {
|
|
182
|
+
uniqueConstraintColumns.push([field.name]);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// --- pass 2: model-level block attributes (@@index, @@unique) ---
|
|
186
|
+
for (const prop of model.properties) {
|
|
187
|
+
if (!isBlockAttribute(prop))
|
|
188
|
+
continue;
|
|
189
|
+
const cols = getBlockAttrColumns(prop);
|
|
190
|
+
if (cols.length === 0)
|
|
191
|
+
continue;
|
|
192
|
+
if (prop.name === "index") {
|
|
193
|
+
if (cols.length > 1) {
|
|
194
|
+
compositeIndexColumns.push(cols);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
const only = cols[0];
|
|
198
|
+
if (only)
|
|
199
|
+
singleIndexColumns.push(only);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
else if (prop.name === "unique") {
|
|
203
|
+
uniqueConstraintColumns.push(cols);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// --- FK coverage ---
|
|
207
|
+
// A FK is "covered" if some @@index starts with it (first-column match is
|
|
208
|
+
// what the DB planner uses for join seeks) OR some @@unique starts with it.
|
|
209
|
+
const indexPrefixes = new Set();
|
|
210
|
+
for (const cols of compositeIndexColumns) {
|
|
211
|
+
const first = cols[0];
|
|
212
|
+
if (first)
|
|
213
|
+
indexPrefixes.add(first);
|
|
214
|
+
}
|
|
215
|
+
for (const col of singleIndexColumns)
|
|
216
|
+
indexPrefixes.add(col);
|
|
217
|
+
for (const cols of uniqueConstraintColumns) {
|
|
218
|
+
const first = cols[0];
|
|
219
|
+
if (first)
|
|
220
|
+
indexPrefixes.add(first);
|
|
221
|
+
}
|
|
222
|
+
const fkColumnsWithIndex = [];
|
|
223
|
+
const fkColumnsWithoutIndex = [];
|
|
224
|
+
for (const col of fkColumns) {
|
|
225
|
+
if (indexPrefixes.has(col))
|
|
226
|
+
fkColumnsWithIndex.push(col);
|
|
227
|
+
else
|
|
228
|
+
fkColumnsWithoutIndex.push(col);
|
|
229
|
+
}
|
|
230
|
+
// --- warnings ---
|
|
231
|
+
for (const col of fkColumnsWithoutIndex) {
|
|
232
|
+
warnings.push(`Model ${model.name} has FK '${col}' without @@index — full table scan on join.`);
|
|
233
|
+
}
|
|
234
|
+
for (const col of statusLikeStringFields) {
|
|
235
|
+
warnings.push(`Model ${model.name}.${col} is a String field named like an enum — consider converting to a Prisma enum.`);
|
|
236
|
+
}
|
|
237
|
+
if (!hasCreatedAt) {
|
|
238
|
+
warnings.push(`Model ${model.name} has no createdAt timestamp — audit trail may be missing.`);
|
|
239
|
+
}
|
|
240
|
+
if (!hasUpdatedAt) {
|
|
241
|
+
warnings.push(`Model ${model.name} has no updatedAt timestamp — mutation history may be lost.`);
|
|
242
|
+
}
|
|
243
|
+
const info = {
|
|
244
|
+
name: model.name,
|
|
245
|
+
field_count: fieldCount,
|
|
246
|
+
has_id: hasId,
|
|
247
|
+
has_created_at: hasCreatedAt,
|
|
248
|
+
has_updated_at: hasUpdatedAt,
|
|
249
|
+
has_soft_delete: hasSoftDelete,
|
|
250
|
+
fk_columns: fkColumns,
|
|
251
|
+
fk_columns_with_index: fkColumnsWithIndex,
|
|
252
|
+
fk_columns_without_index: fkColumnsWithoutIndex,
|
|
253
|
+
composite_indexes: compositeIndexColumns.map((cols) => `[${cols.join(", ")}]`),
|
|
254
|
+
unique_constraints: uniqueConstraintColumns.map((cols) => `[${cols.join(", ")}]`),
|
|
255
|
+
uses_enum_fields: usesEnumFields,
|
|
256
|
+
status_like_string_fields: statusLikeStringFields,
|
|
257
|
+
};
|
|
258
|
+
return { info, warnings };
|
|
259
|
+
}
|
|
260
|
+
function hasFieldAttribute(field, name) {
|
|
261
|
+
return findFieldAttribute(field, name) !== null;
|
|
262
|
+
}
|
|
263
|
+
function findFieldAttribute(field, name) {
|
|
264
|
+
const attrs = field.attributes;
|
|
265
|
+
if (!attrs)
|
|
266
|
+
return null;
|
|
267
|
+
for (const attr of attrs) {
|
|
268
|
+
if (isFieldAttribute(attr) && attr.name === name)
|
|
269
|
+
return attr;
|
|
270
|
+
}
|
|
271
|
+
return null;
|
|
272
|
+
}
|
|
273
|
+
// ---------------------------------------------------------------------------
|
|
274
|
+
// Tool entry point
|
|
275
|
+
// ---------------------------------------------------------------------------
|
|
276
|
+
export async function analyzePrismaSchema(repo, options) {
|
|
277
|
+
const index = await getCodeIndex(repo);
|
|
278
|
+
if (!index) {
|
|
279
|
+
throw new Error(`Repository "${repo}" not found. Index it first with index_folder.`);
|
|
280
|
+
}
|
|
281
|
+
const { absolute, relative } = await resolveSchemaPath(index.root, index.files, options?.schema_path);
|
|
282
|
+
let source;
|
|
283
|
+
try {
|
|
284
|
+
source = await readFile(absolute, "utf-8");
|
|
285
|
+
}
|
|
286
|
+
catch (err) {
|
|
287
|
+
throw new Error(`Failed to read Prisma schema at ${relative}: ${err.message}`);
|
|
288
|
+
}
|
|
289
|
+
const schema = getSchema(source);
|
|
290
|
+
// First pass: collect enum names so model analysis can classify enum fields.
|
|
291
|
+
const enumNames = new Set();
|
|
292
|
+
for (const block of schema.list) {
|
|
293
|
+
if (isEnum(block))
|
|
294
|
+
enumNames.add(block.name);
|
|
295
|
+
}
|
|
296
|
+
const models = [];
|
|
297
|
+
const allWarnings = [];
|
|
298
|
+
for (const block of schema.list) {
|
|
299
|
+
if (!isModel(block))
|
|
300
|
+
continue;
|
|
301
|
+
const { info, warnings } = analyzeModel(block, enumNames);
|
|
302
|
+
models.push(info);
|
|
303
|
+
allWarnings.push(...warnings);
|
|
304
|
+
}
|
|
305
|
+
// --- aggregate totals ---
|
|
306
|
+
let totalFk = 0;
|
|
307
|
+
let totalFkWithIndex = 0;
|
|
308
|
+
let totalFkWithoutIndex = 0;
|
|
309
|
+
let softDeleteModels = 0;
|
|
310
|
+
let totalComposite = 0;
|
|
311
|
+
let totalSingle = 0;
|
|
312
|
+
for (const m of models) {
|
|
313
|
+
totalFk += m.fk_columns.length;
|
|
314
|
+
totalFkWithIndex += m.fk_columns_with_index.length;
|
|
315
|
+
totalFkWithoutIndex += m.fk_columns_without_index.length;
|
|
316
|
+
if (m.has_soft_delete)
|
|
317
|
+
softDeleteModels++;
|
|
318
|
+
totalComposite += m.composite_indexes.length;
|
|
319
|
+
// single indexes = @@index entries that aren't composite; we didn't retain
|
|
320
|
+
// them per-model in the output, so recompute from fk_with_index that came
|
|
321
|
+
// from single indexes is lossy. Just count via FK coverage heuristic:
|
|
322
|
+
// any single-col @@index contributed here. For totals we recount below.
|
|
323
|
+
}
|
|
324
|
+
// Recount single indexes across models by examining the info arrays we kept.
|
|
325
|
+
// composite_indexes only holds multi-column ones, so single-column @@index
|
|
326
|
+
// counts need a separate walk — do it on the already-analyzed blocks.
|
|
327
|
+
for (const block of schema.list) {
|
|
328
|
+
if (!isModel(block))
|
|
329
|
+
continue;
|
|
330
|
+
for (const prop of block.properties) {
|
|
331
|
+
if (!isBlockAttribute(prop))
|
|
332
|
+
continue;
|
|
333
|
+
if (prop.name !== "index")
|
|
334
|
+
continue;
|
|
335
|
+
const cols = getBlockAttrColumns(prop);
|
|
336
|
+
if (cols.length === 1)
|
|
337
|
+
totalSingle++;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
const coveragePct = totalFk === 0 ? 100 : Math.round((totalFkWithIndex / totalFk) * 1000) / 10;
|
|
341
|
+
return {
|
|
342
|
+
schema_path: relative,
|
|
343
|
+
model_count: models.length,
|
|
344
|
+
enum_count: enumNames.size,
|
|
345
|
+
models,
|
|
346
|
+
totals: {
|
|
347
|
+
fk_columns: totalFk,
|
|
348
|
+
fk_with_index: totalFkWithIndex,
|
|
349
|
+
fk_without_index: totalFkWithoutIndex,
|
|
350
|
+
fk_index_coverage_pct: coveragePct,
|
|
351
|
+
soft_delete_models: softDeleteModels,
|
|
352
|
+
composite_indexes: totalComposite,
|
|
353
|
+
single_indexes: totalSingle,
|
|
354
|
+
},
|
|
355
|
+
warnings: allWarnings,
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=prisma-schema-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prisma-schema-tools.js","sourceRoot":"","sources":["../../src/tools/prisma-schema-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,17 +5,19 @@
|
|
|
5
5
|
* framework-specific conventions. Produces a JSON profile conforming to
|
|
6
6
|
* the zuvo project-profile schema v1.0.
|
|
7
7
|
*/
|
|
8
|
-
import type { CodeIndex } from "../types.js";
|
|
8
|
+
import type { CodeIndex, CodeSymbol } from "../types.js";
|
|
9
9
|
export declare const EXTRACTOR_VERSIONS: {
|
|
10
10
|
readonly stack_detector: "1.0.0";
|
|
11
11
|
readonly file_classifier: "1.0.0";
|
|
12
|
-
readonly hono: "
|
|
12
|
+
readonly hono: "2.0.0";
|
|
13
13
|
readonly nestjs: "1.0.0";
|
|
14
14
|
readonly nextjs: "1.0.0";
|
|
15
15
|
readonly express: "1.0.0";
|
|
16
16
|
readonly react: "1.0.0";
|
|
17
17
|
readonly python: "1.0.0";
|
|
18
18
|
readonly php: "1.0.0";
|
|
19
|
+
readonly astro: "1.0.0";
|
|
20
|
+
readonly kotlin: "1.0.0";
|
|
19
21
|
};
|
|
20
22
|
export interface ProjectProfile {
|
|
21
23
|
version: string;
|
|
@@ -77,6 +79,7 @@ export interface StackInfo {
|
|
|
77
79
|
language_version: string | null;
|
|
78
80
|
test_runner: string | null;
|
|
79
81
|
package_manager: string | null;
|
|
82
|
+
build_tool: string | null;
|
|
80
83
|
monorepo: {
|
|
81
84
|
tool: string | null;
|
|
82
85
|
workspaces: string[];
|
|
@@ -144,11 +147,23 @@ export interface NestConventions {
|
|
|
144
147
|
global_guards: NestProviderEntry[];
|
|
145
148
|
global_filters: NestProviderEntry[];
|
|
146
149
|
global_pipes: NestProviderEntry[];
|
|
150
|
+
global_interceptors: NestProviderEntry[];
|
|
147
151
|
controllers: string[];
|
|
148
152
|
throttler: {
|
|
149
153
|
ttl: number;
|
|
150
154
|
limit: number;
|
|
151
155
|
} | null;
|
|
156
|
+
/** G1: middleware.configure(consumer) chains */
|
|
157
|
+
middleware_chains: MiddlewareChainEntry[];
|
|
158
|
+
}
|
|
159
|
+
export interface MiddlewareChainEntry {
|
|
160
|
+
middleware: string;
|
|
161
|
+
routes: Array<{
|
|
162
|
+
path: string;
|
|
163
|
+
method?: string;
|
|
164
|
+
}>;
|
|
165
|
+
file: string;
|
|
166
|
+
line: number;
|
|
152
167
|
}
|
|
153
168
|
export interface NestModuleEntry {
|
|
154
169
|
name: string;
|
|
@@ -156,6 +171,10 @@ export interface NestModuleEntry {
|
|
|
156
171
|
line: number;
|
|
157
172
|
imported_from: string | null;
|
|
158
173
|
is_global: boolean;
|
|
174
|
+
/** G2: entity class names from TypeOrmModule.forFeature([...]) / MongooseModule.forFeature([...]) */
|
|
175
|
+
entities?: string[];
|
|
176
|
+
/** G2: top-level config keys from forRoot({ ... }) */
|
|
177
|
+
dynamic_config_keys?: string[];
|
|
159
178
|
}
|
|
160
179
|
export interface NestProviderEntry {
|
|
161
180
|
name: string;
|
|
@@ -184,12 +203,27 @@ export interface GenerationMetadata {
|
|
|
184
203
|
}
|
|
185
204
|
export declare function detectStack(projectRoot: string): Promise<StackInfo>;
|
|
186
205
|
export declare function classifyFiles(index: CodeIndex): FileClassifications;
|
|
187
|
-
export declare function
|
|
206
|
+
export declare function getHonoFallbackCount(): number;
|
|
207
|
+
/**
|
|
208
|
+
* Extract Hono conventions from an orchestrator file.
|
|
209
|
+
*
|
|
210
|
+
* Uses the tree-sitter AST extractor (HonoExtractor) and adapts the result
|
|
211
|
+
* to the legacy Conventions shape. Falls back to the regex-based legacy
|
|
212
|
+
* implementation on failure (with counter tracking for observability).
|
|
213
|
+
*
|
|
214
|
+
* Kill switch: set CODESIFT_LEGACY_HONO=1 to force legacy extractor.
|
|
215
|
+
*/
|
|
216
|
+
export declare function extractHonoConventions(source: string, filePath: string): Promise<Conventions>;
|
|
188
217
|
export declare function extractNestConventions(source: string, filePath: string): NestConventions;
|
|
218
|
+
/**
|
|
219
|
+
* G1: Parse `configure(consumer: MiddlewareConsumer) { ... }` blocks.
|
|
220
|
+
* Extracts consumer.apply(Middleware).forRoutes(...) chains.
|
|
221
|
+
*/
|
|
222
|
+
export declare function parseMiddlewareChains(source: string, filePath: string): MiddlewareChainEntry[];
|
|
189
223
|
export interface NextConventions {
|
|
190
224
|
pages: {
|
|
191
225
|
path: string;
|
|
192
|
-
type: "page" | "layout" | "loading" | "error";
|
|
226
|
+
type: "page" | "layout" | "loading" | "error" | "not-found" | "global-error" | "default" | "template";
|
|
193
227
|
}[];
|
|
194
228
|
middleware: {
|
|
195
229
|
file: string;
|
|
@@ -203,6 +237,8 @@ export interface NextConventions {
|
|
|
203
237
|
services_count: number;
|
|
204
238
|
inngest_functions: string[];
|
|
205
239
|
webhooks: string[];
|
|
240
|
+
client_component_count: number;
|
|
241
|
+
server_action_count: number;
|
|
206
242
|
config: {
|
|
207
243
|
app_router: boolean;
|
|
208
244
|
src_dir: boolean;
|
|
@@ -234,15 +270,32 @@ export interface ReactConventions {
|
|
|
234
270
|
state_management: string | null;
|
|
235
271
|
routing: string | null;
|
|
236
272
|
ui_library: string | null;
|
|
273
|
+
form_library: string | null;
|
|
274
|
+
/** File-path-based counts (coarse, matches /pages/, /components/, /hooks/ dirs) */
|
|
237
275
|
component_count: {
|
|
238
276
|
pages: number;
|
|
239
277
|
components: number;
|
|
240
278
|
hooks: number;
|
|
241
279
|
};
|
|
280
|
+
/** Actual count from symbol kinds (requires Wave 1 extractor) */
|
|
281
|
+
actual_component_count: number;
|
|
282
|
+
/** Actual count from symbol kinds */
|
|
283
|
+
actual_hook_count: number;
|
|
284
|
+
/** Top hooks called across all components, sorted by usage */
|
|
285
|
+
hook_usage: {
|
|
286
|
+
name: string;
|
|
287
|
+
count: number;
|
|
288
|
+
}[];
|
|
289
|
+
/** Count of components wrapped in React.memo/forwardRef/lazy */
|
|
290
|
+
component_patterns: {
|
|
291
|
+
memo: number;
|
|
292
|
+
forwardRef: number;
|
|
293
|
+
lazy: number;
|
|
294
|
+
};
|
|
242
295
|
}
|
|
243
296
|
export declare function extractReactConventions(files: {
|
|
244
297
|
path: string;
|
|
245
|
-
}[], deps: Record<string, string
|
|
298
|
+
}[], deps: Record<string, string>, symbols?: CodeSymbol[]): ReactConventions;
|
|
246
299
|
export interface PythonConventions {
|
|
247
300
|
framework_type: "fastapi" | "django" | "flask" | null;
|
|
248
301
|
routers: {
|
|
@@ -275,6 +328,33 @@ export interface PhpConventions {
|
|
|
275
328
|
export declare function extractPhpConventions(files: {
|
|
276
329
|
path: string;
|
|
277
330
|
}[]): PhpConventions;
|
|
331
|
+
export interface Yii2Conventions extends PhpConventions {
|
|
332
|
+
framework_type: "yii2";
|
|
333
|
+
modules: {
|
|
334
|
+
name: string;
|
|
335
|
+
path: string;
|
|
336
|
+
}[];
|
|
337
|
+
widgets: {
|
|
338
|
+
name: string;
|
|
339
|
+
path: string;
|
|
340
|
+
}[];
|
|
341
|
+
behaviors: {
|
|
342
|
+
name: string;
|
|
343
|
+
path: string;
|
|
344
|
+
}[];
|
|
345
|
+
components: {
|
|
346
|
+
name: string;
|
|
347
|
+
path: string;
|
|
348
|
+
}[];
|
|
349
|
+
assets: {
|
|
350
|
+
name: string;
|
|
351
|
+
path: string;
|
|
352
|
+
}[];
|
|
353
|
+
config_files: string[];
|
|
354
|
+
}
|
|
355
|
+
export declare function extractYii2Conventions(files: {
|
|
356
|
+
path: string;
|
|
357
|
+
}[]): Yii2Conventions;
|
|
278
358
|
export declare function analyzeProject(repoName: string, _options?: {
|
|
279
359
|
force?: boolean | undefined;
|
|
280
360
|
}): Promise<ProfileSummary>;
|
|
@@ -304,5 +384,34 @@ export interface ProfileSummary {
|
|
|
304
384
|
git_health: GitHealth | null;
|
|
305
385
|
duration_ms: number;
|
|
306
386
|
}
|
|
307
|
-
export declare function
|
|
387
|
+
export declare function buildConventionsSummary(profile: ProjectProfile): ProfileSummary["conventions_summary"];
|
|
388
|
+
/**
|
|
389
|
+
* Languages with a tree-sitter parser extractor — these get symbol-level
|
|
390
|
+
* indexing (search_symbols, get_file_outline, get_symbol, find_references, etc.).
|
|
391
|
+
*/
|
|
392
|
+
export declare const PARSER_LANGUAGES: readonly ["typescript", "javascript", "python", "go", "rust", "php", "kotlin", "prisma", "markdown", "astro", "sql", "sql-jinja"];
|
|
393
|
+
/**
|
|
394
|
+
* Languages indexed as FileEntry (so get_file_tree and search_text with
|
|
395
|
+
* file_pattern work) but WITHOUT symbol extraction. Ripgrep-backed search_text
|
|
396
|
+
* and scan_secrets work on these via filesystem. Upgrade path: add a
|
|
397
|
+
* tree-sitter grammar .wasm and extractor to move a language to PARSER_LANGUAGES.
|
|
398
|
+
*/
|
|
399
|
+
export declare const TEXT_STUB_LANGUAGES: readonly ["swift", "dart", "scala", "clojure", "elixir", "lua", "zig", "nim", "gradle", "sbt"];
|
|
400
|
+
export interface ExtractorVersionsResponse {
|
|
401
|
+
/** Tree-sitter language parsers — affect symbol-based tools only */
|
|
402
|
+
parser_languages: readonly string[];
|
|
403
|
+
/** Indexed (file listing + text search) but no symbol extraction yet */
|
|
404
|
+
text_stub_languages: readonly string[];
|
|
405
|
+
/** Framework detectors used by analyze_project (project profile) */
|
|
406
|
+
profile_frameworks: Record<string, string>;
|
|
407
|
+
/**
|
|
408
|
+
* Important note for agents: text-based tools work on ALL files regardless
|
|
409
|
+
* of parser_languages. Missing a language here does NOT mean CodeSift is
|
|
410
|
+
* useless for that project — it just means no symbol indexing.
|
|
411
|
+
*/
|
|
412
|
+
note: string;
|
|
413
|
+
/** Backward compat: flat version dict matching legacy shape */
|
|
414
|
+
versions: Record<string, string>;
|
|
415
|
+
}
|
|
416
|
+
export declare function getExtractorVersions(): ExtractorVersionsResponse;
|
|
308
417
|
//# sourceMappingURL=project-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-tools.d.ts","sourceRoot":"","sources":["../../src/tools/project-tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"project-tools.d.ts","sourceRoot":"","sources":["../../src/tools/project-tools.ts"],"names":[],"mappings":"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"}
|