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
@@ -0,0 +1,692 @@
1
+ """Multi-tenancy: org selection at login, --org header injection, orgs/org commands."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+
7
+ import httpx
8
+ import respx
9
+
10
+ from fp_cli import config
11
+ from fp_cli.app import app
12
+
13
+ BASE = "http://dash.test"
14
+
15
+
16
+ def _session(memberships, *, is_admin=False, id="u1", email="me@test"):
17
+ return {"id": id, "email": email, "is_instance_admin": is_admin, "memberships": memberships}
18
+
19
+
20
+ _ACME = {"org_id": "o1", "org_slug": "acme", "org_name": "Acme", "permissions": ["events:read"], "permission_set": "standard"}
21
+ _GLOBEX = {"org_id": "o2", "org_slug": "globex", "org_name": "Globex", "permissions": ["events:read", "keys:create"], "permission_set": "admin"}
22
+
23
+
24
+ def _otp_routes(user):
25
+ respx.post(f"{BASE}/api/auth/otp/request").mock(return_value=httpx.Response(200, json={"ok": True}))
26
+ # The OTP-verify payload is intentionally slim (no memberships); login reads the
27
+ # authoritative memberships from GET /api/auth/session, so mock that too.
28
+ respx.post(f"{BASE}/api/auth/otp/verify").mock(
29
+ return_value=httpx.Response(
30
+ 200,
31
+ json={"user": {"id": user["id"], "email": user["email"]}, "expires_in_secs": 3600},
32
+ headers={"set-cookie": "ae_session=tok; Path=/"},
33
+ )
34
+ )
35
+ respx.get(f"{BASE}/api/auth/session").mock(return_value=httpx.Response(200, json=user))
36
+
37
+
38
+ # --- login org selection ----------------------------------------------------
39
+
40
+
41
+ @respx.mock
42
+ def test_login_single_org_auto_selects(home, runner):
43
+ _otp_routes(_session([_ACME]))
44
+ result = runner.invoke(app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\n")
45
+ assert result.exit_code == 0, result.output
46
+ assert config.load_config().org == "acme"
47
+
48
+
49
+ @respx.mock
50
+ def test_login_org_flag_persists(home, runner):
51
+ _otp_routes(_session([_ACME, _GLOBEX]))
52
+ result = runner.invoke(
53
+ app, ["--base-url", BASE, "login", "--email", "me@test", "--org", "globex"], input="123456\n"
54
+ )
55
+ assert result.exit_code == 0, result.output
56
+ assert config.load_config().org == "globex"
57
+
58
+
59
+ @respx.mock
60
+ def test_login_org_not_a_member_is_usage_error(home, runner):
61
+ _otp_routes(_session([_ACME]))
62
+ result = runner.invoke(
63
+ app, ["--base-url", BASE, "login", "--email", "me@test", "--org", "globex"], input="123456\n"
64
+ )
65
+ assert result.exit_code == 2 # BadParameter: not a member of globex
66
+
67
+
68
+ @respx.mock
69
+ def test_login_multi_org_no_selection_exits_nonzero_json(home, runner):
70
+ # Non-interactive (CliRunner) multi-org login without --org: must not block.
71
+ _otp_routes(_session([_ACME, _GLOBEX]))
72
+ result = runner.invoke(app, ["--base-url", BASE, "--json", "login", "--email", "me@test"], input="123456\n")
73
+ assert result.exit_code == 2, result.output
74
+ # CliRunner echoes the typed OTP back onto stdout (its fake `input()` does what a terminal
75
+ # normally does), so stdout here is "<echo>\n<envelope>". That prefix is a harness artifact,
76
+ # not part of the --json contract — a real run echoes nothing — so parse from the envelope's
77
+ # opening brace and keep asserting that the envelope itself lands on stdout.
78
+ payload = json.loads(result.stdout[result.stdout.index("{") :])
79
+ assert payload["needs_org_selection"] is True
80
+ assert set(payload["orgs"]) == {"acme", "globex"}
81
+ # token saved so the user can `orgs switch` without re-doing OTP
82
+ assert config.load_config().session_token == "tok"
83
+
84
+
85
+ # --- interactive org picker (multi-tenant) ----------------------------------
86
+ #
87
+ # The CliRunner's stdin is not a TTY, so the picker is gated behind
88
+ # `_stdin_is_tty()` which we stub True. The OTP code is the first stdin line;
89
+ # the picker choice (slug / number / Enter-for-default) is the next.
90
+
91
+
92
+ def _tty(monkeypatch):
93
+ monkeypatch.setattr("fp_cli.select.stdin_is_tty", lambda: True)
94
+
95
+
96
+ @respx.mock
97
+ def test_login_multi_org_picker_by_slug(home, runner, monkeypatch):
98
+ _otp_routes(_session([_ACME, _GLOBEX]))
99
+ _tty(monkeypatch)
100
+ result = runner.invoke(
101
+ app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\nglobex\n"
102
+ )
103
+ assert result.exit_code == 0, result.output
104
+ assert config.load_config().org == "globex"
105
+
106
+
107
+ @respx.mock
108
+ def test_login_multi_org_picker_by_number(home, runner, monkeypatch):
109
+ # memberships order is acme, globex → "2" selects globex
110
+ _otp_routes(_session([_ACME, _GLOBEX]))
111
+ _tty(monkeypatch)
112
+ result = runner.invoke(
113
+ app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\n2\n"
114
+ )
115
+ assert result.exit_code == 0, result.output
116
+ assert config.load_config().org == "globex"
117
+
118
+
119
+ @respx.mock
120
+ def test_login_multi_org_picker_rejects_invalid_then_accepts(home, runner, monkeypatch):
121
+ # A non-member / garbage choice must NOT be accepted — it re-prompts (no leak).
122
+ _otp_routes(_session([_ACME, _GLOBEX]))
123
+ _tty(monkeypatch)
124
+ result = runner.invoke(
125
+ app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\nnope\n9\nacme\n"
126
+ )
127
+ assert result.exit_code == 0, result.output
128
+ assert config.load_config().org == "acme"
129
+ assert "not one of your orgs" in (result.stderr or "")
130
+
131
+
132
+ @respx.mock
133
+ def test_login_saved_org_does_not_bypass_picker(home, runner, monkeypatch):
134
+ # THE FIX: a previously-saved tenant must not silently re-activate — the picker
135
+ # still runs and a different org can be chosen.
136
+ config.save_config(config.CliConfig(base_url=BASE, org="acme"))
137
+ _otp_routes(_session([_ACME, _GLOBEX]))
138
+ _tty(monkeypatch)
139
+ result = runner.invoke(
140
+ app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\nglobex\n"
141
+ )
142
+ assert result.exit_code == 0, result.output
143
+ assert config.load_config().org == "globex" # chose globex despite saved acme
144
+
145
+
146
+ @respx.mock
147
+ def test_login_saved_org_is_picker_default_on_enter(home, runner, monkeypatch):
148
+ # The saved tenant is offered as the Enter-to-keep default.
149
+ config.save_config(config.CliConfig(base_url=BASE, org="acme"))
150
+ _otp_routes(_session([_ACME, _GLOBEX]))
151
+ _tty(monkeypatch)
152
+ result = runner.invoke(
153
+ app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\n\n"
154
+ )
155
+ assert result.exit_code == 0, result.output
156
+ assert config.load_config().org == "acme"
157
+
158
+
159
+ @respx.mock
160
+ def test_login_stale_saved_org_not_offered_as_default(home, runner, monkeypatch):
161
+ # A saved org the user is no longer a member of must not be the default; a bare
162
+ # Enter then has no default → re-prompt (we follow with a valid pick).
163
+ config.save_config(config.CliConfig(base_url=BASE, org="zombie"))
164
+ _otp_routes(_session([_ACME, _GLOBEX]))
165
+ _tty(monkeypatch)
166
+ result = runner.invoke(
167
+ app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\nacme\n"
168
+ )
169
+ assert result.exit_code == 0, result.output
170
+ assert config.load_config().org == "acme"
171
+
172
+
173
+ @respx.mock
174
+ def test_login_global_org_flag_skips_picker(home, runner, monkeypatch):
175
+ # An explicit global --org (before the command) is a deliberate choice → no picker.
176
+ _otp_routes(_session([_ACME, _GLOBEX]))
177
+ _tty(monkeypatch)
178
+ result = runner.invoke(
179
+ app, ["--base-url", BASE, "--org", "globex", "login", "--email", "me@test"], input="123456\n"
180
+ )
181
+ assert result.exit_code == 0, result.output
182
+ assert config.load_config().org == "globex"
183
+
184
+
185
+ @respx.mock
186
+ def test_login_env_org_skips_picker(home, runner, monkeypatch):
187
+ # FP_ORG is an explicit choice → no picker.
188
+ monkeypatch.setenv("FP_ORG", "globex")
189
+ _otp_routes(_session([_ACME, _GLOBEX]))
190
+ _tty(monkeypatch)
191
+ result = runner.invoke(
192
+ app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\n"
193
+ )
194
+ assert result.exit_code == 0, result.output
195
+ assert config.load_config().org == "globex"
196
+
197
+
198
+ @respx.mock
199
+ def test_login_admin_can_select_existing_nonmember_org_via_flag(home, runner):
200
+ # An instance admin may activate a non-member org via --org ONLY if it exists
201
+ # and is accessible — the server probe (/api/access-granters) returns 200.
202
+ _otp_routes(_session([_ACME], is_admin=True))
203
+ respx.get(f"{BASE}/api/access-granters").mock(
204
+ return_value=httpx.Response(200, json=["dev"])
205
+ )
206
+ result = runner.invoke(
207
+ app, ["--base-url", BASE, "login", "--email", "me@test", "--org", "globex"], input="123456\n"
208
+ )
209
+ assert result.exit_code == 0, result.output
210
+ assert config.load_config().org == "globex"
211
+
212
+
213
+ @respx.mock
214
+ def test_login_admin_nonexistent_org_rejected(home, runner):
215
+ # THE BUG FIX: an instance admin requesting a NON-EXISTENT org must be rejected,
216
+ # not silently accepted+saved. The probe returns 403 (no such org / no access).
217
+ _otp_routes(_session([_ACME], is_admin=True))
218
+ respx.get(f"{BASE}/api/access-granters").mock(
219
+ return_value=httpx.Response(403, json={})
220
+ )
221
+ result = runner.invoke(
222
+ app, ["--base-url", BASE, "login", "--email", "me@test", "--org", "fp"], input="123456\n"
223
+ )
224
+ assert result.exit_code == 2, result.output
225
+ assert config.load_config().org is None # nothing bogus persisted
226
+
227
+
228
+ @respx.mock
229
+ def test_login_env_nonexistent_org_rejected(home, runner, monkeypatch):
230
+ # FP_ORG follows the SAME validation as --org (both feed `requested`).
231
+ monkeypatch.setenv("FP_ORG", "fp")
232
+ _otp_routes(_session([_ACME], is_admin=True))
233
+ respx.get(f"{BASE}/api/access-granters").mock(
234
+ return_value=httpx.Response(403, json={})
235
+ )
236
+ result = runner.invoke(app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\n")
237
+ assert result.exit_code == 2, result.output
238
+ assert config.load_config().org is None
239
+
240
+
241
+ @respx.mock
242
+ def test_login_nonadmin_nonmember_rejected_without_probe(home, runner):
243
+ # A regular user's non-member org is rejected by the membership check alone —
244
+ # no server probe is made (the membership list is conclusive for non-admins).
245
+ _otp_routes(_session([_ACME], is_admin=False))
246
+ probe = respx.get(f"{BASE}/api/access-granters").mock(
247
+ return_value=httpx.Response(200, json=["dev"])
248
+ )
249
+ result = runner.invoke(
250
+ app, ["--base-url", BASE, "login", "--email", "me@test", "--org", "globex"], input="123456\n"
251
+ )
252
+ assert result.exit_code == 2, result.output
253
+ assert not probe.called
254
+
255
+
256
+ @respx.mock
257
+ def test_login_multi_org_noninteractive_reuses_saved(home, runner):
258
+ # Non-interactive (CliRunner stdin is not a TTY), no --json: a still-valid saved
259
+ # tenant is reused without prompting (back-compat for piped re-login).
260
+ config.save_config(config.CliConfig(base_url=BASE, org="acme"))
261
+ _otp_routes(_session([_ACME, _GLOBEX]))
262
+ result = runner.invoke(
263
+ app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\n"
264
+ )
265
+ assert result.exit_code == 0, result.output
266
+ assert config.load_config().org == "acme"
267
+
268
+
269
+ @respx.mock
270
+ def test_login_multi_org_noninteractive_stale_saved_needs_selection(home, runner):
271
+ # Non-interactive with a saved org the user is NO LONGER a member of → must not
272
+ # silently reuse it; falls through to needs-selection (exit 2).
273
+ config.save_config(config.CliConfig(base_url=BASE, org="zombie"))
274
+ _otp_routes(_session([_ACME, _GLOBEX]))
275
+ result = runner.invoke(
276
+ app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\n"
277
+ )
278
+ assert result.exit_code == 2, result.output
279
+ assert config.load_config().org is None
280
+
281
+
282
+ @respx.mock
283
+ def test_login_noninteractive_multi_org_no_saved_needs_selection_plain(home, runner):
284
+ # Non-interactive, NON-json, multi-org, nothing saved → needs selection, token kept.
285
+ _otp_routes(_session([_ACME, _GLOBEX]))
286
+ result = runner.invoke(
287
+ app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\n"
288
+ )
289
+ assert result.exit_code == 2, result.output
290
+ assert config.load_config().session_token == "tok"
291
+ assert config.load_config().org is None
292
+
293
+
294
+ # --- X-AgentEye-Org header injection ----------------------------------------
295
+
296
+
297
+ @respx.mock
298
+ def test_org_flag_sets_header(logged_in, runner):
299
+ route = respx.get(f"{BASE}/api/sessions").mock(
300
+ return_value=httpx.Response(200, json={"sessions": [], "next_cursor": None})
301
+ )
302
+ result = runner.invoke(app, ["--org", "acme", "sessions"])
303
+ assert result.exit_code == 0, result.output
304
+ assert route.calls.last.request.headers.get("X-AgentEye-Org") == "acme"
305
+
306
+
307
+ @respx.mock
308
+ def test_saved_org_sets_header(home, runner):
309
+ config.save_config(
310
+ config.CliConfig(base_url=BASE, session_token="tok", expires_at="2999-01-01T00:00:00Z", org="globex")
311
+ )
312
+ route = respx.get(f"{BASE}/api/sessions").mock(
313
+ return_value=httpx.Response(200, json={"sessions": [], "next_cursor": None})
314
+ )
315
+ result = runner.invoke(app, ["sessions"])
316
+ assert result.exit_code == 0, result.output
317
+ assert route.calls.last.request.headers.get("X-AgentEye-Org") == "globex"
318
+
319
+
320
+ def test_bad_org_slug_is_usage_error(logged_in, runner):
321
+ result = runner.invoke(app, ["--org", "Bad_Slug!", "sessions"])
322
+ assert result.exit_code == 2
323
+
324
+
325
+ # --- whoami multi-tenant shape ----------------------------------------------
326
+
327
+
328
+ @respx.mock
329
+ def test_whoami_shows_memberships_and_active_org(logged_in, runner):
330
+ respx.get(f"{BASE}/api/auth/session").mock(
331
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX], is_admin=True))
332
+ )
333
+ result = runner.invoke(app, ["--org", "globex", "--json", "whoami"])
334
+ assert result.exit_code == 0, result.output
335
+ data = json.loads(result.stdout)
336
+ assert data["active_org"] == "globex"
337
+ assert data["is_instance_admin"] is True
338
+ assert data["permissions"] == ["events:read", "keys:create"] # globex's grants
339
+ assert {m["org_slug"] for m in data["memberships"]} == {"acme", "globex"}
340
+
341
+
342
+ # --- orgs list / orgs current -----------------------------------------------
343
+ # (org selection/persistence/validation is covered by the orgs switch tests below;
344
+ # `orgs use` was removed in favour of `orgs switch`.)
345
+
346
+
347
+ @respx.mock
348
+ def test_orgs_list_json(logged_in, runner):
349
+ respx.get(f"{BASE}/api/auth/session").mock(
350
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX]))
351
+ )
352
+ result = runner.invoke(app, ["--org", "acme", "--json", "orgs", "list"])
353
+ assert result.exit_code == 0, result.output
354
+ data = json.loads(result.stdout)
355
+ assert data["active_org"] == "acme"
356
+ assert {o["org_slug"] for o in data["orgs"]} == {"acme", "globex"}
357
+
358
+
359
+ @respx.mock
360
+ def test_orgs_current_json(logged_in, runner):
361
+ respx.get(f"{BASE}/api/auth/session").mock(
362
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX]))
363
+ )
364
+ result = runner.invoke(app, ["--org", "globex", "--json", "orgs", "current"])
365
+ assert result.exit_code == 0, result.output
366
+ data = json.loads(result.stdout)
367
+ assert data["slug"] == "globex"
368
+ assert data["name"] == "Globex" and data["role"] == "admin"
369
+ assert data["permission_count"] == 2 # globex's two grants
370
+ assert data["user_email"] # reports who you're signed in as
371
+
372
+
373
+ @respx.mock
374
+ def test_orgs_perms_json(logged_in, runner):
375
+ respx.get(f"{BASE}/api/auth/session").mock(
376
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX]))
377
+ )
378
+ result = runner.invoke(app, ["--org", "globex", "--json", "orgs", "perms"])
379
+ assert result.exit_code == 0, result.output
380
+ data = json.loads(result.stdout)
381
+ assert data["slug"] == "globex" and data["role"] == "admin"
382
+ assert data["permissions"] == ["events:read", "keys:create"] # globex's flat grants
383
+ assert data["permission_count"] == 2
384
+
385
+
386
+ @respx.mock
387
+ def test_orgs_perms_table(logged_in, runner):
388
+ respx.get(f"{BASE}/api/auth/session").mock(
389
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX]))
390
+ )
391
+ result = runner.invoke(app, ["--org", "globex", "orgs", "perms"])
392
+ assert result.exit_code == 0, result.output
393
+ # identity header (name · slug · role) + the shared grouped permissions panel, with the
394
+ # org NAME in the panel's border title.
395
+ assert "Globex" in result.stdout and "globex" in result.stdout and "role admin" in result.stdout
396
+ assert "permissions · 2 · Globex" in result.stdout
397
+ assert "events" in result.stdout and "keys" in result.stdout
398
+
399
+
400
+ @respx.mock
401
+ def test_org_use_admin_nonexistent_org_rejected(logged_in, runner):
402
+ # Instance admin → a NON-EXISTENT org (probe 403) is rejected, not persisted.
403
+ respx.get(f"{BASE}/api/auth/session").mock(
404
+ return_value=httpx.Response(200, json=_session([_ACME], is_admin=True))
405
+ )
406
+ respx.get(f"{BASE}/api/access-granters").mock(
407
+ return_value=httpx.Response(403, json={})
408
+ )
409
+ result = runner.invoke(app, ["orgs", "use", "fp"])
410
+ assert result.exit_code == 2
411
+ assert config.load_config().org is None
412
+
413
+
414
+ @respx.mock
415
+ def test_logout_clears_active_org_and_identity(logged_in, runner):
416
+ # Logout must not leave a remembered org/identity in cli.json — only base_url
417
+ # (and prefs) survive, so the next login starts fresh.
418
+ cfg = config.load_config()
419
+ cfg.org = "acme"
420
+ config.save_config(cfg)
421
+ respx.post(f"{BASE}/api/auth/logout").mock(return_value=httpx.Response(200, json={}))
422
+ result = runner.invoke(app, ["logout"])
423
+ assert result.exit_code == 0, result.output
424
+ after = config.load_config()
425
+ assert after.session_token is None
426
+ assert after.org is None
427
+ assert after.email is None
428
+ assert after.user_id is None
429
+ assert after.base_url == BASE # kept so the next login needs no --base-url
430
+
431
+
432
+ def test_logout_when_not_signed_in_is_noop(home, runner):
433
+ # No session → logout must NOT claim a sign-out happened (no server call either).
434
+ result = runner.invoke(app, ["--base-url", BASE, "logout"])
435
+ assert result.exit_code == 0, result.output
436
+ assert "already signed out" in (result.stderr or "").lower()
437
+
438
+
439
+ def test_logout_when_not_signed_in_json(home, runner):
440
+ result = runner.invoke(app, ["--base-url", BASE, "--json", "logout"])
441
+ assert result.exit_code == 0, result.output
442
+ payload = json.loads(result.stdout)
443
+ assert payload["already_signed_out"] is True
444
+
445
+
446
+ # --- org list (and the orgs-list alias) -------------------------------------
447
+
448
+
449
+ @respx.mock
450
+ def test_org_list_json_shows_role_and_active(logged_in, runner):
451
+ respx.get(f"{BASE}/api/auth/session").mock(
452
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX], is_admin=True))
453
+ )
454
+ result = runner.invoke(app, ["--org", "globex", "--json", "orgs", "list"])
455
+ assert result.exit_code == 0, result.output
456
+ data = json.loads(result.stdout)
457
+ assert data["active_org"] == "globex"
458
+ assert data["is_instance_admin"] is True
459
+ byslug = {o["org_slug"]: o for o in data["orgs"]}
460
+ assert byslug["globex"]["active"] is True and byslug["acme"]["active"] is False
461
+ assert byslug["acme"]["permission_set"] == "standard" # your role in that org
462
+
463
+
464
+ @respx.mock
465
+ def test_org_list_table_lists_all_orgs(logged_in, runner):
466
+ respx.get(f"{BASE}/api/auth/session").mock(
467
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX]))
468
+ )
469
+ result = runner.invoke(app, ["--org", "acme", "orgs", "list"])
470
+ assert result.exit_code == 0, result.output
471
+ assert "acme" in result.stdout and "globex" in result.stdout
472
+
473
+
474
+ @respx.mock
475
+ def test_orgs_list_alias_still_works(logged_in, runner):
476
+ # `orgs list` lists your orgs (merged single `orgs` group).
477
+ respx.get(f"{BASE}/api/auth/session").mock(
478
+ return_value=httpx.Response(200, json=_session([_ACME]))
479
+ )
480
+ result = runner.invoke(app, ["--org", "acme", "--json", "orgs", "list"])
481
+ assert result.exit_code == 0, result.output
482
+ assert json.loads(result.stdout)["active_org"] == "acme"
483
+
484
+
485
+ # --- org switch -------------------------------------------------------------
486
+
487
+
488
+ @respx.mock
489
+ def test_org_switch_to_member(logged_in, runner):
490
+ respx.get(f"{BASE}/api/auth/session").mock(
491
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX]))
492
+ )
493
+ result = runner.invoke(app, ["orgs", "switch", "globex"])
494
+ assert result.exit_code == 0, result.output
495
+ assert config.load_config().org == "globex"
496
+
497
+
498
+ @respx.mock
499
+ def test_org_switch_non_member_rejected_without_probe(logged_in, runner):
500
+ respx.get(f"{BASE}/api/auth/session").mock(
501
+ return_value=httpx.Response(200, json=_session([_ACME]))
502
+ )
503
+ probe = respx.get(f"{BASE}/api/access-granters").mock(
504
+ return_value=httpx.Response(200, json=["dev"])
505
+ )
506
+ result = runner.invoke(app, ["orgs", "switch", "globex"])
507
+ assert result.exit_code == 2
508
+ assert not probe.called # non-admin → membership check is conclusive
509
+ assert config.load_config().org is None
510
+
511
+
512
+ @respx.mock
513
+ def test_org_switch_admin_existing_nonmember_allowed(logged_in, runner):
514
+ respx.get(f"{BASE}/api/auth/session").mock(
515
+ return_value=httpx.Response(200, json=_session([_ACME], is_admin=True))
516
+ )
517
+ respx.get(f"{BASE}/api/access-granters").mock(
518
+ return_value=httpx.Response(200, json=["dev"])
519
+ )
520
+ result = runner.invoke(app, ["orgs", "switch", "globex"])
521
+ assert result.exit_code == 0, result.output
522
+ assert config.load_config().org == "globex"
523
+
524
+
525
+ @respx.mock
526
+ def test_org_switch_admin_nonexistent_rejected(logged_in, runner):
527
+ respx.get(f"{BASE}/api/auth/session").mock(
528
+ return_value=httpx.Response(200, json=_session([_ACME], is_admin=True))
529
+ )
530
+ respx.get(f"{BASE}/api/access-granters").mock(
531
+ return_value=httpx.Response(403, json={})
532
+ )
533
+ result = runner.invoke(app, ["orgs", "switch", "fp"])
534
+ assert result.exit_code == 2
535
+ assert config.load_config().org is None
536
+
537
+
538
+ @respx.mock
539
+ def test_org_switch_no_arg_single_org_auto_selects(logged_in, runner):
540
+ respx.get(f"{BASE}/api/auth/session").mock(
541
+ return_value=httpx.Response(200, json=_session([_ACME]))
542
+ )
543
+ result = runner.invoke(app, ["orgs", "switch"])
544
+ assert result.exit_code == 0, result.output
545
+ assert config.load_config().org == "acme"
546
+
547
+
548
+ @respx.mock
549
+ def test_org_switch_no_arg_interactive_picker(logged_in, runner, monkeypatch):
550
+ respx.get(f"{BASE}/api/auth/session").mock(
551
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX]))
552
+ )
553
+ _tty(monkeypatch)
554
+ result = runner.invoke(app, ["orgs", "switch"], input="globex\n")
555
+ assert result.exit_code == 0, result.output
556
+ assert config.load_config().org == "globex"
557
+
558
+
559
+ @respx.mock
560
+ def test_org_switch_no_arg_noninteractive_requires_slug(logged_in, runner):
561
+ # CliRunner stdin is not a TTY and no slug given → must not hang; error out.
562
+ respx.get(f"{BASE}/api/auth/session").mock(
563
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX]))
564
+ )
565
+ result = runner.invoke(app, ["orgs", "switch"])
566
+ assert result.exit_code == 2
567
+ assert config.load_config().org is None
568
+
569
+
570
+ @respx.mock
571
+ def test_org_switch_to_different_renders_switched_card(logged_in, runner):
572
+ # Positional switch to a DIFFERENT org → the boxed 'switched org' card (was <prev>).
573
+ respx.get(f"{BASE}/api/auth/session").mock(
574
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX]))
575
+ )
576
+ result = runner.invoke(app, ["--org", "acme", "orgs", "switch", "globex"])
577
+ assert result.exit_code == 0, result.output
578
+ assert config.load_config().org == "globex"
579
+ assert "switched org" in result.stderr and "globex" in result.stderr and "was acme" in result.stderr
580
+
581
+
582
+ @respx.mock
583
+ def test_org_switch_to_current_is_noop(logged_in, runner):
584
+ # Positional switch to the org you're already on → calm 'already on' no-op, not the card.
585
+ respx.get(f"{BASE}/api/auth/session").mock(
586
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX]))
587
+ )
588
+ result = runner.invoke(app, ["--org", "acme", "orgs", "switch", "acme"])
589
+ assert result.exit_code == 0, result.output
590
+ assert "already on acme" in result.stderr
591
+ assert "switched org" not in result.stderr
592
+
593
+
594
+ @respx.mock
595
+ def test_org_switch_not_found_did_you_mean(logged_in, runner):
596
+ # A near-miss slug → styled not-found + did-you-mean + hint, non-zero exit.
597
+ respx.get(f"{BASE}/api/auth/session").mock(
598
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX]))
599
+ )
600
+ result = runner.invoke(app, ["orgs", "switch", "acm"])
601
+ assert result.exit_code == 2
602
+ assert "no org named acm" in result.stderr
603
+ assert "did you mean acme" in result.stderr
604
+ assert config.load_config().org is None
605
+
606
+
607
+ @respx.mock
608
+ def test_org_switch_single_org_says_only_org(logged_in, runner):
609
+ # One org → no picker; calm 'only org' line; still persisted as active.
610
+ respx.get(f"{BASE}/api/auth/session").mock(
611
+ return_value=httpx.Response(200, json=_session([_ACME]))
612
+ )
613
+ result = runner.invoke(app, ["orgs", "switch"])
614
+ assert result.exit_code == 0, result.output
615
+ assert "only org" in result.stderr and "acme" in result.stderr
616
+ assert config.load_config().org == "acme"
617
+
618
+
619
+ @respx.mock
620
+ def test_login_already_signed_in_switches_org_via_flag(home, runner):
621
+ # A valid session is active on org acme; `login --org globex` must honor the explicit
622
+ # selector and switch the active tenant (no re-auth), not drop it and report "already
623
+ # signed in" on the old org (the bug).
624
+ config.save_config(config.CliConfig(
625
+ base_url=BASE, session_token="tok", expires_at="2999-01-01T00:00:00Z",
626
+ email="me@test", user_id="u1", org="acme",
627
+ ))
628
+ respx.get(f"{BASE}/api/auth/session").mock(
629
+ return_value=httpx.Response(200, json=_session([_ACME, _GLOBEX]))
630
+ )
631
+ result = runner.invoke(app, ["--json", "login", "--org", "globex"])
632
+ assert result.exit_code == 0, result.output
633
+ data = json.loads(result.stdout)
634
+ assert data["org"] == "globex" and data.get("switched_org") is True
635
+ assert config.load_config().org == "globex"
636
+
637
+
638
+ # --- membership discovery that FAILS is not "no memberships" ----------------
639
+
640
+
641
+ @respx.mock
642
+ def test_a_membership_fetch_failure_is_reported_not_silently_emptied(home, runner):
643
+ """`except Exception: pass` turned every discovery failure into an empty list.
644
+
645
+ A timeout, a 500, a malformed body or a permissions problem all collapsed
646
+ into "this user belongs to no orgs" — which then clears a previously chosen
647
+ tenant and reads, to anyone looking, like a successful single-org login.
648
+ """
649
+ respx.post(f"{BASE}/api/auth/otp/request").mock(return_value=httpx.Response(200, json={"ok": True}))
650
+ respx.post(f"{BASE}/api/auth/otp/verify").mock(
651
+ return_value=httpx.Response(
652
+ 200,
653
+ json={"user": {"id": "u1", "email": "me@test"}, "expires_in_secs": 3600},
654
+ headers={"set-cookie": "ae_session=tok; Path=/"},
655
+ )
656
+ )
657
+ respx.get(f"{BASE}/api/auth/session").mock(return_value=httpx.Response(503, json={"error": "upstream down"}))
658
+
659
+ result = runner.invoke(app, ["--base-url", BASE, "login", "--email", "me@test"], input="123456\n")
660
+
661
+ # The token IS kept — losing a good session to a discovery blip would be worse.
662
+ assert config.load_config().session_token == "tok"
663
+ # ...but the failure is said out loud rather than presented as "no orgs".
664
+ assert "could not read your organisation memberships" in result.stderr, result.stderr
665
+
666
+
667
+ @respx.mock
668
+ def test_an_explicit_org_is_not_rejected_on_a_check_that_never_ran(home, runner):
669
+ """"You are not a member of org 'X'. Your orgs: (none)." was a confident lie.
670
+
671
+ With discovery failed, `slugs` is empty because nothing answered — not
672
+ because the user belongs to nothing. Exiting 2 on a tenant they may well
673
+ have, citing a membership list that was never fetched, is the worst of the
674
+ available answers.
675
+ """
676
+ respx.post(f"{BASE}/api/auth/otp/request").mock(return_value=httpx.Response(200, json={"ok": True}))
677
+ respx.post(f"{BASE}/api/auth/otp/verify").mock(
678
+ return_value=httpx.Response(
679
+ 200,
680
+ json={"user": {"id": "u1", "email": "me@test"}, "expires_in_secs": 3600},
681
+ headers={"set-cookie": "ae_session=tok; Path=/"},
682
+ )
683
+ )
684
+ respx.get(f"{BASE}/api/auth/session").mock(return_value=httpx.Response(500, json={"error": "boom"}))
685
+ # The direct check is the only thing that can still answer, so it is consulted.
686
+ respx.get(f"{BASE}/api/access-granters").mock(return_value=httpx.Response(200, json=[]))
687
+
688
+ result = runner.invoke(
689
+ app, ["--base-url", BASE, "login", "--email", "me@test", "--org", "globex"], input="123456\n"
690
+ )
691
+ assert result.exit_code == 0, result.output + result.stderr
692
+ assert config.load_config().org == "globex"