failproofai 1.0.1-beta.1 → 1.0.2-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1222) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +6 -6
  3. package/.next/standalone/.next/prerender-manifest.json +6 -6
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
  6. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js +2 -2
  8. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
  13. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  14. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -3
  16. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
  18. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  22. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  23. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +14 -14
  24. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  25. package/.next/standalone/.next/server/app/api/audit/invite/route.js +3 -2
  26. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/audit/run/route.js +5 -4
  28. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/auth/login-request/route.js +3 -3
  31. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +4 -3
  33. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/auth/logout/route.js +4 -4
  35. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/auth/status/route.js +4 -4
  37. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +1 -1
  39. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/audit/page/build-manifest.json +3 -3
  41. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  42. package/.next/standalone/.next/server/app/audit/page.js +3 -3
  43. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/index.html +1 -1
  46. package/.next/standalone/.next/server/app/index.rsc +15 -15
  47. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +14 -14
  48. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  49. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  50. package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
  51. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  52. package/.next/standalone/.next/server/app/page.js +2 -2
  53. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/policies/page/build-manifest.json +3 -3
  56. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +66 -22
  57. package/.next/standalone/.next/server/app/policies/page.js +5 -4
  58. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +3 -3
  61. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  62. package/.next/standalone/.next/server/app/project/[name]/page.js +3 -3
  63. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +3 -3
  66. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  67. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  68. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +4 -4
  69. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/projects/page/build-manifest.json +3 -3
  72. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  73. package/.next/standalone/.next/server/app/projects/page.js +3 -3
  74. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/settings/page/build-manifest.json +3 -3
  77. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +4 -4
  78. package/.next/standalone/.next/server/app/settings/page.js +2 -2
  79. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/chunks/{[externals]__1qzqcio._.js → [externals]__0e32-7c._.js} +1 -1
  82. package/.next/standalone/.next/server/chunks/[externals]__1s462yl._.js +3 -0
  83. package/.next/standalone/.next/server/chunks/[root-of-the-server]__01eqny5._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_0xu5z._.js +1 -1
  85. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1p8poxd._.js → [root-of-the-server]__0igxt32._.js} +2 -2
  86. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0neqlu-._.js +3 -0
  87. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o07qi9._.js +3 -0
  88. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t9oqnn._.js +3 -0
  89. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1adacul._.js +5 -5
  90. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0ny9q5d._.js → [root-of-the-server]__1l-khtb._.js} +1 -1
  91. package/.next/standalone/.next/server/chunks/_0bs-v8p._.js +3 -0
  92. package/.next/standalone/.next/server/chunks/_0tovk6q._.js +3 -0
  93. package/.next/standalone/.next/server/chunks/_0trp3yc._.js +3 -0
  94. package/.next/standalone/.next/server/chunks/_185gyk9._.js +3 -0
  95. package/.next/standalone/.next/server/chunks/_1ek68ln._.js +5 -6
  96. package/.next/standalone/.next/server/chunks/_1vslkoe._.js +1 -1
  97. package/.next/standalone/.next/server/chunks/lib_telemetry-id_ts_1k8gj9o._.js +3 -0
  98. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oi._.js +2 -2
  99. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_0f-x2b0._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_04op_ou._.js} +1 -1
  100. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p7._.js +2 -2
  101. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_0hwvl7e._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_0dr20uz._.js} +1 -1
  102. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_1ctjdzl._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_0el6rg8._.js} +1 -1
  103. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  104. package/.next/standalone/.next/server/chunks/src_hooks_0xbw3bu._.js +12 -0
  105. package/.next/standalone/.next/server/chunks/src_hooks_fp-home_ts_09kv0bn._.js +1 -1
  106. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__013jr2b._.js +4 -0
  107. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01wy8d-._.js +4 -0
  108. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02npjtd._.js +4 -0
  109. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0spkm68._.js → [root-of-the-server]__07gm3zl._.js} +21 -20
  110. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cxe_2_._.js +2 -2
  111. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0da85px._.js +4 -0
  112. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ftmoxc._.js +4 -0
  113. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__15c_z97._.js → [root-of-the-server]__0jzbk4_._.js} +1 -1
  114. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0oa1lav._.js +1 -1
  115. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0p-5p8u._.js +4 -0
  116. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s740oi._.js +6 -0
  117. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zig5sv._.js +3 -0
  118. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__192nhvh._.js +5 -0
  119. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__07oh8b5._.js → [root-of-the-server]__1ctpynv._.js} +1 -1
  120. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__11z_299._.js → [root-of-the-server]__1m84s36._.js} +1 -1
  121. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1p2otjt._.js +4 -0
  122. package/.next/standalone/.next/server/chunks/ssr/_00e9tnf._.js +23 -0
  123. package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/{_04j57fb._.js → _0h_douw._.js} +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/{_0qk91ba._.js → _12l4a_k._.js} +1 -1
  126. package/.next/standalone/.next/server/chunks/ssr/_1_ozgif._.js +1 -1
  127. package/.next/standalone/.next/server/chunks/ssr/{_0hom1s1._.js → _1u8-lu2._.js} +2 -2
  128. package/.next/standalone/.next/server/chunks/ssr/{_1q7j05x._.js → _1zopuov._.js} +2 -2
  129. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +13 -13
  130. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  131. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +2 -2
  132. package/.next/standalone/.next/server/chunks/ssr/app_settings_settings-client_tsx_20lq-mq._.js +1 -1
  133. package/.next/standalone/.next/server/chunks/ssr/node_modules_13n822a._.js +3 -0
  134. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_1n3w9lb._.js +1 -1
  135. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +1 -1
  136. package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js +2 -2
  137. package/.next/standalone/.next/server/chunks/ssr/src_hooks_08o7bqo._.js +10 -0
  138. package/.next/standalone/.next/server/chunks/ssr/src_hooks_builtin-policies_ts_09j2ndl._.js +1 -1
  139. package/.next/standalone/.next/server/chunks/ssr/src_hooks_fp-home_ts_0je3xkv._.js +1 -1
  140. package/.next/standalone/.next/server/middleware-build-manifest.js +6 -6
  141. package/.next/standalone/.next/server/middleware.js +1 -1
  142. package/.next/standalone/.next/server/pages/404.html +1 -1
  143. package/.next/standalone/.next/server/pages/500.html +1 -1
  144. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/server-reference-manifest.json +71 -27
  146. package/.next/standalone/.next/static/chunks/{01b0vu6t3wtfh.js → 0eqky-7n7dgdm.js} +1 -1
  147. package/.next/standalone/.next/static/chunks/{1x9238y5kw9vi.js → 0sa9v5mhc8861.js} +13 -13
  148. package/.next/standalone/.next/static/chunks/1mfzsja6ftim5.css +2 -0
  149. package/.next/standalone/.next/static/chunks/{1cn6xl9lfp3ei.js → 1nuqytbta44af.js} +1 -1
  150. package/.next/standalone/.next/static/chunks/1oml7c7env4-g.js +31 -0
  151. package/.next/standalone/.next/static/chunks/1sl2xmn9inx3y.js +6 -0
  152. package/.next/standalone/.next/static/chunks/1za08zjcctyil.js +22 -0
  153. package/.next/standalone/.next/static/chunks/{25c48grb44a-n.js → 2aawsjld9ied_.js} +1 -1
  154. package/.next/standalone/.next/static/chunks/2gn7ut4svofm2.js +1 -0
  155. package/.next/standalone/.next/static/chunks/{1e_2h_-zvxnke.js → 2hs7ycvsav7v2.js} +1 -1
  156. package/.next/standalone/.next/static/chunks/{2hhselnqeo4ll.js → 2i2yt3hzjredm.js} +1 -1
  157. package/.next/standalone/.next/static/chunks/{0w-2enf8raksk.js → 35xg6retpe6rp.js} +1 -1
  158. package/.next/standalone/.next/static/chunks/{28bdm54bngvc7.js → 3y54nw0i7dsjl.js} +1 -1
  159. package/.next/standalone/.next/static/chunks/{turbopack-0-gxz80mjds94.js → turbopack-3kjgdgwci4tqf.js} +1 -1
  160. package/.next/standalone/SECURITY.md +5 -4
  161. package/.next/standalone/app/actions/get-hooks-config.ts +108 -17
  162. package/.next/standalone/app/actions/pack-actions.ts +153 -0
  163. package/.next/standalone/app/audit/_components/run-progress.tsx +1 -1
  164. package/.next/standalone/app/audit/_components/share-templates.ts +13 -13
  165. package/.next/standalone/app/policies/hooks-client.tsx +320 -14
  166. package/.next/standalone/components/navbar.tsx +2 -28
  167. package/.next/standalone/components/reach-developers.tsx +8 -1
  168. package/.next/standalone/docs-old/agenteye/alerts.mdx +63 -0
  169. package/.next/standalone/docs-old/agenteye/api-keys.mdx +280 -0
  170. package/.next/standalone/docs-old/agenteye/assistant.mdx +63 -0
  171. package/.next/standalone/docs-old/agenteye/audits.mdx +54 -0
  172. package/.next/standalone/docs-old/agenteye/cli-and-agents.mdx +80 -0
  173. package/.next/standalone/docs-old/agenteye/cli-recipes.mdx +179 -0
  174. package/.next/standalone/docs-old/agenteye/cli-skill.mdx +159 -0
  175. package/.next/standalone/docs-old/agenteye/cli.mdx +350 -0
  176. package/.next/standalone/docs-old/agenteye/codex-capture.mdx +55 -0
  177. package/.next/standalone/docs-old/agenteye/concepts.mdx +87 -0
  178. package/.next/standalone/docs-old/agenteye/dashboards.mdx +46 -0
  179. package/.next/standalone/docs-old/agenteye/error-tracking.mdx +41 -0
  180. package/.next/standalone/docs-old/agenteye/evaluation-suite.mdx +402 -0
  181. package/.next/standalone/docs-old/agenteye/evaluations.mdx +51 -0
  182. package/.next/standalone/docs-old/agenteye/evaluator-skill.mdx +167 -0
  183. package/.next/standalone/docs-old/agenteye/event-stream.mdx +50 -0
  184. package/.next/standalone/docs-old/agenteye/hermes-capture.mdx +53 -0
  185. package/.next/standalone/docs-old/agenteye/images/alert-new.png +0 -0
  186. package/.next/standalone/docs-old/agenteye/images/alerts.png +0 -0
  187. package/.next/standalone/docs-old/agenteye/images/api-keys.png +0 -0
  188. package/.next/standalone/docs-old/agenteye/images/assistant.png +0 -0
  189. package/.next/standalone/docs-old/agenteye/images/audits.png +0 -0
  190. package/.next/standalone/docs-old/agenteye/images/dashboard-fleet.png +0 -0
  191. package/.next/standalone/docs-old/agenteye/images/dashboard-quality.png +0 -0
  192. package/.next/standalone/docs-old/agenteye/images/errors.png +0 -0
  193. package/.next/standalone/docs-old/agenteye/images/events-stream.png +0 -0
  194. package/.next/standalone/docs-old/agenteye/images/hooks.png +0 -0
  195. package/.next/standalone/docs-old/agenteye/images/incident-detail.png +0 -0
  196. package/.next/standalone/docs-old/agenteye/images/incidents.png +0 -0
  197. package/.next/standalone/docs-old/agenteye/images/login.png +0 -0
  198. package/.next/standalone/docs-old/agenteye/images/models.png +0 -0
  199. package/.next/standalone/docs-old/agenteye/images/queries.png +0 -0
  200. package/.next/standalone/docs-old/agenteye/images/query-lab.png +0 -0
  201. package/.next/standalone/docs-old/agenteye/images/session-detail.png +0 -0
  202. package/.next/standalone/docs-old/agenteye/images/sessions-list.png +0 -0
  203. package/.next/standalone/docs-old/agenteye/images/settings.png +0 -0
  204. package/.next/standalone/docs-old/agenteye/images/tools.png +0 -0
  205. package/.next/standalone/docs-old/agenteye/images/users.png +0 -0
  206. package/.next/standalone/docs-old/agenteye/images/video-audit.jpg +0 -0
  207. package/.next/standalone/docs-old/agenteye/images/video-tracing.jpg +0 -0
  208. package/.next/standalone/docs-old/agenteye/incidents.mdx +50 -0
  209. package/.next/standalone/docs-old/agenteye/observability.mdx +23 -0
  210. package/.next/standalone/docs-old/agenteye/openclaw-capture.mdx +49 -0
  211. package/.next/standalone/docs-old/agenteye/overview.mdx +108 -0
  212. package/.next/standalone/docs-old/agenteye/python-sdk-skill.mdx +131 -0
  213. package/.next/standalone/docs-old/agenteye/python-sdk.mdx +460 -0
  214. package/.next/standalone/docs-old/agenteye/queries.mdx +56 -0
  215. package/.next/standalone/docs-old/agenteye/security.mdx +68 -0
  216. package/.next/standalone/docs-old/agenteye/sessions.mdx +57 -0
  217. package/.next/standalone/docs-old/agenteye/telemetry.mdx +52 -0
  218. package/.next/standalone/docs-old/ar/agenteye/alerts.mdx +63 -0
  219. package/.next/standalone/docs-old/ar/agenteye/api-keys.mdx +279 -0
  220. package/.next/standalone/docs-old/ar/agenteye/assistant.mdx +62 -0
  221. package/.next/standalone/docs-old/ar/agenteye/audits.mdx +55 -0
  222. package/.next/standalone/docs-old/ar/agenteye/cli-and-agents.mdx +81 -0
  223. package/.next/standalone/docs-old/ar/agenteye/cli-recipes.mdx +178 -0
  224. package/.next/standalone/docs-old/ar/agenteye/cli-skill.mdx +160 -0
  225. package/.next/standalone/docs-old/ar/agenteye/cli.mdx +349 -0
  226. package/.next/standalone/docs-old/ar/agenteye/codex-capture.mdx +56 -0
  227. package/.next/standalone/docs-old/ar/agenteye/concepts.mdx +88 -0
  228. package/.next/standalone/docs-old/ar/agenteye/dashboards.mdx +46 -0
  229. package/.next/standalone/docs-old/ar/agenteye/error-tracking.mdx +41 -0
  230. package/.next/standalone/docs-old/ar/agenteye/evaluation-suite.mdx +299 -0
  231. package/.next/standalone/docs-old/ar/agenteye/evaluations.mdx +51 -0
  232. package/.next/standalone/docs-old/ar/agenteye/evaluator-skill.mdx +168 -0
  233. package/.next/standalone/docs-old/ar/agenteye/event-stream.mdx +50 -0
  234. package/.next/standalone/docs-old/ar/agenteye/hermes-capture.mdx +54 -0
  235. package/.next/standalone/docs-old/ar/agenteye/incidents.mdx +51 -0
  236. package/.next/standalone/docs-old/ar/agenteye/observability.mdx +24 -0
  237. package/.next/standalone/docs-old/ar/agenteye/openclaw-capture.mdx +50 -0
  238. package/.next/standalone/docs-old/ar/agenteye/overview.mdx +108 -0
  239. package/.next/standalone/docs-old/ar/agenteye/python-sdk-skill.mdx +129 -0
  240. package/.next/standalone/docs-old/ar/agenteye/python-sdk.mdx +435 -0
  241. package/.next/standalone/docs-old/ar/agenteye/queries.mdx +57 -0
  242. package/.next/standalone/docs-old/ar/agenteye/security.mdx +68 -0
  243. package/.next/standalone/docs-old/ar/agenteye/sessions.mdx +58 -0
  244. package/.next/standalone/docs-old/ar/agenteye/telemetry.mdx +52 -0
  245. package/.next/standalone/docs-old/ar/architecture.mdx +333 -0
  246. package/.next/standalone/docs-old/ar/built-in-policies.mdx +860 -0
  247. package/.next/standalone/docs-old/ar/cli/audit.mdx +120 -0
  248. package/.next/standalone/docs-old/ar/cli/dashboard.mdx +30 -0
  249. package/.next/standalone/docs-old/ar/cli/environment-variables.mdx +70 -0
  250. package/.next/standalone/docs-old/ar/cli/hook.mdx +31 -0
  251. package/.next/standalone/docs-old/ar/cli/install-policies.mdx +57 -0
  252. package/.next/standalone/docs-old/ar/cli/list-policies.mdx +32 -0
  253. package/.next/standalone/docs-old/ar/cli/migrate.mdx +110 -0
  254. package/.next/standalone/docs-old/ar/cli/remove-policies.mdx +44 -0
  255. package/.next/standalone/docs-old/ar/cli/update.mdx +79 -0
  256. package/.next/standalone/docs-old/ar/cli/version.mdx +13 -0
  257. package/.next/standalone/docs-old/ar/configuration.mdx +268 -0
  258. package/.next/standalone/docs-old/ar/custom-policies.mdx +359 -0
  259. package/.next/standalone/docs-old/ar/dashboard.mdx +152 -0
  260. package/.next/standalone/docs-old/ar/examples.mdx +307 -0
  261. package/.next/standalone/docs-old/ar/for-agents.mdx +38 -0
  262. package/.next/standalone/docs-old/ar/getting-started.mdx +199 -0
  263. package/.next/standalone/docs-old/ar/introduction.mdx +58 -0
  264. package/.next/standalone/docs-old/ar/package-aliases.mdx +83 -0
  265. package/.next/standalone/docs-old/ar/testing.mdx +260 -0
  266. package/.next/standalone/docs-old/architecture.mdx +332 -0
  267. package/.next/standalone/docs-old/built-in-policies.mdx +859 -0
  268. package/.next/standalone/docs-old/cli/audit.mdx +188 -0
  269. package/.next/standalone/docs-old/cli/dashboard.mdx +29 -0
  270. package/.next/standalone/docs-old/cli/environment-variables.mdx +75 -0
  271. package/.next/standalone/docs-old/cli/hook.mdx +30 -0
  272. package/.next/standalone/docs-old/cli/install-policies.mdx +57 -0
  273. package/.next/standalone/docs-old/cli/list-policies.mdx +31 -0
  274. package/.next/standalone/docs-old/cli/migrate.mdx +117 -0
  275. package/.next/standalone/docs-old/cli/remove-policies.mdx +43 -0
  276. package/.next/standalone/docs-old/cli/update.mdx +94 -0
  277. package/.next/standalone/docs-old/cli/version.mdx +12 -0
  278. package/.next/standalone/docs-old/configuration.mdx +295 -0
  279. package/.next/standalone/docs-old/custom-policies.mdx +362 -0
  280. package/.next/standalone/docs-old/dashboard.mdx +176 -0
  281. package/.next/standalone/docs-old/de/agenteye/alerts.mdx +63 -0
  282. package/.next/standalone/docs-old/de/agenteye/api-keys.mdx +280 -0
  283. package/.next/standalone/docs-old/de/agenteye/assistant.mdx +63 -0
  284. package/.next/standalone/docs-old/de/agenteye/audits.mdx +54 -0
  285. package/.next/standalone/docs-old/de/agenteye/cli-and-agents.mdx +80 -0
  286. package/.next/standalone/docs-old/de/agenteye/cli-recipes.mdx +179 -0
  287. package/.next/standalone/docs-old/de/agenteye/cli-skill.mdx +159 -0
  288. package/.next/standalone/docs-old/de/agenteye/cli.mdx +350 -0
  289. package/.next/standalone/docs-old/de/agenteye/codex-capture.mdx +55 -0
  290. package/.next/standalone/docs-old/de/agenteye/concepts.mdx +87 -0
  291. package/.next/standalone/docs-old/de/agenteye/dashboards.mdx +46 -0
  292. package/.next/standalone/docs-old/de/agenteye/error-tracking.mdx +41 -0
  293. package/.next/standalone/docs-old/de/agenteye/evaluation-suite.mdx +300 -0
  294. package/.next/standalone/docs-old/de/agenteye/evaluations.mdx +50 -0
  295. package/.next/standalone/docs-old/de/agenteye/evaluator-skill.mdx +167 -0
  296. package/.next/standalone/docs-old/de/agenteye/event-stream.mdx +50 -0
  297. package/.next/standalone/docs-old/de/agenteye/hermes-capture.mdx +53 -0
  298. package/.next/standalone/docs-old/de/agenteye/incidents.mdx +50 -0
  299. package/.next/standalone/docs-old/de/agenteye/observability.mdx +23 -0
  300. package/.next/standalone/docs-old/de/agenteye/openclaw-capture.mdx +49 -0
  301. package/.next/standalone/docs-old/de/agenteye/overview.mdx +108 -0
  302. package/.next/standalone/docs-old/de/agenteye/python-sdk-skill.mdx +131 -0
  303. package/.next/standalone/docs-old/de/agenteye/python-sdk.mdx +436 -0
  304. package/.next/standalone/docs-old/de/agenteye/queries.mdx +56 -0
  305. package/.next/standalone/docs-old/de/agenteye/security.mdx +68 -0
  306. package/.next/standalone/docs-old/de/agenteye/sessions.mdx +57 -0
  307. package/.next/standalone/docs-old/de/agenteye/telemetry.mdx +52 -0
  308. package/.next/standalone/docs-old/de/architecture.mdx +332 -0
  309. package/.next/standalone/docs-old/de/built-in-policies.mdx +859 -0
  310. package/.next/standalone/docs-old/de/cli/audit.mdx +131 -0
  311. package/.next/standalone/docs-old/de/cli/dashboard.mdx +29 -0
  312. package/.next/standalone/docs-old/de/cli/environment-variables.mdx +72 -0
  313. package/.next/standalone/docs-old/de/cli/hook.mdx +30 -0
  314. package/.next/standalone/docs-old/de/cli/install-policies.mdx +57 -0
  315. package/.next/standalone/docs-old/de/cli/list-policies.mdx +31 -0
  316. package/.next/standalone/docs-old/de/cli/migrate.mdx +122 -0
  317. package/.next/standalone/docs-old/de/cli/remove-policies.mdx +43 -0
  318. package/.next/standalone/docs-old/de/cli/update.mdx +75 -0
  319. package/.next/standalone/docs-old/de/cli/version.mdx +12 -0
  320. package/.next/standalone/docs-old/de/configuration.mdx +272 -0
  321. package/.next/standalone/docs-old/de/custom-policies.mdx +358 -0
  322. package/.next/standalone/docs-old/de/dashboard.mdx +151 -0
  323. package/.next/standalone/docs-old/de/examples.mdx +307 -0
  324. package/.next/standalone/docs-old/de/for-agents.mdx +38 -0
  325. package/.next/standalone/docs-old/de/getting-started.mdx +199 -0
  326. package/.next/standalone/docs-old/de/introduction.mdx +57 -0
  327. package/.next/standalone/docs-old/de/package-aliases.mdx +82 -0
  328. package/.next/standalone/docs-old/de/testing.mdx +260 -0
  329. package/.next/standalone/docs-old/docs.json +1830 -0
  330. package/.next/standalone/docs-old/es/agenteye/alerts.mdx +63 -0
  331. package/.next/standalone/docs-old/es/agenteye/api-keys.mdx +280 -0
  332. package/.next/standalone/docs-old/es/agenteye/assistant.mdx +63 -0
  333. package/.next/standalone/docs-old/es/agenteye/audits.mdx +54 -0
  334. package/.next/standalone/docs-old/es/agenteye/cli-and-agents.mdx +80 -0
  335. package/.next/standalone/docs-old/es/agenteye/cli-recipes.mdx +178 -0
  336. package/.next/standalone/docs-old/es/agenteye/cli-skill.mdx +159 -0
  337. package/.next/standalone/docs-old/es/agenteye/cli.mdx +350 -0
  338. package/.next/standalone/docs-old/es/agenteye/codex-capture.mdx +55 -0
  339. package/.next/standalone/docs-old/es/agenteye/concepts.mdx +87 -0
  340. package/.next/standalone/docs-old/es/agenteye/dashboards.mdx +46 -0
  341. package/.next/standalone/docs-old/es/agenteye/error-tracking.mdx +41 -0
  342. package/.next/standalone/docs-old/es/agenteye/evaluation-suite.mdx +300 -0
  343. package/.next/standalone/docs-old/es/agenteye/evaluations.mdx +50 -0
  344. package/.next/standalone/docs-old/es/agenteye/evaluator-skill.mdx +167 -0
  345. package/.next/standalone/docs-old/es/agenteye/event-stream.mdx +50 -0
  346. package/.next/standalone/docs-old/es/agenteye/hermes-capture.mdx +53 -0
  347. package/.next/standalone/docs-old/es/agenteye/incidents.mdx +50 -0
  348. package/.next/standalone/docs-old/es/agenteye/observability.mdx +23 -0
  349. package/.next/standalone/docs-old/es/agenteye/openclaw-capture.mdx +49 -0
  350. package/.next/standalone/docs-old/es/agenteye/overview.mdx +108 -0
  351. package/.next/standalone/docs-old/es/agenteye/python-sdk-skill.mdx +135 -0
  352. package/.next/standalone/docs-old/es/agenteye/python-sdk.mdx +436 -0
  353. package/.next/standalone/docs-old/es/agenteye/queries.mdx +56 -0
  354. package/.next/standalone/docs-old/es/agenteye/security.mdx +68 -0
  355. package/.next/standalone/docs-old/es/agenteye/sessions.mdx +56 -0
  356. package/.next/standalone/docs-old/es/agenteye/telemetry.mdx +52 -0
  357. package/.next/standalone/docs-old/es/architecture.mdx +332 -0
  358. package/.next/standalone/docs-old/es/built-in-policies.mdx +853 -0
  359. package/.next/standalone/docs-old/es/cli/audit.mdx +137 -0
  360. package/.next/standalone/docs-old/es/cli/dashboard.mdx +29 -0
  361. package/.next/standalone/docs-old/es/cli/environment-variables.mdx +72 -0
  362. package/.next/standalone/docs-old/es/cli/hook.mdx +30 -0
  363. package/.next/standalone/docs-old/es/cli/install-policies.mdx +57 -0
  364. package/.next/standalone/docs-old/es/cli/list-policies.mdx +31 -0
  365. package/.next/standalone/docs-old/es/cli/migrate.mdx +86 -0
  366. package/.next/standalone/docs-old/es/cli/remove-policies.mdx +43 -0
  367. package/.next/standalone/docs-old/es/cli/update.mdx +64 -0
  368. package/.next/standalone/docs-old/es/cli/version.mdx +12 -0
  369. package/.next/standalone/docs-old/es/configuration.mdx +271 -0
  370. package/.next/standalone/docs-old/es/custom-policies.mdx +358 -0
  371. package/.next/standalone/docs-old/es/dashboard.mdx +151 -0
  372. package/.next/standalone/docs-old/es/examples.mdx +307 -0
  373. package/.next/standalone/docs-old/es/for-agents.mdx +38 -0
  374. package/.next/standalone/docs-old/es/getting-started.mdx +199 -0
  375. package/.next/standalone/docs-old/es/introduction.mdx +57 -0
  376. package/.next/standalone/docs-old/es/package-aliases.mdx +82 -0
  377. package/.next/standalone/docs-old/es/testing.mdx +260 -0
  378. package/.next/standalone/docs-old/examples.mdx +307 -0
  379. package/.next/standalone/docs-old/favicon.ico +0 -0
  380. package/.next/standalone/docs-old/for-agents.mdx +38 -0
  381. package/.next/standalone/docs-old/fr/agenteye/alerts.mdx +63 -0
  382. package/.next/standalone/docs-old/fr/agenteye/api-keys.mdx +280 -0
  383. package/.next/standalone/docs-old/fr/agenteye/assistant.mdx +63 -0
  384. package/.next/standalone/docs-old/fr/agenteye/audits.mdx +54 -0
  385. package/.next/standalone/docs-old/fr/agenteye/cli-and-agents.mdx +79 -0
  386. package/.next/standalone/docs-old/fr/agenteye/cli-recipes.mdx +179 -0
  387. package/.next/standalone/docs-old/fr/agenteye/cli-skill.mdx +159 -0
  388. package/.next/standalone/docs-old/fr/agenteye/cli.mdx +350 -0
  389. package/.next/standalone/docs-old/fr/agenteye/codex-capture.mdx +55 -0
  390. package/.next/standalone/docs-old/fr/agenteye/concepts.mdx +87 -0
  391. package/.next/standalone/docs-old/fr/agenteye/dashboards.mdx +46 -0
  392. package/.next/standalone/docs-old/fr/agenteye/error-tracking.mdx +40 -0
  393. package/.next/standalone/docs-old/fr/agenteye/evaluation-suite.mdx +401 -0
  394. package/.next/standalone/docs-old/fr/agenteye/evaluations.mdx +50 -0
  395. package/.next/standalone/docs-old/fr/agenteye/evaluator-skill.mdx +167 -0
  396. package/.next/standalone/docs-old/fr/agenteye/event-stream.mdx +50 -0
  397. package/.next/standalone/docs-old/fr/agenteye/hermes-capture.mdx +53 -0
  398. package/.next/standalone/docs-old/fr/agenteye/incidents.mdx +50 -0
  399. package/.next/standalone/docs-old/fr/agenteye/observability.mdx +23 -0
  400. package/.next/standalone/docs-old/fr/agenteye/openclaw-capture.mdx +49 -0
  401. package/.next/standalone/docs-old/fr/agenteye/overview.mdx +108 -0
  402. package/.next/standalone/docs-old/fr/agenteye/python-sdk-skill.mdx +135 -0
  403. package/.next/standalone/docs-old/fr/agenteye/python-sdk.mdx +436 -0
  404. package/.next/standalone/docs-old/fr/agenteye/queries.mdx +56 -0
  405. package/.next/standalone/docs-old/fr/agenteye/security.mdx +68 -0
  406. package/.next/standalone/docs-old/fr/agenteye/sessions.mdx +57 -0
  407. package/.next/standalone/docs-old/fr/agenteye/telemetry.mdx +52 -0
  408. package/.next/standalone/docs-old/fr/architecture.mdx +332 -0
  409. package/.next/standalone/docs-old/fr/built-in-policies.mdx +851 -0
  410. package/.next/standalone/docs-old/fr/cli/audit.mdx +126 -0
  411. package/.next/standalone/docs-old/fr/cli/dashboard.mdx +29 -0
  412. package/.next/standalone/docs-old/fr/cli/environment-variables.mdx +70 -0
  413. package/.next/standalone/docs-old/fr/cli/hook.mdx +30 -0
  414. package/.next/standalone/docs-old/fr/cli/install-policies.mdx +57 -0
  415. package/.next/standalone/docs-old/fr/cli/list-policies.mdx +31 -0
  416. package/.next/standalone/docs-old/fr/cli/migrate.mdx +86 -0
  417. package/.next/standalone/docs-old/fr/cli/remove-policies.mdx +43 -0
  418. package/.next/standalone/docs-old/fr/cli/update.mdx +64 -0
  419. package/.next/standalone/docs-old/fr/cli/version.mdx +12 -0
  420. package/.next/standalone/docs-old/fr/configuration.mdx +271 -0
  421. package/.next/standalone/docs-old/fr/custom-policies.mdx +358 -0
  422. package/.next/standalone/docs-old/fr/dashboard.mdx +151 -0
  423. package/.next/standalone/docs-old/fr/examples.mdx +307 -0
  424. package/.next/standalone/docs-old/fr/for-agents.mdx +38 -0
  425. package/.next/standalone/docs-old/fr/getting-started.mdx +199 -0
  426. package/.next/standalone/docs-old/fr/introduction.mdx +57 -0
  427. package/.next/standalone/docs-old/fr/package-aliases.mdx +82 -0
  428. package/.next/standalone/docs-old/fr/testing.mdx +260 -0
  429. package/.next/standalone/docs-old/getting-started.mdx +201 -0
  430. package/.next/standalone/docs-old/he/agenteye/alerts.mdx +63 -0
  431. package/.next/standalone/docs-old/he/agenteye/api-keys.mdx +279 -0
  432. package/.next/standalone/docs-old/he/agenteye/assistant.mdx +63 -0
  433. package/.next/standalone/docs-old/he/agenteye/audits.mdx +53 -0
  434. package/.next/standalone/docs-old/he/agenteye/cli-and-agents.mdx +80 -0
  435. package/.next/standalone/docs-old/he/agenteye/cli-recipes.mdx +179 -0
  436. package/.next/standalone/docs-old/he/agenteye/cli-skill.mdx +160 -0
  437. package/.next/standalone/docs-old/he/agenteye/cli.mdx +349 -0
  438. package/.next/standalone/docs-old/he/agenteye/codex-capture.mdx +56 -0
  439. package/.next/standalone/docs-old/he/agenteye/concepts.mdx +87 -0
  440. package/.next/standalone/docs-old/he/agenteye/dashboards.mdx +46 -0
  441. package/.next/standalone/docs-old/he/agenteye/error-tracking.mdx +41 -0
  442. package/.next/standalone/docs-old/he/agenteye/evaluation-suite.mdx +299 -0
  443. package/.next/standalone/docs-old/he/agenteye/evaluations.mdx +51 -0
  444. package/.next/standalone/docs-old/he/agenteye/evaluator-skill.mdx +168 -0
  445. package/.next/standalone/docs-old/he/agenteye/event-stream.mdx +50 -0
  446. package/.next/standalone/docs-old/he/agenteye/hermes-capture.mdx +54 -0
  447. package/.next/standalone/docs-old/he/agenteye/incidents.mdx +50 -0
  448. package/.next/standalone/docs-old/he/agenteye/observability.mdx +23 -0
  449. package/.next/standalone/docs-old/he/agenteye/openclaw-capture.mdx +50 -0
  450. package/.next/standalone/docs-old/he/agenteye/overview.mdx +108 -0
  451. package/.next/standalone/docs-old/he/agenteye/python-sdk-skill.mdx +132 -0
  452. package/.next/standalone/docs-old/he/agenteye/python-sdk.mdx +436 -0
  453. package/.next/standalone/docs-old/he/agenteye/queries.mdx +56 -0
  454. package/.next/standalone/docs-old/he/agenteye/security.mdx +67 -0
  455. package/.next/standalone/docs-old/he/agenteye/sessions.mdx +58 -0
  456. package/.next/standalone/docs-old/he/agenteye/telemetry.mdx +52 -0
  457. package/.next/standalone/docs-old/he/architecture.mdx +332 -0
  458. package/.next/standalone/docs-old/he/built-in-policies.mdx +857 -0
  459. package/.next/standalone/docs-old/he/cli/audit.mdx +116 -0
  460. package/.next/standalone/docs-old/he/cli/dashboard.mdx +30 -0
  461. package/.next/standalone/docs-old/he/cli/environment-variables.mdx +69 -0
  462. package/.next/standalone/docs-old/he/cli/hook.mdx +30 -0
  463. package/.next/standalone/docs-old/he/cli/install-policies.mdx +58 -0
  464. package/.next/standalone/docs-old/he/cli/list-policies.mdx +32 -0
  465. package/.next/standalone/docs-old/he/cli/migrate.mdx +87 -0
  466. package/.next/standalone/docs-old/he/cli/remove-policies.mdx +44 -0
  467. package/.next/standalone/docs-old/he/cli/update.mdx +64 -0
  468. package/.next/standalone/docs-old/he/cli/version.mdx +13 -0
  469. package/.next/standalone/docs-old/he/configuration.mdx +264 -0
  470. package/.next/standalone/docs-old/he/custom-policies.mdx +359 -0
  471. package/.next/standalone/docs-old/he/dashboard.mdx +155 -0
  472. package/.next/standalone/docs-old/he/examples.mdx +308 -0
  473. package/.next/standalone/docs-old/he/for-agents.mdx +38 -0
  474. package/.next/standalone/docs-old/he/getting-started.mdx +200 -0
  475. package/.next/standalone/docs-old/he/introduction.mdx +58 -0
  476. package/.next/standalone/docs-old/he/package-aliases.mdx +82 -0
  477. package/.next/standalone/docs-old/he/testing.mdx +260 -0
  478. package/.next/standalone/docs-old/hi/agenteye/alerts.mdx +62 -0
  479. package/.next/standalone/docs-old/hi/agenteye/api-keys.mdx +279 -0
  480. package/.next/standalone/docs-old/hi/agenteye/assistant.mdx +63 -0
  481. package/.next/standalone/docs-old/hi/agenteye/audits.mdx +53 -0
  482. package/.next/standalone/docs-old/hi/agenteye/cli-and-agents.mdx +80 -0
  483. package/.next/standalone/docs-old/hi/agenteye/cli-recipes.mdx +178 -0
  484. package/.next/standalone/docs-old/hi/agenteye/cli-skill.mdx +159 -0
  485. package/.next/standalone/docs-old/hi/agenteye/cli.mdx +350 -0
  486. package/.next/standalone/docs-old/hi/agenteye/codex-capture.mdx +56 -0
  487. package/.next/standalone/docs-old/hi/agenteye/concepts.mdx +87 -0
  488. package/.next/standalone/docs-old/hi/agenteye/dashboards.mdx +47 -0
  489. package/.next/standalone/docs-old/hi/agenteye/error-tracking.mdx +42 -0
  490. package/.next/standalone/docs-old/hi/agenteye/evaluation-suite.mdx +299 -0
  491. package/.next/standalone/docs-old/hi/agenteye/evaluations.mdx +51 -0
  492. package/.next/standalone/docs-old/hi/agenteye/evaluator-skill.mdx +171 -0
  493. package/.next/standalone/docs-old/hi/agenteye/event-stream.mdx +49 -0
  494. package/.next/standalone/docs-old/hi/agenteye/hermes-capture.mdx +53 -0
  495. package/.next/standalone/docs-old/hi/agenteye/incidents.mdx +50 -0
  496. package/.next/standalone/docs-old/hi/agenteye/observability.mdx +23 -0
  497. package/.next/standalone/docs-old/hi/agenteye/openclaw-capture.mdx +50 -0
  498. package/.next/standalone/docs-old/hi/agenteye/overview.mdx +107 -0
  499. package/.next/standalone/docs-old/hi/agenteye/python-sdk-skill.mdx +133 -0
  500. package/.next/standalone/docs-old/hi/agenteye/python-sdk.mdx +434 -0
  501. package/.next/standalone/docs-old/hi/agenteye/queries.mdx +57 -0
  502. package/.next/standalone/docs-old/hi/agenteye/security.mdx +68 -0
  503. package/.next/standalone/docs-old/hi/agenteye/sessions.mdx +57 -0
  504. package/.next/standalone/docs-old/hi/agenteye/telemetry.mdx +51 -0
  505. package/.next/standalone/docs-old/hi/architecture.mdx +332 -0
  506. package/.next/standalone/docs-old/hi/built-in-policies.mdx +848 -0
  507. package/.next/standalone/docs-old/hi/cli/audit.mdx +117 -0
  508. package/.next/standalone/docs-old/hi/cli/dashboard.mdx +29 -0
  509. package/.next/standalone/docs-old/hi/cli/environment-variables.mdx +64 -0
  510. package/.next/standalone/docs-old/hi/cli/hook.mdx +30 -0
  511. package/.next/standalone/docs-old/hi/cli/install-policies.mdx +57 -0
  512. package/.next/standalone/docs-old/hi/cli/list-policies.mdx +31 -0
  513. package/.next/standalone/docs-old/hi/cli/migrate.mdx +85 -0
  514. package/.next/standalone/docs-old/hi/cli/remove-policies.mdx +43 -0
  515. package/.next/standalone/docs-old/hi/cli/update.mdx +65 -0
  516. package/.next/standalone/docs-old/hi/cli/version.mdx +12 -0
  517. package/.next/standalone/docs-old/hi/configuration.mdx +264 -0
  518. package/.next/standalone/docs-old/hi/custom-policies.mdx +359 -0
  519. package/.next/standalone/docs-old/hi/dashboard.mdx +152 -0
  520. package/.next/standalone/docs-old/hi/examples.mdx +307 -0
  521. package/.next/standalone/docs-old/hi/for-agents.mdx +38 -0
  522. package/.next/standalone/docs-old/hi/getting-started.mdx +200 -0
  523. package/.next/standalone/docs-old/hi/introduction.mdx +58 -0
  524. package/.next/standalone/docs-old/hi/package-aliases.mdx +83 -0
  525. package/.next/standalone/docs-old/hi/testing.mdx +260 -0
  526. package/.next/standalone/docs-old/i18n/README.ar.md +231 -0
  527. package/.next/standalone/docs-old/i18n/README.de.md +226 -0
  528. package/.next/standalone/docs-old/i18n/README.es.md +226 -0
  529. package/.next/standalone/docs-old/i18n/README.fr.md +226 -0
  530. package/.next/standalone/docs-old/i18n/README.he.md +231 -0
  531. package/.next/standalone/docs-old/i18n/README.hi.md +223 -0
  532. package/.next/standalone/docs-old/i18n/README.it.md +226 -0
  533. package/.next/standalone/docs-old/i18n/README.ja.md +220 -0
  534. package/.next/standalone/docs-old/i18n/README.ko.md +226 -0
  535. package/.next/standalone/docs-old/i18n/README.pt-br.md +226 -0
  536. package/.next/standalone/docs-old/i18n/README.ru.md +223 -0
  537. package/.next/standalone/docs-old/i18n/README.tr.md +222 -0
  538. package/.next/standalone/docs-old/i18n/README.vi.md +226 -0
  539. package/.next/standalone/docs-old/i18n/README.zh.md +220 -0
  540. package/.next/standalone/docs-old/introduction.mdx +57 -0
  541. package/.next/standalone/docs-old/it/agenteye/alerts.mdx +62 -0
  542. package/.next/standalone/docs-old/it/agenteye/api-keys.mdx +279 -0
  543. package/.next/standalone/docs-old/it/agenteye/assistant.mdx +63 -0
  544. package/.next/standalone/docs-old/it/agenteye/audits.mdx +54 -0
  545. package/.next/standalone/docs-old/it/agenteye/cli-and-agents.mdx +80 -0
  546. package/.next/standalone/docs-old/it/agenteye/cli-recipes.mdx +179 -0
  547. package/.next/standalone/docs-old/it/agenteye/cli-skill.mdx +159 -0
  548. package/.next/standalone/docs-old/it/agenteye/cli.mdx +349 -0
  549. package/.next/standalone/docs-old/it/agenteye/codex-capture.mdx +56 -0
  550. package/.next/standalone/docs-old/it/agenteye/concepts.mdx +87 -0
  551. package/.next/standalone/docs-old/it/agenteye/dashboards.mdx +46 -0
  552. package/.next/standalone/docs-old/it/agenteye/error-tracking.mdx +41 -0
  553. package/.next/standalone/docs-old/it/agenteye/evaluation-suite.mdx +299 -0
  554. package/.next/standalone/docs-old/it/agenteye/evaluations.mdx +51 -0
  555. package/.next/standalone/docs-old/it/agenteye/evaluator-skill.mdx +170 -0
  556. package/.next/standalone/docs-old/it/agenteye/event-stream.mdx +50 -0
  557. package/.next/standalone/docs-old/it/agenteye/hermes-capture.mdx +53 -0
  558. package/.next/standalone/docs-old/it/agenteye/incidents.mdx +49 -0
  559. package/.next/standalone/docs-old/it/agenteye/observability.mdx +23 -0
  560. package/.next/standalone/docs-old/it/agenteye/openclaw-capture.mdx +49 -0
  561. package/.next/standalone/docs-old/it/agenteye/overview.mdx +107 -0
  562. package/.next/standalone/docs-old/it/agenteye/python-sdk-skill.mdx +132 -0
  563. package/.next/standalone/docs-old/it/agenteye/python-sdk.mdx +437 -0
  564. package/.next/standalone/docs-old/it/agenteye/queries.mdx +55 -0
  565. package/.next/standalone/docs-old/it/agenteye/security.mdx +68 -0
  566. package/.next/standalone/docs-old/it/agenteye/sessions.mdx +57 -0
  567. package/.next/standalone/docs-old/it/agenteye/telemetry.mdx +52 -0
  568. package/.next/standalone/docs-old/it/architecture.mdx +333 -0
  569. package/.next/standalone/docs-old/it/built-in-policies.mdx +853 -0
  570. package/.next/standalone/docs-old/it/cli/audit.mdx +126 -0
  571. package/.next/standalone/docs-old/it/cli/dashboard.mdx +30 -0
  572. package/.next/standalone/docs-old/it/cli/environment-variables.mdx +65 -0
  573. package/.next/standalone/docs-old/it/cli/hook.mdx +30 -0
  574. package/.next/standalone/docs-old/it/cli/install-policies.mdx +57 -0
  575. package/.next/standalone/docs-old/it/cli/list-policies.mdx +31 -0
  576. package/.next/standalone/docs-old/it/cli/migrate.mdx +122 -0
  577. package/.next/standalone/docs-old/it/cli/remove-policies.mdx +43 -0
  578. package/.next/standalone/docs-old/it/cli/update.mdx +86 -0
  579. package/.next/standalone/docs-old/it/cli/version.mdx +12 -0
  580. package/.next/standalone/docs-old/it/configuration.mdx +269 -0
  581. package/.next/standalone/docs-old/it/custom-policies.mdx +359 -0
  582. package/.next/standalone/docs-old/it/dashboard.mdx +151 -0
  583. package/.next/standalone/docs-old/it/examples.mdx +307 -0
  584. package/.next/standalone/docs-old/it/for-agents.mdx +38 -0
  585. package/.next/standalone/docs-old/it/getting-started.mdx +199 -0
  586. package/.next/standalone/docs-old/it/introduction.mdx +58 -0
  587. package/.next/standalone/docs-old/it/package-aliases.mdx +82 -0
  588. package/.next/standalone/docs-old/it/testing.mdx +261 -0
  589. package/.next/standalone/docs-old/ja/agenteye/alerts.mdx +63 -0
  590. package/.next/standalone/docs-old/ja/agenteye/api-keys.mdx +280 -0
  591. package/.next/standalone/docs-old/ja/agenteye/assistant.mdx +63 -0
  592. package/.next/standalone/docs-old/ja/agenteye/audits.mdx +54 -0
  593. package/.next/standalone/docs-old/ja/agenteye/cli-and-agents.mdx +80 -0
  594. package/.next/standalone/docs-old/ja/agenteye/cli-recipes.mdx +179 -0
  595. package/.next/standalone/docs-old/ja/agenteye/cli-skill.mdx +159 -0
  596. package/.next/standalone/docs-old/ja/agenteye/cli.mdx +350 -0
  597. package/.next/standalone/docs-old/ja/agenteye/codex-capture.mdx +55 -0
  598. package/.next/standalone/docs-old/ja/agenteye/concepts.mdx +87 -0
  599. package/.next/standalone/docs-old/ja/agenteye/dashboards.mdx +46 -0
  600. package/.next/standalone/docs-old/ja/agenteye/error-tracking.mdx +41 -0
  601. package/.next/standalone/docs-old/ja/agenteye/evaluation-suite.mdx +300 -0
  602. package/.next/standalone/docs-old/ja/agenteye/evaluations.mdx +51 -0
  603. package/.next/standalone/docs-old/ja/agenteye/evaluator-skill.mdx +167 -0
  604. package/.next/standalone/docs-old/ja/agenteye/event-stream.mdx +50 -0
  605. package/.next/standalone/docs-old/ja/agenteye/hermes-capture.mdx +53 -0
  606. package/.next/standalone/docs-old/ja/agenteye/incidents.mdx +50 -0
  607. package/.next/standalone/docs-old/ja/agenteye/observability.mdx +23 -0
  608. package/.next/standalone/docs-old/ja/agenteye/openclaw-capture.mdx +49 -0
  609. package/.next/standalone/docs-old/ja/agenteye/overview.mdx +108 -0
  610. package/.next/standalone/docs-old/ja/agenteye/python-sdk-skill.mdx +131 -0
  611. package/.next/standalone/docs-old/ja/agenteye/python-sdk.mdx +433 -0
  612. package/.next/standalone/docs-old/ja/agenteye/queries.mdx +56 -0
  613. package/.next/standalone/docs-old/ja/agenteye/security.mdx +68 -0
  614. package/.next/standalone/docs-old/ja/agenteye/sessions.mdx +57 -0
  615. package/.next/standalone/docs-old/ja/agenteye/telemetry.mdx +52 -0
  616. package/.next/standalone/docs-old/ja/architecture.mdx +332 -0
  617. package/.next/standalone/docs-old/ja/built-in-policies.mdx +848 -0
  618. package/.next/standalone/docs-old/ja/cli/audit.mdx +116 -0
  619. package/.next/standalone/docs-old/ja/cli/dashboard.mdx +29 -0
  620. package/.next/standalone/docs-old/ja/cli/environment-variables.mdx +63 -0
  621. package/.next/standalone/docs-old/ja/cli/hook.mdx +30 -0
  622. package/.next/standalone/docs-old/ja/cli/install-policies.mdx +57 -0
  623. package/.next/standalone/docs-old/ja/cli/list-policies.mdx +31 -0
  624. package/.next/standalone/docs-old/ja/cli/migrate.mdx +86 -0
  625. package/.next/standalone/docs-old/ja/cli/remove-policies.mdx +43 -0
  626. package/.next/standalone/docs-old/ja/cli/update.mdx +64 -0
  627. package/.next/standalone/docs-old/ja/cli/version.mdx +12 -0
  628. package/.next/standalone/docs-old/ja/configuration.mdx +264 -0
  629. package/.next/standalone/docs-old/ja/custom-policies.mdx +358 -0
  630. package/.next/standalone/docs-old/ja/dashboard.mdx +151 -0
  631. package/.next/standalone/docs-old/ja/examples.mdx +307 -0
  632. package/.next/standalone/docs-old/ja/for-agents.mdx +38 -0
  633. package/.next/standalone/docs-old/ja/getting-started.mdx +199 -0
  634. package/.next/standalone/docs-old/ja/introduction.mdx +57 -0
  635. package/.next/standalone/docs-old/ja/package-aliases.mdx +82 -0
  636. package/.next/standalone/docs-old/ja/testing.mdx +260 -0
  637. package/.next/standalone/docs-old/ko/agenteye/alerts.mdx +63 -0
  638. package/.next/standalone/docs-old/ko/agenteye/api-keys.mdx +280 -0
  639. package/.next/standalone/docs-old/ko/agenteye/assistant.mdx +63 -0
  640. package/.next/standalone/docs-old/ko/agenteye/audits.mdx +54 -0
  641. package/.next/standalone/docs-old/ko/agenteye/cli-and-agents.mdx +80 -0
  642. package/.next/standalone/docs-old/ko/agenteye/cli-recipes.mdx +179 -0
  643. package/.next/standalone/docs-old/ko/agenteye/cli-skill.mdx +159 -0
  644. package/.next/standalone/docs-old/ko/agenteye/cli.mdx +350 -0
  645. package/.next/standalone/docs-old/ko/agenteye/codex-capture.mdx +55 -0
  646. package/.next/standalone/docs-old/ko/agenteye/concepts.mdx +87 -0
  647. package/.next/standalone/docs-old/ko/agenteye/dashboards.mdx +46 -0
  648. package/.next/standalone/docs-old/ko/agenteye/error-tracking.mdx +40 -0
  649. package/.next/standalone/docs-old/ko/agenteye/evaluation-suite.mdx +303 -0
  650. package/.next/standalone/docs-old/ko/agenteye/evaluations.mdx +50 -0
  651. package/.next/standalone/docs-old/ko/agenteye/evaluator-skill.mdx +167 -0
  652. package/.next/standalone/docs-old/ko/agenteye/event-stream.mdx +50 -0
  653. package/.next/standalone/docs-old/ko/agenteye/hermes-capture.mdx +53 -0
  654. package/.next/standalone/docs-old/ko/agenteye/incidents.mdx +50 -0
  655. package/.next/standalone/docs-old/ko/agenteye/observability.mdx +23 -0
  656. package/.next/standalone/docs-old/ko/agenteye/openclaw-capture.mdx +49 -0
  657. package/.next/standalone/docs-old/ko/agenteye/overview.mdx +108 -0
  658. package/.next/standalone/docs-old/ko/agenteye/python-sdk-skill.mdx +130 -0
  659. package/.next/standalone/docs-old/ko/agenteye/python-sdk.mdx +433 -0
  660. package/.next/standalone/docs-old/ko/agenteye/queries.mdx +56 -0
  661. package/.next/standalone/docs-old/ko/agenteye/security.mdx +68 -0
  662. package/.next/standalone/docs-old/ko/agenteye/sessions.mdx +57 -0
  663. package/.next/standalone/docs-old/ko/agenteye/telemetry.mdx +52 -0
  664. package/.next/standalone/docs-old/ko/architecture.mdx +332 -0
  665. package/.next/standalone/docs-old/ko/built-in-policies.mdx +854 -0
  666. package/.next/standalone/docs-old/ko/cli/audit.mdx +131 -0
  667. package/.next/standalone/docs-old/ko/cli/dashboard.mdx +29 -0
  668. package/.next/standalone/docs-old/ko/cli/environment-variables.mdx +66 -0
  669. package/.next/standalone/docs-old/ko/cli/hook.mdx +30 -0
  670. package/.next/standalone/docs-old/ko/cli/install-policies.mdx +57 -0
  671. package/.next/standalone/docs-old/ko/cli/list-policies.mdx +31 -0
  672. package/.next/standalone/docs-old/ko/cli/migrate.mdx +86 -0
  673. package/.next/standalone/docs-old/ko/cli/remove-policies.mdx +43 -0
  674. package/.next/standalone/docs-old/ko/cli/update.mdx +64 -0
  675. package/.next/standalone/docs-old/ko/cli/version.mdx +12 -0
  676. package/.next/standalone/docs-old/ko/configuration.mdx +267 -0
  677. package/.next/standalone/docs-old/ko/custom-policies.mdx +358 -0
  678. package/.next/standalone/docs-old/ko/dashboard.mdx +151 -0
  679. package/.next/standalone/docs-old/ko/examples.mdx +307 -0
  680. package/.next/standalone/docs-old/ko/for-agents.mdx +38 -0
  681. package/.next/standalone/docs-old/ko/getting-started.mdx +199 -0
  682. package/.next/standalone/docs-old/ko/introduction.mdx +57 -0
  683. package/.next/standalone/docs-old/ko/package-aliases.mdx +82 -0
  684. package/.next/standalone/docs-old/ko/testing.mdx +260 -0
  685. package/.next/standalone/docs-old/logo/Failproof_AI_logo.png +0 -0
  686. package/.next/standalone/docs-old/logo/Failproof_AI_logo_light.png +0 -0
  687. package/.next/standalone/docs-old/package-aliases.mdx +82 -0
  688. package/.next/standalone/docs-old/pt-br/agenteye/alerts.mdx +63 -0
  689. package/.next/standalone/docs-old/pt-br/agenteye/api-keys.mdx +280 -0
  690. package/.next/standalone/docs-old/pt-br/agenteye/assistant.mdx +63 -0
  691. package/.next/standalone/docs-old/pt-br/agenteye/audits.mdx +54 -0
  692. package/.next/standalone/docs-old/pt-br/agenteye/cli-and-agents.mdx +80 -0
  693. package/.next/standalone/docs-old/pt-br/agenteye/cli-recipes.mdx +179 -0
  694. package/.next/standalone/docs-old/pt-br/agenteye/cli-skill.mdx +159 -0
  695. package/.next/standalone/docs-old/pt-br/agenteye/cli.mdx +350 -0
  696. package/.next/standalone/docs-old/pt-br/agenteye/codex-capture.mdx +55 -0
  697. package/.next/standalone/docs-old/pt-br/agenteye/concepts.mdx +87 -0
  698. package/.next/standalone/docs-old/pt-br/agenteye/dashboards.mdx +45 -0
  699. package/.next/standalone/docs-old/pt-br/agenteye/error-tracking.mdx +40 -0
  700. package/.next/standalone/docs-old/pt-br/agenteye/evaluation-suite.mdx +401 -0
  701. package/.next/standalone/docs-old/pt-br/agenteye/evaluations.mdx +51 -0
  702. package/.next/standalone/docs-old/pt-br/agenteye/evaluator-skill.mdx +167 -0
  703. package/.next/standalone/docs-old/pt-br/agenteye/event-stream.mdx +50 -0
  704. package/.next/standalone/docs-old/pt-br/agenteye/hermes-capture.mdx +53 -0
  705. package/.next/standalone/docs-old/pt-br/agenteye/incidents.mdx +50 -0
  706. package/.next/standalone/docs-old/pt-br/agenteye/observability.mdx +23 -0
  707. package/.next/standalone/docs-old/pt-br/agenteye/openclaw-capture.mdx +49 -0
  708. package/.next/standalone/docs-old/pt-br/agenteye/overview.mdx +108 -0
  709. package/.next/standalone/docs-old/pt-br/agenteye/python-sdk-skill.mdx +136 -0
  710. package/.next/standalone/docs-old/pt-br/agenteye/python-sdk.mdx +436 -0
  711. package/.next/standalone/docs-old/pt-br/agenteye/queries.mdx +56 -0
  712. package/.next/standalone/docs-old/pt-br/agenteye/security.mdx +68 -0
  713. package/.next/standalone/docs-old/pt-br/agenteye/sessions.mdx +56 -0
  714. package/.next/standalone/docs-old/pt-br/agenteye/telemetry.mdx +52 -0
  715. package/.next/standalone/docs-old/pt-br/architecture.mdx +332 -0
  716. package/.next/standalone/docs-old/pt-br/built-in-policies.mdx +858 -0
  717. package/.next/standalone/docs-old/pt-br/cli/audit.mdx +132 -0
  718. package/.next/standalone/docs-old/pt-br/cli/dashboard.mdx +29 -0
  719. package/.next/standalone/docs-old/pt-br/cli/environment-variables.mdx +72 -0
  720. package/.next/standalone/docs-old/pt-br/cli/hook.mdx +30 -0
  721. package/.next/standalone/docs-old/pt-br/cli/install-policies.mdx +57 -0
  722. package/.next/standalone/docs-old/pt-br/cli/list-policies.mdx +31 -0
  723. package/.next/standalone/docs-old/pt-br/cli/migrate.mdx +86 -0
  724. package/.next/standalone/docs-old/pt-br/cli/remove-policies.mdx +43 -0
  725. package/.next/standalone/docs-old/pt-br/cli/update.mdx +64 -0
  726. package/.next/standalone/docs-old/pt-br/cli/version.mdx +12 -0
  727. package/.next/standalone/docs-old/pt-br/configuration.mdx +268 -0
  728. package/.next/standalone/docs-old/pt-br/custom-policies.mdx +358 -0
  729. package/.next/standalone/docs-old/pt-br/dashboard.mdx +151 -0
  730. package/.next/standalone/docs-old/pt-br/examples.mdx +307 -0
  731. package/.next/standalone/docs-old/pt-br/for-agents.mdx +38 -0
  732. package/.next/standalone/docs-old/pt-br/getting-started.mdx +199 -0
  733. package/.next/standalone/docs-old/pt-br/introduction.mdx +57 -0
  734. package/.next/standalone/docs-old/pt-br/package-aliases.mdx +82 -0
  735. package/.next/standalone/docs-old/pt-br/testing.mdx +260 -0
  736. package/.next/standalone/docs-old/ru/agenteye/alerts.mdx +63 -0
  737. package/.next/standalone/docs-old/ru/agenteye/api-keys.mdx +280 -0
  738. package/.next/standalone/docs-old/ru/agenteye/assistant.mdx +63 -0
  739. package/.next/standalone/docs-old/ru/agenteye/audits.mdx +54 -0
  740. package/.next/standalone/docs-old/ru/agenteye/cli-and-agents.mdx +80 -0
  741. package/.next/standalone/docs-old/ru/agenteye/cli-recipes.mdx +179 -0
  742. package/.next/standalone/docs-old/ru/agenteye/cli-skill.mdx +159 -0
  743. package/.next/standalone/docs-old/ru/agenteye/cli.mdx +350 -0
  744. package/.next/standalone/docs-old/ru/agenteye/codex-capture.mdx +55 -0
  745. package/.next/standalone/docs-old/ru/agenteye/concepts.mdx +87 -0
  746. package/.next/standalone/docs-old/ru/agenteye/dashboards.mdx +46 -0
  747. package/.next/standalone/docs-old/ru/agenteye/error-tracking.mdx +41 -0
  748. package/.next/standalone/docs-old/ru/agenteye/evaluation-suite.mdx +401 -0
  749. package/.next/standalone/docs-old/ru/agenteye/evaluations.mdx +51 -0
  750. package/.next/standalone/docs-old/ru/agenteye/evaluator-skill.mdx +171 -0
  751. package/.next/standalone/docs-old/ru/agenteye/event-stream.mdx +51 -0
  752. package/.next/standalone/docs-old/ru/agenteye/hermes-capture.mdx +53 -0
  753. package/.next/standalone/docs-old/ru/agenteye/incidents.mdx +50 -0
  754. package/.next/standalone/docs-old/ru/agenteye/observability.mdx +23 -0
  755. package/.next/standalone/docs-old/ru/agenteye/openclaw-capture.mdx +49 -0
  756. package/.next/standalone/docs-old/ru/agenteye/overview.mdx +107 -0
  757. package/.next/standalone/docs-old/ru/agenteye/python-sdk-skill.mdx +131 -0
  758. package/.next/standalone/docs-old/ru/agenteye/python-sdk.mdx +437 -0
  759. package/.next/standalone/docs-old/ru/agenteye/queries.mdx +56 -0
  760. package/.next/standalone/docs-old/ru/agenteye/security.mdx +68 -0
  761. package/.next/standalone/docs-old/ru/agenteye/sessions.mdx +57 -0
  762. package/.next/standalone/docs-old/ru/agenteye/telemetry.mdx +52 -0
  763. package/.next/standalone/docs-old/ru/architecture.mdx +333 -0
  764. package/.next/standalone/docs-old/ru/built-in-policies.mdx +853 -0
  765. package/.next/standalone/docs-old/ru/cli/audit.mdx +132 -0
  766. package/.next/standalone/docs-old/ru/cli/dashboard.mdx +29 -0
  767. package/.next/standalone/docs-old/ru/cli/environment-variables.mdx +72 -0
  768. package/.next/standalone/docs-old/ru/cli/hook.mdx +30 -0
  769. package/.next/standalone/docs-old/ru/cli/install-policies.mdx +57 -0
  770. package/.next/standalone/docs-old/ru/cli/list-policies.mdx +31 -0
  771. package/.next/standalone/docs-old/ru/cli/migrate.mdx +91 -0
  772. package/.next/standalone/docs-old/ru/cli/remove-policies.mdx +44 -0
  773. package/.next/standalone/docs-old/ru/cli/update.mdx +64 -0
  774. package/.next/standalone/docs-old/ru/cli/version.mdx +12 -0
  775. package/.next/standalone/docs-old/ru/configuration.mdx +269 -0
  776. package/.next/standalone/docs-old/ru/custom-policies.mdx +358 -0
  777. package/.next/standalone/docs-old/ru/dashboard.mdx +155 -0
  778. package/.next/standalone/docs-old/ru/examples.mdx +307 -0
  779. package/.next/standalone/docs-old/ru/for-agents.mdx +38 -0
  780. package/.next/standalone/docs-old/ru/getting-started.mdx +199 -0
  781. package/.next/standalone/docs-old/ru/introduction.mdx +58 -0
  782. package/.next/standalone/docs-old/ru/package-aliases.mdx +82 -0
  783. package/.next/standalone/docs-old/ru/testing.mdx +260 -0
  784. package/.next/standalone/docs-old/styles/config/vocabularies/Mintlify/accept.txt +52 -0
  785. package/.next/standalone/docs-old/superpowers/specs/2026-06-11-audit-poster-restructure-design.md +332 -0
  786. package/.next/standalone/docs-old/testing.mdx +260 -0
  787. package/.next/standalone/docs-old/tr/agenteye/alerts.mdx +63 -0
  788. package/.next/standalone/docs-old/tr/agenteye/api-keys.mdx +279 -0
  789. package/.next/standalone/docs-old/tr/agenteye/assistant.mdx +63 -0
  790. package/.next/standalone/docs-old/tr/agenteye/audits.mdx +54 -0
  791. package/.next/standalone/docs-old/tr/agenteye/cli-and-agents.mdx +80 -0
  792. package/.next/standalone/docs-old/tr/agenteye/cli-recipes.mdx +179 -0
  793. package/.next/standalone/docs-old/tr/agenteye/cli-skill.mdx +161 -0
  794. package/.next/standalone/docs-old/tr/agenteye/cli.mdx +350 -0
  795. package/.next/standalone/docs-old/tr/agenteye/codex-capture.mdx +56 -0
  796. package/.next/standalone/docs-old/tr/agenteye/concepts.mdx +87 -0
  797. package/.next/standalone/docs-old/tr/agenteye/dashboards.mdx +46 -0
  798. package/.next/standalone/docs-old/tr/agenteye/error-tracking.mdx +41 -0
  799. package/.next/standalone/docs-old/tr/agenteye/evaluation-suite.mdx +299 -0
  800. package/.next/standalone/docs-old/tr/agenteye/evaluations.mdx +51 -0
  801. package/.next/standalone/docs-old/tr/agenteye/evaluator-skill.mdx +167 -0
  802. package/.next/standalone/docs-old/tr/agenteye/event-stream.mdx +50 -0
  803. package/.next/standalone/docs-old/tr/agenteye/hermes-capture.mdx +53 -0
  804. package/.next/standalone/docs-old/tr/agenteye/incidents.mdx +50 -0
  805. package/.next/standalone/docs-old/tr/agenteye/observability.mdx +23 -0
  806. package/.next/standalone/docs-old/tr/agenteye/openclaw-capture.mdx +50 -0
  807. package/.next/standalone/docs-old/tr/agenteye/overview.mdx +107 -0
  808. package/.next/standalone/docs-old/tr/agenteye/python-sdk-skill.mdx +130 -0
  809. package/.next/standalone/docs-old/tr/agenteye/python-sdk.mdx +436 -0
  810. package/.next/standalone/docs-old/tr/agenteye/queries.mdx +55 -0
  811. package/.next/standalone/docs-old/tr/agenteye/security.mdx +69 -0
  812. package/.next/standalone/docs-old/tr/agenteye/sessions.mdx +57 -0
  813. package/.next/standalone/docs-old/tr/agenteye/telemetry.mdx +52 -0
  814. package/.next/standalone/docs-old/tr/architecture.mdx +332 -0
  815. package/.next/standalone/docs-old/tr/built-in-policies.mdx +848 -0
  816. package/.next/standalone/docs-old/tr/cli/audit.mdx +117 -0
  817. package/.next/standalone/docs-old/tr/cli/dashboard.mdx +29 -0
  818. package/.next/standalone/docs-old/tr/cli/environment-variables.mdx +65 -0
  819. package/.next/standalone/docs-old/tr/cli/hook.mdx +31 -0
  820. package/.next/standalone/docs-old/tr/cli/install-policies.mdx +57 -0
  821. package/.next/standalone/docs-old/tr/cli/list-policies.mdx +31 -0
  822. package/.next/standalone/docs-old/tr/cli/migrate.mdx +87 -0
  823. package/.next/standalone/docs-old/tr/cli/remove-policies.mdx +43 -0
  824. package/.next/standalone/docs-old/tr/cli/update.mdx +88 -0
  825. package/.next/standalone/docs-old/tr/cli/version.mdx +12 -0
  826. package/.next/standalone/docs-old/tr/configuration.mdx +268 -0
  827. package/.next/standalone/docs-old/tr/custom-policies.mdx +358 -0
  828. package/.next/standalone/docs-old/tr/dashboard.mdx +152 -0
  829. package/.next/standalone/docs-old/tr/examples.mdx +307 -0
  830. package/.next/standalone/docs-old/tr/for-agents.mdx +38 -0
  831. package/.next/standalone/docs-old/tr/getting-started.mdx +199 -0
  832. package/.next/standalone/docs-old/tr/introduction.mdx +57 -0
  833. package/.next/standalone/docs-old/tr/package-aliases.mdx +82 -0
  834. package/.next/standalone/docs-old/tr/testing.mdx +261 -0
  835. package/.next/standalone/docs-old/vi/agenteye/alerts.mdx +63 -0
  836. package/.next/standalone/docs-old/vi/agenteye/api-keys.mdx +280 -0
  837. package/.next/standalone/docs-old/vi/agenteye/assistant.mdx +63 -0
  838. package/.next/standalone/docs-old/vi/agenteye/audits.mdx +54 -0
  839. package/.next/standalone/docs-old/vi/agenteye/cli-and-agents.mdx +80 -0
  840. package/.next/standalone/docs-old/vi/agenteye/cli-recipes.mdx +178 -0
  841. package/.next/standalone/docs-old/vi/agenteye/cli-skill.mdx +159 -0
  842. package/.next/standalone/docs-old/vi/agenteye/cli.mdx +349 -0
  843. package/.next/standalone/docs-old/vi/agenteye/codex-capture.mdx +55 -0
  844. package/.next/standalone/docs-old/vi/agenteye/concepts.mdx +88 -0
  845. package/.next/standalone/docs-old/vi/agenteye/dashboards.mdx +46 -0
  846. package/.next/standalone/docs-old/vi/agenteye/error-tracking.mdx +41 -0
  847. package/.next/standalone/docs-old/vi/agenteye/evaluation-suite.mdx +300 -0
  848. package/.next/standalone/docs-old/vi/agenteye/evaluations.mdx +51 -0
  849. package/.next/standalone/docs-old/vi/agenteye/evaluator-skill.mdx +171 -0
  850. package/.next/standalone/docs-old/vi/agenteye/event-stream.mdx +50 -0
  851. package/.next/standalone/docs-old/vi/agenteye/hermes-capture.mdx +53 -0
  852. package/.next/standalone/docs-old/vi/agenteye/incidents.mdx +50 -0
  853. package/.next/standalone/docs-old/vi/agenteye/observability.mdx +23 -0
  854. package/.next/standalone/docs-old/vi/agenteye/openclaw-capture.mdx +49 -0
  855. package/.next/standalone/docs-old/vi/agenteye/overview.mdx +109 -0
  856. package/.next/standalone/docs-old/vi/agenteye/python-sdk-skill.mdx +131 -0
  857. package/.next/standalone/docs-old/vi/agenteye/python-sdk.mdx +433 -0
  858. package/.next/standalone/docs-old/vi/agenteye/queries.mdx +55 -0
  859. package/.next/standalone/docs-old/vi/agenteye/security.mdx +68 -0
  860. package/.next/standalone/docs-old/vi/agenteye/sessions.mdx +57 -0
  861. package/.next/standalone/docs-old/vi/agenteye/telemetry.mdx +52 -0
  862. package/.next/standalone/docs-old/vi/architecture.mdx +332 -0
  863. package/.next/standalone/docs-old/vi/built-in-policies.mdx +853 -0
  864. package/.next/standalone/docs-old/vi/cli/audit.mdx +120 -0
  865. package/.next/standalone/docs-old/vi/cli/dashboard.mdx +29 -0
  866. package/.next/standalone/docs-old/vi/cli/environment-variables.mdx +69 -0
  867. package/.next/standalone/docs-old/vi/cli/hook.mdx +30 -0
  868. package/.next/standalone/docs-old/vi/cli/install-policies.mdx +57 -0
  869. package/.next/standalone/docs-old/vi/cli/list-policies.mdx +32 -0
  870. package/.next/standalone/docs-old/vi/cli/migrate.mdx +122 -0
  871. package/.next/standalone/docs-old/vi/cli/remove-policies.mdx +43 -0
  872. package/.next/standalone/docs-old/vi/cli/update.mdx +95 -0
  873. package/.next/standalone/docs-old/vi/cli/version.mdx +12 -0
  874. package/.next/standalone/docs-old/vi/configuration.mdx +268 -0
  875. package/.next/standalone/docs-old/vi/custom-policies.mdx +358 -0
  876. package/.next/standalone/docs-old/vi/dashboard.mdx +151 -0
  877. package/.next/standalone/docs-old/vi/examples.mdx +308 -0
  878. package/.next/standalone/docs-old/vi/for-agents.mdx +39 -0
  879. package/.next/standalone/docs-old/vi/getting-started.mdx +200 -0
  880. package/.next/standalone/docs-old/vi/introduction.mdx +57 -0
  881. package/.next/standalone/docs-old/vi/package-aliases.mdx +83 -0
  882. package/.next/standalone/docs-old/vi/testing.mdx +261 -0
  883. package/.next/standalone/docs-old/zh/agenteye/alerts.mdx +63 -0
  884. package/.next/standalone/docs-old/zh/agenteye/api-keys.mdx +280 -0
  885. package/.next/standalone/docs-old/zh/agenteye/assistant.mdx +63 -0
  886. package/.next/standalone/docs-old/zh/agenteye/audits.mdx +54 -0
  887. package/.next/standalone/docs-old/zh/agenteye/cli-and-agents.mdx +79 -0
  888. package/.next/standalone/docs-old/zh/agenteye/cli-recipes.mdx +179 -0
  889. package/.next/standalone/docs-old/zh/agenteye/cli-skill.mdx +159 -0
  890. package/.next/standalone/docs-old/zh/agenteye/cli.mdx +350 -0
  891. package/.next/standalone/docs-old/zh/agenteye/codex-capture.mdx +55 -0
  892. package/.next/standalone/docs-old/zh/agenteye/concepts.mdx +87 -0
  893. package/.next/standalone/docs-old/zh/agenteye/dashboards.mdx +46 -0
  894. package/.next/standalone/docs-old/zh/agenteye/error-tracking.mdx +40 -0
  895. package/.next/standalone/docs-old/zh/agenteye/evaluation-suite.mdx +300 -0
  896. package/.next/standalone/docs-old/zh/agenteye/evaluations.mdx +51 -0
  897. package/.next/standalone/docs-old/zh/agenteye/evaluator-skill.mdx +167 -0
  898. package/.next/standalone/docs-old/zh/agenteye/event-stream.mdx +50 -0
  899. package/.next/standalone/docs-old/zh/agenteye/hermes-capture.mdx +53 -0
  900. package/.next/standalone/docs-old/zh/agenteye/incidents.mdx +50 -0
  901. package/.next/standalone/docs-old/zh/agenteye/observability.mdx +23 -0
  902. package/.next/standalone/docs-old/zh/agenteye/openclaw-capture.mdx +49 -0
  903. package/.next/standalone/docs-old/zh/agenteye/overview.mdx +108 -0
  904. package/.next/standalone/docs-old/zh/agenteye/python-sdk-skill.mdx +131 -0
  905. package/.next/standalone/docs-old/zh/agenteye/python-sdk.mdx +433 -0
  906. package/.next/standalone/docs-old/zh/agenteye/queries.mdx +56 -0
  907. package/.next/standalone/docs-old/zh/agenteye/security.mdx +68 -0
  908. package/.next/standalone/docs-old/zh/agenteye/sessions.mdx +56 -0
  909. package/.next/standalone/docs-old/zh/agenteye/telemetry.mdx +52 -0
  910. package/.next/standalone/docs-old/zh/architecture.mdx +332 -0
  911. package/.next/standalone/docs-old/zh/built-in-policies.mdx +850 -0
  912. package/.next/standalone/docs-old/zh/cli/audit.mdx +115 -0
  913. package/.next/standalone/docs-old/zh/cli/dashboard.mdx +29 -0
  914. package/.next/standalone/docs-old/zh/cli/environment-variables.mdx +62 -0
  915. package/.next/standalone/docs-old/zh/cli/hook.mdx +30 -0
  916. package/.next/standalone/docs-old/zh/cli/install-policies.mdx +57 -0
  917. package/.next/standalone/docs-old/zh/cli/list-policies.mdx +31 -0
  918. package/.next/standalone/docs-old/zh/cli/migrate.mdx +86 -0
  919. package/.next/standalone/docs-old/zh/cli/remove-policies.mdx +43 -0
  920. package/.next/standalone/docs-old/zh/cli/update.mdx +65 -0
  921. package/.next/standalone/docs-old/zh/cli/version.mdx +12 -0
  922. package/.next/standalone/docs-old/zh/configuration.mdx +266 -0
  923. package/.next/standalone/docs-old/zh/custom-policies.mdx +358 -0
  924. package/.next/standalone/docs-old/zh/dashboard.mdx +151 -0
  925. package/.next/standalone/docs-old/zh/examples.mdx +307 -0
  926. package/.next/standalone/docs-old/zh/for-agents.mdx +38 -0
  927. package/.next/standalone/docs-old/zh/getting-started.mdx +199 -0
  928. package/.next/standalone/docs-old/zh/introduction.mdx +57 -0
  929. package/.next/standalone/docs-old/zh/package-aliases.mdx +82 -0
  930. package/.next/standalone/docs-old/zh/testing.mdx +260 -0
  931. package/.next/standalone/fp-cloud-cli/CHANGELOG.md +431 -0
  932. package/.next/standalone/fp-cloud-cli/LICENSE +42 -0
  933. package/.next/standalone/fp-cloud-cli/MANIFEST.in +10 -0
  934. package/.next/standalone/fp-cloud-cli/README.md +259 -0
  935. package/.next/standalone/fp-cloud-cli/fp_cli/__init__.py +10 -0
  936. package/.next/standalone/fp-cloud-cli/fp_cli/__main__.py +4 -0
  937. package/.next/standalone/fp-cloud-cli/fp_cli/_click_compat.py +64 -0
  938. package/.next/standalone/fp-cloud-cli/fp_cli/_context.py +332 -0
  939. package/.next/standalone/fp-cloud-cli/fp_cli/_version.py +1 -0
  940. package/.next/standalone/fp-cloud-cli/fp_cli/analytics.py +432 -0
  941. package/.next/standalone/fp-cloud-cli/fp_cli/analytics_config.py +77 -0
  942. package/.next/standalone/fp-cloud-cli/fp_cli/analytics_registry.py +83 -0
  943. package/.next/standalone/fp-cloud-cli/fp_cli/app.py +492 -0
  944. package/.next/standalone/fp-cloud-cli/fp_cli/auth.py +160 -0
  945. package/.next/standalone/fp-cloud-cli/fp_cli/client.py +1694 -0
  946. package/.next/standalone/fp-cloud-cli/fp_cli/commands/__init__.py +0 -0
  947. package/.next/standalone/fp-cloud-cli/fp_cli/commands/_write.py +214 -0
  948. package/.next/standalone/fp-cloud-cli/fp_cli/commands/agent_cmds.py +407 -0
  949. package/.next/standalone/fp-cloud-cli/fp_cli/commands/alerts_cmds.py +445 -0
  950. package/.next/standalone/fp-cloud-cli/fp_cli/commands/audits_cmds.py +1054 -0
  951. package/.next/standalone/fp-cloud-cli/fp_cli/commands/auth_cmds.py +512 -0
  952. package/.next/standalone/fp-cloud-cli/fp_cli/commands/errors_cmds.py +190 -0
  953. package/.next/standalone/fp-cloud-cli/fp_cli/commands/evals_cmds.py +161 -0
  954. package/.next/standalone/fp-cloud-cli/fp_cli/commands/events_cmds.py +159 -0
  955. package/.next/standalone/fp-cloud-cli/fp_cli/commands/fleet_cmds.py +416 -0
  956. package/.next/standalone/fp-cloud-cli/fp_cli/commands/guardrails_cmds.py +148 -0
  957. package/.next/standalone/fp-cloud-cli/fp_cli/commands/incidents_cmds.py +472 -0
  958. package/.next/standalone/fp-cloud-cli/fp_cli/commands/keys_cmds.py +407 -0
  959. package/.next/standalone/fp-cloud-cli/fp_cli/commands/list_cmds.py +63 -0
  960. package/.next/standalone/fp-cloud-cli/fp_cli/commands/orgs_cmds.py +319 -0
  961. package/.next/standalone/fp-cloud-cli/fp_cli/commands/policies_cmds.py +499 -0
  962. package/.next/standalone/fp-cloud-cli/fp_cli/commands/queries_cmds.py +378 -0
  963. package/.next/standalone/fp-cloud-cli/fp_cli/commands/sessions_cmds.py +151 -0
  964. package/.next/standalone/fp-cloud-cli/fp_cli/commands/settings_cmds.py +150 -0
  965. package/.next/standalone/fp-cloud-cli/fp_cli/commands/usage_cmds.py +35 -0
  966. package/.next/standalone/fp-cloud-cli/fp_cli/commands/users_cmds.py +404 -0
  967. package/.next/standalone/fp-cloud-cli/fp_cli/config.py +330 -0
  968. package/.next/standalone/fp-cloud-cli/fp_cli/dates.py +78 -0
  969. package/.next/standalone/fp-cloud-cli/fp_cli/enforcement.py +345 -0
  970. package/.next/standalone/fp-cloud-cli/fp_cli/errors.py +98 -0
  971. package/.next/standalone/fp-cloud-cli/fp_cli/models.py +891 -0
  972. package/.next/standalone/fp-cloud-cli/fp_cli/orgs.py +30 -0
  973. package/.next/standalone/fp-cloud-cli/fp_cli/output.py +6593 -0
  974. package/.next/standalone/fp-cloud-cli/fp_cli/permissions.py +208 -0
  975. package/.next/standalone/fp-cloud-cli/fp_cli/policy_check.py +290 -0
  976. package/.next/standalone/fp-cloud-cli/fp_cli/py.typed +0 -0
  977. package/.next/standalone/fp-cloud-cli/fp_cli/select.py +322 -0
  978. package/.next/standalone/fp-cloud-cli/fp_cli/theme.py +53 -0
  979. package/.next/standalone/fp-cloud-cli/pyproject.toml +106 -0
  980. package/.next/standalone/fp-cloud-cli/skill/SKILL.md +302 -0
  981. package/.next/standalone/fp-cloud-cli/skill/agents/openai.yaml +8 -0
  982. package/.next/standalone/fp-cloud-cli/skill/references/commands.md +254 -0
  983. package/.next/standalone/fp-cloud-cli/tests/__init__.py +0 -0
  984. package/.next/standalone/fp-cloud-cli/tests/conftest.py +92 -0
  985. package/.next/standalone/fp-cloud-cli/tests/test_alerting.py +644 -0
  986. package/.next/standalone/fp-cloud-cli/tests/test_analytics.py +385 -0
  987. package/.next/standalone/fp-cloud-cli/tests/test_audits.py +950 -0
  988. package/.next/standalone/fp-cloud-cli/tests/test_auth.py +98 -0
  989. package/.next/standalone/fp-cloud-cli/tests/test_auth_mode.py +272 -0
  990. package/.next/standalone/fp-cloud-cli/tests/test_click_compat.py +118 -0
  991. package/.next/standalone/fp-cloud-cli/tests/test_client.py +299 -0
  992. package/.next/standalone/fp-cloud-cli/tests/test_commands.py +814 -0
  993. package/.next/standalone/fp-cloud-cli/tests/test_config.py +99 -0
  994. package/.next/standalone/fp-cloud-cli/tests/test_dashboards_agent.py +340 -0
  995. package/.next/standalone/fp-cloud-cli/tests/test_dates.py +76 -0
  996. package/.next/standalone/fp-cloud-cli/tests/test_enforcement_logic.py +481 -0
  997. package/.next/standalone/fp-cloud-cli/tests/test_facets.py +170 -0
  998. package/.next/standalone/fp-cloud-cli/tests/test_failproofai_home.py +722 -0
  999. package/.next/standalone/fp-cloud-cli/tests/test_fp_home_contract.py +198 -0
  1000. package/.next/standalone/fp-cloud-cli/tests/test_hardening.py +186 -0
  1001. package/.next/standalone/fp-cloud-cli/tests/test_help_table_coverage.py +127 -0
  1002. package/.next/standalone/fp-cloud-cli/tests/test_keys_queries.py +496 -0
  1003. package/.next/standalone/fp-cloud-cli/tests/test_list.py +59 -0
  1004. package/.next/standalone/fp-cloud-cli/tests/test_multivalue.py +183 -0
  1005. package/.next/standalone/fp-cloud-cli/tests/test_no_customer_identifiers.py +168 -0
  1006. package/.next/standalone/fp-cloud-cli/tests/test_operator.py +492 -0
  1007. package/.next/standalone/fp-cloud-cli/tests/test_orgs.py +692 -0
  1008. package/.next/standalone/fp-cloud-cli/tests/test_output.py +1732 -0
  1009. package/.next/standalone/fp-cloud-cli/tests/test_policy_check.py +191 -0
  1010. package/.next/standalone/fp-cloud-cli/tests/test_readme_matches_reality.py +125 -0
  1011. package/.next/standalone/fp-cloud-cli/tests/test_review_fixes.py +161 -0
  1012. package/.next/standalone/fp-cloud-cli/tests/test_telemetry_completeness.py +90 -0
  1013. package/.next/standalone/fp-cloud-cli/tests/test_usage.py +115 -0
  1014. package/.next/standalone/fp-cloud-cli/tests/test_v1_origin_diagnostic.py +70 -0
  1015. package/.next/standalone/fp-cloud-cli/tests/test_v1_routing.py +214 -0
  1016. package/.next/standalone/fp-cloud-cli/tests/test_whoami.py +104 -0
  1017. package/.next/standalone/fp-cloud-cli/uv.lock +552 -0
  1018. package/.next/standalone/node_modules/@next/env/package.json +1 -1
  1019. package/.next/standalone/node_modules/@swc/helpers/esm/_interop_require_default.js +4 -0
  1020. package/.next/standalone/node_modules/@swc/helpers/esm/_interop_require_wildcard.js +36 -0
  1021. package/.next/standalone/node_modules/@swc/helpers/package.json +703 -469
  1022. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  1023. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +8 -6
  1024. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +26 -20
  1025. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +2 -1
  1026. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +5 -2
  1027. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +2 -1
  1028. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +3 -1
  1029. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/cache.js +150 -169
  1030. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +16 -54
  1031. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/navigation.js +115 -23
  1032. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +61 -6
  1033. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/scheduler.js +53 -36
  1034. package/.next/standalone/node_modules/next/dist/client/route-params.js +4 -8
  1035. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +26 -26
  1036. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +26 -26
  1037. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +2 -2
  1038. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +9 -9
  1039. package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  1040. package/.next/standalone/node_modules/next/dist/lib/turbopack-cache-seed.js +15 -7
  1041. package/.next/standalone/node_modules/next/dist/server/app-render/app-render.js +2 -0
  1042. package/.next/standalone/node_modules/next/dist/server/app-render/dev-validation-worker-snapshot.js +2 -1
  1043. package/.next/standalone/node_modules/next/dist/server/async-storage/request-store.js +29 -20
  1044. package/.next/standalone/node_modules/next/dist/server/async-storage/work-store.js +1 -0
  1045. package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  1046. package/.next/standalone/node_modules/next/dist/server/dev/dev-validation-worker-pool.js +90 -11
  1047. package/.next/standalone/node_modules/next/dist/server/dev/dev-validation-worker.js +51 -9
  1048. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +24 -4
  1049. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  1050. package/.next/standalone/node_modules/next/dist/server/dev/use-cache-probe-worker.js +1 -0
  1051. package/.next/standalone/node_modules/next/dist/server/image-optimizer.js +1 -0
  1052. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  1053. package/.next/standalone/node_modules/next/dist/server/lib/encode-header-safe.js +44 -0
  1054. package/.next/standalone/node_modules/next/dist/server/lib/implicit-tags.js +3 -3
  1055. package/.next/standalone/node_modules/next/dist/server/lib/patch-fetch.js +2 -2
  1056. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  1057. package/.next/standalone/node_modules/next/dist/server/use-cache/handlers.js +14 -0
  1058. package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-probe-scheduler.js +2 -1
  1059. package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +100 -31
  1060. package/.next/standalone/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +88 -2
  1061. package/.next/standalone/node_modules/next/dist/server/web/spec-extension/revalidate.js +12 -5
  1062. package/.next/standalone/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +13 -1
  1063. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  1064. package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  1065. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  1066. package/.next/standalone/node_modules/next/package.json +11 -11
  1067. package/.next/standalone/package.json +30 -23
  1068. package/.next/standalone/sdk/python/CHANGELOG.md +70 -0
  1069. package/.next/standalone/sdk/python/LICENSE +42 -0
  1070. package/.next/standalone/sdk/python/MANIFEST.in +21 -0
  1071. package/.next/standalone/sdk/python/README.md +466 -0
  1072. package/.next/standalone/sdk/python/docs/README.md +249 -0
  1073. package/.next/standalone/sdk/python/docs/_shared/README.md +43 -0
  1074. package/.next/standalone/sdk/python/docs/_shared/__init__.py +195 -0
  1075. package/.next/standalone/sdk/python/docs/crewai/README.md +328 -0
  1076. package/.next/standalone/sdk/python/docs/crewai/examples/quickstart.py +61 -0
  1077. package/.next/standalone/sdk/python/docs/crewai/examples/research_crew.py +92 -0
  1078. package/.next/standalone/sdk/python/docs/langgraph/README.md +481 -0
  1079. package/.next/standalone/sdk/python/docs/langgraph/examples/quickstart.py +51 -0
  1080. package/.next/standalone/sdk/python/docs/langgraph/examples/research_agent.py +86 -0
  1081. package/.next/standalone/sdk/python/docs/langgraph/examples/supervisor_handoff.py +83 -0
  1082. package/.next/standalone/sdk/python/docs/llama_index/README.md +332 -0
  1083. package/.next/standalone/sdk/python/docs/llama_index/examples/quickstart.py +62 -0
  1084. package/.next/standalone/sdk/python/docs/llama_index/examples/research_agent.py +93 -0
  1085. package/.next/standalone/sdk/python/docs/manual/README.md +491 -0
  1086. package/.next/standalone/sdk/python/docs/manual/examples/quickstart.py +57 -0
  1087. package/.next/standalone/sdk/python/docs/manual/examples/research_agent.py +133 -0
  1088. package/.next/standalone/sdk/python/docs/pydantic_ai/README.md +323 -0
  1089. package/.next/standalone/sdk/python/docs/pydantic_ai/examples/quickstart.py +48 -0
  1090. package/.next/standalone/sdk/python/docs/pydantic_ai/examples/research_agent.py +94 -0
  1091. package/.next/standalone/sdk/python/failproofai_sdk/__init__.py +131 -0
  1092. package/.next/standalone/sdk/python/failproofai_sdk/_context.py +218 -0
  1093. package/.next/standalone/sdk/python/failproofai_sdk/_environment.py +78 -0
  1094. package/.next/standalone/sdk/python/failproofai_sdk/_events.py +752 -0
  1095. package/.next/standalone/sdk/python/failproofai_sdk/_resolver.py +118 -0
  1096. package/.next/standalone/sdk/python/failproofai_sdk/_runtime.py +21 -0
  1097. package/.next/standalone/sdk/python/failproofai_sdk/_schema.py +317 -0
  1098. package/.next/standalone/sdk/python/failproofai_sdk/_scopes.py +422 -0
  1099. package/.next/standalone/sdk/python/failproofai_sdk/_version.py +1 -0
  1100. package/.next/standalone/sdk/python/failproofai_sdk/_writer.py +750 -0
  1101. package/.next/standalone/sdk/python/failproofai_sdk/integrations/__init__.py +274 -0
  1102. package/.next/standalone/sdk/python/failproofai_sdk/integrations/_compat.py +247 -0
  1103. package/.next/standalone/sdk/python/failproofai_sdk/integrations/_core.py +1076 -0
  1104. package/.next/standalone/sdk/python/failproofai_sdk/integrations/crewai.py +1669 -0
  1105. package/.next/standalone/sdk/python/failproofai_sdk/integrations/langchain.py +2151 -0
  1106. package/.next/standalone/sdk/python/failproofai_sdk/integrations/llama_index.py +1588 -0
  1107. package/.next/standalone/sdk/python/failproofai_sdk/integrations/pydantic_ai.py +977 -0
  1108. package/.next/standalone/sdk/python/failproofai_sdk/py.typed +0 -0
  1109. package/.next/standalone/sdk/python/pyproject.toml +92 -0
  1110. package/.next/standalone/sdk/python/skill/SKILL.md +399 -0
  1111. package/.next/standalone/sdk/python/skill/agents/openai.yaml +8 -0
  1112. package/.next/standalone/sdk/python/skill/references/events.md +234 -0
  1113. package/.next/standalone/sdk/python/skill/references/frameworks.md +314 -0
  1114. package/.next/standalone/sdk/python/skill/references/install.md +100 -0
  1115. package/.next/standalone/sdk/python/skill/references/integration.md +352 -0
  1116. package/.next/standalone/sdk/python/tests/__init__.py +0 -0
  1117. package/.next/standalone/sdk/python/tests/conftest.py +169 -0
  1118. package/.next/standalone/sdk/python/tests/integrations/__init__.py +6 -0
  1119. package/.next/standalone/sdk/python/tests/integrations/test_crewai.py +1299 -0
  1120. package/.next/standalone/sdk/python/tests/integrations/test_langchain.py +2338 -0
  1121. package/.next/standalone/sdk/python/tests/integrations/test_llama_index.py +1576 -0
  1122. package/.next/standalone/sdk/python/tests/integrations/test_pydantic_ai.py +1102 -0
  1123. package/.next/standalone/sdk/python/tests/test_context.py +410 -0
  1124. package/.next/standalone/sdk/python/tests/test_docs.py +411 -0
  1125. package/.next/standalone/sdk/python/tests/test_durability.py +1352 -0
  1126. package/.next/standalone/sdk/python/tests/test_encoding.py +571 -0
  1127. package/.next/standalone/sdk/python/tests/test_integrations.py +1127 -0
  1128. package/.next/standalone/sdk/python/tests/test_no_customer_identifiers.py +214 -0
  1129. package/.next/standalone/sdk/python/tests/test_packaging.py +185 -0
  1130. package/.next/standalone/sdk/python/tests/test_resolver_umbrella.py +178 -0
  1131. package/.next/standalone/sdk/python/tests/test_scopes.py +487 -0
  1132. package/.next/standalone/sdk/python/tests/test_sdk.py +923 -0
  1133. package/.next/standalone/sdk/python/tests/test_server_contract.py +650 -0
  1134. package/.next/standalone/sdk/python/tests/test_site_docs.py +371 -0
  1135. package/.next/standalone/sdk/python/tests/test_skill_snippets.py +165 -0
  1136. package/.next/standalone/sdk/python/tests/test_spool_contract.py +287 -0
  1137. package/.next/standalone/sdk/python/tests/test_spool_creation.py +360 -0
  1138. package/.next/standalone/sdk/python/tests/test_wire_format.py +279 -0
  1139. package/.next/standalone/sdk/python/tests/test_zero_dependencies.py +378 -0
  1140. package/.next/standalone/sdk/python/uv.lock +6005 -0
  1141. package/.next/standalone/server.js +1 -1
  1142. package/README.md +79 -23
  1143. package/bin/failproofai.mjs +145 -11
  1144. package/dist/cli.mjs +4483 -2206
  1145. package/dist/index.js +5 -5
  1146. package/dist/worker.mjs +2399 -1978
  1147. package/package.json +30 -23
  1148. package/policy-pack/SHA256SUMS +2 -0
  1149. package/policy-pack/failproofai-pack.json +732 -0
  1150. package/policy-pack/failproofai-pack.mjs +2017 -0
  1151. package/scripts/build-policy-pack.mjs +121 -0
  1152. package/scripts/changelog-section.py +77 -0
  1153. package/scripts/prune-standalone.mjs +3 -0
  1154. package/scripts/python-version.py +232 -0
  1155. package/scripts/release-announcement.mjs +686 -0
  1156. package/scripts/translate-docs/cli.ts +21 -0
  1157. package/scripts/translate-docs/config.ts +19 -1
  1158. package/scripts/translate-docs/mintlify-nav.ts +85 -13
  1159. package/scripts/translate-docs/translator.ts +66 -11
  1160. package/src/audit/cache.ts +40 -3
  1161. package/src/audit/cli.ts +1 -1
  1162. package/src/audit/index.ts +1 -1
  1163. package/src/audit/replay.ts +89 -3
  1164. package/src/audit/report.ts +5 -5
  1165. package/src/audit/schedule-cli.ts +49 -53
  1166. package/src/hooks/builtin-policies.ts +217 -579
  1167. package/src/hooks/cloud-enrollment-cli.ts +66 -27
  1168. package/src/hooks/cloud-managed-policies.ts +6 -1
  1169. package/src/hooks/configure-wizard.ts +1 -1
  1170. package/src/hooks/custom-hooks-loader.ts +89 -6
  1171. package/src/hooks/fp-home.ts +92 -4
  1172. package/src/hooks/fp-reset.ts +26 -2
  1173. package/src/hooks/handler.ts +181 -11
  1174. package/src/hooks/harness-cli.ts +79 -25
  1175. package/src/hooks/hook-activity-store.ts +13 -3
  1176. package/src/hooks/install-prompt.ts +25 -3
  1177. package/src/hooks/manager.ts +418 -172
  1178. package/src/hooks/migrations.ts +2 -2
  1179. package/src/hooks/pack-cli.ts +505 -0
  1180. package/src/hooks/pack-failclosed.ts +189 -0
  1181. package/src/hooks/pack-manifest.ts +344 -0
  1182. package/src/hooks/pack-store.ts +930 -0
  1183. package/src/hooks/policy-catalog.ts +535 -0
  1184. package/src/hooks/policy-evaluator.ts +24 -16
  1185. package/src/hooks/policy-presets.ts +4 -2
  1186. package/src/hooks/policy-registry.ts +8 -2
  1187. package/src/hooks/policy-types.ts +26 -0
  1188. package/src/hooks/session-pause-cli.ts +33 -9
  1189. package/src/hooks/tui.ts +570 -0
  1190. package/src/hooks/types.ts +15 -1
  1191. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0agdw2a._.js +0 -3
  1192. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d1u_na._.js +0 -3
  1193. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nne229._.js +0 -3
  1194. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oy4kxb._.js +0 -3
  1195. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zf034w._.js +0 -3
  1196. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1hstmft._.js +0 -3
  1197. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1tvn4wf._.js +0 -3
  1198. package/.next/standalone/.next/server/chunks/_0lxbzdq._.js +0 -3
  1199. package/.next/standalone/.next/server/chunks/_18ty6si._.js +0 -3
  1200. package/.next/standalone/.next/server/chunks/_1zuiiy3._.js +0 -3
  1201. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_1iiwm5e._.js +0 -3
  1202. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03eykvd._.js +0 -5
  1203. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kgy9da._.js +0 -4
  1204. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m98kzy._.js +0 -4
  1205. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0v5_91z._.js +0 -4
  1206. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1-a3135._.js +0 -4
  1207. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1_dfocn._.js +0 -4
  1208. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1e5g_ur._.js +0 -4
  1209. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1hmqefd._.js +0 -4
  1210. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1kzapg5._.js +0 -6
  1211. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1zvtylo._.js +0 -3
  1212. package/.next/standalone/.next/server/chunks/ssr/_1wboum1._.js +0 -23
  1213. package/.next/standalone/.next/server/chunks/ssr/node_modules_1j2z5jb._.js +0 -3
  1214. package/.next/standalone/.next/static/chunks/13pe0rgzztjxa.js +0 -6
  1215. package/.next/standalone/.next/static/chunks/1xajksrefvav8.js +0 -1
  1216. package/.next/standalone/.next/static/chunks/2ts65czrjjd_k.js +0 -31
  1217. package/.next/standalone/.next/static/chunks/31orv9uidm1fn.js +0 -22
  1218. package/.next/standalone/.next/static/chunks/3wq9x0c-7ld5d.css +0 -2
  1219. package/.next/standalone/node_modules/next/dist/server/lib/encode-cache-tag.js +0 -45
  1220. /package/.next/standalone/.next/static/{zMC0Yqypg3GF82-3KN6ul → nwbyWT06Ud0XdXOrVJyvS}/_buildManifest.js +0 -0
  1221. /package/.next/standalone/.next/static/{zMC0Yqypg3GF82-3KN6ul → nwbyWT06Ud0XdXOrVJyvS}/_clientMiddlewareManifest.js +0 -0
  1222. /package/.next/standalone/.next/static/{zMC0Yqypg3GF82-3KN6ul → nwbyWT06Ud0XdXOrVJyvS}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Install/remove/list failproofai hooks for one or more agent CLIs.
2
+ * Install/remove/list failproofai hooks for one or more agent harnesses.
3
3
  *
4
4
  * Per-CLI path resolution and settings I/O live in `./integrations` (one
5
5
  * `Integration` impl per CLI). This module orchestrates: validation, policy
@@ -26,6 +26,23 @@ import { CliError } from "../cli-error";
26
26
  import { hookLogWarn } from "./hook-logger";
27
27
  import { customPoliciesDir, globalPolicyConfigFile } from "./fp-home";
28
28
  import { readActiveCloudManagedPolicies } from "./cloud-managed-policies";
29
+ import { installBundledPack, setPackPolicyEnabled } from "./pack-store";
30
+ import type { ResolvedPack } from "./pack-manifest";
31
+ import { hasInstalledPacks, readInstalledPacks } from "./pack-manifest";
32
+ import {
33
+ chip,
34
+ note,
35
+ nextStep,
36
+ optsFor,
37
+ printBlock,
38
+ rule,
39
+ stack,
40
+ table,
41
+ title,
42
+ warning,
43
+ type ChipState,
44
+ type TableRow,
45
+ } from "./tui";
29
46
 
30
47
  const VALID_POLICY_NAMES = new Set(BUILTIN_POLICIES.map((p) => p.name));
31
48
 
@@ -63,13 +80,167 @@ function resolveFailproofaiBinary(): string {
63
80
  }
64
81
  }
65
82
 
66
- function validatePolicyNames(names: string[]): void {
67
- const invalid = names.filter((n) => !VALID_POLICY_NAMES.has(n));
68
- if (invalid.length > 0) {
69
- const validList = [...VALID_POLICY_NAMES].join(", ");
83
+ /** One policy of one installed pack, resolved from a name the user typed. */
84
+ interface PackPolicyRef {
85
+ packId: string;
86
+ packVersion: string;
87
+ name: string;
88
+ /** The `disabledCustomPolicies` entry the dashboard writes for it. */
89
+ disabledKey: string;
90
+ }
91
+
92
+ /**
93
+ * Split names the user typed into builtins and installed-pack policies.
94
+ *
95
+ * Without this, every name went through `validatePolicyNames`, whose set is the
96
+ * compiled builtins — so `policies --disable block-big-refund` on a pack the
97
+ * user had just installed answered "Unknown policy name" and listed 39 names
98
+ * that were not the one they meant. A pack could be installed and then not
99
+ * managed at all.
100
+ *
101
+ * A builtin wins a bare name, because that is the name people have typed for a
102
+ * year and a third-party pack must not be able to capture it. Two packs
103
+ * declaring the same name is the one case that cannot be guessed, so it is
104
+ * refused with the qualified `<pack-id>:<name>` form spelled out.
105
+ */
106
+ function resolvePolicyNames(names: string[]): { builtins: string[]; packs: PackPolicyRef[] } {
107
+ const builtins: string[] = [];
108
+ const packs: PackPolicyRef[] = [];
109
+ const unknown: string[] = [];
110
+
111
+ let installed: ResolvedPack[] = [];
112
+ try {
113
+ installed = readInstalledPacks().packs;
114
+ } catch {
115
+ // No packs, or an unreadable manifest: names simply resolve as builtins and
116
+ // an unknown one gets the ordinary error. A listing-adjacent command must
117
+ // not fail because a pack manifest is corrupt.
118
+ }
119
+
120
+ const refsFor = (packId: string | null, policyName: string): PackPolicyRef[] =>
121
+ installed
122
+ .filter((pack) => (packId === null || pack.id === packId))
123
+ .filter((pack) => pack.policies.some((p) => p.name === policyName))
124
+ .map((pack) => ({
125
+ packId: pack.id,
126
+ packVersion: pack.version,
127
+ name: policyName,
128
+ disabledKey: `pack:${pack.id}@${pack.version}:${policyName}`,
129
+ }));
130
+
131
+ for (const raw of names) {
132
+ // A PACK first, then the compiled set. This order is the whole fix for
133
+ // `policy remove block-sudo` printing "Disabled 0" while `block-sudo` kept
134
+ // denying: the name resolved to a builtin, the command edited
135
+ // `enabledPolicies`, and `enabledPolicies` stopped deciding anything when
136
+ // this build stopped registering builtins. The pack is where the switch is.
137
+ const direct = refsFor(null, raw);
138
+ if (direct.length === 1) {
139
+ packs.push(direct[0]);
140
+ continue;
141
+ }
142
+ if (direct.length > 1) {
143
+ throw new CliError(
144
+ `"${raw}" is declared by ${direct.length} installed packs.\n` +
145
+ `Name the one you mean:\n` +
146
+ direct.map((m) => ` ${m.packId}:${m.name}`).join("\n"),
147
+ );
148
+ }
149
+ // No pack carries it. Falls back to the compiled name set, which is what a
150
+ // machine still running on the migration shim has.
151
+ if (VALID_POLICY_NAMES.has(raw)) {
152
+ builtins.push(raw);
153
+ continue;
154
+ }
155
+ // `acme/finance:block-big-refund` — a pack id holds a slash, never a colon,
156
+ // so the last colon separates them unambiguously.
157
+ const colon = raw.lastIndexOf(":");
158
+ const qualified = colon > 0
159
+ ? { packId: raw.slice(0, colon), name: raw.slice(colon + 1) }
160
+ : null;
161
+ const matches = qualified
162
+ ? refsFor(qualified.packId, qualified.name)
163
+ : refsFor(null, raw);
164
+
165
+ if (matches.length === 1) {
166
+ packs.push(matches[0]);
167
+ continue;
168
+ }
169
+ if (matches.length > 1) {
170
+ throw new CliError(
171
+ `"${raw}" is declared by ${matches.length} installed packs.\n` +
172
+ `Name the one you mean:\n` +
173
+ matches.map((m) => ` ${m.packId}:${m.name}`).join("\n"),
174
+ );
175
+ }
176
+ unknown.push(raw);
177
+ }
178
+
179
+ if (unknown.length > 0) {
180
+ const packNames = installed.flatMap((pack) =>
181
+ pack.policies.map((p) => `${pack.id}:${p.name}`),
182
+ );
183
+ throw new CliError(
184
+ `Unknown policy name(s): ${unknown.join(", ")}\n` +
185
+ `Valid policies: ${[...VALID_POLICY_NAMES].join(", ")}` +
186
+ (packNames.length > 0 ? `\nFrom installed packs: ${packNames.join(", ")}` : ""),
187
+ );
188
+ }
189
+ return { builtins, packs };
190
+ }
191
+
192
+ /** Turn pack policies on or off, and say what happened. */
193
+ function applyPackPolicies(
194
+ refs: PackPolicyRef[],
195
+ on: boolean,
196
+ scope: HookScope,
197
+ cwd?: string,
198
+ ): void {
199
+ if (refs.length === 0) return;
200
+ for (const ref of refs) {
201
+ const result = setPackPolicyEnabled(ref.packId, ref.name, on);
202
+ if (!result.ok) {
203
+ throw new CliError(`Could not ${on ? "enable" : "disable"} ${ref.name}: ${result.reason}`);
204
+ }
205
+ }
206
+ if (on) {
207
+ // Clearing the dashboard's key too. The selection and the disabled key are
208
+ // two different switches for one policy, and leaving the second one set
209
+ // would report the policy enabled while it stayed off.
210
+ const config = readScopedHooksConfig(scope, cwd);
211
+ const keys = new Set(refs.map((r) => r.disabledKey));
212
+ const remaining = (config.disabledCustomPolicies ?? []).filter((k) => !keys.has(k));
213
+ if (remaining.length !== (config.disabledCustomPolicies ?? []).length) {
214
+ const next: HooksConfig = { ...config, disabledCustomPolicies: remaining };
215
+ if (remaining.length === 0) delete next.disabledCustomPolicies;
216
+ writeScopedHooksConfig(next, scope, cwd);
217
+ }
218
+ }
219
+ for (const ref of refs) {
220
+ console.log(
221
+ `${on ? "Enabled" : "Disabled"} ${ref.name} from pack ${ref.packId}@${ref.packVersion}.`,
222
+ );
223
+ }
224
+ }
225
+
226
+ /**
227
+ * Refuse to "disable" a policy that will register anyway.
228
+ *
229
+ * Removing an `alwaysOn` name from `enabledPolicies` succeeds at the file level
230
+ * and changes nothing at the enforcement level, so without this the CLI reports
231
+ * a policy disabled while it keeps denying — the operator's mental model and the
232
+ * machine's behaviour diverge silently, which is the failure this policy exists
233
+ * to prevent in the first place.
234
+ */
235
+ function rejectAlwaysOnPolicies(names: string[]): void {
236
+ const alwaysOn = new Set(BUILTIN_POLICIES.filter((p) => p.alwaysOn).map((p) => p.name));
237
+ const refused = names.filter((n) => alwaysOn.has(n));
238
+ if (refused.length > 0) {
70
239
  throw new CliError(
71
- `Unknown policy name(s): ${invalid.join(", ")}\n` +
72
- `Valid policies: ${validList}`
240
+ `Cannot disable: ${refused.join(", ")}\n` +
241
+ `This policy stops an agent from switching off failproofai itself, so it ` +
242
+ `is always on and ships with the package. A guard the agent can disable ` +
243
+ `by the means it is meant to prevent is not a guard.`
73
244
  );
74
245
  }
75
246
  }
@@ -151,8 +322,21 @@ async function installHooksImpl(
151
322
  // Validate user input first before any system checks
152
323
  if (policyNames !== undefined && policyNames.length > 0) {
153
324
  const nonAllNames = policyNames.filter((n) => n !== "all");
154
- // Check unknown names first (most actionable error for the user)
155
- if (nonAllNames.length > 0) validatePolicyNames(nonAllNames);
325
+ // Check unknown names first (most actionable error for the user). Pack
326
+ // policies are applied here and taken out of the list: the rest of this
327
+ // function writes `enabledPolicies`, which is a builtin-only set.
328
+ if (nonAllNames.length > 0) {
329
+ const resolved = resolvePolicyNames(nonAllNames);
330
+ applyPackPolicies(resolved.packs, true, scope, cwd);
331
+ if (resolved.packs.length > 0) {
332
+ policyNames = policyNames.filter((n) => n === "all" || resolved.builtins.includes(n));
333
+ // Named ONLY pack policies: the work is done. Carrying on would resolve
334
+ // the failproofai binary and rewrite every CLI's settings to enable a
335
+ // set of builtins nobody asked about — and would fail outright on a
336
+ // machine where the binary is not on PATH, AFTER the pack change landed.
337
+ if (policyNames.length === 0) return;
338
+ }
339
+ }
156
340
  // Then check if "all" is mixed with valid specific names
157
341
  if (policyNames.includes("all") && nonAllNames.length > 0) {
158
342
  throw new CliError(
@@ -290,6 +474,49 @@ async function installHooksImpl(
290
474
  }
291
475
  }
292
476
  writeScopedHooksConfig(configToWrite, scope, cwd);
477
+
478
+ // Choosing policies IS selecting from the pack now. Nothing registers these
479
+ // names from this build any more, so writing `enabledPolicies` and stopping
480
+ // would leave a freshly set-up machine enforcing nothing at all — which is
481
+ // the failure mode this whole product exists to prevent.
482
+ //
483
+ // Installed from the copy vendored in the package: no network, so setup
484
+ // cannot fail behind a proxy, and the machine is guarded the moment it is
485
+ // configured rather than the moment it next reaches github.com.
486
+ // The always-on guard is excluded: a pack may not declare `alwaysOn`, so the
487
+ // pack does not carry it and asking for it by name is a selection the pack
488
+ // cannot satisfy. It ships compiled in and registers regardless.
489
+ const alwaysOnNames = new Set(BUILTIN_POLICIES.filter((p) => p.alwaysOn).map((p) => p.name));
490
+ const fromPack = selectedPolicies.filter((name) => !alwaysOnNames.has(name));
491
+ if (fromPack.length > 0) {
492
+ // ONLY when there is no pack yet. Installing the bundled pack with
493
+ // `only: <selection>` REPLACES whatever the machine had chosen, and
494
+ // `selectedPolicies` is derived from `enabledPolicies` — which is empty on a
495
+ // machine whose pack came from `pack add core`. `policy add block-rm-rf`
496
+ // therefore took a machine from ten guards to one, silently, and nine
497
+ // policies went from denying to allowing.
498
+ //
499
+ // With a pack already installed the names are switched on individually
500
+ // instead, which is additive and touches nothing else.
501
+ if (!hasInstalledPacks()) {
502
+ const bundled = installBundledPack({ only: fromPack });
503
+ if (!bundled.installed) {
504
+ console.log(
505
+ `\nWarning: could not install the policy pack (${bundled.reason}).\n` +
506
+ `Nothing is enforcing yet — run \`failproofai pack add core\` once that is fixed.`,
507
+ );
508
+ }
509
+ } else {
510
+ for (const name of fromPack) {
511
+ for (const pack of readInstalledPacks().packs) {
512
+ if (pack.policies.some((p) => p.name === name)) {
513
+ setPackPolicyEnabled(pack.id, name, true);
514
+ break;
515
+ }
516
+ }
517
+ }
518
+ }
519
+ }
293
520
  console.log(`\nEnabled ${selectedPolicies.length} policy(ies): ${selectedPolicies.join(", ")}\n`);
294
521
  if (removeCustomHooks) {
295
522
  console.log("Custom hooks path cleared.");
@@ -434,7 +661,18 @@ export async function removeHooks(policyNames?: string[], scope: HookScope | "al
434
661
 
435
662
  // Remove specific policies from config (keep hooks installed)
436
663
  if (policyNames && policyNames.length > 0 && !(policyNames.length === 1 && policyNames[0] === "all")) {
437
- validatePolicyNames(policyNames);
664
+ const resolved = resolvePolicyNames(policyNames);
665
+ applyPackPolicies(resolved.packs, false, configScope, cwd);
666
+ policyNames = resolved.builtins;
667
+ rejectAlwaysOnPolicies(policyNames);
668
+ // Named ONLY pack policies: they are off now and there is nothing else to
669
+ // do. Falling through would reach the hook-removal path below with an empty
670
+ // name list, which is the "remove failproofai from every CLI" branch — so
671
+ // `--uninstall <a-pack-policy>` would have torn out every hook on the
672
+ // machine.
673
+ if (resolved.packs.length > 0 && policyNames.length === 0) return;
674
+ }
675
+ if (policyNames && policyNames.length > 0 && !(policyNames.length === 1 && policyNames[0] === "all")) {
438
676
  const config = readScopedHooksConfig(configScope, cwd);
439
677
  const removeSet = new Set(policyNames);
440
678
  const remaining = config.enabledPolicies.filter((p) => !removeSet.has(p));
@@ -593,135 +831,88 @@ export async function removeHooks(policyNames?: string[], scope: HookScope | "al
593
831
  */
594
832
  export async function listHooks(cwd?: string): Promise<void> {
595
833
  const config = readMergedHooksConfig(cwd);
596
- const enabledSet = new Set(config.enabledPolicies);
597
834
  const disabledCustomSet = new Set(config.disabledCustomPolicies ?? []);
835
+ const opts = optsFor(process.stdout);
598
836
 
599
837
  // Determine which scopes have hooks installed (deduplicate when paths overlap, e.g. cwd === home)
600
838
  const uniqueScopes = deduplicateScopes(HOOK_SCOPES, cwd);
601
839
  const installedScopes = uniqueScopes.filter((s) => hooksInstalledInSettings(s, cwd));
602
840
 
603
- // Separate beta from regular policies
604
- const regularPolicies = BUILTIN_POLICIES.filter((p) => !p.beta);
605
- const betaPolicies = BUILTIN_POLICIES.filter((p) => p.beta);
606
-
607
- // Dynamic name column width based on longest policy name
608
- const nameColWidth = Math.max(...BUILTIN_POLICIES.map((p) => p.name.length)) + 2;
609
-
610
- // All known builtin policy names (for unknown policyParams key detection)
611
- const builtinPolicyNames = new Set(BUILTIN_POLICIES.map((p) => p.name));
612
-
613
- // Helper: print params summary lines beneath a policy row
614
- const printParamsSummary = (policyName: string, indent: string) => {
615
- const params = config.policyParams?.[policyName];
616
- if (!params) return;
617
- for (const [key, val] of Object.entries(params)) {
618
- console.log(`${indent} ${key}: ${JSON.stringify(val)}`);
841
+ // Names a `policyParams` key may legitimately use: every policy an installed
842
+ // pack carries. Previously the compiled catalog, which no longer describes
843
+ // what runs.
844
+ const knownPolicyNames = new Set<string>();
845
+ try {
846
+ for (const pack of readInstalledPacks().packs) {
847
+ for (const policy of pack.policies) knownPolicyNames.add(policy.name);
619
848
  }
620
- };
849
+ } catch {
850
+ // Unreadable manifest: skip the typo warning rather than invent one.
851
+ }
621
852
 
622
- const statusCol = 8;
623
- const printSimpleRow = (policy: { name: string; description: string }) => {
624
- const mark = enabledSet.has(policy.name) ? `\x1B[32m\u2713\x1B[0m` : " ";
625
- console.log(` ${mark}${" ".repeat(statusCol - 1)}${policy.name.padEnd(nameColWidth)}${policy.description}`);
626
- printParamsSummary(policy.name, ` ${" ".repeat(statusCol)}`);
627
- };
628
- const printBetaSection = (printRow: (p: { name: string; description: string }) => void) => {
629
- if (betaPolicies.length > 0) {
630
- console.log(`\n \x1B[2m\u2500\u2500 Beta \u2500\u2500\x1B[0m`);
631
- for (const policy of betaPolicies) printRow(policy);
853
+ const groups: Array<string[] | null> = [];
854
+ const packCount = (() => {
855
+ try {
856
+ return readInstalledPacks().packs.reduce(
857
+ (n, pack) => n + (pack.enabled ?? pack.policies.map((p) => p.name)).length,
858
+ 0,
859
+ );
860
+ } catch {
861
+ return 0;
632
862
  }
633
- };
863
+ })();
864
+ groups.push(
865
+ title(
866
+ "failproofai policies",
867
+ installedScopes.length === 0
868
+ ? "not installed"
869
+ : `${installedScopes.join(" + ")} · ${packCount} on`,
870
+ opts,
871
+ ),
872
+ );
634
873
 
635
874
  if (installedScopes.length === 0) {
636
- // State A: No hooks installed — show table with configured state + descriptions
637
- console.log("\nFailproof AI Policies \u2014 not installed\n");
638
-
639
- console.log(` ${"Status".padEnd(statusCol)}${"Name".padEnd(nameColWidth)}Description`);
640
- console.log(` ${"\u2500".repeat(6)} ${"\u2500".repeat(nameColWidth - 2)} ${"\u2500".repeat(38)}`);
641
-
642
- for (const policy of regularPolicies) printSimpleRow(policy);
643
- printBetaSection(printSimpleRow);
644
-
645
- if (config.enabledPolicies.length > 0) {
646
- console.log("\n Policies not installed. Run `failproofai policies --install` to activate.");
647
- } else {
648
- console.log("\n Run `failproofai policies --install` to get started.");
649
- }
650
- console.log(` Config: ${globalPolicyConfigFile()}\n`);
651
- } else if (installedScopes.length === 1) {
652
- // State B: Single scope — table with header row
653
- const scope = installedScopes[0];
654
- console.log(`\nFailproof AI Hook Policies (${scope})\n`);
655
-
656
- console.log(` ${"Status".padEnd(statusCol)}${"Name".padEnd(nameColWidth)}Description`);
657
- console.log(` ${"\u2500".repeat(6)} ${"\u2500".repeat(nameColWidth - 2)} ${"\u2500".repeat(38)}`);
658
-
659
- for (const policy of regularPolicies) printSimpleRow(policy);
660
- printBetaSection(printSimpleRow);
661
-
662
- console.log(`\n Config: ${globalPolicyConfigFile()}\n`);
663
- } else {
664
- // State C: Multiple scopes — column table
665
- const COL = 9;
666
- const scopeLabelMap: Record<HookScope, string> = {
667
- user: "User",
668
- project: "Project",
669
- local: "Local",
670
- };
671
-
672
- console.log("\nFailproof AI Hook Policies\n");
673
-
674
- // Header with only installed scope columns + separator
675
- const buildScopePrefix = () => {
676
- let s = " ";
677
- for (const sc of installedScopes) s += scopeLabelMap[sc].padEnd(COL);
678
- return s;
679
- };
680
- const scopeHeaderWidth = installedScopes.length * COL;
681
- console.log(`${buildScopePrefix()}${"Name".padEnd(nameColWidth)}Description`);
682
- console.log(` ${"\u2500".repeat(scopeHeaderWidth)}${"\u2500".repeat(nameColWidth)}${"\u2500".repeat(38)}`);
683
-
684
- const printMultiScopeRow = (policy: { name: string; description: string }) => {
685
- const enabled = enabledSet.has(policy.name);
686
- let row = " ";
687
- for (const _scope of installedScopes) {
688
- if (enabled) {
689
- row += `\x1B[32m\u2713 ON\x1B[0m` + " ".repeat(COL - 4);
690
- } else {
691
- row += " OFF" + " ".repeat(COL - 5);
692
- }
693
- }
694
- row += policy.name.padEnd(nameColWidth) + policy.description;
695
- console.log(row);
696
- printParamsSummary(policy.name, ` ${" ".repeat(scopeHeaderWidth)}`);
697
- };
698
-
699
- for (const policy of regularPolicies) printMultiScopeRow(policy);
700
-
701
- if (betaPolicies.length > 0) {
702
- console.log(`\n \x1B[2m\u2500\u2500 Beta \u2500\u2500\x1B[0m`);
703
- for (const policy of betaPolicies) printMultiScopeRow(policy);
704
- }
705
-
706
- console.log(`\n Config: ${globalPolicyConfigFile()}`);
707
-
708
- // Multi-scope warning
709
- const scopeNames = installedScopes.join(", ");
710
- console.log();
711
- console.log(`\x1B[33m\u26A0 Hooks in multiple scopes (${scopeNames}).\x1B[0m`);
712
- console.log(" Consider keeping one. Remove with: failproofai policies --uninstall --scope <scope>\n");
875
+ groups.push(
876
+ nextStep(
877
+ "failproofai policies --install",
878
+ config.enabledPolicies.length > 0
879
+ ? "These are configured but NOT installed — no hook is running them:"
880
+ : "Nothing is installed yet. Get started with:",
881
+ opts,
882
+ ),
883
+ );
884
+ }
885
+ // Held back to the end rather than printed here. Everything below this point
886
+ // is another section of the same listing, and a footer in the middle of it
887
+ // reads as the end of the output — while a warning at the very end is the one
888
+ // a reader scrolling back from their prompt actually sees.
889
+ const footer: Array<string[] | null> = [note(`Config: ${globalPolicyConfigFile()}`, opts)];
890
+
891
+ if (installedScopes.length > 1) {
892
+ footer.push(
893
+ warning(
894
+ [
895
+ `Hooks in multiple scopes (${installedScopes.join(", ")}).`,
896
+ "Consider keeping one. Remove with: failproofai policies --uninstall --scope <scope>",
897
+ ],
898
+ opts,
899
+ ),
900
+ );
713
901
  }
714
902
 
715
903
  // Warn about unknown policyParams keys
716
904
  if (config.policyParams) {
717
905
  const unknownKeys: string[] = [];
718
906
  for (const key of Object.keys(config.policyParams)) {
719
- if (!builtinPolicyNames.has(key)) {
720
- console.log(` \x1B[33mWarning: unknown policyParams key "${key}" — possible typo\x1B[0m`);
721
- unknownKeys.push(key);
722
- }
907
+ if (knownPolicyNames.size > 0 && !knownPolicyNames.has(key)) unknownKeys.push(key);
723
908
  }
724
909
  if (unknownKeys.length > 0) {
910
+ footer.push(
911
+ warning(
912
+ unknownKeys.map((key) => `unknown policyParams key "${key}" — possible typo`),
913
+ opts,
914
+ ),
915
+ );
725
916
  try {
726
917
  await trackHookEvent(getInstanceId(), "policy_params_validation_warning", {
727
918
  unknown_keys_count: unknownKeys.length,
@@ -734,30 +925,38 @@ export async function listHooks(cwd?: string): Promise<void> {
734
925
  // Explicit Custom Policies section
735
926
  const explicitPaths = configuredCustomPolicyPaths(config);
736
927
  if (explicitPaths.length > 0) {
737
- console.log(`\n \u2500\u2500 Custom Policies \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`);
928
+ groups.push(rule("Custom Policies", opts));
738
929
  for (const path of explicitPaths) {
739
930
  // Enforcement resolves configured paths from the project config root.
740
931
  // Use the same canonical path here so the ID checked by the CLI exactly
741
932
  // matches the ID written by the dashboard.
742
933
  const absPath = resolve(findProjectConfigDir(cwd ?? process.cwd()), path);
743
- console.log(` ${absPath}`);
934
+ groups.push(note(absPath, opts));
744
935
  if (!existsSync(absPath)) {
745
- console.log(` \x1B[31m\u2717 File not found: ${absPath}\x1B[0m`);
936
+ groups.push(warning([`file not found: ${absPath}`], opts));
746
937
  continue;
747
938
  }
748
939
  const hooks = await loadCustomHooks(absPath);
749
940
  if (hooks.length === 0) {
750
- console.log(` \x1B[31m\u2717 ERR failed to load (check ~/.failproofai/logs/hooks.log)\x1B[0m`);
941
+ groups.push(
942
+ warning(["failed to load (check ~/.failproofai/logs/hooks.log)"], opts),
943
+ );
751
944
  } else {
752
- const descColWidth = nameColWidth;
753
- for (const hook of hooks) {
754
- const disabled = disabledCustomSet.has(`custom:${absPath}:${hook.name}`);
755
- const status = disabled ? "\x1B[2m OFF\x1B[0m" : "\x1B[32m\u2713 ON\x1B[0m";
756
- console.log(` ${status} ${hook.name.padEnd(descColWidth)}${hook.description ?? ""}`);
757
- }
945
+ groups.push(
946
+ table(
947
+ {
948
+ head: ["", "Name", "Description"],
949
+ rows: hooks.map((hook) => [
950
+ chip(disabledCustomSet.has(`custom:${absPath}:${hook.name}`) ? "off" : "on", opts),
951
+ hook.name,
952
+ hook.description ?? "",
953
+ ]),
954
+ },
955
+ opts,
956
+ ),
957
+ );
758
958
  }
759
959
  }
760
- console.log();
761
960
  }
762
961
 
763
962
  // Convention Policies section (.failproofai/policies/*policies.{js,mjs,ts})
@@ -801,43 +1000,82 @@ export async function listHooks(cwd?: string): Promise<void> {
801
1000
  for (const t of targets) discovered[t].push({ file, hooks });
802
1001
  };
803
1002
 
804
- console.log(`\n \u2500\u2500 Convention Policies \u2014 ${label} (${dir}) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`);
805
- // `nameColWidth` is sized to the longest BUILTIN name, but a convention
806
- // filename can be longer \u2014 `padEnd` is then a no-op and the hook count runs
807
- // straight into the filename with no space
808
- // (`enforce-bengaluru-event-links-policies.mjs1 hook(s)`). Widen to fit the
809
- // files actually being printed, keeping a two-space gutter.
810
- const colWidth = Math.max(nameColWidth, ...files.map((f) => basename(f).length + 2));
1003
+ groups.push(rule(`Convention Policies — ${label}`, opts));
1004
+ groups.push(note(dir, opts));
1005
+ const rows: TableRow[] = [];
811
1006
  for (const file of files) {
1007
+ const filename = basename(file);
812
1008
  try {
813
1009
  const hooks = await loadCustomHooks(file);
814
- const filename = basename(file);
815
1010
  record(filename, hooks.map((h) => h.name));
816
1011
  if (hooks.length === 0) {
817
- console.log(` \x1B[31m\u2717\x1B[0m ${filename.padEnd(colWidth)}\x1B[31mfailed to load\x1B[0m`);
818
- } else {
819
- const hookStates = hooks.map((hook) => ({
820
- hook,
821
- disabled: disabledCustomSet.has(`convention:${policyScope}:${filename}:${hook.name}`),
822
- }));
823
- const disabledCount = hookStates.filter((entry) => entry.disabled).length;
824
- const status = disabledCount === 0
825
- ? "\x1B[32m\u2713 ON\x1B[0m"
826
- : disabledCount === hooks.length
827
- ? "\x1B[2m OFF\x1B[0m"
828
- : "\x1B[33m\u25D0 MIXED\x1B[0m";
829
- const hookSummary = hookStates
830
- .map(({ hook, disabled }) => `${hook.name}${disabled ? " (OFF)" : ""}`)
831
- .join(", ");
832
- console.log(` ${status} ${filename.padEnd(colWidth)}${hooks.length} hook(s): ${hookSummary}`);
1012
+ rows.push({ cells: [chip("failed", opts), filename, "failed to load"] });
1013
+ continue;
833
1014
  }
1015
+ const hookStates = hooks.map((hook) => ({
1016
+ hook,
1017
+ disabled: disabledCustomSet.has(`convention:${policyScope}:${filename}:${hook.name}`),
1018
+ }));
1019
+ const disabledCount = hookStates.filter((entry) => entry.disabled).length;
1020
+ const state: ChipState =
1021
+ disabledCount === 0 ? "on" : disabledCount === hooks.length ? "off" : "mixed";
1022
+ const hookSummary = hookStates
1023
+ .map(({ hook, disabled }) => `${hook.name}${disabled ? " (OFF)" : ""}`)
1024
+ .join(", ");
1025
+ rows.push({
1026
+ cells: [chip(state, opts), filename, `${hooks.length} hook(s): ${hookSummary}`],
1027
+ });
834
1028
  } catch {
835
- const filename = basename(file);
836
1029
  record(filename, []);
837
- console.log(` \x1B[31m\u2717\x1B[0m ${filename.padEnd(colWidth)}\x1B[31merror\x1B[0m`);
1030
+ rows.push({ cells: [chip("failed", opts), filename, "error"] });
838
1031
  }
839
1032
  }
840
- console.log();
1033
+ groups.push(table({ head: ["", "File", "Hooks"], rows }, opts));
1034
+ }
1035
+
1036
+ // Installed packs. They enforce on this machine exactly like every section
1037
+ // above, and until now the only way to see one was `failproofai pack list` —
1038
+ // so the command that answers "what is enforcing here?" answered it with a
1039
+ // subset, for the one source a person had to go out of their way to install.
1040
+ try {
1041
+ const { packs, errors } = readInstalledPacks();
1042
+ for (const pack of packs) {
1043
+ const taken = pack.enabled ?? pack.policies.map((p) => p.name);
1044
+ groups.push(rule(`Pack — ${pack.id}@${pack.version}`, opts));
1045
+ groups.push(
1046
+ table(
1047
+ {
1048
+ head: ["", "Name", "Description"],
1049
+ rows: pack.policies.map((policy) => {
1050
+ const disabled = disabledCustomSet.has(
1051
+ `pack:${pack.id}@${pack.version}:${policy.name}`,
1052
+ );
1053
+ // `observe` evaluates and discards its verdict, so a row reading
1054
+ // ON would claim enforcement the pack deliberately is not doing.
1055
+ const state: ChipState =
1056
+ pack.effect === "observe"
1057
+ ? "observe"
1058
+ : !taken.includes(policy.name) || disabled
1059
+ ? "off"
1060
+ : "pack";
1061
+ return [chip(state, opts), policy.name, policy.description];
1062
+ }),
1063
+ },
1064
+ opts,
1065
+ ),
1066
+ );
1067
+ }
1068
+ if (errors.length > 0) {
1069
+ groups.push(
1070
+ warning(
1071
+ errors.map((err) => `pack ${err.id ?? "(unnamed)"} will not load: ${err.reason}`),
1072
+ opts,
1073
+ ),
1074
+ );
1075
+ }
1076
+ } catch {
1077
+ // Same rule as the cloud section below: a listing must not be the thing
1078
+ // that turns an unreadable manifest into a broken command.
841
1079
  }
842
1080
 
843
1081
  // Cloud-managed policies. These enforce on this machine exactly like the two
@@ -852,21 +1090,27 @@ export async function listHooks(cwd?: string): Promise<void> {
852
1090
  try {
853
1091
  const cloud = readActiveCloudManagedPolicies();
854
1092
  if (cloud.length > 0) {
855
- const gen = cloud[0].deployment;
856
- console.log(
857
- `\n \u2500\u2500 Cloud-managed \u2014 deployment ${gen} \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`,
1093
+ groups.push(rule(`Cloud-managed — deployment ${cloud[0].deployment}`, opts));
1094
+ groups.push(
1095
+ table(
1096
+ {
1097
+ head: ["", "Policy", "Version"],
1098
+ rows: cloud.map((artifact) => [
1099
+ // `observe` is evaluated and then has its verdict discarded, so a
1100
+ // row that read "ON" would claim enforcement this policy
1101
+ // deliberately is not doing.
1102
+ chip(artifact.effect === "observe" ? "observe" : "cloud", opts),
1103
+ artifact.id,
1104
+ `v${artifact.version}`,
1105
+ ]),
1106
+ flex: 1,
1107
+ },
1108
+ opts,
1109
+ ),
1110
+ );
1111
+ groups.push(
1112
+ note("Managed from the dashboard — not switchable with `failproofai policies`.", opts),
858
1113
  );
859
- const colWidth = Math.max(nameColWidth, ...cloud.map((c) => c.id.length + 2));
860
- for (const artifact of cloud) {
861
- // `observe` is evaluated and then has its verdict discarded, so a row
862
- // that read "ON" would claim enforcement this policy deliberately is
863
- // not doing.
864
- const status =
865
- artifact.effect === "observe" ? "\x1B[33m\u25D0 OBS\x1B[0m" : "\x1B[32m\u2713 ON\x1B[0m";
866
- console.log(` ${status} ${artifact.id.padEnd(colWidth)}v${artifact.version}`);
867
- }
868
- console.log("\n Managed from the dashboard \u2014 not switchable with `failproofai policies`.");
869
- console.log();
870
1114
  }
871
1115
  } catch {
872
1116
  // A machine with no deployment, or an unreadable manifest, simply has no
@@ -874,6 +1118,8 @@ export async function listHooks(cwd?: string): Promise<void> {
874
1118
  // the thing that turns a bad manifest into a broken command.
875
1119
  }
876
1120
 
1121
+ printBlock(process.stdout, stack(...groups, ...footer));
1122
+
877
1123
  // Mirror what was just listed into the USER config. Safe here because
878
1124
  // `failproofai policies` is a one-shot command — never do this on the hook
879
1125
  // path (see the HooksConfig.conventionPolicies doc comment).