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,267 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 설정
|
|
3
|
+
description: "설정 파일 형식, 세 가지 스코프 시스템, 그리고 병합 규칙"
|
|
4
|
+
icon: gear
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
failproofai는 JSON 설정 파일을 사용하여 어떤 정책이 활성화될지, 정책이 어떻게 동작할지, 커스텀 정책을 어디서 불러올지를 제어합니다. 설정은 팀과 쉽게 공유할 수 있도록 설계되어 있습니다 — 저장소에 커밋하면 모든 개발자가 동일한 에이전트 안전망을 갖게 됩니다.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 설정 스코프
|
|
12
|
+
|
|
13
|
+
설정 스코프는 세 가지이며, 우선순위 순서대로 평가됩니다:
|
|
14
|
+
|
|
15
|
+
| 스코프 | 파일 경로 | 목적 |
|
|
16
|
+
|-------|-----------|---------|
|
|
17
|
+
| **project** | `.failproofai/policies-config.json` | 저장소별 설정, 버전 관리에 커밋 |
|
|
18
|
+
| **local** | `.failproofai/policies-config.local.json` | 개인 저장소별 재정의, gitignore 처리 |
|
|
19
|
+
| **global** | `~/.failproofai/policies-config.json` | 모든 프로젝트에 걸친 사용자 수준 기본값 |
|
|
20
|
+
|
|
21
|
+
failproofai가 훅 이벤트를 수신하면, 현재 작업 디렉터리에 존재하는 세 파일을 모두 불러와 병합합니다.
|
|
22
|
+
|
|
23
|
+
### 병합 규칙
|
|
24
|
+
|
|
25
|
+
**`enabledPolicies`** — 세 스코프의 합집합입니다. 어느 한 레벨에서라도 활성화된 정책은 모두 적용됩니다.
|
|
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"] ← 중복 제거된 합집합
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**`policyParams`** — 특정 정책에 대한 파라미터를 먼저 정의한 스코프가 전적으로 우선합니다. 정책의 파라미터 내부 값은 깊은 병합(deep merge)이 이루어지지 않습니다.
|
|
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가 우선, global은 무시됨
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
project: (block-sudo 항목 없음)
|
|
46
|
+
local: (block-sudo 항목 없음)
|
|
47
|
+
global: block-sudo → { allowPatterns: ["sudo systemctl status"] }
|
|
48
|
+
|
|
49
|
+
resolved: { allowPatterns: ["sudo systemctl status"] } ← global까지 내려감
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**`customPoliciesPaths` / `customPoliciesPath`** — 두 형태 중 어느 하나를 먼저 정의한 스코프가 우선합니다.
|
|
53
|
+
|
|
54
|
+
**`disabledCustomPolicies`** — 모든 스코프의 합집합입니다. 명시적 또는 컨벤션 정책 파일에서 개별 정책을 비활성화하면 대시보드가 소스가 포함된 ID를 여기에 기록합니다. 목록에 없는 정책은 기본적으로 활성화 상태를 유지합니다. ID에는 소스 파일이 포함되어 있어, 여러 파일에 동일한 이름의 정책이 있더라도 독립적으로 제어할 수 있습니다.
|
|
55
|
+
|
|
56
|
+
**`llm`** — 먼저 정의한 스코프가 우선합니다.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 설정 파일 형식
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"enabledPolicies": [
|
|
65
|
+
"block-sudo",
|
|
66
|
+
"block-rm-rf",
|
|
67
|
+
"block-push-master",
|
|
68
|
+
"sanitize-api-keys",
|
|
69
|
+
"sanitize-jwt",
|
|
70
|
+
"block-env-files",
|
|
71
|
+
"block-read-outside-cwd"
|
|
72
|
+
],
|
|
73
|
+
"policyParams": {
|
|
74
|
+
"block-sudo": {
|
|
75
|
+
"allowPatterns": ["sudo systemctl status", "sudo journalctl"]
|
|
76
|
+
},
|
|
77
|
+
"block-push-master": {
|
|
78
|
+
"protectedBranches": ["main", "release", "prod"]
|
|
79
|
+
},
|
|
80
|
+
"block-rm-rf": {
|
|
81
|
+
"allowPaths": ["/tmp"]
|
|
82
|
+
},
|
|
83
|
+
"block-read-outside-cwd": {
|
|
84
|
+
"allowPaths": ["/shared/data", "/opt/company"]
|
|
85
|
+
},
|
|
86
|
+
"sanitize-api-keys": {
|
|
87
|
+
"additionalPatterns": [
|
|
88
|
+
{ "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo API key" }
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"warn-large-file-write": {
|
|
92
|
+
"thresholdKb": 512
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"customPoliciesPath": "/home/alice/myproject/my-policies.js"
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 필드 참조
|
|
102
|
+
|
|
103
|
+
### `enabledPolicies`
|
|
104
|
+
|
|
105
|
+
타입: `string[]`
|
|
106
|
+
|
|
107
|
+
활성화할 정책 이름 목록입니다. 이름은 `failproofai policies`에 표시되는 정책 식별자와 정확히 일치해야 합니다. 전체 목록은 [기본 제공 정책](/ko/built-in-policies)을 참조하세요.
|
|
108
|
+
|
|
109
|
+
`enabledPolicies`에 없는 정책은 `policyParams`에 항목이 있더라도 비활성 상태입니다.
|
|
110
|
+
|
|
111
|
+
### `policyParams`
|
|
112
|
+
|
|
113
|
+
타입: `Record<string, Record<string, unknown>>`
|
|
114
|
+
|
|
115
|
+
정책별 파라미터 재정의입니다. 외부 키는 정책 이름이고, 내부 키는 각 정책에 고유합니다. 각 정책의 사용 가능한 파라미터는 [기본 제공 정책](/ko/built-in-policies)에서 확인할 수 있습니다.
|
|
116
|
+
|
|
117
|
+
파라미터가 있는 정책이라도 직접 지정하지 않으면 해당 정책의 기본값이 사용됩니다. `policyParams`를 전혀 설정하지 않은 사용자는 이전 버전과 동일하게 동작합니다.
|
|
118
|
+
|
|
119
|
+
정책 파라미터 블록의 알 수 없는 키는 훅 실행 시에는 자동으로 무시되지만, `failproofai policies`를 실행할 때는 경고로 표시됩니다.
|
|
120
|
+
|
|
121
|
+
#### `hint` (공통 옵션)
|
|
122
|
+
|
|
123
|
+
타입: `string` (선택 사항)
|
|
124
|
+
|
|
125
|
+
정책이 `deny` 또는 `instruct`를 반환할 때 사유에 추가되는 메시지입니다. 정책 자체를 수정하지 않고도 Claude에게 실행 가능한 안내를 제공할 수 있습니다.
|
|
126
|
+
|
|
127
|
+
기본 제공 정책, 커스텀 정책(`custom/`), 프로젝트 컨벤션(`.failproofai-project/`), 사용자 컨벤션(`.failproofai-user/`) 등 모든 정책 유형에서 동작합니다.
|
|
128
|
+
|
|
129
|
+
```json
|
|
130
|
+
{
|
|
131
|
+
"policyParams": {
|
|
132
|
+
"block-force-push": {
|
|
133
|
+
"hint": "Try creating a fresh branch instead."
|
|
134
|
+
},
|
|
135
|
+
"block-sudo": {
|
|
136
|
+
"allowPatterns": ["sudo apt-get"],
|
|
137
|
+
"hint": "Use apt-get directly without sudo."
|
|
138
|
+
},
|
|
139
|
+
"custom/my-policy": {
|
|
140
|
+
"hint": "Ask the user for approval first."
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
`block-force-push`가 거부하면 Claude는 다음 메시지를 받습니다: *"Force-pushing is blocked. Try creating a fresh branch instead."*
|
|
147
|
+
|
|
148
|
+
문자열이 아닌 값과 빈 문자열은 자동으로 무시됩니다. `hint`를 설정하지 않으면 동작은 변경되지 않습니다(하위 호환).
|
|
149
|
+
|
|
150
|
+
### `customPoliciesPath`
|
|
151
|
+
|
|
152
|
+
타입: `string` (절대 경로)
|
|
153
|
+
|
|
154
|
+
커스텀 훅 정책이 담긴 JavaScript 파일의 경로입니다. `failproofai policies --install --custom <path>` 명령으로 자동 설정되며, 경로는 저장 전 절대 경로로 변환됩니다.
|
|
155
|
+
|
|
156
|
+
이 파일은 훅 이벤트마다 새로 불러옵니다 — 캐싱이 없습니다. 작성 방법은 [커스텀 정책](/ko/custom-policies)을 참조하세요.
|
|
157
|
+
|
|
158
|
+
### 컨벤션 기반 정책
|
|
159
|
+
|
|
160
|
+
명시적인 `customPoliciesPath` 외에도, failproofai는 `.failproofai/policies/` 디렉터리에서 정책 파일을 자동으로 탐색하고 불러옵니다:
|
|
161
|
+
|
|
162
|
+
| 레벨 | 디렉터리 | 스코프 |
|
|
163
|
+
|-------|-----------|-------|
|
|
164
|
+
| 프로젝트 | `.failproofai/policies/` | 버전 관리로 팀과 공유 |
|
|
165
|
+
| 사용자 | `~/.failproofai/policies/custom-policies/` | 개인용, 모든 프로젝트에 적용 |
|
|
166
|
+
|
|
167
|
+
<Note>
|
|
168
|
+
사용자 수준 디렉터리가 홈 디렉터리 재구성으로 한 단계 아래로 이동했습니다.
|
|
169
|
+
이전 경로인 `~/.failproofai/policies/`에 남아 있는 파일은 업그레이드 후
|
|
170
|
+
처음 `failproofai` 명령을 실행할 때 `custom-policies/`로 자동으로 이동되며,
|
|
171
|
+
어떤 파일이 이동됐는지 안내 메시지가 표시됩니다.
|
|
172
|
+
</Note>
|
|
173
|
+
|
|
174
|
+
**파일 매칭:** `*policies.{js,mjs,ts}` 패턴과 일치하는 파일만 불러옵니다(예: `security-policies.mjs`, `workflow-policies.js`). 디렉터리의 다른 파일은 무시됩니다.
|
|
175
|
+
|
|
176
|
+
**설정 불필요:** 컨벤션 정책은 `policies-config.json`에 항목을 추가할 필요가 없습니다. 디렉터리에 파일을 넣기만 하면 다음 훅 이벤트 시 자동으로 인식됩니다.
|
|
177
|
+
|
|
178
|
+
**합집합 로딩:** 프로젝트와 사용자 컨벤션 디렉터리가 모두 스캔됩니다. 두 레벨의 일치하는 파일이 모두 불러와집니다(`customPoliciesPath`는 첫 번째 스코프 우선이지만, 컨벤션 정책은 그렇지 않습니다).
|
|
179
|
+
|
|
180
|
+
자세한 내용과 예시는 [커스텀 정책](/ko/custom-policies)을 참조하세요.
|
|
181
|
+
|
|
182
|
+
### `llm`
|
|
183
|
+
|
|
184
|
+
타입: `object` (선택 사항)
|
|
185
|
+
|
|
186
|
+
AI 호출을 수행하는 정책을 위한 LLM 클라이언트 설정입니다. 대부분의 설정에서는 필요하지 않습니다.
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"llm": {
|
|
191
|
+
"model": "claude-sonnet-4-6",
|
|
192
|
+
"apiKey": "sk-ant-..."
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## CLI에서 설정 관리
|
|
200
|
+
|
|
201
|
+
`policies --install`과 `policies --uninstall` 명령은 에이전트 CLI의 훅 설정 파일(훅 진입점)에 쓰는 반면, `policies-config.json`은 직접 관리하는 파일입니다. 두 가지는 별개입니다:
|
|
202
|
+
|
|
203
|
+
- **에이전트 CLI 설정** — 에이전트가 각 도구 사용 시 `failproofai --hook <event>`를 호출하도록 지시합니다:
|
|
204
|
+
- **Claude Code**: `~/.claude/settings.json` (user), `<cwd>/.claude/settings.json` (project), `<cwd>/.claude/settings.local.json` (local)
|
|
205
|
+
- **OpenAI Codex**: `~/.codex/hooks.json` (user), `<cwd>/.codex/hooks.json` (project) — Codex에는 `local` 스코프가 없음
|
|
206
|
+
- **GitHub Copilot CLI _(beta)_**: `~/.copilot/hooks/failproofai.json` (user), `<cwd>/.github/hooks/failproofai.json` (project) — Copilot에는 `local` 스코프가 없습니다. 훅 항목은 `timeoutSec`와 함께 Copilot의 OS별 `bash`/`powershell` 커맨드 필드를 사용하며, 파일에는 최상위 `version: 1` 마커가 있습니다. Copilot CLI 지원은 **beta** 단계로, 공개 문서에 명시되지 않은 `events.jsonl` 레코드 스키마를 더 많은 실제 세션을 통해 검증 중입니다. **VS Code Copilot Chat 에이전트 모드 (Preview)**는 `chat.hookFilesLocations` 설정에 따라 `.github/hooks/*.json`, `~/.copilot/hooks/*.json`, `~/.claude/settings.json`에서 훅 설정을 읽으며, Claude 형식의 `{hookSpecificOutput:{permissionDecision:"deny",…}}` 계약을 사용합니다 — 이는 `copilot` 통합과 `claude` 통합(`~/.claude/settings.json`)이 이미 쓰는 경로이므로, `failproofai policies --install --cli copilot` (또는 `--cli claude`)으로 별도의 `vscode` 통합 없이 **VS Code 에이전트 모드에서 이미 적용됩니다**(VS Code 검색 로그에서 확인됨).
|
|
207
|
+
- **Cursor Agent _(beta)_**: `~/.cursor/hooks.json` (user), `<cwd>/.cursor/hooks.json` (project) — Cursor에는 `local` 스코프가 없습니다. 훅 항목은 Claude 형식의 `{type, command, timeout}` 구조를 사용하지만(`bash`/`powershell` 분리 없음), Cursor의 [훅 스키마](https://cursor.com/docs/hooks)에 따라 camelCase 이벤트 키(`preToolUse`, `beforeSubmitPrompt`, …) 아래 평면 배열로 저장됩니다. 파일에는 최상위 `version: 1` 마커가 있습니다. 핸들러는 `CURSOR_EVENT_MAP`을 통해 camelCase를 PascalCase로 정규화하므로 기존 기본 제공 정책이 변경 없이 실행됩니다. Cursor Agent 지원은 **beta** 단계로, 공개 문서에 명시되지 않은 Cursor의 트랜스크립트 온디스크 형식을 더 많은 실제 설치를 통해 검증 중입니다.
|
|
208
|
+
- **OpenCode _(beta)_**: `~/.config/opencode/opencode.json` + `~/.config/opencode/plugins/failproofai.mjs` (user), `<cwd>/.opencode/opencode.json` + `<cwd>/.opencode/plugins/failproofai.mjs` (project) — OpenCode에는 `local` 스코프가 없습니다. 다른 다섯 CLI와 달리 OpenCode에는 **외부 명령 훅 시스템이 없습니다**: `opencode.json`의 `plugin: []` 배열을 통해 명시적으로 등록된 인프로세스 JS/TS 플러그인을 불러옵니다(`.opencode/plugins/`에서의 자동 검색은 opencode v1.14.33에서 플러그인 로드 방식이 **아닙니다**). 설치 시 failproofai 바이너리를 서브프로세스로 호출하고 바이너리의 Claude 형식 JSON 응답을 플러그인 시맨틱으로 변환하는 소형 생성 플러그인 심(shim)이 배포됩니다: 도구 이벤트 거부에는 `throw new Error()`(도구 호출 취소), instruct와 `Stop` / `SubagentStop` 거부에는 `client.session.prompt(...)`(거부 사유를 다음 사용자 메시지로 제출 — `session.idle`은 알림 전용이고 여기서 throw는 no-op이라 유일한 강제 재시도 채널), allow에는 no-op입니다. 심은 도구 이름(`OPENCODE_TOOL_MAP`을 통해 소문자 → PascalCase)과 도구 입력 인수 키(`OPENCODE_TOOL_INPUT_MAP`을 통해 `Read` / `Write` / `Edit`에 대해 camelCase → snake_case, 예: `filePath` → `file_path`, `oldString` → `old_string`)를 정규화한 후 바이너리에 전달하므로, `block-read-outside-cwd`, `block-env-files`, `block-secrets-write` 같은 경로 검사 기본 정책이 OpenCode 도구 호출에서 변경 없이 실행됩니다. 세션은 `~/.local/share/opencode/opencode.db`의 OpenCode SQLite DB에 저장되며, 대시보드의 세션 뷰어는 `opencode db --format json`과 `opencode export <id>`를 통해 이를 읽습니다. OpenCode 지원은 **beta** 단계로, 버전별 동작 및 더 많은 실제 세션을 통해 검증 중입니다. [OpenCode 플러그인 문서](https://opencode.ai/docs/plugins/)를 참조하세요.
|
|
209
|
+
- **Pi _(beta)_**: `~/.pi/agent/settings.json` (user), `<cwd>/.pi/settings.json` (project) — Pi에는 `local` 스코프가 없습니다. Pi는 시작 시 TypeScript 확장 패키지를 로드하며, 설정 파일은 `{"packages": ["./relative/path", …]}` 형태의 평면 문자열 배열입니다. failproofai는 번들된 `pi-extension/` 디렉터리를 가리키는 단일 packages-array 항목을 씁니다. 확장은 내부적으로 Pi의 `tool_call` / `user_bash` / `input` / `session_start` 이벤트를 구독하고 `failproofai --hook <Event> --cli pi`를 셸아웃합니다. 핸들러는 `PI_EVENT_MAP`을 통해 underscore_lower_snake_case를 PascalCase로 정규화하므로 기존 기본 제공 정책이 변경 없이 실행됩니다. 도구 입력 인수도 `PI_TOOL_INPUT_MAP`을 통해 정규화됩니다(Pi의 Read / Write / Edit는 `file_path` 대신 `path`를 사용하며, 최상위 키를 매핑하면 `block-env-files`와 `block-secrets-write`가 실행됩니다 — `block-read-outside-cwd`는 이미 `path` 폴백이 있었습니다). Pi 지원은 **beta** 단계로, Pi의 확장 API와 세션 로그 레이아웃이 안정화되는 동안 검증 중입니다.
|
|
210
|
+
- **Hermes (hermes-agent)**: `~/.hermes/config.yaml` (**user 스코프만** — Hermes에는 project/local 설정이 없음). Hermes는 Slack/Telegram **게이트웨이**이므로, 설치 한 번으로 모든 플랫폼(Slack/Telegram/cli/cron)의 도구 호출과 내부 서브에이전트를 가로챕니다. 훅 항목은 Hermes의 snake_case 이벤트(`pre_tool_call` / `post_tool_call` / `on_session_start` / `on_session_end` / `subagent_stop`)를 키로 하는 `hooks:` 맵 아래의 `{command, timeout}` 쌍이며, timeout은 **초** 단위입니다. 핸들러는 `HERMES_EVENT_MAP`을 통해 이벤트를, `HERMES_TOOL_MAP`을 통해 도구 이름을 정규화하므로 기본 제공 정책이 변경 없이 실행됩니다. 설정은 주석을 보존하는 YAML `Document` 라운드트립으로 편집되므로 운영자의 다른 설정이 유지되며, 설치 시 `hooks_auto_accept: true`를 설정하여 헤드리스 게이트웨이(TTY 없음)가 동의 프롬프트 없이 훅을 실행합니다. 평가자는 Hermes의 `{"decision":"block","reason"}` stdout 계약을 출력합니다(Hermes는 종료 코드를 무시합니다). **제한 사항:** Hermes에는 턴 종료 `Stop` 이벤트가 없으므로 `require-*-before-stop` 기본 정책이 실행되지 않습니다(적용 불가이지, 버그가 아님). `instruct`는 allow-with-logged-note로 성능이 저하됩니다(추가 컨텍스트 채널 없음). 출력 시크릿 편집(`sanitize-*`)은 셸 훅 계약을 통해 도구 출력을 재작성할 수 없습니다. Hermes는 **오프라인 감사** 소스이기도 합니다 — 대시보드는 `~/.hermes/state.db`에서 게이트웨이 세션을 직접 읽습니다.
|
|
211
|
+
- **OpenClaw (openclaw gateway)**: `~/.openclaw/openclaw.json` (**user 스코프만** — OpenClaw에는 project/local 설정이 없음). Hermes처럼 OpenClaw도 자체 호스팅 멀티채널 **게이트웨이**이므로, 설치 한 번으로 모든 채널과 내부 서브에이전트의 도구 호출을 가로챕니다. 적용은 OpenClaw의 **인프로세스 플러그인 훅**을 통해 실행됩니다(파일 기반 내부 훅은 관찰 전용으로 차단 불가). 따라서 OpenCode/Pi와 마찬가지로 failproofai는 failproofai 바이너리를 비동기로 스폰하고 판정 결과를 변환하는 정적 `openclaw-plugin/` 패키지를 제공합니다. 설치 시 `openclaw.json`의 `plugins.load.paths[]`에 제공된 플러그인 디렉터리를 등록하고 `plugins.entries.failproofai` 아래에서 활성화합니다(`hooks.allowConversationAccess: true` 포함, 원시 대화 훅에 필요). 평가자는 평면 `{permission, reason}` 판정을 출력하고 심이 이를 각 훅의 네이티브 반환 형태로 매핑합니다: `before_tool_call → {block:true, blockReason}` (**PreToolUse**), `before_agent_run → {outcome:"block", reason}` (**UserPromptSubmit**), `before_agent_finalize → {action:"revise", reason}` (**Stop** — 실제 턴 종료 게이트이므로 `require-*-before-stop` 기본 정책이 Hermes와 달리 OpenClaw에서 **적용됩니다**). 이벤트와 도구 이름은 `OPENCLAW_EVENT_MAP` / `OPENCLAW_TOOL_MAP`(`exec→Bash`, `read→Read`, …)을 통해 바이너리 측에서 정규화되므로 기본 제공 정책이 변경 없이 실행됩니다. 심은 스폰/파싱/타임아웃 오류 시 열린 상태로 실패합니다. OpenClaw는 **오프라인 감사** 소스이기도 합니다 — 대시보드는 `~/.openclaw/agents/<agentId>/sessions/<uuid>.jsonl`의 JSONL 세션을 읽습니다.
|
|
212
|
+
- **Factory Droid (`droid`)**: `~/.factory/hooks.json` (user), `<cwd>/.factory/hooks.json` (project) — Factory에는 `local` 스코프가 없습니다. droid는 Claude 형식의 외부 명령 훅 시스템을 제공하지만, droid v0.171.0에서 실제로 검증된 두 가지 특이점이 있습니다: (1) 이벤트 이름은 `hooks.json`의 **최상위 레벨**에 위치합니다 — **`"hooks"` 래퍼가 없습니다**(droid가 거부함). 도구 이벤트(`PreToolUse`/`PostToolUse`)는 `"matcher": "*"`를 포함하고, 비도구 이벤트는 생략합니다. (2) 거부는 JSON 결정이 아니라 훅 **종료 코드 2 + stderr**로 처리됩니다 — 평가자의 `factory` 브랜치는 도구/프롬프트 이벤트에 대해 종료 코드 2를 반환하고, 턴 종료 `Stop` 이벤트(droid의 유일한 강제 재시도 채널)에서만 `{decision:"block", reason}`을 반환합니다. 이벤트는 이미 PascalCase이며(이벤트 맵 불필요), 페이로드는 Claude snake_case입니다. 도구 이름만 `FACTORY_TOOL_MAP`(`Execute→Bash`, `Create→Write`, `FetchUrl→WebFetch`, …)을 통해 정규화됩니다. Factory는 **오프라인 감사** 소스이기도 합니다 — 대시보드는 `~/.factory/sessions/<encoded-cwd>/<sessionId>.jsonl`의 온디스크 JSONL 세션을 읽습니다.
|
|
213
|
+
- **Devin CLI (`devin`, Cognition)**: `~/.config/devin/config.json` (user), `<cwd>/.devin/config.json` (project) — Devin에는 `local` 스코프가 없습니다. Devin은 devin v3000.1.27에서 실제로 검증된 **순수 Claude 클론**입니다: 표준 Claude `"hooks"` 래퍼 스키마를 사용하고(쓰기는 병합 보존 방식이라 설정 파일의 다른 키 — `org_id`, `theme_mode`, … — 가 유지됨), 이미 PascalCase 이벤트 이름(이벤트 맵 없음, 핸들러 브랜치 없음), Claude snake_case stdin 페이로드(정규화 불필요)를 사용합니다. 평가자의 `devin` 브랜치는 **모든** 이벤트에 대해 종료 코드 0에서 `{"decision":"block","reason"}` JSON을 stdout으로 출력하여 거부합니다(검증됨 — 블록이 `--permission-mode dangerous`를 재정의함). 턴 종료 `Stop` 이벤트에서는 `require-*-before-stop` 기본 정책이 적용되도록 사유에 MANDATORY-ACTION 강제 재시도 문구가 포함됩니다. 도구 이름만 `DEVIN_TOOL_MAP`(`exec→Bash`; `tool_input.command`는 이미 정규화됨)을 통해 정규화됩니다. Devin은 **오프라인 감사** 소스이기도 합니다 — 대시보드는 `~/.local/share/devin/cli/sessions.db`의 SQLite 세션을 읽습니다(각 `sessions` 행에 실제 `working_directory`가 있어, Claude처럼 프로젝트 cwd별로 세션이 그룹화됨).
|
|
214
|
+
- **Antigravity CLI (`agy`)**: `~/.gemini/config/hooks.json` (user), `<cwd>/.agents/hooks.json` (project) — Antigravity에는 `local` 스코프가 없습니다. Factory/Devin과 달리 Antigravity는 agy v1.1.2에서 실제로 검증된 **자체 계약**(Claude 클론이 아님)을 사용합니다. `hooks.json`은 **이름 있는 훅** 스키마를 사용합니다: 최상위 키는 훅 *이름*(`"failproofai"`)이며, 그 값은 이벤트 → 핸들러 맵입니다 — 도구 이벤트(`PreToolUse`/`PostToolUse`)는 핸들러를 `{matcher:"*", hooks:[…]}`로 감싸고, `PreInvocation`/`Stop`은 **평면** 핸들러 배열입니다(다른 이름 있는 훅은 보존됩니다). stdin 페이로드는 **camelCase protojson** 형식(`toolCall:{name,args}`, `conversationId`, `workspacePaths`, `transcriptPath`)으로, failproofai는 정책 실행 전 이를 snake_case로 정규화하고 `run_command`의 PascalCase 인수(`CommandLine`/`Cwd`)를 `ANTIGRAVITY_TOOL_INPUT_MAP`으로 매핑합니다. 평가자의 `antigravity` 브랜치는 Antigravity의 **자체** 응답 형태를 사용합니다: `{decision:"deny", reason}`은 도구/프롬프트를 차단하고(종료 0), 턴 종료 `Stop`에서 `{decision:"continue", reason}`은 루프를 재진입하므로(`require-*-before-stop` 기본 정책이 적용됨), `{injectSteps:[{ephemeralMessage}]}`는 `PreInvocation`(→ `UserPromptSubmit`)에서 지시를 주입합니다. 도구 이름은 `ANTIGRAVITY_TOOL_MAP`(`run_command→Bash`, `view_file→Read`, …)을 통해 정규화됩니다. Antigravity는 **오프라인 감사** 소스이기도 합니다 — 대시보드는 `~/.gemini/antigravity-cli/brain/<conversationId>/.system_generated/logs/transcript_full.jsonl`의 일반 JSONL 트랜스크립트를 읽습니다(대화 인덱스는 `conversation_summaries.db`에 있음).
|
|
215
|
+
- **Goose (codename goose, Block)**: `~/.agents/plugins/failproofai/hooks/hooks.json` (user), `<cwd>/.agents/plugins/failproofai/hooks/hooks.json` (project) — Goose에는 `local` 스코프가 없습니다. 적용은 Goose의 **훅** 시스템인 크로스에이전트 **Open Plugins** 스펙을 통해 이루어집니다: 설치 시 `failproofai` 플러그인 디렉터리만 배포하면 Goose가 시작 시 자동으로 검색합니다(이를 `~/.config/goose/config.yaml`에 자동 등록). `hooks.json`은 최상위 `"hooks"` 래퍼가 **있는** Open Plugins 스키마를 사용하며, **모든** 이벤트에서 matcher가 **생략됩니다** — 단순 `"*"`는 아무것도 일치하지 않는 잘못된 정규식입니다(goose v1.43.0에서 실제로 검증됨). 이벤트 이름은 이미 PascalCase이며(이벤트 맵 불필요), stdin 페이로드는 `event`/`working_dir`를 사용하고 핸들러가 이를 `hook_event_name`/`cwd`로 정규화합니다. 평가자의 `goose` 브랜치는 종료 코드 0에서 `{"decision":"block","reason"}` JSON을 stdout으로 출력하며, **`PreToolUse`** 이벤트에서만 적용됩니다(goose ≥ v1.37.0에 제공됨) — 이는 셸 도구와 **위임된 서브에이전트 내부** 모두에서 실행되므로 유일하게 충분한 거부 지점입니다. 다른 훅 오류는 **열린 상태로** 실패합니다. Goose에는 **`Stop` 이벤트가 없으므로** `require-*-before-stop` 기본 정책이 적용되지 않습니다(Hermes와 동일). 도구 이름은 `GOOSE_TOOL_MAP`(`shell→Bash`, `write→Write`, `todo__todo_write→TodoWrite`, …)을 통해, 경로 키는 `GOOSE_TOOL_INPUT_MAP`(`path`/`source` → `file_path`)을 통해 정규화됩니다. Goose는 **오프라인 감사** 소스이기도 합니다 — 대시보드는 `~/.local/share/goose/sessions/sessions.db`의 SQLite 세션을 읽습니다(각 `sessions` 행에 실제 `working_dir`가 있어 Devin처럼 프로젝트 cwd별로 세션이 그룹화됨. `--no-session` 임시 실행은 필터링됨).
|
|
216
|
+
- **`policies-config.json`** — failproofai가 어떤 정책을 어떤 파라미터로 평가할지 지시합니다(모든 에이전트 CLI에서 공유)
|
|
217
|
+
|
|
218
|
+
특정 에이전트를 지정하려면 `--cli claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose`를 전달하세요(공백으로 구분하거나 반복 사용하여 부분 집합 지정 가능):
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
failproofai policies --install --cli codex --scope project
|
|
222
|
+
failproofai policies --install --cli copilot --scope project
|
|
223
|
+
failproofai policies --install --cli cursor --scope project
|
|
224
|
+
failproofai policies --install --cli opencode --scope project
|
|
225
|
+
failproofai policies --install --cli pi --scope project
|
|
226
|
+
failproofai policies --install --cli hermes --scope user
|
|
227
|
+
failproofai policies --install --cli openclaw --scope user
|
|
228
|
+
failproofai policies --install --cli factory --scope project
|
|
229
|
+
failproofai policies --install --cli devin --scope project
|
|
230
|
+
failproofai policies --install --cli antigravity --scope project
|
|
231
|
+
failproofai policies --install --cli goose --scope project
|
|
232
|
+
failproofai policies --install --cli claude codex copilot cursor opencode pi hermes openclaw factory devin antigravity goose
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
`--cli`를 생략하면 `failproofai`가 설치된 에이전트 CLI를 자동으로 감지합니다(`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`):
|
|
236
|
+
|
|
237
|
+
- **CLI 하나 감지** — 프롬프트 없이 해당 CLI를 자동으로 선택합니다.
|
|
238
|
+
- **여러 CLI 감지** (인터랙티브 터미널) — `Detected (N)` 섹션(`Install for all N detected` 통합 행 + 감지된 각 CLI)과 `Not installed (M) · install hooks ahead of time` 섹션(감지되지 않은 모든 지원 CLI를 사전 설치 옵션으로 표시)으로 구성된 화살표 키 단일 선택 프롬프트를 표시합니다(↑↓로 이동, Enter로 선택, ^C로 종료). 제거 흐름에서는 Detected 섹션만 표시합니다.
|
|
239
|
+
- **여러 CLI 감지** (비인터랙티브 실행, TTY 없음 — CI 등) — 프롬프트 없이 감지된 모든 CLI에 설치합니다.
|
|
240
|
+
- **감지 없음** — `claude`로 폴백하며, PATH에서 에이전트 바이너리를 찾을 수 없다는 경고를 표시합니다. 훅 명령은 그래도 기록되어, 설치 후 즉시 활성화됩니다.
|
|
241
|
+
|
|
242
|
+
`policies-config.json`은 언제든지 직접 편집할 수 있으며, 재시작 없이 다음 훅 이벤트부터 즉시 변경 사항이 적용됩니다.
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## 예시: 팀 기본값이 포함된 프로젝트 수준 설정
|
|
247
|
+
|
|
248
|
+
`.failproofai/policies-config.json`을 저장소에 커밋하세요:
|
|
249
|
+
|
|
250
|
+
```json
|
|
251
|
+
{
|
|
252
|
+
"enabledPolicies": [
|
|
253
|
+
"block-sudo",
|
|
254
|
+
"block-rm-rf",
|
|
255
|
+
"block-push-master",
|
|
256
|
+
"sanitize-api-keys",
|
|
257
|
+
"block-env-files"
|
|
258
|
+
],
|
|
259
|
+
"policyParams": {
|
|
260
|
+
"block-push-master": {
|
|
261
|
+
"protectedBranches": ["main", "release", "hotfix"]
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
그러면 각 개발자는 팀원에게 영향을 주지 않고 개인 재정의를 위해 `.failproofai/policies-config.local.json`(gitignore 처리됨)을 별도로 만들 수 있습니다.
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 커스텀 정책
|
|
3
|
+
description: "JavaScript로 직접 정책 작성 - 컨벤션 강제, 드리프트 방지, 실패 감지, 외부 시스템 연동"
|
|
4
|
+
icon: code
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
커스텀 정책을 사용하면 에이전트 동작에 관한 규칙을 직접 작성할 수 있습니다. 프로젝트 컨벤션 강제, 드리프트 방지, 위험한 작업 차단, 멈춘 에이전트 감지, Slack 연동, 승인 워크플로우 등 다양한 용도로 활용할 수 있습니다. 내장 정책과 동일한 훅 이벤트 시스템과 `allow`, `deny`, `instruct` 결정 방식을 사용합니다.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 빠른 예시
|
|
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
|
+
설치:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
failproofai policies --install --custom ./my-policies.js
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 커스텀 정책을 로드하는 두 가지 방법
|
|
41
|
+
|
|
42
|
+
### 옵션 1: 컨벤션 기반 (권장)
|
|
43
|
+
|
|
44
|
+
`.failproofai/policies/` 디렉터리에 `*policies.{js,mjs,ts}` 파일을 추가하면 자동으로 로드됩니다 — 별도 플래그나 설정 변경이 필요 없습니다. git hooks처럼 파일을 추가하기만 하면 바로 동작합니다.
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
# 프로젝트 레벨 — git에 커밋되어 팀과 공유
|
|
48
|
+
.failproofai/policies/security-policies.mjs
|
|
49
|
+
.failproofai/policies/workflow-policies.mjs
|
|
50
|
+
|
|
51
|
+
# 사용자 레벨 — 개인용, 모든 프로젝트에 적용
|
|
52
|
+
~/.failproofai/policies/my-policies.mjs
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**동작 방식:**
|
|
56
|
+
- 프로젝트 및 사용자 디렉터리 모두 스캔됨 (합집합 방식 — 첫 번째 스코프 우선이 아님)
|
|
57
|
+
- 각 디렉터리 내에서 파일은 알파벳 순으로 로드됨. 순서 조정이 필요하면 `01-`, `02-` 등의 접두사 사용
|
|
58
|
+
- `*policies.{js,mjs,ts}` 패턴에 매칭되는 파일만 로드되며, 그 외 파일은 무시됨
|
|
59
|
+
- 각 파일은 독립적으로 로드됨 (파일 단위 fail-open)
|
|
60
|
+
- 명시적 `--custom` 및 내장 정책과 함께 동작
|
|
61
|
+
|
|
62
|
+
<Tip>
|
|
63
|
+
컨벤션 정책은 조직의 품질 기준을 세우는 가장 쉬운 방법입니다. `.failproofai/policies/`를 git에 커밋하면 모든 팀원이 별도 설정 없이 동일한 규칙을 자동으로 적용받습니다. 새로운 실패 패턴을 발견할 때마다 정책을 추가하고 푸시하세요. 시간이 지날수록 팀의 기여로 점점 개선되는 살아있는 품질 기준이 됩니다.
|
|
64
|
+
</Tip>
|
|
65
|
+
|
|
66
|
+
### 옵션 2: 명시적 파일 경로
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# 커스텀 정책 파일로 설치
|
|
70
|
+
failproofai policies --install --custom ./my-policies.js
|
|
71
|
+
|
|
72
|
+
# 커스텀 정책 경로 교체
|
|
73
|
+
failproofai policies --install --custom ./new-policies.js
|
|
74
|
+
|
|
75
|
+
# 여러 파일 설정 (플래그 순서대로 로드)
|
|
76
|
+
failproofai policies --install --custom ./security.js --custom ./workflow.js
|
|
77
|
+
|
|
78
|
+
# 설정에서 모든 명시적 커스텀 정책 경로 제거
|
|
79
|
+
failproofai policies --uninstall --custom
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
해석된 절대 경로는 `policies-config.json`에 `customPoliciesPaths`로 저장됩니다. 여러 파일을 설정하려면 `--custom`을 반복해서 사용하세요. 레거시 `customPoliciesPath` 필드를 사용하는 기존 설정도 계속 동작합니다. 파일은 훅 이벤트마다 새로 로드되며 — 이벤트 간 캐싱은 없습니다.
|
|
83
|
+
|
|
84
|
+
등록된 각 정책은 대시보드에서 개별 토글로 표시됩니다. 정책을 비활성화하면 소스 한정 ID가 `disabledCustomPolicies`에 기록되고, 해당 파일과 다른 정책들은 계속 로드되지만 비활성화된 정책은 이벤트 매칭 전에 제외됩니다. 파일이 달라도 같은 이름의 정책은 각각 독립적인 토글을 갖습니다.
|
|
85
|
+
|
|
86
|
+
### 두 방법 함께 사용하기
|
|
87
|
+
|
|
88
|
+
컨벤션 정책과 명시적 `--custom` 파일은 함께 사용할 수 있습니다. 로드 순서:
|
|
89
|
+
|
|
90
|
+
1. 명시적 `customPoliciesPaths` 파일 (설정된 순서)
|
|
91
|
+
2. 프로젝트 컨벤션 파일 (`{cwd}/.failproofai/policies/`, 알파벳 순)
|
|
92
|
+
3. 사용자 컨벤션 파일 (`~/.failproofai/policies/`, 알파벳 순)
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## API
|
|
97
|
+
|
|
98
|
+
### 가져오기
|
|
99
|
+
|
|
100
|
+
```js
|
|
101
|
+
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### `customPolicies.add(hook)`
|
|
105
|
+
|
|
106
|
+
정책을 등록합니다. 같은 파일에 여러 정책을 등록하려면 원하는 만큼 호출하세요.
|
|
107
|
+
|
|
108
|
+
```ts
|
|
109
|
+
customPolicies.add({
|
|
110
|
+
name: string; // 필수 - 고유 식별자
|
|
111
|
+
description?: string; // `failproofai policies` 출력에 표시됨
|
|
112
|
+
match?: { events?: HookEventType[] }; // 이벤트 타입으로 필터링; 생략하면 모든 이벤트에 매칭
|
|
113
|
+
fn: (ctx: PolicyContext) => PolicyResult | Promise<PolicyResult>;
|
|
114
|
+
});
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 결정 헬퍼
|
|
118
|
+
|
|
119
|
+
| 함수 | 효과 | 사용 시점 |
|
|
120
|
+
|----------|--------|----------|
|
|
121
|
+
| `allow()` | 작업을 조용히 허용 | 작업이 안전하며 메시지가 필요 없을 때 |
|
|
122
|
+
| `deny(message)` | 작업 차단 | 에이전트가 이 작업을 수행하지 않아야 할 때 |
|
|
123
|
+
| `instruct(message)` | 차단 없이 컨텍스트 추가 | 에이전트가 올바른 방향을 유지하도록 추가 컨텍스트를 제공할 때 |
|
|
124
|
+
|
|
125
|
+
`deny(message)` — 메시지는 `"Blocked by failproofai:"` 접두사와 함께 Claude에 표시됩니다. 하나의 `deny`가 발생하면 이후 모든 평가가 단락됩니다.
|
|
126
|
+
|
|
127
|
+
`instruct(message)` — 메시지는 현재 툴 호출에 대한 Claude의 컨텍스트에 추가됩니다. 모든 `instruct` 메시지는 누적되어 함께 전달됩니다.
|
|
128
|
+
|
|
129
|
+
<Tip>
|
|
130
|
+
`policyParams`의 `hint` 필드를 추가하면 코드 변경 없이 `deny` 또는 `instruct` 메시지에 추가 안내를 덧붙일 수 있습니다. 커스텀(`custom/`), 프로젝트 컨벤션(`.failproofai-project/`), 사용자 컨벤션(`.failproofai-user/`) 정책 모두에서 동작합니다. 자세한 내용은 [Configuration → hint](/ko/configuration#hint-cross-cutting)를 참고하세요.
|
|
131
|
+
</Tip>
|
|
132
|
+
|
|
133
|
+
### 정보성 allow 메시지
|
|
134
|
+
|
|
135
|
+
`allow(message)`는 작업을 허용하면서 **동시에** Claude에 정보성 메시지를 전송합니다. 메시지는 훅 핸들러의 stdout 응답에서 `additionalContext`로 전달됩니다 — `instruct`와 동일한 메커니즘이지만 의미상 차이가 있습니다. 경고가 아닌 상태 업데이트입니다.
|
|
136
|
+
|
|
137
|
+
| 함수 | 효과 | 사용 시점 |
|
|
138
|
+
|----------|--------|----------|
|
|
139
|
+
| `allow(message)` | 허용하면서 Claude에 컨텍스트 전송 | 검사 통과를 확인하거나 검사를 건너뛴 이유를 설명할 때 |
|
|
140
|
+
|
|
141
|
+
사용 사례:
|
|
142
|
+
- **상태 확인:** `allow("All CI checks passed.")` — Claude에 모든 것이 정상임을 알림
|
|
143
|
+
- **Fail-open 설명:** `allow("GitHub CLI not installed, skipping CI check.")` — 검사를 건너뛴 이유를 Claude에 알려 완전한 컨텍스트 제공
|
|
144
|
+
- **메시지 누적:** 여러 정책이 각각 `allow(message)`를 반환하면 모든 메시지가 줄바꿈으로 합쳐져 함께 전달됨
|
|
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
|
+
### `PolicyContext` 필드
|
|
164
|
+
|
|
165
|
+
| 필드 | 타입 | 설명 |
|
|
166
|
+
|-------|------|-------------|
|
|
167
|
+
| `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
|
|
168
|
+
| `toolName` | `string \| undefined` | 호출되는 툴 (예: `"Bash"`, `"Write"`, `"Read"`) |
|
|
169
|
+
| `toolInput` | `Record<string, unknown> \| undefined` | 툴의 입력 파라미터 |
|
|
170
|
+
| `payload` | `Record<string, unknown>` | Claude Code에서 전달된 전체 원시 이벤트 페이로드 |
|
|
171
|
+
| `session` | `SessionMetadata \| undefined` | 세션 컨텍스트 (아래 참고) |
|
|
172
|
+
|
|
173
|
+
### `SessionMetadata` 필드
|
|
174
|
+
|
|
175
|
+
| 필드 | 타입 | 설명 |
|
|
176
|
+
|-------|------|-------------|
|
|
177
|
+
| `sessionId` | `string` | Claude Code 세션 식별자 |
|
|
178
|
+
| `cwd` | `string` | Claude Code 세션의 작업 디렉터리 |
|
|
179
|
+
| `transcriptPath` | `string` | 세션의 JSONL 트랜스크립트 파일 경로 |
|
|
180
|
+
|
|
181
|
+
### 이벤트 타입
|
|
182
|
+
|
|
183
|
+
| 이벤트 | 발생 시점 | `toolInput` 내용 |
|
|
184
|
+
|-------|--------------|----------------------|
|
|
185
|
+
| `PreToolUse` | Claude가 툴을 실행하기 전 | 툴의 입력 (예: Bash의 경우 `{ command: "..." }`) |
|
|
186
|
+
| `PostToolUse` | 툴 실행 완료 후 | 툴의 입력 + `tool_result` (출력) |
|
|
187
|
+
| `Notification` | Claude가 알림을 보낼 때 | `{ message: "...", notification_type: "idle" \| "permission_prompt" \| ... }` - 훅은 반드시 `allow()`를 반환해야 하며, 알림을 차단할 수 없음 |
|
|
188
|
+
| `Stop` | Claude 세션이 종료될 때 | 비어있음 |
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 평가 순서
|
|
193
|
+
|
|
194
|
+
정책은 다음 순서로 평가됩니다:
|
|
195
|
+
|
|
196
|
+
1. 내장 정책 (정의 순서)
|
|
197
|
+
2. `customPoliciesPath`의 명시적 커스텀 정책 (`.add()` 순서)
|
|
198
|
+
3. 프로젝트 `.failproofai/policies/`의 컨벤션 정책 (파일 알파벳 순, 파일 내 `.add()` 순서)
|
|
199
|
+
4. 사용자 `~/.failproofai/policies/`의 컨벤션 정책 (파일 알파벳 순, 파일 내 `.add()` 순서)
|
|
200
|
+
|
|
201
|
+
<Note>
|
|
202
|
+
첫 번째 `deny`가 이후 모든 정책을 단락시킵니다. 모든 `instruct` 메시지는 누적되어 함께 전달됩니다.
|
|
203
|
+
</Note>
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## 전이적 가져오기
|
|
208
|
+
|
|
209
|
+
커스텀 정책 파일은 상대 경로를 사용하여 로컬 모듈을 가져올 수 있습니다:
|
|
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
|
+
엔트리 파일에서 접근 가능한 모든 상대 가져오기가 해석됩니다. 이는 `from "failproofai"` 가져오기를 실제 dist 경로로 재작성하고 ESM 호환성을 위해 임시 `.mjs` 파일을 생성하는 방식으로 구현됩니다.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## 이벤트 타입 필터링
|
|
231
|
+
|
|
232
|
+
`match.events`를 사용하여 정책이 발동되는 시점을 제한할 수 있습니다:
|
|
233
|
+
|
|
234
|
+
```js
|
|
235
|
+
customPolicies.add({
|
|
236
|
+
name: "require-summary-on-stop",
|
|
237
|
+
match: { events: ["Stop"] },
|
|
238
|
+
fn: async (ctx) => {
|
|
239
|
+
// 세션이 종료될 때만 발동됨
|
|
240
|
+
// ctx.session.transcriptPath에 전체 세션 로그가 포함됨
|
|
241
|
+
return allow();
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
모든 이벤트 타입에서 발동시키려면 `match`를 완전히 생략하세요.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## 오류 처리 및 실패 모드
|
|
251
|
+
|
|
252
|
+
커스텀 정책은 **fail-open** 방식입니다. 오류가 발생해도 내장 정책이 차단되거나 훅 핸들러가 크래시되지 않습니다.
|
|
253
|
+
|
|
254
|
+
| 실패 원인 | 동작 |
|
|
255
|
+
|---------|----------|
|
|
256
|
+
| `customPoliciesPath` 미설정 | 명시적 커스텀 정책 미실행; 컨벤션 정책 및 내장 정책은 정상 계속 |
|
|
257
|
+
| 파일을 찾을 수 없음 | `~/.failproofai/hook.log`에 경고 기록; 내장 정책 계속 |
|
|
258
|
+
| 구문/가져오기 오류 (명시적) | `~/.failproofai/hook.log`에 오류 기록; 명시적 커스텀 정책 건너뜀 |
|
|
259
|
+
| 구문/가져오기 오류 (컨벤션) | 오류 기록; 해당 파일 건너뜀, 다른 컨벤션 파일은 계속 로드 |
|
|
260
|
+
| `fn` 런타임 오류 | 오류 기록; 해당 훅은 `allow`로 처리; 다른 훅 계속 |
|
|
261
|
+
| `fn` 10초 초과 | 타임아웃 기록; `allow`로 처리 |
|
|
262
|
+
| 컨벤션 디렉터리 없음 | 컨벤션 정책 미실행; 오류 없음 |
|
|
263
|
+
|
|
264
|
+
<Tip>
|
|
265
|
+
커스텀 정책 오류를 디버그하려면 로그 파일을 실시간으로 확인하세요:
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
tail -f ~/.failproofai/hook.log
|
|
269
|
+
```
|
|
270
|
+
</Tip>
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## 전체 예시: 여러 정책
|
|
275
|
+
|
|
276
|
+
```js
|
|
277
|
+
// my-policies.js
|
|
278
|
+
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
279
|
+
|
|
280
|
+
// 에이전트가 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
|
+
// 에이전트 방향 유지: 커밋 전 테스트 확인
|
|
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
|
+
// 동결 기간 중 계획되지 않은 의존성 변경 방지
|
|
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
|
+
## 예시 파일
|
|
330
|
+
|
|
331
|
+
`examples/` 디렉터리에 바로 사용할 수 있는 정책 파일이 포함되어 있습니다:
|
|
332
|
+
|
|
333
|
+
| 파일 | 내용 |
|
|
334
|
+
|------|----------|
|
|
335
|
+
| `examples/policies-basic.js` | 일반적인 에이전트 실패 패턴을 다루는 5가지 기본 정책 |
|
|
336
|
+
| `examples/policies-advanced/index.js` | 고급 패턴: 전이적 가져오기, 비동기 호출, 출력 스크러빙, 세션 종료 훅 |
|
|
337
|
+
| `examples/convention-policies/security-policies.mjs` | 컨벤션 기반 보안 정책 (.env 파일 쓰기 차단, git 히스토리 재작성 방지) |
|
|
338
|
+
| `examples/convention-policies/workflow-policies.mjs` | 컨벤션 기반 워크플로우 정책 (테스트 리마인더, 감사 파일 쓰기) |
|
|
339
|
+
|
|
340
|
+
### 명시적 파일 예시 사용
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
failproofai policies --install --custom ./examples/policies-basic.js
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
### 컨벤션 기반 예시 사용
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
# 프로젝트 레벨로 복사
|
|
350
|
+
mkdir -p .failproofai/policies
|
|
351
|
+
cp examples/convention-policies/*.mjs .failproofai/policies/
|
|
352
|
+
|
|
353
|
+
# 또는 사용자 레벨로 복사
|
|
354
|
+
mkdir -p ~/.failproofai/policies
|
|
355
|
+
cp examples/convention-policies/*.mjs ~/.failproofai/policies/
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
별도 설치 명령이 필요 없습니다 — 다음 훅 이벤트 시 파일이 자동으로 감지됩니다.
|