failproofai 1.0.7-beta.0 → 1.0.7-beta.2

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 (320) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  10. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
  11. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +14 -14
  20. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  30. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/index.html +1 -1
  33. package/.next/standalone/.next/server/app/index.rsc +15 -15
  34. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +14 -14
  35. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  36. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  37. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  38. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +14 -14
  41. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  44. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  47. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  48. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  51. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +7 -7
  54. package/.next/standalone/.next/server/app/settings/page.js +2 -2
  55. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l3yhx4._.js +2 -2
  58. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o07qi9._.js +1 -1
  59. package/.next/standalone/.next/server/chunks/_0tovk6q._.js +1 -1
  60. package/.next/standalone/.next/server/chunks/_0trp3yc._.js +1 -1
  61. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  62. package/.next/standalone/.next/server/chunks/src_hooks_18qtd42._.js +1 -1
  63. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04usis8._.js +2 -2
  64. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__056wjo4._.js +2 -2
  65. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1p28m0u._.js → [root-of-the-server]__0l44ual._.js} +2 -2
  66. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n0xg95._.js +2 -2
  67. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rwtwpm._.js +2 -2
  68. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s_yomn._.js +2 -2
  69. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11mayhe._.js +2 -2
  70. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1pprgri._.js +2 -2
  71. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1q4p5b8._.js +2 -2
  72. package/.next/standalone/.next/server/chunks/ssr/_042cgl1._.js +1 -1
  73. package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
  74. package/.next/standalone/.next/server/chunks/ssr/_0bqoto4._.js +1 -1
  75. package/.next/standalone/.next/server/chunks/ssr/{_0cf1olg._.js → _1mel6y1._.js} +2 -2
  76. package/.next/standalone/.next/server/chunks/ssr/{_135-c3y._.js → _1v-jvrv._.js} +1 -1
  77. package/.next/standalone/.next/server/chunks/ssr/_1zopuov._.js +1 -1
  78. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo.js +2 -2
  79. package/.next/standalone/.next/server/chunks/ssr/app_actions_get-scheduled-audit_ts_0ei9sni._.js +1 -1
  80. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
  81. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  82. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +1 -1
  83. package/.next/standalone/.next/server/chunks/ssr/app_settings_02tf1h4._.js +1 -1
  84. package/.next/standalone/.next/server/chunks/ssr/src_hooks_15t8kqj._.js +1 -1
  85. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1fm2w5z._.js +1 -1
  86. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1j0zy3v._.js +1 -1
  87. package/.next/standalone/.next/server/chunks/ssr/src_hooks_builtin-policies_ts_09j2ndl._.js +1 -1
  88. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  89. package/.next/standalone/.next/server/pages/404.html +1 -1
  90. package/.next/standalone/.next/server/pages/500.html +1 -1
  91. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/server-reference-manifest.json +22 -22
  93. package/.next/standalone/.next/static/chunks/043j99m8ykg__.css +2 -0
  94. package/.next/standalone/.next/static/chunks/{0289oapk24zql.js → 0fqd7m_u81mi5.js} +1 -1
  95. package/.next/standalone/.next/static/chunks/{2tqszh84mp_2l.js → 129ag2bw93bdh.js} +1 -1
  96. package/.next/standalone/.next/static/chunks/{0pyy9m5cm8zku.js → 1qd741hzlmjbo.js} +1 -1
  97. package/.next/standalone/.next/static/chunks/{3vwnzfx9q80yl.js → 2_pltstd8-xgs.js} +1 -1
  98. package/.next/standalone/.next/static/chunks/{3vp7c3knkh8mr.js → 2c8j9l6j_b1ci.js} +1 -1
  99. package/.next/standalone/.next/static/chunks/3-k569wzcli8q.js +1 -0
  100. package/.next/standalone/.next/static/chunks/{3cdkxrukvlvul.js → 3brze37td_wnc.js} +1 -1
  101. package/.next/standalone/.next/static/chunks/{3dnd-_29uiaj3.js → 3otmypm6j_xfo.js} +2 -2
  102. package/.next/standalone/.next/static/chunks/{00i9thnpht4l1.js → 3ugmd_7dyn0id.js} +1 -1
  103. package/.next/standalone/.next/static/chunks/3yxro_r2_o9ad.js +69 -0
  104. package/.next/standalone/PROBE-FOLLOWUP.md +186 -0
  105. package/.next/standalone/app/actions/get-jev-config.ts +38 -23
  106. package/.next/standalone/app/actions/update-jev-config.ts +1 -1
  107. package/.next/standalone/app/settings/jev-panel.tsx +33 -29
  108. package/.next/standalone/package.json +10 -10
  109. package/.next/standalone/sdk/python/skill/SKILL.md +60 -14
  110. package/.next/standalone/sdk/python/skill/agents/openai.yaml +2 -1
  111. package/.next/standalone/sdk/python/skill/references/evaluator.md +255 -0
  112. package/.next/standalone/sdk/python/skill/references/events.md +17 -8
  113. package/.next/standalone/sdk/python/skill/references/frameworks.md +3 -0
  114. package/.next/standalone/sdk/python/skill/references/install.md +3 -0
  115. package/.next/standalone/sdk/python/skill/references/integration.md +6 -2
  116. package/.next/standalone/sdk/python/skill/references/typescript.md +568 -0
  117. package/.next/standalone/sdk/typescript/CHANGELOG.md +119 -0
  118. package/.next/standalone/sdk/typescript/LICENSE +42 -0
  119. package/.next/standalone/sdk/typescript/README.md +552 -0
  120. package/.next/standalone/sdk/typescript/eslint.config.mjs +59 -0
  121. package/.next/standalone/sdk/typescript/examples/research-agent.ts +197 -0
  122. package/.next/standalone/sdk/typescript/integration/ai.test.ts +920 -0
  123. package/.next/standalone/sdk/typescript/integration/fixtures/ai-4/agent.ts +337 -0
  124. package/.next/standalone/sdk/typescript/integration/fixtures/ai-4/package-lock.json +281 -0
  125. package/.next/standalone/sdk/typescript/integration/fixtures/ai-4/package.json +13 -0
  126. package/.next/standalone/sdk/typescript/integration/fixtures/ai-4/surfaces.ts +605 -0
  127. package/.next/standalone/sdk/typescript/integration/fixtures/ai-4/tsconfig.json +12 -0
  128. package/.next/standalone/sdk/typescript/integration/fixtures/ai-4/tsconfig.surfaces.json +4 -0
  129. package/.next/standalone/sdk/typescript/integration/fixtures/ai-5/agent.ts +342 -0
  130. package/.next/standalone/sdk/typescript/integration/fixtures/ai-5/package-lock.json +168 -0
  131. package/.next/standalone/sdk/typescript/integration/fixtures/ai-5/package.json +13 -0
  132. package/.next/standalone/sdk/typescript/integration/fixtures/ai-5/surfaces.ts +628 -0
  133. package/.next/standalone/sdk/typescript/integration/fixtures/ai-5/tsconfig.json +12 -0
  134. package/.next/standalone/sdk/typescript/integration/fixtures/ai-5/tsconfig.surfaces.json +4 -0
  135. package/.next/standalone/sdk/typescript/integration/fixtures/ai-6/agent.ts +346 -0
  136. package/.next/standalone/sdk/typescript/integration/fixtures/ai-6/package-lock.json +156 -0
  137. package/.next/standalone/sdk/typescript/integration/fixtures/ai-6/package.json +13 -0
  138. package/.next/standalone/sdk/typescript/integration/fixtures/ai-6/surfaces.ts +651 -0
  139. package/.next/standalone/sdk/typescript/integration/fixtures/ai-6/tsconfig.json +12 -0
  140. package/.next/standalone/sdk/typescript/integration/fixtures/ai-6/tsconfig.surfaces.json +4 -0
  141. package/.next/standalone/sdk/typescript/integration/fixtures/ai-7/agent.ts +350 -0
  142. package/.next/standalone/sdk/typescript/integration/fixtures/ai-7/package-lock.json +153 -0
  143. package/.next/standalone/sdk/typescript/integration/fixtures/ai-7/package.json +13 -0
  144. package/.next/standalone/sdk/typescript/integration/fixtures/ai-7/surfaces.ts +651 -0
  145. package/.next/standalone/sdk/typescript/integration/fixtures/ai-7/tsconfig.json +12 -0
  146. package/.next/standalone/sdk/typescript/integration/fixtures/ai-7/tsconfig.surfaces.json +4 -0
  147. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-0.3/agent.ts +623 -0
  148. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-0.3/package-lock.json +463 -0
  149. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-0.3/package.json +15 -0
  150. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-0.3/tsconfig.json +12 -0
  151. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-1/agent-v1.ts +99 -0
  152. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-1/agent.ts +623 -0
  153. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-1/package-lock.json +336 -0
  154. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-1/package.json +15 -0
  155. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-1/tsconfig.json +12 -0
  156. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-dup-core/agent.ts +96 -0
  157. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-dup-core/package-lock.json +579 -0
  158. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-dup-core/package.json +15 -0
  159. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-dup-core/tsconfig.json +12 -0
  160. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-dup-core/vendor/lc-weather-provider/index.cjs +53 -0
  161. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-dup-core/vendor/lc-weather-provider/index.mjs +55 -0
  162. package/.next/standalone/sdk/typescript/integration/fixtures/langchain-dup-core/vendor/lc-weather-provider/package.json +18 -0
  163. package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.11/agent.ts +659 -0
  164. package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.11/package-lock.json +635 -0
  165. package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.11/package.json +15 -0
  166. package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.11/tsconfig.json +12 -0
  167. package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.12/agent.ts +659 -0
  168. package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.12/package-lock.json +553 -0
  169. package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.12/package.json +15 -0
  170. package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.12/tsconfig.json +12 -0
  171. package/.next/standalone/sdk/typescript/integration/fixtures/mastra-0/agent.ts +877 -0
  172. package/.next/standalone/sdk/typescript/integration/fixtures/mastra-0/mcp-server.mjs +66 -0
  173. package/.next/standalone/sdk/typescript/integration/fixtures/mastra-0/package-lock.json +6417 -0
  174. package/.next/standalone/sdk/typescript/integration/fixtures/mastra-0/package.json +15 -0
  175. package/.next/standalone/sdk/typescript/integration/fixtures/mastra-0/tsconfig.json +12 -0
  176. package/.next/standalone/sdk/typescript/integration/fixtures/mastra-1/agent.ts +872 -0
  177. package/.next/standalone/sdk/typescript/integration/fixtures/mastra-1/mcp-server.mjs +66 -0
  178. package/.next/standalone/sdk/typescript/integration/fixtures/mastra-1/package-lock.json +2540 -0
  179. package/.next/standalone/sdk/typescript/integration/fixtures/mastra-1/package.json +15 -0
  180. package/.next/standalone/sdk/typescript/integration/fixtures/mastra-1/tsconfig.json +12 -0
  181. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/app/actions.ts +18 -0
  182. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/app/api/ai/route.ts +42 -0
  183. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/app/api/edge/route.ts +29 -0
  184. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/app/api/langgraph/route.ts +21 -0
  185. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/app/api/llamaindex/route.ts +11 -0
  186. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/app/api/mastra/route.ts +19 -0
  187. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/app/api/status/route.ts +7 -0
  188. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/app/layout.tsx +9 -0
  189. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/app/page.tsx +15 -0
  190. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/instrumentation.ts +15 -0
  191. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/lib/ai.ts +61 -0
  192. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/lib/langgraph.ts +68 -0
  193. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/lib/llamaindex.ts +98 -0
  194. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/lib/mastra.ts +90 -0
  195. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/next.config.ts +52 -0
  196. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/package-lock.json +4343 -0
  197. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/package.json +28 -0
  198. package/.next/standalone/sdk/typescript/integration/fixtures/runtimes/agent.ts +51 -0
  199. package/.next/standalone/sdk/typescript/integration/fixtures/runtimes/deno-npm.ts +76 -0
  200. package/.next/standalone/sdk/typescript/integration/fixtures/runtimes/package-lock.json +484 -0
  201. package/.next/standalone/sdk/typescript/integration/fixtures/runtimes/package.json +15 -0
  202. package/.next/standalone/sdk/typescript/integration/fixtures/types/agent.ts +79 -0
  203. package/.next/standalone/sdk/typescript/integration/fixtures/types/package-lock.json +740 -0
  204. package/.next/standalone/sdk/typescript/integration/fixtures/types/package.json +11 -0
  205. package/.next/standalone/sdk/typescript/integration/fixtures/vanilla/agent.ts +197 -0
  206. package/.next/standalone/sdk/typescript/integration/fixtures/vanilla/package-lock.json +70 -0
  207. package/.next/standalone/sdk/typescript/integration/fixtures/vanilla/package.json +12 -0
  208. package/.next/standalone/sdk/typescript/integration/fixtures/vanilla/tsconfig.json +12 -0
  209. package/.next/standalone/sdk/typescript/integration/global-setup.ts +29 -0
  210. package/.next/standalone/sdk/typescript/integration/harness.ts +451 -0
  211. package/.next/standalone/sdk/typescript/integration/langchain.test.ts +682 -0
  212. package/.next/standalone/sdk/typescript/integration/llamaindex.test.ts +709 -0
  213. package/.next/standalone/sdk/typescript/integration/mastra-coverage.test.ts +386 -0
  214. package/.next/standalone/sdk/typescript/integration/mastra.test.ts +311 -0
  215. package/.next/standalone/sdk/typescript/integration/nextjs.test.ts +341 -0
  216. package/.next/standalone/sdk/typescript/integration/runtime-parity.ts +180 -0
  217. package/.next/standalone/sdk/typescript/integration/runtimes.bun.test.ts +15 -0
  218. package/.next/standalone/sdk/typescript/integration/runtimes.core.test.ts +113 -0
  219. package/.next/standalone/sdk/typescript/integration/runtimes.deno.test.ts +19 -0
  220. package/.next/standalone/sdk/typescript/integration/types.test.ts +141 -0
  221. package/.next/standalone/sdk/typescript/integration/vanilla.test.ts +255 -0
  222. package/.next/standalone/sdk/typescript/package-lock.json +2640 -0
  223. package/.next/standalone/sdk/typescript/package.json +401 -0
  224. package/.next/standalone/sdk/typescript/scripts/finalize-build.mjs +123 -0
  225. package/.next/standalone/sdk/typescript/scripts/release.mjs +177 -0
  226. package/.next/standalone/sdk/typescript/src/clock.ts +58 -0
  227. package/.next/standalone/sdk/typescript/src/context.ts +214 -0
  228. package/.next/standalone/sdk/typescript/src/edge/adapter.ts +18 -0
  229. package/.next/standalone/sdk/typescript/src/edge/ai.ts +116 -0
  230. package/.next/standalone/sdk/typescript/src/edge/index.ts +238 -0
  231. package/.next/standalone/sdk/typescript/src/edge/langchain.ts +18 -0
  232. package/.next/standalone/sdk/typescript/src/edge/llamaindex.ts +12 -0
  233. package/.next/standalone/sdk/typescript/src/edge/mastra.ts +17 -0
  234. package/.next/standalone/sdk/typescript/src/edge/notice.ts +33 -0
  235. package/.next/standalone/sdk/typescript/src/environment.ts +75 -0
  236. package/.next/standalone/sdk/typescript/src/evaluator/authoring.ts +480 -0
  237. package/.next/standalone/sdk/typescript/src/evaluator/cli.ts +96 -0
  238. package/.next/standalone/sdk/typescript/src/evaluator/client.ts +421 -0
  239. package/.next/standalone/sdk/typescript/src/evaluator/expression.ts +1292 -0
  240. package/.next/standalone/sdk/typescript/src/evaluator/index.ts +144 -0
  241. package/.next/standalone/sdk/typescript/src/evaluator/protocol.ts +747 -0
  242. package/.next/standalone/sdk/typescript/src/evaluator/runtime.ts +930 -0
  243. package/.next/standalone/sdk/typescript/src/evaluator/sandbox-worker.ts +171 -0
  244. package/.next/standalone/sdk/typescript/src/evaluator/source-limits.ts +27 -0
  245. package/.next/standalone/sdk/typescript/src/evaluator/source.ts +509 -0
  246. package/.next/standalone/sdk/typescript/src/events.ts +879 -0
  247. package/.next/standalone/sdk/typescript/src/exit.ts +117 -0
  248. package/.next/standalone/sdk/typescript/src/index.ts +186 -0
  249. package/.next/standalone/sdk/typescript/src/integrations/ai.ts +1566 -0
  250. package/.next/standalone/sdk/typescript/src/integrations/compat.ts +322 -0
  251. package/.next/standalone/sdk/typescript/src/integrations/core.ts +1321 -0
  252. package/.next/standalone/sdk/typescript/src/integrations/index.ts +355 -0
  253. package/.next/standalone/sdk/typescript/src/integrations/langchain.ts +2340 -0
  254. package/.next/standalone/sdk/typescript/src/integrations/llamaindex.ts +2111 -0
  255. package/.next/standalone/sdk/typescript/src/integrations/mastra.ts +1802 -0
  256. package/.next/standalone/sdk/typescript/src/logger.ts +98 -0
  257. package/.next/standalone/sdk/typescript/src/next.ts +115 -0
  258. package/.next/standalone/sdk/typescript/src/node-require.ts +446 -0
  259. package/.next/standalone/sdk/typescript/src/redact.ts +305 -0
  260. package/.next/standalone/sdk/typescript/src/resolver.ts +120 -0
  261. package/.next/standalone/sdk/typescript/src/runtime.ts +29 -0
  262. package/.next/standalone/sdk/typescript/src/schema.ts +410 -0
  263. package/.next/standalone/sdk/typescript/src/scopes.ts +701 -0
  264. package/.next/standalone/sdk/typescript/src/shared.ts +33 -0
  265. package/.next/standalone/sdk/typescript/src/version.ts +5 -0
  266. package/.next/standalone/sdk/typescript/src/writer.ts +934 -0
  267. package/.next/standalone/sdk/typescript/test/adapters.test.ts +397 -0
  268. package/.next/standalone/sdk/typescript/test/ai.test.ts +1076 -0
  269. package/.next/standalone/sdk/typescript/test/copies.test.ts +204 -0
  270. package/.next/standalone/sdk/typescript/test/edge.test.ts +183 -0
  271. package/.next/standalone/sdk/typescript/test/evaluator-client.test.ts +234 -0
  272. package/.next/standalone/sdk/typescript/test/evaluator-protocol.test.ts +225 -0
  273. package/.next/standalone/sdk/typescript/test/events.test.ts +193 -0
  274. package/.next/standalone/sdk/typescript/test/expression.test.ts +181 -0
  275. package/.next/standalone/sdk/typescript/test/global-setup.ts +26 -0
  276. package/.next/standalone/sdk/typescript/test/helpers.ts +130 -0
  277. package/.next/standalone/sdk/typescript/test/integrations.test.ts +369 -0
  278. package/.next/standalone/sdk/typescript/test/langchain-copies.test.ts +204 -0
  279. package/.next/standalone/sdk/typescript/test/langchain.test.ts +999 -0
  280. package/.next/standalone/sdk/typescript/test/llamaindex.test.ts +1760 -0
  281. package/.next/standalone/sdk/typescript/test/mastra-coverage.test.ts +501 -0
  282. package/.next/standalone/sdk/typescript/test/mastra-lifecycle.test.ts +479 -0
  283. package/.next/standalone/sdk/typescript/test/mastra.test.ts +285 -0
  284. package/.next/standalone/sdk/typescript/test/next.test.ts +109 -0
  285. package/.next/standalone/sdk/typescript/test/packaging.test.ts +312 -0
  286. package/.next/standalone/sdk/typescript/test/redaction.test.ts +171 -0
  287. package/.next/standalone/sdk/typescript/test/runtimes.test.ts +101 -0
  288. package/.next/standalone/sdk/typescript/test/sandbox.test.ts +189 -0
  289. package/.next/standalone/sdk/typescript/test/scopes.test.ts +271 -0
  290. package/.next/standalone/sdk/typescript/test/setup.ts +19 -0
  291. package/.next/standalone/sdk/typescript/test/skill-snippets.test.ts +73 -0
  292. package/.next/standalone/sdk/typescript/test/spool-contract.test.ts +124 -0
  293. package/.next/standalone/sdk/typescript/test/tracker-bounds.test.ts +191 -0
  294. package/.next/standalone/sdk/typescript/test/wire-format.test.ts +214 -0
  295. package/.next/standalone/sdk/typescript/test/writer.test.ts +407 -0
  296. package/.next/standalone/sdk/typescript/tsconfig.build.json +15 -0
  297. package/.next/standalone/sdk/typescript/tsconfig.cjs.json +19 -0
  298. package/.next/standalone/sdk/typescript/tsconfig.json +28 -0
  299. package/.next/standalone/sdk/typescript/vitest.config.ts +33 -0
  300. package/.next/standalone/sdk/typescript/vitest.integration.config.ts +23 -0
  301. package/.next/standalone/server.js +1 -1
  302. package/README.md +2 -2
  303. package/dist/cli.mjs +225 -30
  304. package/dist/worker.mjs +120 -14
  305. package/package.json +10 -10
  306. package/scripts/build-policy-pack.mjs +14 -0
  307. package/src/audit/features.ts +3 -2
  308. package/src/hooks/builtin-policies.ts +156 -5
  309. package/src/hooks/jev-cli.ts +57 -1
  310. package/src/hooks/manager.ts +1 -1
  311. package/src/hooks/pack-cli.ts +191 -24
  312. package/src/hooks/pack-store.ts +1 -1
  313. package/src/hooks/policy-catalog.ts +148 -9
  314. package/src/hooks/types.ts +1 -1
  315. package/.next/standalone/.next/static/chunks/15heikmy3yjzc.js +0 -1
  316. package/.next/standalone/.next/static/chunks/285spx855h_3r.css +0 -2
  317. package/.next/standalone/.next/static/chunks/2plg9qae1yejv.js +0 -69
  318. /package/.next/standalone/.next/static/{qbVI48kgBOf9CTOKcFIk2 → gbEOjBgZAxF2UIUwZVHNu}/_buildManifest.js +0 -0
  319. /package/.next/standalone/.next/static/{qbVI48kgBOf9CTOKcFIk2 → gbEOjBgZAxF2UIUwZVHNu}/_clientMiddlewareManifest.js +0 -0
  320. /package/.next/standalone/.next/static/{qbVI48kgBOf9CTOKcFIk2 → gbEOjBgZAxF2UIUwZVHNu}/_ssgManifest.js +0 -0
package/dist/cli.mjs CHANGED
@@ -29,12 +29,12 @@ var __esm = (fn, res, err) => () => {
29
29
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
30
30
 
31
31
  // package.json
32
- var version2 = "1.0.7-beta.0", package_default;
32
+ var version2 = "1.0.7-beta.2", package_default;
33
33
  var init_package = __esm(() => {
34
34
  package_default = {
35
35
  name: "failproofai",
36
36
  version: version2,
37
- description: "Observability and enforcement for AI agent harnesses. 39 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",
37
+ description: "Observability and enforcement for AI agent harnesses. 40 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",
38
38
  bin: {
39
39
  failproofai: "./dist/cli.mjs",
40
40
  failproofaid: "./bin/failproofaid-shim.mjs"
@@ -155,16 +155,16 @@ var init_package = __esm(() => {
155
155
  browserslist: "4.28.8"
156
156
  },
157
157
  optionalDependencies: {
158
- "@failproofai/failproofaid-linux-x64": "1.0.7-beta.0",
159
- "@failproofai/failproofaid-linux-arm64": "1.0.7-beta.0",
160
- "@failproofai/failproofaid-darwin-x64": "1.0.7-beta.0",
161
- "@failproofai/failproofaid-darwin-arm64": "1.0.7-beta.0"
158
+ "@failproofai/failproofaid-linux-x64": "1.0.7-beta.2",
159
+ "@failproofai/failproofaid-linux-arm64": "1.0.7-beta.2",
160
+ "@failproofai/failproofaid-darwin-x64": "1.0.7-beta.2",
161
+ "@failproofai/failproofaid-darwin-arm64": "1.0.7-beta.2"
162
162
  },
163
163
  failproofaidBinaries: {
164
- "linux-x64": "3ac234868fe9149179c32981da9ae1209371e98df7ffb09c6a4947664a3d6857",
165
- "linux-arm64": "3603faac5741c321a63ba5a963e0cb4bb38c84663a63b53f764faae020116f90",
166
- "darwin-x64": "c8a5b32a1e97b5a7f76ce4e42c78f0d566d108be65fdca3c6cd59c405f39b946",
167
- "darwin-arm64": "255ac741c3ee3069591b1eb8bbf397baa0722ef240b83a8540b73f3f1b35722c"
164
+ "linux-x64": "5362ab6a4cfb23d1eee598aac67aedd9e43351e62724ee1c6b40c4fc8021c08f",
165
+ "linux-arm64": "f14a2548b41e14ad32b7fdd03a27ffe7160da1046e422e1f651099371b0d27e5",
166
+ "darwin-x64": "14189cade04f17cf5278bd8061a5ec0c2a2381aa21944ae0d05e8c35b98c2816",
167
+ "darwin-arm64": "4ba9f5c321894d953407efa3404f0deec07dccfd7db7bc2511bb35226816b583"
168
168
  }
169
169
  };
170
170
  });
@@ -1912,7 +1912,8 @@ var init_policy_catalog = __esm(() => {
1912
1912
  impact: "Catches catastrophic `rm -rf /` and Windows equivalents.",
1913
1913
  description: "Prevent catastrophic deletions",
1914
1914
  match: { events: ["PreToolUse"], toolNames: ["Bash"] },
1915
- authority: "hard",
1915
+ authority: "reviewable",
1916
+ reviewedBy: ["destructive-deletion"],
1916
1917
  defaultEnabled: false,
1917
1918
  category: "Dangerous Commands",
1918
1919
  params: {
@@ -1943,7 +1944,8 @@ var init_policy_catalog = __esm(() => {
1943
1944
  impact: "kubectl can change live cluster state — gated unless allow-listed.",
1944
1945
  description: "Block kubectl commands (Kubernetes cluster mutations)",
1945
1946
  match: { events: ["PreToolUse"], toolNames: ["Bash"] },
1946
- authority: "hard",
1947
+ authority: "reviewable",
1948
+ reviewedBy: ["production-infra-change"],
1947
1949
  defaultEnabled: false,
1948
1950
  category: "Infra Commands",
1949
1951
  params: {
@@ -1960,7 +1962,8 @@ var init_policy_catalog = __esm(() => {
1960
1962
  impact: "Terraform mutates real infrastructure — gated unless allow-listed.",
1961
1963
  description: "Block terraform and tofu (OpenTofu) commands",
1962
1964
  match: { events: ["PreToolUse"], toolNames: ["Bash"] },
1963
- authority: "hard",
1965
+ authority: "reviewable",
1966
+ reviewedBy: ["production-infra-change"],
1964
1967
  defaultEnabled: false,
1965
1968
  category: "Infra Commands",
1966
1969
  params: {
@@ -1977,7 +1980,8 @@ var init_policy_catalog = __esm(() => {
1977
1980
  impact: "AWS CLI can spend money or break prod — gated.",
1978
1981
  description: "Block aws CLI commands",
1979
1982
  match: { events: ["PreToolUse"], toolNames: ["Bash"] },
1980
- authority: "hard",
1983
+ authority: "reviewable",
1984
+ reviewedBy: ["production-infra-change"],
1981
1985
  defaultEnabled: false,
1982
1986
  category: "Infra Commands",
1983
1987
  params: {
@@ -1994,7 +1998,8 @@ var init_policy_catalog = __esm(() => {
1994
1998
  impact: "gcloud can spend money or break prod — gated.",
1995
1999
  description: "Block gcloud (Google Cloud) CLI commands",
1996
2000
  match: { events: ["PreToolUse"], toolNames: ["Bash"] },
1997
- authority: "hard",
2001
+ authority: "reviewable",
2002
+ reviewedBy: ["production-infra-change"],
1998
2003
  defaultEnabled: false,
1999
2004
  category: "Infra Commands",
2000
2005
  params: {
@@ -2011,7 +2016,8 @@ var init_policy_catalog = __esm(() => {
2011
2016
  impact: "az can spend money or break prod — gated.",
2012
2017
  description: "Block az (Azure) CLI commands",
2013
2018
  match: { events: ["PreToolUse"], toolNames: ["Bash"] },
2014
- authority: "hard",
2019
+ authority: "reviewable",
2020
+ reviewedBy: ["production-infra-change"],
2015
2021
  defaultEnabled: false,
2016
2022
  category: "Infra Commands",
2017
2023
  params: {
@@ -2028,7 +2034,8 @@ var init_policy_catalog = __esm(() => {
2028
2034
  impact: "Helm releases mutate cluster state — gated.",
2029
2035
  description: "Block helm commands",
2030
2036
  match: { events: ["PreToolUse"], toolNames: ["Bash"] },
2031
- authority: "hard",
2037
+ authority: "reviewable",
2038
+ reviewedBy: ["production-infra-change"],
2032
2039
  defaultEnabled: false,
2033
2040
  category: "Infra Commands",
2034
2041
  params: {
@@ -2062,7 +2069,8 @@ var init_policy_catalog = __esm(() => {
2062
2069
  impact: "Stops the agent from creating `.pem`, `id_rsa`, `credentials.json`, etc.",
2063
2070
  description: "Block writing secret key files",
2064
2071
  match: { events: ["PreToolUse"], toolNames: ["Write"] },
2065
- authority: "hard",
2072
+ authority: "reviewable",
2073
+ reviewedBy: ["secret-exposure"],
2066
2074
  defaultEnabled: false,
2067
2075
  category: "Dangerous Commands",
2068
2076
  params: {
@@ -2096,7 +2104,8 @@ var init_policy_catalog = __esm(() => {
2096
2104
  impact: "Force-pushes rewrite history and can clobber teammates' work.",
2097
2105
  description: "Prevent force-pushing to any branch",
2098
2106
  match: { events: ["PreToolUse"], toolNames: ["Bash"] },
2099
- authority: "hard",
2107
+ authority: "reviewable",
2108
+ reviewedBy: ["git-history-rewrite"],
2100
2109
  defaultEnabled: false,
2101
2110
  category: "Git"
2102
2111
  },
@@ -2138,6 +2147,23 @@ var init_policy_catalog = __esm(() => {
2138
2147
  defaultEnabled: false,
2139
2148
  category: "Git"
2140
2149
  },
2150
+ {
2151
+ name: "warn-git-clean",
2152
+ displayTitle: "Tried to delete untracked or ignored files with git clean",
2153
+ impact: "`git clean -fdx` takes `.env`, local config and unstaged work — git never had a copy of any of it.",
2154
+ description: "Warns before git clean deletes untracked directories (-d) or ignored files (-x / -X)",
2155
+ match: { events: ["PreToolUse"], toolNames: ["Bash"] },
2156
+ authority: "hard",
2157
+ defaultEnabled: false,
2158
+ category: "Git",
2159
+ params: {
2160
+ destructiveFlags: {
2161
+ type: "string[]",
2162
+ description: "git clean flag letters that make it worth warning about, checked alongside --force. Narrow to ['x','X'] to allow `git clean -fd`, or widen with 'f' to warn on a bare `git clean -f`.",
2163
+ default: ["d", "x", "X"]
2164
+ }
2165
+ }
2166
+ },
2141
2167
  {
2142
2168
  name: "warn-all-files-staged",
2143
2169
  displayTitle: "Staged all files with git add -A / .",
@@ -3288,7 +3314,7 @@ function stripShellQuoting(command) {
3288
3314
  const ansiDecoded = joined.replace(/\$'((?:[^'\\]|\\.)*)'/g, (_, body) => decodeAnsiC(body));
3289
3315
  return ansiDecoded.replace(/\\(.)/g, "$1").replace(/['"]/g, "");
3290
3316
  }
3291
- function gitSubcommand(args) {
3317
+ function gitSubcommandIndex(args) {
3292
3318
  for (let i = 0;i < args.length; i++) {
3293
3319
  const arg = args[i];
3294
3320
  if (GIT_FLAGS_WITH_OPERANDS.has(arg)) {
@@ -3297,9 +3323,13 @@ function gitSubcommand(args) {
3297
3323
  }
3298
3324
  if (arg.startsWith("-"))
3299
3325
  continue;
3300
- return arg;
3326
+ return i;
3301
3327
  }
3302
- return;
3328
+ return -1;
3329
+ }
3330
+ function gitSubcommand(args) {
3331
+ const i = gitSubcommandIndex(args);
3332
+ return i < 0 ? undefined : args[i];
3303
3333
  }
3304
3334
  function globCouldNameState(raw) {
3305
3335
  const stripped = raw.replace(/^[()]+|[()]+$/g, "");
@@ -4415,6 +4445,77 @@ function warnGitStashDrop(ctx) {
4415
4445
  }
4416
4446
  return allow();
4417
4447
  }
4448
+ function readGitCleanFlags(args) {
4449
+ const letters = new Set;
4450
+ let force = false;
4451
+ let dryRun = false;
4452
+ let sawEndOfOptions = false;
4453
+ for (const token of args) {
4454
+ if (token === "--") {
4455
+ sawEndOfOptions = true;
4456
+ continue;
4457
+ }
4458
+ if (sawEndOfOptions)
4459
+ continue;
4460
+ if (token === "--force") {
4461
+ force = true;
4462
+ continue;
4463
+ }
4464
+ if (token === "--dry-run") {
4465
+ dryRun = true;
4466
+ continue;
4467
+ }
4468
+ if (token.startsWith("--"))
4469
+ continue;
4470
+ if (!SHORT_FLAG_CLUSTER_RE.test(token))
4471
+ continue;
4472
+ for (const letter of token.slice(1)) {
4473
+ if (letter === "f")
4474
+ force = true;
4475
+ if (letter === "n")
4476
+ dryRun = true;
4477
+ letters.add(letter);
4478
+ }
4479
+ }
4480
+ if (force)
4481
+ letters.add("f");
4482
+ return { force, dryRun, letters };
4483
+ }
4484
+ function gitCleanForceWaived(globalOptions) {
4485
+ for (let i = 0;i < globalOptions.length; i++) {
4486
+ const token = globalOptions[i];
4487
+ const value = token === "-c" ? globalOptions[i + 1] : token.startsWith("-c") ? token.slice(2) : undefined;
4488
+ if (value !== undefined && GIT_CLEAN_FORCE_WAIVED_RE.test(value))
4489
+ return true;
4490
+ }
4491
+ return false;
4492
+ }
4493
+ function warnGitClean(ctx) {
4494
+ if (ctx.toolName !== "Bash")
4495
+ return allow();
4496
+ const destructiveFlags = ctx.params?.destructiveFlags ?? GIT_CLEAN_DESTRUCTIVE_FLAGS;
4497
+ if (destructiveFlags.length === 0)
4498
+ return allow();
4499
+ for (const segment of shellSegments(getCommand(ctx))) {
4500
+ const tokens = parseArgvTokens(segment);
4501
+ const gitIdx = tokens.findIndex((t) => GIT_CMD_RE.test(t));
4502
+ if (gitIdx < 0)
4503
+ continue;
4504
+ const args = tokens.slice(gitIdx + 1);
4505
+ const subIdx = gitSubcommandIndex(args);
4506
+ if (subIdx < 0 || args[subIdx] !== "clean")
4507
+ continue;
4508
+ const flags = readGitCleanFlags(args.slice(subIdx + 1));
4509
+ if (flags.dryRun)
4510
+ continue;
4511
+ if (!flags.force && !gitCleanForceWaived(args.slice(0, subIdx)))
4512
+ continue;
4513
+ if (!destructiveFlags.some((f) => flags.letters.has(f)))
4514
+ continue;
4515
+ return instruct("STOP: This command deletes untracked files from the working tree (git clean). Git has no copy of " + "untracked or ignored files, so nothing it removes can be recovered: -d takes whole untracked " + "directories, and -x / -X also take .gitignore'd files such as .env, local config and scratch work. " + "Re-run it with --dry-run and confirm the exact paths with the user before executing.");
4516
+ }
4517
+ return allow();
4518
+ }
4418
4519
  function warnAllFilesStaged(ctx) {
4419
4520
  if (ctx.toolName !== "Bash")
4420
4521
  return allow();
@@ -4800,7 +4901,7 @@ function registerBuiltinPolicies(enabledNames) {
4800
4901
  }
4801
4902
  }
4802
4903
  }
4803
- var isClaudeInternalPath, isClaudeSettingsFile, SHELL_OPERATORS, SHELL_METACHAR_RE, JWT_RE, API_KEY_PATTERNS, CONNECTION_STRING_RE, PRIVATE_KEY_RE, BEARER_TOKEN_RE, SECRET_PATTERNS, SQL_TOOL_RE, DESTRUCTIVE_SQL_RE, DELETE_NO_WHERE_RE, SQL_WHERE_RE, SCHEMA_ALTER_RE, PUBLISH_CMD_RE, ENV_PRINTENV_RE, ECHO_ENV_RE, EXPORT_RE, PS_ENV_VAR_RE, PS_CHILDITEM_ENV_RE, DOTNET_GETENV_RE, CMD_ECHO_ENV_RE, ENV_FILE_PATH_RE, ENV_CMD_RE, PS_ELEVATION_RE, RUNAS_RE, CURL_PIPE_SH_RE, SEGMENT_SEPARATORS, COMMAND_PREFIX_TOKENS, SELF_BINARY_TOKEN_RE, SELF_ENTRY_PATH_RE, CONFIG_SUBCOMMAND_RE, PAUSE_FLAG_RE, ENV_ASSIGNMENT_RE, RUNNER_OPERAND_RE, PS_WEB_PIPE_RE, SHORT_FLAG_BUNDLE_RE, SAFE_FORCE_PREFIXES, SECRET_FILE_RE, SECRET_FILE_ID_RSA_RE, SECRET_FILE_CREDENTIALS_RE, GIT_COMMIT_MERGE_RE, FAILPROOFAI_STATE_PATH_RE, STATE_READ_COMMANDS, SHELL_KEYWORD_PREFIXES, LOOP_HEADER_RE, COPY_COMMANDS, OPERAND_WRITE_COMMANDS, SECOND_OPERAND_WRITERS, OUTPUT_FLAG_COMMANDS, FIND_WRITE_ACTIONS, SAFE_EXEC_COMMANDS, GIT_DESTRUCTIVE_SUBCOMMANDS, GIT_FLAGS_WITH_OPERANDS, STATE_MENTION_COMMANDS, FIND_EXEC_ACTIONS, PIPELINE_SEPARATORS, VAR_REFERENCE_RE, STATE_GLOB_CANDIDATES, GLOB_DECOYS, BRACE_EXPANSION_LIMIT = 4096, BRACE_EXPANSION_ROUNDS = 24, GLOB_METACHAR_RE, REDIRECT_TARGET_RE, FAILPROOFAI_UNINSTALL_RE, GIT_AMEND_RE, GIT_STASH_DROP_RE, GIT_ADD_ALL_RE, NPM_GLOBAL_RE, YARN_GLOBAL_RE, PNPM_GLOBAL_RE, BUN_GLOBAL_RE, CARGO_INSTALL_RE, PIP_SYSTEM_RE, PKG_MANAGER_DETECTORS, NOHUP_RE, SCREEN_DETACH_RE, TMUX_DETACH_RE, DISOWN_RE, BACKGROUND_AMPERSAND_RE, KUBECTL_RE, TERRAFORM_RE, AWS_CLI_RE, GCLOUD_RE, AZ_CLI_RE, HELM_RE, GH_PIPELINE_RE, gitBranchCache, GIT_BRANCH_CACHE_MAX_ENTRIES = 500, EVAL_FLAG_RE, HOME_PREFIX_RE, RM_CMD_RE, FIND_CMD_RE, FIND_EXEC_RE, FIND_GLOBAL_OPT_RE, FIND_EXPR_START_RE, SCRATCH_ROOTS, CATASTROPHIC_DEPTH = 2, READ_LIKE_CMDS, TOOL_CALL_TRACKER_MAX_BYTES = 65536, SEGMENT_SPLIT_RE, POLICY_IMPLEMENTATIONS, BUILTIN_POLICIES;
4904
+ var isClaudeInternalPath, isClaudeSettingsFile, SHELL_OPERATORS, SHELL_METACHAR_RE, JWT_RE, API_KEY_PATTERNS, CONNECTION_STRING_RE, PRIVATE_KEY_RE, BEARER_TOKEN_RE, SECRET_PATTERNS, SQL_TOOL_RE, DESTRUCTIVE_SQL_RE, DELETE_NO_WHERE_RE, SQL_WHERE_RE, SCHEMA_ALTER_RE, PUBLISH_CMD_RE, ENV_PRINTENV_RE, ECHO_ENV_RE, EXPORT_RE, PS_ENV_VAR_RE, PS_CHILDITEM_ENV_RE, DOTNET_GETENV_RE, CMD_ECHO_ENV_RE, ENV_FILE_PATH_RE, ENV_CMD_RE, PS_ELEVATION_RE, RUNAS_RE, CURL_PIPE_SH_RE, SEGMENT_SEPARATORS, COMMAND_PREFIX_TOKENS, SELF_BINARY_TOKEN_RE, SELF_ENTRY_PATH_RE, CONFIG_SUBCOMMAND_RE, PAUSE_FLAG_RE, ENV_ASSIGNMENT_RE, RUNNER_OPERAND_RE, PS_WEB_PIPE_RE, SHORT_FLAG_BUNDLE_RE, SAFE_FORCE_PREFIXES, SECRET_FILE_RE, SECRET_FILE_ID_RSA_RE, SECRET_FILE_CREDENTIALS_RE, GIT_COMMIT_MERGE_RE, FAILPROOFAI_STATE_PATH_RE, STATE_READ_COMMANDS, SHELL_KEYWORD_PREFIXES, LOOP_HEADER_RE, COPY_COMMANDS, OPERAND_WRITE_COMMANDS, SECOND_OPERAND_WRITERS, OUTPUT_FLAG_COMMANDS, FIND_WRITE_ACTIONS, SAFE_EXEC_COMMANDS, GIT_DESTRUCTIVE_SUBCOMMANDS, GIT_FLAGS_WITH_OPERANDS, STATE_MENTION_COMMANDS, FIND_EXEC_ACTIONS, PIPELINE_SEPARATORS, VAR_REFERENCE_RE, STATE_GLOB_CANDIDATES, GLOB_DECOYS, BRACE_EXPANSION_LIMIT = 4096, BRACE_EXPANSION_ROUNDS = 24, GLOB_METACHAR_RE, REDIRECT_TARGET_RE, FAILPROOFAI_UNINSTALL_RE, GIT_AMEND_RE, GIT_STASH_DROP_RE, GIT_CMD_RE, SHORT_FLAG_CLUSTER_RE, GIT_CLEAN_FORCE_WAIVED_RE, GIT_CLEAN_DESTRUCTIVE_FLAGS, GIT_ADD_ALL_RE, NPM_GLOBAL_RE, YARN_GLOBAL_RE, PNPM_GLOBAL_RE, BUN_GLOBAL_RE, CARGO_INSTALL_RE, PIP_SYSTEM_RE, PKG_MANAGER_DETECTORS, NOHUP_RE, SCREEN_DETACH_RE, TMUX_DETACH_RE, DISOWN_RE, BACKGROUND_AMPERSAND_RE, KUBECTL_RE, TERRAFORM_RE, AWS_CLI_RE, GCLOUD_RE, AZ_CLI_RE, HELM_RE, GH_PIPELINE_RE, gitBranchCache, GIT_BRANCH_CACHE_MAX_ENTRIES = 500, EVAL_FLAG_RE, HOME_PREFIX_RE, RM_CMD_RE, FIND_CMD_RE, FIND_EXEC_RE, FIND_GLOBAL_OPT_RE, FIND_EXPR_START_RE, SCRATCH_ROOTS, CATASTROPHIC_DEPTH = 2, READ_LIKE_CMDS, TOOL_CALL_TRACKER_MAX_BYTES = 65536, SEGMENT_SPLIT_RE, POLICY_IMPLEMENTATIONS, BUILTIN_POLICIES;
4804
4905
  var init_builtin_policies = __esm(() => {
4805
4906
  init_policy_catalog();
4806
4907
  init_policy_registry();
@@ -5069,6 +5170,10 @@ var init_builtin_policies = __esm(() => {
5069
5170
  FAILPROOFAI_UNINSTALL_RE = /(?:npm\s+(?:uninstall|remove|un|r)\s.*failproofai|bun\s+remove\s.*failproofai|yarn\s+global\s+remove\s+failproofai|pnpm\s+(?:remove|uninstall|un)\s.*failproofai)/;
5070
5171
  GIT_AMEND_RE = /\bgit\s+commit\b.*--amend\b/;
5071
5172
  GIT_STASH_DROP_RE = /\bgit\s+stash\s+(?:drop|clear)\b/;
5173
+ GIT_CMD_RE = /^(?:\/\S*\/)?git$/;
5174
+ SHORT_FLAG_CLUSTER_RE = /^-[A-Za-z]+$/;
5175
+ GIT_CLEAN_FORCE_WAIVED_RE = /^clean\.requireforce=(?:false|0|no|off)$/i;
5176
+ GIT_CLEAN_DESTRUCTIVE_FLAGS = ["d", "x", "X"];
5072
5177
  GIT_ADD_ALL_RE = /\bgit\s+add\s+(?:-A\b|--all\b|\.(?:\s|$|;|&&|\|\|))/;
5073
5178
  NPM_GLOBAL_RE = /\bnpm\s+(?:install|i)\b(?=.*(?:\s-g\b|--global\b))/;
5074
5179
  YARN_GLOBAL_RE = /\byarn\s+global\s+add\b/;
@@ -5137,6 +5242,7 @@ var init_builtin_policies = __esm(() => {
5137
5242
  "block-work-on-main": blockWorkOnMain,
5138
5243
  "warn-git-amend": warnGitAmend,
5139
5244
  "warn-git-stash-drop": warnGitStashDrop,
5245
+ "warn-git-clean": warnGitClean,
5140
5246
  "warn-all-files-staged": warnAllFilesStaged,
5141
5247
  "warn-destructive-sql": warnDestructiveSql,
5142
5248
  "warn-schema-alteration": warnSchemaAlteration,
@@ -36579,6 +36685,17 @@ function providerForUrl(url) {
36579
36685
  return "custom";
36580
36686
  }
36581
36687
  }
36688
+ function accountIdFromUrl(url) {
36689
+ try {
36690
+ const parsed = new URL(url);
36691
+ if (PROVIDER_BY_HOST[parsed.hostname.toLowerCase()] !== "cloudflare")
36692
+ return null;
36693
+ const m = /\/accounts\/([0-9a-f]{32})(?:\/|$)/i.exec(parsed.pathname);
36694
+ return m ? m[1].toLowerCase() : null;
36695
+ } catch {
36696
+ return null;
36697
+ }
36698
+ }
36582
36699
  function isProviderDefaultUrl(kind, url) {
36583
36700
  const base = JEV_PROVIDER_DEFAULTS[kind].baseUrl;
36584
36701
  if (!base)
@@ -36668,6 +36785,22 @@ async function setup(argv, deps, opts) {
36668
36785
  const kind = explicit ?? urlProvider.kind;
36669
36786
  if (explicit === null)
36670
36787
  values.set("--provider", kind);
36788
+ if (kind === "cloudflare") {
36789
+ const fromUrl = accountIdFromUrl(normalized);
36790
+ const given = values.get("--account-id");
36791
+ if (fromUrl !== null && given === undefined) {
36792
+ values.set("--account-id", fromUrl);
36793
+ } else if (fromUrl !== null && given !== undefined && given.toLowerCase() !== fromUrl) {
36794
+ return fail2([
36795
+ "Not saved: --account-id and the account id in --url are different.",
36796
+ ` --url names ${fromUrl}`,
36797
+ ` --account-id names ${given.toLowerCase()}`,
36798
+ "Drop one of them.",
36799
+ "",
36800
+ "Nothing was written."
36801
+ ]);
36802
+ }
36803
+ }
36671
36804
  values.set("--base-url", kind !== "custom" && isProviderDefaultUrl(kind, normalized) ? "default" : normalized);
36672
36805
  values.delete("--url");
36673
36806
  }
@@ -36730,7 +36863,9 @@ async function setup(argv, deps, opts) {
36730
36863
  if (kind === "cloudflare" && urlProvider?.kind === "cloudflare" && typeof next.accountId !== "string") {
36731
36864
  return fail2([
36732
36865
  `Not saved: ${urlProvider.host} is Cloudflare Workers AI, whose endpoint is per-account.`,
36733
- "Pass the account id as well: --account-id <32 hex characters>.",
36866
+ "Pass the account id as well: --account-id <32 hex characters>,",
36867
+ "or give the full run URL, which already contains it:",
36868
+ " https://api.cloudflare.com/client/v4/accounts/<id>/ai/run",
36734
36869
  "",
36735
36870
  "Nothing was written."
36736
36871
  ]);
@@ -38265,10 +38400,10 @@ async function build(rest) {
38265
38400
  if (!existsSync48(entryPath))
38266
38401
  return fail3([`No such file: ${entryPath}`]);
38267
38402
  const source = readFileSync36(entryPath, "utf8");
38268
- const localImport = /(?:^|\n)\s*(?:import|export)[^;\n]*from\s+["'](\.[^"']*)["']/.exec(source);
38403
+ const localImport = firstRelativeSpecifier(source);
38269
38404
  if (localImport) {
38270
38405
  return fail3([
38271
- `${entryPath} imports ${localImport[1]}, and only the entry file is digest-pinned.`,
38406
+ `${entryPath} imports ${localImport}, and only the entry file is digest-pinned.`,
38272
38407
  "Bundle it to a single file first (esbuild, bun build, rollup), then build the pack from that."
38273
38408
  ]);
38274
38409
  }
@@ -39057,6 +39192,20 @@ function bundleEntry(sources, outDir) {
39057
39192
  }
39058
39193
  return { path: bundled };
39059
39194
  }
39195
+ function firstRelativeSpecifier(source) {
39196
+ const patterns = [
39197
+ /(?:^|\n)\s*(?:import|export)\b[^;]*?\bfrom\s*["'](\.[^"']*)["']/,
39198
+ /(?:^|\n)\s*import\s*["'](\.[^"']*)["']/,
39199
+ /\bimport\s*\(\s*["'](\.[^"']*)["']\s*\)/,
39200
+ /\brequire\s*\(\s*["'](\.[^"']*)["']\s*\)/
39201
+ ];
39202
+ for (const re of patterns) {
39203
+ const m = re.exec(source);
39204
+ if (m)
39205
+ return m[1];
39206
+ }
39207
+ return null;
39208
+ }
39060
39209
  function publishEntryArg(rest) {
39061
39210
  const consumed = new Set;
39062
39211
  for (let i = 0;i < rest.length; i += 1) {
@@ -39246,7 +39395,7 @@ async function publish(rest) {
39246
39395
  }
39247
39396
  const tag = flag("tag") ?? version;
39248
39397
  let entryToBuild = entry;
39249
- const needsBundle = discovered.length > 1 || /(?:^|\n)\s*(?:import|export)[^;\n]*from\s+["']\.[^"']*["']/.test(readFileSync36(entry, "utf8"));
39398
+ const needsBundle = discovered.length > 1 || firstRelativeSpecifier(readFileSync36(entry, "utf8")) !== null;
39250
39399
  if (needsBundle) {
39251
39400
  const sources = discovered.length > 1 ? discovered : [entry];
39252
39401
  const bundled = bundleEntry(sources, outDirEarly);
@@ -39640,6 +39789,52 @@ function relativeAge(iso) {
39640
39789
  return value < 10 ? "just now" : `${value} seconds ago`;
39641
39790
  return `${value} ${label}${value === 1 ? "" : "s"} ago`;
39642
39791
  }
39792
+ function reviewersByCheck(policies, semantic) {
39793
+ const ownChecks = new Set(semantic.map((s) => s.name));
39794
+ const byCheck = new Map(semantic.map((s) => [s.name, []]));
39795
+ for (const policy of policies) {
39796
+ const { authority, reviewedBy } = resolvePolicyAuthority(policy, ownChecks);
39797
+ if (authority !== "reviewable")
39798
+ continue;
39799
+ for (const check of reviewedBy ?? [])
39800
+ byCheck.get(check)?.push(policy.name);
39801
+ }
39802
+ return byCheck;
39803
+ }
39804
+ function reviewersCell(names) {
39805
+ if (names.length <= REVIEWERS_LISTED)
39806
+ return names.join(", ");
39807
+ return `${names.slice(0, 2).join(", ")}, +${names.length - 2}`;
39808
+ }
39809
+ function unreviewedCell(mode, policies) {
39810
+ if (mode === "instruct")
39811
+ return "instruct-only — it can never deny";
39812
+ if (policies === 0)
39813
+ return "this pack has no policies to clear";
39814
+ if (policies === 1)
39815
+ return "the one policy here does not cover this";
39816
+ return `nothing in the ${policies} covers this`;
39817
+ }
39818
+ function jevChecksSection(pack, opts) {
39819
+ if (pack.semantic.length === 0)
39820
+ return null;
39821
+ const reviewers = reviewersByCheck(pack.policies, pack.semantic);
39822
+ const rows = pack.semantic.map((check) => {
39823
+ const named = reviewers.get(check.name) ?? [];
39824
+ return [
39825
+ check.mode,
39826
+ check.name,
39827
+ named.length > 0 ? `reviews ${reviewersCell(named)}` : `— ${unreviewedCell(check.mode, pack.policies.length)}`
39828
+ ];
39829
+ });
39830
+ return [
39831
+ ...rule(`Jev checks — ${pack.semantic.length} · not selectable · only where Jev is configured`, opts),
39832
+ ...table({ head: ["", "", ""], rows, protect: [0, 1] }, opts),
39833
+ "",
39834
+ ...note("Nothing toggles them: `--policy` cannot name one, `failproofai policies` never lists them, " + "and a pack's checks replace the ones this build ships with.", opts),
39835
+ ...note(pack.policies.length === 0 ? "This pack ships no regex policies, so none of these checks clears anything here: a deny " + "check can only ADD a deny, and an instruct check only ever warns." : `\`reviews\` is which of this pack's own ${pack.policies.length} policies each check can clear. ` + "A deny check that reviews nothing can only ever ADD a deny; an instruct check never answers " + "deny, so nothing pairs with one.", opts)
39836
+ ];
39837
+ }
39643
39838
  async function listRemote(source) {
39644
39839
  const opts = optsFor(process.stdout);
39645
39840
  let preview;
@@ -39665,7 +39860,7 @@ async function listRemote(source) {
39665
39860
  ]);
39666
39861
  }
39667
39862
  }
39668
- return ok3(stack(title(`${preview.id}@${preview.version}`, `${preview.policies.length} policies · ${categories.length} categories` + (preview.semantic.length > 0 ? ` · ${semanticPhrase(preview.semantic.length)}` : ""), opts), note(`Not installed. ${defaults.length} of ${preview.policies.length} are on by default; the rest are opt-in.` + (preview.effect === "observe" ? " This pack OBSERVES — it records and blocks nothing." : ""), opts), preview.semantic.length > 0 ? note(`It also carries ${semanticPhrase(preview.semantic.length)} — ${preview.semantic.map((s) => s.name).join(", ")}. They are not selectable, they apply only where you configured Jev, and they ` + "replace the checks this build ships with.", opts) : null, preview.minCliVersion ? note(`Requires failproofai ${preview.minCliVersion} or newer.`, opts) : null, preview.resolvedFromLatest ? note(`Newest release: ${preview.source}`, opts) : null, table({ head: ["", "", ""], rows }, opts), nextStep(`failproofai policies add ${source}`, "Install the defaults with:", opts), note("Or take part of it: --policy <a,b>, --category <x,y>, --all", opts)));
39863
+ return ok3(stack(title(`${preview.id}@${preview.version}`, `${preview.policies.length} policies · ${categories.length} categories` + (preview.semantic.length > 0 ? ` · ${semanticPhrase(preview.semantic.length)}` : ""), opts), note(`Not installed. ${defaults.length} of ${preview.policies.length} are on by default; the rest are opt-in.` + (preview.effect === "observe" ? " This pack OBSERVES — it records and blocks nothing." : ""), opts), preview.minCliVersion ? note(`Requires failproofai ${preview.minCliVersion} or newer.`, opts) : null, preview.resolvedFromLatest ? note(`Newest release: ${preview.source}`, opts) : null, table({ head: ["", "", ""], rows }, opts), jevChecksSection(preview, opts), nextStep(`failproofai policies add ${source}`, "Install the defaults with:", opts), note("Or take part of it: --policy <a,b>, --category <x,y>, --all", opts)));
39669
39864
  }
39670
39865
  async function list() {
39671
39866
  const { packs, errors } = readInstalledPacks();
@@ -39760,7 +39955,7 @@ var ok3 = (lines, meta) => ({
39760
39955
  lines,
39761
39956
  exitCode: 0,
39762
39957
  ...meta ? { meta } : {}
39763
- }), fail3 = (lines) => ({ lines, exitCode: 1 }), VALUE_FLAGS3, LOCAL_IMPORT_RES, LOCAL_IMPORT_EXTENSIONS, VERSION_SHA_LENGTH = 12, PUBLISH_VALUE_FLAGS2, INSTALLABLE_PACK_ASSETS, GITHUB_API2, GITHUB_UPLOADS2, GITHUB_GIT2;
39958
+ }), fail3 = (lines) => ({ lines, exitCode: 1 }), VALUE_FLAGS3, LOCAL_IMPORT_RES, LOCAL_IMPORT_EXTENSIONS, VERSION_SHA_LENGTH = 12, PUBLISH_VALUE_FLAGS2, INSTALLABLE_PACK_ASSETS, GITHUB_API2, GITHUB_UPLOADS2, GITHUB_GIT2, REVIEWERS_LISTED = 3;
39764
39959
  var init_pack_cli2 = __esm(() => {
39765
39960
  init_types();
39766
39961
  init_pack_manifest();
@@ -42384,7 +42579,7 @@ import { realpathSync as realpathSync7 } from "fs";
42384
42579
  import { dirname as dirname30, resolve as resolve39 } from "path";
42385
42580
  import { fileURLToPath as fileURLToPath4 } from "url";
42386
42581
  // package.json
42387
- var version = "1.0.7-beta.0";
42582
+ var version = "1.0.7-beta.2";
42388
42583
 
42389
42584
  // bin/failproofai.mjs
42390
42585
  if (!process.env.FAILPROOFAI_PACKAGE_ROOT) {