code-auditor-mcp 5.0.2 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +184 -3
- package/README.md +24 -2
- package/configs/hhra-compat.json +12 -118
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js +11 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +57 -52
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
- package/dist/analyzers/provenance.d.ts +9 -4
- package/dist/analyzers/provenance.d.ts.map +1 -1
- package/dist/analyzers/provenance.js +8 -25
- package/dist/analyzers/provenance.js.map +1 -1
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +0 -5
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/ruleRegistry.js +4 -4
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/ruleTiming.d.ts +1 -1
- package/dist/analyzers/ruleTiming.js +2 -2
- package/dist/analyzers/ruleTiming.js.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +22 -26
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +32 -15
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +189 -115
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +0 -2
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +0 -5
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -10
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +7 -49
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/config.js +0 -2
- package/dist/analyzers/universal/schema/config.js.map +1 -1
- package/dist/analyzers/universal/schema/types.d.ts +0 -2
- package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
- package/dist/analyzers/vendorSurfaces.d.ts +126 -0
- package/dist/analyzers/vendorSurfaces.d.ts.map +1 -0
- package/dist/analyzers/vendorSurfaces.js +580 -0
- package/dist/analyzers/vendorSurfaces.js.map +1 -0
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +136 -142
- package/dist/auditRunner.js.map +1 -1
- package/dist/churn/churnExtractor.d.ts +0 -1
- package/dist/churn/churnExtractor.d.ts.map +1 -1
- package/dist/churn/churnExtractor.js +2 -4
- package/dist/churn/churnExtractor.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +195 -26
- package/dist/cli.js.map +1 -1
- package/dist/codeIndex/migrations.d.ts.map +1 -1
- package/dist/codeIndex/migrations.js +4 -3
- package/dist/codeIndex/migrations.js.map +1 -1
- package/dist/codeIndexDB.d.ts +11 -2
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +27 -2
- package/dist/codeIndexDB.js.map +1 -1
- package/dist/config/configLoader.d.ts +60 -7
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +252 -60
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts +77 -18
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +105 -43
- package/dist/config/defaults.js.map +1 -1
- package/dist/constants.d.ts +2 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -0
- package/dist/constants.js.map +1 -1
- package/dist/daemon/main.d.ts +0 -1
- package/dist/daemon/main.d.ts.map +1 -1
- package/dist/daemon/main.js +11 -4
- package/dist/daemon/main.js.map +1 -1
- package/dist/dataPaths.d.ts +17 -11
- package/dist/dataPaths.d.ts.map +1 -1
- package/dist/dataPaths.js +51 -16
- package/dist/dataPaths.js.map +1 -1
- package/dist/hookLog.d.ts +54 -0
- package/dist/hookLog.d.ts.map +1 -0
- package/dist/hookLog.js +105 -0
- package/dist/hookLog.js.map +1 -0
- package/dist/hookLogPath.generated.d.ts +3 -0
- package/dist/hookLogPath.generated.d.ts.map +1 -0
- package/dist/hookLogPath.generated.js +8 -0
- package/dist/hookLogPath.generated.js.map +1 -0
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +1 -1
- package/dist/installConfig.d.ts +15 -2
- package/dist/installConfig.d.ts.map +1 -1
- package/dist/installConfig.js +17 -2
- package/dist/installConfig.js.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +18 -3
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
- package/dist/mcp-tools/workflowGuide.js +8 -8
- package/dist/mcp-tools/workflowGuide.js.map +1 -1
- package/dist/mcp-tools-shared.d.ts.map +1 -1
- package/dist/mcp-tools-shared.js +5 -2
- package/dist/mcp-tools-shared.js.map +1 -1
- package/dist/mcp-ui-simple.d.ts +5 -0
- package/dist/mcp-ui-simple.d.ts.map +1 -1
- package/dist/mcp-ui-simple.js +9 -2
- package/dist/mcp-ui-simple.js.map +1 -1
- package/dist/mcp.d.ts +0 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +36 -33
- package/dist/mcp.js.map +1 -1
- package/dist/mcpAuditJobs.d.ts +10 -0
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +10 -1
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/mcpAutoIndex.d.ts.map +1 -1
- package/dist/mcpAutoIndex.js +2 -1
- package/dist/mcpAutoIndex.js.map +1 -1
- package/dist/phase/colorMath.d.ts +18 -5
- package/dist/phase/colorMath.d.ts.map +1 -1
- package/dist/phase/colorMath.js +88 -5
- package/dist/phase/colorMath.js.map +1 -1
- package/dist/phase/dataAccessCallsCandidates.js +1 -1
- package/dist/phase/dataAccessCallsCandidates.js.map +1 -1
- package/dist/phase/goFunctionAnalysis.d.ts +2 -2
- package/dist/phase/goFunctionAnalysis.js +2 -2
- package/dist/phase/goFunctions.d.ts +2 -2
- package/dist/phase/goFunctions.js +2 -2
- package/dist/phase/goImports.d.ts +2 -2
- package/dist/phase/goImports.js +2 -2
- package/dist/phase/goSwitches.d.ts +2 -2
- package/dist/phase/goSwitches.js +2 -2
- package/dist/phase/loopQueryCandidates.js +1 -1
- package/dist/phase/loopQueryCandidates.js.map +1 -1
- package/dist/phase/phaseModel.d.ts +37 -8
- package/dist/phase/phaseModel.d.ts.map +1 -1
- package/dist/phase/phaseModel.js +33 -8
- package/dist/phase/phaseModel.js.map +1 -1
- package/dist/phase/producers.d.ts.map +1 -1
- package/dist/phase/producers.js +24 -17
- package/dist/phase/producers.js.map +1 -1
- package/dist/phase/reachability.d.ts +44 -1
- package/dist/phase/reachability.d.ts.map +1 -1
- package/dist/phase/reachability.js +79 -0
- package/dist/phase/reachability.js.map +1 -1
- package/dist/phase/rules/crossDomain.d.ts.map +1 -1
- package/dist/phase/rules/crossDomain.js +16 -6
- package/dist/phase/rules/crossDomain.js.map +1 -1
- package/dist/phase/rules/dry.d.ts.map +1 -1
- package/dist/phase/rules/dry.js +0 -1
- package/dist/phase/rules/dry.js.map +1 -1
- package/dist/phase/rules/goRules.d.ts +2 -2
- package/dist/phase/rules/goRules.js +2 -2
- package/dist/phase/rules/secrets.d.ts +22 -8
- package/dist/phase/rules/secrets.d.ts.map +1 -1
- package/dist/phase/rules/secrets.js +48 -67
- package/dist/phase/rules/secrets.js.map +1 -1
- package/dist/phase/rules/styles.d.ts +23 -9
- package/dist/phase/rules/styles.d.ts.map +1 -1
- package/dist/phase/rules/styles.js +47 -15
- package/dist/phase/rules/styles.js.map +1 -1
- package/dist/phase/rules/unreferencedModule.d.ts.map +1 -1
- package/dist/phase/rules/unreferencedModule.js +16 -5
- package/dist/phase/rules/unreferencedModule.js.map +1 -1
- package/dist/phase/runner.d.ts +16 -7
- package/dist/phase/runner.d.ts.map +1 -1
- package/dist/phase/runner.js +32 -20
- package/dist/phase/runner.js.map +1 -1
- package/dist/phase/stylesCss.d.ts.map +1 -1
- package/dist/phase/stylesCss.js +4 -0
- package/dist/phase/stylesCss.js.map +1 -1
- package/dist/phase/stylesMarkup.d.ts.map +1 -1
- package/dist/phase/stylesMarkup.js +4 -0
- package/dist/phase/stylesMarkup.js.map +1 -1
- package/dist/phase/stylesSource.d.ts.map +1 -1
- package/dist/phase/stylesSource.js +6 -0
- package/dist/phase/stylesSource.js.map +1 -1
- package/dist/phase/testProgram.d.ts +57 -0
- package/dist/phase/testProgram.d.ts.map +1 -0
- package/dist/phase/testProgram.js +244 -0
- package/dist/phase/testProgram.js.map +1 -0
- package/dist/phase/typeDeclarations.d.ts +2 -2
- package/dist/phase/typeDeclarations.js +2 -2
- package/dist/phase/types.d.ts +46 -0
- package/dist/phase/types.d.ts.map +1 -1
- package/dist/pipelineAdapters.d.ts +1 -171
- package/dist/pipelineAdapters.d.ts.map +1 -1
- package/dist/pipelineAdapters.js +47 -1281
- package/dist/pipelineAdapters.js.map +1 -1
- package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
- package/dist/reporting/csvReportGenerator.js +0 -6
- package/dist/reporting/csvReportGenerator.js.map +1 -1
- package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
- package/dist/reporting/htmlReportGenerator.js +0 -4
- package/dist/reporting/htmlReportGenerator.js.map +1 -1
- package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
- package/dist/reporting/jsonReportGenerator.js +0 -1
- package/dist/reporting/jsonReportGenerator.js.map +1 -1
- package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
- package/dist/reporting/sarifReportGenerator.js +0 -7
- package/dist/reporting/sarifReportGenerator.js.map +1 -1
- package/dist/sqlite/driver.d.ts +17 -1
- package/dist/sqlite/driver.d.ts.map +1 -1
- package/dist/sqlite/driver.js +28 -5
- package/dist/sqlite/driver.js.map +1 -1
- package/dist/styles/cssInJsHarvest.d.ts +36 -0
- package/dist/styles/cssInJsHarvest.d.ts.map +1 -0
- package/dist/styles/cssInJsHarvest.js +78 -0
- package/dist/styles/cssInJsHarvest.js.map +1 -0
- package/dist/styles/definedClasses.d.ts +95 -0
- package/dist/styles/definedClasses.d.ts.map +1 -0
- package/dist/styles/definedClasses.js +129 -0
- package/dist/styles/definedClasses.js.map +1 -0
- package/dist/styles/markupStyleHarvest.d.ts +33 -0
- package/dist/styles/markupStyleHarvest.d.ts.map +1 -0
- package/dist/styles/markupStyleHarvest.js +73 -0
- package/dist/styles/markupStyleHarvest.js.map +1 -0
- package/dist/styles/styleExtractor.d.ts +37 -0
- package/dist/styles/styleExtractor.d.ts.map +1 -1
- package/dist/styles/styleExtractor.js +89 -33
- package/dist/styles/styleExtractor.js.map +1 -1
- package/dist/styles/styleIndexer.d.ts.map +1 -1
- package/dist/styles/styleIndexer.js +11 -10
- package/dist/styles/styleIndexer.js.map +1 -1
- package/dist/styles/tailwindExpander.d.ts.map +1 -1
- package/dist/styles/tailwindExpander.js +31 -10
- package/dist/styles/tailwindExpander.js.map +1 -1
- package/dist/telemetry.d.ts +67 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +100 -20
- package/dist/telemetry.js.map +1 -1
- package/dist/types/crossLanguage.d.ts +1 -0
- package/dist/types/crossLanguage.d.ts.map +1 -1
- package/dist/types.d.ts +23 -56
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -4
- package/dist/types.js.map +1 -1
- package/dist/version.generated.d.ts +1 -1
- package/dist/version.generated.js +1 -1
- package/examples/.auditrc.example.json +7 -22
- package/examples/.auditrc.json +12 -155
- package/examples/.code-auditor.json +8 -51
- package/examples/nextjs.auditrc.json +7 -34
- package/examples/node-api.auditrc.json +6 -46
- package/examples/react.auditrc.json +8 -25
- package/examples/tolerant-solid.auditrc.json +12 -44
- package/package.json +6 -5
- package/plugin/.claude-plugin/manifest.json +10 -9
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/hooks/hooks.json +4 -4
- package/plugin/scripts/hook-audit.sh +9 -0
- package/plugin/scripts/hook-common.sh +8 -2
- package/plugin/scripts/hook-drift-check.sh +10 -1
- package/plugin/scripts/hook-log-path.sh +7 -0
- package/plugin/scripts/hook-self-audit.sh +9 -0
- package/plugin/scripts/hook-warm.sh +17 -11
- package/plugin/skills/code-auditor/SKILL.md +26 -3
- package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts +0 -6
- package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-20/scripts/tool.js +0 -12
- package/dist/__tests__/fixtures/spec-20/scripts/tool.js.map +0 -1
- package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts +0 -7
- package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-20/src/demo-module.js +0 -13
- package/dist/__tests__/fixtures/spec-20/src/demo-module.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts +0 -14
- package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js +0 -16
- package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts +0 -15
- package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js +0 -17
- package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts +0 -14
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts +0 -18
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts +0 -19
- package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts +0 -17
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts +0 -25
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js +0 -21
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts +0 -15
- package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts +0 -14
- package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js +0 -14
- package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts +0 -15
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js +0 -16
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js.map +0 -1
- package/dist/languages/go/analyzer-darwin-amd64 +0 -0
- package/dist/languages/go/analyzer-darwin-arm64 +0 -0
- package/dist/languages/go/analyzer-linux-amd64 +0 -0
- package/dist/languages/go/analyzer-linux-arm64 +0 -0
- package/dist/languages/go/analyzer-src/analyzer.go +0 -643
- package/dist/languages/go/analyzer-src/dataaccess.go +0 -388
- package/dist/languages/go/analyzer-src/go.mod +0 -3
- package/dist/languages/go/analyzer-src/indexer.go +0 -268
- package/dist/languages/go/analyzer-src/parser.go +0 -461
- package/dist/languages/go/analyzer-src/solid.go +0 -311
- package/dist/languages/go/analyzer-src/testconventions.go +0 -25
- package/dist/languages/go/analyzer-src/types.go +0 -156
- package/dist/languages/go/analyzer-windows-amd64.exe +0 -0
- package/dist/languages/go/go.mod +0 -7
- package/dist/languages/go/main.go +0 -203
- package/dist/native/ast-grep-napi.darwin-arm64.node +0 -0
- package/dist/native/ast-grep-napi.darwin-x64.node +0 -0
- package/dist/native/ast-grep-napi.linux-arm64-gnu.node +0 -0
- package/dist/native/ast-grep-napi.linux-arm64-musl.node +0 -0
- package/dist/native/ast-grep-napi.linux-x64-gnu.node +0 -0
- package/dist/native/ast-grep-napi.linux-x64-musl.node +0 -0
- package/dist/native/ast-grep-napi.win32-x64-msvc.node +0 -0
- package/dist/native-bootstrap.d.ts +0 -15
- package/dist/native-bootstrap.d.ts.map +0 -1
- package/dist/native-bootstrap.js +0 -75
- package/dist/native-bootstrap.js.map +0 -1
package/dist/hookLog.js
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook-log reader — the read half of the hook's write-only diagnostic log.
|
|
3
|
+
*
|
|
4
|
+
* The PostToolUse/SessionStart hooks (`plugin/scripts/hook-*.sh`) and the
|
|
5
|
+
* bootstrap guard in `plugin/hooks/hooks.json` write status records to the hook
|
|
6
|
+
* log that `hook_log_dir()`/`hook_log_file()` in hook-common.sh compute. Until
|
|
7
|
+
* this module existed, nothing read that log — a hook that stopped enqueueing
|
|
8
|
+
* (e.g. `CLAUDE_PLUGIN_ROOT` unset) was invisible to the explicit audit, the
|
|
9
|
+
* exact silent-disable the 4.1.0 guard was removed to escape. This module is
|
|
10
|
+
* the single shared reader both the CLI and MCP audit entry points call, so a
|
|
11
|
+
* live "hook not running" condition surfaces as a top-level notice rather than
|
|
12
|
+
* vanishing into a write-only log.
|
|
13
|
+
*
|
|
14
|
+
* The path here is deliberately NOT `getFallbackCacheRoot()`: that resolves to
|
|
15
|
+
* `~/Library/Caches/code-auditor` on macOS, while the bash hooks always use the
|
|
16
|
+
* Linux-style `${XDG_CACHE_HOME:-$HOME/.cache}` convention regardless of
|
|
17
|
+
* platform. The writer and reader must agree, so the tail and file name are
|
|
18
|
+
* single-sourced: `HOOK_LOG_DIR_TAIL`/`HOOK_LOG_FILE` are imported from
|
|
19
|
+
* `hookLogPath.generated.ts`, which `scripts/write-hook-log-path.mjs` generates
|
|
20
|
+
* from the same source as `plugin/scripts/hook-log-path.sh` (the file the bash
|
|
21
|
+
* writer sources) — the two languages can never drift.
|
|
22
|
+
*
|
|
23
|
+
* Contract (fail-open): an absent, unreadable, or malformed log yields no
|
|
24
|
+
* notice and never throws — the reader must not change the audit exit code.
|
|
25
|
+
*/
|
|
26
|
+
import { readFileSync } from 'node:fs';
|
|
27
|
+
import { homedir } from 'node:os';
|
|
28
|
+
import path from 'node:path';
|
|
29
|
+
import { HOOK_LOG_DIR_TAIL, HOOK_LOG_FILE } from './hookLogPath.generated.js';
|
|
30
|
+
/**
|
|
31
|
+
* One record's leading timestamp: `[YYYY-MM-DDTHH:MM:SSZ]`, written by the bash
|
|
32
|
+
* hooks via `date -u +%Y-%m-%dT%H:%M:%SZ`. Equal-width fields make the strings
|
|
33
|
+
* lexicographically comparable, so "newer" is a plain string `>`.
|
|
34
|
+
*/
|
|
35
|
+
const RECORD_RE = /^\[(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z)\]\s*(.*)$/;
|
|
36
|
+
/** The bootstrap guard writes this when the hook cannot run (`CLAUDE_PLUGIN_ROOT`
|
|
37
|
+
* unset) — the condition the reader reports. */
|
|
38
|
+
const CONDITION_MARKER = 'HOOK NOT RUNNING';
|
|
39
|
+
/** Every hook script writes this on a completed run — the positive "the hook is
|
|
40
|
+
* alive and running" signal that resolves a condition. hook-audit.sh and
|
|
41
|
+
* hook-self-audit.sh write it on exit 0 or 2 (the CLI actually ran); hook-warm.sh
|
|
42
|
+
* and hook-drift-check.sh write it on every path (they never exit non-zero). */
|
|
43
|
+
const SUCCESS_MARKER = 'HOOK RAN';
|
|
44
|
+
/** The hook-log directory, mirroring hook-common.sh's `hook_log_dir()`. */
|
|
45
|
+
export function resolveHookLogDir() {
|
|
46
|
+
const base = process.env.XDG_CACHE_HOME?.trim() || path.join(homedir(), '.cache');
|
|
47
|
+
return path.join(base, HOOK_LOG_DIR_TAIL);
|
|
48
|
+
}
|
|
49
|
+
/** The hook-log file path, mirroring hook-common.sh's `hook_log_file()`. */
|
|
50
|
+
export function resolveHookLogPath() {
|
|
51
|
+
return path.join(resolveHookLogDir(), HOOK_LOG_FILE);
|
|
52
|
+
}
|
|
53
|
+
const STALE_SUFFIX = 'Cached findings may be stale because the hook is not enqueueing changes for audit.';
|
|
54
|
+
/**
|
|
55
|
+
* Read the hook log and report a live "hook not running" condition, if any.
|
|
56
|
+
*
|
|
57
|
+
* "Live" is decided by record order, not a time window: a condition is live
|
|
58
|
+
* when the newest `HOOK NOT RUNNING` record is newer than the newest `HOOK RAN`
|
|
59
|
+
* record — or no `HOOK RAN` record exists at all. A successful hook run since
|
|
60
|
+
* the condition resolves it.
|
|
61
|
+
*
|
|
62
|
+
* Fail-open: an absent, unreadable, or malformed log yields `null` (no notice)
|
|
63
|
+
* and never throws.
|
|
64
|
+
*
|
|
65
|
+
* @returns The live "hook not running" notice, or `null` when the log is
|
|
66
|
+
* absent/unreadable/malformed or the latest `HOOK RAN` record resolves the
|
|
67
|
+
* newest condition.
|
|
68
|
+
*/
|
|
69
|
+
export function readHookNotice() {
|
|
70
|
+
let text;
|
|
71
|
+
try {
|
|
72
|
+
text = readFileSync(resolveHookLogPath(), 'utf8');
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return null; // absent or unreadable — fail open
|
|
76
|
+
}
|
|
77
|
+
let newestCondition = null;
|
|
78
|
+
let newestSuccess = null;
|
|
79
|
+
for (const line of text.split('\n')) {
|
|
80
|
+
const m = RECORD_RE.exec(line);
|
|
81
|
+
if (!m)
|
|
82
|
+
continue; // malformed line — skip, never throw
|
|
83
|
+
const ts = m[1];
|
|
84
|
+
const message = m[2];
|
|
85
|
+
if (message.includes(CONDITION_MARKER)) {
|
|
86
|
+
if (!newestCondition || ts > newestCondition.ts)
|
|
87
|
+
newestCondition = { ts, message };
|
|
88
|
+
}
|
|
89
|
+
else if (message.includes(SUCCESS_MARKER)) {
|
|
90
|
+
if (!newestSuccess || ts > newestSuccess.ts)
|
|
91
|
+
newestSuccess = { ts, message };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (!newestCondition)
|
|
95
|
+
return null;
|
|
96
|
+
// Resolved when a successful run is at least as new as the newest condition —
|
|
97
|
+
// "live" means strictly newer, so equal timestamps resolve.
|
|
98
|
+
if (newestSuccess && newestSuccess.ts >= newestCondition.ts)
|
|
99
|
+
return null;
|
|
100
|
+
return {
|
|
101
|
+
condition: newestCondition.message,
|
|
102
|
+
message: `${newestCondition.message} ${STALE_SUFFIX}`,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=hookLog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hookLog.js","sourceRoot":"","sources":["../src/hookLog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE9E;;;;GAIG;AACH,MAAM,SAAS,GAAG,qDAAqD,CAAC;AAExE;iDACiD;AACjD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C;;;iFAGiF;AACjF,MAAM,cAAc,GAAG,UAAU,CAAC;AAElC,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;AAC5C,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,aAAa,CAAC,CAAC;AACvD,CAAC;AAWD,MAAM,YAAY,GAChB,oFAAoF,CAAC;AAEvF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,kBAAkB,EAAE,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,mCAAmC;IAClD,CAAC;IAED,IAAI,eAAe,GAA2C,IAAI,CAAC;IACnE,IAAI,aAAa,GAA2C,IAAI,CAAC;IAEjE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,SAAS,CAAC,qCAAqC;QACvD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,eAAe,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE;gBAAE,eAAe,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QACrF,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,aAAa,IAAI,EAAE,GAAG,aAAa,CAAC,EAAE;gBAAE,aAAa,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAClC,8EAA8E;IAC9E,4DAA4D;IAC5D,IAAI,aAAa,IAAI,aAAa,CAAC,EAAE,IAAI,eAAe,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAEzE,OAAO;QACL,SAAS,EAAE,eAAe,CAAC,OAAO;QAClC,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,IAAI,YAAY,EAAE;KACtD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hookLogPath.generated.d.ts","sourceRoot":"","sources":["../src/hookLogPath.generated.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,EAAG,mBAA4B,CAAC;AAC9D,eAAO,MAAM,aAAa,EAAG,UAAmB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// @generated — do not edit. Written by `scripts/write-hook-log-path.mjs`.
|
|
2
|
+
//
|
|
3
|
+
// Single source of truth for the hook-log path, shared by the TS reader
|
|
4
|
+
// (src/hookLog.ts) and the bash writer (plugin/scripts/hook-common.sh via
|
|
5
|
+
// plugin/scripts/hook-log-path.sh). Regenerate with `npm run build:hooklog`.
|
|
6
|
+
export const HOOK_LOG_DIR_TAIL = 'code-auditor/logs';
|
|
7
|
+
export const HOOK_LOG_FILE = 'hook.log';
|
|
8
|
+
//# sourceMappingURL=hookLogPath.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hookLogPath.generated.js","sourceRoot":"","sources":["../src/hookLogPath.generated.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,wEAAwE;AACxE,0EAA0E;AAC1E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAA4B,CAAC;AAC9D,MAAM,CAAC,MAAM,aAAa,GAAG,UAAmB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -26,10 +26,6 @@ export declare const version = "0.1.0";
|
|
|
26
26
|
* @returns A configured audit runner.
|
|
27
27
|
*/
|
|
28
28
|
export declare function createProjectAuditRunner(projectType: 'nextjs' | 'react' | 'vue' | 'angular' | 'node' | 'generic', options?: any): Promise<any>;
|
|
29
|
-
/**
|
|
30
|
-
* List available analyzers
|
|
31
|
-
*/
|
|
32
|
-
export declare function getAvailableAnalyzers(): string[];
|
|
33
29
|
/**
|
|
34
30
|
* List available report formats
|
|
35
31
|
*/
|
|
@@ -38,7 +34,6 @@ declare const _default: {
|
|
|
38
34
|
runAudit: typeof _runAudit;
|
|
39
35
|
createAuditRunner: typeof _createAuditRunner;
|
|
40
36
|
createProjectAuditRunner: typeof createProjectAuditRunner;
|
|
41
|
-
getAvailableAnalyzers: typeof getAvailableAnalyzers;
|
|
42
37
|
getAvailableFormats: typeof getAvailableFormats;
|
|
43
38
|
version: string;
|
|
44
39
|
};
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlG,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EAGb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,gBAAgB,EAGhB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,SAAS,EAGT,cAAc,EACd,mBAAmB,EAGnB,cAAc,EACd,sBAAsB,EAGtB,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAC;AAQpB,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAGlC,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACxE,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,GAAG,CAAC,CAUd;AAED;;GAEG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlG,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EAGb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,gBAAgB,EAGhB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,SAAS,EAGT,cAAc,EACd,mBAAmB,EAGnB,cAAc,EACd,sBAAsB,EAGtB,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAC;AAQpB,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAGlC,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACxE,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,GAAG,CAAC,CAUd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;;;;;;;;AAGD,wBAME"}
|
package/dist/index.js
CHANGED
|
@@ -45,12 +45,6 @@ export async function createProjectAuditRunner(projectType, options) {
|
|
|
45
45
|
};
|
|
46
46
|
return createAuditRunner(mergedOptions);
|
|
47
47
|
}
|
|
48
|
-
/**
|
|
49
|
-
* List available analyzers
|
|
50
|
-
*/
|
|
51
|
-
export function getAvailableAnalyzers() {
|
|
52
|
-
return ['solid', 'dry', 'security', 'component', 'data-access'];
|
|
53
|
-
}
|
|
54
48
|
/**
|
|
55
49
|
* List available report formats
|
|
56
50
|
*/
|
|
@@ -62,7 +56,6 @@ export default {
|
|
|
62
56
|
runAudit: _runAudit,
|
|
63
57
|
createAuditRunner: _createAuditRunner,
|
|
64
58
|
createProjectAuditRunner,
|
|
65
|
-
getAvailableAnalyzers,
|
|
66
59
|
getAvailableFormats,
|
|
67
60
|
version
|
|
68
61
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;AAE9E,4BAA4B;AAC5B,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElG,gBAAgB;AAChB,OAAO,EAEL,UAAU,EACV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAsC9B,6DAA6D;AAC7D,+DAA+D;AAC/D,sEAAsE;AACtE,wEAAwE;AAExE,qBAAqB;AACrB,cAAc,8BAA8B,CAAC;AAE7C,oBAAoB;AACpB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EAEpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,qCAAqC,CAAC;AAE7C,YAAY;AACZ,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EAEb,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAwE,EACxE,OAAa;IAEb,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC/D,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG;QACpB,GAAG,eAAe;QAClB,GAAG,OAAO;KACX,CAAC;IAEF,OAAO,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;AAE9E,4BAA4B;AAC5B,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElG,gBAAgB;AAChB,OAAO,EAEL,UAAU,EACV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAsC9B,6DAA6D;AAC7D,+DAA+D;AAC/D,sEAAsE;AACtE,wEAAwE;AAExE,qBAAqB;AACrB,cAAc,8BAA8B,CAAC;AAE7C,oBAAoB;AACpB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EAEpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,qCAAqC,CAAC;AAE7C,YAAY;AACZ,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EAEb,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAwE,EACxE,OAAa;IAEb,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC/D,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG;QACpB,GAAG,eAAe;QAClB,GAAG,OAAO;KACX,CAAC;IAEF,OAAO,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,iCAAiC;AACjC,eAAe;IACb,QAAQ,EAAE,SAAS;IACnB,iBAAiB,EAAE,kBAAkB;IACrC,wBAAwB;IACxB,mBAAmB;IACnB,OAAO;CACR,CAAC"}
|
package/dist/installConfig.d.ts
CHANGED
|
@@ -10,8 +10,12 @@
|
|
|
10
10
|
* The opt-in is a one-time decision recorded here (default OFF), toggled by the
|
|
11
11
|
* `telemetry` MCP tool. It is *not* a default and *not* a per-invocation flag.
|
|
12
12
|
*/
|
|
13
|
-
/**
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Privacy statement shared by the tool, SKILL, and docs. Lists the exact eight
|
|
15
|
+
* fields sent by an opted-in dismissal, matching the docs privacy page so the
|
|
16
|
+
* CLI, MCP tool, and website never disagree about what leaves the machine.
|
|
17
|
+
*/
|
|
18
|
+
export declare const PRIVACY_MESSAGE = "Anonymous opt-in feedback: each submission contains the tool version, the rule ID, the urgency level, the dismissal reason exactly as typed, a structural AST signature (grammar node types only, never their contents), a coarse language hint, a timestamp, and an anonymous install ID generated locally on your machine. Source code, identifiers, literals, file paths, and environment details are never sent.";
|
|
15
19
|
/**
|
|
16
20
|
* The default ingest endpoint (the operator's service). Shipped so opt-in is a
|
|
17
21
|
* one-step toggle with a known destination; overridable at enable time and via
|
|
@@ -57,4 +61,13 @@ export declare function getTelemetryOptIn(dir?: string): TelemetryOptIn;
|
|
|
57
61
|
* @param dir - Optional config directory override (for tests).
|
|
58
62
|
*/
|
|
59
63
|
export declare function setTelemetryOptIn(optIn: TelemetryOptIn, dir?: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the user has made an opt-in decision — i.e. a `telemetry.json` exists,
|
|
66
|
+
* regardless of whether it records enabled or disabled. False means the user has
|
|
67
|
+
* never been asked, so the installer/SKILL should offer the choice once.
|
|
68
|
+
*
|
|
69
|
+
* @param dir - Optional config directory override (for tests).
|
|
70
|
+
* @returns True when a telemetry decision has been recorded.
|
|
71
|
+
*/
|
|
72
|
+
export declare function hasTelemetryDecision(dir?: string): boolean;
|
|
60
73
|
//# sourceMappingURL=installConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installConfig.d.ts","sourceRoot":"","sources":["../src/installConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH
|
|
1
|
+
{"version":3,"file":"installConfig.d.ts","sourceRoot":"","sources":["../src/installConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH;;;;GAIG;AACH,eAAO,MAAM,eAAe,yZAC4X,CAAC;AAEzZ;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,qEAC6B,CAAC;AAErE;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAa/D;AAKD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,2DAA2D;AAC3D,wBAAgB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAejD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAa9D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAS3E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1D"}
|
package/dist/installConfig.js
CHANGED
|
@@ -14,8 +14,12 @@ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
|
14
14
|
import path from 'node:path';
|
|
15
15
|
import { randomUUID } from 'node:crypto';
|
|
16
16
|
import { getUserConfigRoot } from './dataPaths.js';
|
|
17
|
-
/**
|
|
18
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Privacy statement shared by the tool, SKILL, and docs. Lists the exact eight
|
|
19
|
+
* fields sent by an opted-in dismissal, matching the docs privacy page so the
|
|
20
|
+
* CLI, MCP tool, and website never disagree about what leaves the machine.
|
|
21
|
+
*/
|
|
22
|
+
export const PRIVACY_MESSAGE = 'Anonymous opt-in feedback: each submission contains the tool version, the rule ID, the urgency level, the dismissal reason exactly as typed, a structural AST signature (grammar node types only, never their contents), a coarse language hint, a timestamp, and an anonymous install ID generated locally on your machine. Source code, identifiers, literals, file paths, and environment details are never sent.';
|
|
19
23
|
/**
|
|
20
24
|
* The default ingest endpoint (the operator's service). Shipped so opt-in is a
|
|
21
25
|
* one-step toggle with a known destination; overridable at enable time and via
|
|
@@ -112,4 +116,15 @@ export function setTelemetryOptIn(optIn, dir) {
|
|
|
112
116
|
mkdirSync(root, { recursive: true });
|
|
113
117
|
writeFileSync(filePath, JSON.stringify({ enabled: optIn.enabled === true, endpoint: optIn.endpoint ?? '' }, null, 2) + '\n', { mode: 0o600 });
|
|
114
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Whether the user has made an opt-in decision — i.e. a `telemetry.json` exists,
|
|
121
|
+
* regardless of whether it records enabled or disabled. False means the user has
|
|
122
|
+
* never been asked, so the installer/SKILL should offer the choice once.
|
|
123
|
+
*
|
|
124
|
+
* @param dir - Optional config directory override (for tests).
|
|
125
|
+
* @returns True when a telemetry decision has been recorded.
|
|
126
|
+
*/
|
|
127
|
+
export function hasTelemetryDecision(dir) {
|
|
128
|
+
return existsSync(path.join(configDir(dir), TELEMETRY_FILENAME));
|
|
129
|
+
}
|
|
115
130
|
//# sourceMappingURL=installConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installConfig.js","sourceRoot":"","sources":["../src/installConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"installConfig.js","sourceRoot":"","sources":["../src/installConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeSitterTypeScriptAdapter.d.ts","sourceRoot":"","sources":["../../../src/languages/typescript/TreeSitterTypeScriptAdapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TreeSitterTypeScriptAdapter.d.ts","sourceRoot":"","sources":["../../../src/languages/typescript/TreeSitterTypeScriptAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1201,10 +1201,16 @@ class TsDynamicStringConstruction extends TsScopeStatic {
|
|
|
1201
1201
|
return false;
|
|
1202
1202
|
}
|
|
1203
1203
|
if (type === 'binary_expression') {
|
|
1204
|
-
//
|
|
1204
|
+
// String concatenation is a `+` binary expression with a string operand.
|
|
1205
|
+
// Other binary operators (`??`, `||`, `&&`, comparisons, arithmetic) are
|
|
1206
|
+
// NOT string construction — a nullish-coalescing default
|
|
1207
|
+
// (`projectPath ?? '__global__'`) is a value expression, not an
|
|
1208
|
+
// SQL-fragment concatenation, and treating it as one makes a fully
|
|
1209
|
+
// parameterized `.get(query, ...binds)` read as raw interpolation.
|
|
1205
1210
|
const children = node.children ?? [];
|
|
1206
|
-
|
|
1207
|
-
|
|
1211
|
+
if (!children.some((c) => (getRawNode(c)).type === '+'))
|
|
1212
|
+
return false;
|
|
1213
|
+
return children.some((c) => (getRawNode(c)).type === 'string');
|
|
1208
1214
|
}
|
|
1209
1215
|
if (type === 'call_expression') {
|
|
1210
1216
|
// Check for .concat() calls
|
|
@@ -1741,6 +1747,15 @@ class TsSafetyAnalysis extends TsConstantResolution {
|
|
|
1741
1747
|
case 'undefined':
|
|
1742
1748
|
case 'regex':
|
|
1743
1749
|
return true;
|
|
1750
|
+
case 'update_expression':
|
|
1751
|
+
// `x++` / `++x` / `x--` / `--x` run ToNumeric over the operand, so the
|
|
1752
|
+
// result is always digits, `NaN`, or `Infinity` — never attacker text.
|
|
1753
|
+
// Whatever `x` held (a string operand coerces to `NaN`, a BigInt to
|
|
1754
|
+
// digits), the interpolated output carries no quote, semicolon, or comment
|
|
1755
|
+
// marker, so it cannot escape a SQL string context. That is what makes a
|
|
1756
|
+
// `col = $${paramIndex++}` bind-index counter structural — not the
|
|
1757
|
+
// incidental fact that the value is numeric.
|
|
1758
|
+
return true;
|
|
1744
1759
|
case 'identifier':
|
|
1745
1760
|
return this.isSafeIdentifier(node, ctx);
|
|
1746
1761
|
case 'template_string':
|