failproofai 1.0.0-beta.5 → 1.0.0-beta.6

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 (367) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +2 -1
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/routes-manifest.json +6 -0
  7. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page.js +3 -1
  9. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  13. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  14. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  15. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  16. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  17. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page.js +3 -1
  20. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  24. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  25. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  26. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  27. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  28. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  29. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  30. package/.next/standalone/.next/server/app/api/audit/invite/route.js +3 -2
  31. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/audit/run/route.js +4 -3
  33. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/audit/status/route.js +1 -1
  35. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/auth/login-request/route.js +2 -1
  37. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +3 -2
  39. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/auth/logout/route.js +3 -2
  41. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/auth/reminder/route.js +3 -2
  43. package/.next/standalone/.next/server/app/api/auth/reminder/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/auth/status/route.js +3 -2
  45. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +1 -1
  47. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  49. package/.next/standalone/.next/server/app/audit/page.js +5 -3
  50. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/index.html +1 -1
  53. package/.next/standalone/.next/server/app/index.rsc +15 -15
  54. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  55. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  56. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  57. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  58. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  59. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  60. package/.next/standalone/.next/server/app/page.js +3 -1
  61. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +10 -10
  64. package/.next/standalone/.next/server/app/policies/page.js +4 -2
  65. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  68. package/.next/standalone/.next/server/app/project/[name]/page.js +4 -2
  69. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  72. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  73. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +6 -4
  74. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  77. package/.next/standalone/.next/server/app/projects/page.js +4 -2
  78. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/settings/page/app-paths-manifest.json +3 -0
  81. package/.next/standalone/.next/server/app/settings/page/build-manifest.json +18 -0
  82. package/.next/standalone/.next/server/app/settings/page/next-font-manifest.json +6 -0
  83. package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
  84. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +53 -0
  85. package/.next/standalone/.next/server/app/settings/page.js +18 -0
  86. package/.next/standalone/.next/server/app/settings/page.js.map +5 -0
  87. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -0
  88. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +3 -0
  89. package/.next/standalone/.next/server/app-paths-manifest.json +2 -1
  90. package/.next/standalone/.next/server/chunks/{[externals]__1nl3dvw._.js → [externals]__0r-zamh._.js} +2 -2
  91. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06hexd0._.js +3 -0
  92. package/.next/standalone/.next/server/chunks/[root-of-the-server]__094p1f1._.js +3 -0
  93. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_0xu5z._.js +1 -1
  94. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ed01_d._.js +3 -0
  95. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g0vcwt._.js +3 -0
  96. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0h3lfmp._.js → [root-of-the-server]__0ky_n0r._.js} +2 -2
  97. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__18d-9oi._.js → [root-of-the-server]__0lk_935._.js} +2 -2
  98. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1p7s8-d._.js → [root-of-the-server]__0pbp9fe._.js} +2 -2
  99. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0q-v9z2._.js +1 -1
  100. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__10oa-v9._.js → [root-of-the-server]__0v2fpxe._.js} +2 -2
  101. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0sb_5m8._.js → [root-of-the-server]__131ebum._.js} +3 -3
  102. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0-dh5jy._.js → [root-of-the-server]__1_ps0jw._.js} +2 -2
  103. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0l4vuqm._.js → [root-of-the-server]__1a7i2q4._.js} +1 -1
  104. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ibjy5x._.js +3 -0
  105. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1iny24d._.js +3 -0
  106. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1tvn4wf._.js +1 -1
  107. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1tyedjt._.js +3 -0
  108. package/.next/standalone/.next/server/chunks/_0lxbzdq._.js +5 -0
  109. package/.next/standalone/.next/server/chunks/_1zuiiy3._.js +5 -0
  110. package/.next/standalone/.next/server/chunks/lib_telemetry_ts_0dctyyw._.js +5 -0
  111. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_17k9e3w.js +5 -5
  112. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  113. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06bp_fg._.js +5 -0
  114. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__074qmkp._.js +3 -0
  115. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0spkm68._.js +10 -10
  116. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1_a_gwn._.js +3 -0
  117. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1a2hcb_._.js +3 -0
  118. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1e7-pa7._.js +3 -0
  119. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0rtdfof._.js → [root-of-the-server]__1rdruw4._.js} +1 -1
  120. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1rv-sc9._.js +3 -0
  121. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1tyf0tc._.js +5 -0
  122. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1u-wx42._.js +4 -0
  123. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1v185mo._.js +3 -0
  124. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0rag5dg._.js → [root-of-the-server]__1yw368c._.js} +2 -2
  125. package/.next/standalone/.next/server/chunks/ssr/_0-yi74u._.js +3 -0
  126. package/.next/standalone/.next/server/chunks/ssr/_04mekdy._.js +3 -0
  127. package/.next/standalone/.next/server/chunks/ssr/_0igtyj5._.js +3 -0
  128. package/.next/standalone/.next/server/chunks/ssr/_0r-dsre._.js +3 -0
  129. package/.next/standalone/.next/server/chunks/ssr/_0rjgfln._.js +3 -0
  130. package/.next/standalone/.next/server/chunks/ssr/_0se484m._.js +3 -0
  131. package/.next/standalone/.next/server/chunks/ssr/_0uz7o9y._.js +3 -0
  132. package/.next/standalone/.next/server/chunks/ssr/_11_p9y8._.js +1 -1
  133. package/.next/standalone/.next/server/chunks/ssr/_1fahg9e._.js +3 -0
  134. package/.next/standalone/.next/server/chunks/ssr/_1gmzkwj._.js +5 -0
  135. package/.next/standalone/.next/server/chunks/ssr/_1w8sola._.js +3 -0
  136. package/.next/standalone/.next/server/chunks/ssr/_1w_6p9g._.js +3 -0
  137. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +2 -2
  138. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  139. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +2 -2
  140. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dwo94s.js +4 -0
  141. package/.next/standalone/.next/server/chunks/ssr/src_hooks_builtin-policies_ts_09j2ndl._.js +3 -0
  142. package/.next/standalone/.next/server/chunks/ssr/src_hooks_fp-config_ts_04t589g._.js +5 -0
  143. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  144. package/.next/standalone/.next/server/middleware.js +2 -2
  145. package/.next/standalone/.next/server/pages/404.html +1 -1
  146. package/.next/standalone/.next/server/pages/500.html +1 -1
  147. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/server-reference-manifest.json +54 -12
  149. package/.next/standalone/.next/static/chunks/{2cqk4a9s893oy.js → 0_2n13i94rnw5.js} +1 -1
  150. package/.next/standalone/.next/static/chunks/1bm0q12hgs22l.css +2 -0
  151. package/.next/standalone/.next/static/chunks/1v1gqvpjk62jm.js +1 -0
  152. package/.next/standalone/.next/static/chunks/{1bw4dfzflelcv.js → 23557z4e6dtsr.js} +1 -1
  153. package/.next/standalone/.next/static/chunks/28zkwzu50puki.js +1 -0
  154. package/.next/standalone/.next/static/chunks/2uvhw57mf9lg_.css +2 -0
  155. package/.next/standalone/.next/static/chunks/3081gykdubv8b.js +1 -0
  156. package/.next/standalone/.next/static/chunks/{2k285z07qce47.js → 34fa65k0cldkj.js} +1 -1
  157. package/.next/standalone/.next/static/chunks/{34sjdw8lv46e3.js → 35v07j9gc1pvr.js} +2 -2
  158. package/.next/standalone/.next/static/chunks/{1bkynffp3q1f7.js → 3f_939wi3kfnx.js} +22 -22
  159. package/.next/standalone/.next/static/chunks/{2v1rpzrh2i1wv.js → 3p1vpm2_-tfwm.js} +1 -1
  160. package/.next/standalone/.next/static/chunks/{0cr85wuc9gc9k.js → 3rbpw_waieafm.js} +1 -1
  161. package/.next/standalone/.next/static/chunks/40ffnfpkeyvb0.js +1 -0
  162. package/.next/standalone/app/actions/get-hooks-config.ts +2 -1
  163. package/.next/standalone/app/actions/get-scheduled-audit.ts +70 -0
  164. package/.next/standalone/app/actions/update-scheduled-audit.ts +44 -0
  165. package/.next/standalone/app/api/audit/run/route.ts +28 -0
  166. package/.next/standalone/app/api/audit/status/route.ts +13 -1
  167. package/.next/standalone/app/api/auth/status/route.ts +1 -1
  168. package/.next/standalone/app/audit/_components/auth-dialog.css +159 -0
  169. package/.next/standalone/app/audit/_components/auth-dialog.tsx +3 -0
  170. package/.next/standalone/app/audit/audit-styles.css +6 -149
  171. package/.next/standalone/app/settings/page.tsx +31 -0
  172. package/.next/standalone/app/settings/settings-client.tsx +488 -0
  173. package/.next/standalone/components/navbar.tsx +2 -0
  174. package/.next/standalone/lib/auth/api-server-client.ts +2 -3
  175. package/.next/standalone/lib/auth/auth-store.ts +4 -4
  176. package/.next/standalone/lib/codex-sessions.ts +2 -1
  177. package/.next/standalone/lib/dashboard-host.ts +101 -0
  178. package/.next/standalone/lib/install-check.ts +22 -7
  179. package/.next/standalone/lib/pi-sessions.ts +99 -14
  180. package/.next/standalone/lib/telemetry-enabled.ts +54 -0
  181. package/.next/standalone/lib/telemetry-id.ts +52 -1
  182. package/.next/standalone/lib/telemetry.ts +8 -4
  183. package/.next/standalone/node_modules/react/cjs/react.development.js +1 -1
  184. package/.next/standalone/node_modules/react/cjs/react.production.js +1 -1
  185. package/.next/standalone/node_modules/react/package.json +3 -3
  186. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1 -1
  187. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1 -1
  188. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +3 -3
  189. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +3 -3
  190. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +3 -3
  191. package/.next/standalone/node_modules/react-dom/cjs/react-dom.production.js +1 -1
  192. package/.next/standalone/node_modules/react-dom/package.json +4 -4
  193. package/.next/standalone/package.json +7 -6
  194. package/.next/standalone/proxy.ts +89 -1
  195. package/.next/standalone/server.js +1 -1
  196. package/bin/failproofai.mjs +197 -80
  197. package/dist/cli.mjs +17636 -15284
  198. package/dist/worker.mjs +1620 -257
  199. package/lib/auth/api-server-client.ts +2 -3
  200. package/lib/auth/auth-store.ts +4 -4
  201. package/lib/codex-sessions.ts +2 -1
  202. package/lib/dashboard-host.ts +101 -0
  203. package/lib/install-check.ts +22 -7
  204. package/lib/pi-sessions.ts +99 -14
  205. package/lib/telemetry-enabled.ts +54 -0
  206. package/lib/telemetry-id.ts +52 -1
  207. package/lib/telemetry.ts +8 -4
  208. package/package.json +7 -6
  209. package/scripts/install-telemetry.mjs +8 -1
  210. package/scripts/launch.ts +25 -3
  211. package/scripts/parse-script-args.ts +17 -1
  212. package/scripts/prune-standalone.mjs +20 -0
  213. package/scripts/translate-docs/readme-translator.ts +163 -4
  214. package/scripts/validate-mdx.ts +153 -13
  215. package/src/audit/audit-lock.ts +285 -0
  216. package/src/audit/audit-schedule.ts +111 -0
  217. package/src/audit/cache.ts +18 -4
  218. package/src/audit/cli-adapters/goose.ts +2 -1
  219. package/src/audit/cli-adapters/hermes.ts +28 -10
  220. package/src/audit/cli.ts +191 -35
  221. package/src/audit/dashboard-cache.ts +2 -1
  222. package/src/hooks/builtin-policies.ts +100 -3
  223. package/src/hooks/cloud-connection.ts +160 -14
  224. package/src/hooks/cloud-enrollment-cli.ts +119 -21
  225. package/src/hooks/cloud-enrollment.ts +87 -17
  226. package/src/hooks/cloud-introspect.ts +147 -0
  227. package/src/hooks/cloud-managed-policies.ts +33 -2
  228. package/src/hooks/collector-config.ts +25 -43
  229. package/src/hooks/configure-wizard.ts +696 -318
  230. package/src/hooks/custom-hooks-loader.ts +125 -11
  231. package/src/hooks/daemon-client.ts +83 -17
  232. package/src/hooks/daemon-download.ts +54 -2
  233. package/src/hooks/daemon-service.ts +595 -27
  234. package/src/hooks/first-run-gate.ts +39 -0
  235. package/src/hooks/fp-config.ts +497 -0
  236. package/src/hooks/fp-home.ts +342 -0
  237. package/src/hooks/fp-reset.ts +332 -0
  238. package/src/hooks/handler.ts +42 -1
  239. package/src/hooks/hook-activity-store.ts +35 -20
  240. package/src/hooks/hook-logger.ts +2 -1
  241. package/src/hooks/hook-telemetry.ts +5 -1
  242. package/src/hooks/hooks-config.ts +4 -3
  243. package/src/hooks/loader-utils.ts +166 -5
  244. package/src/hooks/manager.ts +5 -4
  245. package/src/hooks/onboarding-lock.ts +119 -0
  246. package/src/hooks/policy-types.ts +0 -7
  247. package/src/hooks/session-pause-cli.ts +15 -13
  248. package/src/hooks/session-pause.ts +36 -4
  249. package/src/hooks/setup-state.ts +256 -0
  250. package/src/hooks/tui.ts +4 -4
  251. package/src/hooks/worker-server.ts +53 -1
  252. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f8nu8d._.js +0 -3
  253. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0szqzl8._.js +0 -3
  254. package/.next/standalone/.next/server/chunks/[root-of-the-server]__17g9wh7._.js +0 -3
  255. package/.next/standalone/.next/server/chunks/[root-of-the-server]__19120tr._.js +0 -3
  256. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1fwl2mz._.js +0 -3
  257. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1myjm-d._.js +0 -3
  258. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1rhmvod._.js +0 -3
  259. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02r5bgf._.js +0 -4
  260. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__094nop3._.js +0 -3
  261. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e8sjqm._.js +0 -4
  262. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0lkzqax._.js +0 -4
  263. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ls0gsr._.js +0 -4
  264. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n_uvv0._.js +0 -3
  265. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qucxyj._.js +0 -4
  266. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0u02miy._.js +0 -4
  267. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__14dd6h8._.js +0 -3
  268. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1gak4pd._.js +0 -3
  269. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1j4u3yd._.js +0 -4
  270. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1zqz4v8._.js +0 -4
  271. package/.next/standalone/.next/server/chunks/ssr/_1m_p7pi._.js +0 -3
  272. package/.next/standalone/.next/server/chunks/ssr/node_modules_html-to-image_es_index_12c_2cz.js +0 -3
  273. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1ezd2jf._.js +0 -5
  274. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1tnuifj._.js +0 -5
  275. package/.next/standalone/.next/static/chunks/0h7auy7hzjyhw.js +0 -1
  276. package/.next/standalone/.next/static/chunks/1tp9dex23zs8y.js +0 -1
  277. package/.next/standalone/.next/static/chunks/2s9g1dsde_ts1.js +0 -1
  278. package/.next/standalone/.next/static/chunks/3i27c3hcriawq.css +0 -1
  279. package/.next/standalone/.next/static/chunks/3zdwnnthucs_1.css +0 -2
  280. package/.next/standalone/Cargo.lock +0 -2222
  281. package/.next/standalone/Cargo.toml +0 -9
  282. package/.next/standalone/crates/CLOUD_POLICIES.md +0 -136
  283. package/.next/standalone/crates/PROTOCOL.md +0 -122
  284. package/.next/standalone/crates/failproofaid/Cargo.toml +0 -25
  285. package/.next/standalone/crates/failproofaid/src/cloud_client.rs +0 -484
  286. package/.next/standalone/crates/failproofaid/src/cloud_policies.rs +0 -921
  287. package/.next/standalone/crates/failproofaid/src/lock.rs +0 -81
  288. package/.next/standalone/crates/failproofaid/src/main.rs +0 -639
  289. package/.next/standalone/crates/failproofaid/src/paths.rs +0 -201
  290. package/.next/standalone/crates/failproofaid/src/server.rs +0 -502
  291. package/.next/standalone/crates/failproofaid/src/worker.rs +0 -400
  292. package/.next/standalone/crates/failproofaid/tests/daemon_e2e.rs +0 -241
  293. package/.next/standalone/crates/fpai-collect/Cargo.toml +0 -43
  294. package/.next/standalone/crates/fpai-collect/src/config.rs +0 -420
  295. package/.next/standalone/crates/fpai-collect/src/cursor.rs +0 -520
  296. package/.next/standalone/crates/fpai-collect/src/delivery.rs +0 -472
  297. package/.next/standalone/crates/fpai-collect/src/filetail.rs +0 -487
  298. package/.next/standalone/crates/fpai-collect/src/health.rs +0 -369
  299. package/.next/standalone/crates/fpai-collect/src/lib.rs +0 -34
  300. package/.next/standalone/crates/fpai-collect/src/redact.rs +0 -516
  301. package/.next/standalone/crates/fpai-collect/src/sources/claude/mod.rs +0 -279
  302. package/.next/standalone/crates/fpai-collect/src/sources/claude/transform.rs +0 -619
  303. package/.next/standalone/crates/fpai-collect/src/sources/codex/mod.rs +0 -156
  304. package/.next/standalone/crates/fpai-collect/src/sources/codex/transform.rs +0 -715
  305. package/.next/standalone/crates/fpai-collect/src/sources/copilot/mod.rs +0 -158
  306. package/.next/standalone/crates/fpai-collect/src/sources/copilot/transform.rs +0 -512
  307. package/.next/standalone/crates/fpai-collect/src/sources/goose/mod.rs +0 -511
  308. package/.next/standalone/crates/fpai-collect/src/sources/goose/transform.rs +0 -586
  309. package/.next/standalone/crates/fpai-collect/src/sources/hermes/mod.rs +0 -318
  310. package/.next/standalone/crates/fpai-collect/src/sources/hermes/transform.rs +0 -579
  311. package/.next/standalone/crates/fpai-collect/src/sources/hooks/mod.rs +0 -314
  312. package/.next/standalone/crates/fpai-collect/src/sources/hooks/transform.rs +0 -448
  313. package/.next/standalone/crates/fpai-collect/src/sources/mod.rs +0 -23
  314. package/.next/standalone/crates/fpai-collect/src/sources/openclaw/mod.rs +0 -176
  315. package/.next/standalone/crates/fpai-collect/src/sources/openclaw/transform.rs +0 -500
  316. package/.next/standalone/crates/fpai-collect/src/sources/opencode/mod.rs +0 -315
  317. package/.next/standalone/crates/fpai-collect/src/sources/opencode/transform.rs +0 -493
  318. package/.next/standalone/crates/fpai-collect/src/sources/pi/mod.rs +0 -201
  319. package/.next/standalone/crates/fpai-collect/src/sources/pi/transform.rs +0 -533
  320. package/.next/standalone/crates/fpai-collect/src/spool.rs +0 -535
  321. package/.next/standalone/crates/fpai-collect/src/sqlitepoll.rs +0 -390
  322. package/.next/standalone/crates/fpai-collect/src/supervisor.rs +0 -423
  323. package/.next/standalone/crates/fpai-collect/src/uploader.rs +0 -600
  324. package/.next/standalone/crates/fpai-collect/tests/claude_source.rs +0 -739
  325. package/.next/standalone/crates/fpai-collect/tests/claude_subagents.rs +0 -394
  326. package/.next/standalone/crates/fpai-collect/tests/codex_source.rs +0 -976
  327. package/.next/standalone/crates/fpai-collect/tests/config.rs +0 -286
  328. package/.next/standalone/crates/fpai-collect/tests/copilot_source.rs +0 -1020
  329. package/.next/standalone/crates/fpai-collect/tests/delivery.rs +0 -281
  330. package/.next/standalone/crates/fpai-collect/tests/goose_source.rs +0 -1009
  331. package/.next/standalone/crates/fpai-collect/tests/hermes_source.rs +0 -1130
  332. package/.next/standalone/crates/fpai-collect/tests/hooks_source.rs +0 -622
  333. package/.next/standalone/crates/fpai-collect/tests/openclaw_source.rs +0 -855
  334. package/.next/standalone/crates/fpai-collect/tests/opencode_source.rs +0 -1478
  335. package/.next/standalone/crates/fpai-collect/tests/pi_source.rs +0 -1192
  336. package/.next/standalone/crates/fpai-collect/tests/supervisor.rs +0 -290
  337. package/.next/standalone/crates/fpai-collect/tests/uploader.rs +0 -506
  338. package/.next/standalone/crates/fpai-ipc/Cargo.toml +0 -16
  339. package/.next/standalone/crates/fpai-ipc/src/envelope.rs +0 -175
  340. package/.next/standalone/crates/fpai-ipc/src/framing.rs +0 -177
  341. package/.next/standalone/crates/fpai-ipc/src/lib.rs +0 -10
  342. package/.next/standalone/crates/fpai-ipc/src/peer.rs +0 -80
  343. package/.next/standalone/docker-hook-sync/Dockerfile +0 -79
  344. package/.next/standalone/docker-hook-sync/entrypoint.sh +0 -109
  345. package/.next/standalone/integration-suite/Dockerfile +0 -47
  346. package/.next/standalone/integration-suite/README.md +0 -129
  347. package/.next/standalone/integration-suite/canary-policies.mjs +0 -45
  348. package/.next/standalone/integration-suite/capture-tokens.sh +0 -48
  349. package/.next/standalone/integration-suite/ci-entrypoint.sh +0 -179
  350. package/.next/standalone/integration-suite/inject-tokens.sh +0 -44
  351. package/.next/standalone/integration-suite/install-clis.sh +0 -136
  352. package/.next/standalone/integration-suite/probe-cli.sh +0 -248
  353. package/.next/standalone/integration-suite/report.js +0 -120
  354. package/.next/standalone/integration-suite/run.sh +0 -159
  355. package/.next/standalone/openclaw-plugin/index.js +0 -223
  356. package/.next/standalone/openclaw-plugin/openclaw.plugin.json +0 -6
  357. package/.next/standalone/openclaw-plugin/package.json +0 -12
  358. package/.next/standalone/osv-scanner.toml +0 -17
  359. package/.next/standalone/pi-extension/index.ts +0 -524
  360. package/.next/standalone/pi-extension/package.json +0 -12
  361. package/.next/standalone/postcss.config.mjs +0 -8
  362. package/.next/standalone/readme-arch-hq.gif +0 -0
  363. package/.next/standalone/rust-toolchain.toml +0 -4
  364. package/src/auth/cli.ts +0 -371
  365. /package/.next/standalone/.next/static/{LOuwMmfomO6hQYfMQYs4K → Ptn8aBQl_cnNgOd0ebyv0}/_buildManifest.js +0 -0
  366. /package/.next/standalone/.next/static/{LOuwMmfomO6hQYfMQYs4K → Ptn8aBQl_cnNgOd0ebyv0}/_clientMiddlewareManifest.js +0 -0
  367. /package/.next/standalone/.next/static/{LOuwMmfomO6hQYfMQYs4K → Ptn8aBQl_cnNgOd0ebyv0}/_ssgManifest.js +0 -0
@@ -1,290 +0,0 @@
1
- //! Contract tests for the collector supervisor.
2
- //!
3
- //! These are the tests that justify running collection inside the daemon at
4
- //! all. `failproofai` fails closed — an unreachable daemon denies every tool
5
- //! call on the machine — so "a collector bug cannot take the daemon down" is
6
- //! not a nice property, it is the precondition for the whole design. Each test
7
- //! below pins one half of that claim.
8
-
9
- use std::sync::Arc;
10
- use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
11
- use std::time::{Duration, Instant};
12
-
13
- use fpai_collect::{TaskError, TaskSpec, spawn_supervised};
14
-
15
- /// Poll `cond` until true or `budget` elapses. Returns whether it became true.
16
- /// Used instead of a fixed sleep so the tests are neither flaky nor slower
17
- /// than they need to be.
18
- fn wait_until(budget: Duration, mut cond: impl FnMut() -> bool) -> bool {
19
- let deadline = Instant::now() + budget;
20
- while Instant::now() < deadline {
21
- if cond() {
22
- return true;
23
- }
24
- std::thread::sleep(Duration::from_millis(10));
25
- }
26
- cond()
27
- }
28
-
29
- #[test]
30
- fn no_tasks_means_no_thread_and_no_runtime() {
31
- // The normal state on a machine that has not opted in to collection. It
32
- // must cost nothing at all — not an idle thread, not a Tokio runtime.
33
- let shutdown = Arc::new(AtomicBool::new(false));
34
- let handle = spawn_supervised(vec![], shutdown);
35
- assert!(
36
- handle.is_none(),
37
- "an empty task list must not start a runtime"
38
- );
39
- }
40
-
41
- #[test]
42
- fn a_panicking_task_is_contained_and_restarted() {
43
- // The core claim. A transform that panics on some agent's malformed log
44
- // line must not unwind into the runtime, must not abort the process, and
45
- // must be tried again rather than silently dropped.
46
- let shutdown = Arc::new(AtomicBool::new(false));
47
- let starts = Arc::new(AtomicUsize::new(0));
48
-
49
- let s = starts.clone();
50
- let handle = spawn_supervised(
51
- vec![TaskSpec::new("panicky", move |_sd| {
52
- let s = s.clone();
53
- async move {
54
- s.fetch_add(1, Ordering::SeqCst);
55
- panic!("simulated transform bug");
56
- }
57
- })],
58
- shutdown.clone(),
59
- )
60
- .expect("supervisor should start");
61
-
62
- // Backoff starts at 1s, so a second start proves a real restart happened
63
- // rather than the first attempt being counted twice.
64
- assert!(
65
- wait_until(Duration::from_secs(5), || starts.load(Ordering::SeqCst)
66
- >= 2),
67
- "a panicking task must be restarted, got {} start(s)",
68
- starts.load(Ordering::SeqCst)
69
- );
70
-
71
- let m = handle.metrics();
72
- assert!(
73
- m.panics.load(Ordering::Relaxed) >= 1,
74
- "the panic must be counted"
75
- );
76
- assert_eq!(
77
- m.failures.load(Ordering::Relaxed),
78
- 0,
79
- "a panic is not an Err — they are counted separately so a bug is distinguishable from a flaky environment"
80
- );
81
-
82
- assert!(handle.join_with_flush(Duration::from_secs(5)));
83
- }
84
-
85
- #[test]
86
- fn a_panic_in_one_task_does_not_disturb_another() {
87
- // Isolation between tasks, not just between the collector and the daemon.
88
- // One badly-behaved source must not stop the others from shipping.
89
- let shutdown = Arc::new(AtomicBool::new(false));
90
- let healthy_ticks = Arc::new(AtomicUsize::new(0));
91
-
92
- let ticks = healthy_ticks.clone();
93
- let handle = spawn_supervised(
94
- vec![
95
- TaskSpec::new("panicky", |_sd| async {
96
- panic!("bad source");
97
- }),
98
- TaskSpec::new("healthy", move |sd| {
99
- let ticks = ticks.clone();
100
- // Shaped like a real source: loop until asked to stop, and
101
- // use the interruptible sleep so shutdown is prompt.
102
- async move {
103
- while !sd.is_set() {
104
- ticks.fetch_add(1, Ordering::SeqCst);
105
- sd.sleep(Duration::from_millis(10)).await;
106
- }
107
- Ok(())
108
- }
109
- }),
110
- ],
111
- shutdown.clone(),
112
- )
113
- .expect("supervisor should start");
114
-
115
- assert!(
116
- wait_until(Duration::from_secs(5), || healthy_ticks
117
- .load(Ordering::SeqCst)
118
- >= 5),
119
- "the healthy task must keep running while its sibling panics"
120
- );
121
-
122
- assert!(handle.join_with_flush(Duration::from_secs(5)));
123
- }
124
-
125
- #[test]
126
- fn a_failing_task_is_restarted_and_counted_as_a_failure_not_a_panic() {
127
- let shutdown = Arc::new(AtomicBool::new(false));
128
- let starts = Arc::new(AtomicUsize::new(0));
129
-
130
- let s = starts.clone();
131
- let handle = spawn_supervised(
132
- vec![TaskSpec::new("flaky", move |_sd| {
133
- let s = s.clone();
134
- async move {
135
- s.fetch_add(1, Ordering::SeqCst);
136
- Err(TaskError::from("upstream refused the connection"))
137
- }
138
- })],
139
- shutdown.clone(),
140
- )
141
- .expect("supervisor should start");
142
-
143
- assert!(
144
- wait_until(Duration::from_secs(5), || starts.load(Ordering::SeqCst)
145
- >= 2),
146
- "a failing task must be restarted"
147
- );
148
-
149
- let m = handle.metrics();
150
- assert!(m.failures.load(Ordering::Relaxed) >= 1);
151
- assert_eq!(
152
- m.panics.load(Ordering::Relaxed),
153
- 0,
154
- "an Err is the environment, not a bug — it must not inflate the panic count"
155
- );
156
-
157
- assert!(handle.join_with_flush(Duration::from_secs(5)));
158
- }
159
-
160
- #[test]
161
- fn a_task_that_finishes_cleanly_is_not_restarted() {
162
- // A one-shot task (a backfill pass, say) returning Ok is done. Restarting
163
- // it would turn "finished" into an infinite loop.
164
- let shutdown = Arc::new(AtomicBool::new(false));
165
- let starts = Arc::new(AtomicUsize::new(0));
166
-
167
- let s = starts.clone();
168
- let handle = spawn_supervised(
169
- vec![TaskSpec::new("oneshot", move |_sd| {
170
- let s = s.clone();
171
- async move {
172
- s.fetch_add(1, Ordering::SeqCst);
173
- Ok(())
174
- }
175
- })],
176
- shutdown.clone(),
177
- )
178
- .expect("supervisor should start");
179
-
180
- // Well past the 1s backoff a restart would have used.
181
- std::thread::sleep(Duration::from_millis(2500));
182
- assert_eq!(
183
- starts.load(Ordering::SeqCst),
184
- 1,
185
- "a completed task must run exactly once"
186
- );
187
-
188
- assert!(handle.join_with_flush(Duration::from_secs(5)));
189
- }
190
-
191
- #[test]
192
- fn the_daemons_shutdown_flag_stops_the_collector() {
193
- // The collector observes the same flag the socket server does, so one
194
- // SIGTERM stops both. If this regressed, `systemctl stop` would hang until
195
- // its own timeout and then SIGKILL, losing whatever was buffered.
196
- let shutdown = Arc::new(AtomicBool::new(false));
197
-
198
- let handle = spawn_supervised(
199
- vec![TaskSpec::new("long-runner", |sd| async move {
200
- sd.sleep(Duration::from_secs(3600)).await;
201
- Ok(())
202
- })],
203
- shutdown.clone(),
204
- )
205
- .expect("supervisor should start");
206
-
207
- shutdown.store(true, Ordering::Relaxed);
208
-
209
- let drained = handle.join_with_flush(Duration::from_secs(5));
210
- assert!(
211
- drained,
212
- "the collector must stop when the daemon's shutdown flag is set"
213
- );
214
- }
215
-
216
- #[test]
217
- fn shutdown_interrupts_a_backoff_rather_than_serving_it_out() {
218
- // A task failing repeatedly climbs to a 60s backoff. Process exit must not
219
- // wait for that: without an interruptible sleep, stopping the daemon while
220
- // a source was backing off would block for up to a minute.
221
- let shutdown = Arc::new(AtomicBool::new(false));
222
- let starts = Arc::new(AtomicUsize::new(0));
223
-
224
- let s = starts.clone();
225
- let handle = spawn_supervised(
226
- vec![TaskSpec::new("always-fails", move |_sd| {
227
- let s = s.clone();
228
- async move {
229
- s.fetch_add(1, Ordering::SeqCst);
230
- Err(TaskError::from("nope"))
231
- }
232
- })],
233
- shutdown.clone(),
234
- )
235
- .expect("supervisor should start");
236
-
237
- // Let it fail once and enter its backoff.
238
- assert!(wait_until(Duration::from_secs(2), || starts
239
- .load(Ordering::SeqCst)
240
- >= 1));
241
-
242
- let t0 = Instant::now();
243
- shutdown.store(true, Ordering::Relaxed);
244
- let drained = handle.join_with_flush(Duration::from_secs(5));
245
- let elapsed = t0.elapsed();
246
-
247
- assert!(drained, "must drain");
248
- assert!(
249
- elapsed < Duration::from_millis(1500),
250
- "shutdown waited out the backoff instead of interrupting it: took {elapsed:?}"
251
- );
252
- }
253
-
254
- #[test]
255
- fn join_with_flush_gives_up_on_a_wedged_task_instead_of_hanging() {
256
- // The bound we actually promise. A task that ignores shutdown — stuck in a
257
- // blocking syscall, say — delays process exit by the flush budget and no
258
- // more. Hanging here is precisely the failure this module exists to
259
- // prevent, because the daemon would never exit and the service manager
260
- // would SIGKILL it mid-write.
261
- let shutdown = Arc::new(AtomicBool::new(false));
262
-
263
- let handle = spawn_supervised(
264
- vec![TaskSpec::new("wedged", |_sd| async {
265
- // `spawn_blocking` is not cancellable, which is exactly the shape
266
- // of a real wedge (a synchronous read on a stalled filesystem).
267
- tokio::task::spawn_blocking(|| std::thread::sleep(Duration::from_secs(30)))
268
- .await
269
- .ok();
270
- Ok(())
271
- })],
272
- shutdown.clone(),
273
- )
274
- .expect("supervisor should start");
275
-
276
- std::thread::sleep(Duration::from_millis(200));
277
-
278
- let t0 = Instant::now();
279
- let drained = handle.join_with_flush(Duration::from_millis(600));
280
- let elapsed = t0.elapsed();
281
-
282
- assert!(
283
- !drained,
284
- "a wedged task should report that it did not drain"
285
- );
286
- assert!(
287
- elapsed < Duration::from_secs(3),
288
- "join must respect its budget rather than waiting for the wedged task: took {elapsed:?}"
289
- );
290
- }