@superblocksteam/vite-plugin-file-sync 2.0.160 → 2.0.161
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/dist/ai-service/agent/middleware.d.ts +1 -2
- package/dist/ai-service/agent/middleware.d.ts.map +1 -1
- package/dist/ai-service/agent/middleware.js +2 -3
- package/dist/ai-service/agent/middleware.js.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js +5 -4
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +16 -1
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tool-result-metrics.d.ts +29 -0
- package/dist/ai-service/agent/tool-result-metrics.d.ts.map +1 -0
- package/dist/ai-service/agent/tool-result-metrics.js +162 -0
- package/dist/ai-service/agent/tool-result-metrics.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/test-api.d.ts +50 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +132 -10
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.d.ts +1 -2
- package/dist/ai-service/agent/tools/build-delete-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.js +2 -0
- package/dist/ai-service/agent/tools/build-delete-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.d.ts +1 -2
- package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.js +2 -0
- package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.d.ts +1 -0
- package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.js +123 -16
- package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
- package/dist/ai-service/agent/tools/build-lookup-npm-package.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-lookup-npm-package.js +4 -16
- package/dist/ai-service/agent/tools/build-lookup-npm-package.js.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +11 -7
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.js +18 -9
- package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts +1 -2
- package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.js +2 -0
- package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.js +31 -18
- package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-rename-file.d.ts +1 -2
- package/dist/ai-service/agent/tools/build-rename-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-rename-file.js +2 -0
- package/dist/ai-service/agent/tools/build-rename-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.d.ts +1 -2
- package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.js +2 -0
- package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts +3 -3
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.js +5 -7
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.js.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.d.ts +16 -14
- package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.js +200 -42
- package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +13 -13
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.js +52 -20
- package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/sql-classification.d.ts +7 -1
- package/dist/ai-service/agent/tools/integrations/sql-classification.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/sql-classification.js +229 -11
- package/dist/ai-service/agent/tools/integrations/sql-classification.js.map +1 -1
- package/dist/ai-service/agent/tools/page-edit-guidance.d.ts +2 -0
- package/dist/ai-service/agent/tools/page-edit-guidance.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/page-edit-guidance.js +11 -0
- package/dist/ai-service/agent/tools/page-edit-guidance.js.map +1 -0
- package/dist/ai-service/agent/tools/report-security-findings.d.ts +5 -5
- package/dist/ai-service/agent/tools.d.ts +32 -0
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +54 -33
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +21 -4
- package/dist/ai-service/agent/tools2/registry.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts +2 -2
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +20 -11
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.d.ts +4 -0
- package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js +28 -8
- package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/update-test-case-status.d.ts +2 -2
- package/dist/ai-service/app-interface/cancellable-exec.d.ts +34 -0
- package/dist/ai-service/app-interface/cancellable-exec.d.ts.map +1 -0
- package/dist/ai-service/app-interface/cancellable-exec.js +98 -0
- package/dist/ai-service/app-interface/cancellable-exec.js.map +1 -0
- package/dist/ai-service/app-interface/shell.d.ts +20 -3
- package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
- package/dist/ai-service/app-interface/shell.js +139 -65
- package/dist/ai-service/app-interface/shell.js.map +1 -1
- package/dist/ai-service/attachment-upload.d.ts.map +1 -1
- package/dist/ai-service/attachment-upload.js +4 -1
- package/dist/ai-service/attachment-upload.js.map +1 -1
- package/dist/ai-service/attachments/parse-data-url.d.ts +5 -0
- package/dist/ai-service/attachments/parse-data-url.d.ts.map +1 -0
- package/dist/ai-service/attachments/parse-data-url.js +14 -0
- package/dist/ai-service/attachments/parse-data-url.js.map +1 -0
- package/dist/ai-service/chat/chat-session-store.d.ts +0 -8
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +34 -611
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/chat/utils.d.ts +2 -6
- package/dist/ai-service/chat/utils.d.ts.map +1 -1
- package/dist/ai-service/chat/utils.js +2 -95
- package/dist/ai-service/chat/utils.js.map +1 -1
- package/dist/ai-service/index.d.ts +3 -2
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +138 -48
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/mention-safe-tag-name.d.ts +12 -0
- package/dist/ai-service/integrations/mention-safe-tag-name.d.ts.map +1 -0
- package/dist/ai-service/integrations/mention-safe-tag-name.js +18 -0
- package/dist/ai-service/integrations/mention-safe-tag-name.js.map +1 -0
- package/dist/ai-service/integrations/store.d.ts +9 -0
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +11 -1
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +67 -4
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.d.ts +1 -0
- package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.js +3 -0
- package/dist/ai-service/llm/context-v2/adapter.js.map +1 -1
- package/dist/ai-service/llm/context-v2/compaction/client-side.d.ts +7 -0
- package/dist/ai-service/llm/context-v2/compaction/client-side.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/compaction/client-side.js +28 -6
- package/dist/ai-service/llm/context-v2/compaction/client-side.js.map +1 -1
- package/dist/ai-service/llm/context-v2/compaction/compaction-strategy.d.ts +12 -0
- package/dist/ai-service/llm/context-v2/compaction/compaction-strategy.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/compactor.d.ts +8 -0
- package/dist/ai-service/llm/context-v2/compactor.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/compactor.js +15 -3
- package/dist/ai-service/llm/context-v2/compactor.js.map +1 -1
- package/dist/ai-service/llm/context-v2/config.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/config.js +1 -0
- package/dist/ai-service/llm/context-v2/config.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context-metrics.d.ts +44 -1
- package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context-metrics.js +97 -12
- package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context.d.ts +125 -0
- package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context.js +478 -14
- package/dist/ai-service/llm/context-v2/context.js.map +1 -1
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts +12 -0
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +2 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -1
- package/dist/ai-service/llm/context-v2/phase2-session-summarizer.js +3 -3
- package/dist/ai-service/llm/context-v2/phase2-session-summarizer.js.map +1 -1
- package/dist/ai-service/llm/context-v2/token-tracker.d.ts +49 -1
- package/dist/ai-service/llm/context-v2/token-tracker.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/token-tracker.js +119 -0
- package/dist/ai-service/llm/context-v2/token-tracker.js.map +1 -1
- package/dist/ai-service/llm/context-v2/truncation-fallback.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/truncation-fallback.js +2 -1
- package/dist/ai-service/llm/context-v2/truncation-fallback.js.map +1 -1
- package/dist/ai-service/llm/context-v2/types.d.ts +9 -0
- package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/types.js.map +1 -1
- package/dist/ai-service/llm/context-v2/well-formed-text.d.ts +24 -0
- package/dist/ai-service/llm/context-v2/well-formed-text.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/well-formed-text.js +73 -0
- package/dist/ai-service/llm/context-v2/well-formed-text.js.map +1 -0
- package/dist/ai-service/llm/error.d.ts +22 -1
- package/dist/ai-service/llm/error.d.ts.map +1 -1
- package/dist/ai-service/llm/error.js +159 -22
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/stream/empty-tool-call-tracker.d.ts +4 -3
- package/dist/ai-service/llm/stream/empty-tool-call-tracker.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/empty-tool-call-tracker.js +5 -4
- package/dist/ai-service/llm/stream/empty-tool-call-tracker.js.map +1 -1
- package/dist/ai-service/llm/stream/idle-monitor.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/idle-monitor.js +5 -0
- package/dist/ai-service/llm/stream/idle-monitor.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.d.ts +6 -0
- package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.js +44 -3
- package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +28 -4
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +9 -1
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/llm/stream/session.d.ts +6 -0
- package/dist/ai-service/llm/stream/session.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/session.js +6 -0
- package/dist/ai-service/llm/stream/session.js.map +1 -1
- package/dist/ai-service/llm/stream/terminal-reason.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/terminal-reason.js +11 -1
- package/dist/ai-service/llm/stream/terminal-reason.js.map +1 -1
- package/dist/ai-service/llm/stream/wait-state-tracker.d.ts +4 -3
- package/dist/ai-service/llm/stream/wait-state-tracker.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/wait-state-tracker.js +12 -8
- package/dist/ai-service/llm/stream/wait-state-tracker.js.map +1 -1
- package/dist/ai-service/policy-agent-metrics.d.ts +2 -1
- package/dist/ai-service/policy-agent-metrics.d.ts.map +1 -1
- package/dist/ai-service/policy-agent-metrics.js +11 -2
- package/dist/ai-service/policy-agent-metrics.js.map +1 -1
- package/dist/ai-service/policy-gate-error.d.ts +3 -0
- package/dist/ai-service/policy-gate-error.d.ts.map +1 -0
- package/dist/ai-service/policy-gate-error.js +33 -0
- package/dist/ai-service/policy-gate-error.js.map +1 -0
- package/dist/ai-service/resolve-generation-state-for-ui.js +1 -1
- package/dist/ai-service/resolve-generation-state-for-ui.js.map +1 -1
- package/dist/ai-service/security/secret-scanner-service.d.ts +3 -6
- package/dist/ai-service/security/secret-scanner-service.d.ts.map +1 -1
- package/dist/ai-service/security/secret-scanner-service.js +229 -97
- package/dist/ai-service/security/secret-scanner-service.js.map +1 -1
- package/dist/ai-service/security/secret-scanner.d.ts +28 -5
- package/dist/ai-service/security/secret-scanner.d.ts.map +1 -1
- package/dist/ai-service/security/secret-scanner.js +197 -42
- package/dist/ai-service/security/secret-scanner.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +49 -0
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.js +1 -0
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +2 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +74 -3
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +1 -11
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.d.ts +3 -2
- package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.js +25 -5
- package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/prompt-billing-metrics.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/prompt-billing-metrics.js +1 -0
- package/dist/ai-service/state-machine/helpers/prompt-billing-metrics.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts +4 -0
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.js +6 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.js.map +1 -1
- package/dist/ai-service/test-utils/metrics-harness.d.ts +6 -0
- package/dist/ai-service/test-utils/metrics-harness.d.ts.map +1 -1
- package/dist/ai-service/test-utils/metrics-harness.js.map +1 -1
- package/dist/ai-service/transform/api-builder/shared.d.ts.map +1 -1
- package/dist/ai-service/transform/api-builder/shared.js +2 -1
- package/dist/ai-service/transform/api-builder/shared.js.map +1 -1
- package/dist/dev-server-ws-smoke-client.d.ts.map +1 -1
- package/dist/dev-server-ws-smoke-client.js +1 -0
- package/dist/dev-server-ws-smoke-client.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts +21 -0
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +131 -11
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/file-system-helpers.d.ts +2 -2
- package/dist/file-system-helpers.d.ts.map +1 -1
- package/dist/file-system-helpers.js +2 -12
- package/dist/file-system-helpers.js.map +1 -1
- package/dist/migration-templates/app-fullstack/.gitignore +50 -0
- package/dist/parsing/jsx.d.ts +12 -0
- package/dist/parsing/jsx.d.ts.map +1 -1
- package/dist/parsing/jsx.js +30 -12
- package/dist/parsing/jsx.js.map +1 -1
- package/dist/parsing/page.d.ts.map +1 -1
- package/dist/parsing/page.js +16 -8
- package/dist/parsing/page.js.map +1 -1
- package/dist/parsing/parse-tsx-module.d.ts +4 -0
- package/dist/parsing/parse-tsx-module.d.ts.map +1 -0
- package/dist/parsing/parse-tsx-module.js +13 -0
- package/dist/parsing/parse-tsx-module.js.map +1 -0
- package/dist/plugin-options.d.ts +4 -0
- package/dist/plugin-options.d.ts.map +1 -1
- package/dist/plugin-options.js.map +1 -1
- package/dist/policy-gate-callback-mapper.d.ts +2 -1
- package/dist/policy-gate-callback-mapper.d.ts.map +1 -1
- package/dist/policy-gate-callback-mapper.js +3 -5
- package/dist/policy-gate-callback-mapper.js.map +1 -1
- package/dist/policy-gate-run-registry.d.ts +4 -2
- package/dist/policy-gate-run-registry.d.ts.map +1 -1
- package/dist/policy-gate-run-registry.js +17 -2
- package/dist/policy-gate-run-registry.js.map +1 -1
- package/dist/policy-gate-runner.d.ts +1 -1
- package/dist/policy-gate-runner.d.ts.map +1 -1
- package/dist/policy-gate-runner.js +41 -7
- package/dist/policy-gate-runner.js.map +1 -1
- package/dist/router-parser-metrics.d.ts +2 -0
- package/dist/router-parser-metrics.d.ts.map +1 -0
- package/dist/router-parser-metrics.js +13 -0
- package/dist/router-parser-metrics.js.map +1 -0
- package/dist/router-parser.d.ts +6 -1
- package/dist/router-parser.d.ts.map +1 -1
- package/dist/router-parser.js +72 -17
- package/dist/router-parser.js.map +1 -1
- package/dist/scan-scope-merge.d.ts +1 -1
- package/dist/scan-scope-merge.js +1 -1
- package/dist/source-tracker.d.ts.map +1 -1
- package/dist/source-tracker.js +2 -6
- package/dist/source-tracker.js.map +1 -1
- package/dist/sync-service/download.d.ts.map +1 -1
- package/dist/sync-service/download.js +10 -2
- package/dist/sync-service/download.js.map +1 -1
- package/dist/sync-service/index.d.ts +5 -0
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +66 -14
- package/dist/sync-service/index.js.map +1 -1
- package/dist/sync-service/list-dir.d.ts.map +1 -1
- package/dist/sync-service/list-dir.js +8 -4
- package/dist/sync-service/list-dir.js.map +1 -1
- package/dist/sync-service/snapshot/upload-snapshot.d.ts.map +1 -1
- package/dist/sync-service/snapshot/upload-snapshot.js +20 -0
- package/dist/sync-service/snapshot/upload-snapshot.js.map +1 -1
- package/dist/util/log-sanitizer.d.ts.map +1 -1
- package/dist/util/log-sanitizer.js +10 -8
- package/dist/util/log-sanitizer.js.map +1 -1
- package/dist/util/logger.d.ts +2 -0
- package/dist/util/logger.d.ts.map +1 -1
- package/dist/util/logger.js +357 -38
- package/dist/util/logger.js.map +1 -1
- package/dist/util.d.ts +3 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +2 -2
- package/dist/util.js.map +1 -1
- package/package.json +9 -9
|
@@ -11,9 +11,8 @@
|
|
|
11
11
|
* coalesce into a single TruffleHog invocation.
|
|
12
12
|
* - **Concurrency control**: A promise-based semaphore limits the number
|
|
13
13
|
* of concurrent TruffleHog child processes.
|
|
14
|
-
* - **Availability gating**:
|
|
15
|
-
*
|
|
16
|
-
* logging errors.
|
|
14
|
+
* - **Availability gating**: Callers share a pending probe and cache only
|
|
15
|
+
* successful availability. Failed checks retry on the next caller.
|
|
17
16
|
*/
|
|
18
17
|
import { type SecretScanOptions, type SecretScanResult } from "./secret-scanner.js";
|
|
19
18
|
/** Time-to-live for cached scan results (ms). */
|
|
@@ -31,9 +30,7 @@ export declare const CACHE_TTL_MS: number;
|
|
|
31
30
|
*/
|
|
32
31
|
export declare function scanContentForSecrets(content: string, options?: SecretScanOptions): Promise<SecretScanResult>;
|
|
33
32
|
/**
|
|
34
|
-
* Checks
|
|
35
|
-
*
|
|
36
|
-
* @returns Promise resolving to true if TruffleHog is installed
|
|
33
|
+
* Checks availability, sharing pending probes and caching successful checks.
|
|
37
34
|
*/
|
|
38
35
|
export declare function isTrufflehogAvailable(): Promise<boolean>;
|
|
39
36
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-scanner-service.d.ts","sourceRoot":"","sources":["../../../src/ai-service/security/secret-scanner-service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"secret-scanner-service.d.ts","sourceRoot":"","sources":["../../../src/ai-service/security/secret-scanner-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAEtB,MAAM,qBAAqB,CAAC;AAQ7B,iDAAiD;AACjD,eAAO,MAAM,YAAY,QAAgB,CAAC;AA+b1C;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAE3B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C"}
|
|
@@ -11,16 +11,13 @@
|
|
|
11
11
|
* coalesce into a single TruffleHog invocation.
|
|
12
12
|
* - **Concurrency control**: A promise-based semaphore limits the number
|
|
13
13
|
* of concurrent TruffleHog child processes.
|
|
14
|
-
* - **Availability gating**:
|
|
15
|
-
*
|
|
16
|
-
* logging errors.
|
|
14
|
+
* - **Availability gating**: Callers share a pending probe and cache only
|
|
15
|
+
* successful availability. Failed checks retry on the next caller.
|
|
17
16
|
*/
|
|
18
17
|
import { createHash } from "node:crypto";
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
|
|
22
|
-
// Constants
|
|
23
|
-
// ---------------------------------------------------------------------------
|
|
18
|
+
import { metrics } from "@opentelemetry/api";
|
|
19
|
+
import { getPrefixedLogger } from "../../util/logger.js";
|
|
20
|
+
import { TrufflehogError, probeTrufflehogAvailability, runTrufflehog, redactSecrets, } from "./secret-scanner.js";
|
|
24
21
|
/** Default timeout for a single TruffleHog scan (ms). */
|
|
25
22
|
const DEFAULT_SCAN_TIMEOUT_MS = 10_000;
|
|
26
23
|
/** Maximum number of cached scan results. */
|
|
@@ -29,9 +26,31 @@ const MAX_CACHE_SIZE = 200;
|
|
|
29
26
|
export const CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
30
27
|
/** Maximum concurrent TruffleHog child processes. */
|
|
31
28
|
const MAX_CONCURRENCY = 2;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
/** One caller may retry a failed scan after 30 seconds. No background retries. */
|
|
30
|
+
const SCAN_COOLDOWN_MS = 30_000;
|
|
31
|
+
function spawnFailureMessage(errno) {
|
|
32
|
+
return errno === "ENOENT"
|
|
33
|
+
? "TruffleHog could not be launched (ENOENT). Manually install TruffleHog or correct PATH for this dev server: https://github.com/trufflesecurity/trufflehog"
|
|
34
|
+
: `TruffleHog could not be launched (${errno ?? "unknown errno"}). Check process resource limits, executable permissions and PATH for this dev server.`;
|
|
35
|
+
}
|
|
36
|
+
function availabilityFailureMessage(failure) {
|
|
37
|
+
switch (failure.category) {
|
|
38
|
+
case "spawn_error":
|
|
39
|
+
return spawnFailureMessage(failure.errno);
|
|
40
|
+
case "nonzero_exit":
|
|
41
|
+
return `TruffleHog version check exited with code ${failure.exitCode}. Run trufflehog --version manually and repair the installation.`;
|
|
42
|
+
case "signal":
|
|
43
|
+
return `TruffleHog version check terminated by ${failure.signal}. Check process limits and external termination, then run trufflehog --version manually.`;
|
|
44
|
+
case "deadline":
|
|
45
|
+
return "TruffleHog version check exceeded its deadline. Check whether trufflehog --version completes manually.";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function runtimeFailureMessage(error) {
|
|
49
|
+
const failure = error.failure;
|
|
50
|
+
if (failure.category !== "spawn_error")
|
|
51
|
+
return error.message;
|
|
52
|
+
return spawnFailureMessage(failure.errno);
|
|
53
|
+
}
|
|
35
54
|
/**
|
|
36
55
|
* Singleton service that wraps TruffleHog process spawning with caching,
|
|
37
56
|
* in-flight deduplication, concurrency control, and availability gating.
|
|
@@ -48,13 +67,15 @@ class SecretScannerService {
|
|
|
48
67
|
activeProcesses = 0;
|
|
49
68
|
/** Waiters blocked on a concurrency slot. */
|
|
50
69
|
waitQueue = [];
|
|
51
|
-
/**
|
|
52
|
-
* Tri-state availability flag:
|
|
53
|
-
* - `undefined` = not yet checked
|
|
54
|
-
* - `true` = TruffleHog is installed
|
|
55
|
-
* - `false` = TruffleHog is not installed
|
|
56
|
-
*/
|
|
57
70
|
available;
|
|
71
|
+
pendingAvailability;
|
|
72
|
+
disposed = false;
|
|
73
|
+
runtimeFailure;
|
|
74
|
+
reportedAvailabilityFailure;
|
|
75
|
+
reportedRuntimeFailure;
|
|
76
|
+
meter = metrics.getMeter("superblocks.clark.secret_scanning");
|
|
77
|
+
attempts = this.meter.createCounter("superblocks.clark.secret_scan.attempts");
|
|
78
|
+
results = this.meter.createCounter("superblocks.clark.secret_scan.results");
|
|
58
79
|
/**
|
|
59
80
|
* Scan content for secrets, applying caching and concurrency control.
|
|
60
81
|
*
|
|
@@ -63,32 +84,32 @@ class SecretScannerService {
|
|
|
63
84
|
* @returns Scan result with findings and redacted content
|
|
64
85
|
*/
|
|
65
86
|
async scan(content, options = {}) {
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
hasSecrets: false,
|
|
83
|
-
redactedContent: content,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
87
|
+
const timeout = options.timeout && options.timeout > 0
|
|
88
|
+
? options.timeout
|
|
89
|
+
: DEFAULT_SCAN_TIMEOUT_MS;
|
|
90
|
+
const { verifiedOnly = false } = options;
|
|
91
|
+
// 1. Availability gate before looking up successfully scanned content.
|
|
92
|
+
const availability = await this.getAvailability();
|
|
93
|
+
if (!availability.available) {
|
|
94
|
+
return {
|
|
95
|
+
success: false,
|
|
96
|
+
findings: [],
|
|
97
|
+
error: availabilityFailureMessage(availability.failure),
|
|
98
|
+
failure: availability.failure,
|
|
99
|
+
hasVerifiedSecrets: false,
|
|
100
|
+
hasSecrets: false,
|
|
101
|
+
redactedContent: content,
|
|
102
|
+
};
|
|
86
103
|
}
|
|
87
104
|
// 2. Cache lookup
|
|
88
105
|
const cacheKey = this.hashContent(content, verifiedOnly);
|
|
89
106
|
const cached = this.cache.get(cacheKey);
|
|
90
107
|
if (cached && cached.expiresAt > Date.now()) {
|
|
91
108
|
const findings = cached.findings;
|
|
109
|
+
this.results.add(1, {
|
|
110
|
+
"scan.consumer": options.consumer ?? "unknown",
|
|
111
|
+
"scan.outcome": "cache_hit",
|
|
112
|
+
});
|
|
92
113
|
return {
|
|
93
114
|
success: true,
|
|
94
115
|
findings,
|
|
@@ -97,35 +118,21 @@ class SecretScannerService {
|
|
|
97
118
|
redactedContent: redactSecrets(content, findings),
|
|
98
119
|
};
|
|
99
120
|
}
|
|
100
|
-
// 3.
|
|
101
|
-
// rejection so they return { success: false } instead of throwing.
|
|
121
|
+
// 3. All consumers share the attempt, but retain their own original content.
|
|
102
122
|
const existing = this.inflight.get(cacheKey);
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
logger.error("Secret scan failed (deduped)", getErrorMeta(error));
|
|
116
|
-
return {
|
|
117
|
-
success: false,
|
|
118
|
-
findings: [],
|
|
119
|
-
error: error instanceof Error ? error.message : String(error),
|
|
120
|
-
hasVerifiedSecrets: false,
|
|
121
|
-
hasSecrets: false,
|
|
122
|
-
redactedContent: content,
|
|
123
|
-
};
|
|
124
|
-
}
|
|
123
|
+
const consumers = existing?.consumers ?? new Set();
|
|
124
|
+
const consumerTypes = existing?.consumerTypes ?? new Set();
|
|
125
|
+
consumers.add(options.signal);
|
|
126
|
+
consumerTypes.add(options.consumer);
|
|
127
|
+
let scanPromise = existing?.promise;
|
|
128
|
+
if (!scanPromise) {
|
|
129
|
+
scanPromise = this.runWithConcurrencyControl(content, timeout, verifiedOnly, cacheKey, consumers, consumerTypes);
|
|
130
|
+
this.inflight.set(cacheKey, {
|
|
131
|
+
promise: scanPromise,
|
|
132
|
+
consumers,
|
|
133
|
+
consumerTypes,
|
|
134
|
+
});
|
|
125
135
|
}
|
|
126
|
-
// 4. Spawn TruffleHog with concurrency control
|
|
127
|
-
const scanPromise = this.runWithConcurrencyControl(content, timeout, verifiedOnly, cacheKey);
|
|
128
|
-
this.inflight.set(cacheKey, scanPromise);
|
|
129
136
|
try {
|
|
130
137
|
const findings = await scanPromise;
|
|
131
138
|
return {
|
|
@@ -137,45 +144,70 @@ class SecretScannerService {
|
|
|
137
144
|
};
|
|
138
145
|
}
|
|
139
146
|
catch (error) {
|
|
140
|
-
logger.error("Secret scan failed", getErrorMeta(error));
|
|
141
147
|
return {
|
|
142
148
|
success: false,
|
|
143
149
|
findings: [],
|
|
144
|
-
error: error instanceof
|
|
150
|
+
error: error instanceof TrufflehogError
|
|
151
|
+
? runtimeFailureMessage(error)
|
|
152
|
+
: "Secret scan failed",
|
|
153
|
+
failure: error instanceof TrufflehogError ? error.failure : undefined,
|
|
145
154
|
hasVerifiedSecrets: false,
|
|
146
155
|
hasSecrets: false,
|
|
147
156
|
redactedContent: content,
|
|
148
157
|
};
|
|
149
158
|
}
|
|
150
|
-
finally {
|
|
151
|
-
this.inflight.delete(cacheKey);
|
|
152
|
-
}
|
|
153
159
|
}
|
|
154
|
-
/**
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
if (this.
|
|
160
|
-
|
|
161
|
-
|
|
160
|
+
/** Share pending checks, cache only success, and retry failures next call. */
|
|
161
|
+
async getAvailability() {
|
|
162
|
+
if (this.available === true) {
|
|
163
|
+
return { available: true };
|
|
164
|
+
}
|
|
165
|
+
if (this.pendingAvailability) {
|
|
166
|
+
return this.pendingAvailability;
|
|
167
|
+
}
|
|
168
|
+
this.pendingAvailability = probeTrufflehogAvailability()
|
|
169
|
+
.then((result) => {
|
|
170
|
+
if (result.available) {
|
|
162
171
|
this.available = true;
|
|
172
|
+
this.reportedAvailabilityFailure = undefined;
|
|
163
173
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
174
|
+
else {
|
|
175
|
+
const failure = result.failure;
|
|
176
|
+
const fingerprint = JSON.stringify([
|
|
177
|
+
failure.category,
|
|
178
|
+
failure.errno,
|
|
179
|
+
failure.exitCode,
|
|
180
|
+
failure.signal,
|
|
181
|
+
failure.deadlineExpired,
|
|
182
|
+
]);
|
|
183
|
+
if (fingerprint !== this.reportedAvailabilityFailure) {
|
|
184
|
+
this.reportedAvailabilityFailure = fingerprint;
|
|
185
|
+
getPrefixedLogger("[secret-scan]").error(`${availabilityFailureMessage(failure)} Requests continue without secret scanning. Evidence: ${JSON.stringify({
|
|
186
|
+
"scan.failure_category": failure.category,
|
|
187
|
+
"process.errno": failure.errno,
|
|
188
|
+
"process.exit_code": failure.exitCode,
|
|
189
|
+
"process.signal": failure.signal,
|
|
190
|
+
"scan.deadline_expired": failure.deadlineExpired,
|
|
191
|
+
"scan.elapsed_ms": failure.elapsedMs,
|
|
192
|
+
})}`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return result;
|
|
196
|
+
})
|
|
197
|
+
.finally(() => {
|
|
198
|
+
this.pendingAvailability = undefined;
|
|
199
|
+
});
|
|
200
|
+
return this.pendingAvailability;
|
|
167
201
|
}
|
|
168
202
|
/**
|
|
169
203
|
* Dispose of the singleton — clears the cache and resets availability.
|
|
170
204
|
*/
|
|
171
205
|
dispose() {
|
|
206
|
+
this.disposed = true;
|
|
172
207
|
this.cache.clear();
|
|
173
208
|
this.inflight.clear();
|
|
174
209
|
this.available = undefined;
|
|
175
210
|
}
|
|
176
|
-
// -----------------------------------------------------------------------
|
|
177
|
-
// Private helpers
|
|
178
|
-
// -----------------------------------------------------------------------
|
|
179
211
|
/**
|
|
180
212
|
* Compute a cache key from content and scan flags.
|
|
181
213
|
*/
|
|
@@ -189,18 +221,123 @@ class SecretScannerService {
|
|
|
189
221
|
* Acquire a concurrency slot, run TruffleHog, cache the result, and
|
|
190
222
|
* release the slot.
|
|
191
223
|
*/
|
|
192
|
-
async runWithConcurrencyControl(content, timeout, verifiedOnly, cacheKey) {
|
|
193
|
-
await
|
|
224
|
+
async runWithConcurrencyControl(content, timeout, verifiedOnly, cacheKey, consumers, consumerTypes) {
|
|
225
|
+
await Promise.resolve();
|
|
194
226
|
try {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
227
|
+
this.checkRuntimeCooldown(consumerTypes);
|
|
228
|
+
await this.acquireSlot();
|
|
229
|
+
try {
|
|
230
|
+
if (this.disposed ||
|
|
231
|
+
[...consumers].every((signal) => signal?.aborted)) {
|
|
232
|
+
this.results.add(1, {
|
|
233
|
+
"scan.consumer": this.consumerAttribute(consumerTypes),
|
|
234
|
+
"scan.outcome": "cancelled",
|
|
235
|
+
});
|
|
236
|
+
throw new Error("Secret scan cancelled");
|
|
237
|
+
}
|
|
238
|
+
// Recheck after waiting: work queued before a failure must not bypass it.
|
|
239
|
+
this.checkRuntimeCooldown(consumerTypes);
|
|
240
|
+
const recovery = this.runtimeFailure;
|
|
241
|
+
if (recovery) {
|
|
242
|
+
recovery.recovering = true;
|
|
243
|
+
this.reportedRuntimeFailure = undefined;
|
|
244
|
+
}
|
|
245
|
+
try {
|
|
246
|
+
const consumer = this.consumerAttribute(consumerTypes);
|
|
247
|
+
this.attempts.add(1, { "scan.consumer": consumer });
|
|
248
|
+
const findings = await runTrufflehog(content, timeout, verifiedOnly);
|
|
249
|
+
this.results.add(1, {
|
|
250
|
+
"scan.consumer": this.consumerAttribute(consumerTypes),
|
|
251
|
+
"scan.outcome": "success",
|
|
252
|
+
});
|
|
253
|
+
if (recovery && this.runtimeFailure === recovery) {
|
|
254
|
+
this.runtimeFailure = undefined;
|
|
255
|
+
this.reportRuntime(undefined, true);
|
|
256
|
+
}
|
|
257
|
+
this.cacheResult(cacheKey, findings);
|
|
258
|
+
return findings;
|
|
259
|
+
}
|
|
260
|
+
catch (error) {
|
|
261
|
+
const safeError = error instanceof TrufflehogError
|
|
262
|
+
? error
|
|
263
|
+
: new Error("Secret scan failed");
|
|
264
|
+
this.runtimeFailure = {
|
|
265
|
+
error: safeError,
|
|
266
|
+
retryAt: Date.now() + SCAN_COOLDOWN_MS,
|
|
267
|
+
recovering: false,
|
|
268
|
+
};
|
|
269
|
+
this.results.add(1, {
|
|
270
|
+
"scan.consumer": this.consumerAttribute(consumerTypes),
|
|
271
|
+
"scan.outcome": safeError instanceof TrufflehogError
|
|
272
|
+
? safeError.failure.category
|
|
273
|
+
: "internal_error",
|
|
274
|
+
});
|
|
275
|
+
this.reportRuntime(safeError);
|
|
276
|
+
throw safeError;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
finally {
|
|
280
|
+
this.releaseSlot();
|
|
281
|
+
}
|
|
199
282
|
}
|
|
200
283
|
finally {
|
|
201
|
-
|
|
284
|
+
// Unpublish as the attempt settles. A caller that arrives after a
|
|
285
|
+
// failed attempt must start its own scan, not join the rejection.
|
|
286
|
+
if (this.inflight.get(cacheKey)?.consumers === consumers) {
|
|
287
|
+
this.inflight.delete(cacheKey);
|
|
288
|
+
}
|
|
202
289
|
}
|
|
203
290
|
}
|
|
291
|
+
checkRuntimeCooldown(consumers) {
|
|
292
|
+
const failure = this.runtimeFailure;
|
|
293
|
+
const loggingOnly = consumers.size === 1 && consumers.has("logging");
|
|
294
|
+
if (failure &&
|
|
295
|
+
(Date.now() < failure.retryAt || failure.recovering || loggingOnly)) {
|
|
296
|
+
this.results.add(1, {
|
|
297
|
+
"scan.consumer": this.consumerAttribute(consumers),
|
|
298
|
+
"scan.outcome": "cooldown",
|
|
299
|
+
});
|
|
300
|
+
throw failure.error;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
consumerAttribute(consumers) {
|
|
304
|
+
const values = [...consumers];
|
|
305
|
+
return values.length === 1 ? (values[0] ?? "unknown") : "shared";
|
|
306
|
+
}
|
|
307
|
+
reportRuntime(error, recovered = false) {
|
|
308
|
+
if (this.disposed)
|
|
309
|
+
return;
|
|
310
|
+
const logger = getPrefixedLogger("[secret-scan]");
|
|
311
|
+
if (!error) {
|
|
312
|
+
if (recovered) {
|
|
313
|
+
logger.info("TruffleHog scanning recovered. Secret scanning is enabled.");
|
|
314
|
+
this.reportedRuntimeFailure = undefined;
|
|
315
|
+
}
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
const failure = error instanceof TrufflehogError ? error.failure : undefined;
|
|
319
|
+
const fingerprint = JSON.stringify([
|
|
320
|
+
failure?.category,
|
|
321
|
+
failure?.errno,
|
|
322
|
+
failure?.exitCode,
|
|
323
|
+
failure?.signal,
|
|
324
|
+
failure?.deadlineExpired,
|
|
325
|
+
]);
|
|
326
|
+
if (fingerprint === this.reportedRuntimeFailure)
|
|
327
|
+
return;
|
|
328
|
+
this.reportedRuntimeFailure = fingerprint;
|
|
329
|
+
const guidance = error instanceof TrufflehogError
|
|
330
|
+
? runtimeFailureMessage(error)
|
|
331
|
+
: "Secret scan failed internally.";
|
|
332
|
+
logger.error(`${guidance} Requests continue without secret scanning; one later caller can retry after 30 seconds. ${JSON.stringify({
|
|
333
|
+
"scan.failure_category": failure?.category ?? "internal_error",
|
|
334
|
+
"process.errno": failure?.errno,
|
|
335
|
+
"process.exit_code": failure?.exitCode,
|
|
336
|
+
"process.signal": failure?.signal,
|
|
337
|
+
"scan.deadline_expired": failure?.deadlineExpired,
|
|
338
|
+
"scan.elapsed_ms": failure?.elapsedMs,
|
|
339
|
+
})}`);
|
|
340
|
+
}
|
|
204
341
|
/**
|
|
205
342
|
* Wait until a concurrency slot is available.
|
|
206
343
|
*/
|
|
@@ -243,9 +380,6 @@ class SecretScannerService {
|
|
|
243
380
|
});
|
|
244
381
|
}
|
|
245
382
|
}
|
|
246
|
-
// ---------------------------------------------------------------------------
|
|
247
|
-
// Module-level singleton
|
|
248
|
-
// ---------------------------------------------------------------------------
|
|
249
383
|
let instance;
|
|
250
384
|
function getInstance() {
|
|
251
385
|
if (!instance) {
|
|
@@ -268,12 +402,10 @@ export async function scanContentForSecrets(content, options = {}) {
|
|
|
268
402
|
return getInstance().scan(content, options);
|
|
269
403
|
}
|
|
270
404
|
/**
|
|
271
|
-
* Checks
|
|
272
|
-
*
|
|
273
|
-
* @returns Promise resolving to true if TruffleHog is installed
|
|
405
|
+
* Checks availability, sharing pending probes and caching successful checks.
|
|
274
406
|
*/
|
|
275
407
|
export async function isTrufflehogAvailable() {
|
|
276
|
-
return getInstance().
|
|
408
|
+
return (await getInstance().getAvailability()).available;
|
|
277
409
|
}
|
|
278
410
|
/**
|
|
279
411
|
* Disposes the singleton scanner service, clearing all caches and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-scanner-service.js","sourceRoot":"","sources":["../../../src/ai-service/security/secret-scanner-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"secret-scanner-service.js","sourceRoot":"","sources":["../../../src/ai-service/security/secret-scanner-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,31 @@ export interface SecretScanOptions {
|
|
|
36
36
|
timeout?: number;
|
|
37
37
|
/** Only return verified (confirmed active) secrets (default: false - returns all findings) */
|
|
38
38
|
verifiedOnly?: boolean;
|
|
39
|
+
/** Withdraw this consumer's queued work. Never terminates an active shared scan. */
|
|
40
|
+
signal?: AbortSignal;
|
|
41
|
+
/** Bounded caller category for scanner telemetry. */
|
|
42
|
+
consumer?: "context_persistence" | "logging" | "policy_gate" | "prompt";
|
|
43
|
+
}
|
|
44
|
+
/** Safe subprocess evidence. Never include process output or Error.message. */
|
|
45
|
+
export interface TrufflehogFailure {
|
|
46
|
+
category: "spawn_error" | "nonzero_exit" | "signal" | "deadline" | "input_error";
|
|
47
|
+
errno?: string;
|
|
48
|
+
exitCode: number | null;
|
|
49
|
+
signal?: NodeJS.Signals;
|
|
50
|
+
deadlineExpired: boolean;
|
|
51
|
+
elapsedMs: number;
|
|
52
|
+
}
|
|
53
|
+
export type TrufflehogAvailability = {
|
|
54
|
+
available: true;
|
|
55
|
+
} | {
|
|
56
|
+
available: false;
|
|
57
|
+
failure: TrufflehogFailure & {
|
|
58
|
+
category: Exclude<TrufflehogFailure["category"], "input_error">;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
export declare class TrufflehogError extends Error {
|
|
62
|
+
readonly failure: TrufflehogFailure;
|
|
63
|
+
constructor(failure: TrufflehogFailure);
|
|
39
64
|
}
|
|
40
65
|
/**
|
|
41
66
|
* Result of a secret scan operation.
|
|
@@ -47,6 +72,7 @@ export interface SecretScanResult {
|
|
|
47
72
|
findings: SecretFinding[];
|
|
48
73
|
/** Error message if scan failed */
|
|
49
74
|
error?: string;
|
|
75
|
+
failure?: TrufflehogFailure;
|
|
50
76
|
/** Whether any verified secrets were found */
|
|
51
77
|
hasVerifiedSecrets: boolean;
|
|
52
78
|
/** Whether any secrets (verified or not) were found */
|
|
@@ -77,11 +103,8 @@ export declare function redactSecrets(content: string, findings: SecretFinding[]
|
|
|
77
103
|
* @returns Promise resolving to array of SecretFinding objects
|
|
78
104
|
*/
|
|
79
105
|
export declare function runTrufflehog(content: string, timeout: number, verifiedOnly: boolean): Promise<SecretFinding[]>;
|
|
80
|
-
/**
|
|
81
|
-
|
|
82
|
-
*
|
|
83
|
-
* @returns Promise resolving to true if TruffleHog is installed and accessible
|
|
84
|
-
*/
|
|
106
|
+
/** Five-second probe plus at most 250ms to collect termination evidence. */
|
|
107
|
+
export declare function probeTrufflehogAvailability(timeout?: number): Promise<TrufflehogAvailability>;
|
|
85
108
|
export declare function isTrufflehogAvailable(): Promise<boolean>;
|
|
86
109
|
/**
|
|
87
110
|
* A reusable secret redactor that can perform fast synchronous redaction.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-scanner.d.ts","sourceRoot":"","sources":["../../../src/ai-service/security/secret-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"secret-scanner.d.ts","sourceRoot":"","sources":["../../../src/ai-service/security/secret-scanner.ts"],"names":[],"mappings":"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"}
|