failproofai 1.0.1-beta.0 → 1.0.1
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.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +6 -6
- package/.next/standalone/.next/prerender-manifest.json +4 -4
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/audit/invite/route.js +1 -1
- package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/audit/run/route.js +1 -1
- package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login-request/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/status/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/audit/page.js +1 -1
- package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +14 -14
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/policies/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +10 -10
- package/.next/standalone/.next/server/app/policies/page.js +1 -1
- package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page.js +2 -2
- package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js +2 -2
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +4 -4
- package/.next/standalone/.next/server/app/settings/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0nne229._.js → [root-of-the-server]__0_usx0j._.js} +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1hstmft._.js → [root-of-the-server]__0_zk340._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d1u_na._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1adacul._.js +5 -5
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0ny9q5d._.js → [root-of-the-server]__1l-khtb._.js} +1 -1
- package/.next/standalone/.next/server/chunks/_0lxbzdq._.js +1 -1
- package/.next/standalone/.next/server/chunks/{_18ty6si._.js → _1ger0a2._.js} +1 -1
- package/.next/standalone/.next/server/chunks/_1vslkoe._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1zuiiy3._.js +1 -1
- package/.next/standalone/.next/server/chunks/lib_telemetry_ts_0dctyyw._.js +1 -1
- package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oi._.js +2 -2
- 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_09d5c79._.js} +1 -1
- package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p7._.js +2 -2
- 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_0el6rg8._.js} +1 -1
- 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_1d2g73o._.js} +1 -1
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07tbbf3._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cxe_2_._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__15c_z97._.js → [root-of-the-server]__0jzbk4_._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kc8_v5._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kgy9da._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0mhqk5a._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0oa1lav._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pltpn8._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qkcyf-._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0spkm68._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w0x_ok._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1_dfocn._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__03eykvd._.js → [root-of-the-server]__1bfex62._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__07oh8b5._.js → [root-of-the-server]__1ctpynv._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1kzapg5._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__11z_299._.js → [root-of-the-server]__1m84s36._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_04j57fb._.js → _0h_douw._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0lvyuv4._.js +23 -0
- package/.next/standalone/.next/server/chunks/ssr/{_05enntk._.js → _0u5zauv._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1_ozgif._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0hom1s1._.js → _1u8-lu2._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_1q7j05x._.js → _1zopuov._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_settings_settings-client_tsx_20lq-mq._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_13n822a._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js +2 -2
- package/.next/standalone/.next/server/middleware-build-manifest.js +6 -6
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +15 -15
- package/.next/standalone/.next/static/chunks/{1o5sxp_mdaoci.js → 0k5050ezjvv49.js} +1 -1
- package/.next/standalone/.next/static/chunks/{054eg7y_cjyf9.js → 1ide1wl2f7zi1.js} +1 -1
- package/.next/standalone/.next/static/chunks/1oml7c7env4-g.js +31 -0
- package/.next/standalone/.next/static/chunks/1za08zjcctyil.js +22 -0
- package/.next/standalone/.next/static/chunks/2_2lhuojq2xop.js +1 -0
- package/.next/standalone/.next/static/chunks/{0mjufa_0xxz75.js → 2zpp1we2jv6tb.js} +1 -1
- package/.next/standalone/.next/static/chunks/{1-oz4co31nvc5.js → 31s1smp-g7gks.js} +1 -1
- package/.next/standalone/.next/static/chunks/36fw6yk1s6x_f.js +1 -0
- package/.next/standalone/.next/static/chunks/{2es4z1ei90vsv.js → 37fcpc36x9gpe.js} +1 -1
- package/.next/standalone/.next/static/chunks/{136ldjmzxhush.js → 3c808qrfcq0im.js} +1 -1
- package/.next/standalone/.next/static/chunks/3k7mxbp9hiom0.js +1 -0
- package/.next/standalone/.next/static/chunks/3tzq0260n17ae.js +6 -0
- package/.next/standalone/.next/static/chunks/{turbopack-0-gxz80mjds94.js → turbopack-3kjgdgwci4tqf.js} +1 -1
- package/.next/standalone/docs-old/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/agenteye/api-keys.mdx +280 -0
- package/.next/standalone/docs-old/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/agenteye/audits.mdx +54 -0
- package/.next/standalone/docs-old/agenteye/cli-and-agents.mdx +80 -0
- package/.next/standalone/docs-old/agenteye/cli-recipes.mdx +179 -0
- package/.next/standalone/docs-old/agenteye/cli-skill.mdx +159 -0
- package/.next/standalone/docs-old/agenteye/cli.mdx +350 -0
- package/.next/standalone/docs-old/agenteye/codex-capture.mdx +55 -0
- package/.next/standalone/docs-old/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/agenteye/error-tracking.mdx +41 -0
- package/.next/standalone/docs-old/agenteye/evaluation-suite.mdx +402 -0
- package/.next/standalone/docs-old/agenteye/evaluations.mdx +51 -0
- package/.next/standalone/docs-old/agenteye/evaluator-skill.mdx +167 -0
- package/.next/standalone/docs-old/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/agenteye/images/alert-new.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/alerts.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/api-keys.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/assistant.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/audits.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/dashboard-fleet.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/dashboard-quality.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/errors.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/events-stream.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/hooks.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/incident-detail.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/incidents.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/login.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/models.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/queries.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/query-lab.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/session-detail.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/sessions-list.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/settings.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/tools.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/users.png +0 -0
- package/.next/standalone/docs-old/agenteye/images/video-audit.jpg +0 -0
- package/.next/standalone/docs-old/agenteye/images/video-tracing.jpg +0 -0
- package/.next/standalone/docs-old/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/agenteye/openclaw-capture.mdx +49 -0
- package/.next/standalone/docs-old/agenteye/overview.mdx +108 -0
- package/.next/standalone/docs-old/agenteye/python-sdk-skill.mdx +131 -0
- package/.next/standalone/docs-old/agenteye/python-sdk.mdx +436 -0
- package/.next/standalone/docs-old/agenteye/queries.mdx +56 -0
- package/.next/standalone/docs-old/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/agenteye/sessions.mdx +57 -0
- package/.next/standalone/docs-old/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/ar/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/ar/agenteye/api-keys.mdx +279 -0
- package/.next/standalone/docs-old/ar/agenteye/assistant.mdx +62 -0
- package/.next/standalone/docs-old/ar/agenteye/audits.mdx +55 -0
- package/.next/standalone/docs-old/ar/agenteye/cli-and-agents.mdx +81 -0
- package/.next/standalone/docs-old/ar/agenteye/cli-recipes.mdx +178 -0
- package/.next/standalone/docs-old/ar/agenteye/cli-skill.mdx +160 -0
- package/.next/standalone/docs-old/ar/agenteye/cli.mdx +349 -0
- package/.next/standalone/docs-old/ar/agenteye/codex-capture.mdx +56 -0
- package/.next/standalone/docs-old/ar/agenteye/concepts.mdx +88 -0
- package/.next/standalone/docs-old/ar/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/ar/agenteye/error-tracking.mdx +41 -0
- package/.next/standalone/docs-old/ar/agenteye/evaluation-suite.mdx +299 -0
- package/.next/standalone/docs-old/ar/agenteye/evaluations.mdx +51 -0
- package/.next/standalone/docs-old/ar/agenteye/evaluator-skill.mdx +168 -0
- package/.next/standalone/docs-old/ar/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/ar/agenteye/hermes-capture.mdx +54 -0
- package/.next/standalone/docs-old/ar/agenteye/incidents.mdx +51 -0
- package/.next/standalone/docs-old/ar/agenteye/observability.mdx +24 -0
- package/.next/standalone/docs-old/ar/agenteye/openclaw-capture.mdx +50 -0
- package/.next/standalone/docs-old/ar/agenteye/overview.mdx +108 -0
- package/.next/standalone/docs-old/ar/agenteye/python-sdk-skill.mdx +129 -0
- package/.next/standalone/docs-old/ar/agenteye/python-sdk.mdx +435 -0
- package/.next/standalone/docs-old/ar/agenteye/queries.mdx +57 -0
- package/.next/standalone/docs-old/ar/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/ar/agenteye/sessions.mdx +58 -0
- package/.next/standalone/docs-old/ar/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/ar/architecture.mdx +333 -0
- package/.next/standalone/docs-old/ar/built-in-policies.mdx +860 -0
- package/.next/standalone/docs-old/ar/cli/audit.mdx +120 -0
- package/.next/standalone/docs-old/ar/cli/dashboard.mdx +30 -0
- package/.next/standalone/docs-old/ar/cli/environment-variables.mdx +70 -0
- package/.next/standalone/docs-old/ar/cli/hook.mdx +31 -0
- package/.next/standalone/docs-old/ar/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/ar/cli/list-policies.mdx +32 -0
- package/.next/standalone/docs-old/ar/cli/migrate.mdx +110 -0
- package/.next/standalone/docs-old/ar/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs-old/ar/cli/update.mdx +79 -0
- package/.next/standalone/docs-old/ar/cli/version.mdx +13 -0
- package/.next/standalone/docs-old/ar/configuration.mdx +268 -0
- package/.next/standalone/docs-old/ar/custom-policies.mdx +359 -0
- package/.next/standalone/docs-old/ar/dashboard.mdx +152 -0
- package/.next/standalone/docs-old/ar/examples.mdx +307 -0
- package/.next/standalone/docs-old/ar/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/ar/getting-started.mdx +199 -0
- package/.next/standalone/docs-old/ar/introduction.mdx +58 -0
- package/.next/standalone/docs-old/ar/package-aliases.mdx +83 -0
- package/.next/standalone/docs-old/ar/testing.mdx +260 -0
- package/.next/standalone/docs-old/architecture.mdx +332 -0
- package/.next/standalone/docs-old/built-in-policies.mdx +859 -0
- package/.next/standalone/docs-old/cli/audit.mdx +188 -0
- package/.next/standalone/docs-old/cli/dashboard.mdx +29 -0
- package/.next/standalone/docs-old/cli/environment-variables.mdx +75 -0
- package/.next/standalone/docs-old/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs-old/cli/migrate.mdx +117 -0
- package/.next/standalone/docs-old/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs-old/cli/update.mdx +94 -0
- package/.next/standalone/docs-old/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/configuration.mdx +295 -0
- package/.next/standalone/docs-old/custom-policies.mdx +362 -0
- package/.next/standalone/docs-old/dashboard.mdx +176 -0
- package/.next/standalone/docs-old/de/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/de/agenteye/api-keys.mdx +280 -0
- package/.next/standalone/docs-old/de/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/de/agenteye/audits.mdx +54 -0
- package/.next/standalone/docs-old/de/agenteye/cli-and-agents.mdx +80 -0
- package/.next/standalone/docs-old/de/agenteye/cli-recipes.mdx +179 -0
- package/.next/standalone/docs-old/de/agenteye/cli-skill.mdx +159 -0
- package/.next/standalone/docs-old/de/agenteye/cli.mdx +350 -0
- package/.next/standalone/docs-old/de/agenteye/codex-capture.mdx +55 -0
- package/.next/standalone/docs-old/de/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/de/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/de/agenteye/error-tracking.mdx +41 -0
- package/.next/standalone/docs-old/de/agenteye/evaluation-suite.mdx +300 -0
- package/.next/standalone/docs-old/de/agenteye/evaluations.mdx +50 -0
- package/.next/standalone/docs-old/de/agenteye/evaluator-skill.mdx +167 -0
- package/.next/standalone/docs-old/de/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/de/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/de/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/de/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/de/agenteye/openclaw-capture.mdx +49 -0
- package/.next/standalone/docs-old/de/agenteye/overview.mdx +108 -0
- package/.next/standalone/docs-old/de/agenteye/python-sdk-skill.mdx +131 -0
- package/.next/standalone/docs-old/de/agenteye/python-sdk.mdx +436 -0
- package/.next/standalone/docs-old/de/agenteye/queries.mdx +56 -0
- package/.next/standalone/docs-old/de/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/de/agenteye/sessions.mdx +57 -0
- package/.next/standalone/docs-old/de/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/de/architecture.mdx +332 -0
- package/.next/standalone/docs-old/de/built-in-policies.mdx +859 -0
- package/.next/standalone/docs-old/de/cli/audit.mdx +131 -0
- package/.next/standalone/docs-old/de/cli/dashboard.mdx +29 -0
- package/.next/standalone/docs-old/de/cli/environment-variables.mdx +72 -0
- package/.next/standalone/docs-old/de/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/de/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/de/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs-old/de/cli/migrate.mdx +122 -0
- package/.next/standalone/docs-old/de/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs-old/de/cli/update.mdx +75 -0
- package/.next/standalone/docs-old/de/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/de/configuration.mdx +272 -0
- package/.next/standalone/docs-old/de/custom-policies.mdx +358 -0
- package/.next/standalone/docs-old/de/dashboard.mdx +151 -0
- package/.next/standalone/docs-old/de/examples.mdx +307 -0
- package/.next/standalone/docs-old/de/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/de/getting-started.mdx +199 -0
- package/.next/standalone/docs-old/de/introduction.mdx +57 -0
- package/.next/standalone/docs-old/de/package-aliases.mdx +82 -0
- package/.next/standalone/docs-old/de/testing.mdx +260 -0
- package/.next/standalone/docs-old/docs.json +1830 -0
- package/.next/standalone/docs-old/es/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/es/agenteye/api-keys.mdx +280 -0
- package/.next/standalone/docs-old/es/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/es/agenteye/audits.mdx +54 -0
- package/.next/standalone/docs-old/es/agenteye/cli-and-agents.mdx +80 -0
- package/.next/standalone/docs-old/es/agenteye/cli-recipes.mdx +178 -0
- package/.next/standalone/docs-old/es/agenteye/cli-skill.mdx +159 -0
- package/.next/standalone/docs-old/es/agenteye/cli.mdx +350 -0
- package/.next/standalone/docs-old/es/agenteye/codex-capture.mdx +55 -0
- package/.next/standalone/docs-old/es/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/es/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/es/agenteye/error-tracking.mdx +41 -0
- package/.next/standalone/docs-old/es/agenteye/evaluation-suite.mdx +300 -0
- package/.next/standalone/docs-old/es/agenteye/evaluations.mdx +50 -0
- package/.next/standalone/docs-old/es/agenteye/evaluator-skill.mdx +167 -0
- package/.next/standalone/docs-old/es/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/es/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/es/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/es/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/es/agenteye/openclaw-capture.mdx +49 -0
- package/.next/standalone/docs-old/es/agenteye/overview.mdx +108 -0
- package/.next/standalone/docs-old/es/agenteye/python-sdk-skill.mdx +135 -0
- package/.next/standalone/docs-old/es/agenteye/python-sdk.mdx +436 -0
- package/.next/standalone/docs-old/es/agenteye/queries.mdx +56 -0
- package/.next/standalone/docs-old/es/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/es/agenteye/sessions.mdx +56 -0
- package/.next/standalone/docs-old/es/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/es/architecture.mdx +332 -0
- package/.next/standalone/docs-old/es/built-in-policies.mdx +853 -0
- package/.next/standalone/docs-old/es/cli/audit.mdx +137 -0
- package/.next/standalone/docs-old/es/cli/dashboard.mdx +29 -0
- package/.next/standalone/docs-old/es/cli/environment-variables.mdx +72 -0
- package/.next/standalone/docs-old/es/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/es/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/es/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs-old/es/cli/migrate.mdx +86 -0
- package/.next/standalone/docs-old/es/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs-old/es/cli/update.mdx +64 -0
- package/.next/standalone/docs-old/es/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/es/configuration.mdx +271 -0
- package/.next/standalone/docs-old/es/custom-policies.mdx +358 -0
- package/.next/standalone/docs-old/es/dashboard.mdx +151 -0
- package/.next/standalone/docs-old/es/examples.mdx +307 -0
- package/.next/standalone/docs-old/es/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/es/getting-started.mdx +199 -0
- package/.next/standalone/docs-old/es/introduction.mdx +57 -0
- package/.next/standalone/docs-old/es/package-aliases.mdx +82 -0
- package/.next/standalone/docs-old/es/testing.mdx +260 -0
- package/.next/standalone/docs-old/examples.mdx +307 -0
- package/.next/standalone/docs-old/favicon.ico +0 -0
- package/.next/standalone/docs-old/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/fr/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/fr/agenteye/api-keys.mdx +280 -0
- package/.next/standalone/docs-old/fr/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/fr/agenteye/audits.mdx +54 -0
- package/.next/standalone/docs-old/fr/agenteye/cli-and-agents.mdx +79 -0
- package/.next/standalone/docs-old/fr/agenteye/cli-recipes.mdx +179 -0
- package/.next/standalone/docs-old/fr/agenteye/cli-skill.mdx +159 -0
- package/.next/standalone/docs-old/fr/agenteye/cli.mdx +350 -0
- package/.next/standalone/docs-old/fr/agenteye/codex-capture.mdx +55 -0
- package/.next/standalone/docs-old/fr/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/fr/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/fr/agenteye/error-tracking.mdx +40 -0
- package/.next/standalone/docs-old/fr/agenteye/evaluation-suite.mdx +401 -0
- package/.next/standalone/docs-old/fr/agenteye/evaluations.mdx +50 -0
- package/.next/standalone/docs-old/fr/agenteye/evaluator-skill.mdx +167 -0
- package/.next/standalone/docs-old/fr/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/fr/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/fr/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/fr/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/fr/agenteye/openclaw-capture.mdx +49 -0
- package/.next/standalone/docs-old/fr/agenteye/overview.mdx +108 -0
- package/.next/standalone/docs-old/fr/agenteye/python-sdk-skill.mdx +135 -0
- package/.next/standalone/docs-old/fr/agenteye/python-sdk.mdx +436 -0
- package/.next/standalone/docs-old/fr/agenteye/queries.mdx +56 -0
- package/.next/standalone/docs-old/fr/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/fr/agenteye/sessions.mdx +57 -0
- package/.next/standalone/docs-old/fr/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/fr/architecture.mdx +332 -0
- package/.next/standalone/docs-old/fr/built-in-policies.mdx +851 -0
- package/.next/standalone/docs-old/fr/cli/audit.mdx +126 -0
- package/.next/standalone/docs-old/fr/cli/dashboard.mdx +29 -0
- package/.next/standalone/docs-old/fr/cli/environment-variables.mdx +70 -0
- package/.next/standalone/docs-old/fr/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/fr/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/fr/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs-old/fr/cli/migrate.mdx +86 -0
- package/.next/standalone/docs-old/fr/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs-old/fr/cli/update.mdx +64 -0
- package/.next/standalone/docs-old/fr/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/fr/configuration.mdx +271 -0
- package/.next/standalone/docs-old/fr/custom-policies.mdx +358 -0
- package/.next/standalone/docs-old/fr/dashboard.mdx +151 -0
- package/.next/standalone/docs-old/fr/examples.mdx +307 -0
- package/.next/standalone/docs-old/fr/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/fr/getting-started.mdx +199 -0
- package/.next/standalone/docs-old/fr/introduction.mdx +57 -0
- package/.next/standalone/docs-old/fr/package-aliases.mdx +82 -0
- package/.next/standalone/docs-old/fr/testing.mdx +260 -0
- package/.next/standalone/docs-old/getting-started.mdx +201 -0
- package/.next/standalone/docs-old/he/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/he/agenteye/api-keys.mdx +279 -0
- package/.next/standalone/docs-old/he/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/he/agenteye/audits.mdx +53 -0
- package/.next/standalone/docs-old/he/agenteye/cli-and-agents.mdx +80 -0
- package/.next/standalone/docs-old/he/agenteye/cli-recipes.mdx +179 -0
- package/.next/standalone/docs-old/he/agenteye/cli-skill.mdx +160 -0
- package/.next/standalone/docs-old/he/agenteye/cli.mdx +349 -0
- package/.next/standalone/docs-old/he/agenteye/codex-capture.mdx +56 -0
- package/.next/standalone/docs-old/he/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/he/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/he/agenteye/error-tracking.mdx +41 -0
- package/.next/standalone/docs-old/he/agenteye/evaluation-suite.mdx +299 -0
- package/.next/standalone/docs-old/he/agenteye/evaluations.mdx +51 -0
- package/.next/standalone/docs-old/he/agenteye/evaluator-skill.mdx +168 -0
- package/.next/standalone/docs-old/he/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/he/agenteye/hermes-capture.mdx +54 -0
- package/.next/standalone/docs-old/he/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/he/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/he/agenteye/openclaw-capture.mdx +50 -0
- package/.next/standalone/docs-old/he/agenteye/overview.mdx +108 -0
- package/.next/standalone/docs-old/he/agenteye/python-sdk-skill.mdx +132 -0
- package/.next/standalone/docs-old/he/agenteye/python-sdk.mdx +436 -0
- package/.next/standalone/docs-old/he/agenteye/queries.mdx +56 -0
- package/.next/standalone/docs-old/he/agenteye/security.mdx +67 -0
- package/.next/standalone/docs-old/he/agenteye/sessions.mdx +58 -0
- package/.next/standalone/docs-old/he/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/he/architecture.mdx +332 -0
- package/.next/standalone/docs-old/he/built-in-policies.mdx +857 -0
- package/.next/standalone/docs-old/he/cli/audit.mdx +116 -0
- package/.next/standalone/docs-old/he/cli/dashboard.mdx +30 -0
- package/.next/standalone/docs-old/he/cli/environment-variables.mdx +69 -0
- package/.next/standalone/docs-old/he/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/he/cli/install-policies.mdx +58 -0
- package/.next/standalone/docs-old/he/cli/list-policies.mdx +32 -0
- package/.next/standalone/docs-old/he/cli/migrate.mdx +87 -0
- package/.next/standalone/docs-old/he/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs-old/he/cli/update.mdx +64 -0
- package/.next/standalone/docs-old/he/cli/version.mdx +13 -0
- package/.next/standalone/docs-old/he/configuration.mdx +264 -0
- package/.next/standalone/docs-old/he/custom-policies.mdx +359 -0
- package/.next/standalone/docs-old/he/dashboard.mdx +155 -0
- package/.next/standalone/docs-old/he/examples.mdx +308 -0
- package/.next/standalone/docs-old/he/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/he/getting-started.mdx +200 -0
- package/.next/standalone/docs-old/he/introduction.mdx +58 -0
- package/.next/standalone/docs-old/he/package-aliases.mdx +82 -0
- package/.next/standalone/docs-old/he/testing.mdx +260 -0
- package/.next/standalone/docs-old/hi/agenteye/alerts.mdx +62 -0
- package/.next/standalone/docs-old/hi/agenteye/api-keys.mdx +279 -0
- package/.next/standalone/docs-old/hi/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/hi/agenteye/audits.mdx +53 -0
- package/.next/standalone/docs-old/hi/agenteye/cli-and-agents.mdx +80 -0
- package/.next/standalone/docs-old/hi/agenteye/cli-recipes.mdx +178 -0
- package/.next/standalone/docs-old/hi/agenteye/cli-skill.mdx +159 -0
- package/.next/standalone/docs-old/hi/agenteye/cli.mdx +350 -0
- package/.next/standalone/docs-old/hi/agenteye/codex-capture.mdx +56 -0
- package/.next/standalone/docs-old/hi/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/hi/agenteye/dashboards.mdx +47 -0
- package/.next/standalone/docs-old/hi/agenteye/error-tracking.mdx +42 -0
- package/.next/standalone/docs-old/hi/agenteye/evaluation-suite.mdx +299 -0
- package/.next/standalone/docs-old/hi/agenteye/evaluations.mdx +51 -0
- package/.next/standalone/docs-old/hi/agenteye/evaluator-skill.mdx +171 -0
- package/.next/standalone/docs-old/hi/agenteye/event-stream.mdx +49 -0
- package/.next/standalone/docs-old/hi/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/hi/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/hi/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/hi/agenteye/openclaw-capture.mdx +50 -0
- package/.next/standalone/docs-old/hi/agenteye/overview.mdx +107 -0
- package/.next/standalone/docs-old/hi/agenteye/python-sdk-skill.mdx +133 -0
- package/.next/standalone/docs-old/hi/agenteye/python-sdk.mdx +434 -0
- package/.next/standalone/docs-old/hi/agenteye/queries.mdx +57 -0
- package/.next/standalone/docs-old/hi/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/hi/agenteye/sessions.mdx +57 -0
- package/.next/standalone/docs-old/hi/agenteye/telemetry.mdx +51 -0
- package/.next/standalone/docs-old/hi/architecture.mdx +332 -0
- package/.next/standalone/docs-old/hi/built-in-policies.mdx +848 -0
- package/.next/standalone/docs-old/hi/cli/audit.mdx +117 -0
- package/.next/standalone/docs-old/hi/cli/dashboard.mdx +29 -0
- package/.next/standalone/docs-old/hi/cli/environment-variables.mdx +64 -0
- package/.next/standalone/docs-old/hi/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/hi/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/hi/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs-old/hi/cli/migrate.mdx +85 -0
- package/.next/standalone/docs-old/hi/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs-old/hi/cli/update.mdx +65 -0
- package/.next/standalone/docs-old/hi/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/hi/configuration.mdx +264 -0
- package/.next/standalone/docs-old/hi/custom-policies.mdx +359 -0
- package/.next/standalone/docs-old/hi/dashboard.mdx +152 -0
- package/.next/standalone/docs-old/hi/examples.mdx +307 -0
- package/.next/standalone/docs-old/hi/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/hi/getting-started.mdx +200 -0
- package/.next/standalone/docs-old/hi/introduction.mdx +58 -0
- package/.next/standalone/docs-old/hi/package-aliases.mdx +83 -0
- package/.next/standalone/docs-old/hi/testing.mdx +260 -0
- package/.next/standalone/docs-old/i18n/README.ar.md +230 -0
- package/.next/standalone/docs-old/i18n/README.de.md +225 -0
- package/.next/standalone/docs-old/i18n/README.es.md +225 -0
- package/.next/standalone/docs-old/i18n/README.fr.md +225 -0
- package/.next/standalone/docs-old/i18n/README.he.md +230 -0
- package/.next/standalone/docs-old/i18n/README.hi.md +222 -0
- package/.next/standalone/docs-old/i18n/README.it.md +225 -0
- package/.next/standalone/docs-old/i18n/README.ja.md +219 -0
- package/.next/standalone/docs-old/i18n/README.ko.md +225 -0
- package/.next/standalone/docs-old/i18n/README.pt-br.md +225 -0
- package/.next/standalone/docs-old/i18n/README.ru.md +222 -0
- package/.next/standalone/docs-old/i18n/README.tr.md +221 -0
- package/.next/standalone/docs-old/i18n/README.vi.md +225 -0
- package/.next/standalone/docs-old/i18n/README.zh.md +219 -0
- package/.next/standalone/docs-old/introduction.mdx +57 -0
- package/.next/standalone/docs-old/it/agenteye/alerts.mdx +62 -0
- package/.next/standalone/docs-old/it/agenteye/api-keys.mdx +279 -0
- package/.next/standalone/docs-old/it/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/it/agenteye/audits.mdx +54 -0
- package/.next/standalone/docs-old/it/agenteye/cli-and-agents.mdx +80 -0
- package/.next/standalone/docs-old/it/agenteye/cli-recipes.mdx +179 -0
- package/.next/standalone/docs-old/it/agenteye/cli-skill.mdx +159 -0
- package/.next/standalone/docs-old/it/agenteye/cli.mdx +349 -0
- package/.next/standalone/docs-old/it/agenteye/codex-capture.mdx +56 -0
- package/.next/standalone/docs-old/it/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/it/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/it/agenteye/error-tracking.mdx +41 -0
- package/.next/standalone/docs-old/it/agenteye/evaluation-suite.mdx +299 -0
- package/.next/standalone/docs-old/it/agenteye/evaluations.mdx +51 -0
- package/.next/standalone/docs-old/it/agenteye/evaluator-skill.mdx +170 -0
- package/.next/standalone/docs-old/it/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/it/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/it/agenteye/incidents.mdx +49 -0
- package/.next/standalone/docs-old/it/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/it/agenteye/openclaw-capture.mdx +49 -0
- package/.next/standalone/docs-old/it/agenteye/overview.mdx +107 -0
- package/.next/standalone/docs-old/it/agenteye/python-sdk-skill.mdx +132 -0
- package/.next/standalone/docs-old/it/agenteye/python-sdk.mdx +437 -0
- package/.next/standalone/docs-old/it/agenteye/queries.mdx +55 -0
- package/.next/standalone/docs-old/it/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/it/agenteye/sessions.mdx +57 -0
- package/.next/standalone/docs-old/it/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/it/architecture.mdx +333 -0
- package/.next/standalone/docs-old/it/built-in-policies.mdx +853 -0
- package/.next/standalone/docs-old/it/cli/audit.mdx +126 -0
- package/.next/standalone/docs-old/it/cli/dashboard.mdx +30 -0
- package/.next/standalone/docs-old/it/cli/environment-variables.mdx +65 -0
- package/.next/standalone/docs-old/it/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/it/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/it/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs-old/it/cli/migrate.mdx +122 -0
- package/.next/standalone/docs-old/it/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs-old/it/cli/update.mdx +86 -0
- package/.next/standalone/docs-old/it/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/it/configuration.mdx +269 -0
- package/.next/standalone/docs-old/it/custom-policies.mdx +359 -0
- package/.next/standalone/docs-old/it/dashboard.mdx +151 -0
- package/.next/standalone/docs-old/it/examples.mdx +307 -0
- package/.next/standalone/docs-old/it/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/it/getting-started.mdx +199 -0
- package/.next/standalone/docs-old/it/introduction.mdx +58 -0
- package/.next/standalone/docs-old/it/package-aliases.mdx +82 -0
- package/.next/standalone/docs-old/it/testing.mdx +261 -0
- package/.next/standalone/docs-old/ja/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/ja/agenteye/api-keys.mdx +280 -0
- package/.next/standalone/docs-old/ja/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/ja/agenteye/audits.mdx +54 -0
- package/.next/standalone/docs-old/ja/agenteye/cli-and-agents.mdx +80 -0
- package/.next/standalone/docs-old/ja/agenteye/cli-recipes.mdx +179 -0
- package/.next/standalone/docs-old/ja/agenteye/cli-skill.mdx +159 -0
- package/.next/standalone/docs-old/ja/agenteye/cli.mdx +350 -0
- package/.next/standalone/docs-old/ja/agenteye/codex-capture.mdx +55 -0
- package/.next/standalone/docs-old/ja/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/ja/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/ja/agenteye/error-tracking.mdx +41 -0
- package/.next/standalone/docs-old/ja/agenteye/evaluation-suite.mdx +300 -0
- package/.next/standalone/docs-old/ja/agenteye/evaluations.mdx +51 -0
- package/.next/standalone/docs-old/ja/agenteye/evaluator-skill.mdx +167 -0
- package/.next/standalone/docs-old/ja/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/ja/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/ja/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/ja/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/ja/agenteye/openclaw-capture.mdx +49 -0
- package/.next/standalone/docs-old/ja/agenteye/overview.mdx +108 -0
- package/.next/standalone/docs-old/ja/agenteye/python-sdk-skill.mdx +131 -0
- package/.next/standalone/docs-old/ja/agenteye/python-sdk.mdx +433 -0
- package/.next/standalone/docs-old/ja/agenteye/queries.mdx +56 -0
- package/.next/standalone/docs-old/ja/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/ja/agenteye/sessions.mdx +57 -0
- package/.next/standalone/docs-old/ja/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/ja/architecture.mdx +332 -0
- package/.next/standalone/docs-old/ja/built-in-policies.mdx +848 -0
- package/.next/standalone/docs-old/ja/cli/audit.mdx +116 -0
- package/.next/standalone/docs-old/ja/cli/dashboard.mdx +29 -0
- package/.next/standalone/docs-old/ja/cli/environment-variables.mdx +63 -0
- package/.next/standalone/docs-old/ja/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/ja/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/ja/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs-old/ja/cli/migrate.mdx +86 -0
- package/.next/standalone/docs-old/ja/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs-old/ja/cli/update.mdx +64 -0
- package/.next/standalone/docs-old/ja/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/ja/configuration.mdx +264 -0
- package/.next/standalone/docs-old/ja/custom-policies.mdx +358 -0
- package/.next/standalone/docs-old/ja/dashboard.mdx +151 -0
- package/.next/standalone/docs-old/ja/examples.mdx +307 -0
- package/.next/standalone/docs-old/ja/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/ja/getting-started.mdx +199 -0
- package/.next/standalone/docs-old/ja/introduction.mdx +57 -0
- package/.next/standalone/docs-old/ja/package-aliases.mdx +82 -0
- package/.next/standalone/docs-old/ja/testing.mdx +260 -0
- package/.next/standalone/docs-old/ko/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/ko/agenteye/api-keys.mdx +280 -0
- package/.next/standalone/docs-old/ko/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/ko/agenteye/audits.mdx +54 -0
- package/.next/standalone/docs-old/ko/agenteye/cli-and-agents.mdx +80 -0
- package/.next/standalone/docs-old/ko/agenteye/cli-recipes.mdx +179 -0
- package/.next/standalone/docs-old/ko/agenteye/cli-skill.mdx +159 -0
- package/.next/standalone/docs-old/ko/agenteye/cli.mdx +350 -0
- package/.next/standalone/docs-old/ko/agenteye/codex-capture.mdx +55 -0
- package/.next/standalone/docs-old/ko/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/ko/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/ko/agenteye/error-tracking.mdx +40 -0
- package/.next/standalone/docs-old/ko/agenteye/evaluation-suite.mdx +303 -0
- package/.next/standalone/docs-old/ko/agenteye/evaluations.mdx +50 -0
- package/.next/standalone/docs-old/ko/agenteye/evaluator-skill.mdx +167 -0
- package/.next/standalone/docs-old/ko/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/ko/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/ko/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/ko/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/ko/agenteye/openclaw-capture.mdx +49 -0
- package/.next/standalone/docs-old/ko/agenteye/overview.mdx +108 -0
- package/.next/standalone/docs-old/ko/agenteye/python-sdk-skill.mdx +130 -0
- package/.next/standalone/docs-old/ko/agenteye/python-sdk.mdx +433 -0
- package/.next/standalone/docs-old/ko/agenteye/queries.mdx +56 -0
- package/.next/standalone/docs-old/ko/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/ko/agenteye/sessions.mdx +57 -0
- package/.next/standalone/docs-old/ko/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/ko/architecture.mdx +332 -0
- package/.next/standalone/docs-old/ko/built-in-policies.mdx +854 -0
- package/.next/standalone/docs-old/ko/cli/audit.mdx +131 -0
- package/.next/standalone/docs-old/ko/cli/dashboard.mdx +29 -0
- package/.next/standalone/docs-old/ko/cli/environment-variables.mdx +66 -0
- package/.next/standalone/docs-old/ko/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/ko/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/ko/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs-old/ko/cli/migrate.mdx +86 -0
- package/.next/standalone/docs-old/ko/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs-old/ko/cli/update.mdx +64 -0
- package/.next/standalone/docs-old/ko/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/ko/configuration.mdx +267 -0
- package/.next/standalone/docs-old/ko/custom-policies.mdx +358 -0
- package/.next/standalone/docs-old/ko/dashboard.mdx +151 -0
- package/.next/standalone/docs-old/ko/examples.mdx +307 -0
- package/.next/standalone/docs-old/ko/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/ko/getting-started.mdx +199 -0
- package/.next/standalone/docs-old/ko/introduction.mdx +57 -0
- package/.next/standalone/docs-old/ko/package-aliases.mdx +82 -0
- package/.next/standalone/docs-old/ko/testing.mdx +260 -0
- package/.next/standalone/docs-old/logo/Failproof_AI_logo.png +0 -0
- package/.next/standalone/docs-old/logo/Failproof_AI_logo_light.png +0 -0
- package/.next/standalone/docs-old/package-aliases.mdx +82 -0
- package/.next/standalone/docs-old/pt-br/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/pt-br/agenteye/api-keys.mdx +280 -0
- package/.next/standalone/docs-old/pt-br/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/pt-br/agenteye/audits.mdx +54 -0
- package/.next/standalone/docs-old/pt-br/agenteye/cli-and-agents.mdx +80 -0
- package/.next/standalone/docs-old/pt-br/agenteye/cli-recipes.mdx +179 -0
- package/.next/standalone/docs-old/pt-br/agenteye/cli-skill.mdx +159 -0
- package/.next/standalone/docs-old/pt-br/agenteye/cli.mdx +350 -0
- package/.next/standalone/docs-old/pt-br/agenteye/codex-capture.mdx +55 -0
- package/.next/standalone/docs-old/pt-br/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/pt-br/agenteye/dashboards.mdx +45 -0
- package/.next/standalone/docs-old/pt-br/agenteye/error-tracking.mdx +40 -0
- package/.next/standalone/docs-old/pt-br/agenteye/evaluation-suite.mdx +401 -0
- package/.next/standalone/docs-old/pt-br/agenteye/evaluations.mdx +51 -0
- package/.next/standalone/docs-old/pt-br/agenteye/evaluator-skill.mdx +167 -0
- package/.next/standalone/docs-old/pt-br/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/pt-br/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/pt-br/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/pt-br/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/pt-br/agenteye/openclaw-capture.mdx +49 -0
- package/.next/standalone/docs-old/pt-br/agenteye/overview.mdx +108 -0
- package/.next/standalone/docs-old/pt-br/agenteye/python-sdk-skill.mdx +136 -0
- package/.next/standalone/docs-old/pt-br/agenteye/python-sdk.mdx +436 -0
- package/.next/standalone/docs-old/pt-br/agenteye/queries.mdx +56 -0
- package/.next/standalone/docs-old/pt-br/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/pt-br/agenteye/sessions.mdx +56 -0
- package/.next/standalone/docs-old/pt-br/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/pt-br/architecture.mdx +332 -0
- package/.next/standalone/docs-old/pt-br/built-in-policies.mdx +858 -0
- package/.next/standalone/docs-old/pt-br/cli/audit.mdx +132 -0
- package/.next/standalone/docs-old/pt-br/cli/dashboard.mdx +29 -0
- package/.next/standalone/docs-old/pt-br/cli/environment-variables.mdx +72 -0
- package/.next/standalone/docs-old/pt-br/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/pt-br/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/pt-br/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs-old/pt-br/cli/migrate.mdx +86 -0
- package/.next/standalone/docs-old/pt-br/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs-old/pt-br/cli/update.mdx +64 -0
- package/.next/standalone/docs-old/pt-br/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/pt-br/configuration.mdx +268 -0
- package/.next/standalone/docs-old/pt-br/custom-policies.mdx +358 -0
- package/.next/standalone/docs-old/pt-br/dashboard.mdx +151 -0
- package/.next/standalone/docs-old/pt-br/examples.mdx +307 -0
- package/.next/standalone/docs-old/pt-br/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/pt-br/getting-started.mdx +199 -0
- package/.next/standalone/docs-old/pt-br/introduction.mdx +57 -0
- package/.next/standalone/docs-old/pt-br/package-aliases.mdx +82 -0
- package/.next/standalone/docs-old/pt-br/testing.mdx +260 -0
- package/.next/standalone/docs-old/ru/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/ru/agenteye/api-keys.mdx +280 -0
- package/.next/standalone/docs-old/ru/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/ru/agenteye/audits.mdx +54 -0
- package/.next/standalone/docs-old/ru/agenteye/cli-and-agents.mdx +80 -0
- package/.next/standalone/docs-old/ru/agenteye/cli-recipes.mdx +179 -0
- package/.next/standalone/docs-old/ru/agenteye/cli-skill.mdx +159 -0
- package/.next/standalone/docs-old/ru/agenteye/cli.mdx +350 -0
- package/.next/standalone/docs-old/ru/agenteye/codex-capture.mdx +55 -0
- package/.next/standalone/docs-old/ru/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/ru/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/ru/agenteye/error-tracking.mdx +41 -0
- package/.next/standalone/docs-old/ru/agenteye/evaluation-suite.mdx +401 -0
- package/.next/standalone/docs-old/ru/agenteye/evaluations.mdx +51 -0
- package/.next/standalone/docs-old/ru/agenteye/evaluator-skill.mdx +171 -0
- package/.next/standalone/docs-old/ru/agenteye/event-stream.mdx +51 -0
- package/.next/standalone/docs-old/ru/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/ru/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/ru/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/ru/agenteye/openclaw-capture.mdx +49 -0
- package/.next/standalone/docs-old/ru/agenteye/overview.mdx +107 -0
- package/.next/standalone/docs-old/ru/agenteye/python-sdk-skill.mdx +131 -0
- package/.next/standalone/docs-old/ru/agenteye/python-sdk.mdx +437 -0
- package/.next/standalone/docs-old/ru/agenteye/queries.mdx +56 -0
- package/.next/standalone/docs-old/ru/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/ru/agenteye/sessions.mdx +57 -0
- package/.next/standalone/docs-old/ru/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/ru/architecture.mdx +333 -0
- package/.next/standalone/docs-old/ru/built-in-policies.mdx +853 -0
- package/.next/standalone/docs-old/ru/cli/audit.mdx +132 -0
- package/.next/standalone/docs-old/ru/cli/dashboard.mdx +29 -0
- package/.next/standalone/docs-old/ru/cli/environment-variables.mdx +72 -0
- package/.next/standalone/docs-old/ru/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/ru/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/ru/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs-old/ru/cli/migrate.mdx +91 -0
- package/.next/standalone/docs-old/ru/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs-old/ru/cli/update.mdx +64 -0
- package/.next/standalone/docs-old/ru/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/ru/configuration.mdx +269 -0
- package/.next/standalone/docs-old/ru/custom-policies.mdx +358 -0
- package/.next/standalone/docs-old/ru/dashboard.mdx +155 -0
- package/.next/standalone/docs-old/ru/examples.mdx +307 -0
- package/.next/standalone/docs-old/ru/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/ru/getting-started.mdx +199 -0
- package/.next/standalone/docs-old/ru/introduction.mdx +58 -0
- package/.next/standalone/docs-old/ru/package-aliases.mdx +82 -0
- package/.next/standalone/docs-old/ru/testing.mdx +260 -0
- package/.next/standalone/docs-old/styles/config/vocabularies/Mintlify/accept.txt +52 -0
- package/.next/standalone/docs-old/superpowers/specs/2026-06-11-audit-poster-restructure-design.md +332 -0
- package/.next/standalone/docs-old/testing.mdx +260 -0
- package/.next/standalone/docs-old/tr/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/tr/agenteye/api-keys.mdx +279 -0
- package/.next/standalone/docs-old/tr/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/tr/agenteye/audits.mdx +54 -0
- package/.next/standalone/docs-old/tr/agenteye/cli-and-agents.mdx +80 -0
- package/.next/standalone/docs-old/tr/agenteye/cli-recipes.mdx +179 -0
- package/.next/standalone/docs-old/tr/agenteye/cli-skill.mdx +161 -0
- package/.next/standalone/docs-old/tr/agenteye/cli.mdx +350 -0
- package/.next/standalone/docs-old/tr/agenteye/codex-capture.mdx +56 -0
- package/.next/standalone/docs-old/tr/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/tr/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/tr/agenteye/error-tracking.mdx +41 -0
- package/.next/standalone/docs-old/tr/agenteye/evaluation-suite.mdx +299 -0
- package/.next/standalone/docs-old/tr/agenteye/evaluations.mdx +51 -0
- package/.next/standalone/docs-old/tr/agenteye/evaluator-skill.mdx +167 -0
- package/.next/standalone/docs-old/tr/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/tr/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/tr/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/tr/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/tr/agenteye/openclaw-capture.mdx +50 -0
- package/.next/standalone/docs-old/tr/agenteye/overview.mdx +107 -0
- package/.next/standalone/docs-old/tr/agenteye/python-sdk-skill.mdx +130 -0
- package/.next/standalone/docs-old/tr/agenteye/python-sdk.mdx +436 -0
- package/.next/standalone/docs-old/tr/agenteye/queries.mdx +55 -0
- package/.next/standalone/docs-old/tr/agenteye/security.mdx +69 -0
- package/.next/standalone/docs-old/tr/agenteye/sessions.mdx +57 -0
- package/.next/standalone/docs-old/tr/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/tr/architecture.mdx +332 -0
- package/.next/standalone/docs-old/tr/built-in-policies.mdx +848 -0
- package/.next/standalone/docs-old/tr/cli/audit.mdx +117 -0
- package/.next/standalone/docs-old/tr/cli/dashboard.mdx +29 -0
- package/.next/standalone/docs-old/tr/cli/environment-variables.mdx +65 -0
- package/.next/standalone/docs-old/tr/cli/hook.mdx +31 -0
- package/.next/standalone/docs-old/tr/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/tr/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs-old/tr/cli/migrate.mdx +87 -0
- package/.next/standalone/docs-old/tr/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs-old/tr/cli/update.mdx +88 -0
- package/.next/standalone/docs-old/tr/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/tr/configuration.mdx +268 -0
- package/.next/standalone/docs-old/tr/custom-policies.mdx +358 -0
- package/.next/standalone/docs-old/tr/dashboard.mdx +152 -0
- package/.next/standalone/docs-old/tr/examples.mdx +307 -0
- package/.next/standalone/docs-old/tr/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/tr/getting-started.mdx +199 -0
- package/.next/standalone/docs-old/tr/introduction.mdx +57 -0
- package/.next/standalone/docs-old/tr/package-aliases.mdx +82 -0
- package/.next/standalone/docs-old/tr/testing.mdx +261 -0
- package/.next/standalone/docs-old/vi/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/vi/agenteye/api-keys.mdx +280 -0
- package/.next/standalone/docs-old/vi/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/vi/agenteye/audits.mdx +54 -0
- package/.next/standalone/docs-old/vi/agenteye/cli-and-agents.mdx +80 -0
- package/.next/standalone/docs-old/vi/agenteye/cli-recipes.mdx +178 -0
- package/.next/standalone/docs-old/vi/agenteye/cli-skill.mdx +159 -0
- package/.next/standalone/docs-old/vi/agenteye/cli.mdx +349 -0
- package/.next/standalone/docs-old/vi/agenteye/codex-capture.mdx +55 -0
- package/.next/standalone/docs-old/vi/agenteye/concepts.mdx +88 -0
- package/.next/standalone/docs-old/vi/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/vi/agenteye/error-tracking.mdx +41 -0
- package/.next/standalone/docs-old/vi/agenteye/evaluation-suite.mdx +300 -0
- package/.next/standalone/docs-old/vi/agenteye/evaluations.mdx +51 -0
- package/.next/standalone/docs-old/vi/agenteye/evaluator-skill.mdx +171 -0
- package/.next/standalone/docs-old/vi/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/vi/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/vi/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/vi/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/vi/agenteye/openclaw-capture.mdx +49 -0
- package/.next/standalone/docs-old/vi/agenteye/overview.mdx +109 -0
- package/.next/standalone/docs-old/vi/agenteye/python-sdk-skill.mdx +131 -0
- package/.next/standalone/docs-old/vi/agenteye/python-sdk.mdx +433 -0
- package/.next/standalone/docs-old/vi/agenteye/queries.mdx +55 -0
- package/.next/standalone/docs-old/vi/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/vi/agenteye/sessions.mdx +57 -0
- package/.next/standalone/docs-old/vi/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/vi/architecture.mdx +332 -0
- package/.next/standalone/docs-old/vi/built-in-policies.mdx +853 -0
- package/.next/standalone/docs-old/vi/cli/audit.mdx +120 -0
- package/.next/standalone/docs-old/vi/cli/dashboard.mdx +29 -0
- package/.next/standalone/docs-old/vi/cli/environment-variables.mdx +69 -0
- package/.next/standalone/docs-old/vi/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/vi/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/vi/cli/list-policies.mdx +32 -0
- package/.next/standalone/docs-old/vi/cli/migrate.mdx +122 -0
- package/.next/standalone/docs-old/vi/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs-old/vi/cli/update.mdx +95 -0
- package/.next/standalone/docs-old/vi/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/vi/configuration.mdx +268 -0
- package/.next/standalone/docs-old/vi/custom-policies.mdx +358 -0
- package/.next/standalone/docs-old/vi/dashboard.mdx +151 -0
- package/.next/standalone/docs-old/vi/examples.mdx +308 -0
- package/.next/standalone/docs-old/vi/for-agents.mdx +39 -0
- package/.next/standalone/docs-old/vi/getting-started.mdx +200 -0
- package/.next/standalone/docs-old/vi/introduction.mdx +57 -0
- package/.next/standalone/docs-old/vi/package-aliases.mdx +83 -0
- package/.next/standalone/docs-old/vi/testing.mdx +261 -0
- package/.next/standalone/docs-old/zh/agenteye/alerts.mdx +63 -0
- package/.next/standalone/docs-old/zh/agenteye/api-keys.mdx +280 -0
- package/.next/standalone/docs-old/zh/agenteye/assistant.mdx +63 -0
- package/.next/standalone/docs-old/zh/agenteye/audits.mdx +54 -0
- package/.next/standalone/docs-old/zh/agenteye/cli-and-agents.mdx +79 -0
- package/.next/standalone/docs-old/zh/agenteye/cli-recipes.mdx +179 -0
- package/.next/standalone/docs-old/zh/agenteye/cli-skill.mdx +159 -0
- package/.next/standalone/docs-old/zh/agenteye/cli.mdx +350 -0
- package/.next/standalone/docs-old/zh/agenteye/codex-capture.mdx +55 -0
- package/.next/standalone/docs-old/zh/agenteye/concepts.mdx +87 -0
- package/.next/standalone/docs-old/zh/agenteye/dashboards.mdx +46 -0
- package/.next/standalone/docs-old/zh/agenteye/error-tracking.mdx +40 -0
- package/.next/standalone/docs-old/zh/agenteye/evaluation-suite.mdx +300 -0
- package/.next/standalone/docs-old/zh/agenteye/evaluations.mdx +51 -0
- package/.next/standalone/docs-old/zh/agenteye/evaluator-skill.mdx +167 -0
- package/.next/standalone/docs-old/zh/agenteye/event-stream.mdx +50 -0
- package/.next/standalone/docs-old/zh/agenteye/hermes-capture.mdx +53 -0
- package/.next/standalone/docs-old/zh/agenteye/incidents.mdx +50 -0
- package/.next/standalone/docs-old/zh/agenteye/observability.mdx +23 -0
- package/.next/standalone/docs-old/zh/agenteye/openclaw-capture.mdx +49 -0
- package/.next/standalone/docs-old/zh/agenteye/overview.mdx +108 -0
- package/.next/standalone/docs-old/zh/agenteye/python-sdk-skill.mdx +131 -0
- package/.next/standalone/docs-old/zh/agenteye/python-sdk.mdx +433 -0
- package/.next/standalone/docs-old/zh/agenteye/queries.mdx +56 -0
- package/.next/standalone/docs-old/zh/agenteye/security.mdx +68 -0
- package/.next/standalone/docs-old/zh/agenteye/sessions.mdx +56 -0
- package/.next/standalone/docs-old/zh/agenteye/telemetry.mdx +52 -0
- package/.next/standalone/docs-old/zh/architecture.mdx +332 -0
- package/.next/standalone/docs-old/zh/built-in-policies.mdx +850 -0
- package/.next/standalone/docs-old/zh/cli/audit.mdx +115 -0
- package/.next/standalone/docs-old/zh/cli/dashboard.mdx +29 -0
- package/.next/standalone/docs-old/zh/cli/environment-variables.mdx +62 -0
- package/.next/standalone/docs-old/zh/cli/hook.mdx +30 -0
- package/.next/standalone/docs-old/zh/cli/install-policies.mdx +57 -0
- package/.next/standalone/docs-old/zh/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs-old/zh/cli/migrate.mdx +86 -0
- package/.next/standalone/docs-old/zh/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs-old/zh/cli/update.mdx +65 -0
- package/.next/standalone/docs-old/zh/cli/version.mdx +12 -0
- package/.next/standalone/docs-old/zh/configuration.mdx +266 -0
- package/.next/standalone/docs-old/zh/custom-policies.mdx +358 -0
- package/.next/standalone/docs-old/zh/dashboard.mdx +151 -0
- package/.next/standalone/docs-old/zh/examples.mdx +307 -0
- package/.next/standalone/docs-old/zh/for-agents.mdx +38 -0
- package/.next/standalone/docs-old/zh/getting-started.mdx +199 -0
- package/.next/standalone/docs-old/zh/introduction.mdx +57 -0
- package/.next/standalone/docs-old/zh/package-aliases.mdx +82 -0
- package/.next/standalone/docs-old/zh/testing.mdx +260 -0
- package/.next/standalone/lib/telemetry.ts +45 -40
- package/.next/standalone/node_modules/@next/env/package.json +1 -1
- package/.next/standalone/node_modules/@swc/helpers/esm/_interop_require_default.js +4 -0
- package/.next/standalone/node_modules/@swc/helpers/esm/_interop_require_wildcard.js +36 -0
- package/.next/standalone/node_modules/@swc/helpers/package.json +703 -469
- package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +8 -6
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +26 -20
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +2 -1
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +5 -2
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +2 -1
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +3 -1
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/cache.js +150 -169
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +16 -54
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/navigation.js +115 -23
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +61 -6
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/scheduler.js +53 -36
- package/.next/standalone/node_modules/next/dist/client/route-params.js +4 -8
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +26 -26
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +26 -26
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +2 -2
- package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +9 -9
- package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/.next/standalone/node_modules/next/dist/lib/turbopack-cache-seed.js +15 -7
- package/.next/standalone/node_modules/next/dist/server/app-render/app-render.js +2 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/dev-validation-worker-snapshot.js +2 -1
- package/.next/standalone/node_modules/next/dist/server/async-storage/request-store.js +29 -20
- package/.next/standalone/node_modules/next/dist/server/async-storage/work-store.js +1 -0
- package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/dev/dev-validation-worker-pool.js +90 -11
- package/.next/standalone/node_modules/next/dist/server/dev/dev-validation-worker.js +51 -9
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +24 -4
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/dev/use-cache-probe-worker.js +1 -0
- package/.next/standalone/node_modules/next/dist/server/image-optimizer.js +1 -0
- package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/encode-header-safe.js +44 -0
- package/.next/standalone/node_modules/next/dist/server/lib/implicit-tags.js +3 -3
- package/.next/standalone/node_modules/next/dist/server/lib/patch-fetch.js +2 -2
- package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/use-cache/handlers.js +14 -0
- package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-probe-scheduler.js +2 -1
- package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +100 -31
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +88 -2
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/revalidate.js +12 -5
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +13 -1
- package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/.next/standalone/node_modules/next/package.json +11 -11
- package/.next/standalone/package.json +10 -10
- package/.next/standalone/server.js +1 -1
- package/README.md +11 -11
- package/dist/cli.mjs +81 -101
- package/dist/worker.mjs +1 -1
- package/lib/telemetry.ts +45 -40
- package/package.json +10 -10
- package/scripts/release-announcement.mjs +686 -0
- package/scripts/translate-docs/config.ts +19 -1
- package/src/audit/cli.ts +64 -49
- package/src/hooks/hook-telemetry.ts +3 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g2rg69._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m98kzy._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0v5_91z._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1-a3135._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1e5g_ur._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1hmqefd._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/_1nq-35m._.js +0 -23
- package/.next/standalone/.next/server/chunks/ssr/node_modules_1j2z5jb._.js +0 -3
- package/.next/standalone/.next/static/chunks/00q6cfzuzpc85.js +0 -1
- package/.next/standalone/.next/static/chunks/13--2yvqek_s1.js +0 -1
- package/.next/standalone/.next/static/chunks/18fqy3doo2ial.js +0 -6
- package/.next/standalone/.next/static/chunks/2ts65czrjjd_k.js +0 -31
- package/.next/standalone/.next/static/chunks/31orv9uidm1fn.js +0 -22
- package/.next/standalone/.next/static/chunks/3peix2vxzj7eh.js +0 -1
- package/.next/standalone/node_modules/next/dist/server/lib/encode-cache-tag.js +0 -45
- /package/.next/standalone/.next/static/{jSKB7CQQSNTX-uSbY2bUs → ZklXxyA5ygsWSQz2u_zii}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{jSKB7CQQSNTX-uSbY2bUs → ZklXxyA5ygsWSQz2u_zii}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{jSKB7CQQSNTX-uSbY2bUs → ZklXxyA5ygsWSQz2u_zii}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Configuración
|
|
3
|
+
description: "Formato del archivo de configuración, sistema de tres ámbitos y reglas de combinación"
|
|
4
|
+
icon: gear
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
failproofai utiliza archivos de configuración JSON para controlar qué políticas están activas, cómo se comportan y desde dónde se cargan las políticas personalizadas. La configuración está diseñada para compartirse fácilmente con tu equipo: confírmala en tu repositorio y cada desarrollador tendrá la misma red de seguridad para el agente.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Ámbitos de configuración
|
|
12
|
+
|
|
13
|
+
Existen tres ámbitos de configuración, evaluados en orden de prioridad:
|
|
14
|
+
|
|
15
|
+
| Ámbito | Ruta del archivo | Propósito |
|
|
16
|
+
|--------|-----------------|-----------|
|
|
17
|
+
| **project** | `.failproofai/policies-config.json` | Configuración por repositorio, confirmada en control de versiones |
|
|
18
|
+
| **local** | `.failproofai/policies-config.local.json` | Anulaciones personales por repositorio, ignoradas por git |
|
|
19
|
+
| **global** | `~/.failproofai/policies-config.json` | Valores predeterminados del usuario para todos los proyectos |
|
|
20
|
+
|
|
21
|
+
Cuando failproofai recibe un evento de hook, carga y combina los tres archivos que existen para el directorio de trabajo actual.
|
|
22
|
+
|
|
23
|
+
### Reglas de combinación
|
|
24
|
+
|
|
25
|
+
**`enabledPolicies`** — la unión de los tres ámbitos. Una política habilitada en cualquier nivel está activa.
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
project: ["block-sudo"]
|
|
29
|
+
local: ["block-rm-rf"]
|
|
30
|
+
global: ["block-sudo", "sanitize-api-keys"]
|
|
31
|
+
|
|
32
|
+
resolved: ["block-sudo", "block-rm-rf", "sanitize-api-keys"] ← unión sin duplicados
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**`policyParams`** — el primer ámbito que defina los parámetros para una política dada prevalece por completo. No se realiza una combinación profunda de los valores dentro de los parámetros de una política.
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
project: block-sudo → { allowPatterns: ["sudo apt-get update"] }
|
|
39
|
+
global: block-sudo → { allowPatterns: ["sudo systemctl status"] }
|
|
40
|
+
|
|
41
|
+
resolved: { allowPatterns: ["sudo apt-get update"] } ← project prevalece, global se ignora
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
project: (sin entrada block-sudo)
|
|
46
|
+
local: (sin entrada block-sudo)
|
|
47
|
+
global: block-sudo → { allowPatterns: ["sudo systemctl status"] }
|
|
48
|
+
|
|
49
|
+
resolved: { allowPatterns: ["sudo systemctl status"] } ← cae al global
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**`customPoliciesPaths` / `customPoliciesPath`** — el primer ámbito que defina cualquiera de las dos formas prevalece.
|
|
53
|
+
|
|
54
|
+
**`disabledCustomPolicies`** — unión de todos los ámbitos. El panel escribe un
|
|
55
|
+
ID cualificado por fuente aquí cuando desactivas una política individual desde un
|
|
56
|
+
archivo de políticas explícito o de convención. Las políticas no listadas permanecen habilitadas
|
|
57
|
+
de forma predeterminada; los IDs incluyen el archivo fuente para que las políticas con el mismo nombre en múltiples archivos
|
|
58
|
+
puedan controlarse de forma independiente.
|
|
59
|
+
|
|
60
|
+
**`llm`** — el primer ámbito que lo defina prevalece.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Formato del archivo de configuración
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"enabledPolicies": [
|
|
69
|
+
"block-sudo",
|
|
70
|
+
"block-rm-rf",
|
|
71
|
+
"block-push-master",
|
|
72
|
+
"sanitize-api-keys",
|
|
73
|
+
"sanitize-jwt",
|
|
74
|
+
"block-env-files",
|
|
75
|
+
"block-read-outside-cwd"
|
|
76
|
+
],
|
|
77
|
+
"policyParams": {
|
|
78
|
+
"block-sudo": {
|
|
79
|
+
"allowPatterns": ["sudo systemctl status", "sudo journalctl"]
|
|
80
|
+
},
|
|
81
|
+
"block-push-master": {
|
|
82
|
+
"protectedBranches": ["main", "release", "prod"]
|
|
83
|
+
},
|
|
84
|
+
"block-rm-rf": {
|
|
85
|
+
"allowPaths": ["/tmp"]
|
|
86
|
+
},
|
|
87
|
+
"block-read-outside-cwd": {
|
|
88
|
+
"allowPaths": ["/shared/data", "/opt/company"]
|
|
89
|
+
},
|
|
90
|
+
"sanitize-api-keys": {
|
|
91
|
+
"additionalPatterns": [
|
|
92
|
+
{ "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo API key" }
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"warn-large-file-write": {
|
|
96
|
+
"thresholdKb": 512
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"customPoliciesPath": "/home/alice/myproject/my-policies.js"
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Referencia de campos
|
|
106
|
+
|
|
107
|
+
### `enabledPolicies`
|
|
108
|
+
|
|
109
|
+
Tipo: `string[]`
|
|
110
|
+
|
|
111
|
+
Lista de nombres de políticas a habilitar. Los nombres deben coincidir exactamente con los identificadores de política mostrados por `failproofai policies`. Consulta [Políticas integradas](/es/built-in-policies) para ver la lista completa.
|
|
112
|
+
|
|
113
|
+
Las políticas que no están en `enabledPolicies` están inactivas, incluso si tienen entradas en `policyParams`.
|
|
114
|
+
|
|
115
|
+
### `policyParams`
|
|
116
|
+
|
|
117
|
+
Tipo: `Record<string, Record<string, unknown>>`
|
|
118
|
+
|
|
119
|
+
Anulaciones de parámetros por política. La clave exterior es el nombre de la política; las claves interiores son específicas de cada política. Cada política documenta sus parámetros disponibles en [Políticas integradas](/es/built-in-policies).
|
|
120
|
+
|
|
121
|
+
Si una política tiene parámetros pero no los especificas, se utilizan los valores predeterminados integrados de la política. Los usuarios que no configuran `policyParams` en absoluto obtienen un comportamiento idéntico al de versiones anteriores.
|
|
122
|
+
|
|
123
|
+
Las claves desconocidas dentro del bloque de parámetros de una política se ignoran silenciosamente en el momento de dispararse el hook, pero se marcan como advertencias cuando ejecutas `failproofai policies`.
|
|
124
|
+
|
|
125
|
+
#### `hint` (transversal)
|
|
126
|
+
|
|
127
|
+
Tipo: `string` (opcional)
|
|
128
|
+
|
|
129
|
+
Un mensaje que se añade al motivo cuando una política devuelve `deny` o `instruct`. Úsalo para dar a Claude orientación práctica sin modificar la política en sí.
|
|
130
|
+
|
|
131
|
+
Funciona con cualquier tipo de política: integrada, personalizada (`custom/`), convención de proyecto (`.failproofai-project/`) o convención de usuario (`.failproofai-user/`).
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"policyParams": {
|
|
136
|
+
"block-force-push": {
|
|
137
|
+
"hint": "Try creating a fresh branch instead."
|
|
138
|
+
},
|
|
139
|
+
"block-sudo": {
|
|
140
|
+
"allowPatterns": ["sudo apt-get"],
|
|
141
|
+
"hint": "Use apt-get directly without sudo."
|
|
142
|
+
},
|
|
143
|
+
"custom/my-policy": {
|
|
144
|
+
"hint": "Ask the user for approval first."
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Cuando `block-force-push` deniega, Claude ve: *"Force-pushing is blocked. Try creating a fresh branch instead."*
|
|
151
|
+
|
|
152
|
+
Los valores que no son cadenas de texto y las cadenas vacías se ignoran silenciosamente. Si `hint` no está definido, el comportamiento no cambia (compatible con versiones anteriores).
|
|
153
|
+
|
|
154
|
+
### `customPoliciesPath`
|
|
155
|
+
|
|
156
|
+
Tipo: `string` (ruta absoluta)
|
|
157
|
+
|
|
158
|
+
Ruta a un archivo JavaScript que contiene políticas de hook personalizadas. Este valor lo establece automáticamente `failproofai policies --install --custom <path>` (la ruta se resuelve a absoluta antes de almacenarse).
|
|
159
|
+
|
|
160
|
+
El archivo se carga de nuevo en cada evento de hook; no hay caché. Consulta [Políticas personalizadas](/es/custom-policies) para más detalles sobre cómo crearlas.
|
|
161
|
+
|
|
162
|
+
### Políticas basadas en convención
|
|
163
|
+
|
|
164
|
+
Además del `customPoliciesPath` explícito, failproofai descubre y carga automáticamente archivos de políticas desde los directorios `.failproofai/policies/`:
|
|
165
|
+
|
|
166
|
+
| Nivel | Directorio | Ámbito |
|
|
167
|
+
|-------|-----------|--------|
|
|
168
|
+
| Proyecto | `.failproofai/policies/` | Compartido con el equipo mediante control de versiones |
|
|
169
|
+
| Usuario | `~/.failproofai/policies/custom-policies/` | Personal, se aplica a todos los proyectos |
|
|
170
|
+
|
|
171
|
+
<Note>
|
|
172
|
+
El directorio de nivel de usuario se movió un nivel más abajo en la
|
|
173
|
+
reorganización del directorio home. Los archivos que quedaron en la antigua ruta `~/.failproofai/policies/` se mueven
|
|
174
|
+
automáticamente a `custom-policies/` la primera vez que ejecutas cualquier comando `failproofai`
|
|
175
|
+
después de actualizar, y el comando te indica qué archivos movió.
|
|
176
|
+
</Note>
|
|
177
|
+
|
|
178
|
+
**Coincidencia de archivos:** Solo se cargan los archivos que coincidan con `*policies.{js,mjs,ts}` (por ejemplo, `security-policies.mjs`, `workflow-policies.js`). Los demás archivos del directorio se ignoran.
|
|
179
|
+
|
|
180
|
+
**Sin configuración necesaria:** Las políticas de convención no requieren ninguna entrada en `policies-config.json`. Solo coloca los archivos en el directorio y se detectarán en el siguiente evento de hook.
|
|
181
|
+
|
|
182
|
+
**Carga por unión:** Se analizan tanto el directorio de convención del proyecto como el del usuario. Se cargan todos los archivos coincidentes de ambos niveles (a diferencia de `customPoliciesPath`, que usa el principio de primer ámbito ganador).
|
|
183
|
+
|
|
184
|
+
Consulta [Políticas personalizadas](/es/custom-policies) para más detalles y ejemplos.
|
|
185
|
+
|
|
186
|
+
### `llm`
|
|
187
|
+
|
|
188
|
+
Tipo: `object` (opcional)
|
|
189
|
+
|
|
190
|
+
Configuración del cliente LLM para políticas que realizan llamadas a IA. No es necesario en la mayoría de los casos.
|
|
191
|
+
|
|
192
|
+
```json
|
|
193
|
+
{
|
|
194
|
+
"llm": {
|
|
195
|
+
"model": "claude-sonnet-4-6",
|
|
196
|
+
"apiKey": "sk-ant-..."
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Gestión de la configuración desde la CLI
|
|
204
|
+
|
|
205
|
+
Los comandos `policies --install` y `policies --uninstall` escriben en el archivo de configuración de hooks de tu CLI de agente (los puntos de entrada del hook), mientras que `policies-config.json` es el archivo que gestionas directamente. Los dos son independientes:
|
|
206
|
+
|
|
207
|
+
- **Configuración de la CLI del agente** — indica al agente que llame a `failproofai --hook <event>` en cada uso de herramienta:
|
|
208
|
+
- **Claude Code**: `~/.claude/settings.json` (usuario), `<cwd>/.claude/settings.json` (proyecto), `<cwd>/.claude/settings.local.json` (local)
|
|
209
|
+
- **OpenAI Codex**: `~/.codex/hooks.json` (usuario), `<cwd>/.codex/hooks.json` (proyecto) — Codex no tiene ámbito `local`
|
|
210
|
+
- **GitHub Copilot CLI _(beta)_**: `~/.copilot/hooks/failproofai.json` (usuario), `<cwd>/.github/hooks/failproofai.json` (proyecto) — Copilot no tiene ámbito `local`. Las entradas de hook usan los campos de comando `bash`/`powershell` con clave de SO de Copilot con `timeoutSec`; el archivo lleva un marcador de nivel superior `version: 1`. La compatibilidad con Copilot CLI es **beta** mientras verificamos el esquema de registros `events.jsonl` (que la documentación pública no especifica) con más sesiones del mundo real. **El modo de agente de VS Code Copilot Chat (Preview)** lee las configuraciones de hook desde `.github/hooks/*.json`, `~/.copilot/hooks/*.json` y `~/.claude/settings.json` (gobernado por la configuración `chat.hookFilesLocations`) usando el mismo contrato Claude `{hookSpecificOutput:{permissionDecision:"deny",…}}` — exactamente las rutas que esta integración `copilot` y la integración `claude` (`~/.claude/settings.json`) ya escriben, por lo que `failproofai policies --install --cli copilot` (o `--cli claude`) **ya aplica en el modo de agente de VS Code** sin necesidad de una integración `vscode` separada (confirmado en vivo desde los registros de descubrimiento de VS Code).
|
|
211
|
+
- **Cursor Agent _(beta)_**: `~/.cursor/hooks.json` (usuario), `<cwd>/.cursor/hooks.json` (proyecto) — Cursor no tiene ámbito `local`. Las entradas de hook usan la forma Claude `{type, command, timeout}` (sin división `bash`/`powershell`), pero almacenadas bajo claves de eventos en camelCase (`preToolUse`, `beforeSubmitPrompt`, …) en un array plano según el [esquema de hooks de Cursor](https://cursor.com/docs/hooks); el archivo lleva un marcador de nivel superior `version: 1`. El manejador canonicaliza camelCase → PascalCase mediante `CURSOR_EVENT_MAP` para que las políticas integradas existentes se disparen sin cambios. La compatibilidad con Cursor Agent es **beta** mientras verificamos el formato de transcripción en disco de Cursor (no especificado en la documentación pública) con más instalaciones del mundo real.
|
|
212
|
+
- **OpenCode _(beta)_**: `~/.config/opencode/opencode.json` + `~/.config/opencode/plugins/failproofai.mjs` (usuario), `<cwd>/.opencode/opencode.json` + `<cwd>/.opencode/plugins/failproofai.mjs` (proyecto) — OpenCode no tiene ámbito `local`. A diferencia de las otras cinco CLIs, OpenCode **no tiene sistema de hooks de comandos externos**: carga plugins JS/TS en proceso registrados explícitamente mediante el array `plugin: []` en `opencode.json` (la autodescubrimiento desde `.opencode/plugins/` **no** es como cargan los plugins en opencode v1.14.33). La instalación coloca un pequeño shim de plugin generado que llama al binario de failproofai como subproceso y traduce la respuesta JSON con forma Claude del binario de vuelta a semántica de plugins: `throw new Error()` para denegación de evento de herramienta (cancela la llamada a la herramienta), `client.session.prompt(...)` para instruct Y para denegación de `Stop` / `SubagentStop` (envía el motivo de denegación como el siguiente mensaje de usuario — el único canal de reintento forzado ya que `session.idle` es solo de notificación y lanzar una excepción desde él no tiene efecto), y no-op para allow. El shim canonicaliza tanto los nombres de herramientas (minúsculas → PascalCase mediante `OPENCODE_TOOL_MAP`) como las claves de argumento de entrada de herramientas (camelCase → snake_case mediante `OPENCODE_TOOL_INPUT_MAP` para `Read` / `Write` / `Edit`, por ejemplo `filePath` → `file_path`, `oldString` → `old_string`) antes de reenviar al binario, por lo que las políticas integradas de comprobación de rutas como `block-read-outside-cwd`, `block-env-files` y `block-secrets-write` se disparan sin cambios en las llamadas a herramientas de OpenCode. Las sesiones viven en la base de datos SQLite de opencode en `~/.local/share/opencode/opencode.db`; el visor de sesiones del panel las lee mediante `opencode db --format json` y `opencode export <id>`. La compatibilidad con OpenCode es **beta** mientras verificamos el comportamiento en distintas versiones y con más sesiones del mundo real. Consulta la [documentación de plugins de OpenCode](https://opencode.ai/docs/plugins/).
|
|
213
|
+
- **Pi _(beta)_**: `~/.pi/agent/settings.json` (usuario), `<cwd>/.pi/settings.json` (proyecto) — Pi no tiene ámbito `local`. Pi carga paquetes de extensión TypeScript al inicio; el archivo de configuración es un array plano de cadenas `{"packages": ["./relative/path", …]}`. failproofai escribe una única entrada en el array de paquetes que apunta a su directorio `pi-extension/` incluido. La extensión se suscribe internamente a los eventos `tool_call` / `user_bash` / `input` / `session_start` de Pi y llama a `failproofai --hook <Event> --cli pi`; el manejador canonicaliza underscore_lower_snake_case → PascalCase mediante `PI_EVENT_MAP` para que las políticas integradas existentes se disparen sin cambios. Los argumentos de entrada de herramientas también se canonicalizan mediante `PI_TOOL_INPUT_MAP` (los eventos Read / Write / Edit de Pi entregan `path` en lugar de `file_path`; mapear la clave de nivel superior permite que se disparen `block-env-files` y `block-secrets-write` — `block-read-outside-cwd` ya tenía un fallback para `path`). La compatibilidad con Pi es **beta** mientras la API de extensión de Pi y el esquema de registro de sesiones se estabilizan.
|
|
214
|
+
- **Hermes (hermes-agent)**: `~/.hermes/config.yaml` (**solo ámbito de usuario** — Hermes no tiene configuración de proyecto/local). Hermes es una **pasarela** de Slack/Telegram, por lo que una sola instalación intercepta las llamadas a herramientas de cada plataforma (Slack/Telegram/cli/cron) **y** subagentes internos. Las entradas de hook son un par `{command, timeout}` (tiempo de espera en **segundos**) bajo un mapa `hooks:` con clave de los eventos snake_case de Hermes (`pre_tool_call` / `post_tool_call` / `on_session_start` / `on_session_end` / `subagent_stop`); el manejador canonicaliza los eventos mediante `HERMES_EVENT_MAP` y los nombres de herramientas mediante `HERMES_TOOL_MAP` para que las políticas integradas se disparen sin cambios. La configuración se edita mediante una ida y vuelta de `Document` YAML que preserva los comentarios para que las otras configuraciones del operador sobrevivan, y la instalación establece `hooks_auto_accept: true` para que la pasarela sin cabeza (sin TTY) ejecute los hooks sin un aviso de consentimiento. El evaluador emite el contrato stdout `{"decision":"block","reason"}` de Hermes (Hermes ignora los códigos de salida). **Limitaciones:** Hermes no tiene evento `Stop` al final del turno, por lo que las políticas integradas `require-*-before-stop` nunca se disparan para él (no aplicable, no es un error); `instruct` degrada a permitir con nota registrada (sin canal de contexto adicional); y la redacción de secretos en la salida (`sanitize-*`) no puede reescribir la salida de la herramienta a través del contrato de hook de shell. Hermes es **también** una fuente de **auditoría** sin conexión — el panel lee sus sesiones de pasarela directamente desde `~/.hermes/state.db`.
|
|
215
|
+
- **OpenClaw (openclaw gateway)**: `~/.openclaw/openclaw.json` (**solo ámbito de usuario** — OpenClaw no tiene configuración de proyecto/local). Al igual que Hermes, OpenClaw es una **pasarela** multicanal autoalojada, por lo que una sola instalación intercepta las llamadas a herramientas de cada canal y sus subagentes internos. La aplicación se ejecuta a través de los **hooks de plugin en proceso** de OpenClaw (sus hooks internos basados en archivos son solo de observación y no pueden bloquear), por lo que — al igual que OpenCode/Pi — failproofai incluye un paquete estático `openclaw-plugin/` que genera el binario de failproofai de forma asíncrona y traduce el veredicto. La instalación registra el directorio de plugin incluido en `plugins.load.paths[]` de `openclaw.json` y lo habilita bajo `plugins.entries.failproofai` (con `hooks.allowConversationAccess: true`, necesario para los hooks de conversación sin procesar). El evaluador emite un veredicto plano `{permission, reason}` y el shim lo mapea a la forma de retorno nativa de cada hook: `before_tool_call → {block:true, blockReason}` (**PreToolUse**), `before_agent_run → {outcome:"block", reason}` (**UserPromptSubmit**), y `before_agent_finalize → {action:"revise", reason}` (**Stop** — una compuerta real al final del turno, por lo que las políticas integradas `require-*-before-stop` **se aplican** en OpenClaw, a diferencia de Hermes). Los eventos y los nombres de herramientas se canonicalizan en el lado del binario mediante `OPENCLAW_EVENT_MAP` / `OPENCLAW_TOOL_MAP` (`exec→Bash`, `read→Read`, …) para que las políticas integradas se disparen sin cambios; el shim falla de forma abierta ante cualquier error de ejecución/análisis/tiempo de espera. OpenClaw es **también** una fuente de **auditoría** sin conexión — el panel lee sus sesiones JSONL en `~/.openclaw/agents/<agentId>/sessions/<uuid>.jsonl`.
|
|
216
|
+
- **Factory Droid (`droid`)**: `~/.factory/hooks.json` (usuario), `<cwd>/.factory/hooks.json` (proyecto) — Factory no tiene ámbito `local`. droid incluye un sistema de hooks de comandos externos al estilo Claude, pero con dos particularidades verificadas en vivo con droid v0.171.0: (1) los nombres de eventos se encuentran en el **nivel superior** de `hooks.json` — **no hay envoltorio `"hooks"`** (droid lo rechaza); los eventos de herramientas (`PreToolUse`/`PostToolUse`) llevan `"matcher": "*"`, los eventos que no son de herramientas lo omiten. (2) La denegación se controla por el **código de salida 2 + stderr** del hook, no por una decisión JSON — la rama `factory` del evaluador devuelve salida 2 para eventos de herramienta/prompt y `{decision:"block", reason}` solo en el evento `Stop` al final del turno (el único canal de reintento forzado de droid). Los eventos ya están en PascalCase (sin mapa de eventos) y el payload es snake_case de Claude; solo los nombres de herramientas se canonicalizan mediante `FACTORY_TOOL_MAP` (`Execute→Bash`, `Create→Write`, `FetchUrl→WebFetch`, …). Factory es **también** una fuente de **auditoría** sin conexión — el panel lee sus sesiones JSONL en disco en `~/.factory/sessions/<encoded-cwd>/<sessionId>.jsonl`.
|
|
217
|
+
- **Devin CLI (`devin`, Cognition)**: `~/.config/devin/config.json` (usuario), `<cwd>/.devin/config.json` (proyecto) — Devin no tiene ámbito `local`. Devin es un **clon puro de Claude** verificado en vivo con devin v3000.1.27: usa el esquema estándar de envoltorio `"hooks"` de Claude (las escrituras preservan la combinación para que las otras claves del archivo de configuración — `org_id`, `theme_mode`, … — sobrevivan), nombres de eventos ya en PascalCase (sin mapa de eventos, sin rama del manejador) y un payload stdin en snake_case de Claude (sin normalización). La rama `devin` del evaluador deniega con JSON `{"decision":"block","reason"}` en stdout con salida 0 para **cada** evento (verificado — el bloqueo anuló `--permission-mode dangerous`); en el evento `Stop` al final del turno, el motivo lleva el texto de reintento forzado MANDATORY-ACTION para que las políticas integradas `require-*-before-stop` se apliquen. Solo los nombres de herramientas se canonicalizan mediante `DEVIN_TOOL_MAP` (`exec→Bash`; `tool_input.command` ya es canónico). Devin es **también** una fuente de **auditoría** sin conexión — el panel lee sus sesiones SQLite en `~/.local/share/devin/cli/sessions.db` (cada fila de `sessions` lleva un `working_directory` real, por lo que las sesiones se agrupan por cwd del proyecto como Claude).
|
|
218
|
+
- **Antigravity CLI (`agy`)**: `~/.gemini/config/hooks.json` (usuario), `<cwd>/.agents/hooks.json` (proyecto) — Antigravity no tiene ámbito `local`. A diferencia de Factory/Devin, Antigravity tiene su **propio** contrato (no es un clon de Claude), verificado en vivo con agy v1.1.2. `hooks.json` usa un esquema de **hook con nombre**: la clave de nivel superior es un *nombre* de hook (`"failproofai"`) cuyo valor es un mapa evento→manejadores — los eventos de herramientas (`PreToolUse`/`PostToolUse`) envuelven los manejadores en `{matcher:"*", hooks:[…]}`, mientras que `PreInvocation`/`Stop` son arrays de manejadores **planos** (otros hooks con nombre se preservan). El payload stdin es **protojson en camelCase** (`toolCall:{name,args}`, `conversationId`, `workspacePaths`, `transcriptPath`) — failproofai lo normaliza a snake_case antes de ejecutar las políticas, y mapea los args en PascalCase de `run_command` (`CommandLine`/`Cwd`) mediante `ANTIGRAVITY_TOOL_INPUT_MAP`. La rama `antigravity` del evaluador usa las **propias** formas de respuesta de Antigravity: `{decision:"deny", reason}` bloquea una herramienta/prompt (salida 0), `{decision:"continue", reason}` en el evento `Stop` al final del turno vuelve a entrar en el bucle (por lo que las políticas integradas `require-*-before-stop` se aplican), y `{injectSteps:[{ephemeralMessage}]}` inyecta una instrucción en `PreInvocation` (→ `UserPromptSubmit`). Los nombres de herramientas se canonicalizan mediante `ANTIGRAVITY_TOOL_MAP` (`run_command→Bash`, `view_file→Read`, …). Antigravity es **también** una fuente de **auditoría** sin conexión — el panel lee sus transcripciones JSONL planas en `~/.gemini/antigravity-cli/brain/<conversationId>/.system_generated/logs/transcript_full.jsonl` (índice de conversaciones en `conversation_summaries.db`).
|
|
219
|
+
- **Goose (nombre en clave goose, Block)**: `~/.agents/plugins/failproofai/hooks/hooks.json` (usuario), `<cwd>/.agents/plugins/failproofai/hooks/hooks.json` (proyecto) — Goose no tiene ámbito `local`. La aplicación usa el sistema de **hooks** de Goose, la especificación transversal de agentes **Open Plugins**: el instalador simplemente coloca el directorio del plugin `failproofai` y Goose lo autodescubre al inicio (registrándolo automáticamente en `~/.config/goose/config.yaml`). El `hooks.json` usa un esquema de Open Plugins **con** un envoltorio `"hooks"` de nivel superior, y el matcher se **omite** en cada evento — un `"*"` simple es una expresión regular inválida que no coincide con nada (verificado en vivo con goose v1.43.0). Los nombres de eventos ya están en PascalCase (sin mapa de eventos); el payload stdin usa `event`/`working_dir`, que el manejador normaliza a `hook_event_name`/`cwd`. La rama `goose` del evaluador deniega con JSON `{"decision":"block","reason"}` en stdout con salida 0, respetado en el evento **`PreToolUse`** únicamente (incluido en goose ≥ v1.37.0) — que se dispara para la herramienta de shell **y dentro de subagentes delegados**, por lo que es el único punto de denegación suficiente; cualquier otro error de hook falla de forma **abierta**. Goose **no tiene evento `Stop`**, por lo que las políticas integradas `require-*-before-stop` no aplican (como con Hermes). Los nombres de herramientas se canonicalizan mediante `GOOSE_TOOL_MAP` (`shell→Bash`, `write→Write`, `todo__todo_write→TodoWrite`, …) y las claves de ruta mediante `GOOSE_TOOL_INPUT_MAP` (`path`/`source` → `file_path`). Goose es **también** una fuente de **auditoría** sin conexión — el panel lee sus sesiones SQLite en `~/.local/share/goose/sessions/sessions.db` (cada fila de `sessions` lleva un `working_dir` real, por lo que las sesiones se agrupan por cwd del proyecto como Devin; las ejecuciones rápidas con `--no-session` se filtran).
|
|
220
|
+
- **`policies-config.json`** — indica a failproofai qué políticas evaluar y con qué parámetros (compartido entre todas las CLIs de agente)
|
|
221
|
+
|
|
222
|
+
Pasa `--cli claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose` para apuntar a un agente específico (separados por espacios o repetidos para cualquier subconjunto):
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
failproofai policies --install --cli codex --scope project
|
|
226
|
+
failproofai policies --install --cli copilot --scope project
|
|
227
|
+
failproofai policies --install --cli cursor --scope project
|
|
228
|
+
failproofai policies --install --cli opencode --scope project
|
|
229
|
+
failproofai policies --install --cli pi --scope project
|
|
230
|
+
failproofai policies --install --cli hermes --scope user
|
|
231
|
+
failproofai policies --install --cli openclaw --scope user
|
|
232
|
+
failproofai policies --install --cli factory --scope project
|
|
233
|
+
failproofai policies --install --cli devin --scope project
|
|
234
|
+
failproofai policies --install --cli antigravity --scope project
|
|
235
|
+
failproofai policies --install --cli goose --scope project
|
|
236
|
+
failproofai policies --install --cli claude codex copilot cursor opencode pi hermes openclaw factory devin antigravity goose
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Cuando se omite `--cli`, `failproofai` detecta qué CLIs de agente están instaladas (`which claude` / `which codex` / `which copilot` / `which cursor-agent` / `which opencode` / `which pi` / `which hermes` / `which openclaw` / `which droid` / `which devin` / `which agy` / `which goose`):
|
|
240
|
+
|
|
241
|
+
- **Una CLI detectada** — la selecciona automáticamente sin preguntar.
|
|
242
|
+
- **Varias CLIs detectadas** en una terminal interactiva — muestra un prompt de selección única con teclas de flecha agrupado en una sección `Detected (N)` (con una fila agregada `Install for all N detected` + cada CLI detectada individualmente) y una sección `Not installed (M) · install hooks ahead of time` que lista cada CLI compatible no detectada como opción de instalación anticipada (↑↓ para moverse, Enter para seleccionar, ^C para salir). El flujo de desinstalación solo muestra la sección Detected.
|
|
243
|
+
- **Varias CLIs detectadas** en una ejecución no interactiva (CI, sin TTY) — instala para todas las CLIs detectadas sin preguntar.
|
|
244
|
+
- **Ninguna detectada** — recurre a `claude`, con una advertencia de que no se encontró ningún binario de agente en PATH; el comando de hook se escribe igualmente para que se active en cuanto instales uno.
|
|
245
|
+
|
|
246
|
+
Puedes editar `policies-config.json` directamente en cualquier momento; los cambios surten efecto inmediatamente en el siguiente evento de hook sin necesidad de reiniciar.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Ejemplo: configuración a nivel de proyecto con valores predeterminados del equipo
|
|
251
|
+
|
|
252
|
+
Confirma `.failproofai/policies-config.json` en tu repositorio:
|
|
253
|
+
|
|
254
|
+
```json
|
|
255
|
+
{
|
|
256
|
+
"enabledPolicies": [
|
|
257
|
+
"block-sudo",
|
|
258
|
+
"block-rm-rf",
|
|
259
|
+
"block-push-master",
|
|
260
|
+
"sanitize-api-keys",
|
|
261
|
+
"block-env-files"
|
|
262
|
+
],
|
|
263
|
+
"policyParams": {
|
|
264
|
+
"block-push-master": {
|
|
265
|
+
"protectedBranches": ["main", "release", "hotfix"]
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Cada desarrollador puede entonces crear `.failproofai/policies-config.local.json` (ignorado por git) para sus anulaciones personales sin afectar a sus compañeros de equipo.
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Políticas Personalizadas
|
|
3
|
+
description: "Escribe tus propias políticas en JavaScript: aplica convenciones del proyecto, previene la deriva, detecta fallos e integra con sistemas externos"
|
|
4
|
+
icon: code
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Las políticas personalizadas te permiten escribir reglas para cualquier comportamiento del agente: aplicar convenciones del proyecto, prevenir la deriva, bloquear operaciones destructivas, detectar agentes bloqueados o integrarte con Slack, flujos de aprobación y más. Utilizan el mismo sistema de eventos de hooks y las decisiones `allow`, `deny`, `instruct` que las políticas integradas.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Ejemplo rápido
|
|
12
|
+
|
|
13
|
+
```js
|
|
14
|
+
// my-policies.js
|
|
15
|
+
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
16
|
+
|
|
17
|
+
customPolicies.add({
|
|
18
|
+
name: "no-production-writes",
|
|
19
|
+
description: "Block writes to paths containing 'production'",
|
|
20
|
+
match: { events: ["PreToolUse"] },
|
|
21
|
+
fn: async (ctx) => {
|
|
22
|
+
if (ctx.toolName !== "Write" && ctx.toolName !== "Edit") return allow();
|
|
23
|
+
const path = ctx.toolInput?.file_path ?? "";
|
|
24
|
+
if (path.includes("production")) {
|
|
25
|
+
return deny("Writes to production paths are blocked");
|
|
26
|
+
}
|
|
27
|
+
return allow();
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Instálala:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
failproofai policies --install --custom ./my-policies.js
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Dos formas de cargar políticas personalizadas
|
|
41
|
+
|
|
42
|
+
### Opción 1: Por convención (recomendada)
|
|
43
|
+
|
|
44
|
+
Coloca archivos `*policies.{js,mjs,ts}` en `.failproofai/policies/` y se cargarán automáticamente, sin necesidad de flags ni cambios de configuración. Funciona como los git hooks: deposita el archivo y listo.
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
# A nivel de proyecto — incluido en git, compartido con el equipo
|
|
48
|
+
.failproofai/policies/security-policies.mjs
|
|
49
|
+
.failproofai/policies/workflow-policies.mjs
|
|
50
|
+
|
|
51
|
+
# A nivel de usuario — personal, aplica a todos los proyectos
|
|
52
|
+
~/.failproofai/policies/my-policies.mjs
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Cómo funciona:**
|
|
56
|
+
- Se analizan tanto el directorio del proyecto como el del usuario (unión; no gana el primero en el ámbito)
|
|
57
|
+
- Los archivos se cargan en orden alfabético dentro de cada directorio. Usa el prefijo `01-`, `02-` para controlar el orden
|
|
58
|
+
- Solo se cargan los archivos que coincidan con `*policies.{js,mjs,ts}`; los demás se ignoran
|
|
59
|
+
- Cada archivo se carga de forma independiente (fail-open por archivo)
|
|
60
|
+
- Funciona junto con `--custom` explícito y las políticas integradas
|
|
61
|
+
|
|
62
|
+
<Tip>
|
|
63
|
+
Las políticas por convención son la forma más sencilla de establecer un estándar de calidad para tu organización. Incluye `.failproofai/policies/` en git y cada miembro del equipo obtendrá las mismas reglas automáticamente, sin configuración individual. A medida que el equipo descubra nuevos modos de fallo, añade una política y envíala. Con el tiempo, estas se convierten en un estándar de calidad vivo que mejora con cada contribución.
|
|
64
|
+
</Tip>
|
|
65
|
+
|
|
66
|
+
### Opción 2: Ruta de archivo explícita
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Instalar con un archivo de políticas personalizado
|
|
70
|
+
failproofai policies --install --custom ./my-policies.js
|
|
71
|
+
|
|
72
|
+
# Reemplazar las rutas de políticas personalizadas
|
|
73
|
+
failproofai policies --install --custom ./new-policies.js
|
|
74
|
+
|
|
75
|
+
# Configurar múltiples archivos explícitos (cargados en el orden de los flags)
|
|
76
|
+
failproofai policies --install --custom ./security.js --custom ./workflow.js
|
|
77
|
+
|
|
78
|
+
# Eliminar todas las rutas de políticas personalizadas explícitas de la configuración
|
|
79
|
+
failproofai policies --uninstall --custom
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Las rutas absolutas resueltas se almacenan en `policies-config.json` como `customPoliciesPaths`. Repite `--custom` para configurar múltiples archivos. Las configuraciones existentes que usen el campo heredado `customPoliciesPath` siguen funcionando. Los archivos se cargan de nuevo en cada evento de hook; no hay caché entre eventos.
|
|
83
|
+
|
|
84
|
+
Cada política registrada aparece con su propio interruptor en el panel. Desactivar una política registra su ID calificado por fuente en `disabledCustomPolicies`; el archivo y sus demás políticas continúan cargándose, mientras que la política desactivada se excluye antes de la coincidencia de eventos. Los nombres de políticas duplicados entre archivos tienen interruptores independientes.
|
|
85
|
+
|
|
86
|
+
### Usar ambas a la vez
|
|
87
|
+
|
|
88
|
+
Las políticas por convención y los archivos `--custom` explícitos pueden coexistir. Orden de carga:
|
|
89
|
+
|
|
90
|
+
1. Archivos `customPoliciesPaths` explícitos (en el orden configurado)
|
|
91
|
+
2. Archivos de convención del proyecto (`{cwd}/.failproofai/policies/`, orden alfabético)
|
|
92
|
+
3. Archivos de convención del usuario (`~/.failproofai/policies/`, orden alfabético)
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## API
|
|
97
|
+
|
|
98
|
+
### Importación
|
|
99
|
+
|
|
100
|
+
```js
|
|
101
|
+
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### `customPolicies.add(hook)`
|
|
105
|
+
|
|
106
|
+
Registra una política. Llámalo tantas veces como sea necesario para múltiples políticas en el mismo archivo.
|
|
107
|
+
|
|
108
|
+
```ts
|
|
109
|
+
customPolicies.add({
|
|
110
|
+
name: string; // requerido - identificador único
|
|
111
|
+
description?: string; // se muestra en la salida de `failproofai policies`
|
|
112
|
+
match?: { events?: HookEventType[] }; // filtrar por tipo de evento; omitir para coincidir con todos
|
|
113
|
+
fn: (ctx: PolicyContext) => PolicyResult | Promise<PolicyResult>;
|
|
114
|
+
});
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Helpers de decisión
|
|
118
|
+
|
|
119
|
+
| Función | Efecto | Úsalo cuando |
|
|
120
|
+
|----------|--------|----------|
|
|
121
|
+
| `allow()` | Permite la operación en silencio | La acción es segura y no se necesita mensaje |
|
|
122
|
+
| `deny(message)` | Bloquea la operación | El agente no debería realizar esta acción |
|
|
123
|
+
| `instruct(message)` | Añade contexto sin bloquear | Proporciona contexto adicional al agente para que no se desvíe |
|
|
124
|
+
|
|
125
|
+
`deny(message)` — el mensaje aparece para Claude con el prefijo `"Blocked by failproofai:"`. Un único `deny` cortocircuita toda evaluación posterior.
|
|
126
|
+
|
|
127
|
+
`instruct(message)` — el mensaje se añade al contexto de Claude para la llamada de herramienta actual. Todos los mensajes `instruct` se acumulan y se entregan juntos.
|
|
128
|
+
|
|
129
|
+
<Tip>
|
|
130
|
+
Puedes añadir orientación adicional a cualquier mensaje `deny` o `instruct` incluyendo un campo `hint` en `policyParams`, sin necesidad de cambiar el código. Esto funciona también para políticas personalizadas (`custom/`), de convención del proyecto (`.failproofai-project/`) y de convención del usuario (`.failproofai-user/`). Consulta [Configuración → hint](/es/configuration#hint-cross-cutting) para más detalles.
|
|
131
|
+
</Tip>
|
|
132
|
+
|
|
133
|
+
### Mensajes allow informativos
|
|
134
|
+
|
|
135
|
+
`allow(message)` permite la operación **y** envía un mensaje informativo a Claude. El mensaje se entrega como `additionalContext` en la respuesta stdout del handler del hook, el mismo mecanismo que usa `instruct`, aunque semánticamente diferente: es una actualización de estado, no una advertencia.
|
|
136
|
+
|
|
137
|
+
| Función | Efecto | Úsalo cuando |
|
|
138
|
+
|----------|--------|----------|
|
|
139
|
+
| `allow(message)` | Permite y envía contexto a Claude | Confirmar que una comprobación pasó o explicar por qué se omitió |
|
|
140
|
+
|
|
141
|
+
Casos de uso:
|
|
142
|
+
- **Confirmaciones de estado:** `allow("All CI checks passed.")` — indica a Claude que todo está en orden
|
|
143
|
+
- **Explicaciones de fail-open:** `allow("GitHub CLI not installed, skipping CI check.")` — indica a Claude por qué se omitió una comprobación para que tenga contexto completo
|
|
144
|
+
- **Acumulación de múltiples mensajes:** si varias políticas devuelven `allow(message)`, todos los mensajes se unen con saltos de línea y se entregan juntos
|
|
145
|
+
|
|
146
|
+
```js
|
|
147
|
+
customPolicies.add({
|
|
148
|
+
name: "confirm-branch-status",
|
|
149
|
+
match: { events: ["Stop"] },
|
|
150
|
+
fn: async (ctx) => {
|
|
151
|
+
const cwd = ctx.session?.cwd;
|
|
152
|
+
if (!cwd) return allow("No working directory, skipping branch check.");
|
|
153
|
+
|
|
154
|
+
// ... check branch status ...
|
|
155
|
+
if (allPushed) {
|
|
156
|
+
return allow("Branch is up to date with remote.");
|
|
157
|
+
}
|
|
158
|
+
return deny("Unpushed changes detected.");
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Campos de `PolicyContext`
|
|
164
|
+
|
|
165
|
+
| Campo | Tipo | Descripción |
|
|
166
|
+
|-------|------|-------------|
|
|
167
|
+
| `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
|
|
168
|
+
| `toolName` | `string \| undefined` | La herramienta que se está invocando (p. ej., `"Bash"`, `"Write"`, `"Read"`) |
|
|
169
|
+
| `toolInput` | `Record<string, unknown> \| undefined` | Los parámetros de entrada de la herramienta |
|
|
170
|
+
| `payload` | `Record<string, unknown>` | Payload completo del evento sin procesar de Claude Code |
|
|
171
|
+
| `session` | `SessionMetadata \| undefined` | Contexto de sesión (ver más abajo) |
|
|
172
|
+
|
|
173
|
+
### Campos de `SessionMetadata`
|
|
174
|
+
|
|
175
|
+
| Campo | Tipo | Descripción |
|
|
176
|
+
|-------|------|-------------|
|
|
177
|
+
| `sessionId` | `string` | Identificador de sesión de Claude Code |
|
|
178
|
+
| `cwd` | `string` | Directorio de trabajo de la sesión de Claude Code |
|
|
179
|
+
| `transcriptPath` | `string` | Ruta al archivo de transcripción JSONL de la sesión |
|
|
180
|
+
|
|
181
|
+
### Tipos de eventos
|
|
182
|
+
|
|
183
|
+
| Evento | Cuándo se activa | Contenido de `toolInput` |
|
|
184
|
+
|-------|--------------|----------------------|
|
|
185
|
+
| `PreToolUse` | Antes de que Claude ejecute una herramienta | La entrada de la herramienta (p. ej., `{ command: "..." }` para Bash) |
|
|
186
|
+
| `PostToolUse` | Tras completarse una herramienta | La entrada de la herramienta + `tool_result` (la salida) |
|
|
187
|
+
| `Notification` | Cuando Claude envía una notificación | `{ message: "...", notification_type: "idle" \| "permission_prompt" \| ... }` — los hooks siempre deben devolver `allow()`, no pueden bloquear notificaciones |
|
|
188
|
+
| `Stop` | Cuando finaliza la sesión de Claude | Vacío |
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Orden de evaluación
|
|
193
|
+
|
|
194
|
+
Las políticas se evalúan en este orden:
|
|
195
|
+
|
|
196
|
+
1. Políticas integradas (en orden de definición)
|
|
197
|
+
2. Políticas personalizadas explícitas de `customPoliciesPath` (en orden de `.add()`)
|
|
198
|
+
3. Políticas de convención del proyecto en `.failproofai/policies/` (archivos en orden alfabético, orden de `.add()` dentro de cada uno)
|
|
199
|
+
4. Políticas de convención del usuario en `~/.failproofai/policies/` (archivos en orden alfabético, orden de `.add()` dentro de cada uno)
|
|
200
|
+
|
|
201
|
+
<Note>
|
|
202
|
+
El primer `deny` cortocircuita todas las políticas siguientes. Todos los mensajes `instruct` se acumulan y se entregan juntos.
|
|
203
|
+
</Note>
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Importaciones transitivas
|
|
208
|
+
|
|
209
|
+
Los archivos de políticas personalizadas pueden importar módulos locales mediante rutas relativas:
|
|
210
|
+
|
|
211
|
+
```js
|
|
212
|
+
// my-policies.js
|
|
213
|
+
import { isBlockedPath } from "./utils.js";
|
|
214
|
+
import { checkApproval } from "./approval-client.js";
|
|
215
|
+
|
|
216
|
+
customPolicies.add({
|
|
217
|
+
name: "approval-gate",
|
|
218
|
+
fn: async (ctx) => {
|
|
219
|
+
if (ctx.toolName !== "Bash") return allow();
|
|
220
|
+
const approved = await checkApproval(ctx.toolInput?.command, ctx.session?.sessionId);
|
|
221
|
+
return approved ? allow() : deny("Approval required for this command");
|
|
222
|
+
},
|
|
223
|
+
});
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Se resuelven todas las importaciones relativas accesibles desde el archivo de entrada. Esto se implementa reescribiendo las importaciones `from "failproofai"` a la ruta real de dist y creando archivos `.mjs` temporales para garantizar la compatibilidad con ESM.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Filtrado por tipo de evento
|
|
231
|
+
|
|
232
|
+
Usa `match.events` para limitar cuándo se activa una política:
|
|
233
|
+
|
|
234
|
+
```js
|
|
235
|
+
customPolicies.add({
|
|
236
|
+
name: "require-summary-on-stop",
|
|
237
|
+
match: { events: ["Stop"] },
|
|
238
|
+
fn: async (ctx) => {
|
|
239
|
+
// Solo se activa cuando finaliza la sesión
|
|
240
|
+
// ctx.session.transcriptPath contiene el registro completo de la sesión
|
|
241
|
+
return allow();
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Omite `match` por completo para activarla en todos los tipos de eventos.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Manejo de errores y modos de fallo
|
|
251
|
+
|
|
252
|
+
Las políticas personalizadas son **fail-open**: los errores nunca bloquean las políticas integradas ni detienen el handler del hook.
|
|
253
|
+
|
|
254
|
+
| Fallo | Comportamiento |
|
|
255
|
+
|---------|----------|
|
|
256
|
+
| `customPoliciesPath` no configurado | No se ejecutan políticas personalizadas explícitas; las políticas de convención y las integradas continúan con normalidad |
|
|
257
|
+
| Archivo no encontrado | Se registra una advertencia en `~/.failproofai/hook.log`; las integradas continúan |
|
|
258
|
+
| Error de sintaxis/importación (explícito) | Se registra el error en `~/.failproofai/hook.log`; se omiten las políticas personalizadas explícitas |
|
|
259
|
+
| Error de sintaxis/importación (por convención) | Se registra el error; ese archivo se omite, los demás archivos de convención continúan cargándose |
|
|
260
|
+
| `fn` lanza un error en tiempo de ejecución | Se registra el error; ese hook se trata como `allow`; los demás hooks continúan |
|
|
261
|
+
| `fn` tarda más de 10 s | Se registra el tiempo de espera; se trata como `allow` |
|
|
262
|
+
| Directorio de convención no existe | No se ejecutan políticas de convención; sin error |
|
|
263
|
+
|
|
264
|
+
<Tip>
|
|
265
|
+
Para depurar errores en políticas personalizadas, monitorea el archivo de log:
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
tail -f ~/.failproofai/hook.log
|
|
269
|
+
```
|
|
270
|
+
</Tip>
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Ejemplo completo: múltiples políticas
|
|
275
|
+
|
|
276
|
+
```js
|
|
277
|
+
// my-policies.js
|
|
278
|
+
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
279
|
+
|
|
280
|
+
// Evitar que el agente escriba en el directorio secrets/
|
|
281
|
+
customPolicies.add({
|
|
282
|
+
name: "block-secrets-dir",
|
|
283
|
+
description: "Prevent agent from writing to secrets/ directory",
|
|
284
|
+
match: { events: ["PreToolUse"] },
|
|
285
|
+
fn: async (ctx) => {
|
|
286
|
+
if (!["Write", "Edit"].includes(ctx.toolName ?? "")) return allow();
|
|
287
|
+
const path = ctx.toolInput?.file_path ?? "";
|
|
288
|
+
if (path.includes("secrets/")) return deny("Writing to secrets/ is not permitted");
|
|
289
|
+
return allow();
|
|
290
|
+
},
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
// Mantener al agente en curso: verificar los tests antes de hacer commit
|
|
294
|
+
customPolicies.add({
|
|
295
|
+
name: "remind-test-before-commit",
|
|
296
|
+
description: "Keep the agent on track: verify tests pass before committing",
|
|
297
|
+
match: { events: ["PreToolUse"] },
|
|
298
|
+
fn: async (ctx) => {
|
|
299
|
+
if (ctx.toolName !== "Bash") return allow();
|
|
300
|
+
const cmd = ctx.toolInput?.command ?? "";
|
|
301
|
+
if (/git\s+commit/.test(cmd)) {
|
|
302
|
+
return instruct("Verify all tests pass before committing. Run `bun test` if you haven't already.");
|
|
303
|
+
}
|
|
304
|
+
return allow();
|
|
305
|
+
},
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
// Prevenir cambios de dependencias no planificados durante el periodo de congelamiento
|
|
309
|
+
customPolicies.add({
|
|
310
|
+
name: "dependency-freeze",
|
|
311
|
+
description: "Prevent unplanned dependency changes during freeze period",
|
|
312
|
+
match: { events: ["PreToolUse"] },
|
|
313
|
+
fn: async (ctx) => {
|
|
314
|
+
if (ctx.toolName !== "Bash") return allow();
|
|
315
|
+
const cmd = ctx.toolInput?.command ?? "";
|
|
316
|
+
const isInstall = /^(npm install|yarn add|bun add|pnpm add)\s+\S/.test(cmd);
|
|
317
|
+
if (isInstall && process.env.DEPENDENCY_FREEZE === "1") {
|
|
318
|
+
return deny("Package installs are frozen. Unset DEPENDENCY_FREEZE to allow.");
|
|
319
|
+
}
|
|
320
|
+
return allow();
|
|
321
|
+
},
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
export { customPolicies };
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Ejemplos
|
|
330
|
+
|
|
331
|
+
El directorio `examples/` contiene archivos de políticas listos para usar:
|
|
332
|
+
|
|
333
|
+
| Archivo | Contenido |
|
|
334
|
+
|------|----------|
|
|
335
|
+
| `examples/policies-basic.js` | Cinco políticas básicas que cubren los modos de fallo más comunes del agente |
|
|
336
|
+
| `examples/policies-advanced/index.js` | Patrones avanzados: importaciones transitivas, llamadas asíncronas, limpieza de salida y hooks de fin de sesión |
|
|
337
|
+
| `examples/convention-policies/security-policies.mjs` | Políticas de seguridad basadas en convención (bloquear escrituras en .env, prevenir la reescritura del historial de git) |
|
|
338
|
+
| `examples/convention-policies/workflow-policies.mjs` | Políticas de flujo de trabajo basadas en convención (recordatorios de tests, auditoría de escrituras de archivos) |
|
|
339
|
+
|
|
340
|
+
### Usar los ejemplos de archivo explícito
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
failproofai policies --install --custom ./examples/policies-basic.js
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
### Usar los ejemplos basados en convención
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
# Copiar a nivel de proyecto
|
|
350
|
+
mkdir -p .failproofai/policies
|
|
351
|
+
cp examples/convention-policies/*.mjs .failproofai/policies/
|
|
352
|
+
|
|
353
|
+
# O copiar a nivel de usuario
|
|
354
|
+
mkdir -p ~/.failproofai/policies
|
|
355
|
+
cp examples/convention-policies/*.mjs ~/.failproofai/policies/
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
No se necesita ningún comando de instalación: los archivos se detectan automáticamente en el siguiente evento de hook.
|