@superblocksteam/vite-plugin-file-sync 2.0.159-next.0 → 2.0.160-next.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/dist/ai-service/agent/middleware.d.ts +2 -1
- package/dist/ai-service/agent/middleware.d.ts.map +1 -1
- package/dist/ai-service/agent/middleware.js +3 -2
- 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 +4 -5
- 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 +1 -16
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -50
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +10 -132
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.d.ts +2 -1
- package/dist/ai-service/agent/tools/build-delete-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.js +0 -2
- package/dist/ai-service/agent/tools/build-delete-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.d.ts +2 -1
- package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.js +0 -2
- package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.d.ts +0 -1
- package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.js +16 -123
- 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 +16 -4
- 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 +7 -11
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.js +9 -18
- 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 +2 -1
- 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 +0 -2
- 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 +18 -31
- package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-rename-file.d.ts +2 -1
- package/dist/ai-service/agent/tools/build-rename-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-rename-file.js +0 -2
- package/dist/ai-service/agent/tools/build-rename-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.d.ts +2 -1
- package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.js +0 -2
- 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 +7 -5
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.js.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.d.ts +14 -16
- package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.js +42 -200
- 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 +20 -52
- package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/sql-classification.d.ts +1 -7
- package/dist/ai-service/agent/tools/integrations/sql-classification.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/sql-classification.js +11 -229
- package/dist/ai-service/agent/tools/integrations/sql-classification.js.map +1 -1
- package/dist/ai-service/agent/tools/report-security-findings.d.ts +5 -5
- package/dist/ai-service/agent/tools.d.ts +0 -32
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +33 -54
- 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 +4 -21
- 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 +11 -20
- 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 +0 -4
- 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 +8 -28
- 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/shell.d.ts +3 -20
- package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
- package/dist/ai-service/app-interface/shell.js +65 -139
- 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 +1 -4
- package/dist/ai-service/attachment-upload.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +8 -0
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +611 -34
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/chat/utils.d.ts +6 -2
- package/dist/ai-service/chat/utils.d.ts.map +1 -1
- package/dist/ai-service/chat/utils.js +95 -2
- package/dist/ai-service/chat/utils.js.map +1 -1
- package/dist/ai-service/index.d.ts +2 -3
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +48 -138
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +0 -9
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +1 -11
- 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 +4 -67
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.d.ts +0 -1
- package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.js +0 -3
- package/dist/ai-service/llm/context-v2/adapter.js.map +1 -1
- package/dist/ai-service/llm/context-v2/compaction/client-side.d.ts +0 -7
- 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 +6 -28
- 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 +0 -12
- 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 +0 -8
- package/dist/ai-service/llm/context-v2/compactor.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/compactor.js +3 -15
- 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 +0 -1
- package/dist/ai-service/llm/context-v2/config.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context-metrics.d.ts +1 -44
- package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context-metrics.js +12 -97
- package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context.d.ts +0 -125
- package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context.js +14 -478
- package/dist/ai-service/llm/context-v2/context.js.map +1 -1
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts +0 -12
- 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 +1 -2
- 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 +1 -49
- package/dist/ai-service/llm/context-v2/token-tracker.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/token-tracker.js +0 -119
- 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 +1 -2
- package/dist/ai-service/llm/context-v2/truncation-fallback.js.map +1 -1
- package/dist/ai-service/llm/context-v2/types.d.ts +0 -9
- 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/error.d.ts +1 -22
- package/dist/ai-service/llm/error.d.ts.map +1 -1
- package/dist/ai-service/llm/error.js +22 -159
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/stream/empty-tool-call-tracker.d.ts +3 -4
- 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 +4 -5
- 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 +0 -5
- package/dist/ai-service/llm/stream/idle-monitor.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.d.ts +0 -6
- package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.js +3 -44
- 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 +4 -28
- 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 +1 -9
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/llm/stream/session.d.ts +0 -6
- package/dist/ai-service/llm/stream/session.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/session.js +0 -6
- 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 +1 -11
- package/dist/ai-service/llm/stream/terminal-reason.js.map +1 -1
- package/dist/ai-service/llm/stream/wait-state-tracker.d.ts +3 -4
- package/dist/ai-service/llm/stream/wait-state-tracker.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/wait-state-tracker.js +8 -12
- package/dist/ai-service/llm/stream/wait-state-tracker.js.map +1 -1
- package/dist/ai-service/policy-agent-metrics.d.ts +1 -2
- package/dist/ai-service/policy-agent-metrics.d.ts.map +1 -1
- package/dist/ai-service/policy-agent-metrics.js +2 -11
- package/dist/ai-service/policy-agent-metrics.js.map +1 -1
- 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 +6 -3
- package/dist/ai-service/security/secret-scanner-service.d.ts.map +1 -1
- package/dist/ai-service/security/secret-scanner-service.js +97 -229
- package/dist/ai-service/security/secret-scanner-service.js.map +1 -1
- package/dist/ai-service/security/secret-scanner.d.ts +5 -28
- package/dist/ai-service/security/secret-scanner.d.ts.map +1 -1
- package/dist/ai-service/security/secret-scanner.js +42 -197
- 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 +0 -49
- 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 +0 -1
- 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 +0 -2
- 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 +3 -74
- 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 +11 -1
- 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 +2 -3
- 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 +5 -25
- 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 +0 -1
- 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 +0 -4
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.js +1 -6
- package/dist/ai-service/state-machine/helpers/stable-peer.js.map +1 -1
- package/dist/ai-service/test-utils/metrics-harness.d.ts +0 -6
- 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 +1 -2
- 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 +0 -1
- package/dist/dev-server-ws-smoke-client.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts +0 -21
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +11 -131
- 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 +12 -2
- package/dist/file-system-helpers.js.map +1 -1
- package/dist/parsing/jsx.d.ts +0 -12
- package/dist/parsing/jsx.d.ts.map +1 -1
- package/dist/parsing/jsx.js +12 -30
- package/dist/parsing/jsx.js.map +1 -1
- package/dist/parsing/page.d.ts.map +1 -1
- package/dist/parsing/page.js +8 -16
- package/dist/parsing/page.js.map +1 -1
- package/dist/plugin-options.d.ts +0 -4
- 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 +1 -2
- package/dist/policy-gate-callback-mapper.d.ts.map +1 -1
- package/dist/policy-gate-callback-mapper.js +5 -3
- package/dist/policy-gate-callback-mapper.js.map +1 -1
- package/dist/policy-gate-run-registry.d.ts +2 -4
- package/dist/policy-gate-run-registry.d.ts.map +1 -1
- package/dist/policy-gate-run-registry.js +2 -17
- 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 +7 -41
- package/dist/policy-gate-runner.js.map +1 -1
- package/dist/router-parser.d.ts +1 -6
- package/dist/router-parser.d.ts.map +1 -1
- package/dist/router-parser.js +17 -72
- 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 +6 -2
- package/dist/source-tracker.js.map +1 -1
- package/dist/sync-service/download.d.ts.map +1 -1
- package/dist/sync-service/download.js +2 -10
- package/dist/sync-service/download.js.map +1 -1
- package/dist/sync-service/index.d.ts +0 -5
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +14 -66
- 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 +4 -8
- 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 +0 -20
- 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 +8 -10
- package/dist/util/log-sanitizer.js.map +1 -1
- package/dist/util/logger.d.ts +0 -2
- package/dist/util/logger.d.ts.map +1 -1
- package/dist/util/logger.js +38 -357
- package/dist/util/logger.js.map +1 -1
- package/dist/util.d.ts +1 -3
- 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
- package/dist/ai-service/agent/tool-result-metrics.d.ts +0 -29
- package/dist/ai-service/agent/tool-result-metrics.d.ts.map +0 -1
- package/dist/ai-service/agent/tool-result-metrics.js +0 -162
- package/dist/ai-service/agent/tool-result-metrics.js.map +0 -1
- package/dist/ai-service/agent/tools/page-edit-guidance.d.ts +0 -2
- package/dist/ai-service/agent/tools/page-edit-guidance.d.ts.map +0 -1
- package/dist/ai-service/agent/tools/page-edit-guidance.js +0 -11
- package/dist/ai-service/agent/tools/page-edit-guidance.js.map +0 -1
- package/dist/ai-service/app-interface/cancellable-exec.d.ts +0 -34
- package/dist/ai-service/app-interface/cancellable-exec.d.ts.map +0 -1
- package/dist/ai-service/app-interface/cancellable-exec.js +0 -98
- package/dist/ai-service/app-interface/cancellable-exec.js.map +0 -1
- package/dist/ai-service/attachments/parse-data-url.d.ts +0 -5
- package/dist/ai-service/attachments/parse-data-url.d.ts.map +0 -1
- package/dist/ai-service/attachments/parse-data-url.js +0 -14
- package/dist/ai-service/attachments/parse-data-url.js.map +0 -1
- package/dist/ai-service/integrations/mention-safe-tag-name.d.ts +0 -12
- package/dist/ai-service/integrations/mention-safe-tag-name.d.ts.map +0 -1
- package/dist/ai-service/integrations/mention-safe-tag-name.js +0 -18
- package/dist/ai-service/integrations/mention-safe-tag-name.js.map +0 -1
- package/dist/ai-service/llm/context-v2/well-formed-text.d.ts +0 -24
- package/dist/ai-service/llm/context-v2/well-formed-text.d.ts.map +0 -1
- package/dist/ai-service/llm/context-v2/well-formed-text.js +0 -73
- package/dist/ai-service/llm/context-v2/well-formed-text.js.map +0 -1
- package/dist/ai-service/policy-gate-error.d.ts +0 -3
- package/dist/ai-service/policy-gate-error.d.ts.map +0 -1
- package/dist/ai-service/policy-gate-error.js +0 -33
- package/dist/ai-service/policy-gate-error.js.map +0 -1
- package/dist/migration-templates/app-fullstack/.gitignore +0 -50
- package/dist/parsing/parse-tsx-module.d.ts +0 -4
- package/dist/parsing/parse-tsx-module.d.ts.map +0 -1
- package/dist/parsing/parse-tsx-module.js +0 -13
- package/dist/parsing/parse-tsx-module.js.map +0 -1
- package/dist/router-parser-metrics.d.ts +0 -2
- package/dist/router-parser-metrics.d.ts.map +0 -1
- package/dist/router-parser-metrics.js +0 -13
- package/dist/router-parser-metrics.js.map +0 -1
|
@@ -11,13 +11,16 @@
|
|
|
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
|
-
*
|
|
14
|
+
* - **Availability gating**: When TruffleHog is not installed, all scans
|
|
15
|
+
* immediately return empty findings without spawning processes or
|
|
16
|
+
* logging errors.
|
|
16
17
|
*/
|
|
17
18
|
import { createHash } from "node:crypto";
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
|
|
19
|
+
import { getErrorMeta, getPrefixedLogger } from "../../util/logger.js";
|
|
20
|
+
import { isTrufflehogAvailable as checkTrufflehogAvailable, runTrufflehog, redactSecrets, } from "./secret-scanner.js";
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// Constants
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
21
24
|
/** Default timeout for a single TruffleHog scan (ms). */
|
|
22
25
|
const DEFAULT_SCAN_TIMEOUT_MS = 10_000;
|
|
23
26
|
/** Maximum number of cached scan results. */
|
|
@@ -26,31 +29,9 @@ const MAX_CACHE_SIZE = 200;
|
|
|
26
29
|
export const CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
27
30
|
/** Maximum concurrent TruffleHog child processes. */
|
|
28
31
|
const MAX_CONCURRENCY = 2;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
}
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
// SecretScannerService
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
54
35
|
/**
|
|
55
36
|
* Singleton service that wraps TruffleHog process spawning with caching,
|
|
56
37
|
* in-flight deduplication, concurrency control, and availability gating.
|
|
@@ -67,15 +48,13 @@ class SecretScannerService {
|
|
|
67
48
|
activeProcesses = 0;
|
|
68
49
|
/** Waiters blocked on a concurrency slot. */
|
|
69
50
|
waitQueue = [];
|
|
51
|
+
/**
|
|
52
|
+
* Tri-state availability flag:
|
|
53
|
+
* - `undefined` = not yet checked
|
|
54
|
+
* - `true` = TruffleHog is installed
|
|
55
|
+
* - `false` = TruffleHog is not installed
|
|
56
|
+
*/
|
|
70
57
|
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");
|
|
79
58
|
/**
|
|
80
59
|
* Scan content for secrets, applying caching and concurrency control.
|
|
81
60
|
*
|
|
@@ -84,32 +63,32 @@ class SecretScannerService {
|
|
|
84
63
|
* @returns Scan result with findings and redacted content
|
|
85
64
|
*/
|
|
86
65
|
async scan(content, options = {}) {
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
66
|
+
const logger = getPrefixedLogger("[secret-scan]");
|
|
67
|
+
const { timeout = DEFAULT_SCAN_TIMEOUT_MS, verifiedOnly = false } = options;
|
|
68
|
+
// 1. Availability gate — only cache positive availability so transient
|
|
69
|
+
// failures (timeouts, SIGTERM) don't permanently disable scanning.
|
|
70
|
+
if (this.available !== true) {
|
|
71
|
+
const isAvailable = await checkTrufflehogAvailable();
|
|
72
|
+
if (isAvailable) {
|
|
73
|
+
this.available = true;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
logger.debug("TruffleHog not available; secret scanning skipped");
|
|
77
|
+
return {
|
|
78
|
+
success: false,
|
|
79
|
+
findings: [],
|
|
80
|
+
error: "Secret scanning unavailable: TruffleHog is not available",
|
|
81
|
+
hasVerifiedSecrets: false,
|
|
82
|
+
hasSecrets: false,
|
|
83
|
+
redactedContent: content,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
103
86
|
}
|
|
104
87
|
// 2. Cache lookup
|
|
105
88
|
const cacheKey = this.hashContent(content, verifiedOnly);
|
|
106
89
|
const cached = this.cache.get(cacheKey);
|
|
107
90
|
if (cached && cached.expiresAt > Date.now()) {
|
|
108
91
|
const findings = cached.findings;
|
|
109
|
-
this.results.add(1, {
|
|
110
|
-
"scan.consumer": options.consumer ?? "unknown",
|
|
111
|
-
"scan.outcome": "cache_hit",
|
|
112
|
-
});
|
|
113
92
|
return {
|
|
114
93
|
success: true,
|
|
115
94
|
findings,
|
|
@@ -118,21 +97,35 @@ class SecretScannerService {
|
|
|
118
97
|
redactedContent: redactSecrets(content, findings),
|
|
119
98
|
};
|
|
120
99
|
}
|
|
121
|
-
// 3.
|
|
100
|
+
// 3. In-flight deduplication — piggyback callers must also handle
|
|
101
|
+
// rejection so they return { success: false } instead of throwing.
|
|
122
102
|
const existing = this.inflight.get(cacheKey);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
103
|
+
if (existing) {
|
|
104
|
+
try {
|
|
105
|
+
const findings = await existing;
|
|
106
|
+
return {
|
|
107
|
+
success: true,
|
|
108
|
+
findings,
|
|
109
|
+
hasVerifiedSecrets: findings.some((f) => f.verified),
|
|
110
|
+
hasSecrets: findings.length > 0,
|
|
111
|
+
redactedContent: redactSecrets(content, findings),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
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
|
+
}
|
|
135
125
|
}
|
|
126
|
+
// 4. Spawn TruffleHog with concurrency control
|
|
127
|
+
const scanPromise = this.runWithConcurrencyControl(content, timeout, verifiedOnly, cacheKey);
|
|
128
|
+
this.inflight.set(cacheKey, scanPromise);
|
|
136
129
|
try {
|
|
137
130
|
const findings = await scanPromise;
|
|
138
131
|
return {
|
|
@@ -144,70 +137,45 @@ class SecretScannerService {
|
|
|
144
137
|
};
|
|
145
138
|
}
|
|
146
139
|
catch (error) {
|
|
140
|
+
logger.error("Secret scan failed", getErrorMeta(error));
|
|
147
141
|
return {
|
|
148
142
|
success: false,
|
|
149
143
|
findings: [],
|
|
150
|
-
error: error instanceof
|
|
151
|
-
? runtimeFailureMessage(error)
|
|
152
|
-
: "Secret scan failed",
|
|
153
|
-
failure: error instanceof TrufflehogError ? error.failure : undefined,
|
|
144
|
+
error: error instanceof Error ? error.message : String(error),
|
|
154
145
|
hasVerifiedSecrets: false,
|
|
155
146
|
hasSecrets: false,
|
|
156
147
|
redactedContent: content,
|
|
157
148
|
};
|
|
158
149
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
async getAvailability() {
|
|
162
|
-
if (this.available === true) {
|
|
163
|
-
return { available: true };
|
|
164
|
-
}
|
|
165
|
-
if (this.pendingAvailability) {
|
|
166
|
-
return this.pendingAvailability;
|
|
150
|
+
finally {
|
|
151
|
+
this.inflight.delete(cacheKey);
|
|
167
152
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Check if TruffleHog is available. Only caches positive results so
|
|
156
|
+
* transient failures don't permanently disable scanning.
|
|
157
|
+
*/
|
|
158
|
+
async isAvailable() {
|
|
159
|
+
if (this.available !== true) {
|
|
160
|
+
const isAvailable = await checkTrufflehogAvailable();
|
|
161
|
+
if (isAvailable) {
|
|
171
162
|
this.available = true;
|
|
172
|
-
this.reportedAvailabilityFailure = undefined;
|
|
173
|
-
}
|
|
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
163
|
}
|
|
195
|
-
return
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
this.pendingAvailability = undefined;
|
|
199
|
-
});
|
|
200
|
-
return this.pendingAvailability;
|
|
164
|
+
return isAvailable;
|
|
165
|
+
}
|
|
166
|
+
return true;
|
|
201
167
|
}
|
|
202
168
|
/**
|
|
203
169
|
* Dispose of the singleton — clears the cache and resets availability.
|
|
204
170
|
*/
|
|
205
171
|
dispose() {
|
|
206
|
-
this.disposed = true;
|
|
207
172
|
this.cache.clear();
|
|
208
173
|
this.inflight.clear();
|
|
209
174
|
this.available = undefined;
|
|
210
175
|
}
|
|
176
|
+
// -----------------------------------------------------------------------
|
|
177
|
+
// Private helpers
|
|
178
|
+
// -----------------------------------------------------------------------
|
|
211
179
|
/**
|
|
212
180
|
* Compute a cache key from content and scan flags.
|
|
213
181
|
*/
|
|
@@ -221,123 +189,18 @@ class SecretScannerService {
|
|
|
221
189
|
* Acquire a concurrency slot, run TruffleHog, cache the result, and
|
|
222
190
|
* release the slot.
|
|
223
191
|
*/
|
|
224
|
-
async runWithConcurrencyControl(content, timeout, verifiedOnly, cacheKey
|
|
225
|
-
await
|
|
192
|
+
async runWithConcurrencyControl(content, timeout, verifiedOnly, cacheKey) {
|
|
193
|
+
await this.acquireSlot();
|
|
226
194
|
try {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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
|
-
}
|
|
195
|
+
const findings = await runTrufflehog(content, timeout, verifiedOnly);
|
|
196
|
+
// Cache successful results
|
|
197
|
+
this.cacheResult(cacheKey, findings);
|
|
198
|
+
return findings;
|
|
282
199
|
}
|
|
283
200
|
finally {
|
|
284
|
-
|
|
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
|
-
}
|
|
201
|
+
this.releaseSlot();
|
|
289
202
|
}
|
|
290
203
|
}
|
|
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
|
-
}
|
|
341
204
|
/**
|
|
342
205
|
* Wait until a concurrency slot is available.
|
|
343
206
|
*/
|
|
@@ -380,6 +243,9 @@ class SecretScannerService {
|
|
|
380
243
|
});
|
|
381
244
|
}
|
|
382
245
|
}
|
|
246
|
+
// ---------------------------------------------------------------------------
|
|
247
|
+
// Module-level singleton
|
|
248
|
+
// ---------------------------------------------------------------------------
|
|
383
249
|
let instance;
|
|
384
250
|
function getInstance() {
|
|
385
251
|
if (!instance) {
|
|
@@ -402,10 +268,12 @@ export async function scanContentForSecrets(content, options = {}) {
|
|
|
402
268
|
return getInstance().scan(content, options);
|
|
403
269
|
}
|
|
404
270
|
/**
|
|
405
|
-
* Checks
|
|
271
|
+
* Checks if TruffleHog is available on the system (cached after first call).
|
|
272
|
+
*
|
|
273
|
+
* @returns Promise resolving to true if TruffleHog is installed
|
|
406
274
|
*/
|
|
407
275
|
export async function isTrufflehogAvailable() {
|
|
408
|
-
return
|
|
276
|
+
return getInstance().isAvailable();
|
|
409
277
|
}
|
|
410
278
|
/**
|
|
411
279
|
* 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,31 +36,6 @@ 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);
|
|
64
39
|
}
|
|
65
40
|
/**
|
|
66
41
|
* Result of a secret scan operation.
|
|
@@ -72,7 +47,6 @@ export interface SecretScanResult {
|
|
|
72
47
|
findings: SecretFinding[];
|
|
73
48
|
/** Error message if scan failed */
|
|
74
49
|
error?: string;
|
|
75
|
-
failure?: TrufflehogFailure;
|
|
76
50
|
/** Whether any verified secrets were found */
|
|
77
51
|
hasVerifiedSecrets: boolean;
|
|
78
52
|
/** Whether any secrets (verified or not) were found */
|
|
@@ -103,8 +77,11 @@ export declare function redactSecrets(content: string, findings: SecretFinding[]
|
|
|
103
77
|
* @returns Promise resolving to array of SecretFinding objects
|
|
104
78
|
*/
|
|
105
79
|
export declare function runTrufflehog(content: string, timeout: number, verifiedOnly: boolean): Promise<SecretFinding[]>;
|
|
106
|
-
/**
|
|
107
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Checks if TruffleHog is available on the system.
|
|
82
|
+
*
|
|
83
|
+
* @returns Promise resolving to true if TruffleHog is installed and accessible
|
|
84
|
+
*/
|
|
108
85
|
export declare function isTrufflehogAvailable(): Promise<boolean>;
|
|
109
86
|
/**
|
|
110
87
|
* 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":"AAAA;;;;;GAKG;AAmCH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,sBAAsB;IACtB,cAAc,CAAC,EAAE;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8FAA8F;IAC9F,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uDAAuD;IACvD,UAAU,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,aAAa,EAAE,GACxB,MAAM,CAoBR;AA4DD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,aAAa,EAAE,CAAC,CAkE1B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAmB9D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAkB;IAExC;;;;OAIG;gBACS,QAAQ,EAAE,aAAa,EAAE;IAOrC;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAc/B;;;;;;;OAOG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAiBnC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;CACF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAmBtE"}
|