@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.
Files changed (337) hide show
  1. package/dist/ai-service/agent/middleware.d.ts +1 -2
  2. package/dist/ai-service/agent/middleware.d.ts.map +1 -1
  3. package/dist/ai-service/agent/middleware.js +2 -3
  4. package/dist/ai-service/agent/middleware.js.map +1 -1
  5. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  6. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +5 -4
  7. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  8. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  9. package/dist/ai-service/agent/tool-message-utils.js +16 -1
  10. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  11. package/dist/ai-service/agent/tool-result-metrics.d.ts +29 -0
  12. package/dist/ai-service/agent/tool-result-metrics.d.ts.map +1 -0
  13. package/dist/ai-service/agent/tool-result-metrics.js +162 -0
  14. package/dist/ai-service/agent/tool-result-metrics.js.map +1 -0
  15. package/dist/ai-service/agent/tools/apis/test-api.d.ts +50 -1
  16. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  17. package/dist/ai-service/agent/tools/apis/test-api.js +132 -10
  18. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  19. package/dist/ai-service/agent/tools/build-delete-file.d.ts +1 -2
  20. package/dist/ai-service/agent/tools/build-delete-file.d.ts.map +1 -1
  21. package/dist/ai-service/agent/tools/build-delete-file.js +2 -0
  22. package/dist/ai-service/agent/tools/build-delete-file.js.map +1 -1
  23. package/dist/ai-service/agent/tools/build-edit-file.d.ts +1 -2
  24. package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
  25. package/dist/ai-service/agent/tools/build-edit-file.js +2 -0
  26. package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
  27. package/dist/ai-service/agent/tools/build-install-packages.d.ts +1 -0
  28. package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
  29. package/dist/ai-service/agent/tools/build-install-packages.js +123 -16
  30. package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
  31. package/dist/ai-service/agent/tools/build-lookup-npm-package.d.ts.map +1 -1
  32. package/dist/ai-service/agent/tools/build-lookup-npm-package.js +4 -16
  33. package/dist/ai-service/agent/tools/build-lookup-npm-package.js.map +1 -1
  34. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +11 -7
  35. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
  36. package/dist/ai-service/agent/tools/build-manage-checklist.js +18 -9
  37. package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
  38. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts +1 -2
  39. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
  40. package/dist/ai-service/agent/tools/build-multi-edit-file.js +2 -0
  41. package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
  42. package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
  43. package/dist/ai-service/agent/tools/build-read-file.js +31 -18
  44. package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
  45. package/dist/ai-service/agent/tools/build-rename-file.d.ts +1 -2
  46. package/dist/ai-service/agent/tools/build-rename-file.d.ts.map +1 -1
  47. package/dist/ai-service/agent/tools/build-rename-file.js +2 -0
  48. package/dist/ai-service/agent/tools/build-rename-file.js.map +1 -1
  49. package/dist/ai-service/agent/tools/build-write-file.d.ts +1 -2
  50. package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
  51. package/dist/ai-service/agent/tools/build-write-file.js +2 -0
  52. package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
  53. package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts +3 -3
  54. package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts.map +1 -1
  55. package/dist/ai-service/agent/tools/databases/dev-database-tasks.js +5 -7
  56. package/dist/ai-service/agent/tools/databases/dev-database-tasks.js.map +1 -1
  57. package/dist/ai-service/agent/tools/debug-cache.d.ts +16 -14
  58. package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
  59. package/dist/ai-service/agent/tools/debug-cache.js +200 -42
  60. package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
  61. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +13 -13
  62. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
  63. package/dist/ai-service/agent/tools/integrations/execute-request.js +52 -20
  64. package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
  65. package/dist/ai-service/agent/tools/integrations/sql-classification.d.ts +7 -1
  66. package/dist/ai-service/agent/tools/integrations/sql-classification.d.ts.map +1 -1
  67. package/dist/ai-service/agent/tools/integrations/sql-classification.js +229 -11
  68. package/dist/ai-service/agent/tools/integrations/sql-classification.js.map +1 -1
  69. package/dist/ai-service/agent/tools/page-edit-guidance.d.ts +2 -0
  70. package/dist/ai-service/agent/tools/page-edit-guidance.d.ts.map +1 -0
  71. package/dist/ai-service/agent/tools/page-edit-guidance.js +11 -0
  72. package/dist/ai-service/agent/tools/page-edit-guidance.js.map +1 -0
  73. package/dist/ai-service/agent/tools/report-security-findings.d.ts +5 -5
  74. package/dist/ai-service/agent/tools.d.ts +32 -0
  75. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  76. package/dist/ai-service/agent/tools.js +54 -33
  77. package/dist/ai-service/agent/tools.js.map +1 -1
  78. package/dist/ai-service/agent/tools2/registry.d.ts +1 -1
  79. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  80. package/dist/ai-service/agent/tools2/registry.js +21 -4
  81. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  82. package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts +2 -2
  83. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  84. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +20 -11
  85. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  86. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.d.ts +4 -0
  87. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.d.ts.map +1 -1
  88. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js +28 -8
  89. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js.map +1 -1
  90. package/dist/ai-service/agent/tools2/tools/update-test-case-status.d.ts +2 -2
  91. package/dist/ai-service/app-interface/cancellable-exec.d.ts +34 -0
  92. package/dist/ai-service/app-interface/cancellable-exec.d.ts.map +1 -0
  93. package/dist/ai-service/app-interface/cancellable-exec.js +98 -0
  94. package/dist/ai-service/app-interface/cancellable-exec.js.map +1 -0
  95. package/dist/ai-service/app-interface/shell.d.ts +20 -3
  96. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  97. package/dist/ai-service/app-interface/shell.js +139 -65
  98. package/dist/ai-service/app-interface/shell.js.map +1 -1
  99. package/dist/ai-service/attachment-upload.d.ts.map +1 -1
  100. package/dist/ai-service/attachment-upload.js +4 -1
  101. package/dist/ai-service/attachment-upload.js.map +1 -1
  102. package/dist/ai-service/attachments/parse-data-url.d.ts +5 -0
  103. package/dist/ai-service/attachments/parse-data-url.d.ts.map +1 -0
  104. package/dist/ai-service/attachments/parse-data-url.js +14 -0
  105. package/dist/ai-service/attachments/parse-data-url.js.map +1 -0
  106. package/dist/ai-service/chat/chat-session-store.d.ts +0 -8
  107. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  108. package/dist/ai-service/chat/chat-session-store.js +34 -611
  109. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  110. package/dist/ai-service/chat/utils.d.ts +2 -6
  111. package/dist/ai-service/chat/utils.d.ts.map +1 -1
  112. package/dist/ai-service/chat/utils.js +2 -95
  113. package/dist/ai-service/chat/utils.js.map +1 -1
  114. package/dist/ai-service/index.d.ts +3 -2
  115. package/dist/ai-service/index.d.ts.map +1 -1
  116. package/dist/ai-service/index.js +138 -48
  117. package/dist/ai-service/index.js.map +1 -1
  118. package/dist/ai-service/integrations/mention-safe-tag-name.d.ts +12 -0
  119. package/dist/ai-service/integrations/mention-safe-tag-name.d.ts.map +1 -0
  120. package/dist/ai-service/integrations/mention-safe-tag-name.js +18 -0
  121. package/dist/ai-service/integrations/mention-safe-tag-name.js.map +1 -0
  122. package/dist/ai-service/integrations/store.d.ts +9 -0
  123. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  124. package/dist/ai-service/integrations/store.js +11 -1
  125. package/dist/ai-service/integrations/store.js.map +1 -1
  126. package/dist/ai-service/llm/client.d.ts.map +1 -1
  127. package/dist/ai-service/llm/client.js +67 -4
  128. package/dist/ai-service/llm/client.js.map +1 -1
  129. package/dist/ai-service/llm/context-v2/adapter.d.ts +1 -0
  130. package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -1
  131. package/dist/ai-service/llm/context-v2/adapter.js +3 -0
  132. package/dist/ai-service/llm/context-v2/adapter.js.map +1 -1
  133. package/dist/ai-service/llm/context-v2/compaction/client-side.d.ts +7 -0
  134. package/dist/ai-service/llm/context-v2/compaction/client-side.d.ts.map +1 -1
  135. package/dist/ai-service/llm/context-v2/compaction/client-side.js +28 -6
  136. package/dist/ai-service/llm/context-v2/compaction/client-side.js.map +1 -1
  137. package/dist/ai-service/llm/context-v2/compaction/compaction-strategy.d.ts +12 -0
  138. package/dist/ai-service/llm/context-v2/compaction/compaction-strategy.d.ts.map +1 -1
  139. package/dist/ai-service/llm/context-v2/compactor.d.ts +8 -0
  140. package/dist/ai-service/llm/context-v2/compactor.d.ts.map +1 -1
  141. package/dist/ai-service/llm/context-v2/compactor.js +15 -3
  142. package/dist/ai-service/llm/context-v2/compactor.js.map +1 -1
  143. package/dist/ai-service/llm/context-v2/config.d.ts.map +1 -1
  144. package/dist/ai-service/llm/context-v2/config.js +1 -0
  145. package/dist/ai-service/llm/context-v2/config.js.map +1 -1
  146. package/dist/ai-service/llm/context-v2/context-metrics.d.ts +44 -1
  147. package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
  148. package/dist/ai-service/llm/context-v2/context-metrics.js +97 -12
  149. package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
  150. package/dist/ai-service/llm/context-v2/context.d.ts +125 -0
  151. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
  152. package/dist/ai-service/llm/context-v2/context.js +478 -14
  153. package/dist/ai-service/llm/context-v2/context.js.map +1 -1
  154. package/dist/ai-service/llm/context-v2/conversation-context.d.ts +12 -0
  155. package/dist/ai-service/llm/context-v2/conversation-context.d.ts.map +1 -1
  156. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -1
  157. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +2 -1
  158. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -1
  159. package/dist/ai-service/llm/context-v2/phase2-session-summarizer.js +3 -3
  160. package/dist/ai-service/llm/context-v2/phase2-session-summarizer.js.map +1 -1
  161. package/dist/ai-service/llm/context-v2/token-tracker.d.ts +49 -1
  162. package/dist/ai-service/llm/context-v2/token-tracker.d.ts.map +1 -1
  163. package/dist/ai-service/llm/context-v2/token-tracker.js +119 -0
  164. package/dist/ai-service/llm/context-v2/token-tracker.js.map +1 -1
  165. package/dist/ai-service/llm/context-v2/truncation-fallback.d.ts.map +1 -1
  166. package/dist/ai-service/llm/context-v2/truncation-fallback.js +2 -1
  167. package/dist/ai-service/llm/context-v2/truncation-fallback.js.map +1 -1
  168. package/dist/ai-service/llm/context-v2/types.d.ts +9 -0
  169. package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
  170. package/dist/ai-service/llm/context-v2/types.js.map +1 -1
  171. package/dist/ai-service/llm/context-v2/well-formed-text.d.ts +24 -0
  172. package/dist/ai-service/llm/context-v2/well-formed-text.d.ts.map +1 -0
  173. package/dist/ai-service/llm/context-v2/well-formed-text.js +73 -0
  174. package/dist/ai-service/llm/context-v2/well-formed-text.js.map +1 -0
  175. package/dist/ai-service/llm/error.d.ts +22 -1
  176. package/dist/ai-service/llm/error.d.ts.map +1 -1
  177. package/dist/ai-service/llm/error.js +159 -22
  178. package/dist/ai-service/llm/error.js.map +1 -1
  179. package/dist/ai-service/llm/stream/empty-tool-call-tracker.d.ts +4 -3
  180. package/dist/ai-service/llm/stream/empty-tool-call-tracker.d.ts.map +1 -1
  181. package/dist/ai-service/llm/stream/empty-tool-call-tracker.js +5 -4
  182. package/dist/ai-service/llm/stream/empty-tool-call-tracker.js.map +1 -1
  183. package/dist/ai-service/llm/stream/idle-monitor.d.ts.map +1 -1
  184. package/dist/ai-service/llm/stream/idle-monitor.js +5 -0
  185. package/dist/ai-service/llm/stream/idle-monitor.js.map +1 -1
  186. package/dist/ai-service/llm/stream/observers/logging.d.ts +6 -0
  187. package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -1
  188. package/dist/ai-service/llm/stream/observers/logging.js +44 -3
  189. package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
  190. package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
  191. package/dist/ai-service/llm/stream/orchestrator.js +28 -4
  192. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
  193. package/dist/ai-service/llm/stream/retry-engine.d.ts +1 -1
  194. package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
  195. package/dist/ai-service/llm/stream/retry-engine.js +9 -1
  196. package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
  197. package/dist/ai-service/llm/stream/session.d.ts +6 -0
  198. package/dist/ai-service/llm/stream/session.d.ts.map +1 -1
  199. package/dist/ai-service/llm/stream/session.js +6 -0
  200. package/dist/ai-service/llm/stream/session.js.map +1 -1
  201. package/dist/ai-service/llm/stream/terminal-reason.d.ts.map +1 -1
  202. package/dist/ai-service/llm/stream/terminal-reason.js +11 -1
  203. package/dist/ai-service/llm/stream/terminal-reason.js.map +1 -1
  204. package/dist/ai-service/llm/stream/wait-state-tracker.d.ts +4 -3
  205. package/dist/ai-service/llm/stream/wait-state-tracker.d.ts.map +1 -1
  206. package/dist/ai-service/llm/stream/wait-state-tracker.js +12 -8
  207. package/dist/ai-service/llm/stream/wait-state-tracker.js.map +1 -1
  208. package/dist/ai-service/policy-agent-metrics.d.ts +2 -1
  209. package/dist/ai-service/policy-agent-metrics.d.ts.map +1 -1
  210. package/dist/ai-service/policy-agent-metrics.js +11 -2
  211. package/dist/ai-service/policy-agent-metrics.js.map +1 -1
  212. package/dist/ai-service/policy-gate-error.d.ts +3 -0
  213. package/dist/ai-service/policy-gate-error.d.ts.map +1 -0
  214. package/dist/ai-service/policy-gate-error.js +33 -0
  215. package/dist/ai-service/policy-gate-error.js.map +1 -0
  216. package/dist/ai-service/resolve-generation-state-for-ui.js +1 -1
  217. package/dist/ai-service/resolve-generation-state-for-ui.js.map +1 -1
  218. package/dist/ai-service/security/secret-scanner-service.d.ts +3 -6
  219. package/dist/ai-service/security/secret-scanner-service.d.ts.map +1 -1
  220. package/dist/ai-service/security/secret-scanner-service.js +229 -97
  221. package/dist/ai-service/security/secret-scanner-service.js.map +1 -1
  222. package/dist/ai-service/security/secret-scanner.d.ts +28 -5
  223. package/dist/ai-service/security/secret-scanner.d.ts.map +1 -1
  224. package/dist/ai-service/security/secret-scanner.js +197 -42
  225. package/dist/ai-service/security/secret-scanner.js.map +1 -1
  226. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
  227. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
  228. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +49 -0
  229. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
  230. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts +1 -1
  231. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts.map +1 -1
  232. package/dist/ai-service/skills/system/third-party-migration/skill.generated.js +1 -0
  233. package/dist/ai-service/skills/system/third-party-migration/skill.generated.js.map +1 -1
  234. package/dist/ai-service/state-machine/clark-fsm.d.ts +2 -0
  235. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  236. package/dist/ai-service/state-machine/clark-fsm.js +1 -1
  237. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  238. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts +1 -1
  239. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  240. package/dist/ai-service/state-machine/handlers/agent-planning.js +74 -3
  241. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  242. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  243. package/dist/ai-service/state-machine/handlers/llm-generating.js +1 -11
  244. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  245. package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.d.ts +3 -2
  246. package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.d.ts.map +1 -1
  247. package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.js +25 -5
  248. package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.js.map +1 -1
  249. package/dist/ai-service/state-machine/helpers/prompt-billing-metrics.d.ts.map +1 -1
  250. package/dist/ai-service/state-machine/helpers/prompt-billing-metrics.js +1 -0
  251. package/dist/ai-service/state-machine/helpers/prompt-billing-metrics.js.map +1 -1
  252. package/dist/ai-service/state-machine/helpers/stable-peer.d.ts +4 -0
  253. package/dist/ai-service/state-machine/helpers/stable-peer.d.ts.map +1 -1
  254. package/dist/ai-service/state-machine/helpers/stable-peer.js +6 -1
  255. package/dist/ai-service/state-machine/helpers/stable-peer.js.map +1 -1
  256. package/dist/ai-service/test-utils/metrics-harness.d.ts +6 -0
  257. package/dist/ai-service/test-utils/metrics-harness.d.ts.map +1 -1
  258. package/dist/ai-service/test-utils/metrics-harness.js.map +1 -1
  259. package/dist/ai-service/transform/api-builder/shared.d.ts.map +1 -1
  260. package/dist/ai-service/transform/api-builder/shared.js +2 -1
  261. package/dist/ai-service/transform/api-builder/shared.js.map +1 -1
  262. package/dist/dev-server-ws-smoke-client.d.ts.map +1 -1
  263. package/dist/dev-server-ws-smoke-client.js +1 -0
  264. package/dist/dev-server-ws-smoke-client.js.map +1 -1
  265. package/dist/file-sync-vite-plugin.d.ts +21 -0
  266. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  267. package/dist/file-sync-vite-plugin.js +131 -11
  268. package/dist/file-sync-vite-plugin.js.map +1 -1
  269. package/dist/file-system-helpers.d.ts +2 -2
  270. package/dist/file-system-helpers.d.ts.map +1 -1
  271. package/dist/file-system-helpers.js +2 -12
  272. package/dist/file-system-helpers.js.map +1 -1
  273. package/dist/migration-templates/app-fullstack/.gitignore +50 -0
  274. package/dist/parsing/jsx.d.ts +12 -0
  275. package/dist/parsing/jsx.d.ts.map +1 -1
  276. package/dist/parsing/jsx.js +30 -12
  277. package/dist/parsing/jsx.js.map +1 -1
  278. package/dist/parsing/page.d.ts.map +1 -1
  279. package/dist/parsing/page.js +16 -8
  280. package/dist/parsing/page.js.map +1 -1
  281. package/dist/parsing/parse-tsx-module.d.ts +4 -0
  282. package/dist/parsing/parse-tsx-module.d.ts.map +1 -0
  283. package/dist/parsing/parse-tsx-module.js +13 -0
  284. package/dist/parsing/parse-tsx-module.js.map +1 -0
  285. package/dist/plugin-options.d.ts +4 -0
  286. package/dist/plugin-options.d.ts.map +1 -1
  287. package/dist/plugin-options.js.map +1 -1
  288. package/dist/policy-gate-callback-mapper.d.ts +2 -1
  289. package/dist/policy-gate-callback-mapper.d.ts.map +1 -1
  290. package/dist/policy-gate-callback-mapper.js +3 -5
  291. package/dist/policy-gate-callback-mapper.js.map +1 -1
  292. package/dist/policy-gate-run-registry.d.ts +4 -2
  293. package/dist/policy-gate-run-registry.d.ts.map +1 -1
  294. package/dist/policy-gate-run-registry.js +17 -2
  295. package/dist/policy-gate-run-registry.js.map +1 -1
  296. package/dist/policy-gate-runner.d.ts +1 -1
  297. package/dist/policy-gate-runner.d.ts.map +1 -1
  298. package/dist/policy-gate-runner.js +41 -7
  299. package/dist/policy-gate-runner.js.map +1 -1
  300. package/dist/router-parser-metrics.d.ts +2 -0
  301. package/dist/router-parser-metrics.d.ts.map +1 -0
  302. package/dist/router-parser-metrics.js +13 -0
  303. package/dist/router-parser-metrics.js.map +1 -0
  304. package/dist/router-parser.d.ts +6 -1
  305. package/dist/router-parser.d.ts.map +1 -1
  306. package/dist/router-parser.js +72 -17
  307. package/dist/router-parser.js.map +1 -1
  308. package/dist/scan-scope-merge.d.ts +1 -1
  309. package/dist/scan-scope-merge.js +1 -1
  310. package/dist/source-tracker.d.ts.map +1 -1
  311. package/dist/source-tracker.js +2 -6
  312. package/dist/source-tracker.js.map +1 -1
  313. package/dist/sync-service/download.d.ts.map +1 -1
  314. package/dist/sync-service/download.js +10 -2
  315. package/dist/sync-service/download.js.map +1 -1
  316. package/dist/sync-service/index.d.ts +5 -0
  317. package/dist/sync-service/index.d.ts.map +1 -1
  318. package/dist/sync-service/index.js +66 -14
  319. package/dist/sync-service/index.js.map +1 -1
  320. package/dist/sync-service/list-dir.d.ts.map +1 -1
  321. package/dist/sync-service/list-dir.js +8 -4
  322. package/dist/sync-service/list-dir.js.map +1 -1
  323. package/dist/sync-service/snapshot/upload-snapshot.d.ts.map +1 -1
  324. package/dist/sync-service/snapshot/upload-snapshot.js +20 -0
  325. package/dist/sync-service/snapshot/upload-snapshot.js.map +1 -1
  326. package/dist/util/log-sanitizer.d.ts.map +1 -1
  327. package/dist/util/log-sanitizer.js +10 -8
  328. package/dist/util/log-sanitizer.js.map +1 -1
  329. package/dist/util/logger.d.ts +2 -0
  330. package/dist/util/logger.d.ts.map +1 -1
  331. package/dist/util/logger.js +357 -38
  332. package/dist/util/logger.js.map +1 -1
  333. package/dist/util.d.ts +3 -1
  334. package/dist/util.d.ts.map +1 -1
  335. package/dist/util.js +2 -2
  336. package/dist/util.js.map +1 -1
  337. 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**: When TruffleHog is not installed, all scans
15
- * immediately return empty findings without spawning processes or
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 if TruffleHog is available on the system (cached after first call).
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;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAY7B,iDAAiD;AACjD,eAAO,MAAM,YAAY,QAAgB,CAAC;AA8Q1C;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAE3B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C"}
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**: When TruffleHog is not installed, all scans
15
- * immediately return empty findings without spawning processes or
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 { getErrorMeta, getPrefixedLogger } from "../../util/logger.js";
20
- import { isTrufflehogAvailable as checkTrufflehogAvailable, runTrufflehog, redactSecrets, } from "./secret-scanner.js";
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
- // SecretScannerService
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 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
- }
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. In-flight deduplication — piggyback callers must also handle
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
- 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
- }
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 Error ? error.message : String(error),
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
- * 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) {
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
- return isAvailable;
165
- }
166
- return true;
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 this.acquireSlot();
224
+ async runWithConcurrencyControl(content, timeout, verifiedOnly, cacheKey, consumers, consumerTypes) {
225
+ await Promise.resolve();
194
226
  try {
195
- const findings = await runTrufflehog(content, timeout, verifiedOnly);
196
- // Cache successful results
197
- this.cacheResult(cacheKey, findings);
198
- return findings;
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
- this.releaseSlot();
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 if TruffleHog is available on the system (cached after first call).
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().isAvailable();
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
- * Checks if TruffleHog is available on the system.
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;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"}
1
+ {"version":3,"file":"secret-scanner.d.ts","sourceRoot":"","sources":["../../../src/ai-service/security/secret-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwCH;;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;IACvB,oFAAoF;IACpF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,qBAAqB,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,CAAC;CACzE;AAED,+EAA+E;AAC/E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EACJ,aAAa,GACb,cAAc,GACd,QAAQ,GACR,UAAU,GACV,aAAa,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GACnB;IACE,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,iBAAiB,GAAG;QAC3B,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;KACjE,CAAC;CACH,CAAC;AAEN,qBAAa,eAAgB,SAAQ,KAAK;IAC5B,QAAQ,CAAC,OAAO,EAAE,iBAAiB;gBAA1B,OAAO,EAAE,iBAAiB;CAIhD;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,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,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;AA2DD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,aAAa,EAAE,CAAC,CA8J1B;AAED,4EAA4E;AAC5E,wBAAsB,2BAA2B,CAC/C,OAAO,SAAO,GACb,OAAO,CAAC,sBAAsB,CAAC,CA6EjC;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE9D;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"}