octocode-cli 1.2.8 → 1.2.10
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 +45 -38
- package/out/octocode-cli.js +73 -11763
- package/package.json +35 -36
- package/skills/README.md +42 -114
- package/skills/{octocode-code-engineer → octocode-engineer}/.claude/settings.local.json +2 -1
- package/skills/octocode-engineer/README.md +99 -0
- package/skills/octocode-engineer/SKILL.md +413 -0
- package/skills/octocode-engineer/build.mjs +29 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/eslint.config.mjs +3 -13
- package/skills/{octocode-code-engineer → octocode-engineer}/package.json +28 -27
- package/skills/octocode-engineer/references/ast-reference.md +166 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/references/cli-reference.md +80 -6
- package/skills/octocode-engineer/references/externals.md +86 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/references/output-files.md +46 -6
- package/skills/octocode-engineer/references/quality-indicators.md +202 -0
- package/skills/octocode-engineer/references/tool-workflows.md +298 -0
- package/skills/octocode-engineer/references/validation-playbooks.md +99 -0
- package/skills/octocode-engineer/scripts/ast/search.js +45 -0
- package/skills/octocode-engineer/scripts/ast/tree-search.js +27 -0
- package/skills/octocode-engineer/scripts/index.js +173 -0
- package/skills/octocode-engineer/scripts/run.js +179 -0
- package/skills/octocode-engineer/src/analysis/dependencies.ts +378 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/discovery.test.ts +57 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/discovery.ts +43 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/search.test.ts +113 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/search.ts +64 -1
- package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/tree-sitter.test.ts +118 -2
- package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/tree-sitter.ts +65 -3
- package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/ts-analyzer.test.ts +281 -1
- package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/ts-analyzer.ts +173 -3
- package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/security.test.ts +73 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/security.ts +62 -4
- package/skills/octocode-engineer/src/detector-gating.test.ts +59 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/code-quality.ts +342 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/index.ts +8 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/index.test.ts +565 -11
- package/skills/octocode-engineer/src/index.ts +468 -0
- package/skills/octocode-engineer/src/pipeline/affected.test.ts +147 -0
- package/skills/octocode-engineer/src/pipeline/affected.ts +68 -0
- package/skills/octocode-engineer/src/pipeline/baseline.test.ts +276 -0
- package/skills/octocode-engineer/src/pipeline/baseline.ts +76 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline/cli.test.ts +300 -53
- package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline/cli.ts +180 -36
- package/skills/octocode-engineer/src/pipeline/config-loader.test.ts +264 -0
- package/skills/octocode-engineer/src/pipeline/config-loader.ts +109 -0
- package/skills/octocode-engineer/src/pipeline/create-options.ts +55 -0
- package/skills/octocode-engineer/src/pipeline/health-score.test.ts +65 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline/main.ts +130 -17
- package/skills/octocode-engineer/src/pipeline/progress.ts +51 -0
- package/skills/octocode-engineer/src/pipeline/reporters.test.ts +155 -0
- package/skills/octocode-engineer/src/pipeline/reporters.ts +64 -0
- package/skills/octocode-engineer/src/reporting/graph-features.test.ts +279 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/reporting/output-contract.test.ts +6 -0
- package/skills/octocode-engineer/src/reporting/summary-md.test.ts +1066 -0
- package/skills/octocode-engineer/src/reporting/summary-md.ts +1604 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/reporting/writer.ts +136 -13
- package/skills/octocode-engineer/src/run.ts +78 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/sanity.test.ts +1 -1
- package/skills/octocode-engineer/src/types/analysis.ts +25 -0
- package/skills/octocode-engineer/src/types/collectors.ts +134 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/types/constants.ts +75 -41
- package/skills/octocode-engineer/src/types/core.ts +203 -0
- package/skills/octocode-engineer/src/types/dependency.ts +215 -0
- package/skills/octocode-engineer/src/types/file-entry.ts +108 -0
- package/skills/octocode-engineer/src/types/findings.ts +105 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/src/types/index.ts +60 -30
- package/skills/octocode-engineer/src/types/tree-sitter.ts +38 -0
- package/skills/{octocode-code-engineer → octocode-engineer}/tsconfig.json +1 -0
- package/skills/octocode-research/.octocode/scan/.cache/analysis-cache.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/architecture.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/ast-trees.txt +5566 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/code-quality.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/dead-code.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/file-inventory.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/findings.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/graph.md +189 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/security.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/summary.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/summary.md +265 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/architecture.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/ast-trees.txt +5555 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/code-quality.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/dead-code.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/file-inventory.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/findings.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/graph.md +190 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/security.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/summary.json +1 -0
- package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/summary.md +265 -0
- package/skills/octocode-research/CHANGELOG.md +60 -0
- package/skills/octocode-research/README.md +102 -388
- package/skills/octocode-research/SKILL.md +169 -498
- package/skills/octocode-research/package.json +19 -31
- package/skills/octocode-research/references/PARALLEL_AGENT_PROTOCOL.md +19 -0
- package/skills/octocode-research/references/SESSION_MANAGEMENT.md +38 -0
- package/skills/octocode-research/scripts/server-init.js +1 -1
- package/skills/octocode-research/scripts/server.d.ts +2 -1
- package/skills/octocode-research/scripts/server.js +329 -233
- package/skills/octocode-research/src/__tests__/integration/promptsRoutes.test.ts +180 -0
- package/skills/octocode-research/src/__tests__/integration/serverHttp.test.ts +221 -0
- package/skills/octocode-research/src/__tests__/integration/serverLifecycle.test.ts +194 -0
- package/skills/octocode-research/src/__tests__/integration/toolsRoutes.test.ts +501 -0
- package/skills/octocode-research/src/__tests__/unit/readiness.test.ts +61 -0
- package/skills/octocode-research/src/__tests__/unit/resilience.test.ts +192 -0
- package/skills/octocode-research/src/__tests__/unit/responseFactory.test.ts +172 -0
- package/skills/octocode-research/src/__tests__/unit/responseParser.test.ts +288 -0
- package/skills/octocode-research/src/__tests__/unit/schemas.test.ts +509 -0
- package/skills/octocode-research/src/index.ts +4 -124
- package/skills/octocode-research/src/middleware/queryParser.ts +0 -26
- package/skills/octocode-research/src/routes/lsp.ts +58 -59
- package/skills/octocode-research/src/routes/package.ts +35 -65
- package/skills/octocode-research/src/routes/prompts.ts +3 -3
- package/skills/octocode-research/src/routes/tools.ts +8 -20
- package/skills/octocode-research/src/server-init.ts +30 -237
- package/skills/octocode-research/src/server.ts +50 -23
- package/skills/octocode-research/src/types/errorGuards.ts +9 -80
- package/skills/octocode-research/src/types/guards.ts +0 -28
- package/skills/octocode-research/src/types/mcp.ts +11 -66
- package/skills/octocode-research/src/types/responses.ts +11 -129
- package/skills/octocode-research/src/utils/circuitBreaker.ts +0 -21
- package/skills/octocode-research/src/utils/logger.ts +1 -97
- package/skills/octocode-research/src/utils/resilience.ts +2 -12
- package/skills/octocode-research/src/utils/responseFactory.ts +0 -42
- package/skills/octocode-research/src/utils/responseParser.ts +3 -25
- package/skills/octocode-research/src/utils/retry.ts +0 -63
- package/skills/octocode-research/src/utils/routeFactory.ts +1 -1
- package/skills/octocode-research/src/validation/httpPreprocess.ts +0 -3
- package/skills/octocode-research/src/validation/index.ts +0 -1
- package/skills/octocode-research/src/validation/schemas.ts +0 -63
- package/skills/octocode-research/src/validation/toolCallSchema.ts +3 -3
- package/skills/octocode-research/tsdown.config.ts +4 -0
- package/skills/octocode-research/vitest.config.ts +3 -0
- package/skills/octocode-code-engineer/.plan/VALIDATED_PLAN.md +0 -223
- package/skills/octocode-code-engineer/README.md +0 -178
- package/skills/octocode-code-engineer/SKILL.md +0 -418
- package/skills/octocode-code-engineer/minify-scripts.mjs +0 -32
- package/skills/octocode-code-engineer/references/agent-ast-reading-rfc.md +0 -95
- package/skills/octocode-code-engineer/references/architecture-techniques.md +0 -121
- package/skills/octocode-code-engineer/references/ast-search.md +0 -210
- package/skills/octocode-code-engineer/references/ast-tree-search.md +0 -151
- package/skills/octocode-code-engineer/references/concepts.md +0 -107
- package/skills/octocode-code-engineer/references/finding-categories.md +0 -128
- package/skills/octocode-code-engineer/references/improvement-roadmap.md +0 -304
- package/skills/octocode-code-engineer/references/playbooks.md +0 -204
- package/skills/octocode-code-engineer/references/present-results.md +0 -136
- package/skills/octocode-code-engineer/references/tool-workflows.md +0 -566
- package/skills/octocode-code-engineer/references/validate-investigate.md +0 -225
- package/skills/octocode-code-engineer/scripts/analysis/dependencies.js +0 -1
- package/skills/octocode-code-engineer/scripts/analysis/dependency-summary.js +0 -1
- package/skills/octocode-code-engineer/scripts/analysis/discovery.js +0 -1
- package/skills/octocode-code-engineer/scripts/analysis/graph-analytics.js +0 -1
- package/skills/octocode-code-engineer/scripts/analysis/semantic.js +0 -1
- package/skills/octocode-code-engineer/scripts/ast/helpers.js +0 -1
- package/skills/octocode-code-engineer/scripts/ast/metrics.js +0 -1
- package/skills/octocode-code-engineer/scripts/ast/search.js +0 -2
- package/skills/octocode-code-engineer/scripts/ast/tree-search.js +0 -2
- package/skills/octocode-code-engineer/scripts/ast/tree-sitter.js +0 -1
- package/skills/octocode-code-engineer/scripts/ast/ts-analyzer.js +0 -1
- package/skills/octocode-code-engineer/scripts/collectors/chains.js +0 -1
- package/skills/octocode-code-engineer/scripts/collectors/effects.js +0 -1
- package/skills/octocode-code-engineer/scripts/collectors/input-sources.js +0 -1
- package/skills/octocode-code-engineer/scripts/collectors/performance.js +0 -1
- package/skills/octocode-code-engineer/scripts/collectors/prototype-pollution.js +0 -1
- package/skills/octocode-code-engineer/scripts/collectors/security.js +0 -1
- package/skills/octocode-code-engineer/scripts/collectors/test-profile.js +0 -1
- package/skills/octocode-code-engineer/scripts/common/is-direct-run.js +0 -1
- package/skills/octocode-code-engineer/scripts/common/utils.js +0 -1
- package/skills/octocode-code-engineer/scripts/detectors/code-quality.js +0 -1
- package/skills/octocode-code-engineer/scripts/detectors/cohesion.js +0 -1
- package/skills/octocode-code-engineer/scripts/detectors/coupling.js +0 -1
- package/skills/octocode-code-engineer/scripts/detectors/cycle.js +0 -1
- package/skills/octocode-code-engineer/scripts/detectors/dead-code.js +0 -1
- package/skills/octocode-code-engineer/scripts/detectors/import-style.js +0 -1
- package/skills/octocode-code-engineer/scripts/detectors/index.js +0 -1
- package/skills/octocode-code-engineer/scripts/detectors/security.js +0 -1
- package/skills/octocode-code-engineer/scripts/detectors/semantic.js +0 -1
- package/skills/octocode-code-engineer/scripts/detectors/shared.js +0 -1
- package/skills/octocode-code-engineer/scripts/detectors/test-quality.js +0 -1
- package/skills/octocode-code-engineer/scripts/index.js +0 -1
- package/skills/octocode-code-engineer/scripts/pipeline/cache.js +0 -1
- package/skills/octocode-code-engineer/scripts/pipeline/cli.js +0 -1
- package/skills/octocode-code-engineer/scripts/pipeline/main.js +0 -2
- package/skills/octocode-code-engineer/scripts/reporting/analysis.js +0 -1
- package/skills/octocode-code-engineer/scripts/reporting/summary-md.js +0 -1
- package/skills/octocode-code-engineer/scripts/reporting/writer.js +0 -1
- package/skills/octocode-code-engineer/scripts/types/constants.js +0 -1
- package/skills/octocode-code-engineer/scripts/types/index.js +0 -1
- package/skills/octocode-code-engineer/scripts/types/interfaces.js +0 -1
- package/skills/octocode-code-engineer/src/analysis/dependencies.ts +0 -406
- package/skills/octocode-code-engineer/src/index.ts +0 -403
- package/skills/octocode-code-engineer/src/reporting/summary-md.test.ts +0 -421
- package/skills/octocode-code-engineer/src/reporting/summary-md.ts +0 -714
- package/skills/octocode-code-engineer/src/types/interfaces.ts +0 -682
- package/skills/octocode-research/src/types/toolTypes.ts +0 -33
- package/skills/octocode-research/src/utils/logEmoji.ts +0 -103
- /package/skills/{octocode-code-engineer → octocode-engineer}/.octocode/rfc/RFC-code-engineer-weakness-fixes.md +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/architecture.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/ast-helpers.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/ast-search.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/base.css +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/block-navigation.js +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/cache.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/cli.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/clover.xml +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/collect-effects.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/collect-input-sources.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/collect-performance.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/collect-prototype-pollution.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/collect-security.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/collect-test-profile.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/coverage-final.json +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/dependencies.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/dependency-summary.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/discovery.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/favicon.png +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/graph-analytics.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/index.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/index.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/metrics.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/pipeline.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/prettify.css +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/prettify.js +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/report-analysis.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/report-writer.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/security-detectors.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/semantic-detectors.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/semantic.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/sort-arrow-sprite.png +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/sorter.js +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/summary-md.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/test-quality-detectors.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/tree-sitter-analyzer.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/ts-analyzer.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/types.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/utils.ts.html +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/dependencies.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/dependency-summary.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/dependency-summary.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/graph-analytics.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/graph-analytics.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/semantic.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/semantic.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/helpers.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/helpers.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/metrics.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/metrics.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/tree-search.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/tree-search.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/chains.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/effects.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/effects.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/input-sources.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/input-sources.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/performance.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/performance.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/prototype-pollution.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/prototype-pollution.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/test-profile.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/test-profile.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/common/is-direct-run.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/common/is-direct-run.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/common/utils.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/common/utils.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/cohesion.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/coupling.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/cycle.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/dead-code.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/import-style.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/index.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/security.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/security.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/semantic.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/shared.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/test-quality.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/test-quality.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline/cache.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline/cache.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline/main.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/reporting/analysis.test.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/src/reporting/analysis.ts +0 -0
- /package/skills/{octocode-code-engineer → octocode-engineer}/vitest.config.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"schemaVersion":"1.1.0","generatedAt":"2026-03-22T10:32:30.560Z","fileInventory":[{"package":"octocode-skill","file":"src/index.ts","parseEngine":"typescript","nodeCount":222,"kindCounts":{"ExportDeclaration":18,"NamedExports":18,"ExportSpecifier":77,"Identifier":90,"StringLiteral":18,"EndOfFileToken":1},"functions":[],"flows":[],"dependencyProfile":{"internalDependencies":["src/utils/responseBuilder.ts"],"externalDependencies":["octocode-mcp/public"],"unresolvedDependencies":[],"declaredExports":[],"importedSymbols":[],"reExports":[{"sourceModule":"octocode-mcp/public","exportedAs":"githubGetFileContent","importedName":"fetchMultipleGitHubFileContents","isStar":false,"isTypeOnly":false,"lineStart":30,"lineEnd":30},{"sourceModule":"octocode-mcp/public","exportedAs":"githubSearchCode","importedName":"searchMultipleGitHubCode","isStar":false,"isTypeOnly":false,"lineStart":31,"lineEnd":31},{"sourceModule":"octocode-mcp/public","exportedAs":"githubSearchPullRequests","importedName":"searchMultipleGitHubPullRequests","isStar":false,"isTypeOnly":false,"lineStart":32,"lineEnd":32},{"sourceModule":"octocode-mcp/public","exportedAs":"githubSearchRepositories","importedName":"searchMultipleGitHubRepos","isStar":false,"isTypeOnly":false,"lineStart":33,"lineEnd":33},{"sourceModule":"octocode-mcp/public","exportedAs":"githubViewRepoStructure","importedName":"exploreMultipleRepositoryStructures","isStar":false,"isTypeOnly":false,"lineStart":34,"lineEnd":34},{"sourceModule":"octocode-mcp/public","exportedAs":"FileContentQuery","importedName":"FileContentQuery","isStar":false,"isTypeOnly":true,"lineStart":39,"lineEnd":39},{"sourceModule":"octocode-mcp/public","exportedAs":"ContentResult","importedName":"ContentResult","isStar":false,"isTypeOnly":true,"lineStart":40,"lineEnd":40},{"sourceModule":"octocode-mcp/public","exportedAs":"GitHubCodeSearchQuery","importedName":"GitHubCodeSearchQuery","isStar":false,"isTypeOnly":true,"lineStart":41,"lineEnd":41},{"sourceModule":"octocode-mcp/public","exportedAs":"SearchResult","importedName":"SearchResult","isStar":false,"isTypeOnly":true,"lineStart":42,"lineEnd":42},{"sourceModule":"octocode-mcp/public","exportedAs":"GitHubPullRequestSearchQuery","importedName":"GitHubPullRequestSearchQuery","isStar":false,"isTypeOnly":true,"lineStart":43,"lineEnd":43},{"sourceModule":"octocode-mcp/public","exportedAs":"PullRequestSearchResult","importedName":"PullRequestSearchResult","isStar":false,"isTypeOnly":true,"lineStart":44,"lineEnd":44},{"sourceModule":"octocode-mcp/public","exportedAs":"GitHubReposSearchQuery","importedName":"GitHubReposSearchQuery","isStar":false,"isTypeOnly":true,"lineStart":45,"lineEnd":45},{"sourceModule":"octocode-mcp/public","exportedAs":"RepoSearchResult","importedName":"RepoSearchResult","isStar":false,"isTypeOnly":true,"lineStart":46,"lineEnd":46},{"sourceModule":"octocode-mcp/public","exportedAs":"GitHubViewRepoStructureQuery","importedName":"GitHubViewRepoStructureQuery","isStar":false,"isTypeOnly":true,"lineStart":47,"lineEnd":47},{"sourceModule":"octocode-mcp/public","exportedAs":"RepoStructureResult","importedName":"RepoStructureResult","isStar":false,"isTypeOnly":true,"lineStart":48,"lineEnd":48},{"sourceModule":"octocode-mcp/public","exportedAs":"localGetFileContent","importedName":"executeFetchContent","isStar":false,"isTypeOnly":false,"lineStart":56,"lineEnd":56},{"sourceModule":"octocode-mcp/public","exportedAs":"localFindFiles","importedName":"executeFindFiles","isStar":false,"isTypeOnly":false,"lineStart":57,"lineEnd":57},{"sourceModule":"octocode-mcp/public","exportedAs":"localSearchCode","importedName":"executeRipgrepSearch","isStar":false,"isTypeOnly":false,"lineStart":58,"lineEnd":58},{"sourceModule":"octocode-mcp/public","exportedAs":"localViewStructure","importedName":"executeViewStructure","isStar":false,"isTypeOnly":false,"lineStart":59,"lineEnd":59},{"sourceModule":"octocode-mcp/public","exportedAs":"FetchContentQuery","importedName":"FetchContentQuery","isStar":false,"isTypeOnly":true,"lineStart":64,"lineEnd":64},{"sourceModule":"octocode-mcp/public","exportedAs":"FetchContentResult","importedName":"FetchContentResult","isStar":false,"isTypeOnly":true,"lineStart":65,"lineEnd":65},{"sourceModule":"octocode-mcp/public","exportedAs":"FindFilesQuery","importedName":"FindFilesQuery","isStar":false,"isTypeOnly":true,"lineStart":66,"lineEnd":66},{"sourceModule":"octocode-mcp/public","exportedAs":"FindFilesResult","importedName":"FindFilesResult","isStar":false,"isTypeOnly":true,"lineStart":67,"lineEnd":67},{"sourceModule":"octocode-mcp/public","exportedAs":"RipgrepSearchQuery","importedName":"RipgrepSearchQuery","isStar":false,"isTypeOnly":true,"lineStart":68,"lineEnd":68},{"sourceModule":"octocode-mcp/public","exportedAs":"SearchContentResult","importedName":"SearchContentResult","isStar":false,"isTypeOnly":true,"lineStart":69,"lineEnd":69},{"sourceModule":"octocode-mcp/public","exportedAs":"ViewStructureQuery","importedName":"ViewStructureQuery","isStar":false,"isTypeOnly":true,"lineStart":70,"lineEnd":70},{"sourceModule":"octocode-mcp/public","exportedAs":"ViewStructureResult","importedName":"ViewStructureResult","isStar":false,"isTypeOnly":true,"lineStart":71,"lineEnd":71},{"sourceModule":"octocode-mcp/public","exportedAs":"lspGotoDefinition","importedName":"executeGotoDefinition","isStar":false,"isTypeOnly":false,"lineStart":79,"lineEnd":79},{"sourceModule":"octocode-mcp/public","exportedAs":"lspFindReferences","importedName":"executeFindReferences","isStar":false,"isTypeOnly":false,"lineStart":80,"lineEnd":80},{"sourceModule":"octocode-mcp/public","exportedAs":"lspCallHierarchy","importedName":"executeCallHierarchy","isStar":false,"isTypeOnly":false,"lineStart":81,"lineEnd":81},{"sourceModule":"octocode-mcp/public","exportedAs":"LSPGotoDefinitionQuery","importedName":"LSPGotoDefinitionQuery","isStar":false,"isTypeOnly":true,"lineStart":86,"lineEnd":86},{"sourceModule":"octocode-mcp/public","exportedAs":"GotoDefinitionResult","importedName":"GotoDefinitionResult","isStar":false,"isTypeOnly":true,"lineStart":87,"lineEnd":87},{"sourceModule":"octocode-mcp/public","exportedAs":"LSPFindReferencesQuery","importedName":"LSPFindReferencesQuery","isStar":false,"isTypeOnly":true,"lineStart":88,"lineEnd":88},{"sourceModule":"octocode-mcp/public","exportedAs":"FindReferencesResult","importedName":"FindReferencesResult","isStar":false,"isTypeOnly":true,"lineStart":89,"lineEnd":89},{"sourceModule":"octocode-mcp/public","exportedAs":"LSPCallHierarchyQuery","importedName":"LSPCallHierarchyQuery","isStar":false,"isTypeOnly":true,"lineStart":90,"lineEnd":90},{"sourceModule":"octocode-mcp/public","exportedAs":"CallHierarchyResult","importedName":"CallHierarchyResult","isStar":false,"isTypeOnly":true,"lineStart":91,"lineEnd":91},{"sourceModule":"octocode-mcp/public","exportedAs":"packageSearch","importedName":"searchPackages","isStar":false,"isTypeOnly":false,"lineStart":98,"lineEnd":98},{"sourceModule":"octocode-mcp/public","exportedAs":"PackageSearchQuery","importedName":"PackageSearchQuery","isStar":false,"isTypeOnly":true,"lineStart":102,"lineEnd":102},{"sourceModule":"octocode-mcp/public","exportedAs":"PackageSearchResult","importedName":"PackageSearchResult","isStar":false,"isTypeOnly":true,"lineStart":103,"lineEnd":103},{"sourceModule":"octocode-mcp/public","exportedAs":"NpmPackageSearchQuery","importedName":"NpmPackageSearchQuery","isStar":false,"isTypeOnly":true,"lineStart":104,"lineEnd":104},{"sourceModule":"octocode-mcp/public","exportedAs":"PythonPackageSearchQuery","importedName":"PythonPackageSearchQuery","isStar":false,"isTypeOnly":true,"lineStart":105,"lineEnd":105},{"sourceModule":"octocode-mcp/public","exportedAs":"createResult","importedName":"createResult","isStar":false,"isTypeOnly":false,"lineStart":113,"lineEnd":113},{"sourceModule":"octocode-mcp/public","exportedAs":"createResponseFormat","importedName":"createResponseFormat","isStar":false,"isTypeOnly":false,"lineStart":113,"lineEnd":113},{"sourceModule":"octocode-mcp/public","exportedAs":"createRoleBasedResult","importedName":"createRoleBasedResult","isStar":false,"isTypeOnly":false,"lineStart":117,"lineEnd":117},{"sourceModule":"octocode-mcp/public","exportedAs":"ContentBuilder","importedName":"ContentBuilder","isStar":false,"isTypeOnly":false,"lineStart":118,"lineEnd":118},{"sourceModule":"octocode-mcp/public","exportedAs":"QuickResult","importedName":"QuickResult","isStar":false,"isTypeOnly":false,"lineStart":119,"lineEnd":119},{"sourceModule":"octocode-mcp/public","exportedAs":"StatusEmoji","importedName":"StatusEmoji","isStar":false,"isTypeOnly":false,"lineStart":120,"lineEnd":120},{"sourceModule":"octocode-mcp/public","exportedAs":"StatusEmojis","importedName":"StatusEmojis","isStar":false,"isTypeOnly":false,"lineStart":121,"lineEnd":121},{"sourceModule":"octocode-mcp/public","exportedAs":"ContentRole","importedName":"ContentRole","isStar":false,"isTypeOnly":true,"lineStart":125,"lineEnd":125},{"sourceModule":"octocode-mcp/public","exportedAs":"RoleContentBlock","importedName":"RoleContentBlock","isStar":false,"isTypeOnly":true,"lineStart":126,"lineEnd":126},{"sourceModule":"octocode-mcp/public","exportedAs":"RoleBasedResultOptions","importedName":"RoleBasedResultOptions","isStar":false,"isTypeOnly":true,"lineStart":127,"lineEnd":127},{"sourceModule":"octocode-mcp/public","exportedAs":"RoleAnnotations","importedName":"RoleAnnotations","isStar":false,"isTypeOnly":true,"lineStart":128,"lineEnd":128},{"sourceModule":"./utils/responseBuilder.js","resolvedModule":"src/utils/responseBuilder.ts","exportedAs":"ResearchResponse","importedName":"ResearchResponse","isStar":false,"isTypeOnly":false,"lineStart":132,"lineEnd":132},{"sourceModule":"octocode-mcp/public","exportedAs":"TOOL_NAMES","importedName":"TOOL_NAMES","isStar":false,"isTypeOnly":false,"lineStart":139,"lineEnd":139},{"sourceModule":"octocode-mcp/public","exportedAs":"DESCRIPTIONS","importedName":"DESCRIPTIONS","isStar":false,"isTypeOnly":false,"lineStart":140,"lineEnd":140},{"sourceModule":"octocode-mcp/public","exportedAs":"getToolHintsSync","importedName":"getToolHintsSync","isStar":false,"isTypeOnly":false,"lineStart":141,"lineEnd":141},{"sourceModule":"octocode-mcp/public","exportedAs":"getGenericErrorHintsSync","importedName":"getGenericErrorHintsSync","isStar":false,"isTypeOnly":false,"lineStart":142,"lineEnd":142},{"sourceModule":"octocode-mcp/public","exportedAs":"withBasicSecurityValidation","importedName":"withBasicSecurityValidation","isStar":false,"isTypeOnly":false,"lineStart":149,"lineEnd":149},{"sourceModule":"octocode-mcp/public","exportedAs":"initialize","importedName":"initialize","isStar":false,"isTypeOnly":false,"lineStart":156,"lineEnd":156},{"sourceModule":"octocode-mcp/public","exportedAs":"initializeProviders","importedName":"initializeProviders","isStar":false,"isTypeOnly":false,"lineStart":157,"lineEnd":157},{"sourceModule":"octocode-mcp/public","exportedAs":"getGitHubToken","importedName":"getGitHubToken","isStar":false,"isTypeOnly":false,"lineStart":158,"lineEnd":158},{"sourceModule":"octocode-mcp/public","exportedAs":"getToken","importedName":"getToken","isStar":false,"isTypeOnly":false,"lineStart":159,"lineEnd":159},{"sourceModule":"octocode-mcp/public","exportedAs":"getTokenSource","importedName":"getTokenSource","isStar":false,"isTypeOnly":false,"lineStart":160,"lineEnd":160},{"sourceModule":"octocode-mcp/public","exportedAs":"TokenSourceType","importedName":"TokenSourceType","isStar":false,"isTypeOnly":true,"lineStart":163,"lineEnd":163},{"sourceModule":"octocode-mcp/public","exportedAs":"initializeSession","importedName":"initializeSession","isStar":false,"isTypeOnly":false,"lineStart":170,"lineEnd":170},{"sourceModule":"octocode-mcp/public","exportedAs":"getSessionManager","importedName":"getSessionManager","isStar":false,"isTypeOnly":false,"lineStart":171,"lineEnd":171},{"sourceModule":"octocode-mcp/public","exportedAs":"logSessionInit","importedName":"logSessionInit","isStar":false,"isTypeOnly":false,"lineStart":172,"lineEnd":172},{"sourceModule":"octocode-mcp/public","exportedAs":"logToolCall","importedName":"logToolCall","isStar":false,"isTypeOnly":false,"lineStart":173,"lineEnd":173},{"sourceModule":"octocode-mcp/public","exportedAs":"logPromptCall","importedName":"logPromptCall","isStar":false,"isTypeOnly":false,"lineStart":174,"lineEnd":174},{"sourceModule":"octocode-mcp/public","exportedAs":"logSessionError","importedName":"logSessionError","isStar":false,"isTypeOnly":false,"lineStart":175,"lineEnd":175},{"sourceModule":"octocode-mcp/public","exportedAs":"logRateLimit","importedName":"logRateLimit","isStar":false,"isTypeOnly":false,"lineStart":176,"lineEnd":176},{"sourceModule":"octocode-mcp/public","exportedAs":"resetSessionManager","importedName":"resetSessionManager","isStar":false,"isTypeOnly":false,"lineStart":177,"lineEnd":177},{"sourceModule":"octocode-mcp/public","exportedAs":"SessionData","importedName":"SessionData","isStar":false,"isTypeOnly":true,"lineStart":181,"lineEnd":181},{"sourceModule":"octocode-mcp/public","exportedAs":"ToolCallData","importedName":"ToolCallData","isStar":false,"isTypeOnly":true,"lineStart":182,"lineEnd":182},{"sourceModule":"octocode-mcp/public","exportedAs":"PromptCallData","importedName":"PromptCallData","isStar":false,"isTypeOnly":true,"lineStart":183,"lineEnd":183},{"sourceModule":"octocode-mcp/public","exportedAs":"ErrorData","importedName":"ErrorData","isStar":false,"isTypeOnly":true,"lineStart":184,"lineEnd":184},{"sourceModule":"octocode-mcp/public","exportedAs":"RateLimitData","importedName":"RateLimitData","isStar":false,"isTypeOnly":true,"lineStart":185,"lineEnd":185}],"package":"octocode-skill","file":"src/index.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":493,"symbolUsageSummary":{"declaredExportCount":0,"importedSymbolCount":0,"internalImportCount":0,"externalImportCount":1,"reExportCount":77,"dominantInternalDependency":null},"boundaryRoleHints":[{"role":"entrypoint","confidence":"high","reasons":["path matches a conventional entrypoint filename"]}],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":0,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0013","AST-ISSUE-0133","AST-ISSUE-0175","AST-ISSUE-0176","AST-ISSUE-0177","AST-ISSUE-0178","AST-ISSUE-0179","AST-ISSUE-0180","AST-ISSUE-0181","AST-ISSUE-0182","AST-ISSUE-0183","AST-ISSUE-0184","AST-ISSUE-0185","AST-ISSUE-0186","AST-ISSUE-0187","AST-ISSUE-0188","AST-ISSUE-0189","AST-ISSUE-0190","AST-ISSUE-0191","AST-ISSUE-0192","AST-ISSUE-0193","AST-ISSUE-0194","AST-ISSUE-0195","AST-ISSUE-0196","AST-ISSUE-0197","AST-ISSUE-0198","AST-ISSUE-0199","AST-ISSUE-0200","AST-ISSUE-0201","AST-ISSUE-0202","AST-ISSUE-0203","AST-ISSUE-0204","AST-ISSUE-0205","AST-ISSUE-0206","AST-ISSUE-0207","AST-ISSUE-0208","AST-ISSUE-0209","AST-ISSUE-0210","AST-ISSUE-0211","AST-ISSUE-0212","AST-ISSUE-0213","AST-ISSUE-0214","AST-ISSUE-0215","AST-ISSUE-0216","AST-ISSUE-0217","AST-ISSUE-0218","AST-ISSUE-0219","AST-ISSUE-0220","AST-ISSUE-0221","AST-ISSUE-0222","AST-ISSUE-0223","AST-ISSUE-0224","AST-ISSUE-0225","AST-ISSUE-0226","AST-ISSUE-0227","AST-ISSUE-0228","AST-ISSUE-0229","AST-ISSUE-0230","AST-ISSUE-0231"]},{"package":"octocode-skill","file":"src/mcpCache.ts","parseEngine":"typescript","nodeCount":110,"kindCounts":{"ImportDeclaration":2,"ImportClause":2,"NamedImports":2,"ImportSpecifier":3,"Identifier":30,"StringLiteral":3,"FirstStatement":3,"VariableDeclarationList":3,"VariableDeclaration":3,"UnionType":2,"TypeReference":6,"LiteralType":2,"NullKeyword":5,"FunctionDeclaration":3,"ExportKeyword":3,"AsyncKeyword":2,"Block":5,"IfStatement":3,"ReturnStatement":6,"ExpressionStatement":3,"BinaryExpression":3,"FirstAssignment":2,"CallExpression":3,"ParenthesizedExpression":1,"ArrowFunction":1,"EqualsGreaterThanToken":1,"AwaitExpression":2,"PrefixUnaryExpression":1,"ThrowStatement":1,"NewExpression":1,"BooleanKeyword":1,"ExclamationEqualsEqualsToken":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"initializeMcpContent","nameHint":"initializeMcpContent","file":"src/mcpCache.ts","lineStart":18,"lineEnd":31,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":4,"awaits":2,"calls":3,"loops":0,"lengthLines":14,"cognitiveComplexity":2,"halstead":{"operators":3,"operands":12,"distinctOperators":2,"distinctOperands":5,"vocabulary":7,"length":15,"volume":42.11032383086406,"difficulty":2.4,"effort":101.06477719407374,"time":5.6147098441152075,"estimatedBugs":0.01403677461028802},"maintainabilityIndex":63.22090527045007,"declared":true,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/mcpCache.ts","lineStart":23,"lineEnd":28,"columnStart":18,"columnEnd":4,"statementCount":4,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":2,"calls":2,"loops":0,"lengthLines":6,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":6,"distinctOperators":1,"distinctOperands":4,"vocabulary":5,"length":7,"volume":16.253496664211536,"difficulty":0.75,"effort":12.190122498158651,"time":0.6772290276754807,"estimatedBugs":0.005417832221403845},"maintainabilityIndex":74.41186822262705,"params":0},{"kind":"FunctionDeclaration","name":"getMcpContent","nameHint":"getMcpContent","file":"src/mcpCache.ts","lineStart":37,"lineEnd":42,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":0,"loops":0,"lengthLines":6,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":4,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":4,"volume":6.339850002884624,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.002113283334294875},"maintainabilityIndex":77.14026317546818,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"isMcpInitialized","nameHint":"isMcpInitialized","file":"src/mcpCache.ts","lineStart":47,"lineEnd":49,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":1,"distinctOperators":1,"distinctOperands":1,"vocabulary":2,"length":2,"volume":2,"difficulty":0.5,"effort":1,"time":0.05555555555555555,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":87.34977519571046,"declared":true,"params":0}],"flows":[{"kind":"IfStatement","file":"src/mcpCache.ts","lineStart":19,"lineEnd":19,"columnStart":3,"columnEnd":37,"statementCount":1},{"kind":"IfStatement","file":"src/mcpCache.ts","lineStart":21,"lineEnd":21,"columnStart":3,"columnEnd":39,"statementCount":1},{"kind":"IfStatement","file":"src/mcpCache.ts","lineStart":38,"lineEnd":40,"columnStart":3,"columnEnd":4,"statementCount":1}],"dependencyProfile":{"internalDependencies":[],"externalDependencies":["octocode-mcp/public"],"unresolvedDependencies":[],"declaredExports":[{"name":"initializeMcpContent","kind":"value","isDefault":false,"lineStart":18,"lineEnd":31},{"name":"getMcpContent","kind":"value","isDefault":false,"lineStart":37,"lineEnd":42},{"name":"isMcpInitialized","kind":"value","isDefault":false,"lineStart":47,"lineEnd":49}],"importedSymbols":[{"sourceModule":"octocode-mcp/public","importedName":"CompleteMetadata","localName":"CompleteMetadata","isTypeOnly":true,"lineStart":8,"lineEnd":8},{"sourceModule":"octocode-mcp/public","importedName":"initialize","localName":"initialize","isTypeOnly":false,"lineStart":9,"lineEnd":9},{"sourceModule":"octocode-mcp/public","importedName":"loadToolContent","localName":"loadToolContent","isTypeOnly":false,"lineStart":9,"lineEnd":9}],"reExports":[],"package":"octocode-skill","file":"src/mcpCache.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[{"name":"initializeMcpContent","lineStart":18,"lineEnd":31}],"unprotectedAsync":[{"name":"<anonymous>","awaitCount":2,"lineStart":23,"lineEnd":28}],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":231,"symbolUsageSummary":{"declaredExportCount":3,"importedSymbolCount":3,"internalImportCount":0,"externalImportCount":1,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":8,"asyncBoundaryCount":4,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0051","AST-ISSUE-0254","AST-ISSUE-0256","AST-ISSUE-0275","AST-ISSUE-0293"]},{"package":"octocode-skill","file":"src/middleware/errorHandler.ts","parseEngine":"typescript","nodeCount":289,"kindCounts":{"ImportDeclaration":6,"ImportClause":6,"NamedImports":6,"ImportSpecifier":10,"Identifier":101,"StringLiteral":10,"InterfaceDeclaration":1,"ExportKeyword":2,"HeritageClause":1,"ExpressionWithTypeArguments":1,"PropertySignature":8,"QuestionToken":5,"NumberKeyword":1,"StringKeyword":4,"ArrayType":2,"TypeReference":7,"FirstNode":4,"FunctionDeclaration":1,"Parameter":4,"VoidKeyword":1,"Block":4,"FirstStatement":5,"VariableDeclarationList":5,"VariableDeclaration":5,"BinaryExpression":6,"PropertyAccessExpression":20,"QuestionQuestionToken":3,"FirstLiteralToken":3,"EqualsEqualsEqualsToken":1,"IfStatement":2,"ExpressionStatement":5,"CallExpression":8,"TemplateExpression":2,"TemplateHead":2,"TemplateSpan":6,"TemplateMiddle":4,"LastTemplateToken":2,"ObjectLiteralExpression":3,"PropertyAssignment":7,"AsExpression":1,"UnknownKeyword":1,"ParenthesizedExpression":1,"ConditionalExpression":1,"ColonToken":1,"ArrowFunction":1,"EqualsGreaterThanToken":1,"TypeLiteral":2,"LiteralType":1,"FalseKeyword":2,"AmpersandAmpersandToken":1,"FirstAssignment":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"errorHandler","nameHint":"errorHandler","file":"src/middleware/errorHandler.ts","lineStart":15,"lineEnd":65,"columnStart":1,"columnEnd":2,"statementCount":9,"complexity":5,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":8,"loops":0,"lengthLines":51,"cognitiveComplexity":7,"halstead":{"operators":7,"operands":81,"distinctOperators":5,"distinctOperands":33,"vocabulary":38,"length":88,"volume":461.8176211830355,"difficulty":6.136363636363637,"effort":2833.8808572595362,"time":157.43782540330756,"estimatedBugs":0.15393920706101183},"maintainabilityIndex":43.421953491290985,"declared":true,"params":4},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/middleware/errorHandler.ts","lineStart":39,"lineEnd":39,"columnStart":5,"columnEnd":47,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":3,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":95.12415216859318,"params":0}],"flows":[{"kind":"IfStatement","file":"src/middleware/errorHandler.ts","lineStart":25,"lineEnd":33,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"ConditionalExpression","file":"src/middleware/errorHandler.ts","lineStart":37,"lineEnd":37,"columnStart":36,"columnEnd":93,"statementCount":1},{"kind":"IfStatement","file":"src/middleware/errorHandler.ts","lineStart":60,"lineEnd":62,"columnStart":3,"columnEnd":4,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/index.ts","src/utils/asyncTimeout.ts","src/utils/logger.ts","src/utils/url.ts"],"externalDependencies":["express","zod/v4"],"unresolvedDependencies":[],"declaredExports":[{"name":"ApiError","kind":"type","lineStart":7,"lineEnd":11},{"name":"errorHandler","kind":"value","isDefault":false,"lineStart":15,"lineEnd":65}],"importedSymbols":[{"sourceModule":"express","importedName":"Request","localName":"Request","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"Response","localName":"Response","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"NextFunction","localName":"NextFunction","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"zod/v4","importedName":"z","localName":"z","isTypeOnly":true,"lineStart":2,"lineEnd":2},{"sourceModule":"../utils/logger.js","resolvedModule":"src/utils/logger.ts","importedName":"logError","localName":"logError","isTypeOnly":false,"lineStart":3,"lineEnd":3},{"sourceModule":"../utils/logger.js","resolvedModule":"src/utils/logger.ts","importedName":"logWarn","localName":"logWarn","isTypeOnly":false,"lineStart":3,"lineEnd":3},{"sourceModule":"../utils/logger.js","resolvedModule":"src/utils/logger.ts","importedName":"sanitizeQueryParams","localName":"sanitizeQueryParams","isTypeOnly":false,"lineStart":3,"lineEnd":3},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"logSessionError","localName":"logSessionError","isTypeOnly":false,"lineStart":4,"lineEnd":4},{"sourceModule":"../utils/asyncTimeout.js","resolvedModule":"src/utils/asyncTimeout.ts","importedName":"fireAndForgetWithTimeout","localName":"fireAndForgetWithTimeout","isTypeOnly":false,"lineStart":5,"lineEnd":5},{"sourceModule":"../utils/url.js","resolvedModule":"src/utils/url.ts","importedName":"extractToolName","localName":"extractToolName","isTypeOnly":false,"lineStart":13,"lineEnd":13}],"reExports":[],"package":"octocode-skill","file":"src/middleware/errorHandler.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":500,"file":"src/middleware/errorHandler.ts","lineStart":21,"lineEnd":21},{"value":400,"file":"src/middleware/errorHandler.ts","lineStart":22,"lineEnd":22},{"value":5000,"file":"src/middleware/errorHandler.ts","lineStart":40,"lineEnd":40}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"errorHandler","lineStart":15,"lineEnd":65,"sourceParams":["req"],"hasSinkInBody":true,"sinkKinds":["response"],"hasValidation":false,"callsWithInputArgs":[{"callee":"sanitizeQueryParams","lineStart":28},{"callee":"extractToolName","lineStart":36}],"paramConfidence":"high"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":546,"symbolUsageSummary":{"declaredExportCount":2,"importedSymbolCount":10,"internalImportCount":6,"externalImportCount":2,"reExportCount":0,"dominantInternalDependency":"src/utils/logger.ts"},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":0,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0135","AST-ISSUE-0294","AST-ISSUE-0295"]},{"package":"octocode-skill","file":"src/middleware/logger.ts","parseEngine":"typescript","nodeCount":270,"kindCounts":{"ImportDeclaration":5,"ImportClause":5,"NamedImports":5,"ImportSpecifier":9,"Identifier":92,"StringLiteral":12,"FunctionDeclaration":2,"Parameter":4,"TypeReference":5,"StringKeyword":2,"Block":7,"FirstStatement":8,"VariableDeclarationList":8,"VariableDeclaration":8,"ElementAccessExpression":1,"PropertyAccessExpression":16,"IfStatement":3,"BinaryExpression":7,"TypeOfExpression":1,"EqualsEqualsEqualsToken":1,"AmpersandAmpersandToken":1,"GreaterThanToken":1,"FirstLiteralToken":3,"ReturnStatement":2,"CallExpression":14,"ExportKeyword":1,"VoidKeyword":1,"ExpressionStatement":6,"ArrowFunction":1,"EqualsGreaterThanToken":1,"MinusToken":1,"ConditionalExpression":2,"GreaterThanEqualsToken":1,"QuestionToken":2,"ColonToken":2,"FirstBinaryOperator":1,"TemplateExpression":2,"TemplateHead":2,"TemplateSpan":6,"TemplateMiddle":4,"LastTemplateToken":2,"ExclamationEqualsEqualsToken":1,"ObjectLiteralExpression":1,"PropertyAssignment":5,"AsExpression":1,"UnknownKeyword":1,"ShorthandPropertyAssignment":3,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"getRequestId","nameHint":"getRequestId","file":"src/middleware/logger.ts","lineStart":11,"lineEnd":17,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":1,"loops":0,"lengthLines":7,"cognitiveComplexity":2,"halstead":{"operators":3,"operands":11,"distinctOperators":3,"distinctOperands":8,"vocabulary":11,"length":14,"volume":48.432042660922164,"difficulty":2.0625,"effort":99.89108798815197,"time":5.549504888230665,"estimatedBugs":0.01614401422030739},"maintainabilityIndex":69.3622310485829,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"requestLogger","nameHint":"requestLogger","file":"src/middleware/logger.ts","lineStart":19,"lineEnd":60,"columnStart":1,"columnEnd":2,"statementCount":5,"complexity":5,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":13,"loops":0,"lengthLines":42,"cognitiveComplexity":5,"halstead":{"operators":5,"operands":72,"distinctOperators":5,"distinctOperands":38,"vocabulary":43,"length":77,"volume":417.82238611206157,"difficulty":4.7368421052631575,"effort":1979.1586710571335,"time":109.95325950317408,"estimatedBugs":0.13927412870402053},"maintainabilityIndex":45.56576535380518,"declared":true,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/middleware/logger.ts","lineStart":30,"lineEnd":57,"columnStart":20,"columnEnd":4,"statementCount":7,"complexity":5,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":8,"loops":0,"lengthLines":28,"cognitiveComplexity":5,"halstead":{"operators":4,"operands":58,"distinctOperators":4,"distinctOperands":32,"vocabulary":36,"length":62,"volume":320.53535008942333,"difficulty":3.625,"effort":1161.9406440741595,"time":64.55225800411998,"estimatedBugs":0.10684511669647444},"maintainabilityIndex":50.213055898784226,"params":0}],"flows":[{"kind":"IfStatement","file":"src/middleware/logger.ts","lineStart":13,"lineEnd":15,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"ConditionalExpression","file":"src/middleware/logger.ts","lineStart":33,"lineEnd":33,"columnStart":24,"columnEnd":49,"statementCount":1},{"kind":"IfStatement","file":"src/middleware/logger.ts","lineStart":39,"lineEnd":43,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/middleware/logger.ts","lineStart":45,"lineEnd":56,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"ConditionalExpression","file":"src/middleware/logger.ts","lineStart":53,"lineEnd":53,"columnStart":16,"columnEnd":54,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/utils/colors.ts","src/utils/logger.ts","src/utils/url.ts"],"externalDependencies":["crypto","express"],"unresolvedDependencies":[],"declaredExports":[{"name":"requestLogger","kind":"value","isDefault":false,"lineStart":19,"lineEnd":60}],"importedSymbols":[{"sourceModule":"express","importedName":"Request","localName":"Request","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"Response","localName":"Response","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"NextFunction","localName":"NextFunction","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"crypto","importedName":"randomUUID","localName":"randomUUID","isTypeOnly":false,"lineStart":2,"lineEnd":2},{"sourceModule":"../utils/logger.js","resolvedModule":"src/utils/logger.ts","importedName":"logToolCall","localName":"logToolCall","isTypeOnly":false,"lineStart":3,"lineEnd":3},{"sourceModule":"../utils/logger.js","resolvedModule":"src/utils/logger.ts","importedName":"sanitizeQueryParams","localName":"sanitizeQueryParams","isTypeOnly":false,"lineStart":3,"lineEnd":3},{"sourceModule":"../utils/colors.js","resolvedModule":"src/utils/colors.ts","importedName":"resultLog","localName":"resultLog","isTypeOnly":false,"lineStart":4,"lineEnd":4},{"sourceModule":"../utils/colors.js","resolvedModule":"src/utils/colors.ts","importedName":"errorLog","localName":"errorLog","isTypeOnly":false,"lineStart":4,"lineEnd":4},{"sourceModule":"../utils/url.js","resolvedModule":"src/utils/url.ts","importedName":"extractToolName","localName":"extractToolName","isTypeOnly":false,"lineStart":5,"lineEnd":5}],"reExports":[],"package":"octocode-skill","file":"src/middleware/logger.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":400,"file":"src/middleware/logger.ts","lineStart":33,"lineEnd":33},{"value":400,"file":"src/middleware/logger.ts","lineStart":34,"lineEnd":34}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[{"method":"log","lineStart":40,"lineEnd":40,"hasSensitiveArg":false,"argSnippet":"resultLog(resultMessage)"},{"method":"log","lineStart":42,"lineEnd":42,"hasSensitiveArg":false,"argSnippet":"errorLog(resultMessage)"}],"regexLiterals":[],"inputSources":[{"functionName":"getRequestId","lineStart":11,"lineEnd":17,"sourceParams":["req"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"high"},{"functionName":"requestLogger","lineStart":19,"lineEnd":60,"sourceParams":["req"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[{"callee":"getRequestId","lineStart":25}],"paramConfidence":"high"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[{"file":"src/middleware/logger.ts","lineStart":30,"lineEnd":57}],"listenerRemovals":[],"treeSitterNodeCount":513,"symbolUsageSummary":{"declaredExportCount":1,"importedSymbolCount":9,"internalImportCount":5,"externalImportCount":2,"reExportCount":0,"dominantInternalDependency":"src/utils/logger.ts"},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":2,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0245","AST-ISSUE-0248","AST-ISSUE-0278","AST-ISSUE-0296"]},{"package":"octocode-skill","file":"src/middleware/queryParser.ts","parseEngine":"typescript","nodeCount":425,"kindCounts":{"ImportDeclaration":2,"ImportClause":2,"NamedImports":2,"ImportSpecifier":2,"Identifier":144,"StringLiteral":10,"ClassDeclaration":1,"HeritageClause":1,"ExpressionWithTypeArguments":1,"PropertyDeclaration":3,"NumberKeyword":1,"StringKeyword":7,"ArrayType":3,"TypeReference":10,"FirstNode":6,"Constructor":1,"Parameter":11,"ArrayLiteralExpression":2,"Block":14,"ExpressionStatement":7,"CallExpression":15,"SuperKeyword":1,"BinaryExpression":14,"PropertyAccessExpression":37,"ThisKeyword":4,"FirstAssignment":5,"FirstLiteralToken":3,"FunctionDeclaration":3,"ExportKeyword":2,"TypeParameter":1,"UnknownKeyword":2,"IfStatement":6,"AmpersandAmpersandToken":2,"TypeOfExpression":1,"EqualsEqualsEqualsToken":2,"TryStatement":1,"FirstStatement":8,"VariableDeclarationList":9,"VariableDeclaration":10,"ArrowFunction":3,"EqualsGreaterThanToken":3,"PrefixUnaryExpression":3,"ThrowStatement":3,"NewExpression":2,"TemplateExpression":2,"TemplateHead":2,"TemplateSpan":4,"TemplateMiddle":2,"LastTemplateToken":2,"ReturnStatement":5,"CatchClause":1,"InstanceOfKeyword":1,"ObjectLiteralExpression":2,"ForOfStatement":1,"ArrayBindingPattern":1,"BindingElement":2,"ExclamationEqualsEqualsToken":1,"ElementAccessExpression":1,"ConditionalExpression":2,"QuestionToken":5,"ColonToken":2,"TypeLiteral":2,"PropertySignature":4,"BooleanKeyword":1,"VoidKeyword":1,"QuestionDotToken":2,"InKeyword":1,"QuestionQuestionToken":2,"FalseKeyword":1,"PropertyAssignment":3,"NullKeyword":1,"EndOfFileToken":1},"functions":[{"kind":"Constructor","name":"<anonymous>","nameHint":"<anonymous>","file":"src/middleware/queryParser.ts","lineStart":13,"lineEnd":19,"columnStart":3,"columnEnd":4,"statementCount":5,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":7,"cognitiveComplexity":0,"halstead":{"operators":4,"operands":9,"distinctOperators":1,"distinctOperands":8,"vocabulary":9,"length":13,"volume":41.209025018750054,"difficulty":0.5625,"effort":23.180076573046904,"time":1.2877820318359392,"estimatedBugs":0.013736341672916685},"maintainabilityIndex":70.12236122629282,"params":2},{"kind":"FunctionDeclaration","name":"parseAndValidate","nameHint":"parseAndValidate","file":"src/middleware/queryParser.ts","lineStart":31,"lineEnd":77,"columnStart":1,"columnEnd":2,"statementCount":6,"complexity":10,"maxBranchDepth":3,"maxLoopDepth":1,"returns":6,"awaits":0,"calls":8,"loops":1,"lengthLines":47,"cognitiveComplexity":16,"halstead":{"operators":5,"operands":66,"distinctOperators":5,"distinctOperands":29,"vocabulary":34,"length":71,"volume":361.20986172877406,"difficulty":5.689655172413794,"effort":2055.1595581119905,"time":114.17553100622169,"estimatedBugs":0.12040328724292469},"maintainabilityIndex":44.270421876178666,"declared":true,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/middleware/queryParser.ts","lineStart":41,"lineEnd":50,"columnStart":38,"columnEnd":10,"statementCount":3,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":2,"loops":0,"lengthLines":10,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":16,"distinctOperators":0,"distinctOperands":11,"vocabulary":11,"length":16,"volume":55.35090589819676,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.018450301966065584},"maintainabilityIndex":65.7116478126443,"params":2},{"kind":"FunctionDeclaration","name":"formatZodError","nameHint":"formatZodError","file":"src/middleware/queryParser.ts","lineStart":82,"lineEnd":89,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":3,"loops":0,"lengthLines":8,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":17,"distinctOperators":1,"distinctOperands":9,"vocabulary":10,"length":18,"volume":59.79470570797252,"difficulty":0.9444444444444444,"effort":56.47277761308516,"time":3.1373765340602864,"estimatedBugs":0.01993156856932417},"maintainabilityIndex":67.5908058370834,"declared":true,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/middleware/queryParser.ts","lineStart":84,"lineEnd":87,"columnStart":10,"columnEnd":6,"statementCount":2,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":4,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":11,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":11,"volume":25.541209043760983,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.008513736347920327},"maintainabilityIndex":76.7441560050179,"params":1},{"kind":"FunctionDeclaration","name":"sendToolResult","nameHint":"sendToolResult","file":"src/middleware/queryParser.ts","lineStart":94,"lineEnd":112,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":3,"loops":0,"lengthLines":19,"cognitiveComplexity":4,"halstead":{"operators":5,"operands":26,"distinctOperators":4,"distinctOperands":17,"vocabulary":21,"length":31,"volume":136.16184010614157,"difficulty":3.0588235294117645,"effort":416.4950403246683,"time":23.138613351370463,"estimatedBugs":0.04538728003538052},"maintainabilityIndex":56.75912210910195,"declared":true,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/middleware/queryParser.ts","lineStart":102,"lineEnd":102,"columnStart":5,"columnEnd":44,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":1,"cognitiveComplexity":1,"halstead":{"operators":2,"operands":5,"distinctOperators":2,"distinctOperands":3,"vocabulary":5,"length":7,"volume":16.253496664211536,"difficulty":1.6666666666666667,"effort":27.089161107019226,"time":1.5049533948344014,"estimatedBugs":0.005417832221403845},"maintainabilityIndex":91.25192869133727,"params":1}],"flows":[{"kind":"IfStatement","file":"src/middleware/queryParser.ts","lineStart":36,"lineEnd":58,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"TryStatement","file":"src/middleware/queryParser.ts","lineStart":37,"lineEnd":57,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/middleware/queryParser.ts","lineStart":39,"lineEnd":52,"columnStart":7,"columnEnd":8,"statementCount":2},{"kind":"IfStatement","file":"src/middleware/queryParser.ts","lineStart":43,"lineEnd":48,"columnStart":11,"columnEnd":12,"statementCount":1},{"kind":"IfStatement","file":"src/middleware/queryParser.ts","lineStart":54,"lineEnd":54,"columnStart":7,"columnEnd":49,"statementCount":1},{"kind":"ForOfStatement","file":"src/middleware/queryParser.ts","lineStart":62,"lineEnd":66,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/middleware/queryParser.ts","lineStart":63,"lineEnd":65,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/middleware/queryParser.ts","lineStart":69,"lineEnd":74,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"ConditionalExpression","file":"src/middleware/queryParser.ts","lineStart":86,"lineEnd":86,"columnStart":14,"columnEnd":64,"statementCount":1},{"kind":"ConditionalExpression","file":"src/middleware/queryParser.ts","lineStart":107,"lineEnd":107,"columnStart":14,"columnEnd":33,"statementCount":1}],"dependencyProfile":{"internalDependencies":[],"externalDependencies":["express","zod/v4"],"unresolvedDependencies":[],"declaredExports":[{"name":"parseAndValidate","kind":"value","isDefault":false,"lineStart":31,"lineEnd":77},{"name":"sendToolResult","kind":"value","isDefault":false,"lineStart":94,"lineEnd":112}],"importedSymbols":[{"sourceModule":"express","importedName":"Response","localName":"Response","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"zod/v4","importedName":"z","localName":"z","isTypeOnly":false,"lineStart":2,"lineEnd":2}],"reExports":[],"package":"octocode-skill","file":"src/middleware/queryParser.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":400,"file":"src/middleware/queryParser.ts","lineStart":16,"lineEnd":16},{"value":500,"file":"src/middleware/queryParser.ts","lineStart":107,"lineEnd":107},{"value":200,"file":"src/middleware/queryParser.ts","lineStart":107,"lineEnd":107}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"<anonymous>","lineStart":13,"lineEnd":19,"sourceParams":["message"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[{"callee":"super","lineStart":14}],"paramConfidence":"medium"},{"functionName":"parseAndValidate","lineStart":31,"lineEnd":77,"sourceParams":["query"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[{"callee":"JSON.parse","lineStart":38},{"callee":"Object.entries","lineStart":62}],"paramConfidence":"high"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"prototypePollutionSites":[{"kind":"computed-property-write","detail":"Dynamic bracket assignment: cleanedQuery[key]","lineStart":64,"lineEnd":64,"guarded":true}],"treeSitterNodeCount":814,"symbolUsageSummary":{"declaredExportCount":2,"importedSymbolCount":2,"internalImportCount":0,"externalImportCount":2,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":true,"hasCleanupHooks":false,"exitPointCount":11,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0018","AST-ISSUE-0065","AST-ISSUE-0113","AST-ISSUE-0144","AST-ISSUE-0290","AST-ISSUE-0372"]},{"package":"octocode-skill","file":"src/middleware/readiness.ts","parseEngine":"typescript","nodeCount":75,"kindCounts":{"ImportDeclaration":2,"ImportClause":2,"NamedImports":2,"ImportSpecifier":5,"Identifier":23,"StringLiteral":5,"FirstStatement":1,"ExportKeyword":1,"VariableDeclarationList":1,"VariableDeclaration":1,"TypeReference":4,"ArrowFunction":1,"Parameter":3,"EqualsGreaterThanToken":1,"Block":2,"IfStatement":1,"PrefixUnaryExpression":1,"CallExpression":4,"ExpressionStatement":2,"PropertyAccessExpression":2,"FirstLiteralToken":1,"ObjectLiteralExpression":2,"PropertyAssignment":5,"FalseKeyword":1,"ReturnStatement":1,"EndOfFileToken":1},"functions":[{"kind":"ArrowFunction","name":"checkReadiness","nameHint":"checkReadiness","file":"src/middleware/readiness.ts","lineStart":4,"lineEnd":17,"columnStart":47,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":4,"loops":0,"lengthLines":14,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":14,"distinctOperators":0,"distinctOperands":14,"vocabulary":14,"length":14,"volume":53.302968908806456,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.017767656302935485},"maintainabilityIndex":62.63866239565293,"params":3}],"flows":[{"kind":"IfStatement","file":"src/middleware/readiness.ts","lineStart":5,"lineEnd":15,"columnStart":3,"columnEnd":4,"statementCount":2}],"dependencyProfile":{"internalDependencies":["src/mcpCache.ts"],"externalDependencies":["express"],"unresolvedDependencies":[],"declaredExports":[{"name":"checkReadiness","kind":"value","lineStart":4,"lineEnd":17}],"importedSymbols":[{"sourceModule":"express","importedName":"Request","localName":"Request","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"Response","localName":"Response","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"NextFunction","localName":"NextFunction","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"RequestHandler","localName":"RequestHandler","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"../mcpCache.js","resolvedModule":"src/mcpCache.ts","importedName":"isMcpInitialized","localName":"isMcpInitialized","isTypeOnly":false,"lineStart":2,"lineEnd":2}],"reExports":[],"package":"octocode-skill","file":"src/middleware/readiness.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":503,"file":"src/middleware/readiness.ts","lineStart":6,"lineEnd":6}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":157,"symbolUsageSummary":{"declaredExportCount":1,"importedSymbolCount":5,"internalImportCount":1,"externalImportCount":1,"reExportCount":0,"dominantInternalDependency":"src/mcpCache.ts"},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":1,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":[]},{"package":"octocode-skill","file":"src/routes/github.ts","parseEngine":"typescript","nodeCount":1016,"kindCounts":{"ImportDeclaration":8,"ImportClause":8,"NamedImports":8,"ImportSpecifier":24,"Identifier":371,"StringLiteral":61,"FirstStatement":16,"ExportKeyword":1,"VariableDeclarationList":16,"VariableDeclaration":16,"CallExpression":60,"ExpressionStatement":5,"PropertyAccessExpression":66,"ObjectLiteralExpression":16,"PropertyAssignment":64,"ArrowFunction":8,"Parameter":12,"EqualsGreaterThanToken":8,"Block":6,"ObjectBindingPattern":5,"BindingElement":14,"TypeReference":3,"StringKeyword":7,"UnknownKeyword":3,"ReturnStatement":6,"ElementAccessExpression":16,"FirstLiteralToken":25,"ConditionalExpression":24,"BinaryExpression":16,"AmpersandAmpersandToken":4,"TypeOfExpression":4,"EqualsEqualsEqualsToken":5,"QuestionToken":26,"ColonToken":24,"QuestionDotToken":8,"ShorthandPropertyAssignment":4,"BarBarToken":3,"GreaterThanToken":3,"TemplateExpression":4,"TemplateHead":4,"TemplateSpan":8,"LastTemplateToken":4,"PlusToken":1,"TemplateMiddle":4,"ArrayType":3,"ArrayLiteralExpression":7,"SpreadElement":1,"AsExpression":1,"TypeLiteral":1,"PropertySignature":2,"ParenthesizedExpression":1,"EndOfFileToken":1},"functions":[{"kind":"ArrowFunction","name":"transform","nameHint":"transform","file":"src/routes/github.ts","lineStart":43,"lineEnd":66,"columnStart":16,"columnEnd":6,"statementCount":3,"complexity":6,"maxBranchDepth":0,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":13,"loops":0,"lengthLines":24,"cognitiveComplexity":5,"halstead":{"operators":4,"operands":77,"distinctOperators":3,"distinctOperands":44,"vocabulary":47,"length":81,"volume":449.9216969858887,"difficulty":2.625,"effort":1181.0444545879577,"time":65.6135808104421,"estimatedBugs":0.14997389899529623},"maintainabilityIndex":50.50780434593632,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/github.ts","lineStart":48,"lineEnd":57,"columnStart":26,"columnEnd":10,"statementCount":3,"complexity":4,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":5,"loops":0,"lengthLines":10,"cognitiveComplexity":3,"halstead":{"operators":3,"operands":33,"distinctOperators":2,"distinctOperands":20,"vocabulary":22,"length":36,"volume":160.5395382709427,"difficulty":1.65,"effort":264.8902381470554,"time":14.716124341503079,"estimatedBugs":0.05351317942364757},"maintainabilityIndex":62.20451003460757,"params":1},{"kind":"ArrowFunction","name":"transform","nameHint":"transform","file":"src/routes/github.ts","lineStart":78,"lineEnd":96,"columnStart":16,"columnEnd":6,"statementCount":2,"complexity":7,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":8,"loops":0,"lengthLines":19,"cognitiveComplexity":7,"halstead":{"operators":2,"operands":57,"distinctOperators":1,"distinctOperands":32,"vocabulary":33,"length":59,"volume":297.6192530421487,"difficulty":0.890625,"effort":265.0671472406637,"time":14.725952624481316,"estimatedBugs":0.09920641768071624},"maintainabilityIndex":53.843187463342666,"params":2},{"kind":"ArrowFunction","name":"transform","nameHint":"transform","file":"src/routes/github.ts","lineStart":108,"lineEnd":132,"columnStart":16,"columnEnd":6,"statementCount":5,"complexity":6,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":10,"loops":0,"lengthLines":25,"cognitiveComplexity":8,"halstead":{"operators":6,"operands":64,"distinctOperators":4,"distinctOperands":34,"vocabulary":38,"length":70,"volume":367.35492594105096,"difficulty":3.764705882352941,"effort":1382.9832506016037,"time":76.83240281120021,"estimatedBugs":0.12245164198035031},"maintainabilityIndex":50.737604405851954,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/github.ts","lineStart":116,"lineEnd":117,"columnStart":18,"columnEnd":176,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":4,"loops":0,"lengthLines":2,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":16,"distinctOperators":0,"distinctOperands":10,"vocabulary":10,"length":16,"volume":53.150849518197795,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.017716949839399265},"maintainabilityIndex":81.08229147191112,"params":1},{"kind":"ArrowFunction","name":"transform","nameHint":"transform","file":"src/routes/github.ts","lineStart":144,"lineEnd":164,"columnStart":16,"columnEnd":6,"statementCount":5,"complexity":10,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":9,"loops":0,"lengthLines":21,"cognitiveComplexity":9,"halstead":{"operators":1,"operands":82,"distinctOperators":1,"distinctOperands":30,"vocabulary":31,"length":83,"volume":411.1982937621106,"difficulty":1.3666666666666667,"effort":561.9710014748845,"time":31.220611193049137,"estimatedBugs":0.13706609792070354},"maintainabilityIndex":51.50850501305885,"params":2},{"kind":"ArrowFunction","name":"transform","nameHint":"transform","file":"src/routes/github.ts","lineStart":176,"lineEnd":195,"columnStart":16,"columnEnd":6,"statementCount":3,"complexity":7,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":9,"loops":0,"lengthLines":20,"cognitiveComplexity":6,"halstead":{"operators":6,"operands":69,"distinctOperators":3,"distinctOperands":34,"vocabulary":37,"length":75,"volume":390.70900242217124,"difficulty":3.0441176470588234,"effort":1189.3641691380801,"time":66.07578717433779,"estimatedBugs":0.13023633414072375},"maintainabilityIndex":52.52966628178326,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/github.ts","lineStart":181,"lineEnd":187,"columnStart":22,"columnEnd":11,"statementCount":1,"complexity":5,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":5,"loops":0,"lengthLines":7,"cognitiveComplexity":4,"halstead":{"operators":4,"operands":33,"distinctOperators":2,"distinctOperands":17,"vocabulary":19,"length":37,"volume":157.17331799741265,"difficulty":1.9411764705882353,"effort":305.10114670085983,"time":16.950063705603323,"estimatedBugs":0.05239110599913755},"maintainabilityIndex":65.51347373977454,"params":1}],"flows":[{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":53,"lineEnd":53,"columnStart":19,"columnEnd":92,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":55,"lineEnd":55,"columnStart":22,"columnEnd":98,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":58,"lineEnd":58,"columnStart":23,"columnEnd":101,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":60,"lineEnd":62,"columnStart":24,"columnEnd":22,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":84,"lineEnd":89,"columnStart":16,"columnEnd":22,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":87,"lineEnd":87,"columnStart":20,"columnEnd":86,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":91,"lineEnd":91,"columnStart":21,"columnEnd":88,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":92,"lineEnd":92,"columnStart":20,"columnEnd":86,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":112,"lineEnd":120,"columnStart":23,"columnEnd":34,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":117,"lineEnd":117,"columnStart":70,"columnEnd":121,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":123,"lineEnd":131,"columnStart":14,"columnEnd":13,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":124,"lineEnd":127,"columnStart":38,"columnEnd":12,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":128,"lineEnd":131,"columnStart":46,"columnEnd":12,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":146,"lineEnd":146,"columnStart":25,"columnEnd":71,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":147,"lineEnd":147,"columnStart":25,"columnEnd":139,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":148,"lineEnd":148,"columnStart":23,"columnEnd":65,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":153,"lineEnd":153,"columnStart":18,"columnEnd":71,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":154,"lineEnd":154,"columnStart":20,"columnEnd":77,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":156,"lineEnd":156,"columnStart":16,"columnEnd":85,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":157,"lineEnd":157,"columnStart":21,"columnEnd":94,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":158,"lineEnd":158,"columnStart":23,"columnEnd":100,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":185,"lineEnd":185,"columnStart":19,"columnEnd":101,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":186,"lineEnd":186,"columnStart":16,"columnEnd":89,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/github.ts","lineStart":188,"lineEnd":190,"columnStart":15,"columnEnd":22,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/index.ts","src/types/guards.ts","src/utils/resilience.ts","src/utils/responseBuilder.ts","src/utils/responseFactory.ts","src/utils/routeFactory.ts","src/validation/index.ts"],"externalDependencies":["express"],"unresolvedDependencies":[],"declaredExports":[{"name":"githubRoutes","kind":"value","lineStart":33,"lineEnd":33}],"importedSymbols":[{"sourceModule":"express","importedName":"Router","localName":"Router","isTypeOnly":false,"lineStart":7,"lineEnd":7},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"githubSearchCode","localName":"githubSearchCode","isTypeOnly":false,"lineStart":8,"lineEnd":14},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"githubGetFileContent","localName":"githubGetFileContent","isTypeOnly":false,"lineStart":8,"lineEnd":14},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"githubSearchRepositories","localName":"githubSearchRepositories","isTypeOnly":false,"lineStart":8,"lineEnd":14},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"githubViewRepoStructure","localName":"githubViewRepoStructure","isTypeOnly":false,"lineStart":8,"lineEnd":14},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"githubSearchPullRequests","localName":"githubSearchPullRequests","isTypeOnly":false,"lineStart":8,"lineEnd":14},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"githubSearchSchema","localName":"githubSearchSchema","isTypeOnly":false,"lineStart":15,"lineEnd":21},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"githubContentSchema","localName":"githubContentSchema","isTypeOnly":false,"lineStart":15,"lineEnd":21},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"githubReposSchema","localName":"githubReposSchema","isTypeOnly":false,"lineStart":15,"lineEnd":21},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"githubStructureSchema","localName":"githubStructureSchema","isTypeOnly":false,"lineStart":15,"lineEnd":21},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"githubPRsSchema","localName":"githubPRsSchema","isTypeOnly":false,"lineStart":15,"lineEnd":21},{"sourceModule":"../utils/responseBuilder.js","resolvedModule":"src/utils/responseBuilder.ts","importedName":"ResearchResponse","localName":"ResearchResponse","isTypeOnly":false,"lineStart":22,"lineEnd":22},{"sourceModule":"../utils/responseBuilder.js","resolvedModule":"src/utils/responseBuilder.ts","importedName":"QuickResult","localName":"QuickResult","isTypeOnly":false,"lineStart":22,"lineEnd":22},{"sourceModule":"../utils/responseBuilder.js","resolvedModule":"src/utils/responseBuilder.ts","importedName":"detectLanguageFromPath","localName":"detectLanguageFromPath","isTypeOnly":false,"lineStart":22,"lineEnd":22},{"sourceModule":"../utils/resilience.js","resolvedModule":"src/utils/resilience.ts","importedName":"withGitHubResilience","localName":"withGitHubResilience","isTypeOnly":false,"lineStart":23,"lineEnd":23},{"sourceModule":"../utils/routeFactory.js","resolvedModule":"src/utils/routeFactory.ts","importedName":"createRouteHandler","localName":"createRouteHandler","isTypeOnly":false,"lineStart":24,"lineEnd":24},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"safeString","localName":"safeString","isTypeOnly":false,"lineStart":25,"lineEnd":30},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"safeNumber","localName":"safeNumber","isTypeOnly":false,"lineStart":25,"lineEnd":30},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"safeArray","localName":"safeArray","isTypeOnly":false,"lineStart":25,"lineEnd":30},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"transformPagination","localName":"transformPagination","isTypeOnly":false,"lineStart":25,"lineEnd":30},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"isObject","localName":"isObject","isTypeOnly":false,"lineStart":31,"lineEnd":31},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasProperty","localName":"hasProperty","isTypeOnly":false,"lineStart":31,"lineEnd":31},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasNumberProperty","localName":"hasNumberProperty","isTypeOnly":false,"lineStart":31,"lineEnd":31},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasBooleanProperty","localName":"hasBooleanProperty","isTypeOnly":false,"lineStart":31,"lineEnd":31}],"reExports":[],"package":"octocode-skill","file":"src/routes/github.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":200,"file":"src/routes/github.ts","lineStart":55,"lineEnd":55},{"value":10,"file":"src/routes/github.ts","lineStart":115,"lineEnd":115}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":1931,"symbolUsageSummary":{"declaredExportCount":1,"importedSymbolCount":24,"internalImportCount":23,"externalImportCount":1,"reExportCount":0,"dominantInternalDependency":"src/index.ts"},"boundaryRoleHints":[{"role":"transport","confidence":"medium","reasons":["path indicates controller, handler, or API transport code"]}],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":7,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0004","AST-ISSUE-0114","AST-ISSUE-0232","AST-ISSUE-0297"]},{"package":"octocode-skill","file":"src/routes/local.ts","parseEngine":"typescript","nodeCount":892,"kindCounts":{"ImportDeclaration":8,"ImportClause":8,"NamedImports":8,"ImportSpecifier":21,"Identifier":312,"StringLiteral":54,"FirstStatement":19,"ExportKeyword":1,"VariableDeclarationList":20,"VariableDeclaration":20,"CallExpression":54,"ExpressionStatement":6,"PropertyAccessExpression":47,"ObjectLiteralExpression":17,"PropertyAssignment":57,"ArrowFunction":6,"Parameter":10,"EqualsGreaterThanToken":6,"Block":9,"ObjectBindingPattern":4,"BindingElement":11,"TypeReference":5,"StringKeyword":6,"UnknownKeyword":3,"ConditionalExpression":15,"QuestionToken":15,"ColonToken":15,"ReturnStatement":8,"ElementAccessExpression":9,"FirstLiteralToken":23,"BinaryExpression":16,"AmpersandAmpersandToken":2,"TypeOfExpression":1,"EqualsEqualsEqualsToken":2,"QuestionDotToken":4,"ShorthandPropertyAssignment":7,"BarBarToken":3,"GreaterThanToken":2,"TemplateExpression":6,"TemplateHead":6,"TemplateSpan":7,"LastTemplateToken":6,"PlusToken":1,"TemplateMiddle":1,"ArrayLiteralExpression":6,"AsExpression":2,"ArrayType":2,"ForOfStatement":1,"IfStatement":6,"RegularExpressionLiteral":2,"FunctionDeclaration":1,"NumberKeyword":1,"FirstBinaryOperator":2,"AsteriskToken":2,"ParenthesizedExpression":3,"SlashToken":2,"EndOfFileToken":1},"functions":[{"kind":"ArrowFunction","name":"transform","nameHint":"transform","file":"src/routes/local.ts","lineStart":42,"lineEnd":65,"columnStart":16,"columnEnd":6,"statementCount":4,"complexity":7,"maxBranchDepth":0,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":14,"loops":0,"lengthLines":24,"cognitiveComplexity":6,"halstead":{"operators":4,"operands":78,"distinctOperators":3,"distinctOperands":43,"vocabulary":46,"length":82,"volume":452.9320803966751,"difficulty":2.7209302325581395,"effort":1232.3965908467671,"time":68.46647726926484,"estimatedBugs":0.150977360132225},"maintainabilityIndex":50.353022576246026,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/local.ts","lineStart":48,"lineEnd":58,"columnStart":26,"columnEnd":10,"statementCount":3,"complexity":6,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":8,"loops":0,"lengthLines":11,"cognitiveComplexity":5,"halstead":{"operators":3,"operands":42,"distinctOperators":2,"distinctOperands":25,"vocabulary":27,"length":45,"volume":213.96993759735608,"difficulty":1.68,"effort":359.4694951635582,"time":19.970527509086565,"estimatedBugs":0.07132331253245203},"maintainabilityIndex":60.158919205938645,"params":1},{"kind":"ArrowFunction","name":"transform","nameHint":"transform","file":"src/routes/local.ts","lineStart":77,"lineEnd":95,"columnStart":16,"columnEnd":6,"statementCount":2,"complexity":7,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":8,"loops":0,"lengthLines":19,"cognitiveComplexity":7,"halstead":{"operators":2,"operands":57,"distinctOperators":1,"distinctOperands":32,"vocabulary":33,"length":59,"volume":297.6192530421487,"difficulty":0.890625,"effort":265.0671472406637,"time":14.725952624481316,"estimatedBugs":0.09920641768071624},"maintainabilityIndex":53.843187463342666,"params":2},{"kind":"ArrowFunction","name":"transform","nameHint":"transform","file":"src/routes/local.ts","lineStart":107,"lineEnd":127,"columnStart":16,"columnEnd":6,"statementCount":6,"complexity":5,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":7,"loops":0,"lengthLines":21,"cognitiveComplexity":6,"halstead":{"operators":5,"operands":71,"distinctOperators":4,"distinctOperands":40,"vocabulary":44,"length":76,"volume":414.9168030164346,"difficulty":3.55,"effort":1472.9546507083428,"time":81.83081392824127,"estimatedBugs":0.1383056010054782},"maintainabilityIndex":52.153643728898786,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/local.ts","lineStart":115,"lineEnd":116,"columnStart":18,"columnEnd":108,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":3,"loops":0,"lengthLines":2,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":10,"distinctOperators":0,"distinctOperands":8,"vocabulary":8,"length":10,"volume":30,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.01},"maintainabilityIndex":82.82151420484541,"params":1},{"kind":"ArrowFunction","name":"transform","nameHint":"transform","file":"src/routes/local.ts","lineStart":139,"lineEnd":166,"columnStart":16,"columnEnd":6,"statementCount":7,"complexity":10,"maxBranchDepth":4,"maxLoopDepth":1,"returns":1,"awaits":0,"calls":14,"loops":1,"lengthLines":28,"cognitiveComplexity":14,"halstead":{"operators":1,"operands":76,"distinctOperators":1,"distinctOperands":37,"vocabulary":38,"length":77,"volume":404.09041853515606,"difficulty":1.027027027027027,"effort":415.01178119826835,"time":23.056210066570465,"estimatedBugs":0.13469680617838536},"maintainabilityIndex":48.83612040763209,"params":2},{"kind":"FunctionDeclaration","name":"formatSize","nameHint":"formatSize","file":"src/routes/local.ts","lineStart":171,"lineEnd":175,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":3,"awaits":0,"calls":2,"loops":0,"lengthLines":5,"cognitiveComplexity":2,"halstead":{"operators":6,"operands":15,"distinctOperators":3,"distinctOperands":4,"vocabulary":7,"length":21,"volume":58.95445336320969,"difficulty":5.625,"effort":331.61880016805446,"time":18.423266676003024,"estimatedBugs":0.01965148445440323},"maintainabilityIndex":71.9520040586983,"declared":true,"params":1}],"flows":[{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":45,"lineEnd":45,"columnStart":26,"columnEnd":74,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":53,"lineEnd":53,"columnStart":22,"columnEnd":93,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":54,"lineEnd":54,"columnStart":19,"columnEnd":110,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":55,"lineEnd":55,"columnStart":22,"columnEnd":120,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":83,"lineEnd":88,"columnStart":16,"columnEnd":22,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":86,"lineEnd":86,"columnStart":20,"columnEnd":86,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":90,"lineEnd":90,"columnStart":21,"columnEnd":88,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":91,"lineEnd":91,"columnStart":20,"columnEnd":86,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":111,"lineEnd":119,"columnStart":23,"columnEnd":27,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":116,"lineEnd":116,"columnStart":44,"columnEnd":106,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":124,"lineEnd":126,"columnStart":14,"columnEnd":165,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":126,"lineEnd":126,"columnStart":116,"columnEnd":155,"statementCount":1},{"kind":"ForOfStatement","file":"src/routes/local.ts","lineStart":147,"lineEnd":155,"columnStart":7,"columnEnd":8,"statementCount":1},{"kind":"IfStatement","file":"src/routes/local.ts","lineStart":148,"lineEnd":154,"columnStart":9,"columnEnd":10,"statementCount":2},{"kind":"IfStatement","file":"src/routes/local.ts","lineStart":150,"lineEnd":150,"columnStart":11,"columnEnd":50,"statementCount":1},{"kind":"IfStatement","file":"src/routes/local.ts","lineStart":151,"lineEnd":154,"columnStart":16,"columnEnd":10,"statementCount":2},{"kind":"IfStatement","file":"src/routes/local.ts","lineStart":153,"lineEnd":153,"columnStart":11,"columnEnd":52,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":160,"lineEnd":160,"columnStart":16,"columnEnd":85,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":161,"lineEnd":161,"columnStart":21,"columnEnd":88,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/local.ts","lineStart":162,"lineEnd":162,"columnStart":23,"columnEnd":102,"statementCount":1},{"kind":"IfStatement","file":"src/routes/local.ts","lineStart":172,"lineEnd":172,"columnStart":3,"columnEnd":40,"statementCount":1},{"kind":"IfStatement","file":"src/routes/local.ts","lineStart":173,"lineEnd":173,"columnStart":3,"columnEnd":68,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/index.ts","src/types/guards.ts","src/utils/resilience.ts","src/utils/responseBuilder.ts","src/utils/responseFactory.ts","src/utils/routeFactory.ts","src/validation/index.ts"],"externalDependencies":["express"],"unresolvedDependencies":[],"declaredExports":[{"name":"localRoutes","kind":"value","lineStart":32,"lineEnd":32}],"importedSymbols":[{"sourceModule":"express","importedName":"Router","localName":"Router","isTypeOnly":false,"lineStart":7,"lineEnd":7},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"localSearchCode","localName":"localSearchCode","isTypeOnly":false,"lineStart":8,"lineEnd":13},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"localGetFileContent","localName":"localGetFileContent","isTypeOnly":false,"lineStart":8,"lineEnd":13},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"localFindFiles","localName":"localFindFiles","isTypeOnly":false,"lineStart":8,"lineEnd":13},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"localViewStructure","localName":"localViewStructure","isTypeOnly":false,"lineStart":8,"lineEnd":13},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"localSearchSchema","localName":"localSearchSchema","isTypeOnly":false,"lineStart":14,"lineEnd":19},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"localContentSchema","localName":"localContentSchema","isTypeOnly":false,"lineStart":14,"lineEnd":19},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"localFindSchema","localName":"localFindSchema","isTypeOnly":false,"lineStart":14,"lineEnd":19},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"localStructureSchema","localName":"localStructureSchema","isTypeOnly":false,"lineStart":14,"lineEnd":19},{"sourceModule":"../utils/responseBuilder.js","resolvedModule":"src/utils/responseBuilder.ts","importedName":"ResearchResponse","localName":"ResearchResponse","isTypeOnly":false,"lineStart":20,"lineEnd":20},{"sourceModule":"../utils/responseBuilder.js","resolvedModule":"src/utils/responseBuilder.ts","importedName":"detectLanguageFromPath","localName":"detectLanguageFromPath","isTypeOnly":false,"lineStart":20,"lineEnd":20},{"sourceModule":"../utils/resilience.js","resolvedModule":"src/utils/resilience.ts","importedName":"withLocalResilience","localName":"withLocalResilience","isTypeOnly":false,"lineStart":21,"lineEnd":21},{"sourceModule":"../utils/routeFactory.js","resolvedModule":"src/utils/routeFactory.ts","importedName":"createRouteHandler","localName":"createRouteHandler","isTypeOnly":false,"lineStart":22,"lineEnd":22},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"safeString","localName":"safeString","isTypeOnly":false,"lineStart":23,"lineEnd":29},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"safeNumber","localName":"safeNumber","isTypeOnly":false,"lineStart":23,"lineEnd":29},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"safeArray","localName":"safeArray","isTypeOnly":false,"lineStart":23,"lineEnd":29},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"extractMatchLocations","localName":"extractMatchLocations","isTypeOnly":false,"lineStart":23,"lineEnd":29},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"transformPagination","localName":"transformPagination","isTypeOnly":false,"lineStart":23,"lineEnd":29},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"isObject","localName":"isObject","isTypeOnly":false,"lineStart":30,"lineEnd":30},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasNumberProperty","localName":"hasNumberProperty","isTypeOnly":false,"lineStart":30,"lineEnd":30},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasBooleanProperty","localName":"hasBooleanProperty","isTypeOnly":false,"lineStart":30,"lineEnd":30}],"reExports":[],"package":"octocode-skill","file":"src/routes/local.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":20,"file":"src/routes/local.ts","lineStart":114,"lineEnd":114},{"value":1024,"file":"src/routes/local.ts","lineStart":172,"lineEnd":172},{"value":1024,"file":"src/routes/local.ts","lineStart":173,"lineEnd":173},{"value":1024,"file":"src/routes/local.ts","lineStart":173,"lineEnd":173},{"value":1024,"file":"src/routes/local.ts","lineStart":173,"lineEnd":173},{"value":1024,"file":"src/routes/local.ts","lineStart":174,"lineEnd":174},{"value":1024,"file":"src/routes/local.ts","lineStart":174,"lineEnd":174}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[{"lineStart":149,"lineEnd":149,"pattern":"/\\[FILE\\]\\s+(.+?)(?:\\s+\\(|$)/"},{"lineStart":152,"lineEnd":152,"pattern":"/\\[DIR\\]\\s+(.+?)(?:\\s*$)/"}],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":1739,"symbolUsageSummary":{"declaredExportCount":1,"importedSymbolCount":21,"internalImportCount":20,"externalImportCount":1,"reExportCount":0,"dominantInternalDependency":"src/utils/responseFactory.ts"},"boundaryRoleHints":[{"role":"transport","confidence":"medium","reasons":["path indicates controller, handler, or API transport code"]}],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":9,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0005","AST-ISSUE-0115","AST-ISSUE-0233","AST-ISSUE-0279","AST-ISSUE-0298"]},{"package":"octocode-skill","file":"src/routes/lsp.ts","parseEngine":"typescript","nodeCount":917,"kindCounts":{"ImportDeclaration":8,"ImportClause":8,"NamedImports":8,"ImportSpecifier":16,"Identifier":320,"StringLiteral":49,"FirstStatement":24,"ExportKeyword":1,"VariableDeclarationList":24,"VariableDeclaration":24,"CallExpression":49,"ExpressionStatement":6,"PropertyAccessExpression":57,"ObjectLiteralExpression":19,"PropertyAssignment":36,"ArrowFunction":6,"Parameter":12,"EqualsGreaterThanToken":6,"Block":15,"ObjectBindingPattern":3,"BindingElement":9,"ReturnStatement":11,"BinaryExpression":23,"ElementAccessExpression":4,"FirstLiteralToken":13,"QuestionDotToken":4,"BarBarToken":5,"ShorthandPropertyAssignment":6,"AsExpression":4,"UnionType":2,"LiteralType":4,"FunctionDeclaration":2,"TypeReference":10,"StringKeyword":12,"UnknownKeyword":8,"TypeLiteral":2,"PropertySignature":6,"NumberKeyword":2,"QuestionToken":22,"IfStatement":7,"EqualsEqualsEqualsToken":5,"AmpersandAmpersandToken":6,"TypeOfExpression":3,"ConditionalExpression":20,"ColonToken":20,"ArrayLiteralExpression":3,"ParenthesizedExpression":4,"PlusToken":4,"ArrayType":1,"FirstAssignment":3,"EndOfFileToken":1},"functions":[{"kind":"ArrowFunction","name":"transform","nameHint":"transform","file":"src/routes/lsp.ts","lineStart":34,"lineEnd":45,"columnStart":16,"columnEnd":6,"statementCount":3,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":2,"loops":0,"lengthLines":12,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":21,"distinctOperators":1,"distinctOperands":16,"vocabulary":17,"length":22,"volume":89.92418250750745,"difficulty":0.65625,"effort":59.01274477055176,"time":3.278485820586209,"estimatedBugs":0.029974727502502484},"maintainabilityIndex":62.50870432755418,"params":2},{"kind":"ArrowFunction","name":"transform","nameHint":"transform","file":"src/routes/lsp.ts","lineStart":57,"lineEnd":68,"columnStart":16,"columnEnd":6,"statementCount":3,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":2,"loops":0,"lengthLines":12,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":21,"distinctOperators":1,"distinctOperands":16,"vocabulary":17,"length":22,"volume":89.92418250750745,"difficulty":0.65625,"effort":59.01274477055176,"time":3.278485820586209,"estimatedBugs":0.029974727502502484},"maintainabilityIndex":62.50870432755418,"params":2},{"kind":"ArrowFunction","name":"transform","nameHint":"transform","file":"src/routes/lsp.ts","lineStart":80,"lineEnd":92,"columnStart":16,"columnEnd":6,"statementCount":4,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":2,"loops":0,"lengthLines":13,"cognitiveComplexity":2,"halstead":{"operators":2,"operands":27,"distinctOperators":1,"distinctOperands":18,"vocabulary":19,"length":29,"volume":123.18989788986397,"difficulty":0.75,"effort":92.39242341739798,"time":5.1329124120776655,"estimatedBugs":0.04106329929662132},"maintainabilityIndex":60.65873669511926,"params":2},{"kind":"FunctionDeclaration","name":"extractLocations","nameHint":"extractLocations","file":"src/routes/lsp.ts","lineStart":97,"lineEnd":146,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":20,"maxBranchDepth":2,"maxLoopDepth":0,"returns":6,"awaits":0,"calls":20,"loops":0,"lengthLines":50,"cognitiveComplexity":36,"halstead":{"operators":13,"operands":133,"distinctOperators":4,"distinctOperands":34,"vocabulary":38,"length":146,"volume":766.1974169627634,"difficulty":7.823529411764706,"effort":5994.368026826325,"time":333.0204459347958,"estimatedBugs":0.2553991389875878},"maintainabilityIndex":40.052479552461435,"declared":true,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/lsp.ts","lineStart":120,"lineEnd":128,"columnStart":21,"columnEnd":6,"statementCount":3,"complexity":5,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":5,"loops":0,"lengthLines":9,"cognitiveComplexity":4,"halstead":{"operators":1,"operands":31,"distinctOperators":1,"distinctOperands":16,"vocabulary":17,"length":32,"volume":130.79881092001085,"difficulty":0.96875,"effort":126.71134807876051,"time":7.039519337708917,"estimatedBugs":0.04359960364000362},"maintainabilityIndex":63.691185986398324,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/lsp.ts","lineStart":134,"lineEnd":142,"columnStart":21,"columnEnd":6,"statementCount":3,"complexity":5,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":5,"loops":0,"lengthLines":9,"cognitiveComplexity":4,"halstead":{"operators":1,"operands":31,"distinctOperators":1,"distinctOperands":17,"vocabulary":18,"length":32,"volume":133.437600046154,"difficulty":0.9117647058823529,"effort":121.66369415972864,"time":6.759094119984924,"estimatedBugs":0.04447920001538466},"maintainabilityIndex":63.63044753836332,"params":1},{"kind":"FunctionDeclaration","name":"extractCallHierarchyLocations","nameHint":"extractCallHierarchyLocations","file":"src/routes/lsp.ts","lineStart":149,"lineEnd":177,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":16,"maxBranchDepth":3,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":16,"loops":0,"lengthLines":29,"cognitiveComplexity":16,"halstead":{"operators":9,"operands":92,"distinctOperators":5,"distinctOperands":35,"vocabulary":40,"length":101,"volume":537.5147375836236,"difficulty":6.571428571428571,"effort":3532.239704120955,"time":196.23553911783085,"estimatedBugs":0.17917157919454121},"maintainabilityIndex":46.82902656526963,"declared":true,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/lsp.ts","lineStart":162,"lineEnd":176,"columnStart":20,"columnEnd":4,"statementCount":7,"complexity":10,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":9,"loops":0,"lengthLines":15,"cognitiveComplexity":10,"halstead":{"operators":2,"operands":57,"distinctOperators":2,"distinctOperands":23,"vocabulary":25,"length":59,"volume":273.9875151967087,"difficulty":2.4782608695652173,"effort":679.0125376614086,"time":37.72291875896715,"estimatedBugs":0.09132917173223624},"maintainabilityIndex":55.93073539894566,"params":1}],"flows":[{"kind":"IfStatement","file":"src/routes/lsp.ts","lineStart":102,"lineEnd":115,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"IfStatement","file":"src/routes/lsp.ts","lineStart":104,"lineEnd":114,"columnStart":5,"columnEnd":6,"statementCount":3},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":105,"lineEnd":105,"columnStart":21,"columnEnd":84,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":106,"lineEnd":106,"columnStart":21,"columnEnd":88,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":110,"lineEnd":110,"columnStart":18,"columnEnd":65,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":111,"lineEnd":111,"columnStart":20,"columnEnd":77,"statementCount":1},{"kind":"IfStatement","file":"src/routes/lsp.ts","lineStart":118,"lineEnd":129,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":121,"lineEnd":121,"columnStart":21,"columnEnd":57,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":122,"lineEnd":122,"columnStart":21,"columnEnd":61,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":125,"lineEnd":125,"columnStart":16,"columnEnd":65,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":126,"lineEnd":126,"columnStart":18,"columnEnd":77,"statementCount":1},{"kind":"IfStatement","file":"src/routes/lsp.ts","lineStart":132,"lineEnd":143,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":135,"lineEnd":135,"columnStart":21,"columnEnd":57,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":136,"lineEnd":136,"columnStart":21,"columnEnd":61,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":139,"lineEnd":139,"columnStart":16,"columnEnd":65,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":140,"lineEnd":140,"columnStart":18,"columnEnd":77,"statementCount":1},{"kind":"IfStatement","file":"src/routes/lsp.ts","lineStart":154,"lineEnd":160,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/routes/lsp.ts","lineStart":156,"lineEnd":160,"columnStart":10,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/routes/lsp.ts","lineStart":158,"lineEnd":160,"columnStart":10,"columnEnd":4,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":163,"lineEnd":163,"columnStart":18,"columnEnd":86,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":163,"lineEnd":163,"columnStart":52,"columnEnd":86,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":164,"lineEnd":164,"columnStart":21,"columnEnd":47,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":165,"lineEnd":165,"columnStart":19,"columnEnd":63,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":166,"lineEnd":166,"columnStart":19,"columnEnd":59,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":168,"lineEnd":168,"columnStart":27,"columnEnd":76,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":169,"lineEnd":169,"columnStart":26,"columnEnd":79,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/lsp.ts","lineStart":174,"lineEnd":174,"columnStart":16,"columnEnd":77,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/index.ts","src/types/guards.ts","src/utils/resilience.ts","src/utils/responseBuilder.ts","src/utils/responseFactory.ts","src/utils/routeFactory.ts","src/validation/index.ts"],"externalDependencies":["express"],"unresolvedDependencies":[],"declaredExports":[{"name":"lspRoutes","kind":"value","lineStart":24,"lineEnd":24}],"importedSymbols":[{"sourceModule":"express","importedName":"Router","localName":"Router","isTypeOnly":false,"lineStart":7,"lineEnd":7},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"lspGotoDefinition","localName":"lspGotoDefinition","isTypeOnly":false,"lineStart":8,"lineEnd":12},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"lspFindReferences","localName":"lspFindReferences","isTypeOnly":false,"lineStart":8,"lineEnd":12},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"lspCallHierarchy","localName":"lspCallHierarchy","isTypeOnly":false,"lineStart":8,"lineEnd":12},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"lspDefinitionSchema","localName":"lspDefinitionSchema","isTypeOnly":false,"lineStart":13,"lineEnd":17},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"lspReferencesSchema","localName":"lspReferencesSchema","isTypeOnly":false,"lineStart":13,"lineEnd":17},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"lspCallsSchema","localName":"lspCallsSchema","isTypeOnly":false,"lineStart":13,"lineEnd":17},{"sourceModule":"../utils/responseBuilder.js","resolvedModule":"src/utils/responseBuilder.ts","importedName":"ResearchResponse","localName":"ResearchResponse","isTypeOnly":false,"lineStart":18,"lineEnd":18},{"sourceModule":"../utils/resilience.js","resolvedModule":"src/utils/resilience.ts","importedName":"withLspResilience","localName":"withLspResilience","isTypeOnly":false,"lineStart":19,"lineEnd":19},{"sourceModule":"../utils/routeFactory.js","resolvedModule":"src/utils/routeFactory.ts","importedName":"createRouteHandler","localName":"createRouteHandler","isTypeOnly":false,"lineStart":20,"lineEnd":20},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"safeString","localName":"safeString","isTypeOnly":false,"lineStart":21,"lineEnd":21},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"safeArray","localName":"safeArray","isTypeOnly":false,"lineStart":21,"lineEnd":21},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"isObject","localName":"isObject","isTypeOnly":false,"lineStart":22,"lineEnd":22},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasProperty","localName":"hasProperty","isTypeOnly":false,"lineStart":22,"lineEnd":22},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasNumberProperty","localName":"hasNumberProperty","isTypeOnly":false,"lineStart":22,"lineEnd":22},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasStringProperty","localName":"hasStringProperty","isTypeOnly":false,"lineStart":22,"lineEnd":22}],"reExports":[],"package":"octocode-skill","file":"src/routes/lsp.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"extractLocations","lineStart":97,"lineEnd":146,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[{"callee":"hasProperty","lineStart":102},{"callee":"isObject","lineStart":102},{"callee":"hasProperty","lineStart":118},{"callee":"safeArray","lineStart":119},{"callee":"hasProperty","lineStart":132},{"callee":"safeArray","lineStart":133}],"paramConfidence":"low"},{"functionName":"extractCallHierarchyLocations","lineStart":149,"lineEnd":177,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[{"callee":"hasProperty","lineStart":154},{"callee":"Array.isArray","lineStart":154},{"callee":"hasProperty","lineStart":156},{"callee":"Array.isArray","lineStart":156},{"callee":"hasProperty","lineStart":158},{"callee":"Array.isArray","lineStart":158}],"paramConfidence":"low"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":1765,"symbolUsageSummary":{"declaredExportCount":1,"importedSymbolCount":16,"internalImportCount":15,"externalImportCount":1,"reExportCount":0,"dominantInternalDependency":"src/types/guards.ts"},"boundaryRoleHints":[{"role":"transport","confidence":"medium","reasons":["path indicates controller, handler, or API transport code"]}],"cfgFlags":{"hasValidationChecks":true,"hasCleanupHooks":false,"exitPointCount":14,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0014","AST-ISSUE-0116","AST-ISSUE-0145","AST-ISSUE-0234","AST-ISSUE-0299"]},{"package":"octocode-skill","file":"src/routes/package.ts","parseEngine":"typescript","nodeCount":650,"kindCounts":{"ImportDeclaration":9,"ImportClause":9,"NamedImports":9,"ImportSpecifier":15,"Identifier":235,"StringLiteral":42,"FirstStatement":10,"ExportKeyword":1,"VariableDeclarationList":10,"VariableDeclaration":11,"CallExpression":49,"ExpressionStatement":3,"PropertyAccessExpression":35,"ArrowFunction":6,"AsyncKeyword":1,"Parameter":9,"TypeReference":11,"EqualsGreaterThanToken":6,"Block":15,"TryStatement":1,"AsExpression":3,"StringKeyword":10,"UnknownKeyword":8,"TypeAliasDeclaration":1,"IndexedAccessType":1,"TypeQuery":1,"LiteralType":1,"FirstLiteralToken":4,"AwaitExpression":1,"ObjectLiteralExpression":9,"ShorthandPropertyAssignment":4,"ObjectBindingPattern":1,"BindingElement":4,"ElementAccessExpression":1,"ConditionalExpression":13,"BinaryExpression":6,"EqualsEqualsEqualsToken":1,"QuestionToken":16,"ColonToken":13,"PropertyAssignment":21,"CatchClause":1,"FunctionDeclaration":2,"TypeLiteral":1,"PropertySignature":4,"IfStatement":10,"AmpersandAmpersandToken":4,"ReturnStatement":14,"PrefixUnaryExpression":3,"BarBarToken":1,"ParenthesizedExpression":1,"UnionType":1,"UndefinedKeyword":1,"EndOfFileToken":1},"functions":[{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/package.ts","lineStart":17,"lineEnd":47,"columnStart":3,"columnEnd":4,"statementCount":1,"complexity":4,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":1,"calls":10,"loops":0,"lengthLines":31,"cognitiveComplexity":3,"halstead":{"operators":2,"operands":57,"distinctOperators":2,"distinctOperands":37,"vocabulary":39,"length":59,"volume":311.8387309128727,"difficulty":1.5405405405405406,"effort":480.4002070819931,"time":26.688900393444058,"estimatedBugs":0.10394624363762422},"maintainabilityIndex":49.466946914467954,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/package.ts","lineStart":25,"lineEnd":25,"columnStart":9,"columnEnd":64,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":3,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":95.12415216859318,"params":0},{"kind":"FunctionDeclaration","name":"extractPackages","nameHint":"extractPackages","file":"src/routes/package.ts","lineStart":51,"lineEnd":110,"columnStart":1,"columnEnd":2,"statementCount":5,"complexity":22,"maxBranchDepth":2,"maxLoopDepth":0,"returns":10,"awaits":0,"calls":32,"loops":0,"lengthLines":60,"cognitiveComplexity":33,"halstead":{"operators":8,"operands":153,"distinctOperators":3,"distinctOperands":35,"vocabulary":38,"length":161,"volume":844.9163296644172,"difficulty":6.557142857142857,"effort":5540.237075942392,"time":307.7909486634662,"estimatedBugs":0.28163877655480574},"maintainabilityIndex":37.75882020445094,"declared":true,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/package.ts","lineStart":61,"lineEnd":69,"columnStart":32,"columnEnd":6,"statementCount":2,"complexity":4,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":5,"loops":0,"lengthLines":9,"cognitiveComplexity":3,"halstead":{"operators":0,"operands":25,"distinctOperators":0,"distinctOperands":14,"vocabulary":14,"length":25,"volume":95.1838730514401,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.03172795768381337},"maintainabilityIndex":64.79224977086062,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/package.ts","lineStart":74,"lineEnd":86,"columnStart":33,"columnEnd":6,"statementCount":2,"complexity":6,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":6,"loops":0,"lengthLines":13,"cognitiveComplexity":6,"halstead":{"operators":0,"operands":34,"distinctOperators":0,"distinctOperands":17,"vocabulary":17,"length":34,"volume":138.97373660251154,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.046324578867503845},"maintainabilityIndex":59.888619044014945,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/package.ts","lineStart":91,"lineEnd":99,"columnStart":30,"columnEnd":6,"statementCount":2,"complexity":5,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":6,"loops":0,"lengthLines":9,"cognitiveComplexity":4,"halstead":{"operators":1,"operands":28,"distinctOperators":1,"distinctOperands":15,"vocabulary":16,"length":29,"volume":116,"difficulty":0.9333333333333333,"effort":108.26666666666667,"time":6.014814814814815,"estimatedBugs":0.03866666666666667},"maintainabilityIndex":64.05631161017553,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/package.ts","lineStart":104,"lineEnd":109,"columnStart":22,"columnEnd":5,"statementCount":1,"complexity":4,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":4,"loops":0,"lengthLines":6,"cognitiveComplexity":3,"halstead":{"operators":0,"operands":25,"distinctOperators":0,"distinctOperands":12,"vocabulary":12,"length":25,"volume":89.62406251802891,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.029874687506009637},"maintainabilityIndex":68.81652200974652,"params":1},{"kind":"FunctionDeclaration","name":"extractRepositoryUrl","nameHint":"extractRepositoryUrl","file":"src/routes/package.ts","lineStart":113,"lineEnd":127,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":6,"maxBranchDepth":2,"maxLoopDepth":0,"returns":4,"awaits":0,"calls":5,"loops":0,"lengthLines":15,"cognitiveComplexity":6,"halstead":{"operators":1,"operands":25,"distinctOperators":1,"distinctOperands":12,"vocabulary":13,"length":26,"volume":96.21143267166839,"difficulty":1.0416666666666667,"effort":100.22024236632124,"time":5.567791242573403,"estimatedBugs":0.032070477557222796},"maintainabilityIndex":59.6511907232267,"declared":true,"params":1}],"flows":[{"kind":"TryStatement","file":"src/routes/package.ts","lineStart":18,"lineEnd":46,"columnStart":5,"columnEnd":6,"statementCount":9},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":33,"lineEnd":33,"columnStart":24,"columnEnd":69,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":43,"lineEnd":43,"columnStart":18,"columnEnd":37,"statementCount":1},{"kind":"IfStatement","file":"src/routes/package.ts","lineStart":60,"lineEnd":70,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/routes/package.ts","lineStart":62,"lineEnd":62,"columnStart":7,"columnEnd":47,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":65,"lineEnd":65,"columnStart":18,"columnEnd":77,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":66,"lineEnd":66,"columnStart":22,"columnEnd":89,"statementCount":1},{"kind":"IfStatement","file":"src/routes/package.ts","lineStart":73,"lineEnd":87,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/routes/package.ts","lineStart":75,"lineEnd":75,"columnStart":7,"columnEnd":47,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":78,"lineEnd":78,"columnStart":18,"columnEnd":77,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":79,"lineEnd":79,"columnStart":22,"columnEnd":89,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":80,"lineEnd":84,"columnStart":21,"columnEnd":24,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":82,"lineEnd":84,"columnStart":13,"columnEnd":24,"statementCount":1},{"kind":"IfStatement","file":"src/routes/package.ts","lineStart":90,"lineEnd":100,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/routes/package.ts","lineStart":92,"lineEnd":92,"columnStart":7,"columnEnd":47,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":95,"lineEnd":95,"columnStart":18,"columnEnd":77,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":96,"lineEnd":96,"columnStart":22,"columnEnd":89,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":106,"lineEnd":106,"columnStart":14,"columnEnd":73,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":107,"lineEnd":107,"columnStart":18,"columnEnd":85,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/package.ts","lineStart":108,"lineEnd":108,"columnStart":17,"columnEnd":82,"statementCount":1},{"kind":"IfStatement","file":"src/routes/package.ts","lineStart":114,"lineEnd":116,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/routes/package.ts","lineStart":117,"lineEnd":119,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/routes/package.ts","lineStart":120,"lineEnd":125,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"IfStatement","file":"src/routes/package.ts","lineStart":122,"lineEnd":124,"columnStart":5,"columnEnd":6,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/index.ts","src/middleware/queryParser.ts","src/types/guards.ts","src/utils/resilience.ts","src/utils/responseBuilder.ts","src/utils/responseFactory.ts","src/utils/responseParser.ts","src/validation/index.ts"],"externalDependencies":["express"],"unresolvedDependencies":[],"declaredExports":[{"name":"packageRoutes","kind":"value","lineStart":12,"lineEnd":12}],"importedSymbols":[{"sourceModule":"express","importedName":"Router","localName":"Router","isTypeOnly":false,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"Request","localName":"Request","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"Response","localName":"Response","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"NextFunction","localName":"NextFunction","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"packageSearch","localName":"packageSearch","isTypeOnly":false,"lineStart":2,"lineEnd":2},{"sourceModule":"../middleware/queryParser.js","resolvedModule":"src/middleware/queryParser.ts","importedName":"parseAndValidate","localName":"parseAndValidate","isTypeOnly":false,"lineStart":3,"lineEnd":3},{"sourceModule":"../validation/index.js","resolvedModule":"src/validation/index.ts","importedName":"packageSearchSchema","localName":"packageSearchSchema","isTypeOnly":false,"lineStart":4,"lineEnd":4},{"sourceModule":"../utils/responseBuilder.js","resolvedModule":"src/utils/responseBuilder.ts","importedName":"ResearchResponse","localName":"ResearchResponse","isTypeOnly":false,"lineStart":5,"lineEnd":5},{"sourceModule":"../utils/responseParser.js","resolvedModule":"src/utils/responseParser.ts","importedName":"parseToolResponse","localName":"parseToolResponse","isTypeOnly":false,"lineStart":6,"lineEnd":6},{"sourceModule":"../utils/resilience.js","resolvedModule":"src/utils/resilience.ts","importedName":"withPackageResilience","localName":"withPackageResilience","isTypeOnly":false,"lineStart":7,"lineEnd":7},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"safeString","localName":"safeString","isTypeOnly":false,"lineStart":9,"lineEnd":9},{"sourceModule":"../utils/responseFactory.js","resolvedModule":"src/utils/responseFactory.ts","importedName":"safeArray","localName":"safeArray","isTypeOnly":false,"lineStart":9,"lineEnd":9},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"isObject","localName":"isObject","isTypeOnly":false,"lineStart":10,"lineEnd":10},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasProperty","localName":"hasProperty","isTypeOnly":false,"lineStart":10,"lineEnd":10},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasStringProperty","localName":"hasStringProperty","isTypeOnly":false,"lineStart":10,"lineEnd":10}],"reExports":[],"package":"octocode-skill","file":"src/routes/package.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":500,"file":"src/routes/package.ts","lineStart":43,"lineEnd":43},{"value":200,"file":"src/routes/package.ts","lineStart":43,"lineEnd":43}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"<anonymous>","lineStart":17,"lineEnd":47,"sourceParams":["req"],"hasSinkInBody":true,"sinkKinds":["response"],"hasValidation":false,"callsWithInputArgs":[{"callee":"parseAndValidate","lineStart":19}],"paramConfidence":"high"},{"functionName":"extractPackages","lineStart":51,"lineEnd":110,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[{"callee":"hasProperty","lineStart":60},{"callee":"Array.isArray","lineStart":60},{"callee":"hasProperty","lineStart":73},{"callee":"Array.isArray","lineStart":73},{"callee":"hasProperty","lineStart":90},{"callee":"Array.isArray","lineStart":90},{"callee":"safeArray","lineStart":103}],"paramConfidence":"low"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":1351,"symbolUsageSummary":{"declaredExportCount":1,"importedSymbolCount":15,"internalImportCount":11,"externalImportCount":1,"reExportCount":0,"dominantInternalDependency":"src/types/guards.ts"},"boundaryRoleHints":[{"role":"transport","confidence":"medium","reasons":["path indicates controller, handler, or API transport code"]}],"cfgFlags":{"hasValidationChecks":true,"hasCleanupHooks":false,"exitPointCount":20,"asyncBoundaryCount":1,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0003","AST-ISSUE-0015","AST-ISSUE-0117","AST-ISSUE-0136","AST-ISSUE-0235","AST-ISSUE-0300"]},{"package":"octocode-skill","file":"src/routes/prompts.ts","parseEngine":"typescript","nodeCount":398,"kindCounts":{"ImportDeclaration":5,"ImportClause":5,"NamedImports":5,"ImportSpecifier":8,"Identifier":142,"StringLiteral":14,"FirstStatement":8,"ExportKeyword":1,"VariableDeclarationList":8,"VariableDeclaration":10,"CallExpression":21,"ExpressionStatement":9,"PropertyAccessExpression":31,"InterfaceDeclaration":2,"PropertySignature":6,"StringKeyword":4,"BooleanKeyword":1,"QuestionToken":1,"ArrayType":2,"TypeReference":8,"ArrowFunction":6,"AsyncKeyword":2,"Parameter":9,"EqualsGreaterThanToken":6,"Block":7,"TryStatement":2,"ArrayBindingPattern":1,"BindingElement":3,"ParenthesizedExpression":3,"ObjectLiteralExpression":8,"PropertyAssignment":24,"QuestionDotToken":2,"BinaryExpression":2,"QuestionQuestionToken":2,"FalseKeyword":3,"TrueKeyword":2,"ShorthandPropertyAssignment":1,"ArrayLiteralExpression":3,"CatchClause":2,"ObjectBindingPattern":1,"ElementAccessExpression":1,"IfStatement":1,"PrefixUnaryExpression":1,"FirstLiteralToken":4,"NullKeyword":1,"TemplateExpression":2,"TemplateHead":2,"TemplateSpan":2,"LastTemplateToken":2,"ReturnStatement":1,"EndOfFileToken":1},"functions":[{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/prompts.ts","lineStart":49,"lineEnd":81,"columnStart":28,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":6,"loops":0,"lengthLines":33,"cognitiveComplexity":2,"halstead":{"operators":3,"operands":45,"distinctOperators":2,"distinctOperands":27,"vocabulary":29,"length":48,"volume":233.18308776612344,"difficulty":1.6666666666666667,"effort":388.63847961020576,"time":21.591026645011432,"estimatedBugs":0.07772769592204115},"maintainabilityIndex":50.02753980780632,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/prompts.ts","lineStart":59,"lineEnd":67,"columnStart":71,"columnEnd":7,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":9,"cognitiveComplexity":1,"halstead":{"operators":2,"operands":19,"distinctOperators":2,"distinctOperands":9,"vocabulary":11,"length":21,"volume":72.64806399138324,"difficulty":2.111111111111111,"effort":153.36813509292017,"time":8.520451949606676,"estimatedBugs":0.02421602133046108},"maintainabilityIndex":66.01737005424773,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/prompts.ts","lineStart":62,"lineEnd":66,"columnStart":35,"columnEnd":9,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":5,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":9,"distinctOperators":1,"distinctOperands":4,"vocabulary":5,"length":10,"volume":23.21928094887362,"difficulty":1.125,"effort":26.121691067482825,"time":1.4512050593046013,"estimatedBugs":0.007739760316291207},"maintainabilityIndex":75.05449951594908,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/prompts.ts","lineStart":88,"lineEnd":138,"columnStart":40,"columnEnd":2,"statementCount":1,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":11,"loops":0,"lengthLines":51,"cognitiveComplexity":3,"halstead":{"operators":3,"operands":68,"distinctOperators":2,"distinctOperands":38,"vocabulary":40,"length":71,"volume":377.85689473700273,"difficulty":1.7894736842105263,"effort":676.1649695293734,"time":37.564720529409634,"estimatedBugs":0.1259522982456676},"maintainabilityIndex":44.301136812407954,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/prompts.ts","lineStart":116,"lineEnd":116,"columnStart":7,"columnEnd":38,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":97.75768108835572,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/prompts.ts","lineStart":126,"lineEnd":130,"columnStart":37,"columnEnd":11,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":5,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":9,"distinctOperators":1,"distinctOperands":4,"vocabulary":5,"length":10,"volume":23.21928094887362,"difficulty":1.125,"effort":26.121691067482825,"time":1.4512050593046013,"estimatedBugs":0.007739760316291207},"maintainabilityIndex":75.05449951594908,"params":1}],"flows":[{"kind":"TryStatement","file":"src/routes/prompts.ts","lineStart":54,"lineEnd":80,"columnStart":3,"columnEnd":4,"statementCount":3},{"kind":"TryStatement","file":"src/routes/prompts.ts","lineStart":93,"lineEnd":137,"columnStart":3,"columnEnd":4,"statementCount":6},{"kind":"IfStatement","file":"src/routes/prompts.ts","lineStart":99,"lineEnd":112,"columnStart":5,"columnEnd":6,"statementCount":3}],"dependencyProfile":{"internalDependencies":["src/index.ts","src/mcpCache.ts","src/middleware/readiness.ts","src/utils/asyncTimeout.ts"],"externalDependencies":["express"],"unresolvedDependencies":[],"declaredExports":[{"name":"promptsRoutes","kind":"value","lineStart":7,"lineEnd":7}],"importedSymbols":[{"sourceModule":"express","importedName":"Router","localName":"Router","isTypeOnly":false,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"Request","localName":"Request","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"Response","localName":"Response","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"NextFunction","localName":"NextFunction","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"../mcpCache.js","resolvedModule":"src/mcpCache.ts","importedName":"getMcpContent","localName":"getMcpContent","isTypeOnly":false,"lineStart":2,"lineEnd":2},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"logPromptCall","localName":"logPromptCall","isTypeOnly":false,"lineStart":3,"lineEnd":3},{"sourceModule":"../utils/asyncTimeout.js","resolvedModule":"src/utils/asyncTimeout.ts","importedName":"fireAndForgetWithTimeout","localName":"fireAndForgetWithTimeout","isTypeOnly":false,"lineStart":4,"lineEnd":4},{"sourceModule":"../middleware/readiness.js","resolvedModule":"src/middleware/readiness.ts","importedName":"checkReadiness","localName":"checkReadiness","isTypeOnly":false,"lineStart":5,"lineEnd":5}],"reExports":[],"package":"octocode-skill","file":"src/routes/prompts.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":404,"file":"src/routes/prompts.ts","lineStart":101,"lineEnd":101},{"value":5,"file":"src/routes/prompts.ts","lineStart":106,"lineEnd":106},{"value":5000,"file":"src/routes/prompts.ts","lineStart":117,"lineEnd":117}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"<anonymous>","lineStart":88,"lineEnd":138,"sourceParams":["req"],"hasSinkInBody":true,"sinkKinds":["response"],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"high"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":776,"symbolUsageSummary":{"declaredExportCount":1,"importedSymbolCount":8,"internalImportCount":4,"externalImportCount":1,"reExportCount":0,"dominantInternalDependency":"src/mcpCache.ts"},"boundaryRoleHints":[{"role":"transport","confidence":"medium","reasons":["path indicates controller, handler, or API transport code"]}],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":1,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0137"]},{"package":"octocode-skill","file":"src/routes/tools.ts","parseEngine":"typescript","nodeCount":2042,"kindCounts":{"ImportDeclaration":12,"ImportClause":12,"NamedImports":12,"ImportSpecifier":45,"Identifier":766,"StringLiteral":85,"FirstStatement":47,"ExportKeyword":1,"VariableDeclarationList":50,"VariableDeclaration":57,"CallExpression":72,"ExpressionStatement":46,"PropertyAccessExpression":134,"InterfaceDeclaration":2,"PropertySignature":11,"QuestionToken":8,"StringKeyword":29,"TypeReference":51,"FirstNode":2,"ObjectLiteralExpression":56,"PropertyAssignment":161,"FunctionDeclaration":4,"Parameter":32,"UnionType":6,"UnknownKeyword":13,"LiteralType":7,"NullKeyword":7,"Block":49,"TryStatement":8,"TypeAliasDeclaration":2,"IndexedAccessType":1,"TypeQuery":1,"FirstLiteralToken":14,"ReturnStatement":14,"AsExpression":11,"ShorthandPropertyAssignment":5,"CatchClause":8,"ElementAccessExpression":7,"ConditionalExpression":3,"ColonToken":3,"ArrowFunction":12,"EqualsGreaterThanToken":12,"TrueKeyword":9,"ArrayLiteralExpression":11,"AsyncKeyword":7,"BinaryExpression":24,"EqualsEqualsEqualsToken":5,"IfStatement":20,"FirstAssignment":12,"ObjectBindingPattern":3,"BindingElement":3,"ExclamationEqualsEqualsToken":2,"PrefixUnaryExpression":8,"FalseKeyword":4,"TemplateExpression":5,"TemplateHead":5,"TemplateSpan":6,"LastTemplateToken":5,"ForOfStatement":3,"FunctionType":3,"TypeParameter":1,"AnyKeyword":2,"ArrayType":4,"AmpersandAmpersandToken":4,"TemplateMiddle":1,"TypeOfExpression":2,"SpreadElement":1,"NewExpression":2,"TypeLiteral":3,"UndefinedKeyword":3,"QuestionDotToken":1,"NonNullExpression":2,"AwaitExpression":1,"GreaterThanToken":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"toJsonSchema","nameHint":"toJsonSchema","file":"src/routes/tools.ts","lineStart":105,"lineEnd":118,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":1,"loops":0,"lengthLines":14,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":11,"distinctOperators":0,"distinctOperands":9,"vocabulary":9,"length":11,"volume":34.86917501586544,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.011623058338621813},"maintainabilityIndex":63.929201527566114,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"getToolJsonSchema","nameHint":"getToolJsonSchema","file":"src/routes/tools.ts","lineStart":120,"lineEnd":123,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":4,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":7,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":7,"volume":14,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.004666666666666667},"maintainabilityIndex":78.57247557652539,"declared":true,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/tools.ts","lineStart":131,"lineEnd":153,"columnStart":26,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":23,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":59,"distinctOperators":0,"distinctOperands":35,"vocabulary":35,"length":59,"volume":302.627697999753,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.10087589933325102},"maintainabilityIndex":52.78945987317535,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/tools.ts","lineStart":158,"lineEnd":211,"columnStart":26,"columnEnd":2,"statementCount":1,"complexity":5,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":5,"loops":0,"lengthLines":54,"cognitiveComplexity":4,"halstead":{"operators":7,"operands":78,"distinctOperators":3,"distinctOperands":34,"vocabulary":37,"length":85,"volume":442.80353607846075,"difficulty":3.441176470588235,"effort":1523.7651094464677,"time":84.65361719147043,"estimatedBugs":0.14760117869282025},"maintainabilityIndex":43.008305424398785,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/tools.ts","lineStart":171,"lineEnd":190,"columnStart":33,"columnEnd":6,"statementCount":5,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":20,"cognitiveComplexity":2,"halstead":{"operators":2,"operands":29,"distinctOperators":1,"distinctOperands":13,"vocabulary":14,"length":31,"volume":118.02800258378574,"difficulty":1.1153846153846154,"effort":131.64661826653025,"time":7.313701014807236,"estimatedBugs":0.03934266752792858},"maintainabilityIndex":56.707803073354185,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/tools.ts","lineStart":228,"lineEnd":290,"columnStart":36,"columnEnd":2,"statementCount":1,"complexity":6,"maxBranchDepth":2,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":10,"loops":0,"lengthLines":63,"cognitiveComplexity":6,"halstead":{"operators":7,"operands":92,"distinctOperators":2,"distinctOperands":46,"vocabulary":48,"length":99,"volume":552.9112875713945,"difficulty":2,"effort":1105.822575142789,"time":61.43458750793272,"estimatedBugs":0.18430376252379815},"maintainabilityIndex":40.73812285207239,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/tools.ts","lineStart":295,"lineEnd":316,"columnStart":30,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":5,"loops":0,"lengthLines":22,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":29,"distinctOperators":0,"distinctOperands":20,"vocabulary":20,"length":29,"volume":125.33591475173351,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.041778638250577836},"maintainabilityIndex":55.75668158522995,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/tools.ts","lineStart":340,"lineEnd":367,"columnStart":29,"columnEnd":2,"statementCount":1,"complexity":4,"maxBranchDepth":2,"maxLoopDepth":1,"returns":0,"awaits":0,"calls":4,"loops":1,"lengthLines":28,"cognitiveComplexity":4,"halstead":{"operators":1,"operands":29,"distinctOperators":1,"distinctOperands":19,"vocabulary":20,"length":30,"volume":129.65784284662087,"difficulty":0.7631578947368421,"effort":98.94940638294752,"time":5.497189243497084,"estimatedBugs":0.043219280948873624},"maintainabilityIndex":53.099890129588374,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/tools.ts","lineStart":384,"lineEnd":404,"columnStart":28,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":3,"loops":0,"lengthLines":21,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":20,"distinctOperators":0,"distinctOperands":15,"vocabulary":15,"length":20,"volume":78.13781191217038,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.026045937304056792},"maintainabilityIndex":57.634310676039696,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/tools.ts","lineStart":425,"lineEnd":453,"columnStart":33,"columnEnd":2,"statementCount":1,"complexity":4,"maxBranchDepth":2,"maxLoopDepth":1,"returns":0,"awaits":0,"calls":6,"loops":1,"lengthLines":29,"cognitiveComplexity":4,"halstead":{"operators":1,"operands":39,"distinctOperators":1,"distinctOperands":24,"vocabulary":25,"length":40,"volume":185.75424759098897,"difficulty":0.8125,"effort":150.92532616767855,"time":8.384740342648808,"estimatedBugs":0.061918082530329654},"maintainabilityIndex":51.67415198315166,"params":3},{"kind":"FunctionDeclaration","name":"extractReposFromQueries","nameHint":"extractReposFromQueries","file":"src/routes/tools.ts","lineStart":498,"lineEnd":516,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":8,"maxBranchDepth":2,"maxLoopDepth":1,"returns":1,"awaits":0,"calls":3,"loops":1,"lengthLines":19,"cognitiveComplexity":10,"halstead":{"operators":5,"operands":36,"distinctOperators":2,"distinctOperands":12,"vocabulary":14,"length":41,"volume":156.10155180436178,"difficulty":3,"effort":468.30465541308536,"time":26.016925300726964,"estimatedBugs":0.05203385060145393},"maintainabilityIndex":55.67102534559901,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"extractResearchParams","nameHint":"extractResearchParams","file":"src/routes/tools.ts","lineStart":521,"lineEnd":533,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":0,"loops":0,"lengthLines":13,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":16,"distinctOperators":1,"distinctOperands":8,"vocabulary":9,"length":17,"volume":53.8887250245193,"difficulty":1,"effort":53.8887250245193,"time":2.993818056917739,"estimatedBugs":0.017962908341506434},"maintainabilityIndex":63.30750280145471,"declared":true,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/tools.ts","lineStart":564,"lineEnd":677,"columnStart":37,"columnEnd":2,"statementCount":4,"complexity":12,"maxBranchDepth":2,"maxLoopDepth":0,"returns":6,"awaits":1,"calls":23,"loops":0,"lengthLines":114,"cognitiveComplexity":13,"halstead":{"operators":6,"operands":153,"distinctOperators":4,"distinctOperands":69,"vocabulary":73,"length":159,"volume":984.1821048619228,"difficulty":4.434782608695652,"effort":4364.633682431136,"time":242.479649023952,"estimatedBugs":0.32806070162064094},"maintainabilityIndex":32.55916270035593,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/tools.ts","lineStart":575,"lineEnd":581,"columnStart":19,"columnEnd":4,"statementCount":1,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":7,"cognitiveComplexity":2,"halstead":{"operators":2,"operands":8,"distinctOperators":2,"distinctOperands":8,"vocabulary":10,"length":10,"volume":33.219280948873624,"difficulty":1,"effort":33.219280948873624,"time":1.845515608270757,"estimatedBugs":0.01107309364962454},"maintainabilityIndex":70.50875859615255,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/tools.ts","lineStart":622,"lineEnd":622,"columnStart":7,"columnEnd":38,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":3,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":95.12415216859318,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/routes/tools.ts","lineStart":633,"lineEnd":639,"columnStart":7,"columnEnd":8,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":7,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":9,"distinctOperators":0,"distinctOperands":7,"vocabulary":7,"length":9,"volume":25.26619429851844,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.008422064766172813},"maintainabilityIndex":71.60995648018942,"params":0}],"flows":[{"kind":"TryStatement","file":"src/routes/tools.ts","lineStart":109,"lineEnd":117,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"ConditionalExpression","file":"src/routes/tools.ts","lineStart":122,"lineEnd":122,"columnStart":10,"columnEnd":62,"statementCount":1},{"kind":"TryStatement","file":"src/routes/tools.ts","lineStart":163,"lineEnd":210,"columnStart":3,"columnEnd":4,"statementCount":9},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":178,"lineEnd":180,"columnStart":7,"columnEnd":8,"statementCount":1},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":182,"lineEnd":187,"columnStart":7,"columnEnd":8,"statementCount":1},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":198,"lineEnd":201,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"TryStatement","file":"src/routes/tools.ts","lineStart":233,"lineEnd":289,"columnStart":3,"columnEnd":4,"statementCount":11},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":243,"lineEnd":255,"columnStart":5,"columnEnd":6,"statementCount":3},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":262,"lineEnd":273,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":265,"lineEnd":272,"columnStart":7,"columnEnd":8,"statementCount":2},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":275,"lineEnd":280,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"TryStatement","file":"src/routes/tools.ts","lineStart":300,"lineEnd":315,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"TryStatement","file":"src/routes/tools.ts","lineStart":345,"lineEnd":366,"columnStart":3,"columnEnd":4,"statementCount":4},{"kind":"ForOfStatement","file":"src/routes/tools.ts","lineStart":349,"lineEnd":354,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":351,"lineEnd":353,"columnStart":7,"columnEnd":8,"statementCount":1},{"kind":"TryStatement","file":"src/routes/tools.ts","lineStart":389,"lineEnd":403,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"TryStatement","file":"src/routes/tools.ts","lineStart":430,"lineEnd":452,"columnStart":3,"columnEnd":4,"statementCount":4},{"kind":"ForOfStatement","file":"src/routes/tools.ts","lineStart":435,"lineEnd":438,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":437,"lineEnd":437,"columnStart":7,"columnEnd":46,"statementCount":1},{"kind":"ForOfStatement","file":"src/routes/tools.ts","lineStart":500,"lineEnd":514,"columnStart":3,"columnEnd":4,"statementCount":4},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":503,"lineEnd":505,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":507,"lineEnd":509,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":511,"lineEnd":513,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":526,"lineEnd":526,"columnStart":3,"columnEnd":39,"statementCount":1},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":577,"lineEnd":580,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"TryStatement","file":"src/routes/tools.ts","lineStart":583,"lineEnd":676,"columnStart":3,"columnEnd":4,"statementCount":16},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":588,"lineEnd":601,"columnStart":5,"columnEnd":6,"statementCount":3},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":605,"lineEnd":613,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":618,"lineEnd":618,"columnStart":5,"columnEnd":27,"statementCount":1},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":627,"lineEnd":627,"columnStart":5,"columnEnd":27,"statementCount":1},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":647,"lineEnd":660,"columnStart":5,"columnEnd":6,"statementCount":3},{"kind":"ConditionalExpression","file":"src/routes/tools.ts","lineStart":650,"lineEnd":650,"columnStart":18,"columnEnd":48,"statementCount":1},{"kind":"ConditionalExpression","file":"src/routes/tools.ts","lineStart":665,"lineEnd":665,"columnStart":16,"columnEnd":42,"statementCount":1},{"kind":"IfStatement","file":"src/routes/tools.ts","lineStart":674,"lineEnd":674,"columnStart":5,"columnEnd":27,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/index.ts","src/mcpCache.ts","src/middleware/readiness.ts","src/types/mcp.ts","src/utils/asyncTimeout.ts","src/utils/resilience.ts","src/utils/responseParser.ts","src/validation/toolCallSchema.ts"],"externalDependencies":["express","octocode-mcp/public","zod-to-json-schema","zod/v4"],"unresolvedDependencies":[],"declaredExports":[{"name":"toolsRoutes","kind":"value","lineStart":64,"lineEnd":64}],"importedSymbols":[{"sourceModule":"express","importedName":"Router","localName":"Router","isTypeOnly":false,"lineStart":15,"lineEnd":15},{"sourceModule":"express","importedName":"Request","localName":"Request","isTypeOnly":true,"lineStart":15,"lineEnd":15},{"sourceModule":"express","importedName":"Response","localName":"Response","isTypeOnly":true,"lineStart":15,"lineEnd":15},{"sourceModule":"express","importedName":"NextFunction","localName":"NextFunction","isTypeOnly":true,"lineStart":15,"lineEnd":15},{"sourceModule":"../mcpCache.js","resolvedModule":"src/mcpCache.ts","importedName":"getMcpContent","localName":"getMcpContent","isTypeOnly":false,"lineStart":16,"lineEnd":16},{"sourceModule":"../types/mcp.js","resolvedModule":"src/types/mcp.ts","importedName":"transformToJsonSchema","localName":"transformToJsonSchema","isTypeOnly":false,"lineStart":17,"lineEnd":17},{"sourceModule":"zod-to-json-schema","importedName":"zodToJsonSchema","localName":"zodToJsonSchema","isTypeOnly":false,"lineStart":18,"lineEnd":18},{"sourceModule":"zod/v4","importedName":"z","localName":"z","isTypeOnly":true,"lineStart":19,"lineEnd":19},{"sourceModule":"octocode-mcp/public","importedName":"GitHubCodeSearchQuerySchema","localName":"GitHubCodeSearchQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"octocode-mcp/public","importedName":"GitHubViewRepoStructureQuerySchema","localName":"GitHubViewRepoStructureQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"octocode-mcp/public","importedName":"GitHubReposSearchSingleQuerySchema","localName":"GitHubReposSearchSingleQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"octocode-mcp/public","importedName":"GitHubPullRequestSearchQuerySchema","localName":"GitHubPullRequestSearchQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"octocode-mcp/public","importedName":"FileContentQuerySchema","localName":"FileContentQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"octocode-mcp/public","importedName":"RipgrepQuerySchema","localName":"RipgrepQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"octocode-mcp/public","importedName":"FetchContentQuerySchema","localName":"FetchContentQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"octocode-mcp/public","importedName":"FindFilesQuerySchema","localName":"FindFilesQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"octocode-mcp/public","importedName":"ViewStructureQuerySchema","localName":"ViewStructureQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"octocode-mcp/public","importedName":"LSPGotoDefinitionQuerySchema","localName":"LSPGotoDefinitionQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"octocode-mcp/public","importedName":"LSPFindReferencesQuerySchema","localName":"LSPFindReferencesQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"octocode-mcp/public","importedName":"LSPCallHierarchyQuerySchema","localName":"LSPCallHierarchyQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"octocode-mcp/public","importedName":"PackageSearchQuerySchema","localName":"PackageSearchQuerySchema","isTypeOnly":false,"lineStart":22,"lineEnd":36},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"githubSearchCode","localName":"githubSearchCode","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"githubGetFileContent","localName":"githubGetFileContent","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"githubViewRepoStructure","localName":"githubViewRepoStructure","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"githubSearchRepositories","localName":"githubSearchRepositories","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"githubSearchPullRequests","localName":"githubSearchPullRequests","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"packageSearch","localName":"packageSearch","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"localSearchCode","localName":"localSearchCode","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"localGetFileContent","localName":"localGetFileContent","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"localFindFiles","localName":"localFindFiles","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"localViewStructure","localName":"localViewStructure","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"lspGotoDefinition","localName":"lspGotoDefinition","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"lspFindReferences","localName":"lspFindReferences","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"lspCallHierarchy","localName":"lspCallHierarchy","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"logToolCall","localName":"logToolCall","isTypeOnly":false,"lineStart":37,"lineEnd":52},{"sourceModule":"../utils/resilience.js","resolvedModule":"src/utils/resilience.ts","importedName":"withGitHubResilience","localName":"withGitHubResilience","isTypeOnly":false,"lineStart":53,"lineEnd":58},{"sourceModule":"../utils/resilience.js","resolvedModule":"src/utils/resilience.ts","importedName":"withLocalResilience","localName":"withLocalResilience","isTypeOnly":false,"lineStart":53,"lineEnd":58},{"sourceModule":"../utils/resilience.js","resolvedModule":"src/utils/resilience.ts","importedName":"withLspResilience","localName":"withLspResilience","isTypeOnly":false,"lineStart":53,"lineEnd":58},{"sourceModule":"../utils/resilience.js","resolvedModule":"src/utils/resilience.ts","importedName":"withPackageResilience","localName":"withPackageResilience","isTypeOnly":false,"lineStart":53,"lineEnd":58},{"sourceModule":"../utils/responseParser.js","resolvedModule":"src/utils/responseParser.ts","importedName":"parseToolResponse","localName":"parseToolResponse","isTypeOnly":false,"lineStart":59,"lineEnd":59},{"sourceModule":"../utils/responseParser.js","resolvedModule":"src/utils/responseParser.ts","importedName":"parseToolResponseBulk","localName":"parseToolResponseBulk","isTypeOnly":false,"lineStart":59,"lineEnd":59},{"sourceModule":"../utils/asyncTimeout.js","resolvedModule":"src/utils/asyncTimeout.ts","importedName":"fireAndForgetWithTimeout","localName":"fireAndForgetWithTimeout","isTypeOnly":false,"lineStart":60,"lineEnd":60},{"sourceModule":"../validation/toolCallSchema.js","resolvedModule":"src/validation/toolCallSchema.ts","importedName":"validateToolCallBody","localName":"validateToolCallBody","isTypeOnly":false,"lineStart":61,"lineEnd":61},{"sourceModule":"../validation/toolCallSchema.js","resolvedModule":"src/validation/toolCallSchema.ts","importedName":"getValidationHints","localName":"getValidationHints","isTypeOnly":false,"lineStart":61,"lineEnd":61},{"sourceModule":"../middleware/readiness.js","resolvedModule":"src/middleware/readiness.ts","importedName":"checkReadiness","localName":"checkReadiness","isTypeOnly":false,"lineStart":62,"lineEnd":62}],"reExports":[],"package":"octocode-skill","file":"src/routes/tools.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":2,"magicNumbers":[{"value":404,"file":"src/routes/tools.ts","lineStart":245,"lineEnd":245},{"value":5,"file":"src/routes/tools.ts","lineStart":250,"lineEnd":250},{"value":404,"file":"src/routes/tools.ts","lineStart":590,"lineEnd":590},{"value":400,"file":"src/routes/tools.ts","lineStart":606,"lineEnd":606},{"value":5000,"file":"src/routes/tools.ts","lineStart":640,"lineEnd":640},{"value":500,"file":"src/routes/tools.ts","lineStart":650,"lineEnd":650},{"value":200,"file":"src/routes/tools.ts","lineStart":650,"lineEnd":650},{"value":500,"file":"src/routes/tools.ts","lineStart":665,"lineEnd":665},{"value":200,"file":"src/routes/tools.ts","lineStart":665,"lineEnd":665}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[{"file":"src/routes/tools.ts","lineStart":111,"lineEnd":111}],"nonNull":[{"file":"src/routes/tools.ts","lineStart":610,"lineEnd":610},{"file":"src/routes/tools.ts","lineStart":615,"lineEnd":615}]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[{"lineStart":206,"lineEnd":206,"kind":"hardcoded-secret","context":"literal"}],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"<anonymous>","lineStart":158,"lineEnd":211,"sourceParams":["req"],"hasSinkInBody":true,"sinkKinds":["response"],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"high"},{"functionName":"<anonymous>","lineStart":228,"lineEnd":290,"sourceParams":["req"],"hasSinkInBody":true,"sinkKinds":["response"],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"high"},{"functionName":"<anonymous>","lineStart":564,"lineEnd":677,"sourceParams":["req"],"hasSinkInBody":true,"sinkKinds":["response"],"hasValidation":false,"callsWithInputArgs":[{"callee":"validateToolCallBody","lineStart":604}],"paramConfidence":"high"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[{"file":"src/routes/tools.ts","lineStart":575,"lineEnd":581}],"listenerRemovals":[],"prototypePollutionSites":[{"kind":"computed-property-write","detail":"Dynamic bracket assignment: schemas[toolName]","lineStart":352,"lineEnd":352,"guarded":false},{"kind":"computed-property-write","detail":"Dynamic bracket assignment: schemas[toolName]","lineStart":437,"lineEnd":437,"guarded":true}],"treeSitterNodeCount":4045,"symbolUsageSummary":{"declaredExportCount":1,"importedSymbolCount":45,"internalImportCount":26,"externalImportCount":4,"reExportCount":0,"dominantInternalDependency":"src/index.ts"},"boundaryRoleHints":[{"role":"transport","confidence":"medium","reasons":["path indicates controller, handler, or API transport code"]}],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":15,"asyncBoundaryCount":1,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0062","AST-ISSUE-0063","AST-ISSUE-0125","AST-ISSUE-0138","AST-ISSUE-0139","AST-ISSUE-0140","AST-ISSUE-0249","AST-ISSUE-0262","AST-ISSUE-0286","AST-ISSUE-0373"]},{"package":"octocode-skill","file":"src/server-init.ts","parseEngine":"typescript","nodeCount":624,"kindCounts":{"ImportDeclaration":2,"ImportClause":2,"NamedImports":2,"ImportSpecifier":3,"Identifier":189,"StringLiteral":31,"FirstStatement":16,"VariableDeclarationList":16,"VariableDeclaration":17,"CallExpression":51,"BinaryExpression":17,"PropertyAccessExpression":52,"BarBarToken":5,"FirstLiteralToken":15,"TemplateExpression":5,"TemplateHead":5,"TemplateSpan":6,"TemplateMiddle":1,"LastTemplateToken":5,"InterfaceDeclaration":1,"PropertySignature":1,"UnionType":3,"LiteralType":4,"StringKeyword":1,"FunctionDeclaration":6,"AsyncKeyword":3,"TypeReference":8,"NullKeyword":5,"Block":26,"TryStatement":3,"AwaitExpression":8,"ObjectLiteralExpression":2,"PropertyAssignment":3,"IfStatement":9,"PrefixUnaryExpression":4,"ReturnStatement":7,"AsExpression":1,"ParenthesizedExpression":1,"CatchClause":3,"UnknownKeyword":1,"InstanceOfKeyword":1,"AmpersandAmpersandToken":1,"ExpressionStatement":34,"NewExpression":3,"ArrowFunction":7,"Parameter":6,"EqualsGreaterThanToken":7,"MetaProperty":1,"ArrayLiteralExpression":1,"BooleanKeyword":1,"WhileStatement":1,"MinusToken":1,"FirstBinaryOperator":1,"QuestionDotToken":4,"EqualsEqualsEqualsToken":4,"TrueKeyword":1,"FirstAssignment":2,"AsteriskToken":1,"FalseKeyword":1,"VoidKeyword":3,"QuestionQuestionToken":1,"NumberKeyword":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"checkHealth","nameHint":"checkHealth","file":"src/server-init.ts","lineStart":38,"lineEnd":55,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":5,"maxBranchDepth":2,"maxLoopDepth":0,"returns":3,"awaits":2,"calls":5,"loops":0,"lengthLines":18,"cognitiveComplexity":5,"halstead":{"operators":1,"operands":23,"distinctOperators":1,"distinctOperands":16,"vocabulary":17,"length":24,"volume":98.09910819000814,"difficulty":0.71875,"effort":70.50873401156835,"time":3.917151889531575,"estimatedBugs":0.032699702730002715},"maintainabilityIndex":57.9993511628183,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"startServer","nameHint":"startServer","file":"src/server-init.ts","lineStart":63,"lineEnd":83,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":8,"loops":0,"lengthLines":21,"cognitiveComplexity":0,"halstead":{"operators":3,"operands":39,"distinctOperators":1,"distinctOperands":28,"vocabulary":29,"length":42,"volume":204.035201795358,"difficulty":0.6964285714285714,"effort":142.09594410748147,"time":7.894219117082304,"estimatedBugs":0.068011733931786},"maintainabilityIndex":54.85006743721278,"declared":true,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server-init.ts","lineStart":64,"lineEnd":82,"columnStart":22,"columnEnd":4,"statementCount":5,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":8,"loops":0,"lengthLines":19,"cognitiveComplexity":0,"halstead":{"operators":2,"operands":36,"distinctOperators":1,"distinctOperands":27,"vocabulary":28,"length":38,"volume":182.67948703818894,"difficulty":0.6666666666666666,"effort":121.78632469212596,"time":6.765906927340331,"estimatedBugs":0.06089316234606298},"maintainabilityIndex":56.134430409224294,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server-init.ts","lineStart":73,"lineEnd":76,"columnStart":23,"columnEnd":6,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":4,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":6,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":6,"volume":13.931568569324174,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.004643856189774725},"maintainabilityIndex":78.7218789164598,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server-init.ts","lineStart":78,"lineEnd":81,"columnStart":16,"columnEnd":6,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":4,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":6,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":6,"volume":13.931568569324174,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.004643856189774725},"maintainabilityIndex":78.7218789164598,"params":0},{"kind":"FunctionDeclaration","name":"waitForReady","nameHint":"waitForReady","file":"src/server-init.ts","lineStart":89,"lineEnd":109,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":4,"maxBranchDepth":2,"maxLoopDepth":0,"returns":2,"awaits":2,"calls":6,"loops":0,"lengthLines":21,"cognitiveComplexity":5,"halstead":{"operators":7,"operands":31,"distinctOperators":6,"distinctOperands":21,"vocabulary":27,"length":38,"volume":180.6857250822118,"difficulty":4.428571428571429,"effort":800.1796396497951,"time":44.454424424988616,"estimatedBugs":0.06022857502740393},"maintainabilityIndex":54.816133734852464,"declared":true,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server-init.ts","lineStart":104,"lineEnd":104,"columnStart":23,"columnEnd":69,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":3,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":95.12415216859318,"params":1},{"kind":"FunctionDeclaration","name":"main","nameHint":"main","file":"src/server-init.ts","lineStart":115,"lineEnd":162,"columnStart":1,"columnEnd":2,"statementCount":9,"complexity":6,"maxBranchDepth":2,"maxLoopDepth":0,"returns":0,"awaits":4,"calls":21,"loops":0,"lengthLines":48,"cognitiveComplexity":7,"halstead":{"operators":5,"operands":67,"distinctOperators":4,"distinctOperands":25,"vocabulary":29,"length":72,"volume":349.77463164918515,"difficulty":5.36,"effort":1874.7920256396326,"time":104.15511253553514,"estimatedBugs":0.11659154388306171},"maintainabilityIndex":44.70680738493306,"declared":true,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server-init.ts","lineStart":158,"lineEnd":161,"columnStart":26,"columnEnd":4,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":4,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":7,"distinctOperators":1,"distinctOperands":6,"vocabulary":7,"length":8,"volume":22.458839376460833,"difficulty":0.5833333333333334,"effort":13.100989636268821,"time":0.72783275757049,"estimatedBugs":0.007486279792153611},"maintainabilityIndex":77.26975036905904,"params":1},{"kind":"FunctionDeclaration","name":"killServerChild","nameHint":"killServerChild","file":"src/server-init.ts","lineStart":168,"lineEnd":175,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":8,"cognitiveComplexity":2,"halstead":{"operators":0,"operands":4,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":4,"volume":6.339850002884624,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.002113283334294875},"maintainabilityIndex":74.28035114405367,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"cleanupAndExit","nameHint":"cleanupAndExit","file":"src/server-init.ts","lineStart":177,"lineEnd":180,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":4,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":4,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":4,"volume":8,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0026666666666666666},"maintainabilityIndex":80.40873411293721,"declared":true,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server-init.ts","lineStart":182,"lineEnd":182,"columnStart":22,"columnEnd":47,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":97.75768108835572,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server-init.ts","lineStart":183,"lineEnd":183,"columnStart":23,"columnEnd":48,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":97.75768108835572,"params":0}],"flows":[{"kind":"TryStatement","file":"src/server-init.ts","lineStart":39,"lineEnd":54,"columnStart":3,"columnEnd":4,"statementCount":3},{"kind":"IfStatement","file":"src/server-init.ts","lineStart":44,"lineEnd":46,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/server-init.ts","lineStart":50,"lineEnd":52,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"WhileStatement","file":"src/server-init.ts","lineStart":93,"lineEnd":106,"columnStart":3,"columnEnd":4,"statementCount":5},{"kind":"IfStatement","file":"src/server-init.ts","lineStart":96,"lineEnd":98,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/server-init.ts","lineStart":100,"lineEnd":102,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/server-init.ts","lineStart":119,"lineEnd":122,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"IfStatement","file":"src/server-init.ts","lineStart":124,"lineEnd":134,"columnStart":3,"columnEnd":4,"statementCount":3},{"kind":"IfStatement","file":"src/server-init.ts","lineStart":127,"lineEnd":133,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"TryStatement","file":"src/server-init.ts","lineStart":139,"lineEnd":144,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/server-init.ts","lineStart":147,"lineEnd":151,"columnStart":3,"columnEnd":4,"statementCount":3},{"kind":"IfStatement","file":"src/server-init.ts","lineStart":169,"lineEnd":169,"columnStart":3,"columnEnd":28,"statementCount":1},{"kind":"TryStatement","file":"src/server-init.ts","lineStart":170,"lineEnd":174,"columnStart":3,"columnEnd":4,"statementCount":1}],"dependencyProfile":{"internalDependencies":[],"externalDependencies":["child_process","path"],"unresolvedDependencies":[],"declaredExports":[],"importedSymbols":[{"sourceModule":"child_process","importedName":"spawn","localName":"spawn","isTypeOnly":false,"lineStart":17,"lineEnd":17},{"sourceModule":"child_process","importedName":"ChildProcess","localName":"ChildProcess","isTypeOnly":true,"lineStart":17,"lineEnd":17},{"sourceModule":"path","importedName":"join","localName":"join","isTypeOnly":false,"lineStart":18,"lineEnd":18}],"reExports":[],"package":"octocode-skill","file":"src/server-init.ts"},"emptyCatches":[{"file":"src/server-init.ts","lineStart":172,"lineEnd":174}],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":10,"file":"src/server-init.ts","lineStart":24,"lineEnd":24},{"value":10,"file":"src/server-init.ts","lineStart":27,"lineEnd":27},{"value":10,"file":"src/server-init.ts","lineStart":28,"lineEnd":28},{"value":5000,"file":"src/server-init.ts","lineStart":41,"lineEnd":41},{"value":1.5,"file":"src/server-init.ts","lineStart":105,"lineEnd":105},{"value":2000,"file":"src/server-init.ts","lineStart":105,"lineEnd":105},{"value":130,"file":"src/server-init.ts","lineStart":182,"lineEnd":182},{"value":143,"file":"src/server-init.ts","lineStart":183,"lineEnd":183}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[{"name":"waitForReady","awaitCount":2,"lineStart":89,"lineEnd":109}],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[{"method":"error","lineStart":51,"lineEnd":51,"hasSensitiveArg":false,"argSnippet":"`[server-init] Health check error: ${error.message}`"},{"method":"error","lineStart":74,"lineEnd":74,"hasSensitiveArg":false,"argSnippet":"`[server-init] Failed to start server: ${err.message}`"},{"method":"log","lineStart":79,"lineEnd":79,"hasSensitiveArg":false,"argSnippet":"`[server-init] Started server process (pid: ${child.pid})`"},{"method":"log","lineStart":101,"lineEnd":101,"hasSensitiveArg":false,"argSnippet":"'[server-init] Server initializing...'"},{"method":"log","lineStart":120,"lineEnd":120,"hasSensitiveArg":false,"argSnippet":"'ok'"},{"method":"log","lineStart":125,"lineEnd":125,"hasSensitiveArg":false,"argSnippet":"'[server-init] Server is initializing, waiting...'"},{"method":"log","lineStart":128,"lineEnd":128,"hasSensitiveArg":false,"argSnippet":"'ok'"},{"method":"error","lineStart":131,"lineEnd":131,"hasSensitiveArg":false,"argSnippet":"'[server-init] ERROR: Server stuck in initializing state'"},{"method":"log","lineStart":137,"lineEnd":137,"hasSensitiveArg":false,"argSnippet":"'[server-init] Server not running, starting...'"},{"method":"error","lineStart":142,"lineEnd":142,"hasSensitiveArg":false,"argSnippet":"'[server-init] ERROR: Failed to spawn server process'"},{"method":"error","lineStart":148,"lineEnd":148,"hasSensitiveArg":false,"argSnippet":"'[server-init] ERROR: Server failed to start within timeout'"},{"method":"log","lineStart":153,"lineEnd":153,"hasSensitiveArg":false,"argSnippet":"'ok'"},{"method":"log","lineStart":159,"lineEnd":159,"hasSensitiveArg":false,"argSnippet":"`[server-init] Server exited (code ${code})`"}],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[{"file":"src/server-init.ts","lineStart":94,"lineEnd":94},{"file":"src/server-init.ts","lineStart":104,"lineEnd":104}],"syncIoCalls":[],"timerCalls":[{"kind":"setTimeout","lineStart":78,"lineEnd":81,"hasCleanup":false},{"kind":"setTimeout","lineStart":104,"lineEnd":104,"hasCleanup":false}],"listenerRegistrations":[{"file":"src/server-init.ts","lineStart":73,"lineEnd":76},{"file":"src/server-init.ts","lineStart":158,"lineEnd":161},{"file":"src/server-init.ts","lineStart":182,"lineEnd":182},{"file":"src/server-init.ts","lineStart":183,"lineEnd":183}],"listenerRemovals":[],"topLevelEffects":[{"kind":"process-handler","lineStart":182,"lineEnd":182,"detail":"process.on()","weight":4,"confidence":"high"},{"kind":"process-handler","lineStart":183,"lineEnd":183,"detail":"process.on()","weight":4,"confidence":"high"}],"treeSitterNodeCount":1307,"effectProfile":{"totalEffects":2,"totalWeight":8,"byKind":{"process-handler":2},"highestRisk":"process-handler"},"symbolUsageSummary":{"declaredExportCount":0,"importedSymbolCount":3,"internalImportCount":0,"externalImportCount":2,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[{"role":"runtime-bootstrap","confidence":"medium","reasons":["module has import-time side effects"]}],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":7,"asyncBoundaryCount":8,"hasTopLevelEffects":true},"issueIds":["AST-ISSUE-0009","AST-ISSUE-0010","AST-ISSUE-0118","AST-ISSUE-0134","AST-ISSUE-0172","AST-ISSUE-0236","AST-ISSUE-0243","AST-ISSUE-0250","AST-ISSUE-0257","AST-ISSUE-0259"]},{"package":"octocode-skill","file":"src/server.ts","parseEngine":"typescript","nodeCount":1190,"kindCounts":{"ImportDeclaration":13,"ImportClause":13,"Identifier":388,"NamedImports":13,"ImportSpecifier":26,"StringLiteral":49,"FirstStatement":22,"VariableDeclarationList":22,"VariableDeclaration":22,"BinaryExpression":35,"PropertyAccessExpression":86,"BarBarToken":3,"ArrowFunction":16,"Parameter":14,"QuestionToken":2,"StringKeyword":2,"NumberKeyword":2,"EqualsGreaterThanToken":16,"Block":26,"FirstLiteralToken":32,"IfStatement":10,"PrefixUnaryExpression":2,"ReturnStatement":5,"CallExpression":126,"FirstBinaryOperator":1,"GreaterThanToken":3,"ThrowStatement":1,"NewExpression":2,"TemplateExpression":9,"TemplateHead":9,"TemplateSpan":13,"LastTemplateToken":9,"PlusToken":1,"FirstTemplateToken":12,"AsteriskToken":5,"UnionType":2,"TypeReference":12,"LiteralType":2,"NullKeyword":5,"FirstNode":1,"FalseKeyword":2,"FunctionDeclaration":6,"VoidKeyword":6,"MinusToken":2,"SlashToken":13,"ExpressionStatement":68,"TemplateMiddle":4,"FirstAssignment":6,"ExportKeyword":2,"AsyncKeyword":2,"ObjectLiteralExpression":7,"PropertyAssignment":28,"ConditionalExpression":1,"ColonToken":1,"ParenthesizedExpression":2,"ArrayLiteralExpression":1,"TrueKeyword":1,"AwaitExpression":2,"MetaProperty":1,"EqualsEqualsEqualsToken":1,"ElementAccessExpression":1,"EndOfFileToken":1},"functions":[{"kind":"ArrowFunction","name":"getPort","nameHint":"getPort","file":"src/server.ts","lineStart":17,"lineEnd":32,"columnStart":17,"columnEnd":2,"statementCount":5,"complexity":5,"maxBranchDepth":1,"maxLoopDepth":0,"returns":3,"awaits":0,"calls":2,"loops":0,"lengthLines":16,"cognitiveComplexity":4,"halstead":{"operators":5,"operands":18,"distinctOperators":4,"distinctOperands":10,"vocabulary":14,"length":23,"volume":87.56916320732489,"difficulty":3.6,"effort":315.2489875463696,"time":17.51383264146498,"estimatedBugs":0.029189721069108297},"maintainabilityIndex":59.46048674106258,"params":1},{"kind":"FunctionDeclaration","name":"checkIdleRestart","nameHint":"checkIdleRestart","file":"src/server.ts","lineStart":47,"lineEnd":58,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":3,"maxBranchDepth":2,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":7,"loops":0,"lengthLines":12,"cognitiveComplexity":2,"halstead":{"operators":7,"operands":28,"distinctOperators":3,"distinctOperands":16,"vocabulary":19,"length":35,"volume":148.67746297052548,"difficulty":2.625,"effort":390.27834029762937,"time":21.682130016534966,"estimatedBugs":0.04955915432350849},"maintainabilityIndex":60.84518129190056,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"startIdleCheck","nameHint":"startIdleCheck","file":"src/server.ts","lineStart":63,"lineEnd":72,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":4,"loops":0,"lengthLines":10,"cognitiveComplexity":1,"halstead":{"operators":3,"operands":14,"distinctOperators":2,"distinctOperands":10,"vocabulary":12,"length":17,"volume":60.94436251225965,"difficulty":1.4,"effort":85.3221075171635,"time":4.740117084286862,"estimatedBugs":0.02031478750408655},"maintainabilityIndex":65.41890200694723,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"stopIdleCheck","nameHint":"stopIdleCheck","file":"src/server.ts","lineStart":77,"lineEnd":83,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":3,"loops":0,"lengthLines":7,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":8,"distinctOperators":1,"distinctOperands":6,"vocabulary":7,"length":9,"volume":25.26619429851844,"difficulty":0.6666666666666666,"effort":16.844129532345626,"time":0.9357849740192015,"estimatedBugs":0.008422064766172813},"maintainabilityIndex":71.4754535562128,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"createServer","nameHint":"createServer","file":"src/server.ts","lineStart":85,"lineEnd":170,"columnStart":1,"columnEnd":2,"statementCount":12,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":30,"loops":0,"lengthLines":86,"cognitiveComplexity":1,"halstead":{"operators":14,"operands":158,"distinctOperators":5,"distinctOperands":90,"vocabulary":95,"length":172,"volume":1130.015164632923,"difficulty":4.388888888888889,"effort":4959.511000333385,"time":275.52838890741026,"estimatedBugs":0.37667172154430767},"maintainabilityIndex":36.15417829013843,"declared":true,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":96,"lineEnd":99,"columnStart":11,"columnEnd":4,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":4,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":4,"distinctOperators":1,"distinctOperands":4,"vocabulary":5,"length":5,"volume":11.60964047443681,"difficulty":0.5,"effort":5.804820237218405,"time":0.32249001317880027,"estimatedBugs":0.0038698801581456034},"maintainabilityIndex":79.27630704238294,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":103,"lineEnd":138,"columnStart":22,"columnEnd":4,"statementCount":5,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":14,"loops":0,"lengthLines":36,"cognitiveComplexity":1,"halstead":{"operators":10,"operands":88,"distinctOperators":4,"distinctOperands":54,"vocabulary":58,"length":98,"volume":574.0821375225021,"difficulty":3.259259259259259,"effort":1871.0825222955623,"time":103.94902901642013,"estimatedBugs":0.1913607125075007},"maintainabilityIndex":46.46349490432295,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":131,"lineEnd":135,"columnStart":40,"columnEnd":11,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":5,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":11,"distinctOperators":0,"distinctOperands":6,"vocabulary":6,"length":11,"volume":28.43458750793272,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.009478195835977574},"maintainabilityIndex":74.43833520053893,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":145,"lineEnd":165,"columnStart":11,"columnEnd":4,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":21,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":22,"distinctOperators":0,"distinctOperands":22,"vocabulary":22,"length":22,"volume":98.10749561002054,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.032702498536673515},"maintainabilityIndex":57.07672800998337,"params":2},{"kind":"FunctionDeclaration","name":"gracefulShutdown","nameHint":"gracefulShutdown","file":"src/server.ts","lineStart":176,"lineEnd":217,"columnStart":1,"columnEnd":2,"statementCount":11,"complexity":4,"maxBranchDepth":2,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":26,"loops":0,"lengthLines":42,"cognitiveComplexity":4,"halstead":{"operators":4,"operands":61,"distinctOperators":3,"distinctOperands":31,"vocabulary":34,"length":65,"volume":330.68508468127203,"difficulty":2.9516129032258065,"effort":976.054362849561,"time":54.22524238053117,"estimatedBugs":0.11022836156042401},"maintainabilityIndex":46.41151245434821,"declared":true,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":187,"lineEnd":190,"columnStart":14,"columnEnd":4,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":3,"loops":0,"lengthLines":4,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":7,"distinctOperators":0,"distinctOperands":7,"vocabulary":7,"length":7,"volume":19.651484454403228,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.00655049481813441},"maintainabilityIndex":77.67581074429151,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":206,"lineEnd":213,"columnStart":18,"columnEnd":6,"statementCount":3,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":6,"loops":0,"lengthLines":8,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":16,"distinctOperators":0,"distinctOperands":12,"vocabulary":12,"length":16,"volume":57.3594000115385,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.019119800003846166},"maintainabilityIndex":67.71724912082774,"params":1},{"kind":"FunctionDeclaration","name":"startServer","nameHint":"startServer","file":"src/server.ts","lineStart":219,"lineEnd":266,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":2,"calls":43,"loops":0,"lengthLines":48,"cognitiveComplexity":0,"halstead":{"operators":8,"operands":88,"distinctOperators":2,"distinctOperands":43,"vocabulary":45,"length":96,"volume":527.2178972476488,"difficulty":2.046511627906977,"effort":1078.957557157979,"time":59.94208650877661,"estimatedBugs":0.1757392990825496},"maintainabilityIndex":44.13155040085965,"declared":true,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":222,"lineEnd":265,"columnStart":27,"columnEnd":4,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":42,"loops":0,"lengthLines":44,"cognitiveComplexity":0,"halstead":{"operators":7,"operands":84,"distinctOperators":2,"distinctOperands":41,"vocabulary":43,"length":91,"volume":493.7900926778909,"difficulty":2.048780487804878,"effort":1011.6675069498253,"time":56.203750386101405,"estimatedBugs":0.16459669755929698},"maintainabilityIndex":45.155060386826406,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":223,"lineEnd":264,"columnStart":47,"columnEnd":6,"statementCount":5,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":41,"loops":0,"lengthLines":42,"cognitiveComplexity":0,"halstead":{"operators":6,"operands":79,"distinctOperators":2,"distinctOperands":39,"vocabulary":41,"length":85,"volume":455.39192039253714,"difficulty":2.0256410256410255,"effort":922.4605566925752,"time":51.247808705143065,"estimatedBugs":0.15179730679751238},"maintainabilityIndex":45.84194645790612,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":230,"lineEnd":230,"columnStart":15,"columnEnd":42,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":1,"distinctOperators":0,"distinctOperands":1,"vocabulary":1,"length":1,"volume":0,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0},"maintainabilityIndex":99.86549707602339,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":231,"lineEnd":258,"columnStart":15,"columnEnd":10,"statementCount":15,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":29,"loops":0,"lengthLines":28,"cognitiveComplexity":0,"halstead":{"operators":2,"operands":56,"distinctOperators":2,"distinctOperands":25,"vocabulary":27,"length":58,"volume":275.7834751254812,"difficulty":2.24,"effort":617.7549842810779,"time":34.319721348948775,"estimatedBugs":0.09192782504182706},"maintainabilityIndex":51.20835291731853,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":254,"lineEnd":254,"columnStart":13,"columnEnd":35,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":1,"distinctOperators":0,"distinctOperands":1,"vocabulary":1,"length":1,"volume":0,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0},"maintainabilityIndex":99.86549707602339,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":259,"lineEnd":261,"columnStart":16,"columnEnd":10,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":5,"volume":11.60964047443681,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0038698801581456034},"maintainabilityIndex":82.00171614982087,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":269,"lineEnd":269,"columnStart":23,"columnEnd":56,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":97.75768108835572,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":270,"lineEnd":270,"columnStart":22,"columnEnd":54,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":97.75768108835572,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/server.ts","lineStart":274,"lineEnd":277,"columnStart":23,"columnEnd":4,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":3,"loops":0,"lengthLines":4,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":8,"distinctOperators":0,"distinctOperands":8,"vocabulary":8,"length":8,"volume":24,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.008},"maintainabilityIndex":77.06792481406343,"params":1}],"flows":[{"kind":"IfStatement","file":"src/server.ts","lineStart":19,"lineEnd":19,"columnStart":3,"columnEnd":33,"statementCount":1},{"kind":"IfStatement","file":"src/server.ts","lineStart":24,"lineEnd":29,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/server.ts","lineStart":51,"lineEnd":57,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"IfStatement","file":"src/server.ts","lineStart":54,"lineEnd":57,"columnStart":10,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/server.ts","lineStart":64,"lineEnd":64,"columnStart":3,"columnEnd":33,"statementCount":1},{"kind":"IfStatement","file":"src/server.ts","lineStart":78,"lineEnd":82,"columnStart":3,"columnEnd":4,"statementCount":3},{"kind":"ConditionalExpression","file":"src/server.ts","lineStart":110,"lineEnd":110,"columnStart":15,"columnEnd":50,"statementCount":1},{"kind":"IfStatement","file":"src/server.ts","lineStart":178,"lineEnd":181,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"IfStatement","file":"src/server.ts","lineStart":204,"lineEnd":216,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"IfStatement","file":"src/server.ts","lineStart":207,"lineEnd":210,"columnStart":7,"columnEnd":8,"statementCount":2},{"kind":"IfStatement","file":"src/server.ts","lineStart":273,"lineEnd":278,"columnStart":1,"columnEnd":2,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/index.ts","src/mcpCache.ts","src/middleware/errorHandler.ts","src/middleware/logger.ts","src/routes/prompts.ts","src/routes/tools.ts","src/utils/asyncTimeout.ts","src/utils/circuitBreaker.ts","src/utils/colors.ts","src/utils/errorQueue.ts","src/utils/logger.ts"],"externalDependencies":["express","http"],"unresolvedDependencies":[],"declaredExports":[{"name":"createServer","kind":"value","isDefault":false,"lineStart":85,"lineEnd":170},{"name":"startServer","kind":"value","isDefault":false,"lineStart":219,"lineEnd":266}],"importedSymbols":[{"sourceModule":"express","importedName":"default","localName":"express","isTypeOnly":false,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"Express","localName":"Express","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"Request","localName":"Request","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"Response","localName":"Response","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"express","importedName":"NextFunction","localName":"NextFunction","isTypeOnly":true,"lineStart":1,"lineEnd":1},{"sourceModule":"http","importedName":"Server","localName":"Server","isTypeOnly":true,"lineStart":2,"lineEnd":2},{"sourceModule":"./routes/tools.js","resolvedModule":"src/routes/tools.ts","importedName":"toolsRoutes","localName":"toolsRoutes","isTypeOnly":false,"lineStart":3,"lineEnd":3},{"sourceModule":"./routes/prompts.js","resolvedModule":"src/routes/prompts.ts","importedName":"promptsRoutes","localName":"promptsRoutes","isTypeOnly":false,"lineStart":4,"lineEnd":4},{"sourceModule":"./middleware/errorHandler.js","resolvedModule":"src/middleware/errorHandler.ts","importedName":"errorHandler","localName":"errorHandler","isTypeOnly":false,"lineStart":5,"lineEnd":5},{"sourceModule":"./middleware/logger.js","resolvedModule":"src/middleware/logger.ts","importedName":"requestLogger","localName":"requestLogger","isTypeOnly":false,"lineStart":6,"lineEnd":6},{"sourceModule":"./index.js","resolvedModule":"src/index.ts","importedName":"initializeProviders","localName":"initializeProviders","isTypeOnly":false,"lineStart":7,"lineEnd":7},{"sourceModule":"./index.js","resolvedModule":"src/index.ts","importedName":"initializeSession","localName":"initializeSession","isTypeOnly":false,"lineStart":7,"lineEnd":7},{"sourceModule":"./index.js","resolvedModule":"src/index.ts","importedName":"logSessionInit","localName":"logSessionInit","isTypeOnly":false,"lineStart":7,"lineEnd":7},{"sourceModule":"./mcpCache.js","resolvedModule":"src/mcpCache.ts","importedName":"initializeMcpContent","localName":"initializeMcpContent","isTypeOnly":false,"lineStart":8,"lineEnd":8},{"sourceModule":"./mcpCache.js","resolvedModule":"src/mcpCache.ts","importedName":"isMcpInitialized","localName":"isMcpInitialized","isTypeOnly":false,"lineStart":8,"lineEnd":8},{"sourceModule":"./utils/logger.js","resolvedModule":"src/utils/logger.ts","importedName":"getLogsPath","localName":"getLogsPath","isTypeOnly":false,"lineStart":9,"lineEnd":9},{"sourceModule":"./utils/logger.js","resolvedModule":"src/utils/logger.ts","importedName":"initializeLogger","localName":"initializeLogger","isTypeOnly":false,"lineStart":9,"lineEnd":9},{"sourceModule":"./utils/circuitBreaker.js","resolvedModule":"src/utils/circuitBreaker.ts","importedName":"getAllCircuitStates","localName":"getAllCircuitStates","isTypeOnly":false,"lineStart":10,"lineEnd":10},{"sourceModule":"./utils/circuitBreaker.js","resolvedModule":"src/utils/circuitBreaker.ts","importedName":"clearAllCircuits","localName":"clearAllCircuits","isTypeOnly":false,"lineStart":10,"lineEnd":10},{"sourceModule":"./utils/circuitBreaker.js","resolvedModule":"src/utils/circuitBreaker.ts","importedName":"stopCircuitCleanup","localName":"stopCircuitCleanup","isTypeOnly":false,"lineStart":10,"lineEnd":10},{"sourceModule":"./utils/colors.js","resolvedModule":"src/utils/colors.ts","importedName":"agentLog","localName":"agentLog","isTypeOnly":false,"lineStart":11,"lineEnd":11},{"sourceModule":"./utils/colors.js","resolvedModule":"src/utils/colors.ts","importedName":"successLog","localName":"successLog","isTypeOnly":false,"lineStart":11,"lineEnd":11},{"sourceModule":"./utils/colors.js","resolvedModule":"src/utils/colors.ts","importedName":"errorLog","localName":"errorLog","isTypeOnly":false,"lineStart":11,"lineEnd":11},{"sourceModule":"./utils/colors.js","resolvedModule":"src/utils/colors.ts","importedName":"dimLog","localName":"dimLog","isTypeOnly":false,"lineStart":11,"lineEnd":11},{"sourceModule":"./utils/colors.js","resolvedModule":"src/utils/colors.ts","importedName":"warnLog","localName":"warnLog","isTypeOnly":false,"lineStart":11,"lineEnd":11},{"sourceModule":"./utils/asyncTimeout.js","resolvedModule":"src/utils/asyncTimeout.ts","importedName":"fireAndForgetWithTimeout","localName":"fireAndForgetWithTimeout","isTypeOnly":false,"lineStart":12,"lineEnd":12},{"sourceModule":"./utils/errorQueue.js","resolvedModule":"src/utils/errorQueue.ts","importedName":"errorQueue","localName":"errorQueue","isTypeOnly":false,"lineStart":13,"lineEnd":13}],"reExports":[],"package":"octocode-skill","file":"src/server.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":1024,"file":"src/server.ts","lineStart":24,"lineEnd":24},{"value":65535,"file":"src/server.ts","lineStart":24,"lineEnd":24},{"value":30,"file":"src/server.ts","lineStart":36,"lineEnd":36},{"value":60,"file":"src/server.ts","lineStart":36,"lineEnd":36},{"value":1000,"file":"src/server.ts","lineStart":36,"lineEnd":36},{"value":120,"file":"src/server.ts","lineStart":37,"lineEnd":37},{"value":1000,"file":"src/server.ts","lineStart":37,"lineEnd":37},{"value":1000,"file":"src/server.ts","lineStart":49,"lineEnd":49},{"value":1000,"file":"src/server.ts","lineStart":52,"lineEnd":52},{"value":1000,"file":"src/server.ts","lineStart":56,"lineEnd":56},{"value":1000,"file":"src/server.ts","lineStart":71,"lineEnd":71},{"value":1000,"file":"src/server.ts","lineStart":71,"lineEnd":71},{"value":5,"file":"src/server.ts","lineStart":105,"lineEnd":105},{"value":1024,"file":"src/server.ts","lineStart":124,"lineEnd":124},{"value":1024,"file":"src/server.ts","lineStart":124,"lineEnd":124},{"value":1024,"file":"src/server.ts","lineStart":125,"lineEnd":125},{"value":1024,"file":"src/server.ts","lineStart":125,"lineEnd":125},{"value":1024,"file":"src/server.ts","lineStart":126,"lineEnd":126},{"value":1024,"file":"src/server.ts","lineStart":126,"lineEnd":126},{"value":404,"file":"src/server.ts","lineStart":146,"lineEnd":146},{"value":30,"file":"src/server.ts","lineStart":186,"lineEnd":186},{"value":1000,"file":"src/server.ts","lineStart":186,"lineEnd":186},{"value":5000,"file":"src/server.ts","lineStart":255,"lineEnd":255}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[{"name":"startServer","awaitCount":2,"lineStart":219,"lineEnd":266}],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[{"method":"log","lineStart":52,"lineEnd":52,"hasSensitiveArg":false,"argSnippet":"warnLog(`⚠️ Server idle for ${idleSeconds}s (>${MAX_IDLE_TIME_MS / 1000}s). Init"},{"method":"log","lineStart":56,"lineEnd":56,"hasSensitiveArg":false,"argSnippet":"dimLog(`⏰ Idle: ${idleSeconds}s / ${MAX_IDLE_TIME_MS / 1000}s`)"},{"method":"log","lineStart":71,"lineEnd":71,"hasSensitiveArg":false,"argSnippet":"dimLog(`⏱️ Idle check started (${IDLE_CHECK_INTERVAL_MS / 1000}s interval, ${MAX"},{"method":"log","lineStart":81,"lineEnd":81,"hasSensitiveArg":false,"argSnippet":"successLog('✅ Idle check interval stopped')"},{"method":"log","lineStart":179,"lineEnd":179,"hasSensitiveArg":false,"argSnippet":"dimLog(`Already shutting down, ignoring ${signal}`)"},{"method":"log","lineStart":184,"lineEnd":184,"hasSensitiveArg":false,"argSnippet":"agentLog(`\\n🛑 Received ${signal}. Starting graceful shutdown...`)"},{"method":"log","lineStart":188,"lineEnd":188,"hasSensitiveArg":false,"argSnippet":"warnLog('⚠️ Force exiting due to drain timeout')"},{"method":"log","lineStart":197,"lineEnd":197,"hasSensitiveArg":false,"argSnippet":"successLog('✅ Circuit cleanup interval stopped')"},{"method":"log","lineStart":201,"lineEnd":201,"hasSensitiveArg":false,"argSnippet":"successLog('✅ Circuit breakers cleared')"},{"method":"log","lineStart":205,"lineEnd":205,"hasSensitiveArg":false,"argSnippet":"dimLog('⏳ Waiting for connections to drain...')"},{"method":"error","lineStart":208,"lineEnd":208,"hasSensitiveArg":false,"argSnippet":"errorLog('❌ Error closing server:') err"},{"method":"log","lineStart":211,"lineEnd":211,"hasSensitiveArg":false,"argSnippet":"successLog('✅ HTTP server closed')"},{"method":"log","lineStart":225,"lineEnd":225,"hasSensitiveArg":false,"argSnippet":"agentLog(`🔍 Octocode Research Server running on http://${HOST}:${PORT}`)"},{"method":"log","lineStart":226,"lineEnd":226,"hasSensitiveArg":false,"argSnippet":"dimLog(`⏳ initializing context...`)"},{"method":"log","lineStart":232,"lineEnd":232,"hasSensitiveArg":false,"argSnippet":"successLog('✅ Context initialized - Server Ready')"},{"method":"log","lineStart":240,"lineEnd":240,"hasSensitiveArg":false,"argSnippet":"agentLog(`📁 Logs: ${getLogsPath()}`)"},{"method":"log","lineStart":241,"lineEnd":241,"hasSensitiveArg":false,"argSnippet":"agentLog(`\\nRoutes:`)"},{"method":"log","lineStart":242,"lineEnd":242,"hasSensitiveArg":false,"argSnippet":"dimLog(` GET /health - Server health`)"},{"method":"log","lineStart":243,"lineEnd":243,"hasSensitiveArg":false,"argSnippet":"dimLog(` GET /tools/initContext - System prompt + schemas (LOAD FIRST)`)"},{"method":"log","lineStart":244,"lineEnd":244,"hasSensitiveArg":false,"argSnippet":"dimLog(` GET /tools/system - System prompt only`)"},{"method":"log","lineStart":245,"lineEnd":245,"hasSensitiveArg":false,"argSnippet":"dimLog(` GET /tools/list - List all tools`)"},{"method":"log","lineStart":246,"lineEnd":246,"hasSensitiveArg":false,"argSnippet":"dimLog(` GET /tools/info/:toolName - Tool schema (BEFORE calling)`)"},{"method":"log","lineStart":247,"lineEnd":247,"hasSensitiveArg":false,"argSnippet":"dimLog(` GET /tools/schemas - All tools schemas`)"},{"method":"log","lineStart":248,"lineEnd":248,"hasSensitiveArg":false,"argSnippet":"dimLog(` POST /tools/call/:toolName - Execute tool`)"},{"method":"log","lineStart":249,"lineEnd":249,"hasSensitiveArg":false,"argSnippet":"dimLog(` GET /prompts/list - List prompts`)"},{"method":"log","lineStart":250,"lineEnd":250,"hasSensitiveArg":false,"argSnippet":"dimLog(` GET /prompts/info/:name - Get prompt content`)"},{"method":"error","lineStart":260,"lineEnd":260,"hasSensitiveArg":false,"argSnippet":"errorLog('❌ Initialization failed:') err"},{"method":"error","lineStart":275,"lineEnd":275,"hasSensitiveArg":false,"argSnippet":"errorLog('❌ Failed to start server:') err"}],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[{"kind":"setInterval","lineStart":66,"lineEnd":66,"hasCleanup":false},{"kind":"setTimeout","lineStart":187,"lineEnd":190,"hasCleanup":false}],"listenerRegistrations":[{"file":"src/server.ts","lineStart":269,"lineEnd":269},{"file":"src/server.ts","lineStart":270,"lineEnd":270}],"listenerRemovals":[],"topLevelEffects":[{"kind":"process-handler","lineStart":269,"lineEnd":269,"detail":"process.on()","weight":4,"confidence":"high"},{"kind":"process-handler","lineStart":270,"lineEnd":270,"detail":"process.on()","weight":4,"confidence":"high"}],"treeSitterNodeCount":2451,"effectProfile":{"totalEffects":2,"totalWeight":8,"byKind":{"process-handler":2},"highestRisk":"process-handler"},"symbolUsageSummary":{"declaredExportCount":2,"importedSymbolCount":27,"internalImportCount":21,"externalImportCount":2,"reExportCount":0,"dominantInternalDependency":"src/utils/colors.ts"},"boundaryRoleHints":[{"role":"entrypoint","confidence":"high","reasons":["path matches a conventional entrypoint filename"]},{"role":"runtime-bootstrap","confidence":"medium","reasons":["module has import-time side effects"]}],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":6,"asyncBoundaryCount":2,"hasTopLevelEffects":true},"issueIds":["AST-ISSUE-0001","AST-ISSUE-0127","AST-ISSUE-0244","AST-ISSUE-0251","AST-ISSUE-0258","AST-ISSUE-0288","AST-ISSUE-0301","AST-ISSUE-0302"]},{"package":"octocode-skill","file":"src/types/errorGuards.ts","parseEngine":"typescript","nodeCount":414,"kindCounts":{"InterfaceDeclaration":3,"ExportKeyword":14,"Identifier":119,"PropertySignature":8,"NumberKeyword":3,"QuestionToken":5,"StringKeyword":11,"TypeReference":8,"FunctionDeclaration":11,"Parameter":16,"UnknownKeyword":13,"FirstTypeNode":4,"Block":12,"ReturnStatement":12,"ParenthesizedExpression":9,"BinaryExpression":36,"ExclamationEqualsEqualsToken":8,"NullKeyword":5,"AmpersandAmpersandToken":16,"TypeOfExpression":8,"EqualsEqualsEqualsToken":8,"StringLiteral":12,"InKeyword":4,"PropertyAccessExpression":13,"AsExpression":5,"TypeLiteral":3,"UnionType":4,"UndefinedKeyword":4,"ConditionalExpression":3,"CallExpression":11,"ColonToken":3,"IfStatement":1,"ElementAccessExpression":1,"TypeOperator":3,"ArrayType":3,"BooleanKeyword":3,"FirstStatement":3,"VariableDeclarationList":3,"VariableDeclaration":3,"ArrowFunction":1,"EqualsGreaterThanToken":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"isErrorWithStatus","nameHint":"isErrorWithStatus","file":"src/types/errorGuards.ts","lineStart":44,"lineEnd":51,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":4,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":8,"cognitiveComplexity":3,"halstead":{"operators":6,"operands":9,"distinctOperators":3,"distinctOperands":6,"vocabulary":9,"length":15,"volume":47.548875021634686,"difficulty":2.25,"effort":106.98496879867804,"time":5.943609377704336,"estimatedBugs":0.01584962500721156},"maintainabilityIndex":68.01865774825264,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isErrorWithCode","nameHint":"isErrorWithCode","file":"src/types/errorGuards.ts","lineStart":56,"lineEnd":63,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":4,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":8,"cognitiveComplexity":3,"halstead":{"operators":6,"operands":9,"distinctOperators":3,"distinctOperands":6,"vocabulary":9,"length":15,"volume":47.548875021634686,"difficulty":2.25,"effort":106.98496879867804,"time":5.943609377704336,"estimatedBugs":0.01584962500721156},"maintainabilityIndex":68.01865774825264,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"hasMessage","nameHint":"hasMessage","file":"src/types/errorGuards.ts","lineStart":68,"lineEnd":75,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":4,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":8,"cognitiveComplexity":3,"halstead":{"operators":6,"operands":9,"distinctOperators":3,"distinctOperands":5,"vocabulary":8,"length":15,"volume":45,"difficulty":2.7,"effort":121.50000000000001,"time":6.750000000000001,"estimatedBugs":0.015},"maintainabilityIndex":68.18620004560294,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"hasHeaders","nameHint":"hasHeaders","file":"src/types/errorGuards.ts","lineStart":80,"lineEnd":88,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":5,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":9,"cognitiveComplexity":4,"halstead":{"operators":8,"operands":12,"distinctOperators":3,"distinctOperands":5,"vocabulary":8,"length":20,"volume":60,"difficulty":3.5999999999999996,"effort":215.99999999999997,"time":11.999999999999998,"estimatedBugs":0.02},"maintainabilityIndex":66.06103515999902,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"getErrorStatus","nameHint":"getErrorStatus","file":"src/types/errorGuards.ts","lineStart":97,"lineEnd":99,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":5,"volume":10,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0033333333333333335},"maintainabilityIndex":82.32107511111553,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"getErrorCode","nameHint":"getErrorCode","file":"src/types/errorGuards.ts","lineStart":104,"lineEnd":106,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":5,"volume":10,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0033333333333333335},"maintainabilityIndex":82.32107511111553,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"getErrorMessage","nameHint":"getErrorMessage","file":"src/types/errorGuards.ts","lineStart":111,"lineEnd":113,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":5,"volume":10,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0033333333333333335},"maintainabilityIndex":82.32107511111553,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"getErrorHeader","nameHint":"getErrorHeader","file":"src/types/errorGuards.ts","lineStart":118,"lineEnd":123,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":6,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":6,"volume":13.931568569324174,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.004643856189774725},"maintainabilityIndex":74.74612759987951,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"hasStatusIn","nameHint":"hasStatusIn","file":"src/types/errorGuards.ts","lineStart":132,"lineEnd":135,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":2,"loops":0,"lengthLines":4,"cognitiveComplexity":1,"halstead":{"operators":2,"operands":8,"distinctOperators":2,"distinctOperands":6,"vocabulary":8,"length":10,"volume":30,"difficulty":1.3333333333333333,"effort":40,"time":2.2222222222222223,"estimatedBugs":0.01},"maintainabilityIndex":76.25485670480383,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"hasCodeIn","nameHint":"hasCodeIn","file":"src/types/errorGuards.ts","lineStart":140,"lineEnd":143,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":2,"loops":0,"lengthLines":4,"cognitiveComplexity":1,"halstead":{"operators":2,"operands":8,"distinctOperators":2,"distinctOperands":6,"vocabulary":8,"length":10,"volume":30,"difficulty":1.3333333333333333,"effort":40,"time":2.2222222222222223,"estimatedBugs":0.01},"maintainabilityIndex":76.25485670480383,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"messageMatches","nameHint":"messageMatches","file":"src/types/errorGuards.ts","lineStart":148,"lineEnd":151,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":3,"loops":0,"lengthLines":4,"cognitiveComplexity":1,"halstead":{"operators":3,"operands":11,"distinctOperators":3,"distinctOperands":8,"vocabulary":11,"length":14,"volume":48.432042660922164,"difficulty":2.0625,"effort":99.89108798815197,"time":5.549504888230665,"estimatedBugs":0.01614401422030739},"maintainabilityIndex":74.79835722668456,"declared":true,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/types/errorGuards.ts","lineStart":150,"lineEnd":150,"columnStart":49,"columnEnd":71,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":3,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":95.12415216859318,"params":1}],"flows":[{"kind":"ConditionalExpression","file":"src/types/errorGuards.ts","lineStart":98,"lineEnd":98,"columnStart":10,"columnEnd":57,"statementCount":1},{"kind":"ConditionalExpression","file":"src/types/errorGuards.ts","lineStart":105,"lineEnd":105,"columnStart":10,"columnEnd":53,"statementCount":1},{"kind":"ConditionalExpression","file":"src/types/errorGuards.ts","lineStart":112,"lineEnd":112,"columnStart":10,"columnEnd":51,"statementCount":1},{"kind":"IfStatement","file":"src/types/errorGuards.ts","lineStart":119,"lineEnd":121,"columnStart":3,"columnEnd":4,"statementCount":1}],"dependencyProfile":{"internalDependencies":[],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"ErrorWithStatus","kind":"type","lineStart":17,"lineEnd":20},{"name":"ErrorWithCode","kind":"type","lineStart":25,"lineEnd":28},{"name":"ErrorWithHeaders","kind":"type","lineStart":33,"lineEnd":35},{"name":"isErrorWithStatus","kind":"value","isDefault":false,"lineStart":44,"lineEnd":51},{"name":"isErrorWithCode","kind":"value","isDefault":false,"lineStart":56,"lineEnd":63},{"name":"hasMessage","kind":"value","isDefault":false,"lineStart":68,"lineEnd":75},{"name":"hasHeaders","kind":"value","isDefault":false,"lineStart":80,"lineEnd":88},{"name":"getErrorStatus","kind":"value","isDefault":false,"lineStart":97,"lineEnd":99},{"name":"getErrorCode","kind":"value","isDefault":false,"lineStart":104,"lineEnd":106},{"name":"getErrorMessage","kind":"value","isDefault":false,"lineStart":111,"lineEnd":113},{"name":"getErrorHeader","kind":"value","isDefault":false,"lineStart":118,"lineEnd":123},{"name":"hasStatusIn","kind":"value","isDefault":false,"lineStart":132,"lineEnd":135},{"name":"hasCodeIn","kind":"value","isDefault":false,"lineStart":140,"lineEnd":143},{"name":"messageMatches","kind":"value","isDefault":false,"lineStart":148,"lineEnd":151}],"importedSymbols":[],"reExports":[],"package":"octocode-skill","file":"src/types/errorGuards.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":818,"symbolUsageSummary":{"declaredExportCount":14,"importedSymbolCount":0,"internalImportCount":0,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[{"role":"shared-utility","confidence":"medium","reasons":["exports many symbols and imports little internal behavior"]}],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":12,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0019","AST-ISSUE-0020","AST-ISSUE-0021","AST-ISSUE-0022","AST-ISSUE-0023","AST-ISSUE-0024","AST-ISSUE-0128","AST-ISSUE-0147","AST-ISSUE-0148","AST-ISSUE-0149","AST-ISSUE-0303","AST-ISSUE-0304","AST-ISSUE-0305","AST-ISSUE-0306","AST-ISSUE-0307","AST-ISSUE-0308","AST-ISSUE-0309","AST-ISSUE-0310","AST-ISSUE-0311","AST-ISSUE-0312","AST-ISSUE-0313","AST-ISSUE-0314","AST-ISSUE-0315"]},{"package":"octocode-skill","file":"src/types/guards.ts","parseEngine":"typescript","nodeCount":337,"kindCounts":{"FunctionDeclaration":11,"ExportKeyword":11,"Identifier":112,"Parameter":16,"UnknownKeyword":15,"FirstTypeNode":11,"StringKeyword":9,"Block":11,"ReturnStatement":11,"BinaryExpression":28,"TypeOfExpression":8,"EqualsEqualsEqualsToken":8,"StringLiteral":8,"AmpersandAmpersandToken":14,"PropertyAccessExpression":8,"GreaterThanToken":2,"FirstLiteralToken":3,"NumberKeyword":3,"CallExpression":11,"GreaterThanEqualsToken":1,"ArrayType":3,"TypeReference":16,"ExclamationEqualsEqualsToken":2,"NullKeyword":2,"PrefixUnaryExpression":1,"TypeParameter":5,"InKeyword":1,"ElementAccessExpression":4,"BooleanKeyword":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"isNonEmptyString","nameHint":"isNonEmptyString","file":"src/types/guards.ts","lineStart":11,"lineEnd":13,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":1,"halstead":{"operators":3,"operands":5,"distinctOperators":3,"distinctOperands":4,"vocabulary":7,"length":8,"volume":22.458839376460833,"difficulty":1.875,"effort":42.11032383086406,"time":2.3394624350480036,"estimatedBugs":0.007486279792153611},"maintainabilityIndex":79.86065655252033,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isPositiveNumber","nameHint":"isPositiveNumber","file":"src/types/guards.ts","lineStart":18,"lineEnd":20,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":2,"halstead":{"operators":4,"operands":7,"distinctOperators":3,"distinctOperands":5,"vocabulary":8,"length":11,"volume":33,"difficulty":2.0999999999999996,"effort":69.29999999999998,"time":3.849999999999999,"estimatedBugs":0.011},"maintainabilityIndex":78.55593076254439,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isNonNegativeNumber","nameHint":"isNonNegativeNumber","file":"src/types/guards.ts","lineStart":25,"lineEnd":27,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":2,"halstead":{"operators":4,"operands":7,"distinctOperators":3,"distinctOperands":5,"vocabulary":8,"length":11,"volume":33,"difficulty":2.0999999999999996,"effort":69.29999999999998,"time":3.849999999999999,"estimatedBugs":0.011},"maintainabilityIndex":78.55593076254439,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isStringArray","nameHint":"isStringArray","file":"src/types/guards.ts","lineStart":32,"lineEnd":34,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":2,"loops":0,"lengthLines":3,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":6,"distinctOperators":1,"distinctOperands":5,"vocabulary":6,"length":7,"volume":18.094737505048094,"difficulty":0.6,"effort":10.856842503028856,"time":0.6031579168349365,"estimatedBugs":0.006031579168349364},"maintainabilityIndex":80.51769060900261,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isArray","nameHint":"isArray","file":"src/types/guards.ts","lineStart":39,"lineEnd":41,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":3,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":84.71624627594792,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isObject","nameHint":"isObject","file":"src/types/guards.ts","lineStart":46,"lineEnd":48,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":2,"halstead":{"operators":4,"operands":6,"distinctOperators":3,"distinctOperands":4,"vocabulary":7,"length":10,"volume":28.07354922057604,"difficulty":2.25,"effort":63.16548574629609,"time":3.509193652572005,"estimatedBugs":0.009357849740192013},"maintainabilityIndex":79.04758844326075,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"hasProperty","nameHint":"hasProperty","file":"src/types/guards.ts","lineStart":53,"lineEnd":58,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":6,"cognitiveComplexity":2,"halstead":{"operators":4,"operands":5,"distinctOperators":3,"distinctOperands":3,"vocabulary":6,"length":9,"volume":23.264662506490403,"difficulty":2.5,"effort":58.161656266226004,"time":3.2312031259014447,"estimatedBugs":0.007754887502163467},"maintainabilityIndex":73.05229917500742,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"hasStringProperty","nameHint":"hasStringProperty","file":"src/types/guards.ts","lineStart":63,"lineEnd":68,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":1,"halstead":{"operators":2,"operands":6,"distinctOperators":2,"distinctOperands":4,"vocabulary":6,"length":8,"volume":20.67970000576925,"difficulty":1.5,"effort":31.019550008653873,"time":1.723308333814104,"estimatedBugs":0.006893233335256416},"maintainabilityIndex":73.54497273372857,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"hasNumberProperty","nameHint":"hasNumberProperty","file":"src/types/guards.ts","lineStart":73,"lineEnd":78,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":1,"halstead":{"operators":2,"operands":6,"distinctOperators":2,"distinctOperands":4,"vocabulary":6,"length":8,"volume":20.67970000576925,"difficulty":1.5,"effort":31.019550008653873,"time":1.723308333814104,"estimatedBugs":0.006893233335256416},"maintainabilityIndex":73.54497273372857,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"hasBooleanProperty","nameHint":"hasBooleanProperty","file":"src/types/guards.ts","lineStart":83,"lineEnd":88,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":1,"halstead":{"operators":2,"operands":6,"distinctOperators":2,"distinctOperands":4,"vocabulary":6,"length":8,"volume":20.67970000576925,"difficulty":1.5,"effort":31.019550008653873,"time":1.723308333814104,"estimatedBugs":0.006893233335256416},"maintainabilityIndex":73.54497273372857,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"hasArrayProperty","nameHint":"hasArrayProperty","file":"src/types/guards.ts","lineStart":93,"lineEnd":98,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":2,"loops":0,"lengthLines":6,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":7,"distinctOperators":1,"distinctOperands":5,"vocabulary":6,"length":8,"volume":20.67970000576925,"difficulty":0.7,"effort":14.475790004038473,"time":0.8042105557799152,"estimatedBugs":0.006893233335256416},"maintainabilityIndex":73.54497273372857,"declared":true,"params":2}],"flows":[],"dependencyProfile":{"internalDependencies":[],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"isNonEmptyString","kind":"value","isDefault":false,"lineStart":11,"lineEnd":13},{"name":"isPositiveNumber","kind":"value","isDefault":false,"lineStart":18,"lineEnd":20},{"name":"isNonNegativeNumber","kind":"value","isDefault":false,"lineStart":25,"lineEnd":27},{"name":"isStringArray","kind":"value","isDefault":false,"lineStart":32,"lineEnd":34},{"name":"isArray","kind":"value","isDefault":false,"lineStart":39,"lineEnd":41},{"name":"isObject","kind":"value","isDefault":false,"lineStart":46,"lineEnd":48},{"name":"hasProperty","kind":"value","isDefault":false,"lineStart":53,"lineEnd":58},{"name":"hasStringProperty","kind":"value","isDefault":false,"lineStart":63,"lineEnd":68},{"name":"hasNumberProperty","kind":"value","isDefault":false,"lineStart":73,"lineEnd":78},{"name":"hasBooleanProperty","kind":"value","isDefault":false,"lineStart":83,"lineEnd":88},{"name":"hasArrayProperty","kind":"value","isDefault":false,"lineStart":93,"lineEnd":98}],"importedSymbols":[],"reExports":[],"package":"octocode-skill","file":"src/types/guards.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":677,"symbolUsageSummary":{"declaredExportCount":11,"importedSymbolCount":0,"internalImportCount":0,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[{"role":"shared-utility","confidence":"medium","reasons":["exports many symbols and imports little internal behavior"]}],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":11,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0025","AST-ISSUE-0026","AST-ISSUE-0027","AST-ISSUE-0028","AST-ISSUE-0052","AST-ISSUE-0066","AST-ISSUE-0067","AST-ISSUE-0068","AST-ISSUE-0119","AST-ISSUE-0126","AST-ISSUE-0316","AST-ISSUE-0317","AST-ISSUE-0318","AST-ISSUE-0368"]},{"package":"octocode-skill","file":"src/types/mcp.ts","parseEngine":"typescript","nodeCount":267,"kindCounts":{"InterfaceDeclaration":8,"ExportKeyword":8,"Identifier":83,"PropertySignature":33,"QuestionToken":19,"StringKeyword":19,"LiteralType":1,"StringLiteral":10,"TypeReference":15,"ArrayType":6,"BooleanKeyword":3,"NumberKeyword":8,"ParenthesizedType":1,"UnionType":1,"UnknownKeyword":1,"FunctionDeclaration":1,"Parameter":2,"Block":2,"FirstStatement":1,"VariableDeclarationList":2,"VariableDeclaration":2,"ObjectLiteralExpression":6,"ForOfStatement":1,"ArrayBindingPattern":1,"BindingElement":2,"CallExpression":1,"PropertyAccessExpression":1,"ExpressionStatement":1,"BinaryExpression":1,"ElementAccessExpression":1,"FirstAssignment":1,"PropertyAssignment":13,"ShorthandPropertyAssignment":2,"ReturnStatement":1,"TemplateExpression":1,"TemplateHead":1,"TemplateSpan":1,"LastTemplateToken":1,"ArrayLiteralExpression":2,"FirstLiteralToken":2,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"transformToJsonSchema","nameHint":"transformToJsonSchema","file":"src/types/mcp.ts","lineStart":86,"lineEnd":119,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":1,"returns":1,"awaits":0,"calls":1,"loops":1,"lengthLines":34,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":37,"distinctOperators":1,"distinctOperands":26,"vocabulary":27,"length":38,"volume":180.6857250822118,"difficulty":0.7115384615384616,"effort":128.5648428469584,"time":7.142491269275467,"estimatedBugs":0.06022857502740393},"maintainabilityIndex":50.52035770697972,"declared":true,"params":2}],"flows":[{"kind":"ForOfStatement","file":"src/types/mcp.ts","lineStart":93,"lineEnd":98,"columnStart":3,"columnEnd":4,"statementCount":1}],"dependencyProfile":{"internalDependencies":[],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"JsonSchema","kind":"type","lineStart":7,"lineEnd":13},{"name":"JsonSchemaProperty","kind":"type","lineStart":15,"lineEnd":29},{"name":"McpPromptArgument","kind":"type","lineStart":43,"lineEnd":47},{"name":"McpPrompt","kind":"type","lineStart":52,"lineEnd":56},{"name":"ListResponseMeta","kind":"type","lineStart":61,"lineEnd":64},{"name":"ListToolsResponse","kind":"type","lineStart":69,"lineEnd":72},{"name":"ListPromptsResponse","kind":"type","lineStart":77,"lineEnd":80},{"name":"transformToJsonSchema","kind":"value","isDefault":false,"lineStart":86,"lineEnd":119}],"importedSymbols":[],"reExports":[],"package":"octocode-skill","file":"src/types/mcp.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":3,"file":"src/types/mcp.ts","lineStart":114,"lineEnd":114}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"prototypePollutionSites":[{"kind":"computed-property-write","detail":"Dynamic bracket assignment: properties[key]","lineStart":94,"lineEnd":94,"guarded":true}],"treeSitterNodeCount":581,"symbolUsageSummary":{"declaredExportCount":8,"importedSymbolCount":0,"internalImportCount":0,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[{"role":"shared-utility","confidence":"medium","reasons":["exports many symbols and imports little internal behavior"]}],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":1,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0069","AST-ISSUE-0070","AST-ISSUE-0150","AST-ISSUE-0151","AST-ISSUE-0152","AST-ISSUE-0153","AST-ISSUE-0154","AST-ISSUE-0155","AST-ISSUE-0156","AST-ISSUE-0263","AST-ISSUE-0264","AST-ISSUE-0319","AST-ISSUE-0320","AST-ISSUE-0321","AST-ISSUE-0322","AST-ISSUE-0323","AST-ISSUE-0324","AST-ISSUE-0374"]},{"package":"octocode-skill","file":"src/types/responses.ts","parseEngine":"typescript","nodeCount":501,"kindCounts":{"ImportDeclaration":1,"ImportClause":1,"NamedImports":1,"ImportSpecifier":2,"Identifier":147,"StringLiteral":18,"InterfaceDeclaration":10,"ExportKeyword":11,"PropertySignature":43,"NumberKeyword":20,"QuestionToken":30,"StringKeyword":12,"ArrayType":9,"TypeReference":16,"BooleanKeyword":1,"HeritageClause":1,"ExpressionWithTypeArguments":1,"FunctionDeclaration":7,"Parameter":7,"UnknownKeyword":9,"FirstTypeNode":4,"Block":10,"ReturnStatement":14,"ParenthesizedExpression":6,"BinaryExpression":27,"TypeOfExpression":8,"EqualsEqualsEqualsToken":8,"AmpersandAmpersandToken":10,"ExclamationEqualsEqualsToken":4,"NullKeyword":4,"InKeyword":3,"PropertyAccessExpression":14,"AsExpression":4,"TypeLiteral":3,"IfStatement":7,"PrefixUnaryExpression":3,"CallExpression":10,"FalseKeyword":2,"FirstStatement":2,"VariableDeclarationList":2,"VariableDeclaration":2,"BarBarToken":2,"ArrayLiteralExpression":1,"UnionType":1,"UndefinedKeyword":1,"FirstLiteralToken":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"isFileMatch","nameHint":"isFileMatch","file":"src/types/responses.ts","lineStart":129,"lineEnd":136,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":4,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":8,"cognitiveComplexity":3,"halstead":{"operators":6,"operands":9,"distinctOperators":3,"distinctOperands":6,"vocabulary":9,"length":15,"volume":47.548875021634686,"difficulty":2.25,"effort":106.98496879867804,"time":5.943609377704336,"estimatedBugs":0.01584962500721156},"maintainabilityIndex":68.01865774825264,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"hasValidPagination","nameHint":"hasValidPagination","file":"src/types/responses.ts","lineStart":141,"lineEnd":145,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":1,"loops":0,"lengthLines":5,"cognitiveComplexity":2,"halstead":{"operators":3,"operands":9,"distinctOperators":3,"distinctOperands":6,"vocabulary":9,"length":12,"volume":38.039100017307746,"difficulty":2.25,"effort":85.58797503894243,"time":4.754887502163468,"estimatedBugs":0.012679700005769248},"maintainabilityIndex":73.2843918187876,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isSearchResult","nameHint":"isSearchResult","file":"src/types/responses.ts","lineStart":150,"lineEnd":157,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":5,"maxBranchDepth":1,"maxLoopDepth":0,"returns":3,"awaits":0,"calls":4,"loops":0,"lengthLines":8,"cognitiveComplexity":4,"halstead":{"operators":4,"operands":19,"distinctOperators":3,"distinctOperands":10,"vocabulary":13,"length":23,"volume":85.11011351724513,"difficulty":2.8499999999999996,"effort":242.56382352414857,"time":13.47576797356381,"estimatedBugs":0.028370037839081708},"maintainabilityIndex":66.11375935335687,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isLspDefinition","nameHint":"isLspDefinition","file":"src/types/responses.ts","lineStart":162,"lineEnd":170,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":5,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":9,"cognitiveComplexity":4,"halstead":{"operators":7,"operands":11,"distinctOperators":3,"distinctOperands":7,"vocabulary":10,"length":18,"volume":59.79470570797252,"difficulty":2.357142857142857,"effort":140.94466345450667,"time":7.830259080805926,"estimatedBugs":0.01993156856932417},"maintainabilityIndex":66.07145777998781,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"extractFiles","nameHint":"extractFiles","file":"src/types/responses.ts","lineStart":175,"lineEnd":178,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":2,"loops":0,"lengthLines":4,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":8,"distinctOperators":0,"distinctOperands":6,"vocabulary":6,"length":8,"volume":20.67970000576925,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.006893233335256416},"maintainabilityIndex":77.38622112633225,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"extractPagination","nameHint":"extractPagination","file":"src/types/responses.ts","lineStart":183,"lineEnd":186,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":1,"loops":0,"lengthLines":4,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":5,"volume":10,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0033333333333333335},"maintainabilityIndex":79.59566600367761,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"extractTotalMatches","nameHint":"extractTotalMatches","file":"src/types/responses.ts","lineStart":191,"lineEnd":199,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":5,"maxBranchDepth":1,"maxLoopDepth":0,"returns":3,"awaits":0,"calls":2,"loops":0,"lengthLines":9,"cognitiveComplexity":4,"halstead":{"operators":4,"operands":18,"distinctOperators":2,"distinctOperands":8,"vocabulary":10,"length":22,"volume":73.08241808752197,"difficulty":2.25,"effort":164.43544069692445,"time":9.135302260940247,"estimatedBugs":0.024360806029173992},"maintainabilityIndex":65.46123110372865,"declared":true,"params":1}],"flows":[{"kind":"IfStatement","file":"src/types/responses.ts","lineStart":142,"lineEnd":142,"columnStart":3,"columnEnd":53,"statementCount":1},{"kind":"IfStatement","file":"src/types/responses.ts","lineStart":151,"lineEnd":151,"columnStart":3,"columnEnd":61,"statementCount":1},{"kind":"IfStatement","file":"src/types/responses.ts","lineStart":152,"lineEnd":155,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"IfStatement","file":"src/types/responses.ts","lineStart":176,"lineEnd":176,"columnStart":3,"columnEnd":51,"statementCount":1},{"kind":"IfStatement","file":"src/types/responses.ts","lineStart":184,"lineEnd":184,"columnStart":3,"columnEnd":51,"statementCount":1},{"kind":"IfStatement","file":"src/types/responses.ts","lineStart":192,"lineEnd":194,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/types/responses.ts","lineStart":195,"lineEnd":197,"columnStart":3,"columnEnd":4,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/types/guards.ts"],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"MatchLocation","kind":"type","lineStart":17,"lineEnd":23},{"name":"FileMatch","kind":"type","lineStart":28,"lineEnd":37},{"name":"PaginationInfo","kind":"type","lineStart":42,"lineEnd":50},{"name":"LspReference","kind":"type","lineStart":93,"lineEnd":95},{"name":"LspCallHierarchyItem","kind":"type","lineStart":100,"lineEnd":106},{"name":"RepoStructure","kind":"type","lineStart":115,"lineEnd":120},{"name":"isSearchResult","kind":"value","isDefault":false,"lineStart":150,"lineEnd":157},{"name":"isLspDefinition","kind":"value","isDefault":false,"lineStart":162,"lineEnd":170},{"name":"extractFiles","kind":"value","isDefault":false,"lineStart":175,"lineEnd":178},{"name":"extractPagination","kind":"value","isDefault":false,"lineStart":183,"lineEnd":186},{"name":"extractTotalMatches","kind":"value","isDefault":false,"lineStart":191,"lineEnd":199}],"importedSymbols":[{"sourceModule":"./guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasProperty","localName":"hasProperty","isTypeOnly":false,"lineStart":8,"lineEnd":8},{"sourceModule":"./guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasArrayProperty","localName":"hasArrayProperty","isTypeOnly":false,"lineStart":8,"lineEnd":8}],"reExports":[],"package":"octocode-skill","file":"src/types/responses.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"extractFiles","lineStart":175,"lineEnd":178,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[{"callee":"hasArrayProperty","lineStart":176}],"paramConfidence":"low"},{"functionName":"extractPagination","lineStart":183,"lineEnd":186,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[{"callee":"hasValidPagination","lineStart":184}],"paramConfidence":"low"},{"functionName":"extractTotalMatches","lineStart":191,"lineEnd":199,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[{"callee":"hasProperty","lineStart":192},{"callee":"hasValidPagination","lineStart":195}],"paramConfidence":"low"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":1039,"symbolUsageSummary":{"declaredExportCount":11,"importedSymbolCount":2,"internalImportCount":2,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":"src/types/guards.ts"},"boundaryRoleHints":[{"role":"shared-utility","confidence":"medium","reasons":["exports many symbols and imports little internal behavior"]}],"cfgFlags":{"hasValidationChecks":true,"hasCleanupHooks":false,"exitPointCount":14,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0029","AST-ISSUE-0030","AST-ISSUE-0071","AST-ISSUE-0072","AST-ISSUE-0073","AST-ISSUE-0074","AST-ISSUE-0075","AST-ISSUE-0120","AST-ISSUE-0157","AST-ISSUE-0158","AST-ISSUE-0159","AST-ISSUE-0160","AST-ISSUE-0265","AST-ISSUE-0266","AST-ISSUE-0325","AST-ISSUE-0326","AST-ISSUE-0327","AST-ISSUE-0328"]},{"package":"octocode-skill","file":"src/types/toolTypes.ts","parseEngine":"typescript","nodeCount":57,"kindCounts":{"InterfaceDeclaration":2,"ExportKeyword":3,"Identifier":20,"PropertySignature":4,"QuestionToken":3,"StringKeyword":4,"IndexSignature":1,"Parameter":2,"UnknownKeyword":1,"TypeParameter":2,"TypeReference":7,"ArrayType":2,"FunctionDeclaration":1,"Block":1,"ReturnStatement":1,"ObjectLiteralExpression":1,"PropertyAssignment":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"toQueryParams","nameHint":"toQueryParams","file":"src/types/toolTypes.ts","lineStart":29,"lineEnd":33,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":5,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":82.51037454950637,"declared":true,"params":1}],"flows":[],"dependencyProfile":{"internalDependencies":[],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"BaseQueryParams","kind":"type","lineStart":11,"lineEnd":16},{"name":"QueryParamsResult","kind":"type","lineStart":21,"lineEnd":23},{"name":"toQueryParams","kind":"value","isDefault":false,"lineStart":29,"lineEnd":33}],"importedSymbols":[],"reExports":[],"package":"octocode-skill","file":"src/types/toolTypes.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":122,"symbolUsageSummary":{"declaredExportCount":3,"importedSymbolCount":0,"internalImportCount":0,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":1,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0031","AST-ISSUE-0076","AST-ISSUE-0121","AST-ISSUE-0161","AST-ISSUE-0162","AST-ISSUE-0173","AST-ISSUE-0260","AST-ISSUE-0267","AST-ISSUE-0329","AST-ISSUE-0330"]},{"package":"octocode-skill","file":"src/utils/asyncTimeout.ts","parseEngine":"typescript","nodeCount":245,"kindCounts":{"ImportDeclaration":1,"ImportClause":1,"NamedImports":1,"ImportSpecifier":1,"Identifier":81,"StringLiteral":5,"FirstStatement":9,"VariableDeclarationList":9,"VariableDeclaration":9,"FirstLiteralToken":1,"FunctionDeclaration":2,"ExportKeyword":2,"Parameter":11,"FunctionType":2,"TypeReference":5,"UnknownKeyword":2,"VoidKeyword":1,"Block":9,"NewExpression":7,"ObjectBindingPattern":2,"BindingElement":2,"NeverKeyword":2,"ArrowFunction":7,"EqualsGreaterThanToken":7,"CallExpression":18,"ExpressionStatement":9,"PropertyAccessExpression":9,"TemplateExpression":2,"TemplateHead":2,"TemplateSpan":3,"LastTemplateToken":2,"ObjectLiteralExpression":2,"PropertyAssignment":2,"TrueKeyword":2,"ArrayLiteralExpression":2,"ConditionalExpression":1,"BinaryExpression":1,"InstanceOfKeyword":1,"QuestionToken":1,"ColonToken":1,"AsyncKeyword":1,"TypeParameter":1,"NumberKeyword":1,"TemplateMiddle":1,"TryStatement":1,"ReturnStatement":1,"AwaitExpression":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"fireAndForgetWithTimeout","nameHint":"fireAndForgetWithTimeout","file":"src/utils/asyncTimeout.ts","lineStart":43,"lineEnd":71,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":10,"loops":0,"lengthLines":29,"cognitiveComplexity":1,"halstead":{"operators":4,"operands":37,"distinctOperators":1,"distinctOperands":24,"vocabulary":25,"length":41,"volume":190.3981037807637,"difficulty":0.7708333333333334,"effort":146.76520499767204,"time":8.15362249987067,"estimatedBugs":0.0634660345935879},"maintainabilityIndex":51.86806918463121,"declared":true,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/asyncTimeout.ts","lineStart":52,"lineEnd":60,"columnStart":45,"columnEnd":4,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":5,"loops":0,"lengthLines":9,"cognitiveComplexity":0,"halstead":{"operators":2,"operands":14,"distinctOperators":1,"distinctOperands":12,"vocabulary":13,"length":16,"volume":59.207035490257475,"difficulty":0.5833333333333334,"effort":34.53743736931686,"time":1.9187465205176035,"estimatedBugs":0.019735678496752493},"maintainabilityIndex":66.6395040256091,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/asyncTimeout.ts","lineStart":53,"lineEnd":56,"columnStart":34,"columnEnd":6,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":4,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":5,"volume":11.60964047443681,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0038698801581456034},"maintainabilityIndex":79.27630704238294,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/asyncTimeout.ts","lineStart":59,"lineEnd":59,"columnStart":38,"columnEnd":67,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":97.75768108835572,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/asyncTimeout.ts","lineStart":64,"lineEnd":70,"columnStart":12,"columnEnd":6,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":7,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":9,"distinctOperators":0,"distinctOperands":6,"vocabulary":6,"length":9,"volume":23.264662506490403,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.007754887502163467},"maintainabilityIndex":71.72642723746263,"params":1},{"kind":"FunctionDeclaration","name":"withTimeout","nameHint":"withTimeout","file":"src/utils/asyncTimeout.ts","lineStart":94,"lineEnd":116,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":1,"calls":8,"loops":0,"lengthLines":23,"cognitiveComplexity":0,"halstead":{"operators":3,"operands":29,"distinctOperators":1,"distinctOperands":19,"vocabulary":20,"length":32,"volume":138.3016990363956,"difficulty":0.7631578947368421,"effort":105.54603347514401,"time":5.863668526396889,"estimatedBugs":0.0461005663454652},"maintainabilityIndex":55.17071261898644,"declared":true,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/asyncTimeout.ts","lineStart":102,"lineEnd":109,"columnStart":45,"columnEnd":4,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":5,"loops":0,"lengthLines":8,"cognitiveComplexity":0,"halstead":{"operators":2,"operands":15,"distinctOperators":1,"distinctOperands":13,"vocabulary":14,"length":17,"volume":64.72503367497927,"difficulty":0.5769230769230769,"effort":37.341365581718804,"time":2.074520310095489,"estimatedBugs":0.02157501122499309},"maintainabilityIndex":67.48437262340784,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/asyncTimeout.ts","lineStart":103,"lineEnd":106,"columnStart":34,"columnEnd":6,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":4,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":6,"distinctOperators":0,"distinctOperands":6,"vocabulary":6,"length":6,"volume":15.509775004326936,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.005169925001442312},"maintainabilityIndex":78.39554672677042,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/asyncTimeout.ts","lineStart":108,"lineEnd":108,"columnStart":38,"columnEnd":67,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":97.75768108835572,"params":0}],"flows":[{"kind":"ConditionalExpression","file":"src/utils/asyncTimeout.ts","lineStart":67,"lineEnd":67,"columnStart":9,"columnEnd":60,"statementCount":1},{"kind":"TryStatement","file":"src/utils/asyncTimeout.ts","lineStart":111,"lineEnd":115,"columnStart":3,"columnEnd":4,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/utils/errorQueue.ts"],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"fireAndForgetWithTimeout","kind":"value","isDefault":false,"lineStart":43,"lineEnd":71},{"name":"withTimeout","kind":"value","isDefault":false,"lineStart":94,"lineEnd":116}],"importedSymbols":[{"sourceModule":"./errorQueue.js","resolvedModule":"src/utils/errorQueue.ts","importedName":"errorQueue","localName":"errorQueue","isTypeOnly":false,"lineStart":1,"lineEnd":1}],"reExports":[],"package":"octocode-skill","file":"src/utils/asyncTimeout.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"fireAndForgetWithTimeout","lineStart":43,"lineEnd":71,"sourceParams":["context"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"low"},{"functionName":"withTimeout","lineStart":94,"lineEnd":116,"sourceParams":["context"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"low"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[{"kind":"setTimeout","lineStart":53,"lineEnd":56,"hasCleanup":true},{"kind":"setTimeout","lineStart":103,"lineEnd":106,"hasCleanup":true}],"listenerRegistrations":[{"file":"src/utils/asyncTimeout.ts","lineStart":59,"lineEnd":59},{"file":"src/utils/asyncTimeout.ts","lineStart":108,"lineEnd":108}],"listenerRemovals":[],"treeSitterNodeCount":528,"symbolUsageSummary":{"declaredExportCount":2,"importedSymbolCount":1,"internalImportCount":1,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":"src/utils/errorQueue.ts"},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":1,"asyncBoundaryCount":1,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0053","AST-ISSUE-0252","AST-ISSUE-0331"]},{"package":"octocode-skill","file":"src/utils/circuitBreaker.ts","parseEngine":"typescript","nodeCount":1292,"kindCounts":{"ImportDeclaration":3,"ImportClause":3,"NamedImports":3,"ImportSpecifier":6,"Identifier":427,"StringLiteral":34,"TypeAliasDeclaration":1,"UnionType":5,"LiteralType":6,"FirstStatement":22,"VariableDeclarationList":25,"VariableDeclaration":26,"FirstLiteralToken":52,"InterfaceDeclaration":2,"PropertySignature":19,"NumberKeyword":15,"TypeReference":21,"ExportKeyword":11,"ObjectLiteralExpression":17,"PropertyAssignment":51,"NewExpression":3,"StringKeyword":15,"FunctionDeclaration":14,"Parameter":12,"Block":40,"IfStatement":18,"PrefixUnaryExpression":1,"CallExpression":63,"PropertyAccessExpression":81,"BinaryExpression":48,"GreaterThanEqualsToken":4,"ExpressionStatement":61,"TemplateExpression":13,"TemplateHead":13,"TemplateSpan":17,"LastTemplateToken":13,"ReturnStatement":10,"NonNullExpression":1,"NullKeyword":6,"ForOfStatement":3,"ArrayBindingPattern":3,"BindingElement":6,"FirstBinaryOperator":2,"FirstAssignment":22,"BarBarToken":1,"VoidKeyword":6,"SpreadAssignment":2,"AsyncKeyword":1,"TypeParameter":1,"FunctionType":2,"QuestionToken":1,"EqualsEqualsEqualsToken":5,"MinusToken":4,"GreaterThanToken":2,"TemplateMiddle":4,"ParenthesizedExpression":1,"PlusToken":2,"SlashToken":4,"ThrowStatement":2,"TryStatement":1,"AwaitExpression":1,"PostfixUnaryExpression":3,"CatchClause":1,"ArrowFunction":3,"EqualsGreaterThanToken":3,"TypeLiteral":3,"BooleanKeyword":4,"ElementAccessExpression":1,"ClassDeclaration":1,"HeritageClause":1,"ExpressionWithTypeArguments":1,"PropertyDeclaration":2,"ReadonlyKeyword":2,"Constructor":1,"SuperKeyword":1,"ThisKeyword":3,"TypeQuery":1,"ExclamationEqualsEqualsToken":1,"AmpersandAmpersandToken":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"getCircuit","nameHint":"getCircuit","file":"src/utils/circuitBreaker.ts","lineStart":73,"lineEnd":99,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":5,"maxBranchDepth":4,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":10,"loops":0,"lengthLines":27,"cognitiveComplexity":10,"halstead":{"operators":2,"operands":42,"distinctOperators":1,"distinctOperands":25,"vocabulary":26,"length":44,"volume":206.81934759820803,"difficulty":0.84,"effort":173.72825198249473,"time":9.651569554583041,"estimatedBugs":0.06893978253273601},"maintainabilityIndex":51.889967926971394,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"findOldestCircuit","nameHint":"findOldestCircuit","file":"src/utils/circuitBreaker.ts","lineStart":104,"lineEnd":116,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":3,"maxBranchDepth":2,"maxLoopDepth":1,"returns":1,"awaits":0,"calls":0,"loops":1,"lengthLines":13,"cognitiveComplexity":3,"halstead":{"operators":3,"operands":15,"distinctOperators":2,"distinctOperands":7,"vocabulary":9,"length":18,"volume":57.05865002596162,"difficulty":2.142857142857143,"effort":122.26853576991775,"time":6.7926964316620975,"estimatedBugs":0.019019550008653872},"maintainabilityIndex":62.99918481784786,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"getConfig","nameHint":"getConfig","file":"src/utils/circuitBreaker.ts","lineStart":121,"lineEnd":123,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":4,"distinctOperators":1,"distinctOperands":4,"vocabulary":5,"length":5,"volume":11.60964047443681,"difficulty":0.5,"effort":5.804820237218405,"time":0.32249001317880027,"estimatedBugs":0.0038698801581456034},"maintainabilityIndex":81.86721322584424,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"configureCircuit","nameHint":"configureCircuit","file":"src/utils/circuitBreaker.ts","lineStart":128,"lineEnd":133,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":5,"volume":11.60964047443681,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0038698801581456034},"maintainabilityIndex":75.43505864977928,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"withCircuitBreaker","nameHint":"withCircuitBreaker","file":"src/utils/circuitBreaker.ts","lineStart":153,"lineEnd":243,"columnStart":1,"columnEnd":2,"statementCount":6,"complexity":9,"maxBranchDepth":3,"maxLoopDepth":0,"returns":4,"awaits":1,"calls":18,"loops":0,"lengthLines":91,"cognitiveComplexity":13,"halstead":{"operators":26,"operands":137,"distinctOperators":8,"distinctOperands":42,"vocabulary":50,"length":163,"volume":919.9485589332801,"difficulty":13.047619047619047,"effort":12003.138340367559,"time":666.8410189093088,"estimatedBugs":0.3066495196444267},"maintainabilityIndex":35.30270390186393,"declared":true,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/circuitBreaker.ts","lineStart":213,"lineEnd":218,"columnStart":9,"columnEnd":11,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":11,"distinctOperators":1,"distinctOperands":11,"vocabulary":12,"length":12,"volume":43.01955000865387,"difficulty":0.5,"effort":21.509775004326936,"time":1.1949875002403854,"estimatedBugs":0.014339850002884624},"maintainabilityIndex":71.45198382870383,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/circuitBreaker.ts","lineStart":230,"lineEnd":235,"columnStart":9,"columnEnd":11,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":13,"distinctOperators":1,"distinctOperands":13,"vocabulary":14,"length":14,"volume":53.302968908806456,"difficulty":0.5,"effort":26.651484454403228,"time":1.4806380252446238,"estimatedBugs":0.017767656302935485},"maintainabilityIndex":70.80019768119253,"params":0},{"kind":"FunctionDeclaration","name":"getCircuitState","nameHint":"getCircuitState","file":"src/utils/circuitBreaker.ts","lineStart":248,"lineEnd":261,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":14,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":16,"distinctOperators":1,"distinctOperands":8,"vocabulary":9,"length":17,"volume":53.8887250245193,"difficulty":1,"effort":53.8887250245193,"time":2.993818056917739,"estimatedBugs":0.017962908341506434},"maintainabilityIndex":62.73993019976449,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"resetCircuit","nameHint":"resetCircuit","file":"src/utils/circuitBreaker.ts","lineStart":266,"lineEnd":273,"columnStart":1,"columnEnd":2,"statementCount":6,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":3,"loops":0,"lengthLines":8,"cognitiveComplexity":0,"halstead":{"operators":4,"operands":19,"distinctOperators":1,"distinctOperands":12,"vocabulary":13,"length":23,"volume":85.11011351724513,"difficulty":0.7916666666666666,"effort":67.37883986781905,"time":3.743268881545503,"estimatedBugs":0.028370037839081708},"maintainabilityIndex":66.65177104926332,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"getAllCircuitStates","nameHint":"getAllCircuitStates","file":"src/utils/circuitBreaker.ts","lineStart":278,"lineEnd":296,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":1,"returns":1,"awaits":0,"calls":0,"loops":1,"lengthLines":19,"cognitiveComplexity":1,"halstead":{"operators":2,"operands":22,"distinctOperators":2,"distinctOperands":10,"vocabulary":12,"length":24,"volume":86.03910001730775,"difficulty":2.2,"effort":189.28602003807706,"time":10.515890002115391,"estimatedBugs":0.02867970000576925},"maintainabilityIndex":58.28954324395906,"declared":true,"params":0},{"kind":"Constructor","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/circuitBreaker.ts","lineStart":305,"lineEnd":310,"columnStart":3,"columnEnd":4,"statementCount":4,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":6,"cognitiveComplexity":0,"halstead":{"operators":4,"operands":11,"distinctOperators":2,"distinctOperands":7,"vocabulary":9,"length":15,"volume":47.548875021634686,"difficulty":1.5714285714285714,"effort":74.71966074828308,"time":4.151092263793505,"estimatedBugs":0.01584962500721156},"maintainabilityIndex":71.14757562762037,"params":2},{"kind":"FunctionDeclaration","name":"cleanupStaleCircuits","nameHint":"cleanupStaleCircuits","file":"src/utils/circuitBreaker.ts","lineStart":407,"lineEnd":424,"columnStart":1,"columnEnd":2,"statementCount":5,"complexity":5,"maxBranchDepth":2,"maxLoopDepth":1,"returns":0,"awaits":0,"calls":5,"loops":1,"lengthLines":18,"cognitiveComplexity":5,"halstead":{"operators":5,"operands":30,"distinctOperators":5,"distinctOperands":17,"vocabulary":22,"length":35,"volume":156.0801066523054,"difficulty":4.411764705882353,"effort":688.5887058189945,"time":38.25492810105525,"estimatedBugs":0.05202670221743513},"maintainabilityIndex":56.58716768888388,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"startPeriodicCleanup","nameHint":"startPeriodicCleanup","file":"src/utils/circuitBreaker.ts","lineStart":430,"lineEnd":441,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":3,"loops":0,"lengthLines":12,"cognitiveComplexity":2,"halstead":{"operators":2,"operands":9,"distinctOperators":2,"distinctOperands":5,"vocabulary":7,"length":11,"volume":30.880904142633646,"difficulty":1.8,"effort":55.58562745674057,"time":3.0880904142633647,"estimatedBugs":0.010293634714211216},"maintainabilityIndex":65.62444131745684,"declared":true,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/circuitBreaker.ts","lineStart":433,"lineEnd":435,"columnStart":35,"columnEnd":4,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":1,"distinctOperators":0,"distinctOperands":1,"vocabulary":1,"length":1,"volume":0,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0},"maintainabilityIndex":89.45759118337814,"params":0},{"kind":"FunctionDeclaration","name":"stopCircuitCleanup","nameHint":"stopCircuitCleanup","file":"src/utils/circuitBreaker.ts","lineStart":447,"lineEnd":452,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":4,"distinctOperators":1,"distinctOperands":2,"vocabulary":3,"length":5,"volume":7.92481250360578,"difficulty":1,"effort":7.92481250360578,"time":0.44026736131143224,"estimatedBugs":0.0026416041678685932},"maintainabilityIndex":76.46169799018519,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"clearCircuit","nameHint":"clearCircuit","file":"src/utils/circuitBreaker.ts","lineStart":467,"lineEnd":474,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":4,"loops":0,"lengthLines":8,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":13,"distinctOperators":0,"distinctOperands":8,"vocabulary":8,"length":13,"volume":39,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.013},"maintainabilityIndex":68.89036635374998,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"clearAllCircuits","nameHint":"clearAllCircuits","file":"src/utils/circuitBreaker.ts","lineStart":480,"lineEnd":485,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":4,"loops":0,"lengthLines":6,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":11,"distinctOperators":0,"distinctOperands":8,"vocabulary":8,"length":11,"volume":33,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.011},"maintainabilityIndex":72.25827911045603,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"getCircuitCount","nameHint":"getCircuitCount","file":"src/utils/circuitBreaker.ts","lineStart":490,"lineEnd":492,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":87.34977519571046,"declared":true,"params":0}],"flows":[{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":74,"lineEnd":97,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":76,"lineEnd":87,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":79,"lineEnd":86,"columnStart":7,"columnEnd":8,"statementCount":2},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":81,"lineEnd":85,"columnStart":9,"columnEnd":10,"statementCount":3},{"kind":"ForOfStatement","file":"src/utils/circuitBreaker.ts","lineStart":108,"lineEnd":113,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":109,"lineEnd":112,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":166,"lineEnd":181,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":168,"lineEnd":180,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":176,"lineEnd":178,"columnStart":7,"columnEnd":8,"statementCount":1},{"kind":"TryStatement","file":"src/utils/circuitBreaker.ts","lineStart":183,"lineEnd":242,"columnStart":3,"columnEnd":4,"statementCount":3},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":187,"lineEnd":198,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":189,"lineEnd":194,"columnStart":7,"columnEnd":8,"statementCount":4},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":207,"lineEnd":239,"columnStart":5,"columnEnd":6,"statementCount":3},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":222,"lineEnd":239,"columnStart":12,"columnEnd":6,"statementCount":3},{"kind":"ForOfStatement","file":"src/utils/circuitBreaker.ts","lineStart":287,"lineEnd":293,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"ForOfStatement","file":"src/utils/circuitBreaker.ts","lineStart":412,"lineEnd":419,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":414,"lineEnd":418,"columnStart":5,"columnEnd":6,"statementCount":3},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":421,"lineEnd":423,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":431,"lineEnd":431,"columnStart":3,"columnEnd":33,"statementCount":1},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":438,"lineEnd":440,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":448,"lineEnd":451,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"IfStatement","file":"src/utils/circuitBreaker.ts","lineStart":470,"lineEnd":472,"columnStart":3,"columnEnd":4,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/index.ts","src/utils/asyncTimeout.ts","src/utils/colors.ts"],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"CircuitBreakerConfig","kind":"type","lineStart":36,"lineEnd":43},{"name":"configureCircuit","kind":"value","isDefault":false,"lineStart":128,"lineEnd":133},{"name":"withCircuitBreaker","kind":"value","isDefault":false,"lineStart":153,"lineEnd":243},{"name":"getCircuitState","kind":"value","isDefault":false,"lineStart":248,"lineEnd":261},{"name":"resetCircuit","kind":"value","isDefault":false,"lineStart":266,"lineEnd":273},{"name":"getAllCircuitStates","kind":"value","isDefault":false,"lineStart":278,"lineEnd":296},{"name":"CircuitOpenError","kind":"value","isDefault":false,"lineStart":301,"lineEnd":311},{"name":"stopCircuitCleanup","kind":"value","isDefault":false,"lineStart":447,"lineEnd":452},{"name":"clearCircuit","kind":"value","isDefault":false,"lineStart":467,"lineEnd":474},{"name":"clearAllCircuits","kind":"value","isDefault":false,"lineStart":480,"lineEnd":485},{"name":"getCircuitCount","kind":"value","isDefault":false,"lineStart":490,"lineEnd":492}],"importedSymbols":[{"sourceModule":"./colors.js","resolvedModule":"src/utils/colors.ts","importedName":"agentLog","localName":"agentLog","isTypeOnly":false,"lineStart":1,"lineEnd":1},{"sourceModule":"./colors.js","resolvedModule":"src/utils/colors.ts","importedName":"warnLog","localName":"warnLog","isTypeOnly":false,"lineStart":1,"lineEnd":1},{"sourceModule":"./colors.js","resolvedModule":"src/utils/colors.ts","importedName":"successLog","localName":"successLog","isTypeOnly":false,"lineStart":1,"lineEnd":1},{"sourceModule":"./colors.js","resolvedModule":"src/utils/colors.ts","importedName":"errorLog","localName":"errorLog","isTypeOnly":false,"lineStart":1,"lineEnd":1},{"sourceModule":"../index.js","resolvedModule":"src/index.ts","importedName":"logRateLimit","localName":"logRateLimit","isTypeOnly":false,"lineStart":2,"lineEnd":2},{"sourceModule":"./asyncTimeout.js","resolvedModule":"src/utils/asyncTimeout.ts","importedName":"fireAndForgetWithTimeout","localName":"fireAndForgetWithTimeout","isTypeOnly":false,"lineStart":3,"lineEnd":3}],"reExports":[],"package":"octocode-skill","file":"src/utils/circuitBreaker.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":3,"file":"src/utils/circuitBreaker.ts","lineStart":52,"lineEnd":52},{"value":30000,"file":"src/utils/circuitBreaker.ts","lineStart":60,"lineEnd":60},{"value":1000,"file":"src/utils/circuitBreaker.ts","lineStart":174,"lineEnd":174},{"value":1000,"file":"src/utils/circuitBreaker.ts","lineStart":216,"lineEnd":216},{"value":5000,"file":"src/utils/circuitBreaker.ts","lineStart":219,"lineEnd":219},{"value":1000,"file":"src/utils/circuitBreaker.ts","lineStart":233,"lineEnd":233},{"value":5000,"file":"src/utils/circuitBreaker.ts","lineStart":236,"lineEnd":236},{"value":1000,"file":"src/utils/circuitBreaker.ts","lineStart":306,"lineEnd":306},{"value":60000,"file":"src/utils/circuitBreaker.ts","lineStart":325,"lineEnd":325},{"value":3,"file":"src/utils/circuitBreaker.ts","lineStart":330,"lineEnd":330},{"value":30000,"file":"src/utils/circuitBreaker.ts","lineStart":332,"lineEnd":332},{"value":60000,"file":"src/utils/circuitBreaker.ts","lineStart":339,"lineEnd":339},{"value":60000,"file":"src/utils/circuitBreaker.ts","lineStart":346,"lineEnd":346},{"value":3,"file":"src/utils/circuitBreaker.ts","lineStart":355,"lineEnd":355},{"value":10000,"file":"src/utils/circuitBreaker.ts","lineStart":357,"lineEnd":357},{"value":15000,"file":"src/utils/circuitBreaker.ts","lineStart":364,"lineEnd":364},{"value":3,"file":"src/utils/circuitBreaker.ts","lineStart":369,"lineEnd":369},{"value":10000,"file":"src/utils/circuitBreaker.ts","lineStart":371,"lineEnd":371},{"value":5,"file":"src/utils/circuitBreaker.ts","lineStart":379,"lineEnd":379},{"value":5000,"file":"src/utils/circuitBreaker.ts","lineStart":381,"lineEnd":381},{"value":3,"file":"src/utils/circuitBreaker.ts","lineStart":389,"lineEnd":389},{"value":45000,"file":"src/utils/circuitBreaker.ts","lineStart":391,"lineEnd":391}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[{"file":"src/utils/circuitBreaker.ts","lineStart":98,"lineEnd":98}]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[{"method":"log","lineStart":84,"lineEnd":84,"hasSensitiveArg":false,"argSnippet":"warnLog(`⚠️ Evicted oldest circuit '${oldestKey}' to make room`)"},{"method":"log","lineStart":170,"lineEnd":170,"hasSensitiveArg":false,"argSnippet":"warnLog(`🟡 Circuit ${name} entering half-open state`)"},{"method":"log","lineStart":173,"lineEnd":175,"hasSensitiveArg":false,"argSnippet":"`🔴 Circuit ${name} is OPEN - ${Math.ceil((circuit.lastFailure + config.resetTim"},{"method":"log","lineStart":193,"lineEnd":193,"hasSensitiveArg":false,"argSnippet":"successLog(`🟢 Circuit ${name} CLOSED after recovery`)"},{"method":"log","lineStart":210,"lineEnd":210,"hasSensitiveArg":false,"argSnippet":"errorLog(`🔴 Circuit ${name} back to OPEN after half-open failure`)"},{"method":"log","lineStart":225,"lineEnd":227,"hasSensitiveArg":false,"argSnippet":"`🔴 Circuit ${name} OPENED after ${circuit.failures} failures`"},{"method":"log","lineStart":272,"lineEnd":272,"hasSensitiveArg":false,"argSnippet":"agentLog(`🔄 Circuit ${name} manually reset to CLOSED`)"},{"method":"log","lineStart":422,"lineEnd":422,"hasSensitiveArg":false,"argSnippet":"agentLog(`🧹 Cleaned up ${removedCount} stale circuit(s)`)"},{"method":"log","lineStart":471,"lineEnd":471,"hasSensitiveArg":false,"argSnippet":"agentLog(`🧹 Circuit ${name} cleared`)"},{"method":"log","lineStart":484,"lineEnd":484,"hasSensitiveArg":false,"argSnippet":"agentLog(`🧹 Cleared ${count} circuit(s)`)"}],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[{"kind":"setInterval","lineStart":433,"lineEnd":435,"hasCleanup":false}],"listenerRegistrations":[],"listenerRemovals":[],"prototypePollutionSites":[{"kind":"computed-property-write","detail":"Dynamic bracket assignment: states[name]","lineStart":288,"lineEnd":288,"guarded":false}],"treeSitterNodeCount":2621,"symbolUsageSummary":{"declaredExportCount":11,"importedSymbolCount":6,"internalImportCount":6,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":"src/utils/colors.ts"},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":12,"asyncBoundaryCount":1,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0032","AST-ISSUE-0033","AST-ISSUE-0064","AST-ISSUE-0077","AST-ISSUE-0078","AST-ISSUE-0079","AST-ISSUE-0080","AST-ISSUE-0268","AST-ISSUE-0287","AST-ISSUE-0289","AST-ISSUE-0332","AST-ISSUE-0333","AST-ISSUE-0334","AST-ISSUE-0335","AST-ISSUE-0336","AST-ISSUE-0337"]},{"package":"octocode-skill","file":"src/utils/colors.ts","parseEngine":"typescript","nodeCount":177,"kindCounts":{"FirstStatement":1,"VariableDeclarationList":1,"VariableDeclaration":1,"Identifier":52,"ObjectLiteralExpression":1,"PropertyAssignment":9,"StringLiteral":9,"FunctionDeclaration":6,"ExportKeyword":6,"Parameter":6,"StringKeyword":12,"Block":6,"ReturnStatement":6,"TemplateExpression":6,"TemplateHead":6,"TemplateSpan":18,"PropertyAccessExpression":12,"TemplateMiddle":12,"LastTemplateToken":6,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"agentLog","nameHint":"agentLog","file":"src/utils/colors.ts","lineStart":31,"lineEnd":33,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":5,"volume":10,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0033333333333333335},"maintainabilityIndex":82.45557803509216,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"resultLog","nameHint":"resultLog","file":"src/utils/colors.ts","lineStart":35,"lineEnd":37,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":5,"volume":10,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0033333333333333335},"maintainabilityIndex":82.45557803509216,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"successLog","nameHint":"successLog","file":"src/utils/colors.ts","lineStart":39,"lineEnd":41,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":5,"volume":10,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0033333333333333335},"maintainabilityIndex":82.45557803509216,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"errorLog","nameHint":"errorLog","file":"src/utils/colors.ts","lineStart":43,"lineEnd":45,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":5,"volume":10,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0033333333333333335},"maintainabilityIndex":82.45557803509216,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"warnLog","nameHint":"warnLog","file":"src/utils/colors.ts","lineStart":47,"lineEnd":49,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":5,"volume":10,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0033333333333333335},"maintainabilityIndex":82.45557803509216,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"dimLog","nameHint":"dimLog","file":"src/utils/colors.ts","lineStart":51,"lineEnd":53,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":5,"volume":10,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0033333333333333335},"maintainabilityIndex":82.45557803509216,"declared":true,"params":1}],"flows":[],"dependencyProfile":{"internalDependencies":[],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"agentLog","kind":"value","isDefault":false,"lineStart":31,"lineEnd":33},{"name":"resultLog","kind":"value","isDefault":false,"lineStart":35,"lineEnd":37},{"name":"successLog","kind":"value","isDefault":false,"lineStart":39,"lineEnd":41},{"name":"errorLog","kind":"value","isDefault":false,"lineStart":43,"lineEnd":45},{"name":"warnLog","kind":"value","isDefault":false,"lineStart":47,"lineEnd":49},{"name":"dimLog","kind":"value","isDefault":false,"lineStart":51,"lineEnd":53}],"importedSymbols":[],"reExports":[],"package":"octocode-skill","file":"src/utils/colors.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"agentLog","lineStart":31,"lineEnd":33,"sourceParams":["message"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"medium"},{"functionName":"resultLog","lineStart":35,"lineEnd":37,"sourceParams":["message"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"medium"},{"functionName":"successLog","lineStart":39,"lineEnd":41,"sourceParams":["message"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"medium"},{"functionName":"errorLog","lineStart":43,"lineEnd":45,"sourceParams":["message"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"medium"},{"functionName":"warnLog","lineStart":47,"lineEnd":49,"sourceParams":["message"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"medium"},{"functionName":"dimLog","lineStart":51,"lineEnd":53,"sourceParams":["message"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"medium"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":371,"symbolUsageSummary":{"declaredExportCount":6,"importedSymbolCount":0,"internalImportCount":0,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":6,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0054","AST-ISSUE-0132","AST-ISSUE-0338","AST-ISSUE-0339"]},{"package":"octocode-skill","file":"src/utils/errorQueue.ts","parseEngine":"typescript","nodeCount":151,"kindCounts":{"InterfaceDeclaration":1,"Identifier":48,"PropertySignature":3,"TypeReference":4,"QuestionToken":3,"StringKeyword":2,"ClassDeclaration":1,"PropertyDeclaration":2,"PrivateKeyword":2,"ArrayType":2,"ArrayLiteralExpression":2,"ReadonlyKeyword":1,"NumberKeyword":2,"Constructor":1,"Parameter":4,"FirstLiteralToken":2,"Block":6,"ExpressionStatement":4,"BinaryExpression":4,"PropertyAccessExpression":13,"ThisKeyword":8,"FirstAssignment":2,"MethodDeclaration":3,"UnknownKeyword":1,"VoidKeyword":2,"FirstStatement":2,"VariableDeclarationList":2,"VariableDeclaration":2,"ConditionalExpression":1,"InstanceOfKeyword":1,"ColonToken":1,"NewExpression":3,"CallExpression":4,"ObjectLiteralExpression":1,"PropertyAssignment":2,"ShorthandPropertyAssignment":1,"IfStatement":1,"GreaterThanToken":1,"ReturnStatement":2,"PrefixUnaryExpression":1,"GetAccessor":1,"ExportKeyword":1,"EndOfFileToken":1},"functions":[{"kind":"Constructor","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/errorQueue.ts","lineStart":22,"lineEnd":24,"columnStart":3,"columnEnd":4,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":2,"distinctOperators":1,"distinctOperands":1,"vocabulary":2,"length":3,"volume":3,"difficulty":1,"effort":3,"time":0.16666666666666666,"estimatedBugs":0.001},"maintainabilityIndex":86.11678188450435,"params":1},{"kind":"MethodDeclaration","name":"push","nameHint":"push","file":"src/utils/errorQueue.ts","lineStart":30,"lineEnd":44,"columnStart":3,"columnEnd":4,"statementCount":3,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":3,"loops":0,"lengthLines":15,"cognitiveComplexity":2,"halstead":{"operators":1,"operands":19,"distinctOperators":1,"distinctOperands":12,"vocabulary":13,"length":20,"volume":74.00879436282185,"difficulty":0.7916666666666666,"effort":58.590295537233956,"time":3.2550164187352197,"estimatedBugs":0.024669598120940616},"maintainabilityIndex":60.85253234616877,"params":2},{"kind":"MethodDeclaration","name":"getRecent","nameHint":"getRecent","file":"src/utils/errorQueue.ts","lineStart":49,"lineEnd":51,"columnStart":3,"columnEnd":4,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":3,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":84.71624627594792,"params":1},{"kind":"MethodDeclaration","name":"clear","nameHint":"clear","file":"src/utils/errorQueue.ts","lineStart":56,"lineEnd":58,"columnStart":3,"columnEnd":4,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":1,"distinctOperators":1,"distinctOperands":1,"vocabulary":2,"length":2,"volume":2,"difficulty":0.5,"effort":1,"time":0.05555555555555555,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":87.34977519571046,"params":0},{"kind":"GetAccessor","name":"size","nameHint":"size","file":"src/utils/errorQueue.ts","lineStart":63,"lineEnd":65,"columnStart":3,"columnEnd":4,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":87.34977519571046,"params":0}],"flows":[{"kind":"ConditionalExpression","file":"src/utils/errorQueue.ts","lineStart":32,"lineEnd":32,"columnStart":7,"columnEnd":64,"statementCount":1},{"kind":"IfStatement","file":"src/utils/errorQueue.ts","lineStart":41,"lineEnd":43,"columnStart":5,"columnEnd":6,"statementCount":1}],"dependencyProfile":{"internalDependencies":[],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"errorQueue","kind":"value","lineStart":71,"lineEnd":71}],"importedSymbols":[],"reExports":[],"package":"octocode-skill","file":"src/utils/errorQueue.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":10,"file":"src/utils/errorQueue.ts","lineStart":49,"lineEnd":49}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"push","lineStart":30,"lineEnd":44,"sourceParams":["context"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"low"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":301,"symbolUsageSummary":{"declaredExportCount":1,"importedSymbolCount":0,"internalImportCount":0,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":2,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0055","AST-ISSUE-0269"]},{"package":"octocode-skill","file":"src/utils/logEmoji.ts","parseEngine":"typescript","nodeCount":283,"kindCounts":{"FunctionDeclaration":3,"ExportKeyword":4,"Identifier":80,"BooleanKeyword":1,"Block":3,"IfStatement":2,"BinaryExpression":6,"PropertyAccessExpression":6,"EqualsEqualsEqualsToken":4,"StringLiteral":49,"ReturnStatement":5,"FalseKeyword":2,"FirstStatement":3,"VariableDeclarationList":3,"VariableDeclaration":3,"BarBarToken":2,"TrueKeyword":1,"TypeAliasDeclaration":1,"UnionType":1,"LiteralType":15,"TypeReference":4,"TypeLiteral":1,"PropertySignature":2,"StringKeyword":5,"ObjectLiteralExpression":16,"PropertyAssignment":45,"Parameter":3,"ElementAccessExpression":1,"ConditionalExpression":1,"CallExpression":2,"QuestionToken":1,"ColonToken":1,"TemplateExpression":1,"TemplateHead":1,"TemplateSpan":2,"TemplateMiddle":1,"LastTemplateToken":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"shouldUseEmoji","nameHint":"shouldUseEmoji","file":"src/utils/logEmoji.ts","lineStart":20,"lineEnd":25,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":5,"maxBranchDepth":1,"maxLoopDepth":0,"returns":3,"awaits":0,"calls":0,"loops":0,"lengthLines":6,"cognitiveComplexity":4,"halstead":{"operators":6,"operands":14,"distinctOperators":2,"distinctOperands":9,"vocabulary":11,"length":20,"volume":69.18863237274594,"difficulty":1.5555555555555556,"effort":107.62676146871591,"time":5.979264526039773,"estimatedBugs":0.02306287745758198},"maintainabilityIndex":69.46897450163563,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"getLogEmoji","nameHint":"getLogEmoji","file":"src/utils/logEmoji.ts","lineStart":82,"lineEnd":85,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":4,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":8,"distinctOperators":0,"distinctOperands":6,"vocabulary":6,"length":8,"volume":20.67970000576925,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.006893233335256416},"maintainabilityIndex":77.38622112633225,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"prefixLog","nameHint":"prefixLog","file":"src/utils/logEmoji.ts","lineStart":101,"lineEnd":103,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":3,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":84.71624627594792,"declared":true,"params":2}],"flows":[{"kind":"IfStatement","file":"src/utils/logEmoji.ts","lineStart":21,"lineEnd":21,"columnStart":3,"columnEnd":59,"statementCount":1},{"kind":"IfStatement","file":"src/utils/logEmoji.ts","lineStart":23,"lineEnd":23,"columnStart":3,"columnEnd":80,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/logEmoji.ts","lineStart":84,"lineEnd":84,"columnStart":10,"columnEnd":57,"statementCount":1}],"dependencyProfile":{"internalDependencies":[],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"shouldUseEmoji","kind":"value","isDefault":false,"lineStart":20,"lineEnd":25},{"name":"LogEmojiKey","kind":"type","lineStart":34,"lineEnd":49},{"name":"getLogEmoji","kind":"value","isDefault":false,"lineStart":82,"lineEnd":85},{"name":"prefixLog","kind":"value","isDefault":false,"lineStart":101,"lineEnd":103}],"importedSymbols":[],"reExports":[],"package":"octocode-skill","file":"src/utils/logEmoji.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"prefixLog","lineStart":101,"lineEnd":103,"sourceParams":["message"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"medium"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":677,"symbolUsageSummary":{"declaredExportCount":4,"importedSymbolCount":0,"internalImportCount":0,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":5,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0034","AST-ISSUE-0035","AST-ISSUE-0036","AST-ISSUE-0081","AST-ISSUE-0122","AST-ISSUE-0163","AST-ISSUE-0174","AST-ISSUE-0261","AST-ISSUE-0340","AST-ISSUE-0341","AST-ISSUE-0342"]},{"package":"octocode-skill","file":"src/utils/logger.ts","parseEngine":"typescript","nodeCount":1348,"kindCounts":{"ImportDeclaration":6,"ImportClause":6,"NamedImports":3,"ImportSpecifier":4,"Identifier":435,"StringLiteral":41,"FirstStatement":37,"VariableDeclarationList":38,"VariableDeclaration":41,"CallExpression":71,"PropertyAccessExpression":70,"BinaryExpression":40,"BarBarToken":3,"FirstLiteralToken":15,"AsteriskToken":3,"FalseKeyword":6,"TrueKeyword":10,"UnionType":2,"TypeReference":13,"VoidKeyword":16,"LiteralType":1,"NullKeyword":5,"FunctionDeclaration":18,"AsyncKeyword":5,"Block":42,"IfStatement":12,"ReturnStatement":18,"ExpressionStatement":35,"FirstAssignment":8,"ParenthesizedExpression":3,"ArrowFunction":10,"EqualsGreaterThanToken":10,"TryStatement":6,"AwaitExpression":10,"ObjectLiteralExpression":11,"PropertyAssignment":22,"CatchClause":6,"TemplateExpression":8,"TemplateHead":8,"TemplateSpan":14,"LastTemplateToken":8,"PlusToken":7,"FirstTemplateToken":2,"PrefixUnaryExpression":5,"Parameter":40,"StringKeyword":38,"FirstBinaryOperator":2,"NewExpression":3,"RegularExpressionLiteral":1,"TemplateMiddle":6,"NumberKeyword":7,"AmpersandAmpersandToken":4,"ExclamationEqualsEqualsToken":3,"UnknownKeyword":14,"EqualsEqualsEqualsToken":4,"ObjectKeyword":1,"TypeOfExpression":2,"ConditionalExpression":7,"QuestionToken":14,"ColonToken":7,"QuestionQuestionToken":1,"FirstCompoundAssignment":1,"GreaterThanToken":1,"ExportKeyword":12,"InstanceOfKeyword":2,"InterfaceDeclaration":1,"PropertySignature":14,"BooleanKeyword":1,"ShorthandPropertyAssignment":14,"TypeLiteral":2,"FunctionType":3,"MinusToken":1,"AsExpression":1,"ArrayLiteralExpression":1,"ForOfStatement":1,"ArrayBindingPattern":1,"BindingElement":2,"ElementAccessExpression":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"ensureLogsDirAsync","nameHint":"ensureLogsDirAsync","file":"src/utils/logger.ts","lineStart":46,"lineEnd":65,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":4,"maxBranchDepth":1,"maxLoopDepth":0,"returns":3,"awaits":2,"calls":4,"loops":0,"lengthLines":20,"cognitiveComplexity":3,"halstead":{"operators":5,"operands":25,"distinctOperators":3,"distinctOperands":15,"vocabulary":18,"length":30,"volume":125.09775004326937,"difficulty":2.5,"effort":312.7443751081734,"time":17.374687506009636,"estimatedBugs":0.04169925001442312},"maintainabilityIndex":56.39639819987648,"declared":true,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/logger.ts","lineStart":50,"lineEnd":62,"columnStart":18,"columnEnd":4,"statementCount":1,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":2,"calls":3,"loops":0,"lengthLines":13,"cognitiveComplexity":1,"halstead":{"operators":3,"operands":20,"distinctOperators":2,"distinctOperands":14,"vocabulary":16,"length":23,"volume":92,"difficulty":1.4285714285714286,"effort":131.42857142857144,"time":7.301587301587302,"estimatedBugs":0.030666666666666665},"maintainabilityIndex":61.681005735946236,"params":0},{"kind":"FunctionDeclaration","name":"ensureLogsDirSync","nameHint":"ensureLogsDirSync","file":"src/utils/logger.ts","lineStart":70,"lineEnd":88,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":5,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":5,"loops":0,"lengthLines":19,"cognitiveComplexity":4,"halstead":{"operators":3,"operands":27,"distinctOperators":2,"distinctOperands":15,"vocabulary":17,"length":30,"volume":122.62388523751017,"difficulty":1.8,"effort":220.7229934275183,"time":12.262388523751017,"estimatedBugs":0.04087462841250339},"maintainabilityIndex":56.80857019708009,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"rotateIfNeededAsync","nameHint":"rotateIfNeededAsync","file":"src/utils/logger.ts","lineStart":97,"lineEnd":112,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":4,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":3,"calls":9,"loops":0,"lengthLines":16,"cognitiveComplexity":3,"halstead":{"operators":3,"operands":38,"distinctOperators":3,"distinctOperands":23,"vocabulary":26,"length":41,"volume":192.71802844378476,"difficulty":2.4782608695652173,"effort":477.6055487519883,"time":26.533641597332682,"estimatedBugs":0.06423934281459492},"maintainabilityIndex":57.19630200796451,"declared":true,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/logger.ts","lineStart":99,"lineEnd":99,"columnStart":53,"columnEnd":63,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":0,"distinctOperators":0,"distinctOperands":0,"vocabulary":0,"length":0,"volume":0,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0},"maintainabilityIndex":99.86549707602339,"params":0},{"kind":"FunctionDeclaration","name":"cleanupOldLogsAsync","nameHint":"cleanupOldLogsAsync","file":"src/utils/logger.ts","lineStart":117,"lineEnd":133,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":4,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":2,"calls":13,"loops":0,"lengthLines":17,"cognitiveComplexity":3,"halstead":{"operators":8,"operands":41,"distinctOperators":4,"distinctOperands":28,"vocabulary":32,"length":49,"volume":245,"difficulty":2.9285714285714284,"effort":717.5,"time":39.861111111111114,"estimatedBugs":0.08166666666666667},"maintainabilityIndex":55.89204744529634,"declared":true,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/logger.ts","lineStart":121,"lineEnd":121,"columnStart":15,"columnEnd":93,"statementCount":1,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":1,"cognitiveComplexity":2,"halstead":{"operators":5,"operands":10,"distinctOperators":3,"distinctOperands":6,"vocabulary":9,"length":15,"volume":47.548875021634686,"difficulty":2.5,"effort":118.87218755408671,"time":6.604010419671484,"estimatedBugs":0.01584962500721156},"maintainabilityIndex":87.85313317235398,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/logger.ts","lineStart":128,"lineEnd":128,"columnStart":20,"columnEnd":118,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":4,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":12,"distinctOperators":1,"distinctOperands":11,"vocabulary":12,"length":13,"volume":46.60451250937503,"difficulty":0.5454545454545454,"effort":25.42064318693183,"time":1.4122579548295462,"estimatedBugs":0.01553483750312501},"maintainabilityIndex":88.18314249630157,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/logger.ts","lineStart":128,"lineEnd":128,"columnStart":72,"columnEnd":117,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":4,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":4,"volume":8,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0026666666666666666},"maintainabilityIndex":93.54204911302038,"params":1},{"kind":"FunctionDeclaration","name":"safeStringify","nameHint":"safeStringify","file":"src/utils/logger.ts","lineStart":143,"lineEnd":188,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":10,"maxBranchDepth":2,"maxLoopDepth":0,"returns":6,"awaits":0,"calls":5,"loops":0,"lengthLines":46,"cognitiveComplexity":11,"halstead":{"operators":12,"operands":54,"distinctOperators":9,"distinctOperands":30,"vocabulary":39,"length":66,"volume":348.83654644490844,"difficulty":8.1,"effort":2825.5760262037584,"time":156.9764459002088,"estimatedBugs":0.11627884881496948},"maintainabilityIndex":44.58015869184124,"declared":true,"params":1},{"kind":"ArrowFunction","name":"replacer","nameHint":"replacer","file":"src/utils/logger.ts","lineStart":152,"lineEnd":171,"columnStart":22,"columnEnd":6,"statementCount":5,"complexity":7,"maxBranchDepth":2,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":3,"loops":0,"lengthLines":20,"cognitiveComplexity":8,"halstead":{"operators":10,"operands":26,"distinctOperators":8,"distinctOperands":15,"vocabulary":23,"length":36,"volume":162.84823041805248,"difficulty":6.933333333333334,"effort":1129.0810642318306,"time":62.726725790657255,"estimatedBugs":0.05428274347268416},"maintainabilityIndex":55.19092404017316,"params":2},{"kind":"FunctionDeclaration","name":"formatLogEntry","nameHint":"formatLogEntry","file":"src/utils/logger.ts","lineStart":193,"lineEnd":197,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":2,"loops":0,"lengthLines":5,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":13,"distinctOperators":1,"distinctOperands":10,"vocabulary":11,"length":14,"volume":48.432042660922164,"difficulty":0.65,"effort":31.480827729599408,"time":1.7489348738666337,"estimatedBugs":0.01614401422030739},"maintainabilityIndex":72.68436568791836,"declared":true,"params":3},{"kind":"FunctionDeclaration","name":"writeLogAsync","nameHint":"writeLogAsync","file":"src/utils/logger.ts","lineStart":207,"lineEnd":222,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":3,"calls":5,"loops":0,"lengthLines":16,"cognitiveComplexity":2,"halstead":{"operators":2,"operands":16,"distinctOperators":2,"distinctOperands":13,"vocabulary":15,"length":18,"volume":70.32403072095333,"difficulty":1.2307692307692308,"effort":86.55265319501949,"time":4.808480733056638,"estimatedBugs":0.02344134357365111},"maintainabilityIndex":60.39641644928865,"declared":true,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/logger.ts","lineStart":211,"lineEnd":221,"columnStart":4,"columnEnd":4,"statementCount":1,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":3,"calls":4,"loops":0,"lengthLines":11,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":15,"distinctOperators":1,"distinctOperands":13,"vocabulary":14,"length":16,"volume":60.91767875292167,"difficulty":0.5769230769230769,"effort":35.14481466514711,"time":1.9524897036192839,"estimatedBugs":0.020305892917640556},"maintainabilityIndex":64.51729519026466,"params":0},{"kind":"FunctionDeclaration","name":"logError","nameHint":"logError","file":"src/utils/logger.ts","lineStart":231,"lineEnd":246,"columnStart":1,"columnEnd":2,"statementCount":5,"complexity":5,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":5,"loops":0,"lengthLines":16,"cognitiveComplexity":5,"halstead":{"operators":3,"operands":41,"distinctOperators":3,"distinctOperands":22,"vocabulary":25,"length":44,"volume":204.32967235008786,"difficulty":2.7954545454545454,"effort":571.194311342291,"time":31.733017296793946,"estimatedBugs":0.06810989078336262},"maintainabilityIndex":56.8838842700019,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"logWarn","nameHint":"logWarn","file":"src/utils/logger.ts","lineStart":251,"lineEnd":256,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":4,"loops":0,"lengthLines":6,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":14,"distinctOperators":1,"distinctOperands":12,"vocabulary":13,"length":15,"volume":55.506595772116384,"difficulty":0.5833333333333334,"effort":32.37884753373456,"time":1.7988248629852532,"estimatedBugs":0.01850219859070546},"maintainabilityIndex":70.67700990939133,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"logToolCall","nameHint":"logToolCall","file":"src/utils/logger.ts","lineStart":277,"lineEnd":280,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":4,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":11,"distinctOperators":0,"distinctOperands":8,"vocabulary":8,"length":11,"volume":33,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.011},"maintainabilityIndex":76.0995275030597,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"logToolSuccess","nameHint":"logToolSuccess","file":"src/utils/logger.ts","lineStart":285,"lineEnd":302,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":18,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":8,"distinctOperators":0,"distinctOperands":8,"vocabulary":8,"length":8,"volume":24,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.008},"maintainabilityIndex":62.81877052881451,"declared":true,"params":6},{"kind":"FunctionDeclaration","name":"logToolError","nameHint":"logToolError","file":"src/utils/logger.ts","lineStart":307,"lineEnd":324,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":18,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":8,"distinctOperators":0,"distinctOperands":8,"vocabulary":8,"length":8,"volume":24,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.008},"maintainabilityIndex":62.81877052881451,"declared":true,"params":6},{"kind":"FunctionDeclaration","name":"getLogsPath","nameHint":"getLogsPath","file":"src/utils/logger.ts","lineStart":333,"lineEnd":335,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":1,"distinctOperators":0,"distinctOperands":1,"vocabulary":1,"length":1,"volume":0,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0},"maintainabilityIndex":89.45759118337814,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"getErrorLogPath","nameHint":"getErrorLogPath","file":"src/utils/logger.ts","lineStart":340,"lineEnd":342,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":1,"distinctOperators":0,"distinctOperands":1,"vocabulary":1,"length":1,"volume":0,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0},"maintainabilityIndex":89.45759118337814,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"getToolsLogPath","nameHint":"getToolsLogPath","file":"src/utils/logger.ts","lineStart":347,"lineEnd":349,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":1,"distinctOperators":0,"distinctOperands":1,"vocabulary":1,"length":1,"volume":0,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0},"maintainabilityIndex":89.45759118337814,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"initializeLogger","nameHint":"initializeLogger","file":"src/utils/logger.ts","lineStart":355,"lineEnd":357,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":1,"distinctOperators":0,"distinctOperands":1,"vocabulary":1,"length":1,"volume":0,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0},"maintainabilityIndex":89.45759118337814,"declared":true,"params":0},{"kind":"FunctionDeclaration","name":"createToolLogger","nameHint":"createToolLogger","file":"src/utils/logger.ts","lineStart":367,"lineEnd":392,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":5,"loops":0,"lengthLines":26,"cognitiveComplexity":1,"halstead":{"operators":4,"operands":45,"distinctOperators":3,"distinctOperands":25,"vocabulary":28,"length":49,"volume":235.5603911808226,"difficulty":2.7,"effort":636.0130561882211,"time":35.334058677123394,"estimatedBugs":0.07852013039360753},"maintainabilityIndex":52.25532516182676,"declared":true,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/logger.ts","lineStart":368,"lineEnd":391,"columnStart":10,"columnEnd":4,"statementCount":3,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":5,"loops":0,"lengthLines":24,"cognitiveComplexity":1,"halstead":{"operators":3,"operands":35,"distinctOperators":3,"distinctOperands":23,"vocabulary":26,"length":38,"volume":178.6167092893615,"difficulty":2.282608695652174,"effort":407.712053812673,"time":22.65066965625961,"estimatedBugs":0.05953890309645383},"maintainabilityIndex":53.855127718451605,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/logger.ts","lineStart":375,"lineEnd":388,"columnStart":22,"columnEnd":6,"statementCount":3,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":14,"cognitiveComplexity":1,"halstead":{"operators":2,"operands":28,"distinctOperators":2,"distinctOperands":20,"vocabulary":22,"length":30,"volume":133.78294855911892,"difficulty":1.4,"effort":187.29612798276648,"time":10.405340443487027,"estimatedBugs":0.044594316186372975},"maintainabilityIndex":59.84031229312506,"params":0},{"kind":"FunctionDeclaration","name":"sanitizeQueryParams","nameHint":"sanitizeQueryParams","file":"src/utils/logger.ts","lineStart":404,"lineEnd":413,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":1,"returns":1,"awaits":0,"calls":4,"loops":1,"lengthLines":10,"cognitiveComplexity":3,"halstead":{"operators":2,"operands":21,"distinctOperators":2,"distinctOperands":14,"vocabulary":16,"length":23,"volume":92,"difficulty":1.5,"effort":138,"time":7.666666666666667,"estimatedBugs":0.030666666666666665},"maintainabilityIndex":64.03205900166166,"declared":true,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/logger.ts","lineStart":408,"lineEnd":408,"columnStart":45,"columnEnd":81,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":4,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":4,"volume":8,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0026666666666666666},"maintainabilityIndex":93.54204911302038,"params":1}],"flows":[{"kind":"IfStatement","file":"src/utils/logger.ts","lineStart":47,"lineEnd":47,"columnStart":3,"columnEnd":27,"statementCount":1},{"kind":"IfStatement","file":"src/utils/logger.ts","lineStart":48,"lineEnd":48,"columnStart":3,"columnEnd":39,"statementCount":1},{"kind":"TryStatement","file":"src/utils/logger.ts","lineStart":51,"lineEnd":61,"columnStart":5,"columnEnd":6,"statementCount":3},{"kind":"IfStatement","file":"src/utils/logger.ts","lineStart":71,"lineEnd":71,"columnStart":3,"columnEnd":27,"statementCount":1},{"kind":"TryStatement","file":"src/utils/logger.ts","lineStart":73,"lineEnd":87,"columnStart":3,"columnEnd":4,"statementCount":3},{"kind":"IfStatement","file":"src/utils/logger.ts","lineStart":74,"lineEnd":76,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/utils/logger.ts","lineStart":77,"lineEnd":79,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"TryStatement","file":"src/utils/logger.ts","lineStart":98,"lineEnd":111,"columnStart":3,"columnEnd":4,"statementCount":8},{"kind":"IfStatement","file":"src/utils/logger.ts","lineStart":100,"lineEnd":100,"columnStart":5,"columnEnd":53,"statementCount":1},{"kind":"TryStatement","file":"src/utils/logger.ts","lineStart":118,"lineEnd":132,"columnStart":3,"columnEnd":4,"statementCount":4},{"kind":"IfStatement","file":"src/utils/logger.ts","lineStart":144,"lineEnd":144,"columnStart":3,"columnEnd":37,"statementCount":1},{"kind":"TryStatement","file":"src/utils/logger.ts","lineStart":146,"lineEnd":187,"columnStart":3,"columnEnd":4,"statementCount":7},{"kind":"IfStatement","file":"src/utils/logger.ts","lineStart":154,"lineEnd":159,"columnStart":7,"columnEnd":8,"statementCount":2},{"kind":"IfStatement","file":"src/utils/logger.ts","lineStart":155,"lineEnd":157,"columnStart":9,"columnEnd":10,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/logger.ts","lineStart":162,"lineEnd":162,"columnStart":24,"columnEnd":79,"statementCount":1},{"kind":"IfStatement","file":"src/utils/logger.ts","lineStart":166,"lineEnd":168,"columnStart":7,"columnEnd":8,"statementCount":1},{"kind":"IfStatement","file":"src/utils/logger.ts","lineStart":176,"lineEnd":182,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/logger.ts","lineStart":195,"lineEnd":195,"columnStart":19,"columnEnd":71,"statementCount":1},{"kind":"IfStatement","file":"src/utils/logger.ts","lineStart":208,"lineEnd":208,"columnStart":3,"columnEnd":35,"statementCount":1},{"kind":"TryStatement","file":"src/utils/logger.ts","lineStart":212,"lineEnd":220,"columnStart":5,"columnEnd":6,"statementCount":3},{"kind":"ConditionalExpression","file":"src/utils/logger.ts","lineStart":233,"lineEnd":235,"columnStart":5,"columnEnd":14,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/logger.ts","lineStart":241,"lineEnd":243,"columnStart":24,"columnEnd":69,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/logger.ts","lineStart":243,"lineEnd":243,"columnStart":8,"columnEnd":68,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/logger.ts","lineStart":386,"lineEnd":386,"columnStart":16,"columnEnd":62,"statementCount":1},{"kind":"ForOfStatement","file":"src/utils/logger.ts","lineStart":407,"lineEnd":410,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"ConditionalExpression","file":"src/utils/logger.ts","lineStart":409,"lineEnd":409,"columnStart":22,"columnEnd":56,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/utils/colors.ts","src/utils/errorQueue.ts"],"externalDependencies":["node:fs","node:os","node:path"],"unresolvedDependencies":[],"declaredExports":[{"name":"logError","kind":"value","isDefault":false,"lineStart":231,"lineEnd":246},{"name":"logWarn","kind":"value","isDefault":false,"lineStart":251,"lineEnd":256},{"name":"ToolLogEntry","kind":"type","lineStart":262,"lineEnd":272},{"name":"logToolCall","kind":"value","isDefault":false,"lineStart":277,"lineEnd":280},{"name":"logToolSuccess","kind":"value","isDefault":false,"lineStart":285,"lineEnd":302},{"name":"logToolError","kind":"value","isDefault":false,"lineStart":307,"lineEnd":324},{"name":"getLogsPath","kind":"value","isDefault":false,"lineStart":333,"lineEnd":335},{"name":"getErrorLogPath","kind":"value","isDefault":false,"lineStart":340,"lineEnd":342},{"name":"getToolsLogPath","kind":"value","isDefault":false,"lineStart":347,"lineEnd":349},{"name":"initializeLogger","kind":"value","isDefault":false,"lineStart":355,"lineEnd":357},{"name":"createToolLogger","kind":"value","isDefault":false,"lineStart":367,"lineEnd":392},{"name":"sanitizeQueryParams","kind":"value","isDefault":false,"lineStart":404,"lineEnd":413}],"importedSymbols":[{"sourceModule":"./colors.js","resolvedModule":"src/utils/colors.ts","importedName":"errorLog","localName":"errorLog","isTypeOnly":false,"lineStart":1,"lineEnd":1},{"sourceModule":"./colors.js","resolvedModule":"src/utils/colors.ts","importedName":"warnLog","localName":"warnLog","isTypeOnly":false,"lineStart":1,"lineEnd":1},{"sourceModule":"./errorQueue.js","resolvedModule":"src/utils/errorQueue.ts","importedName":"errorQueue","localName":"errorQueue","isTypeOnly":false,"lineStart":2,"lineEnd":2},{"sourceModule":"node:fs","importedName":"default","localName":"fs","isTypeOnly":false,"lineStart":13,"lineEnd":13},{"sourceModule":"node:fs","importedName":"promises","localName":"fsAsync","isTypeOnly":false,"lineStart":14,"lineEnd":14},{"sourceModule":"node:path","importedName":"default","localName":"path","isTypeOnly":false,"lineStart":15,"lineEnd":15},{"sourceModule":"node:os","importedName":"default","localName":"os","isTypeOnly":false,"lineStart":16,"lineEnd":16}],"reExports":[],"package":"octocode-skill","file":"src/utils/logger.ts"},"emptyCatches":[{"file":"src/utils/logger.ts","lineStart":109,"lineEnd":111},{"file":"src/utils/logger.ts","lineStart":130,"lineEnd":132}],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":10,"file":"src/utils/logger.ts","lineStart":29,"lineEnd":29},{"value":1024,"file":"src/utils/logger.ts","lineStart":29,"lineEnd":29},{"value":1024,"file":"src/utils/logger.ts","lineStart":29,"lineEnd":29},{"value":1024,"file":"src/utils/logger.ts","lineStart":32,"lineEnd":32},{"value":448,"file":"src/utils/logger.ts","lineStart":52,"lineEnd":52},{"value":448,"file":"src/utils/logger.ts","lineStart":53,"lineEnd":53},{"value":448,"file":"src/utils/logger.ts","lineStart":75,"lineEnd":75},{"value":448,"file":"src/utils/logger.ts","lineStart":78,"lineEnd":78},{"value":5,"file":"src/utils/logger.ts","lineStart":108,"lineEnd":108},{"value":10,"file":"src/utils/logger.ts","lineStart":163,"lineEnd":163},{"value":400,"file":"src/utils/logger.ts","lineStart":377,"lineEnd":377}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[{"name":"ensureLogsDirAsync","lineStart":46,"lineEnd":65}],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[{"lineStart":57,"lineEnd":57,"kind":"sql-injection","snippet":"`[Logger] Failed to create logs directory: ${err}\\n`"},{"lineStart":83,"lineEnd":83,"kind":"sql-injection","snippet":"`[Logger] Failed to create logs directory: ${err}\\n`"}],"consoleLogs":[{"method":"error","lineStart":245,"lineEnd":245,"hasSensitiveArg":false,"argSnippet":"'%s %o' errorLog('[ERROR] ' + message) consoleError"},{"method":"warn","lineStart":255,"lineEnd":255,"hasSensitiveArg":false,"argSnippet":"'%s' warnLog('[WARN] ' + message)"}],"regexLiterals":[{"lineStart":102,"lineEnd":102,"pattern":"/[:.]/g"}],"inputSources":[{"functionName":"safeStringify","lineStart":143,"lineEnd":188,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[{"callee":"JSON.stringify","lineStart":173}],"paramConfidence":"low"},{"functionName":"formatLogEntry","lineStart":193,"lineEnd":197,"sourceParams":["message","data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[{"callee":"safeStringify","lineStart":195}],"paramConfidence":"medium"},{"functionName":"logError","lineStart":231,"lineEnd":246,"sourceParams":["message"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[{"callee":"formatLogEntry","lineStart":237}],"paramConfidence":"medium"},{"functionName":"logWarn","lineStart":251,"lineEnd":256,"sourceParams":["message","data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[{"callee":"formatLogEntry","lineStart":252},{"callee":"formatLogEntry","lineStart":252}],"paramConfidence":"medium"},{"functionName":"logToolSuccess","lineStart":285,"lineEnd":302,"sourceParams":["params"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"high"},{"functionName":"logToolError","lineStart":307,"lineEnd":324,"sourceParams":["params"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"high"},{"functionName":"<anonymous>","lineStart":368,"lineEnd":391,"sourceParams":["req"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"high"},{"functionName":"sanitizeQueryParams","lineStart":404,"lineEnd":413,"sourceParams":["query"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[{"callee":"Object.entries","lineStart":407}],"paramConfidence":"high"}],"awaitInLoopLocations":[],"syncIoCalls":[{"name":"existsSync","lineStart":74,"lineEnd":74},{"name":"mkdirSync","lineStart":75,"lineEnd":75},{"name":"existsSync","lineStart":77,"lineEnd":77},{"name":"mkdirSync","lineStart":78,"lineEnd":78}],"timerCalls":[],"listenerRegistrations":[{"file":"src/utils/logger.ts","lineStart":375,"lineEnd":388}],"listenerRemovals":[],"prototypePollutionSites":[{"kind":"computed-property-write","detail":"Dynamic bracket assignment: sanitized[key]","lineStart":409,"lineEnd":409,"guarded":true}],"treeSitterNodeCount":2752,"symbolUsageSummary":{"declaredExportCount":12,"importedSymbolCount":7,"internalImportCount":3,"externalImportCount":3,"reExportCount":0,"dominantInternalDependency":"src/utils/colors.ts"},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":true,"hasCleanupHooks":false,"exitPointCount":20,"asyncBoundaryCount":15,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0037","AST-ISSUE-0038","AST-ISSUE-0039","AST-ISSUE-0040","AST-ISSUE-0041","AST-ISSUE-0082","AST-ISSUE-0083","AST-ISSUE-0084","AST-ISSUE-0085","AST-ISSUE-0086","AST-ISSUE-0111","AST-ISSUE-0112","AST-ISSUE-0164","AST-ISSUE-0237","AST-ISSUE-0238","AST-ISSUE-0239","AST-ISSUE-0240","AST-ISSUE-0246","AST-ISSUE-0253","AST-ISSUE-0255","AST-ISSUE-0276","AST-ISSUE-0282","AST-ISSUE-0283","AST-ISSUE-0284","AST-ISSUE-0285","AST-ISSUE-0291","AST-ISSUE-0292","AST-ISSUE-0343","AST-ISSUE-0344","AST-ISSUE-0345","AST-ISSUE-0346","AST-ISSUE-0347","AST-ISSUE-0375"]},{"package":"octocode-skill","file":"src/utils/resilience.ts","parseEngine":"typescript","nodeCount":375,"kindCounts":{"ImportDeclaration":3,"ImportClause":3,"NamedImports":3,"ImportSpecifier":6,"Identifier":139,"StringLiteral":20,"FirstStatement":8,"VariableDeclarationList":8,"VariableDeclaration":8,"FirstLiteralToken":5,"AsExpression":2,"ObjectLiteralExpression":11,"PropertyAssignment":29,"TypeReference":27,"StringKeyword":7,"InterfaceDeclaration":1,"ExportKeyword":5,"PropertySignature":4,"QuestionToken":4,"FunctionType":6,"UnknownKeyword":1,"PropertyAccessExpression":6,"TypeAliasDeclaration":1,"TypeOperator":1,"TypeQuery":1,"FunctionDeclaration":5,"AsyncKeyword":6,"TypeParameter":5,"Parameter":11,"TypeLiteral":1,"Block":6,"ElementAccessExpression":3,"BinaryExpression":3,"BarBarToken":3,"QuestionDotToken":1,"ReturnStatement":6,"CallExpression":7,"ArrowFunction":2,"EqualsGreaterThanToken":2,"TemplateExpression":1,"TemplateHead":1,"TemplateSpan":1,"LastTemplateToken":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"withResilience","nameHint":"withResilience","file":"src/utils/resilience.ts","lineStart":109,"lineEnd":129,"columnStart":1,"columnEnd":2,"statementCount":5,"complexity":4,"maxBranchDepth":0,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":3,"loops":0,"lengthLines":21,"cognitiveComplexity":3,"halstead":{"operators":5,"operands":25,"distinctOperators":2,"distinctOperands":16,"vocabulary":18,"length":30,"volume":125.09775004326937,"difficulty":1.5625,"effort":195.4652344426084,"time":10.859179691256022,"estimatedBugs":0.04169925001442312},"maintainabilityIndex":55.934175591955544,"declared":true,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/resilience.ts","lineStart":123,"lineEnd":125,"columnStart":5,"columnEnd":7,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":2,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":7,"distinctOperators":1,"distinctOperands":7,"vocabulary":8,"length":8,"volume":24,"difficulty":0.5,"effort":12,"time":0.6666666666666666,"estimatedBugs":0.008},"maintainabilityIndex":79.79333392150134,"params":0},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/resilience.ts","lineStart":123,"lineEnd":125,"columnStart":43,"columnEnd":6,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":5,"volume":11.60964047443681,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0038698801581456034},"maintainabilityIndex":82.00171614982087,"params":0},{"kind":"FunctionDeclaration","name":"withGitHubResilience","nameHint":"withGitHubResilience","file":"src/utils/resilience.ts","lineStart":134,"lineEnd":139,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":5,"volume":11.60964047443681,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0038698801581456034},"maintainabilityIndex":75.43505864977928,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"withLspResilience","nameHint":"withLspResilience","file":"src/utils/resilience.ts","lineStart":144,"lineEnd":149,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":5,"volume":11.60964047443681,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0038698801581456034},"maintainabilityIndex":75.43505864977928,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"withLocalResilience","nameHint":"withLocalResilience","file":"src/utils/resilience.ts","lineStart":154,"lineEnd":159,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":5,"volume":11.60964047443681,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0038698801581456034},"maintainabilityIndex":75.43505864977928,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"withPackageResilience","nameHint":"withPackageResilience","file":"src/utils/resilience.ts","lineStart":164,"lineEnd":169,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":5,"volume":11.60964047443681,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0038698801581456034},"maintainabilityIndex":75.43505864977928,"declared":true,"params":2}],"flows":[],"dependencyProfile":{"internalDependencies":["src/utils/asyncTimeout.ts","src/utils/circuitBreaker.ts","src/utils/retry.ts"],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"ResilienceConfig","kind":"type","lineStart":58,"lineEnd":63},{"name":"withGitHubResilience","kind":"value","isDefault":false,"lineStart":134,"lineEnd":139},{"name":"withLspResilience","kind":"value","isDefault":false,"lineStart":144,"lineEnd":149},{"name":"withLocalResilience","kind":"value","isDefault":false,"lineStart":154,"lineEnd":159},{"name":"withPackageResilience","kind":"value","isDefault":false,"lineStart":164,"lineEnd":169}],"importedSymbols":[{"sourceModule":"./circuitBreaker.js","resolvedModule":"src/utils/circuitBreaker.ts","importedName":"withCircuitBreaker","localName":"withCircuitBreaker","isTypeOnly":false,"lineStart":7,"lineEnd":7},{"sourceModule":"./circuitBreaker.js","resolvedModule":"src/utils/circuitBreaker.ts","importedName":"CircuitBreakerConfig","localName":"CircuitBreakerConfig","isTypeOnly":true,"lineStart":7,"lineEnd":7},{"sourceModule":"./retry.js","resolvedModule":"src/utils/retry.ts","importedName":"withRetry","localName":"withRetry","isTypeOnly":false,"lineStart":8,"lineEnd":8},{"sourceModule":"./retry.js","resolvedModule":"src/utils/retry.ts","importedName":"RetryConfig","localName":"RetryConfig","isTypeOnly":true,"lineStart":8,"lineEnd":8},{"sourceModule":"./retry.js","resolvedModule":"src/utils/retry.ts","importedName":"RETRY_CONFIGS","localName":"RETRY_CONFIGS","isTypeOnly":false,"lineStart":8,"lineEnd":8},{"sourceModule":"./asyncTimeout.js","resolvedModule":"src/utils/asyncTimeout.ts","importedName":"withTimeout","localName":"withTimeout","isTypeOnly":false,"lineStart":9,"lineEnd":9}],"reExports":[],"package":"octocode-skill","file":"src/utils/resilience.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":60000,"file":"src/utils/resilience.ts","lineStart":16,"lineEnd":16},{"value":30000,"file":"src/utils/resilience.ts","lineStart":17,"lineEnd":17},{"value":30000,"file":"src/utils/resilience.ts","lineStart":18,"lineEnd":18},{"value":30000,"file":"src/utils/resilience.ts","lineStart":19,"lineEnd":19}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"withResilience","lineStart":109,"lineEnd":129,"sourceParams":["context"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[],"paramConfidence":"low"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":814,"symbolUsageSummary":{"declaredExportCount":5,"importedSymbolCount":6,"internalImportCount":6,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":"src/utils/retry.ts"},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":true,"hasCleanupHooks":false,"exitPointCount":8,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0087","AST-ISSUE-0129","AST-ISSUE-0165"]},{"package":"octocode-skill","file":"src/utils/responseBuilder.ts","parseEngine":"typescript","nodeCount":2227,"kindCounts":{"ImportDeclaration":1,"ImportClause":1,"NamedImports":1,"ImportSpecifier":3,"Identifier":680,"StringLiteral":109,"TypeAliasDeclaration":1,"TypeReference":25,"TypeQuery":1,"InterfaceDeclaration":4,"PropertySignature":80,"NumberKeyword":20,"BooleanKeyword":3,"QuestionToken":79,"StringKeyword":53,"ArrayType":17,"FirstStatement":42,"ExportKeyword":1,"VariableDeclarationList":42,"VariableDeclaration":42,"ObjectLiteralExpression":21,"MethodDeclaration":7,"Parameter":17,"TypeLiteral":13,"Block":27,"ObjectBindingPattern":7,"BindingElement":35,"ArrayLiteralExpression":14,"ConditionalExpression":30,"TemplateExpression":45,"TemplateHead":45,"TemplateSpan":79,"LastTemplateToken":45,"ColonToken":30,"BinaryExpression":63,"PropertyAccessExpression":144,"GreaterThanToken":20,"FirstLiteralToken":46,"TemplateMiddle":34,"PlusToken":12,"CallExpression":64,"ArrowFunction":9,"EqualsGreaterThanToken":9,"TypeOfExpression":2,"EqualsEqualsEqualsToken":17,"AmpersandAmpersandToken":3,"ParenthesizedExpression":7,"MinusToken":1,"SpreadElement":6,"IfStatement":21,"ExpressionStatement":25,"QuestionDotToken":2,"ReturnStatement":13,"BarBarToken":10,"PropertyAssignment":71,"ShorthandPropertyAssignment":8,"UnionType":2,"LiteralType":7,"ElementAccessExpression":3,"FalseKeyword":1,"UnknownKeyword":1,"FunctionDeclaration":1,"ExportDeclaration":1,"NamedExports":1,"ExportSpecifier":2,"EndOfFileToken":1},"functions":[{"kind":"MethodDeclaration","name":"searchResults","nameHint":"searchResults","file":"src/utils/responseBuilder.ts","lineStart":75,"lineEnd":128,"columnStart":3,"columnEnd":4,"statementCount":9,"complexity":15,"maxBranchDepth":1,"maxLoopDepth":0,"returns":3,"awaits":0,"calls":9,"loops":0,"lengthLines":54,"cognitiveComplexity":22,"halstead":{"operators":13,"operands":111,"distinctOperators":6,"distinctOperands":38,"vocabulary":44,"length":124,"volume":676.9695207110249,"difficulty":8.763157894736842,"effort":5932.390799915034,"time":329.57726666194634,"estimatedBugs":0.22565650690367495},"maintainabilityIndex":40.37239879622097,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/responseBuilder.ts","lineStart":96,"lineEnd":97,"columnStart":15,"columnEnd":265,"statementCount":1,"complexity":7,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":2,"cognitiveComplexity":7,"halstead":{"operators":3,"operands":34,"distinctOperators":3,"distinctOperands":13,"vocabulary":16,"length":37,"volume":148,"difficulty":3.9230769230769234,"effort":580.6153846153846,"time":32.256410256410255,"estimatedBugs":0.04933333333333333},"maintainabilityIndex":77.29562096570496,"params":1},{"kind":"MethodDeclaration","name":"fileContent","nameHint":"fileContent","file":"src/utils/responseBuilder.ts","lineStart":133,"lineEnd":170,"columnStart":3,"columnEnd":4,"statementCount":9,"complexity":6,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":6,"loops":0,"lengthLines":38,"cognitiveComplexity":5,"halstead":{"operators":2,"operands":60,"distinctOperators":2,"distinctOperands":31,"vocabulary":33,"length":62,"volume":312.7524354002241,"difficulty":1.935483870967742,"effort":605.3272943230144,"time":33.629294129056355,"estimatedBugs":0.1042508118000747},"maintainabilityIndex":47.26021177971935,"params":1},{"kind":"MethodDeclaration","name":"lspResult","nameHint":"lspResult","file":"src/utils/responseBuilder.ts","lineStart":175,"lineEnd":236,"columnStart":3,"columnEnd":4,"statementCount":9,"complexity":10,"maxBranchDepth":2,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":9,"loops":0,"lengthLines":62,"cognitiveComplexity":12,"halstead":{"operators":10,"operands":112,"distinctOperators":5,"distinctOperands":55,"vocabulary":60,"length":122,"volume":720.6406526642393,"difficulty":5.09090909090909,"effort":3668.716049927036,"time":203.81755832927976,"estimatedBugs":0.24021355088807975},"maintainabilityIndex":39.54601858549786,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/responseBuilder.ts","lineStart":209,"lineEnd":210,"columnStart":15,"columnEnd":77,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":2,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":9,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":9,"volume":20.89735285398626,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0069657842846620865},"maintainabilityIndex":83.92104018131865,"params":1},{"kind":"MethodDeclaration","name":"repoStructure","nameHint":"repoStructure","file":"src/utils/responseBuilder.ts","lineStart":241,"lineEnd":302,"columnStart":3,"columnEnd":4,"statementCount":11,"complexity":14,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":10,"loops":0,"lengthLines":62,"cognitiveComplexity":13,"halstead":{"operators":16,"operands":110,"distinctOperators":6,"distinctOperands":50,"vocabulary":56,"length":126,"volume":731.7267201792581,"difficulty":6.6000000000000005,"effort":4829.396353183104,"time":268.29979739906133,"estimatedBugs":0.24390890672641938},"maintainabilityIndex":38.961582446902085,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/responseBuilder.ts","lineStart":266,"lineEnd":266,"columnStart":39,"columnEnd":55,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":1,"distinctOperators":0,"distinctOperands":1,"vocabulary":1,"length":1,"volume":0,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0},"maintainabilityIndex":99.86549707602339,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/responseBuilder.ts","lineStart":269,"lineEnd":269,"columnStart":35,"columnEnd":51,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":1,"distinctOperators":0,"distinctOperands":1,"vocabulary":1,"length":1,"volume":0,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0},"maintainabilityIndex":99.86549707602339,"params":1},{"kind":"MethodDeclaration","name":"packageSearch","nameHint":"packageSearch","file":"src/utils/responseBuilder.ts","lineStart":307,"lineEnd":351,"columnStart":3,"columnEnd":4,"statementCount":7,"complexity":9,"maxBranchDepth":2,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":11,"loops":0,"lengthLines":45,"cognitiveComplexity":11,"halstead":{"operators":7,"operands":79,"distinctOperators":4,"distinctOperands":32,"vocabulary":36,"length":86,"volume":444.61355012403885,"difficulty":4.9375,"effort":2195.279403737442,"time":121.95996687430232,"estimatedBugs":0.14820451670801296},"maintainabilityIndex":44.1851457188283,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/responseBuilder.ts","lineStart":330,"lineEnd":331,"columnStart":15,"columnEnd":184,"statementCount":1,"complexity":4,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":2,"cognitiveComplexity":3,"halstead":{"operators":1,"operands":18,"distinctOperators":1,"distinctOperands":8,"vocabulary":9,"length":19,"volume":60.228575027403934,"difficulty":1.125,"effort":67.75714690582943,"time":3.764285939212746,"estimatedBugs":0.02007619167580131},"maintainabilityIndex":80.43312968053813,"params":1},{"kind":"MethodDeclaration","name":"pullRequests","nameHint":"pullRequests","file":"src/utils/responseBuilder.ts","lineStart":356,"lineEnd":405,"columnStart":3,"columnEnd":4,"statementCount":8,"complexity":8,"maxBranchDepth":2,"maxLoopDepth":0,"returns":3,"awaits":0,"calls":10,"loops":0,"lengthLines":50,"cognitiveComplexity":8,"halstead":{"operators":6,"operands":75,"distinctOperators":4,"distinctOperands":30,"vocabulary":34,"length":81,"volume":412.08449014127746,"difficulty":5,"effort":2060.4224507063873,"time":114.46791392813263,"estimatedBugs":0.13736149671375916},"maintainabilityIndex":43.55253779201792,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/responseBuilder.ts","lineStart":380,"lineEnd":381,"columnStart":15,"columnEnd":100,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":2,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":11,"distinctOperators":0,"distinctOperands":6,"vocabulary":6,"length":11,"volume":28.43458750793272,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.009478195835977574},"maintainabilityIndex":82.98448131537009,"params":1},{"kind":"MethodDeclaration","name":"bulkResult","nameHint":"bulkResult","file":"src/utils/responseBuilder.ts","lineStart":410,"lineEnd":452,"columnStart":3,"columnEnd":4,"statementCount":10,"complexity":7,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":6,"loops":0,"lengthLines":43,"cognitiveComplexity":7,"halstead":{"operators":16,"operands":79,"distinctOperators":4,"distinctOperands":33,"vocabulary":37,"length":95,"volume":494.89806973475027,"difficulty":4.787878787878788,"effort":2369.511970245168,"time":131.63955390250933,"estimatedBugs":0.16496602324491674},"maintainabilityIndex":44.55902260424228,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/responseBuilder.ts","lineStart":417,"lineEnd":417,"columnStart":39,"columnEnd":66,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":3,"distinctOperators":1,"distinctOperands":3,"vocabulary":4,"length":4,"volume":8,"difficulty":0.5,"effort":4,"time":0.2222222222222222,"estimatedBugs":0.0026666666666666666},"maintainabilityIndex":93.54204911302038,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/responseBuilder.ts","lineStart":418,"lineEnd":418,"columnStart":35,"columnEnd":60,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":3,"distinctOperators":1,"distinctOperands":3,"vocabulary":4,"length":4,"volume":8,"difficulty":0.5,"effort":4,"time":0.2222222222222222,"estimatedBugs":0.0026666666666666666},"maintainabilityIndex":93.54204911302038,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/responseBuilder.ts","lineStart":419,"lineEnd":419,"columnStart":34,"columnEnd":59,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":3,"distinctOperators":1,"distinctOperands":3,"vocabulary":4,"length":4,"volume":8,"difficulty":0.5,"effort":4,"time":0.2222222222222222,"estimatedBugs":0.0026666666666666666},"maintainabilityIndex":93.54204911302038,"params":1},{"kind":"FunctionDeclaration","name":"detectLanguage","nameHint":"detectLanguage","file":"src/utils/responseBuilder.ts","lineStart":458,"lineEnd":492,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":3,"loops":0,"lengthLines":35,"cognitiveComplexity":2,"halstead":{"operators":2,"operands":70,"distinctOperators":1,"distinctOperands":60,"vocabulary":61,"length":72,"volume":427.01308830452786,"difficulty":0.5833333333333334,"effort":249.09096817764126,"time":13.83838712098007,"estimatedBugs":0.1423376961015093},"maintainabilityIndex":47.49586265984606,"declared":true,"params":1}],"flows":[{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":89,"lineEnd":89,"columnStart":25,"columnEnd":71,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":91,"lineEnd":101,"columnStart":7,"columnEnd":43,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":97,"lineEnd":97,"columnStart":22,"columnEnd":48,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":97,"lineEnd":97,"columnStart":60,"columnEnd":93,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":97,"lineEnd":97,"columnStart":96,"columnEnd":138,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":97,"lineEnd":97,"columnStart":141,"columnEnd":263,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":97,"lineEnd":97,"columnStart":220,"columnEnd":255,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":100,"lineEnd":100,"columnStart":12,"columnEnd":80,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":105,"lineEnd":107,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":108,"lineEnd":110,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":113,"lineEnd":121,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":115,"lineEnd":119,"columnStart":26,"columnEnd":8,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":123,"lineEnd":125,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":147,"lineEnd":147,"columnStart":22,"columnEnd":73,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":156,"lineEnd":158,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":159,"lineEnd":162,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":205,"lineEnd":213,"columnStart":7,"columnEnd":45,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":210,"lineEnd":210,"columnStart":40,"columnEnd":75,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":217,"lineEnd":225,"columnStart":5,"columnEnd":6,"statementCount":3},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":219,"lineEnd":219,"columnStart":7,"columnEnd":89,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":220,"lineEnd":220,"columnStart":7,"columnEnd":92,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":221,"lineEnd":225,"columnStart":12,"columnEnd":6,"statementCount":3},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":232,"lineEnd":232,"columnStart":16,"columnEnd":68,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":257,"lineEnd":257,"columnStart":22,"columnEnd":61,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":264,"lineEnd":264,"columnStart":13,"columnEnd":43,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":265,"lineEnd":267,"columnStart":8,"columnEnd":13,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":268,"lineEnd":270,"columnStart":8,"columnEnd":39,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":274,"lineEnd":276,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":277,"lineEnd":279,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":286,"lineEnd":293,"columnStart":11,"columnEnd":24,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":323,"lineEnd":323,"columnStart":23,"columnEnd":53,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":325,"lineEnd":334,"columnStart":7,"columnEnd":71,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":331,"lineEnd":331,"columnStart":31,"columnEnd":63,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":331,"lineEnd":331,"columnStart":70,"columnEnd":138,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":331,"lineEnd":331,"columnStart":141,"columnEnd":182,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":338,"lineEnd":344,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":341,"lineEnd":344,"columnStart":12,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":346,"lineEnd":348,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":373,"lineEnd":373,"columnStart":22,"columnEnd":47,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":375,"lineEnd":384,"columnStart":7,"columnEnd":46,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":381,"lineEnd":381,"columnStart":62,"columnEnd":98,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":388,"lineEnd":394,"columnStart":5,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":391,"lineEnd":394,"columnStart":12,"columnEnd":6,"statementCount":2},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":396,"lineEnd":398,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":400,"lineEnd":402,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":424,"lineEnd":424,"columnStart":8,"columnEnd":65,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":425,"lineEnd":425,"columnStart":8,"columnEnd":65,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":428,"lineEnd":430,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseBuilder.ts","lineStart":431,"lineEnd":433,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":436,"lineEnd":440,"columnStart":7,"columnEnd":32,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseBuilder.ts","lineStart":438,"lineEnd":440,"columnStart":11,"columnEnd":32,"statementCount":1}],"dependencyProfile":{"internalDependencies":[],"externalDependencies":["octocode-mcp/public"],"unresolvedDependencies":[],"declaredExports":[{"name":"ResearchResponse","kind":"value","lineStart":71,"lineEnd":453},{"name":"QuickResult","kind":"unknown","lineStart":495,"lineEnd":495},{"name":"detectLanguageFromPath","kind":"unknown","lineStart":495,"lineEnd":495}],"importedSymbols":[{"sourceModule":"octocode-mcp/public","importedName":"createRoleBasedResult","localName":"createRoleBasedResult","isTypeOnly":false,"lineStart":15,"lineEnd":19},{"sourceModule":"octocode-mcp/public","importedName":"QuickResult","localName":"QuickResult","isTypeOnly":false,"lineStart":15,"lineEnd":19},{"sourceModule":"octocode-mcp/public","importedName":"StatusEmoji","localName":"StatusEmoji","isTypeOnly":false,"lineStart":15,"lineEnd":19}],"reExports":[],"package":"octocode-skill","file":"src/utils/responseBuilder.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":10,"file":"src/utils/responseBuilder.ts","lineStart":94,"lineEnd":94},{"value":10,"file":"src/utils/responseBuilder.ts","lineStart":100,"lineEnd":100},{"value":10,"file":"src/utils/responseBuilder.ts","lineStart":100,"lineEnd":100},{"value":10,"file":"src/utils/responseBuilder.ts","lineStart":105,"lineEnd":105},{"value":20,"file":"src/utils/responseBuilder.ts","lineStart":260,"lineEnd":260},{"value":20,"file":"src/utils/responseBuilder.ts","lineStart":261,"lineEnd":261},{"value":20,"file":"src/utils/responseBuilder.ts","lineStart":277,"lineEnd":277},{"value":20,"file":"src/utils/responseBuilder.ts","lineStart":277,"lineEnd":277},{"value":10,"file":"src/utils/responseBuilder.ts","lineStart":328,"lineEnd":328},{"value":10,"file":"src/utils/responseBuilder.ts","lineStart":378,"lineEnd":378}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":4195,"symbolUsageSummary":{"declaredExportCount":3,"importedSymbolCount":3,"internalImportCount":0,"externalImportCount":1,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":13,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0056","AST-ISSUE-0110","AST-ISSUE-0146","AST-ISSUE-0270","AST-ISSUE-0280","AST-ISSUE-0281"]},{"package":"octocode-skill","file":"src/utils/responseFactory.ts","parseEngine":"typescript","nodeCount":353,"kindCounts":{"ImportDeclaration":3,"ImportClause":3,"NamedImports":3,"ImportSpecifier":10,"Identifier":126,"StringLiteral":12,"FunctionDeclaration":8,"ExportKeyword":8,"Parameter":14,"UnknownKeyword":8,"ArrayType":4,"TypeReference":5,"Block":12,"ReturnStatement":14,"CallExpression":20,"UnionType":2,"UndefinedKeyword":2,"NumberKeyword":8,"StringKeyword":5,"IfStatement":5,"ElementAccessExpression":4,"FirstLiteralToken":5,"TypeParameter":1,"BinaryExpression":4,"AmpersandAmpersandToken":3,"AsExpression":1,"ArrayLiteralExpression":1,"TypeLiteral":2,"PropertySignature":8,"QuestionToken":8,"PropertyAccessExpression":7,"ArrowFunction":1,"EqualsGreaterThanToken":1,"PrefixUnaryExpression":2,"ObjectLiteralExpression":3,"PropertyAssignment":8,"ConditionalExpression":4,"ColonToken":4,"BooleanKeyword":1,"FirstStatement":3,"VariableDeclarationList":3,"VariableDeclaration":3,"EqualsEqualsEqualsToken":1,"TrueKeyword":1,"ShorthandPropertyAssignment":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"extractFileMatches","nameHint":"extractFileMatches","file":"src/utils/responseFactory.ts","lineStart":19,"lineEnd":21,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":87.34977519571046,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"extractPaginationInfo","nameHint":"extractPaginationInfo","file":"src/utils/responseFactory.ts","lineStart":26,"lineEnd":28,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":87.34977519571046,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"extractMatchCount","nameHint":"extractMatchCount","file":"src/utils/responseFactory.ts","lineStart":33,"lineEnd":35,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":87.34977519571046,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"safeString","nameHint":"safeString","file":"src/utils/responseFactory.ts","lineStart":40,"lineEnd":45,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":6,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":6,"volume":12,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.004},"maintainabilityIndex":75.19998948515081,"declared":true,"params":3},{"kind":"FunctionDeclaration","name":"safeNumber","nameHint":"safeNumber","file":"src/utils/responseFactory.ts","lineStart":50,"lineEnd":55,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":1,"loops":0,"lengthLines":6,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":6,"distinctOperators":0,"distinctOperands":4,"vocabulary":4,"length":6,"volume":12,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.004},"maintainabilityIndex":75.19998948515081,"declared":true,"params":3},{"kind":"FunctionDeclaration","name":"safeArray","nameHint":"safeArray","file":"src/utils/responseFactory.ts","lineStart":60,"lineEnd":65,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":4,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":3,"loops":0,"lengthLines":6,"cognitiveComplexity":3,"halstead":{"operators":2,"operands":11,"distinctOperators":1,"distinctOperands":6,"vocabulary":7,"length":13,"volume":36.49561398674886,"difficulty":0.9166666666666666,"effort":33.45431282118645,"time":1.8585729345103583,"estimatedBugs":0.012165204662249619},"maintainabilityIndex":71.5485951682303,"declared":true,"params":2},{"kind":"FunctionDeclaration","name":"extractMatchLocations","nameHint":"extractMatchLocations","file":"src/utils/responseFactory.ts","lineStart":70,"lineEnd":87,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":6,"maxBranchDepth":1,"maxLoopDepth":0,"returns":3,"awaits":0,"calls":8,"loops":0,"lengthLines":18,"cognitiveComplexity":5,"halstead":{"operators":1,"operands":41,"distinctOperators":1,"distinctOperands":20,"vocabulary":21,"length":42,"volume":184.47733175670794,"difficulty":1.025,"effort":189.0892650506256,"time":10.5049591694792,"estimatedBugs":0.06149244391890265},"maintainabilityIndex":55.94435043239301,"declared":true,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/responseFactory.ts","lineStart":77,"lineEnd":86,"columnStart":22,"columnEnd":4,"statementCount":2,"complexity":6,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":7,"loops":0,"lengthLines":10,"cognitiveComplexity":5,"halstead":{"operators":0,"operands":38,"distinctOperators":0,"distinctOperands":18,"vocabulary":18,"length":38,"volume":158.45715005480787,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.05281905001826929},"maintainabilityIndex":61.975206784167185,"params":1},{"kind":"FunctionDeclaration","name":"transformPagination","nameHint":"transformPagination","file":"src/utils/responseFactory.ts","lineStart":92,"lineEnd":100,"columnStart":1,"columnEnd":2,"statementCount":5,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":4,"loops":0,"lengthLines":9,"cognitiveComplexity":2,"halstead":{"operators":2,"operands":24,"distinctOperators":2,"distinctOperands":14,"vocabulary":16,"length":26,"volume":104,"difficulty":1.7142857142857142,"effort":178.28571428571428,"time":9.904761904761905,"estimatedBugs":0.034666666666666665},"maintainabilityIndex":64.65738548047842,"declared":true,"params":1}],"flows":[{"kind":"IfStatement","file":"src/utils/responseFactory.ts","lineStart":41,"lineEnd":43,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseFactory.ts","lineStart":51,"lineEnd":53,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseFactory.ts","lineStart":61,"lineEnd":63,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseFactory.ts","lineStart":78,"lineEnd":78,"columnStart":5,"columnEnd":42,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseFactory.ts","lineStart":81,"lineEnd":81,"columnStart":15,"columnEnd":68,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseFactory.ts","lineStart":82,"lineEnd":82,"columnStart":14,"columnEnd":72,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseFactory.ts","lineStart":83,"lineEnd":83,"columnStart":19,"columnEnd":80,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseFactory.ts","lineStart":84,"lineEnd":84,"columnStart":19,"columnEnd":80,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseFactory.ts","lineStart":93,"lineEnd":93,"columnStart":3,"columnEnd":47,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/types/guards.ts","src/types/responses.ts"],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"extractFileMatches","kind":"value","isDefault":false,"lineStart":19,"lineEnd":21},{"name":"extractPaginationInfo","kind":"value","isDefault":false,"lineStart":26,"lineEnd":28},{"name":"extractMatchCount","kind":"value","isDefault":false,"lineStart":33,"lineEnd":35},{"name":"safeString","kind":"value","isDefault":false,"lineStart":40,"lineEnd":45},{"name":"safeNumber","kind":"value","isDefault":false,"lineStart":50,"lineEnd":55},{"name":"safeArray","kind":"value","isDefault":false,"lineStart":60,"lineEnd":65},{"name":"extractMatchLocations","kind":"value","isDefault":false,"lineStart":70,"lineEnd":87},{"name":"transformPagination","kind":"value","isDefault":false,"lineStart":92,"lineEnd":100}],"importedSymbols":[{"sourceModule":"../types/responses.js","resolvedModule":"src/types/responses.ts","importedName":"FileMatch","localName":"FileMatch","isTypeOnly":true,"lineStart":8,"lineEnd":8},{"sourceModule":"../types/responses.js","resolvedModule":"src/types/responses.ts","importedName":"PaginationInfo","localName":"PaginationInfo","isTypeOnly":true,"lineStart":8,"lineEnd":8},{"sourceModule":"../types/responses.js","resolvedModule":"src/types/responses.ts","importedName":"extractFiles","localName":"extractFiles","isTypeOnly":false,"lineStart":9,"lineEnd":9},{"sourceModule":"../types/responses.js","resolvedModule":"src/types/responses.ts","importedName":"extractPagination","localName":"extractPagination","isTypeOnly":false,"lineStart":9,"lineEnd":9},{"sourceModule":"../types/responses.js","resolvedModule":"src/types/responses.ts","importedName":"extractTotalMatches","localName":"extractTotalMatches","isTypeOnly":false,"lineStart":9,"lineEnd":9},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"isObject","localName":"isObject","isTypeOnly":false,"lineStart":10,"lineEnd":10},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasProperty","localName":"hasProperty","isTypeOnly":false,"lineStart":10,"lineEnd":10},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"isArray","localName":"isArray","isTypeOnly":false,"lineStart":10,"lineEnd":10},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasStringProperty","localName":"hasStringProperty","isTypeOnly":false,"lineStart":10,"lineEnd":10},{"sourceModule":"../types/guards.js","resolvedModule":"src/types/guards.ts","importedName":"hasNumberProperty","localName":"hasNumberProperty","isTypeOnly":false,"lineStart":10,"lineEnd":10}],"reExports":[],"package":"octocode-skill","file":"src/utils/responseFactory.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"extractFileMatches","lineStart":19,"lineEnd":21,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[{"callee":"extractFiles","lineStart":20}],"paramConfidence":"low"},{"functionName":"extractPaginationInfo","lineStart":26,"lineEnd":28,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[{"callee":"extractPagination","lineStart":27}],"paramConfidence":"low"},{"functionName":"extractMatchCount","lineStart":33,"lineEnd":35,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[{"callee":"extractTotalMatches","lineStart":34}],"paramConfidence":"low"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":766,"symbolUsageSummary":{"declaredExportCount":8,"importedSymbolCount":10,"internalImportCount":10,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":"src/types/responses.ts"},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":16,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0042","AST-ISSUE-0043","AST-ISSUE-0044","AST-ISSUE-0088","AST-ISSUE-0089","AST-ISSUE-0090","AST-ISSUE-0123","AST-ISSUE-0130","AST-ISSUE-0142","AST-ISSUE-0242","AST-ISSUE-0348","AST-ISSUE-0369","AST-ISSUE-0370","AST-ISSUE-0371"]},{"package":"octocode-skill","file":"src/utils/responseParser.ts","parseEngine":"typescript","nodeCount":977,"kindCounts":{"ImportDeclaration":1,"ImportClause":1,"Identifier":326,"StringLiteral":33,"InterfaceDeclaration":5,"PropertySignature":29,"QuestionToken":20,"TypeReference":27,"TypeLiteral":3,"StringKeyword":27,"UnknownKeyword":9,"BooleanKeyword":3,"ExportKeyword":7,"NumberKeyword":5,"UnionType":2,"LiteralType":9,"ArrayType":13,"FunctionDeclaration":3,"Parameter":5,"Block":17,"FirstStatement":17,"VariableDeclarationList":18,"VariableDeclaration":18,"ObjectLiteralExpression":19,"PropertyAssignment":48,"TrueKeyword":2,"ArrayLiteralExpression":11,"IfStatement":13,"BinaryExpression":37,"PropertyAccessExpression":72,"AmpersandAmpersandToken":7,"TypeOfExpression":12,"EqualsEqualsEqualsToken":16,"ReturnStatement":10,"CallExpression":16,"ElementAccessExpression":6,"FirstLiteralToken":15,"QuestionDotToken":2,"TryStatement":2,"AsExpression":15,"ExpressionStatement":7,"FirstAssignment":3,"GreaterThanToken":2,"BarBarToken":6,"ConditionalExpression":13,"ColonToken":13,"ShorthandPropertyAssignment":6,"IndexedAccessType":2,"CatchClause":2,"TypeParameter":1,"ObjectBindingPattern":1,"BindingElement":1,"ExclamationEqualsEqualsToken":2,"ParenthesizedExpression":5,"PrefixUnaryExpression":5,"ForOfStatement":1,"ContinueStatement":1,"PostfixUnaryExpression":3,"PlusToken":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"parseToolResponse","nameHint":"parseToolResponse","file":"src/utils/responseParser.ts","lineStart":96,"lineEnd":173,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":19,"maxBranchDepth":4,"maxLoopDepth":0,"returns":5,"awaits":0,"calls":8,"loops":0,"lengthLines":78,"cognitiveComplexity":29,"halstead":{"operators":17,"operands":132,"distinctOperators":5,"distinctOperands":37,"vocabulary":42,"length":149,"volume":803.4552959940354,"difficulty":8.91891891891892,"effort":7165.952639946802,"time":398.1084799970446,"estimatedBugs":0.2678184319980118},"maintainabilityIndex":35.82978068015197,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"getDataField","nameHint":"getDataField","file":"src/utils/responseParser.ts","lineStart":178,"lineEnd":186,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":9,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":11,"distinctOperators":1,"distinctOperands":8,"vocabulary":9,"length":12,"volume":38.039100017307746,"difficulty":0.6875,"effort":26.151881261899074,"time":1.4528822923277263,"estimatedBugs":0.012679700005769248},"maintainabilityIndex":67.85038949632306,"declared":true,"params":3},{"kind":"FunctionDeclaration","name":"parseToolResponseBulk","nameHint":"parseToolResponseBulk","file":"src/utils/responseParser.ts","lineStart":195,"lineEnd":272,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":24,"maxBranchDepth":4,"maxLoopDepth":1,"returns":4,"awaits":0,"calls":7,"loops":1,"lengthLines":78,"cognitiveComplexity":30,"halstead":{"operators":19,"operands":165,"distinctOperators":6,"distinctOperands":51,"vocabulary":57,"length":184,"volume":1073.2517626063125,"difficulty":9.705882352941178,"effort":10416.855342943622,"time":578.7141857190901,"estimatedBugs":0.3577505875354375},"maintainabilityIndex":34.27683367876805,"declared":true,"params":1}],"flows":[{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":106,"lineEnd":114,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":117,"lineEnd":169,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"TryStatement","file":"src/utils/responseParser.ts","lineStart":118,"lineEnd":168,"columnStart":5,"columnEnd":6,"statementCount":5},{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":123,"lineEnd":129,"columnStart":7,"columnEnd":8,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":125,"lineEnd":129,"columnStart":14,"columnEnd":8,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":127,"lineEnd":129,"columnStart":14,"columnEnd":8,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":132,"lineEnd":155,"columnStart":7,"columnEnd":8,"statementCount":4},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":138,"lineEnd":139,"columnStart":29,"columnEnd":55,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":140,"lineEnd":141,"columnStart":25,"columnEnd":51,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":142,"lineEnd":143,"columnStart":22,"columnEnd":48,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":146,"lineEnd":154,"columnStart":9,"columnEnd":10,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":185,"lineEnd":185,"columnStart":10,"columnEnd":59,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":205,"lineEnd":207,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"TryStatement","file":"src/utils/responseParser.ts","lineStart":209,"lineEnd":271,"columnStart":3,"columnEnd":4,"statementCount":9},{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":212,"lineEnd":214,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"ForOfStatement","file":"src/utils/responseParser.ts","lineStart":222,"lineEnd":242,"columnStart":5,"columnEnd":6,"statementCount":5},{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":223,"lineEnd":223,"columnStart":7,"columnEnd":59,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":228,"lineEnd":230,"columnStart":7,"columnEnd":49,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":229,"lineEnd":230,"columnStart":12,"columnEnd":49,"statementCount":1},{"kind":"IfStatement","file":"src/utils/responseParser.ts","lineStart":230,"lineEnd":230,"columnStart":12,"columnEnd":49,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":233,"lineEnd":233,"columnStart":13,"columnEnd":65,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":235,"lineEnd":235,"columnStart":16,"columnEnd":66,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":237,"lineEnd":237,"columnStart":29,"columnEnd":100,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":238,"lineEnd":238,"columnStart":25,"columnEnd":88,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":239,"lineEnd":239,"columnStart":22,"columnEnd":79,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":246,"lineEnd":248,"columnStart":19,"columnEnd":13,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":249,"lineEnd":251,"columnStart":14,"columnEnd":13,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":252,"lineEnd":254,"columnStart":14,"columnEnd":13,"statementCount":1},{"kind":"ConditionalExpression","file":"src/utils/responseParser.ts","lineStart":260,"lineEnd":260,"columnStart":21,"columnEnd":87,"statementCount":1}],"dependencyProfile":{"internalDependencies":[],"externalDependencies":["js-yaml"],"unresolvedDependencies":[],"declaredExports":[{"name":"ResearchContext","kind":"type","lineStart":30,"lineEnd":34},{"name":"BulkResultItem","kind":"type","lineStart":39,"lineEnd":44},{"name":"ParsedResponse","kind":"type","lineStart":49,"lineEnd":58},{"name":"ParsedBulkResponse","kind":"type","lineStart":63,"lineEnd":83},{"name":"parseToolResponse","kind":"value","isDefault":false,"lineStart":96,"lineEnd":173},{"name":"getDataField","kind":"value","isDefault":false,"lineStart":178,"lineEnd":186},{"name":"parseToolResponseBulk","kind":"value","isDefault":false,"lineStart":195,"lineEnd":272}],"importedSymbols":[{"sourceModule":"js-yaml","importedName":"default","localName":"yaml","isTypeOnly":false,"lineStart":19,"lineEnd":19}],"reExports":[],"package":"octocode-skill","file":"src/utils/responseParser.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":1867,"symbolUsageSummary":{"declaredExportCount":7,"importedSymbolCount":1,"internalImportCount":0,"externalImportCount":1,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":10,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0016","AST-ISSUE-0017","AST-ISSUE-0045","AST-ISSUE-0091","AST-ISSUE-0131","AST-ISSUE-0166","AST-ISSUE-0167","AST-ISSUE-0168","AST-ISSUE-0271","AST-ISSUE-0272","AST-ISSUE-0273","AST-ISSUE-0349","AST-ISSUE-0350","AST-ISSUE-0351","AST-ISSUE-0352"]},{"package":"octocode-skill","file":"src/utils/retry.ts","parseEngine":"typescript","nodeCount":725,"kindCounts":{"ImportDeclaration":1,"ImportClause":1,"NamedImports":1,"ImportSpecifier":5,"Identifier":244,"StringLiteral":17,"InterfaceDeclaration":2,"ExportKeyword":7,"PropertySignature":7,"NumberKeyword":6,"FunctionType":3,"Parameter":22,"UnknownKeyword":16,"BooleanKeyword":9,"FirstStatement":17,"VariableDeclarationList":18,"VariableDeclaration":19,"SatisfiesExpression":1,"AsExpression":11,"ObjectLiteralExpression":5,"PropertyAssignment":24,"FirstLiteralToken":25,"ArrowFunction":6,"EqualsGreaterThanToken":6,"BinaryExpression":25,"CallExpression":39,"BarBarToken":14,"TypeReference":26,"StringKeyword":2,"TypeAliasDeclaration":1,"TypeOperator":1,"TypeQuery":1,"QuestionToken":3,"FunctionDeclaration":11,"AsyncKeyword":2,"TypeParameter":2,"Block":22,"PropertyAccessExpression":10,"ForStatement":1,"LessThanEqualsToken":1,"PostfixUnaryExpression":1,"TryStatement":1,"ReturnStatement":18,"AwaitExpression":2,"CatchClause":1,"ExpressionStatement":4,"FirstAssignment":2,"IfStatement":8,"PrefixUnaryExpression":1,"EqualsEqualsEqualsToken":1,"ThrowStatement":2,"QuestionDotToken":1,"TemplateExpression":1,"TemplateHead":1,"TemplateSpan":4,"TemplateMiddle":3,"LastTemplateToken":1,"AsteriskToken":2,"ElementAccessExpression":1,"ArrayLiteralExpression":10,"RegularExpressionLiteral":9,"TrueKeyword":4,"ExclamationEqualsEqualsToken":1,"AmpersandAmpersandToken":2,"GreaterThanEqualsToken":1,"FirstBinaryOperator":1,"VoidKeyword":1,"NewExpression":1,"UnionType":1,"LiteralType":1,"NullKeyword":2,"ParenthesizedExpression":1,"EndOfFileToken":1},"functions":[{"kind":"ArrowFunction","name":"retryOn","nameHint":"retryOn","file":"src/utils/retry.ts","lineStart":35,"lineEnd":36,"columnStart":14,"columnEnd":71,"statementCount":1,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":3,"loops":0,"lengthLines":2,"cognitiveComplexity":2,"halstead":{"operators":2,"operands":6,"distinctOperators":1,"distinctOperands":4,"vocabulary":5,"length":8,"volume":18.575424759098897,"difficulty":0.75,"effort":13.931568569324174,"time":0.7739760316291208,"estimatedBugs":0.006191808253032966},"maintainabilityIndex":84.14470789208661,"params":1},{"kind":"ArrowFunction","name":"retryOn","nameHint":"retryOn","file":"src/utils/retry.ts","lineStart":47,"lineEnd":48,"columnStart":14,"columnEnd":65,"statementCount":1,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":3,"loops":0,"lengthLines":2,"cognitiveComplexity":2,"halstead":{"operators":2,"operands":6,"distinctOperators":1,"distinctOperands":4,"vocabulary":5,"length":8,"volume":18.575424759098897,"difficulty":0.75,"effort":13.931568569324174,"time":0.7739760316291208,"estimatedBugs":0.006191808253032966},"maintainabilityIndex":84.14470789208661,"params":1},{"kind":"ArrowFunction","name":"retryOn","nameHint":"retryOn","file":"src/utils/retry.ts","lineStart":59,"lineEnd":60,"columnStart":14,"columnEnd":65,"statementCount":1,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":3,"loops":0,"lengthLines":2,"cognitiveComplexity":2,"halstead":{"operators":2,"operands":6,"distinctOperators":1,"distinctOperands":4,"vocabulary":5,"length":8,"volume":18.575424759098897,"difficulty":0.75,"effort":13.931568569324174,"time":0.7739760316291208,"estimatedBugs":0.006191808253032966},"maintainabilityIndex":84.14470789208661,"params":1},{"kind":"ArrowFunction","name":"retryOn","nameHint":"retryOn","file":"src/utils/retry.ts","lineStart":71,"lineEnd":71,"columnStart":14,"columnEnd":65,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":1,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":4,"distinctOperators":1,"distinctOperands":3,"vocabulary":4,"length":5,"volume":10,"difficulty":0.6666666666666666,"effort":6.666666666666666,"time":0.37037037037037035,"estimatedBugs":0.0033333333333333335},"maintainabilityIndex":92.7289810037608,"params":1},{"kind":"FunctionDeclaration","name":"withRetry","nameHint":"withRetry","file":"src/utils/retry.ts","lineStart":103,"lineEnd":134,"columnStart":1,"columnEnd":2,"statementCount":4,"complexity":6,"maxBranchDepth":3,"maxLoopDepth":1,"returns":3,"awaits":2,"calls":5,"loops":1,"lengthLines":32,"cognitiveComplexity":8,"halstead":{"operators":7,"operands":43,"distinctOperators":5,"distinctOperands":21,"vocabulary":26,"length":50,"volume":235.02198590705459,"difficulty":5.119047619047619,"effort":1203.0887373813507,"time":66.83826318785282,"estimatedBugs":0.07834066196901819},"maintainabilityIndex":49.757162121160384,"declared":true,"params":3},{"kind":"FunctionDeclaration","name":"withCategoryRetry","nameHint":"withCategoryRetry","file":"src/utils/retry.ts","lineStart":139,"lineEnd":145,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":7,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":5,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":5,"volume":11.60964047443681,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0038698801581456034},"maintainabilityIndex":73.97468378825788,"declared":true,"params":3},{"kind":"FunctionDeclaration","name":"isRateLimited","nameHint":"isRateLimited","file":"src/utils/retry.ts","lineStart":171,"lineEnd":179,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":2,"loops":0,"lengthLines":9,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":6,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":6,"volume":13.931568569324174,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.004643856189774725},"maintainabilityIndex":70.90487920727585,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isLspNotReady","nameHint":"isLspNotReady","file":"src/utils/retry.ts","lineStart":184,"lineEnd":192,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":2,"loops":0,"lengthLines":9,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":6,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":6,"volume":13.931568569324174,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.004643856189774725},"maintainabilityIndex":70.90487920727585,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isTimeout","nameHint":"isTimeout","file":"src/utils/retry.ts","lineStart":197,"lineEnd":205,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":2,"loops":0,"lengthLines":9,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":6,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":6,"volume":13.931568569324174,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.004643856189774725},"maintainabilityIndex":70.90487920727585,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isServerError","nameHint":"isServerError","file":"src/utils/retry.ts","lineStart":210,"lineEnd":213,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":4,"cognitiveComplexity":2,"halstead":{"operators":5,"operands":9,"distinctOperators":4,"distinctOperands":6,"vocabulary":10,"length":14,"volume":46.50699332842307,"difficulty":3,"effort":139.5209799852692,"time":7.751165554737178,"estimatedBugs":0.015502331109474358},"maintainabilityIndex":74.78719142312538,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isFileBusy","nameHint":"isFileBusy","file":"src/utils/retry.ts","lineStart":218,"lineEnd":220,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":3,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":84.71624627594792,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isConnectionRefused","nameHint":"isConnectionRefused","file":"src/utils/retry.ts","lineStart":225,"lineEnd":227,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":3,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":3,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":84.71624627594792,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isSymbolNotFound","nameHint":"isSymbolNotFound","file":"src/utils/retry.ts","lineStart":232,"lineEnd":240,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":2,"loops":0,"lengthLines":9,"cognitiveComplexity":1,"halstead":{"operators":0,"operands":6,"distinctOperators":0,"distinctOperands":5,"vocabulary":5,"length":6,"volume":13.931568569324174,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.004643856189774725},"maintainabilityIndex":70.90487920727585,"declared":true,"params":1},{"kind":"ArrowFunction","name":"sleep","nameHint":"sleep","file":"src/utils/retry.ts","lineStart":246,"lineEnd":247,"columnStart":15,"columnEnd":52,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":2,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":5,"distinctOperators":1,"distinctOperands":4,"vocabulary":5,"length":6,"volume":13.931568569324174,"difficulty":0.625,"effort":8.707230355827608,"time":0.48373501976820044,"estimatedBugs":0.004643856189774725},"maintainabilityIndex":85.28853641650139,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/retry.ts","lineStart":247,"lineEnd":247,"columnStart":15,"columnEnd":51,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":3,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":95.12415216859318,"params":1},{"kind":"FunctionDeclaration","name":"getRetryAfter","nameHint":"getRetryAfter","file":"src/utils/retry.ts","lineStart":252,"lineEnd":266,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":4,"maxBranchDepth":2,"maxLoopDepth":0,"returns":4,"awaits":0,"calls":4,"loops":0,"lengthLines":15,"cognitiveComplexity":4,"halstead":{"operators":1,"operands":15,"distinctOperators":1,"distinctOperands":11,"vocabulary":12,"length":16,"volume":57.3594000115385,"difficulty":0.6818181818181818,"effort":39.10868182604897,"time":2.1727045458916097,"estimatedBugs":0.019119800003846166},"maintainabilityIndex":61.49300334150468,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"isRecoverable","nameHint":"isRecoverable","file":"src/utils/retry.ts","lineStart":271,"lineEnd":280,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":6,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":6,"loops":0,"lengthLines":10,"cognitiveComplexity":5,"halstead":{"operators":5,"operands":12,"distinctOperators":1,"distinctOperands":7,"vocabulary":8,"length":17,"volume":51,"difficulty":0.8571428571428571,"effort":43.714285714285715,"time":2.428571428571429,"estimatedBugs":0.017},"maintainabilityIndex":65.42258959259063,"declared":true,"params":1}],"flows":[{"kind":"ForStatement","file":"src/utils/retry.ts","lineStart":111,"lineEnd":131,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"TryStatement","file":"src/utils/retry.ts","lineStart":112,"lineEnd":130,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/utils/retry.ts","lineStart":118,"lineEnd":120,"columnStart":7,"columnEnd":8,"statementCount":1},{"kind":"IfStatement","file":"src/utils/retry.ts","lineStart":173,"lineEnd":175,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/retry.ts","lineStart":186,"lineEnd":188,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/retry.ts","lineStart":199,"lineEnd":201,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/retry.ts","lineStart":234,"lineEnd":236,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/retry.ts","lineStart":253,"lineEnd":259,"columnStart":3,"columnEnd":4,"statementCount":3},{"kind":"IfStatement","file":"src/utils/retry.ts","lineStart":255,"lineEnd":257,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/utils/retry.ts","lineStart":261,"lineEnd":263,"columnStart":3,"columnEnd":4,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/types/errorGuards.ts"],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"RetryConfig","kind":"type","lineStart":15,"lineEnd":21},{"name":"RETRY_CONFIGS","kind":"value","lineStart":26,"lineEnd":73},{"name":"withRetry","kind":"value","isDefault":false,"lineStart":103,"lineEnd":134},{"name":"withCategoryRetry","kind":"value","isDefault":false,"lineStart":139,"lineEnd":145},{"name":"isSymbolNotFound","kind":"value","isDefault":false,"lineStart":232,"lineEnd":240},{"name":"getRetryAfter","kind":"value","isDefault":false,"lineStart":252,"lineEnd":266},{"name":"isRecoverable","kind":"value","isDefault":false,"lineStart":271,"lineEnd":280}],"importedSymbols":[{"sourceModule":"../types/errorGuards.js","resolvedModule":"src/types/errorGuards.ts","importedName":"getErrorStatus","localName":"getErrorStatus","isTypeOnly":false,"lineStart":7,"lineEnd":13},{"sourceModule":"../types/errorGuards.js","resolvedModule":"src/types/errorGuards.ts","importedName":"getErrorHeader","localName":"getErrorHeader","isTypeOnly":false,"lineStart":7,"lineEnd":13},{"sourceModule":"../types/errorGuards.js","resolvedModule":"src/types/errorGuards.ts","importedName":"hasStatusIn","localName":"hasStatusIn","isTypeOnly":false,"lineStart":7,"lineEnd":13},{"sourceModule":"../types/errorGuards.js","resolvedModule":"src/types/errorGuards.ts","importedName":"hasCodeIn","localName":"hasCodeIn","isTypeOnly":false,"lineStart":7,"lineEnd":13},{"sourceModule":"../types/errorGuards.js","resolvedModule":"src/types/errorGuards.ts","importedName":"messageMatches","localName":"messageMatches","isTypeOnly":false,"lineStart":7,"lineEnd":13}],"reExports":[],"package":"octocode-skill","file":"src/utils/retry.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":3,"file":"src/utils/retry.ts","lineStart":31,"lineEnd":31},{"value":500,"file":"src/utils/retry.ts","lineStart":32,"lineEnd":32},{"value":5000,"file":"src/utils/retry.ts","lineStart":33,"lineEnd":33},{"value":3,"file":"src/utils/retry.ts","lineStart":43,"lineEnd":43},{"value":1000,"file":"src/utils/retry.ts","lineStart":44,"lineEnd":44},{"value":30000,"file":"src/utils/retry.ts","lineStart":45,"lineEnd":45},{"value":3,"file":"src/utils/retry.ts","lineStart":46,"lineEnd":46},{"value":3,"file":"src/utils/retry.ts","lineStart":55,"lineEnd":55},{"value":1000,"file":"src/utils/retry.ts","lineStart":56,"lineEnd":56},{"value":15000,"file":"src/utils/retry.ts","lineStart":57,"lineEnd":57},{"value":1000,"file":"src/utils/retry.ts","lineStart":69,"lineEnd":69},{"value":403,"file":"src/utils/retry.ts","lineStart":152,"lineEnd":152},{"value":429,"file":"src/utils/retry.ts","lineStart":152,"lineEnd":152},{"value":500,"file":"src/utils/retry.ts","lineStart":212,"lineEnd":212},{"value":600,"file":"src/utils/retry.ts","lineStart":212,"lineEnd":212},{"value":10,"file":"src/utils/retry.ts","lineStart":256,"lineEnd":256},{"value":1000,"file":"src/utils/retry.ts","lineStart":256,"lineEnd":256},{"value":60000,"file":"src/utils/retry.ts","lineStart":258,"lineEnd":258},{"value":3000,"file":"src/utils/retry.ts","lineStart":262,"lineEnd":262}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[{"method":"log","lineStart":124,"lineEnd":126,"hasSensitiveArg":false,"argSnippet":"`⟳ Retry ${attempt}/${config.maxAttempts} for ${toolName} in ${delay}ms`"}],"regexLiterals":[{"lineStart":153,"lineEnd":153,"pattern":"/rate\\s*limit/i"},{"lineStart":153,"lineEnd":153,"pattern":"/too\\s*many\\s*requests/i"},{"lineStart":156,"lineEnd":156,"pattern":"/not initialized/i"},{"lineStart":156,"lineEnd":156,"pattern":"/server not started/i"},{"lineStart":156,"lineEnd":156,"pattern":"/lsp.*not.*ready/i"},{"lineStart":159,"lineEnd":159,"pattern":"/timeout/i"},{"lineStart":159,"lineEnd":159,"pattern":"/timed?\\s*out/i"},{"lineStart":166,"lineEnd":166,"pattern":"/symbol\\s*not\\s*found/i"},{"lineStart":166,"lineEnd":166,"pattern":"/definition\\s*not\\s*found/i"}],"inputSources":[{"functionName":"withRetry","lineStart":103,"lineEnd":134,"sourceParams":["context"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[],"paramConfidence":"low"},{"functionName":"withCategoryRetry","lineStart":139,"lineEnd":145,"sourceParams":["context"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[{"callee":"withRetry","lineStart":144}],"paramConfidence":"low"}],"awaitInLoopLocations":[{"file":"src/utils/retry.ts","lineStart":113,"lineEnd":113},{"file":"src/utils/retry.ts","lineStart":128,"lineEnd":128}],"syncIoCalls":[],"timerCalls":[{"kind":"setTimeout","lineStart":247,"lineEnd":247,"hasCleanup":false}],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":1519,"symbolUsageSummary":{"declaredExportCount":7,"importedSymbolCount":5,"internalImportCount":5,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":"src/types/errorGuards.ts"},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":true,"hasCleanupHooks":false,"exitPointCount":20,"asyncBoundaryCount":2,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0011","AST-ISSUE-0012","AST-ISSUE-0046","AST-ISSUE-0047","AST-ISSUE-0048","AST-ISSUE-0049","AST-ISSUE-0059","AST-ISSUE-0092","AST-ISSUE-0093","AST-ISSUE-0094","AST-ISSUE-0095"]},{"package":"octocode-skill","file":"src/utils/routeFactory.ts","parseEngine":"typescript","nodeCount":262,"kindCounts":{"ImportDeclaration":4,"ImportClause":4,"NamedImports":4,"ImportSpecifier":8,"Identifier":99,"StringLiteral":4,"TypeAliasDeclaration":3,"FunctionType":4,"TypeParameter":7,"Parameter":9,"TypeReference":28,"StringKeyword":5,"ArrayType":2,"AnyKeyword":2,"InterfaceDeclaration":1,"ExportKeyword":2,"PropertySignature":8,"FirstNode":2,"FunctionDeclaration":1,"Block":4,"FirstStatement":5,"VariableDeclarationList":5,"VariableDeclaration":6,"ObjectBindingPattern":1,"BindingElement":5,"ReturnStatement":1,"ArrowFunction":2,"AsyncKeyword":1,"VoidKeyword":1,"EqualsGreaterThanToken":2,"TryStatement":1,"AsExpression":4,"CallExpression":8,"PropertyAccessExpression":4,"UnknownKeyword":1,"AwaitExpression":1,"ObjectLiteralExpression":1,"ShorthandPropertyAssignment":1,"TypeLiteral":2,"ExpressionStatement":2,"ConditionalExpression":1,"QuestionToken":1,"FirstLiteralToken":2,"ColonToken":1,"CatchClause":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"createRouteHandler","nameHint":"createRouteHandler","file":"src/utils/routeFactory.ts","lineStart":86,"lineEnd":117,"columnStart":1,"columnEnd":2,"statementCount":2,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":1,"calls":8,"loops":0,"lengthLines":32,"cognitiveComplexity":2,"halstead":{"operators":2,"operands":50,"distinctOperators":1,"distinctOperands":34,"vocabulary":35,"length":52,"volume":266.72271688113824,"difficulty":0.7352941176470589,"effort":196.11964476554283,"time":10.895535820307934,"estimatedBugs":0.08890757229371275},"maintainabilityIndex":49.77589966521217,"declared":true,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/routeFactory.ts","lineStart":91,"lineEnd":116,"columnStart":10,"columnEnd":4,"statementCount":1,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":0,"awaits":1,"calls":8,"loops":0,"lengthLines":26,"cognitiveComplexity":2,"halstead":{"operators":1,"operands":37,"distinctOperators":1,"distinctOperands":29,"vocabulary":30,"length":38,"volume":186.46184263312372,"difficulty":0.6379310344827587,"effort":118.94979616250997,"time":6.608322009028331,"estimatedBugs":0.062153947544374574},"maintainabilityIndex":52.83161266362697,"params":3},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/utils/routeFactory.ts","lineStart":101,"lineEnd":101,"columnStart":9,"columnEnd":34,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":97.75768108835572,"params":0}],"flows":[{"kind":"TryStatement","file":"src/utils/routeFactory.ts","lineStart":92,"lineEnd":115,"columnStart":5,"columnEnd":6,"statementCount":5},{"kind":"ConditionalExpression","file":"src/utils/routeFactory.ts","lineStart":112,"lineEnd":112,"columnStart":18,"columnEnd":44,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/middleware/queryParser.ts","src/utils/responseParser.ts"],"externalDependencies":["express","zod/v4"],"unresolvedDependencies":[],"declaredExports":[{"name":"RouteConfig","kind":"type","lineStart":52,"lineEnd":67},{"name":"createRouteHandler","kind":"value","isDefault":false,"lineStart":86,"lineEnd":117}],"importedSymbols":[{"sourceModule":"express","importedName":"Request","localName":"Request","isTypeOnly":true,"lineStart":14,"lineEnd":14},{"sourceModule":"express","importedName":"Response","localName":"Response","isTypeOnly":true,"lineStart":14,"lineEnd":14},{"sourceModule":"express","importedName":"NextFunction","localName":"NextFunction","isTypeOnly":true,"lineStart":14,"lineEnd":14},{"sourceModule":"express","importedName":"RequestHandler","localName":"RequestHandler","isTypeOnly":true,"lineStart":14,"lineEnd":14},{"sourceModule":"zod/v4","importedName":"z","localName":"z","isTypeOnly":true,"lineStart":15,"lineEnd":15},{"sourceModule":"../middleware/queryParser.js","resolvedModule":"src/middleware/queryParser.ts","importedName":"parseAndValidate","localName":"parseAndValidate","isTypeOnly":false,"lineStart":16,"lineEnd":16},{"sourceModule":"./responseParser.js","resolvedModule":"src/utils/responseParser.ts","importedName":"parseToolResponse","localName":"parseToolResponse","isTypeOnly":false,"lineStart":17,"lineEnd":17},{"sourceModule":"./responseParser.js","resolvedModule":"src/utils/responseParser.ts","importedName":"ParsedResponse","localName":"ParsedResponse","isTypeOnly":true,"lineStart":17,"lineEnd":17}],"reExports":[],"package":"octocode-skill","file":"src/utils/routeFactory.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":2,"magicNumbers":[{"value":500,"file":"src/utils/routeFactory.ts","lineStart":112,"lineEnd":112},{"value":200,"file":"src/utils/routeFactory.ts","lineStart":112,"lineEnd":112}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"<anonymous>","lineStart":91,"lineEnd":116,"sourceParams":["req"],"hasSinkInBody":true,"sinkKinds":["response"],"hasValidation":false,"callsWithInputArgs":[{"callee":"parseAndValidate","lineStart":94}],"paramConfidence":"high"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":519,"symbolUsageSummary":{"declaredExportCount":2,"importedSymbolCount":8,"internalImportCount":3,"externalImportCount":2,"reExportCount":0,"dominantInternalDependency":"src/utils/responseParser.ts"},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":1,"asyncBoundaryCount":2,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0124","AST-ISSUE-0141","AST-ISSUE-0169","AST-ISSUE-0353"]},{"package":"octocode-skill","file":"src/utils/url.ts","parseEngine":"typescript","nodeCount":105,"kindCounts":{"FunctionDeclaration":1,"ExportKeyword":1,"Identifier":26,"Parameter":1,"StringKeyword":2,"Block":4,"FirstStatement":2,"VariableDeclarationList":2,"VariableDeclaration":2,"CallExpression":7,"PropertyAccessExpression":8,"RegularExpressionLiteral":1,"IfStatement":3,"ReturnStatement":4,"ElementAccessExpression":8,"FirstLiteralToken":11,"StringLiteral":5,"BinaryExpression":8,"GreaterThanEqualsToken":1,"EqualsEqualsEqualsToken":2,"AmpersandAmpersandToken":2,"PlusToken":2,"BarBarToken":1,"EndOfFileToken":1},"functions":[{"kind":"FunctionDeclaration","name":"extractToolName","nameHint":"extractToolName","file":"src/utils/url.ts","lineStart":1,"lineEnd":20,"columnStart":1,"columnEnd":2,"statementCount":5,"complexity":7,"maxBranchDepth":2,"maxLoopDepth":0,"returns":4,"awaits":0,"calls":7,"loops":0,"lengthLines":20,"cognitiveComplexity":7,"halstead":{"operators":8,"operands":40,"distinctOperators":5,"distinctOperands":19,"vocabulary":24,"length":48,"volume":220.0782000346155,"difficulty":5.263157894736842,"effort":1158.3063159716603,"time":64.35035088731446,"estimatedBugs":0.0733594000115385},"maintainabilityIndex":54.27510286044772,"declared":true,"params":1}],"flows":[{"kind":"IfStatement","file":"src/utils/url.ts","lineStart":4,"lineEnd":6,"columnStart":3,"columnEnd":4,"statementCount":1},{"kind":"IfStatement","file":"src/utils/url.ts","lineStart":10,"lineEnd":18,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"IfStatement","file":"src/utils/url.ts","lineStart":14,"lineEnd":16,"columnStart":5,"columnEnd":6,"statementCount":1}],"dependencyProfile":{"internalDependencies":[],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[{"name":"extractToolName","kind":"value","isDefault":false,"lineStart":1,"lineEnd":20}],"importedSymbols":[],"reExports":[],"package":"octocode-skill","file":"src/utils/url.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[{"lineStart":3,"lineEnd":3,"pattern":"/^\\/tools\\/call\\/(\\w+)$/"}],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":216,"symbolUsageSummary":{"declaredExportCount":1,"importedSymbolCount":0,"internalImportCount":0,"externalImportCount":0,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":4,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":[]},{"package":"octocode-skill","file":"src/validation/httpPreprocess.ts","parseEngine":"typescript","nodeCount":460,"kindCounts":{"ImportDeclaration":3,"ImportClause":3,"NamedImports":1,"ImportSpecifier":1,"Identifier":134,"StringLiteral":30,"FirstStatement":14,"ExportKeyword":10,"VariableDeclarationList":14,"VariableDeclaration":14,"ArrowFunction":6,"Parameter":7,"UnknownKeyword":7,"EqualsGreaterThanToken":6,"Block":7,"IfStatement":12,"BinaryExpression":15,"TypeOfExpression":4,"EqualsEqualsEqualsToken":7,"ReturnStatement":17,"AmpersandAmpersandToken":2,"CallExpression":29,"PropertyAccessExpression":35,"RegularExpressionLiteral":1,"FirstLiteralToken":2,"TrueKeyword":2,"FalseKeyword":5,"ArrayLiteralExpression":2,"AsExpression":6,"TypeReference":6,"ExclamationEqualsEqualsToken":1,"ObjectLiteralExpression":3,"PropertyAssignment":8,"PlusToken":1,"FunctionDeclaration":1,"TypeParameter":1,"StringKeyword":9,"IntersectionType":1,"UnionType":5,"LiteralType":4,"TypeLiteral":1,"PropertySignature":4,"SpreadAssignment":1,"ParenthesizedExpression":4,"UndefinedKeyword":4,"QuestionQuestionToken":4,"TemplateExpression":1,"TemplateHead":1,"TemplateSpan":1,"PrefixUnaryExpression":1,"LastTemplateToken":1,"EndOfFileToken":1},"functions":[{"kind":"ArrowFunction","name":"toNumber","nameHint":"toNumber","file":"src/validation/httpPreprocess.ts","lineStart":21,"lineEnd":25,"columnStart":25,"columnEnd":2,"statementCount":3,"complexity":4,"maxBranchDepth":1,"maxLoopDepth":0,"returns":3,"awaits":0,"calls":2,"loops":0,"lengthLines":5,"cognitiveComplexity":3,"halstead":{"operators":3,"operands":11,"distinctOperators":2,"distinctOperands":6,"vocabulary":8,"length":14,"volume":42,"difficulty":1.8333333333333333,"effort":77,"time":4.277777777777778,"estimatedBugs":0.014},"maintainabilityIndex":72.84866889093222,"params":1},{"kind":"ArrowFunction","name":"toBoolean","nameHint":"toBoolean","file":"src/validation/httpPreprocess.ts","lineStart":30,"lineEnd":35,"columnStart":26,"columnEnd":2,"statementCount":4,"complexity":4,"maxBranchDepth":1,"maxLoopDepth":0,"returns":4,"awaits":0,"calls":0,"loops":0,"lengthLines":6,"cognitiveComplexity":3,"halstead":{"operators":3,"operands":8,"distinctOperators":1,"distinctOperands":4,"vocabulary":5,"length":11,"volume":25.541209043760983,"difficulty":1,"effort":25.541209043760983,"time":1.4189560579867213,"estimatedBugs":0.008513736347920327},"maintainabilityIndex":72.63390176446103,"params":1},{"kind":"ArrowFunction","name":"toArray","nameHint":"toArray","file":"src/validation/httpPreprocess.ts","lineStart":40,"lineEnd":47,"columnStart":24,"columnEnd":2,"statementCount":3,"complexity":4,"maxBranchDepth":2,"maxLoopDepth":0,"returns":4,"awaits":0,"calls":6,"loops":0,"lengthLines":8,"cognitiveComplexity":4,"halstead":{"operators":3,"operands":19,"distinctOperators":2,"distinctOperands":12,"vocabulary":14,"length":22,"volume":83.76180828526729,"difficulty":1.5833333333333333,"effort":132.62286311833986,"time":7.36793683990777,"estimatedBugs":0.027920602761755765},"maintainabilityIndex":66.2968221155886,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/httpPreprocess.ts","lineStart":44,"lineEnd":44,"columnStart":31,"columnEnd":46,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":2,"distinctOperators":0,"distinctOperands":2,"vocabulary":2,"length":2,"volume":2,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.0006666666666666666},"maintainabilityIndex":97.75768108835572,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/httpPreprocess.ts","lineStart":87,"lineEnd":105,"columnStart":3,"columnEnd":4,"statementCount":7,"complexity":6,"maxBranchDepth":1,"maxLoopDepth":0,"returns":5,"awaits":0,"calls":8,"loops":0,"lengthLines":19,"cognitiveComplexity":5,"halstead":{"operators":3,"operands":25,"distinctOperators":3,"distinctOperands":16,"vocabulary":19,"length":28,"volume":118.94197037642039,"difficulty":2.34375,"effort":278.7702430697353,"time":15.487235726096404,"estimatedBugs":0.039647323458806796},"maintainabilityIndex":56.766773532194804,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/httpPreprocess.ts","lineStart":100,"lineEnd":100,"columnStart":36,"columnEnd":76,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":0,"operands":3,"distinctOperators":0,"distinctOperands":3,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0,"effort":0,"time":0,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":95.12415216859318,"params":1},{"kind":"FunctionDeclaration","name":"withResearchDefaults","nameHint":"withResearchDefaults","file":"src/validation/httpPreprocess.ts","lineStart":132,"lineEnd":152,"columnStart":1,"columnEnd":2,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":0,"loops":0,"lengthLines":21,"cognitiveComplexity":4,"halstead":{"operators":4,"operands":20,"distinctOperators":1,"distinctOperands":7,"vocabulary":8,"length":24,"volume":72,"difficulty":1.4285714285714286,"effort":102.85714285714286,"time":5.714285714285714,"estimatedBugs":0.024},"maintainabilityIndex":58.01758636841934,"declared":true,"params":1}],"flows":[{"kind":"IfStatement","file":"src/validation/httpPreprocess.ts","lineStart":22,"lineEnd":22,"columnStart":3,"columnEnd":43,"statementCount":1},{"kind":"IfStatement","file":"src/validation/httpPreprocess.ts","lineStart":23,"lineEnd":23,"columnStart":3,"columnEnd":78,"statementCount":1},{"kind":"IfStatement","file":"src/validation/httpPreprocess.ts","lineStart":31,"lineEnd":31,"columnStart":3,"columnEnd":44,"statementCount":1},{"kind":"IfStatement","file":"src/validation/httpPreprocess.ts","lineStart":32,"lineEnd":32,"columnStart":3,"columnEnd":35,"statementCount":1},{"kind":"IfStatement","file":"src/validation/httpPreprocess.ts","lineStart":33,"lineEnd":33,"columnStart":3,"columnEnd":37,"statementCount":1},{"kind":"IfStatement","file":"src/validation/httpPreprocess.ts","lineStart":41,"lineEnd":41,"columnStart":3,"columnEnd":38,"statementCount":1},{"kind":"IfStatement","file":"src/validation/httpPreprocess.ts","lineStart":42,"lineEnd":45,"columnStart":3,"columnEnd":4,"statementCount":2},{"kind":"IfStatement","file":"src/validation/httpPreprocess.ts","lineStart":43,"lineEnd":43,"columnStart":5,"columnEnd":38,"statementCount":1},{"kind":"IfStatement","file":"src/validation/httpPreprocess.ts","lineStart":89,"lineEnd":89,"columnStart":5,"columnEnd":40,"statementCount":1},{"kind":"IfStatement","file":"src/validation/httpPreprocess.ts","lineStart":93,"lineEnd":93,"columnStart":5,"columnEnd":49,"statementCount":1},{"kind":"IfStatement","file":"src/validation/httpPreprocess.ts","lineStart":96,"lineEnd":96,"columnStart":5,"columnEnd":69,"statementCount":1},{"kind":"IfStatement","file":"src/validation/httpPreprocess.ts","lineStart":100,"lineEnd":102,"columnStart":5,"columnEnd":6,"statementCount":1}],"dependencyProfile":{"internalDependencies":[],"externalDependencies":["os","path","zod/v4"],"unresolvedDependencies":[],"declaredExports":[{"name":"toNumber","kind":"value","lineStart":21,"lineEnd":25},{"name":"toBoolean","kind":"value","lineStart":30,"lineEnd":35},{"name":"toArray","kind":"value","lineStart":40,"lineEnd":47},{"name":"numericString","kind":"value","lineStart":54,"lineEnd":54},{"name":"requiredNumber","kind":"value","lineStart":57,"lineEnd":57},{"name":"booleanString","kind":"value","lineStart":60,"lineEnd":60},{"name":"stringArray","kind":"value","lineStart":63,"lineEnd":63},{"name":"safePath","kind":"value","lineStart":86,"lineEnd":111},{"name":"withResearchDefaults","kind":"value","isDefault":false,"lineStart":132,"lineEnd":152},{"name":"researchDefaults","kind":"value","lineStart":155,"lineEnd":155}],"importedSymbols":[{"sourceModule":"zod/v4","importedName":"z","localName":"z","isTypeOnly":false,"lineStart":10,"lineEnd":10},{"sourceModule":"path","importedName":"default","localName":"path","isTypeOnly":false,"lineStart":11,"lineEnd":11},{"sourceModule":"os","importedName":"default","localName":"os","isTypeOnly":false,"lineStart":12,"lineEnd":12}],"reExports":[],"package":"octocode-skill","file":"src/validation/httpPreprocess.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":10,"file":"src/validation/httpPreprocess.ts","lineStart":23,"lineEnd":23}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[{"lineStart":23,"lineEnd":23,"pattern":"/^\\d+$/"}],"inputSources":[{"functionName":"withResearchDefaults","lineStart":132,"lineEnd":152,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"low"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":1006,"symbolUsageSummary":{"declaredExportCount":10,"importedSymbolCount":3,"internalImportCount":0,"externalImportCount":3,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":17,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0057","AST-ISSUE-0096","AST-ISSUE-0354","AST-ISSUE-0355","AST-ISSUE-0356","AST-ISSUE-0357","AST-ISSUE-0358","AST-ISSUE-0359","AST-ISSUE-0360","AST-ISSUE-0361"]},{"package":"octocode-skill","file":"src/validation/index.ts","parseEngine":"typescript","nodeCount":5,"kindCounts":{"ExportDeclaration":2,"StringLiteral":2,"EndOfFileToken":1},"functions":[],"flows":[],"dependencyProfile":{"internalDependencies":["src/validation/httpPreprocess.ts","src/validation/schemas.ts"],"externalDependencies":[],"unresolvedDependencies":[],"declaredExports":[],"importedSymbols":[],"reExports":[{"sourceModule":"./schemas.js","resolvedModule":"src/validation/schemas.ts","exportedAs":"*","importedName":"*","isStar":true,"isTypeOnly":false,"lineStart":1,"lineEnd":1},{"sourceModule":"./httpPreprocess.js","resolvedModule":"src/validation/httpPreprocess.ts","exportedAs":"*","importedName":"*","isStar":true,"isTypeOnly":false,"lineStart":2,"lineEnd":2}],"package":"octocode-skill","file":"src/validation/index.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":19,"symbolUsageSummary":{"declaredExportCount":0,"importedSymbolCount":0,"internalImportCount":0,"externalImportCount":0,"reExportCount":2,"dominantInternalDependency":null},"boundaryRoleHints":[{"role":"entrypoint","confidence":"high","reasons":["path matches a conventional entrypoint filename"]}],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":0,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0058","AST-ISSUE-0143","AST-ISSUE-0241","AST-ISSUE-0277"]},{"package":"octocode-skill","file":"src/validation/schemas.ts","parseEngine":"typescript","nodeCount":2423,"kindCounts":{"ImportDeclaration":3,"ImportClause":3,"NamedImports":3,"ImportSpecifier":21,"Identifier":1055,"StringLiteral":100,"FirstStatement":18,"ExportKeyword":26,"VariableDeclarationList":18,"VariableDeclaration":18,"CallExpression":299,"PropertyAccessExpression":321,"ObjectLiteralExpression":16,"PropertyAssignment":272,"FirstLiteralToken":27,"ArrayLiteralExpression":21,"ArrowFunction":9,"Parameter":9,"EqualsGreaterThanToken":9,"Block":9,"IfStatement":6,"BinaryExpression":32,"EqualsEqualsEqualsToken":7,"AmpersandAmpersandToken":7,"ExclamationEqualsEqualsToken":5,"ExpressionStatement":5,"FirstAssignment":5,"ReturnStatement":5,"UnionType":2,"StringKeyword":3,"UndefinedKeyword":2,"PrefixUnaryExpression":1,"TypeReference":14,"ElementAccessExpression":1,"QuestionQuestionToken":1,"ConditionalExpression":1,"ParenthesizedExpression":3,"BarBarToken":2,"NullKeyword":1,"QuestionToken":1,"ColonToken":1,"GreaterThanEqualsToken":3,"TrueKeyword":1,"GreaterThanToken":2,"TypeAliasDeclaration":13,"FirstNode":13,"TypeQuery":13,"ExportDeclaration":1,"NamedExports":1,"ExportSpecifier":13,"EndOfFileToken":1},"functions":[{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/schemas.ts","lineStart":142,"lineEnd":151,"columnStart":14,"columnEnd":4,"statementCount":4,"complexity":5,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":10,"cognitiveComplexity":4,"halstead":{"operators":8,"operands":24,"distinctOperators":4,"distinctOperands":8,"vocabulary":12,"length":32,"volume":114.718800023077,"difficulty":6,"effort":688.312800138462,"time":38.23960000769233,"estimatedBugs":0.03823960000769233},"maintainabilityIndex":63.091932822464045,"params":1},{"kind":"ArrowFunction","name":"fileTypeTransform","nameHint":"fileTypeTransform","file":"src/validation/schemas.ts","lineStart":186,"lineEnd":206,"columnStart":27,"columnEnd":2,"statementCount":3,"complexity":2,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":0,"loops":0,"lengthLines":21,"cognitiveComplexity":2,"halstead":{"operators":1,"operands":37,"distinctOperators":1,"distinctOperands":26,"vocabulary":27,"length":38,"volume":180.6857250822118,"difficulty":0.7115384615384616,"effort":128.5648428469584,"time":7.142491269275467,"estimatedBugs":0.06022857502740393},"maintainabilityIndex":55.08513958280567,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/schemas.ts","lineStart":254,"lineEnd":263,"columnStart":14,"columnEnd":4,"statementCount":4,"complexity":5,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":10,"cognitiveComplexity":4,"halstead":{"operators":8,"operands":24,"distinctOperators":4,"distinctOperands":8,"vocabulary":12,"length":32,"volume":114.718800023077,"difficulty":6,"effort":688.312800138462,"time":38.23960000769233,"estimatedBugs":0.03823960000769233},"maintainabilityIndex":63.091932822464045,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/schemas.ts","lineStart":277,"lineEnd":277,"columnStart":7,"columnEnd":78,"statementCount":1,"complexity":3,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":2,"halstead":{"operators":3,"operands":6,"distinctOperators":2,"distinctOperands":3,"vocabulary":5,"length":9,"volume":20.89735285398626,"difficulty":2,"effort":41.79470570797252,"time":2.321928094887362,"estimatedBugs":0.0069657842846620865},"maintainabilityIndex":90.35319475738363,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/schemas.ts","lineStart":299,"lineEnd":305,"columnStart":14,"columnEnd":4,"statementCount":3,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":1,"loops":0,"lengthLines":7,"cognitiveComplexity":2,"halstead":{"operators":4,"operands":14,"distinctOperators":4,"distinctOperands":6,"vocabulary":10,"length":18,"volume":59.79470570797252,"difficulty":4.666666666666667,"effort":279.0419599705384,"time":15.502331109474357,"estimatedBugs":0.01993156856932417},"maintainabilityIndex":68.72133715902332,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/schemas.ts","lineStart":319,"lineEnd":319,"columnStart":37,"columnEnd":50,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":2,"distinctOperators":1,"distinctOperands":2,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0.5,"effort":2.377443751081734,"time":0.13208020839342968,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":95.12415216859318,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/schemas.ts","lineStart":336,"lineEnd":336,"columnStart":37,"columnEnd":50,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":2,"distinctOperators":1,"distinctOperands":2,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0.5,"effort":2.377443751081734,"time":0.13208020839342968,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":95.12415216859318,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/schemas.ts","lineStart":356,"lineEnd":356,"columnStart":37,"columnEnd":50,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":2,"distinctOperators":1,"distinctOperands":2,"vocabulary":3,"length":3,"volume":4.754887502163468,"difficulty":0.5,"effort":2.377443751081734,"time":0.13208020839342968,"estimatedBugs":0.001584962500721156},"maintainabilityIndex":95.12415216859318,"params":1},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/schemas.ts","lineStart":441,"lineEnd":443,"columnStart":5,"columnEnd":62,"statementCount":1,"complexity":4,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":0,"loops":0,"lengthLines":3,"cognitiveComplexity":3,"halstead":{"operators":5,"operands":12,"distinctOperators":3,"distinctOperands":5,"vocabulary":8,"length":17,"volume":51,"difficulty":3.5999999999999996,"effort":183.6,"time":10.2,"estimatedBugs":0.017},"maintainabilityIndex":77.09765358678955,"params":1}],"flows":[{"kind":"IfStatement","file":"src/validation/schemas.ts","lineStart":144,"lineEnd":146,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/validation/schemas.ts","lineStart":147,"lineEnd":149,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/validation/schemas.ts","lineStart":187,"lineEnd":187,"columnStart":3,"columnEnd":30,"statementCount":1},{"kind":"IfStatement","file":"src/validation/schemas.ts","lineStart":256,"lineEnd":258,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"IfStatement","file":"src/validation/schemas.ts","lineStart":259,"lineEnd":261,"columnStart":5,"columnEnd":6,"statementCount":1},{"kind":"ConditionalExpression","file":"src/validation/schemas.ts","lineStart":277,"lineEnd":277,"columnStart":16,"columnEnd":78,"statementCount":1},{"kind":"IfStatement","file":"src/validation/schemas.ts","lineStart":301,"lineEnd":303,"columnStart":5,"columnEnd":6,"statementCount":1}],"dependencyProfile":{"internalDependencies":["src/validation/httpPreprocess.ts"],"externalDependencies":["octocode-mcp/public","zod/v4"],"unresolvedDependencies":[],"declaredExports":[{"name":"localSearchSchema","kind":"value","lineStart":56,"lineEnd":151},{"name":"localContentSchema","kind":"value","lineStart":157,"lineEnd":181},{"name":"localFindSchema","kind":"value","lineStart":212,"lineEnd":263},{"name":"localStructureSchema","kind":"value","lineStart":269,"lineEnd":305},{"name":"lspDefinitionSchema","kind":"value","lineStart":315,"lineEnd":326},{"name":"lspReferencesSchema","kind":"value","lineStart":332,"lineEnd":346},{"name":"lspCallsSchema","kind":"value","lineStart":352,"lineEnd":369},{"name":"githubSearchSchema","kind":"value","lineStart":379,"lineEnd":394},{"name":"githubContentSchema","kind":"value","lineStart":400,"lineEnd":417},{"name":"githubReposSchema","kind":"value","lineStart":423,"lineEnd":449},{"name":"githubStructureSchema","kind":"value","lineStart":455,"lineEnd":468},{"name":"githubPRsSchema","kind":"value","lineStart":474,"lineEnd":516},{"name":"packageSearchSchema","kind":"value","lineStart":526,"lineEnd":537},{"name":"LocalSearchQuery","kind":"type","lineStart":543,"lineEnd":543},{"name":"LocalContentQuery","kind":"type","lineStart":544,"lineEnd":544},{"name":"LocalFindQuery","kind":"type","lineStart":545,"lineEnd":545},{"name":"LocalStructureQuery","kind":"type","lineStart":546,"lineEnd":546},{"name":"LspDefinitionQuery","kind":"type","lineStart":548,"lineEnd":548},{"name":"LspReferencesQuery","kind":"type","lineStart":549,"lineEnd":549},{"name":"LspCallsQuery","kind":"type","lineStart":550,"lineEnd":550},{"name":"GithubSearchQuery","kind":"type","lineStart":552,"lineEnd":552},{"name":"GithubContentQuery","kind":"type","lineStart":553,"lineEnd":553},{"name":"GithubReposQuery","kind":"type","lineStart":554,"lineEnd":554},{"name":"GithubStructureQuery","kind":"type","lineStart":555,"lineEnd":555},{"name":"GithubPRsQuery","kind":"type","lineStart":556,"lineEnd":556},{"name":"PackageSearchQuery","kind":"type","lineStart":558,"lineEnd":558},{"name":"RipgrepQuerySchema","kind":"unknown","lineStart":565,"lineEnd":565},{"name":"FetchContentQuerySchema","kind":"unknown","lineStart":566,"lineEnd":566},{"name":"FindFilesQuerySchema","kind":"unknown","lineStart":567,"lineEnd":567},{"name":"ViewStructureQuerySchema","kind":"unknown","lineStart":568,"lineEnd":568},{"name":"LSPGotoDefinitionQuerySchema","kind":"unknown","lineStart":569,"lineEnd":569},{"name":"LSPFindReferencesQuerySchema","kind":"unknown","lineStart":570,"lineEnd":570},{"name":"LSPCallHierarchyQuerySchema","kind":"unknown","lineStart":571,"lineEnd":571},{"name":"GitHubCodeSearchQuerySchema","kind":"unknown","lineStart":572,"lineEnd":572},{"name":"FileContentQuerySchema","kind":"unknown","lineStart":573,"lineEnd":573},{"name":"GitHubReposSearchSingleQuerySchema","kind":"unknown","lineStart":574,"lineEnd":574},{"name":"GitHubViewRepoStructureQuerySchema","kind":"unknown","lineStart":575,"lineEnd":575},{"name":"GitHubPullRequestSearchQuerySchema","kind":"unknown","lineStart":576,"lineEnd":576},{"name":"NpmPackageQuerySchema","kind":"unknown","lineStart":577,"lineEnd":577}],"importedSymbols":[{"sourceModule":"zod/v4","importedName":"z","localName":"z","isTypeOnly":false,"lineStart":10,"lineEnd":10},{"sourceModule":"octocode-mcp/public","importedName":"RipgrepQuerySchema","localName":"RipgrepQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"octocode-mcp/public","importedName":"FetchContentQuerySchema","localName":"FetchContentQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"octocode-mcp/public","importedName":"FindFilesQuerySchema","localName":"FindFilesQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"octocode-mcp/public","importedName":"ViewStructureQuerySchema","localName":"ViewStructureQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"octocode-mcp/public","importedName":"LSPGotoDefinitionQuerySchema","localName":"LSPGotoDefinitionQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"octocode-mcp/public","importedName":"LSPFindReferencesQuerySchema","localName":"LSPFindReferencesQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"octocode-mcp/public","importedName":"LSPCallHierarchyQuerySchema","localName":"LSPCallHierarchyQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"octocode-mcp/public","importedName":"GitHubCodeSearchQuerySchema","localName":"GitHubCodeSearchQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"octocode-mcp/public","importedName":"FileContentQuerySchema","localName":"FileContentQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"octocode-mcp/public","importedName":"GitHubReposSearchSingleQuerySchema","localName":"GitHubReposSearchSingleQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"octocode-mcp/public","importedName":"GitHubViewRepoStructureQuerySchema","localName":"GitHubViewRepoStructureQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"octocode-mcp/public","importedName":"GitHubPullRequestSearchQuerySchema","localName":"GitHubPullRequestSearchQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"octocode-mcp/public","importedName":"NpmPackageQuerySchema","localName":"NpmPackageQuerySchema","isTypeOnly":false,"lineStart":15,"lineEnd":33},{"sourceModule":"./httpPreprocess.js","resolvedModule":"src/validation/httpPreprocess.ts","importedName":"toArray","localName":"toArray","isTypeOnly":false,"lineStart":38,"lineEnd":46},{"sourceModule":"./httpPreprocess.js","resolvedModule":"src/validation/httpPreprocess.ts","importedName":"safePath","localName":"safePath","isTypeOnly":false,"lineStart":38,"lineEnd":46},{"sourceModule":"./httpPreprocess.js","resolvedModule":"src/validation/httpPreprocess.ts","importedName":"numericString","localName":"numericString","isTypeOnly":false,"lineStart":38,"lineEnd":46},{"sourceModule":"./httpPreprocess.js","resolvedModule":"src/validation/httpPreprocess.ts","importedName":"requiredNumber","localName":"requiredNumber","isTypeOnly":false,"lineStart":38,"lineEnd":46},{"sourceModule":"./httpPreprocess.js","resolvedModule":"src/validation/httpPreprocess.ts","importedName":"booleanString","localName":"booleanString","isTypeOnly":false,"lineStart":38,"lineEnd":46},{"sourceModule":"./httpPreprocess.js","resolvedModule":"src/validation/httpPreprocess.ts","importedName":"stringArray","localName":"stringArray","isTypeOnly":false,"lineStart":38,"lineEnd":46},{"sourceModule":"./httpPreprocess.js","resolvedModule":"src/validation/httpPreprocess.ts","importedName":"withResearchDefaults","localName":"withResearchDefaults","isTypeOnly":false,"lineStart":38,"lineEnd":46}],"reExports":[],"package":"octocode-skill","file":"src/validation/schemas.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[{"value":5,"file":"src/validation/schemas.ts","lineStart":321,"lineEnd":321},{"value":20,"file":"src/validation/schemas.ts","lineStart":340,"lineEnd":340},{"value":15,"file":"src/validation/schemas.ts","lineStart":363,"lineEnd":363}],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"<anonymous>","lineStart":142,"lineEnd":151,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[{"callee":"withResearchDefaults","lineStart":143}],"paramConfidence":"low"},{"functionName":"<anonymous>","lineStart":254,"lineEnd":263,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[{"callee":"withResearchDefaults","lineStart":255}],"paramConfidence":"low"},{"functionName":"<anonymous>","lineStart":299,"lineEnd":305,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":true,"callsWithInputArgs":[{"callee":"withResearchDefaults","lineStart":300}],"paramConfidence":"low"},{"functionName":"<anonymous>","lineStart":441,"lineEnd":443,"sourceParams":["data"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[],"paramConfidence":"low"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":5016,"symbolUsageSummary":{"declaredExportCount":39,"importedSymbolCount":21,"internalImportCount":7,"externalImportCount":2,"reExportCount":0,"dominantInternalDependency":"src/validation/httpPreprocess.ts"},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":true,"hasCleanupHooks":false,"exitPointCount":5,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0008","AST-ISSUE-0060","AST-ISSUE-0061","AST-ISSUE-0097","AST-ISSUE-0098","AST-ISSUE-0099","AST-ISSUE-0100","AST-ISSUE-0101","AST-ISSUE-0102","AST-ISSUE-0103","AST-ISSUE-0104","AST-ISSUE-0105","AST-ISSUE-0106","AST-ISSUE-0107","AST-ISSUE-0108","AST-ISSUE-0109"]},{"package":"octocode-skill","file":"src/validation/toolCallSchema.ts","parseEngine":"typescript","nodeCount":274,"kindCounts":{"ImportDeclaration":1,"ImportClause":1,"NamedImports":1,"ImportSpecifier":1,"Identifier":98,"StringLiteral":7,"FirstStatement":8,"ExportKeyword":6,"VariableDeclarationList":8,"VariableDeclaration":8,"FirstLiteralToken":4,"CallExpression":15,"PropertyAccessExpression":25,"ArrowFunction":2,"Parameter":5,"EqualsGreaterThanToken":2,"BinaryExpression":3,"GreaterThanToken":1,"ObjectLiteralExpression":5,"PropertyAssignment":8,"TemplateExpression":2,"TemplateHead":2,"TemplateSpan":2,"LastTemplateToken":2,"TypeAliasDeclaration":1,"TypeReference":6,"FirstNode":5,"TypeQuery":1,"InterfaceDeclaration":1,"TypeParameter":1,"PropertySignature":7,"BooleanKeyword":1,"QuestionToken":2,"TypeLiteral":2,"StringKeyword":4,"ArrayType":3,"FunctionDeclaration":2,"UnknownKeyword":1,"Block":4,"IfStatement":2,"PrefixUnaryExpression":1,"ElementAccessExpression":1,"QuestionDotToken":1,"BarBarToken":2,"ReturnStatement":3,"FalseKeyword":1,"TrueKeyword":1,"ArrayLiteralExpression":1,"ExpressionStatement":2,"EndOfFileToken":1},"functions":[{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/toolCallSchema.ts","lineStart":30,"lineEnd":30,"columnStart":3,"columnEnd":39,"statementCount":1,"complexity":1,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":1,"loops":0,"lengthLines":1,"cognitiveComplexity":0,"halstead":{"operators":1,"operands":5,"distinctOperators":1,"distinctOperands":5,"vocabulary":6,"length":6,"volume":15.509775004326936,"difficulty":0.5,"effort":7.754887502163468,"time":0.430827083453526,"estimatedBugs":0.005169925001442312},"maintainabilityIndex":91.52886172685359,"params":1},{"kind":"FunctionDeclaration","name":"validateToolCallBody","nameHint":"validateToolCallBody","file":"src/validation/toolCallSchema.ts","lineStart":85,"lineEnd":105,"columnStart":1,"columnEnd":2,"statementCount":3,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":2,"awaits":0,"calls":1,"loops":0,"lengthLines":21,"cognitiveComplexity":2,"halstead":{"operators":1,"operands":25,"distinctOperators":1,"distinctOperands":13,"vocabulary":14,"length":26,"volume":98.99122797349771,"difficulty":0.9615384615384616,"effort":95.18387305144012,"time":5.287992947302229,"estimatedBugs":0.03299707599116591},"maintainabilityIndex":56.78045266754496,"declared":true,"params":1},{"kind":"FunctionDeclaration","name":"getValidationHints","nameHint":"getValidationHints","file":"src/validation/toolCallSchema.ts","lineStart":114,"lineEnd":132,"columnStart":1,"columnEnd":2,"statementCount":5,"complexity":3,"maxBranchDepth":1,"maxLoopDepth":0,"returns":1,"awaits":0,"calls":5,"loops":0,"lengthLines":19,"cognitiveComplexity":2,"halstead":{"operators":2,"operands":24,"distinctOperators":2,"distinctOperands":13,"vocabulary":15,"length":26,"volume":101.57915548582149,"difficulty":1.8461538461538463,"effort":187.5307485892089,"time":10.418374921622718,"estimatedBugs":0.033859718495273826},"maintainabilityIndex":57.650133982117,"declared":true,"params":2},{"kind":"ArrowFunction","name":"<anonymous>","nameHint":"<anonymous>","file":"src/validation/toolCallSchema.ts","lineStart":122,"lineEnd":122,"columnStart":5,"columnEnd":71,"statementCount":1,"complexity":2,"maxBranchDepth":0,"maxLoopDepth":0,"returns":0,"awaits":0,"calls":2,"loops":0,"lengthLines":1,"cognitiveComplexity":1,"halstead":{"operators":1,"operands":8,"distinctOperators":1,"distinctOperands":5,"vocabulary":6,"length":9,"volume":23.264662506490403,"difficulty":0.8,"effort":18.611730005192324,"time":1.0339850002884625,"estimatedBugs":0.007754887502163467},"maintainabilityIndex":90.16136549167085,"params":1}],"flows":[{"kind":"IfStatement","file":"src/validation/toolCallSchema.ts","lineStart":88,"lineEnd":99,"columnStart":3,"columnEnd":4,"statementCount":3},{"kind":"IfStatement","file":"src/validation/toolCallSchema.ts","lineStart":125,"lineEnd":127,"columnStart":3,"columnEnd":4,"statementCount":1}],"dependencyProfile":{"internalDependencies":[],"externalDependencies":["zod/v4"],"unresolvedDependencies":[],"declaredExports":[{"name":"MAX_QUERIES","kind":"value","lineStart":19,"lineEnd":19},{"name":"toolCallBodySchema","kind":"value","lineStart":38,"lineEnd":43},{"name":"ToolCallBody","kind":"type","lineStart":48,"lineEnd":48},{"name":"ValidationResult","kind":"type","lineStart":57,"lineEnd":64},{"name":"validateToolCallBody","kind":"value","isDefault":false,"lineStart":85,"lineEnd":105},{"name":"getValidationHints","kind":"value","isDefault":false,"lineStart":114,"lineEnd":132}],"importedSymbols":[{"sourceModule":"zod/v4","importedName":"z","localName":"z","isTypeOnly":false,"lineStart":9,"lineEnd":9}],"reExports":[],"package":"octocode-skill","file":"src/validation/toolCallSchema.ts"},"emptyCatches":[],"switchesWithoutDefault":[],"anyCount":0,"magicNumbers":[],"typeAssertionEscapes":{"asAny":[],"doubleAssertion":[],"nonNull":[]},"asyncWithoutAwait":[],"unprotectedAsync":[],"evalUsages":[],"unsafeHtmlAssignments":[],"suspiciousStrings":[],"consoleLogs":[],"regexLiterals":[],"inputSources":[{"functionName":"validateToolCallBody","lineStart":85,"lineEnd":105,"sourceParams":["body"],"hasSinkInBody":false,"sinkKinds":[],"hasValidation":false,"callsWithInputArgs":[{"callee":"toolCallBodySchema.safeParse","lineStart":86}],"paramConfidence":"high"}],"awaitInLoopLocations":[],"syncIoCalls":[],"timerCalls":[],"listenerRegistrations":[],"listenerRemovals":[],"treeSitterNodeCount":555,"symbolUsageSummary":{"declaredExportCount":6,"importedSymbolCount":1,"internalImportCount":0,"externalImportCount":1,"reExportCount":0,"dominantInternalDependency":null},"boundaryRoleHints":[],"cfgFlags":{"hasValidationChecks":false,"hasCleanupHooks":false,"exitPointCount":3,"asyncBoundaryCount":0,"hasTopLevelEffects":false},"issueIds":["AST-ISSUE-0050","AST-ISSUE-0170","AST-ISSUE-0171","AST-ISSUE-0247","AST-ISSUE-0274","AST-ISSUE-0362","AST-ISSUE-0363","AST-ISSUE-0364","AST-ISSUE-0365","AST-ISSUE-0366","AST-ISSUE-0367"]}],"fileCount":36}
|