failproofai 1.0.1 → 1.0.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +6 -6
- package/.next/standalone/.next/required-server-files.json +1 -1
- 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 +2 -2
- 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/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
- 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 +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/audit/invite/route.js +3 -2
- 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 +5 -4
- 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 +2 -2
- 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 +4 -3
- 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 +4 -4
- 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 +4 -4
- 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.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/audit/page.js +2 -2
- 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 +15 -15
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js +2 -2
- 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/server-reference-manifest.json +66 -22
- package/.next/standalone/.next/server/app/policies/page.js +5 -4
- 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/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/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/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/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/{[externals]__1qzqcio._.js → [externals]__0e32-7c._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[externals]__1s462yl._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01eqny5._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_0xu5z._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1p8poxd._.js → [root-of-the-server]__0igxt32._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0neqlu-._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o07qi9._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t9oqnn._.js +3 -0
- package/.next/standalone/.next/server/chunks/_0bs-v8p._.js +3 -0
- package/.next/standalone/.next/server/chunks/_0tovk6q._.js +3 -0
- package/.next/standalone/.next/server/chunks/_0trp3yc._.js +3 -0
- package/.next/standalone/.next/server/chunks/_185gyk9._.js +3 -0
- package/.next/standalone/.next/server/chunks/_1ek68ln._.js +5 -6
- package/.next/standalone/.next/server/chunks/lib_telemetry-id_ts_1k8gj9o._.js +3 -0
- package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_09d5c79._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_04op_ou._.js} +1 -1
- package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_1d2g73o._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_0dr20uz._.js} +1 -1
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_hooks_0xbw3bu._.js +12 -0
- package/.next/standalone/.next/server/chunks/src_hooks_fp-home_ts_09kv0bn._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__013jr2b._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01wy8d-._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02npjtd._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0spkm68._.js → [root-of-the-server]__07gm3zl._.js} +21 -20
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0da85px._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ftmoxc._.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]__0p-5p8u._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s740oi._.js +6 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__07tbbf3._.js → [root-of-the-server]__0zig5sv._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__192nhvh._.js +5 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1p2otjt._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0lvyuv4._.js → _00e9tnf._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0u5zauv._.js → _12l4a_k._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1u8-lu2._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1zopuov._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +13 -13
- 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 +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_settings_settings-client_tsx_20lq-mq._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_08o7bqo._.js +10 -0
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_builtin-policies_ts_09j2ndl._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_fp-home_ts_0je3xkv._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/middleware.js +1 -1
- 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 +71 -27
- package/.next/standalone/.next/static/chunks/{37fcpc36x9gpe.js → 0eqky-7n7dgdm.js} +1 -1
- package/.next/standalone/.next/static/chunks/{1ide1wl2f7zi1.js → 0sa9v5mhc8861.js} +13 -13
- package/.next/standalone/.next/static/chunks/1mfzsja6ftim5.css +2 -0
- package/.next/standalone/.next/static/chunks/{3k7mxbp9hiom0.js → 1nuqytbta44af.js} +1 -1
- package/.next/standalone/.next/static/chunks/1sl2xmn9inx3y.js +6 -0
- package/.next/standalone/.next/static/chunks/{2_2lhuojq2xop.js → 2aawsjld9ied_.js} +1 -1
- package/.next/standalone/.next/static/chunks/2gn7ut4svofm2.js +1 -0
- package/.next/standalone/.next/static/chunks/{31s1smp-g7gks.js → 2hs7ycvsav7v2.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0k5050ezjvv49.js → 2i2yt3hzjredm.js} +1 -1
- package/.next/standalone/.next/static/chunks/{3c808qrfcq0im.js → 35xg6retpe6rp.js} +1 -1
- package/.next/standalone/.next/static/chunks/{2zpp1we2jv6tb.js → 3y54nw0i7dsjl.js} +1 -1
- package/.next/standalone/SECURITY.md +5 -4
- package/.next/standalone/app/actions/get-hooks-config.ts +108 -17
- package/.next/standalone/app/actions/pack-actions.ts +153 -0
- package/.next/standalone/app/audit/_components/run-progress.tsx +1 -1
- package/.next/standalone/app/audit/_components/share-templates.ts +13 -13
- package/.next/standalone/app/policies/hooks-client.tsx +320 -14
- package/.next/standalone/components/navbar.tsx +2 -28
- package/.next/standalone/components/reach-developers.tsx +8 -1
- package/.next/standalone/docs-old/agenteye/python-sdk-skill.mdx +1 -1
- package/.next/standalone/docs-old/agenteye/python-sdk.mdx +59 -35
- package/.next/standalone/docs-old/i18n/README.ar.md +1 -0
- package/.next/standalone/docs-old/i18n/README.de.md +1 -0
- package/.next/standalone/docs-old/i18n/README.es.md +1 -0
- package/.next/standalone/docs-old/i18n/README.fr.md +1 -0
- package/.next/standalone/docs-old/i18n/README.he.md +1 -0
- package/.next/standalone/docs-old/i18n/README.hi.md +1 -0
- package/.next/standalone/docs-old/i18n/README.it.md +1 -0
- package/.next/standalone/docs-old/i18n/README.ja.md +1 -0
- package/.next/standalone/docs-old/i18n/README.ko.md +1 -0
- package/.next/standalone/docs-old/i18n/README.pt-br.md +1 -0
- package/.next/standalone/docs-old/i18n/README.ru.md +1 -0
- package/.next/standalone/docs-old/i18n/README.tr.md +1 -0
- package/.next/standalone/docs-old/i18n/README.vi.md +1 -0
- package/.next/standalone/docs-old/i18n/README.zh.md +1 -0
- package/.next/standalone/fp-cloud-cli/CHANGELOG.md +431 -0
- package/.next/standalone/fp-cloud-cli/LICENSE +42 -0
- package/.next/standalone/fp-cloud-cli/MANIFEST.in +10 -0
- package/.next/standalone/fp-cloud-cli/README.md +259 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/__init__.py +10 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/__main__.py +4 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/_click_compat.py +64 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/_context.py +332 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/_version.py +1 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/analytics.py +432 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/analytics_config.py +77 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/analytics_registry.py +83 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/app.py +492 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/auth.py +160 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/client.py +1694 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/__init__.py +0 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/_write.py +214 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/agent_cmds.py +407 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/alerts_cmds.py +445 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/audits_cmds.py +1054 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/auth_cmds.py +512 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/errors_cmds.py +190 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/evals_cmds.py +161 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/events_cmds.py +159 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/fleet_cmds.py +416 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/guardrails_cmds.py +148 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/incidents_cmds.py +472 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/keys_cmds.py +407 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/list_cmds.py +63 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/orgs_cmds.py +319 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/policies_cmds.py +499 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/queries_cmds.py +378 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/sessions_cmds.py +151 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/settings_cmds.py +150 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/usage_cmds.py +35 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/users_cmds.py +404 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/config.py +330 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/dates.py +78 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/enforcement.py +345 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/errors.py +98 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/models.py +891 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/orgs.py +30 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/output.py +6593 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/permissions.py +208 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/policy_check.py +290 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/py.typed +0 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/select.py +322 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/theme.py +53 -0
- package/.next/standalone/fp-cloud-cli/pyproject.toml +106 -0
- package/.next/standalone/fp-cloud-cli/skill/SKILL.md +302 -0
- package/.next/standalone/fp-cloud-cli/skill/agents/openai.yaml +8 -0
- package/.next/standalone/fp-cloud-cli/skill/references/commands.md +254 -0
- package/.next/standalone/fp-cloud-cli/tests/__init__.py +0 -0
- package/.next/standalone/fp-cloud-cli/tests/conftest.py +92 -0
- package/.next/standalone/fp-cloud-cli/tests/test_alerting.py +644 -0
- package/.next/standalone/fp-cloud-cli/tests/test_analytics.py +385 -0
- package/.next/standalone/fp-cloud-cli/tests/test_audits.py +950 -0
- package/.next/standalone/fp-cloud-cli/tests/test_auth.py +98 -0
- package/.next/standalone/fp-cloud-cli/tests/test_auth_mode.py +272 -0
- package/.next/standalone/fp-cloud-cli/tests/test_click_compat.py +118 -0
- package/.next/standalone/fp-cloud-cli/tests/test_client.py +299 -0
- package/.next/standalone/fp-cloud-cli/tests/test_commands.py +814 -0
- package/.next/standalone/fp-cloud-cli/tests/test_config.py +99 -0
- package/.next/standalone/fp-cloud-cli/tests/test_dashboards_agent.py +340 -0
- package/.next/standalone/fp-cloud-cli/tests/test_dates.py +76 -0
- package/.next/standalone/fp-cloud-cli/tests/test_enforcement_logic.py +481 -0
- package/.next/standalone/fp-cloud-cli/tests/test_facets.py +170 -0
- package/.next/standalone/fp-cloud-cli/tests/test_failproofai_home.py +722 -0
- package/.next/standalone/fp-cloud-cli/tests/test_fp_home_contract.py +198 -0
- package/.next/standalone/fp-cloud-cli/tests/test_hardening.py +186 -0
- package/.next/standalone/fp-cloud-cli/tests/test_help_table_coverage.py +127 -0
- package/.next/standalone/fp-cloud-cli/tests/test_keys_queries.py +496 -0
- package/.next/standalone/fp-cloud-cli/tests/test_list.py +59 -0
- package/.next/standalone/fp-cloud-cli/tests/test_multivalue.py +183 -0
- package/.next/standalone/fp-cloud-cli/tests/test_no_customer_identifiers.py +168 -0
- package/.next/standalone/fp-cloud-cli/tests/test_operator.py +492 -0
- package/.next/standalone/fp-cloud-cli/tests/test_orgs.py +692 -0
- package/.next/standalone/fp-cloud-cli/tests/test_output.py +1732 -0
- package/.next/standalone/fp-cloud-cli/tests/test_policy_check.py +191 -0
- package/.next/standalone/fp-cloud-cli/tests/test_readme_matches_reality.py +125 -0
- package/.next/standalone/fp-cloud-cli/tests/test_review_fixes.py +161 -0
- package/.next/standalone/fp-cloud-cli/tests/test_telemetry_completeness.py +90 -0
- package/.next/standalone/fp-cloud-cli/tests/test_usage.py +115 -0
- package/.next/standalone/fp-cloud-cli/tests/test_v1_origin_diagnostic.py +70 -0
- package/.next/standalone/fp-cloud-cli/tests/test_v1_routing.py +214 -0
- package/.next/standalone/fp-cloud-cli/tests/test_whoami.py +104 -0
- package/.next/standalone/fp-cloud-cli/uv.lock +552 -0
- package/.next/standalone/package.json +29 -22
- package/.next/standalone/sdk/python/CHANGELOG.md +70 -0
- package/.next/standalone/sdk/python/LICENSE +42 -0
- package/.next/standalone/sdk/python/MANIFEST.in +21 -0
- package/.next/standalone/sdk/python/README.md +466 -0
- package/.next/standalone/sdk/python/docs/README.md +249 -0
- package/.next/standalone/sdk/python/docs/_shared/README.md +43 -0
- package/.next/standalone/sdk/python/docs/_shared/__init__.py +195 -0
- package/.next/standalone/sdk/python/docs/crewai/README.md +328 -0
- package/.next/standalone/sdk/python/docs/crewai/examples/quickstart.py +61 -0
- package/.next/standalone/sdk/python/docs/crewai/examples/research_crew.py +92 -0
- package/.next/standalone/sdk/python/docs/langgraph/README.md +481 -0
- package/.next/standalone/sdk/python/docs/langgraph/examples/quickstart.py +51 -0
- package/.next/standalone/sdk/python/docs/langgraph/examples/research_agent.py +86 -0
- package/.next/standalone/sdk/python/docs/langgraph/examples/supervisor_handoff.py +83 -0
- package/.next/standalone/sdk/python/docs/llama_index/README.md +332 -0
- package/.next/standalone/sdk/python/docs/llama_index/examples/quickstart.py +62 -0
- package/.next/standalone/sdk/python/docs/llama_index/examples/research_agent.py +93 -0
- package/.next/standalone/sdk/python/docs/manual/README.md +491 -0
- package/.next/standalone/sdk/python/docs/manual/examples/quickstart.py +57 -0
- package/.next/standalone/sdk/python/docs/manual/examples/research_agent.py +133 -0
- package/.next/standalone/sdk/python/docs/pydantic_ai/README.md +323 -0
- package/.next/standalone/sdk/python/docs/pydantic_ai/examples/quickstart.py +48 -0
- package/.next/standalone/sdk/python/docs/pydantic_ai/examples/research_agent.py +94 -0
- package/.next/standalone/sdk/python/failproofai_sdk/__init__.py +131 -0
- package/.next/standalone/sdk/python/failproofai_sdk/_context.py +218 -0
- package/.next/standalone/sdk/python/failproofai_sdk/_environment.py +78 -0
- package/.next/standalone/sdk/python/failproofai_sdk/_events.py +752 -0
- package/.next/standalone/sdk/python/failproofai_sdk/_resolver.py +118 -0
- package/.next/standalone/sdk/python/failproofai_sdk/_runtime.py +21 -0
- package/.next/standalone/sdk/python/failproofai_sdk/_schema.py +317 -0
- package/.next/standalone/sdk/python/failproofai_sdk/_scopes.py +422 -0
- package/.next/standalone/sdk/python/failproofai_sdk/_version.py +1 -0
- package/.next/standalone/sdk/python/failproofai_sdk/_writer.py +750 -0
- package/.next/standalone/sdk/python/failproofai_sdk/integrations/__init__.py +274 -0
- package/.next/standalone/sdk/python/failproofai_sdk/integrations/_compat.py +247 -0
- package/.next/standalone/sdk/python/failproofai_sdk/integrations/_core.py +1076 -0
- package/.next/standalone/sdk/python/failproofai_sdk/integrations/crewai.py +1669 -0
- package/.next/standalone/sdk/python/failproofai_sdk/integrations/langchain.py +2151 -0
- package/.next/standalone/sdk/python/failproofai_sdk/integrations/llama_index.py +1588 -0
- package/.next/standalone/sdk/python/failproofai_sdk/integrations/pydantic_ai.py +977 -0
- package/.next/standalone/sdk/python/failproofai_sdk/py.typed +0 -0
- package/.next/standalone/sdk/python/pyproject.toml +92 -0
- package/.next/standalone/sdk/python/skill/SKILL.md +399 -0
- package/.next/standalone/sdk/python/skill/agents/openai.yaml +8 -0
- package/.next/standalone/sdk/python/skill/references/events.md +234 -0
- package/.next/standalone/sdk/python/skill/references/frameworks.md +314 -0
- package/.next/standalone/sdk/python/skill/references/install.md +100 -0
- package/.next/standalone/sdk/python/skill/references/integration.md +352 -0
- package/.next/standalone/sdk/python/tests/__init__.py +0 -0
- package/.next/standalone/sdk/python/tests/conftest.py +169 -0
- package/.next/standalone/sdk/python/tests/integrations/__init__.py +6 -0
- package/.next/standalone/sdk/python/tests/integrations/test_crewai.py +1299 -0
- package/.next/standalone/sdk/python/tests/integrations/test_langchain.py +2338 -0
- package/.next/standalone/sdk/python/tests/integrations/test_llama_index.py +1576 -0
- package/.next/standalone/sdk/python/tests/integrations/test_pydantic_ai.py +1102 -0
- package/.next/standalone/sdk/python/tests/test_context.py +410 -0
- package/.next/standalone/sdk/python/tests/test_docs.py +411 -0
- package/.next/standalone/sdk/python/tests/test_durability.py +1352 -0
- package/.next/standalone/sdk/python/tests/test_encoding.py +571 -0
- package/.next/standalone/sdk/python/tests/test_integrations.py +1127 -0
- package/.next/standalone/sdk/python/tests/test_no_customer_identifiers.py +214 -0
- package/.next/standalone/sdk/python/tests/test_packaging.py +185 -0
- package/.next/standalone/sdk/python/tests/test_resolver_umbrella.py +178 -0
- package/.next/standalone/sdk/python/tests/test_scopes.py +487 -0
- package/.next/standalone/sdk/python/tests/test_sdk.py +923 -0
- package/.next/standalone/sdk/python/tests/test_server_contract.py +650 -0
- package/.next/standalone/sdk/python/tests/test_site_docs.py +371 -0
- package/.next/standalone/sdk/python/tests/test_skill_snippets.py +165 -0
- package/.next/standalone/sdk/python/tests/test_spool_contract.py +287 -0
- package/.next/standalone/sdk/python/tests/test_spool_creation.py +360 -0
- package/.next/standalone/sdk/python/tests/test_wire_format.py +279 -0
- package/.next/standalone/sdk/python/tests/test_zero_dependencies.py +378 -0
- package/.next/standalone/sdk/python/uv.lock +6005 -0
- package/.next/standalone/server.js +1 -1
- package/README.md +77 -21
- package/bin/failproofai.mjs +145 -11
- package/dist/cli.mjs +4482 -2205
- package/dist/index.js +5 -5
- package/dist/worker.mjs +2399 -1978
- package/package.json +29 -22
- package/policy-pack/SHA256SUMS +2 -0
- package/policy-pack/failproofai-pack.json +732 -0
- package/policy-pack/failproofai-pack.mjs +2017 -0
- package/scripts/build-policy-pack.mjs +121 -0
- package/scripts/changelog-section.py +77 -0
- package/scripts/prune-standalone.mjs +3 -0
- package/scripts/python-version.py +232 -0
- package/scripts/translate-docs/cli.ts +21 -0
- package/scripts/translate-docs/mintlify-nav.ts +85 -13
- package/scripts/translate-docs/translator.ts +66 -11
- package/src/audit/cache.ts +40 -3
- package/src/audit/cli.ts +1 -1
- package/src/audit/index.ts +1 -1
- package/src/audit/replay.ts +89 -3
- package/src/audit/report.ts +5 -5
- package/src/audit/schedule-cli.ts +49 -53
- package/src/hooks/builtin-policies.ts +217 -579
- package/src/hooks/cloud-enrollment-cli.ts +66 -27
- package/src/hooks/cloud-managed-policies.ts +6 -1
- package/src/hooks/configure-wizard.ts +1 -1
- package/src/hooks/custom-hooks-loader.ts +89 -6
- package/src/hooks/fp-home.ts +92 -4
- package/src/hooks/fp-reset.ts +26 -2
- package/src/hooks/handler.ts +181 -11
- package/src/hooks/harness-cli.ts +79 -25
- package/src/hooks/hook-activity-store.ts +13 -3
- package/src/hooks/install-prompt.ts +25 -3
- package/src/hooks/manager.ts +418 -172
- package/src/hooks/migrations.ts +2 -2
- package/src/hooks/pack-cli.ts +505 -0
- package/src/hooks/pack-failclosed.ts +189 -0
- package/src/hooks/pack-manifest.ts +344 -0
- package/src/hooks/pack-store.ts +930 -0
- package/src/hooks/policy-catalog.ts +535 -0
- package/src/hooks/policy-evaluator.ts +24 -16
- package/src/hooks/policy-presets.ts +4 -2
- package/src/hooks/policy-registry.ts +8 -2
- package/src/hooks/policy-types.ts +26 -0
- package/src/hooks/session-pause-cli.ts +33 -9
- package/src/hooks/tui.ts +570 -0
- package/src/hooks/types.ts +15 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_usx0j._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_zk340._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0agdw2a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d1u_na._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oy4kxb._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zf034w._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1tvn4wf._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0lxbzdq._.js +0 -3
- package/.next/standalone/.next/server/chunks/_1ger0a2._.js +0 -3
- package/.next/standalone/.next/server/chunks/_1zuiiy3._.js +0 -3
- package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_1iiwm5e._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kc8_v5._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kgy9da._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0mhqk5a._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pltpn8._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qkcyf-._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w0x_ok._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1_dfocn._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1bfex62._.js +0 -5
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1kzapg5._.js +0 -6
- package/.next/standalone/.next/static/chunks/36fw6yk1s6x_f.js +0 -1
- package/.next/standalone/.next/static/chunks/3tzq0260n17ae.js +0 -6
- package/.next/standalone/.next/static/chunks/3wq9x0c-7ld5d.css +0 -2
- /package/.next/standalone/.next/static/{ZklXxyA5ygsWSQz2u_zii → nwbyWT06Ud0XdXOrVJyvS}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{ZklXxyA5ygsWSQz2u_zii → nwbyWT06Ud0XdXOrVJyvS}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{ZklXxyA5ygsWSQz2u_zii → nwbyWT06Ud0XdXOrVJyvS}/_ssgManifest.js +0 -0
|
@@ -18,14 +18,36 @@ Under the hood, the SDK writes structured events to local JSONL files, and the c
|
|
|
18
18
|
|
|
19
19
|
## Installation
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
```bash
|
|
22
|
+
pip install failproofai-sdk
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Or with `uv`:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
uv add failproofai-sdk
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The distribution is `failproofai-sdk`; the import is `failproofai_sdk`. It has no dependencies, so it cannot conflict with anything already in your agent's environment.
|
|
32
|
+
|
|
33
|
+
<Warning>
|
|
34
|
+
**Do not `pip install agenteye`.** That name on PyPI belongs to a stranded release of an older CLI, not to this SDK. Installing it gives you `ModuleNotFoundError` on `import failproofai_sdk` — and if you are upgrading from the SDK's own pre-rename releases, which also published under `agenteye`, pip treats it as an upgrade and removes the SDK.
|
|
35
|
+
</Warning>
|
|
22
36
|
|
|
23
37
|
Once it is installed, confirm you have it:
|
|
24
38
|
|
|
25
39
|
```bash
|
|
26
|
-
python -c "import
|
|
40
|
+
python -c "import failproofai_sdk; print(failproofai_sdk.__version__)"
|
|
27
41
|
```
|
|
28
42
|
|
|
43
|
+
Upgrading an existing integration? Uninstall `agenteye`, install `failproofai-sdk`, and change `import agenteye` to `import failproofai_sdk`. Every emitted field is identical, and `session_id`/`agent_id` became **optional** on every event method (they resolve from the enclosing scope when omitted).
|
|
44
|
+
|
|
45
|
+
**Two things on disk did move.** The default spool is now `$FAILPROOFAI_HOME/custom-agents/events`, otherwise `~/.failproofai/custom-agents/events` — and `AGENTEYE_HOME` no longer affects the SDK at all. `failproofaid` reads the new root. The older `agenteye-collector` does not: it resolves `$AGENTEYE_HOME` or `~/.agenteye` and nothing else, so on a host running only that collector the batches pile up unread, with no error on either side. Three supported bridges, if that is you:
|
|
46
|
+
|
|
47
|
+
- point the collector at the new root (its own `--spool`/config), which is the one that needs no application change;
|
|
48
|
+
- run `failproofaid` instead, which reads both roots;
|
|
49
|
+
- or `failproofai_sdk.configure(base_dir="~/.agenteye")` in the application, which is explicit and visible at the call site.
|
|
50
|
+
|
|
29
51
|
Prefer to let a coding agent do the whole integration? The [Python SDK Agent Skill](/agenteye/python-sdk-skill) knows the install path, plans the instrumentation points, writes them, and verifies the events land.
|
|
30
52
|
|
|
31
53
|
---
|
|
@@ -33,13 +55,13 @@ Prefer to let a coding agent do the whole integration? The [Python SDK Agent Ski
|
|
|
33
55
|
## Quick Start
|
|
34
56
|
|
|
35
57
|
```python
|
|
36
|
-
import
|
|
58
|
+
import failproofai_sdk
|
|
37
59
|
|
|
38
|
-
|
|
60
|
+
failproofai_sdk.configure(environment="production")
|
|
39
61
|
|
|
40
|
-
|
|
62
|
+
failproofai_sdk.event.agent_start(session_id="run-001", agent_id="planner", goal="answer user query")
|
|
41
63
|
|
|
42
|
-
|
|
64
|
+
failproofai_sdk.event.tool_use(
|
|
43
65
|
session_id="run-001",
|
|
44
66
|
agent_id="planner",
|
|
45
67
|
tool_name="web_search",
|
|
@@ -47,7 +69,7 @@ agenteye.event.tool_use(
|
|
|
47
69
|
input={"query": "latest AI research"},
|
|
48
70
|
)
|
|
49
71
|
|
|
50
|
-
|
|
72
|
+
failproofai_sdk.event.tool_result(
|
|
51
73
|
session_id="run-001",
|
|
52
74
|
agent_id="planner",
|
|
53
75
|
tool_name="web_search",
|
|
@@ -55,7 +77,7 @@ agenteye.event.tool_result(
|
|
|
55
77
|
output={"results": ["..."]},
|
|
56
78
|
)
|
|
57
79
|
|
|
58
|
-
|
|
80
|
+
failproofai_sdk.event.agent_end(session_id="run-001", agent_id="planner", outcome="success")
|
|
59
81
|
```
|
|
60
82
|
|
|
61
83
|
### Instrumenting a real call
|
|
@@ -64,14 +86,14 @@ In practice you wrap your existing agent code. Bracket a model call with `model_
|
|
|
64
86
|
|
|
65
87
|
```python
|
|
66
88
|
import anthropic
|
|
67
|
-
import
|
|
89
|
+
import failproofai_sdk
|
|
68
90
|
|
|
69
|
-
|
|
91
|
+
failproofai_sdk.configure(environment="production")
|
|
70
92
|
client = anthropic.Anthropic()
|
|
71
93
|
|
|
72
94
|
messages = [{"role": "user", "content": "Summarise today's incidents."}]
|
|
73
95
|
|
|
74
|
-
|
|
96
|
+
failproofai_sdk.event.model_request(
|
|
75
97
|
session_id="run-001",
|
|
76
98
|
agent_id="planner",
|
|
77
99
|
model="claude-sonnet-4-6",
|
|
@@ -84,7 +106,7 @@ reply = client.messages.create(
|
|
|
84
106
|
messages=messages,
|
|
85
107
|
)
|
|
86
108
|
|
|
87
|
-
|
|
109
|
+
failproofai_sdk.event.model_response(
|
|
88
110
|
session_id="run-001",
|
|
89
111
|
agent_id="planner",
|
|
90
112
|
model=reply.model,
|
|
@@ -106,8 +128,9 @@ Here is what those events look like once they reach the dashboard, colour-coded
|
|
|
106
128
|
## configure()
|
|
107
129
|
|
|
108
130
|
```python
|
|
109
|
-
|
|
110
|
-
base_dir=None, # Path | str | None. Default: $
|
|
131
|
+
failproofai_sdk.configure(
|
|
132
|
+
base_dir=None, # Path | str | None. Default: $FAILPROOFAI_HOME/custom-agents
|
|
133
|
+
# otherwise ~/.failproofai/custom-agents
|
|
111
134
|
flush_interval=0.5, # float, seconds between flush cycles
|
|
112
135
|
environment=None, # str | None. Deployment environment label
|
|
113
136
|
)
|
|
@@ -115,10 +138,11 @@ agenteye.configure(
|
|
|
115
138
|
|
|
116
139
|
Call once before any `event.*` call. Safe to omit; defaults work out of the box. All arguments are keyword-only; pass them by name as shown above.
|
|
117
140
|
|
|
118
|
-
When `base_dir` is `None` (the default), the SDK
|
|
119
|
-
otherwise
|
|
120
|
-
|
|
121
|
-
the
|
|
141
|
+
When `base_dir` is `None` (the default), the SDK resolves `$FAILPROOFAI_HOME`,
|
|
142
|
+
otherwise `~/.failproofai`, and appends `custom-agents`. **`AGENTEYE_HOME` is not
|
|
143
|
+
read** — `base_dir` is the only way to spool anywhere else. A `~` in the path is
|
|
144
|
+
expanded. See the upgrade note above if this host runs the older
|
|
145
|
+
`agenteye-collector`, which does not watch the new root.
|
|
122
146
|
|
|
123
147
|
---
|
|
124
148
|
|
|
@@ -129,7 +153,7 @@ Label every event with a deployment environment (`production`, `staging`, `qa`,
|
|
|
129
153
|
**Option 1: via `configure()`:**
|
|
130
154
|
|
|
131
155
|
```python
|
|
132
|
-
|
|
156
|
+
failproofai_sdk.configure(environment="production")
|
|
133
157
|
```
|
|
134
158
|
|
|
135
159
|
**Option 2: via environment variable:**
|
|
@@ -176,7 +200,7 @@ All methods also accept arbitrary `**kwargs` for custom metadata (see [Custom Fi
|
|
|
176
200
|
Emitted when an agent begins work.
|
|
177
201
|
|
|
178
202
|
```python
|
|
179
|
-
|
|
203
|
+
failproofai_sdk.event.agent_start(
|
|
180
204
|
session_id="run-001",
|
|
181
205
|
agent_id="planner",
|
|
182
206
|
goal="answer user query", # str | None
|
|
@@ -191,7 +215,7 @@ agenteye.event.agent_start(
|
|
|
191
215
|
Emitted when an agent finishes work.
|
|
192
216
|
|
|
193
217
|
```python
|
|
194
|
-
|
|
218
|
+
failproofai_sdk.event.agent_end(
|
|
195
219
|
session_id="run-001",
|
|
196
220
|
agent_id="planner",
|
|
197
221
|
outcome="success", # str | None
|
|
@@ -206,7 +230,7 @@ agenteye.event.agent_end(
|
|
|
206
230
|
Emitted when an agent invokes a tool. Pair with `tool_result`; the SDK auto-computes `duration_ms`.
|
|
207
231
|
|
|
208
232
|
```python
|
|
209
|
-
|
|
233
|
+
failproofai_sdk.event.tool_use(
|
|
210
234
|
session_id="run-001",
|
|
211
235
|
agent_id="planner",
|
|
212
236
|
tool_name="web_search", # str, required
|
|
@@ -222,7 +246,7 @@ agenteye.event.tool_use(
|
|
|
222
246
|
Emitted when a tool returns. Correlates with `tool_use` via `tool_call_id`.
|
|
223
247
|
|
|
224
248
|
```python
|
|
225
|
-
|
|
249
|
+
failproofai_sdk.event.tool_result(
|
|
226
250
|
session_id="run-001",
|
|
227
251
|
agent_id="planner",
|
|
228
252
|
tool_name="web_search",
|
|
@@ -240,7 +264,7 @@ agenteye.event.tool_result(
|
|
|
240
264
|
Emitted just before sending a prompt to an LLM.
|
|
241
265
|
|
|
242
266
|
```python
|
|
243
|
-
|
|
267
|
+
failproofai_sdk.event.model_request(
|
|
244
268
|
session_id="run-001",
|
|
245
269
|
agent_id="planner",
|
|
246
270
|
model="claude-sonnet-4-6", # str | None - any provider/model string; not validated
|
|
@@ -263,7 +287,7 @@ agenteye.event.model_request(
|
|
|
263
287
|
Emitted when the LLM returns a response.
|
|
264
288
|
|
|
265
289
|
```python
|
|
266
|
-
|
|
290
|
+
failproofai_sdk.event.model_response(
|
|
267
291
|
session_id="run-001",
|
|
268
292
|
agent_id="planner",
|
|
269
293
|
model="claude-sonnet-4-6", # str | None - any provider/model string; not validated
|
|
@@ -286,7 +310,7 @@ agenteye.event.model_response(
|
|
|
286
310
|
Emitted when a hook fires. Pair with `hook_completed`; the SDK auto-computes `duration_ms`.
|
|
287
311
|
|
|
288
312
|
```python
|
|
289
|
-
|
|
313
|
+
failproofai_sdk.event.hook_triggered(
|
|
290
314
|
session_id="run-001",
|
|
291
315
|
agent_id="planner",
|
|
292
316
|
hook_name="pre_tool_use", # str, required
|
|
@@ -303,7 +327,7 @@ agenteye.event.hook_triggered(
|
|
|
303
327
|
Emitted when a hook finishes. Correlates with `hook_triggered` via `hook_id`.
|
|
304
328
|
|
|
305
329
|
```python
|
|
306
|
-
|
|
330
|
+
failproofai_sdk.event.hook_completed(
|
|
307
331
|
session_id="run-001",
|
|
308
332
|
agent_id="planner",
|
|
309
333
|
hook_name="pre_tool_use",
|
|
@@ -322,7 +346,7 @@ agenteye.event.hook_completed(
|
|
|
322
346
|
Emitted when an unhandled error occurs.
|
|
323
347
|
|
|
324
348
|
```python
|
|
325
|
-
|
|
349
|
+
failproofai_sdk.event.error(
|
|
326
350
|
session_id="run-001",
|
|
327
351
|
agent_id="planner",
|
|
328
352
|
error_type="TimeoutError", # str, required
|
|
@@ -342,7 +366,7 @@ Human-in-the-loop events give you oversight over the moments where a person step
|
|
|
342
366
|
Emitted when the agent pauses execution to wait for a human to provide input. Pair with `human_input`; the SDK auto-computes `duration_ms` (how long the human took to respond).
|
|
343
367
|
|
|
344
368
|
```python
|
|
345
|
-
|
|
369
|
+
failproofai_sdk.event.human_wait(
|
|
346
370
|
session_id="run-001",
|
|
347
371
|
agent_id="planner",
|
|
348
372
|
input_id="inp-abc", # str, required - correlation key for the matching human_input
|
|
@@ -357,7 +381,7 @@ agenteye.event.human_wait(
|
|
|
357
381
|
Emitted when a human provides input and the agent resumes. Correlates with `human_wait` via `input_id`. `duration_ms` is auto-computed and must not be passed by the caller.
|
|
358
382
|
|
|
359
383
|
```python
|
|
360
|
-
|
|
384
|
+
failproofai_sdk.event.human_input(
|
|
361
385
|
session_id="run-001",
|
|
362
386
|
agent_id="planner",
|
|
363
387
|
input_id="inp-abc", # str, required - must match the prior human_wait
|
|
@@ -371,7 +395,7 @@ agenteye.event.human_input(
|
|
|
371
395
|
Emitted when a human actively pauses the agent (e.g. via a dashboard control). The agent is suspended but not terminated.
|
|
372
396
|
|
|
373
397
|
```python
|
|
374
|
-
|
|
398
|
+
failproofai_sdk.event.human_pause(
|
|
375
399
|
session_id="run-001",
|
|
376
400
|
agent_id="planner",
|
|
377
401
|
reason="user_requested", # str | None
|
|
@@ -384,7 +408,7 @@ agenteye.event.human_pause(
|
|
|
384
408
|
Emitted when a human actively stops the agent mid-execution. Unlike `human_pause`, the agent's work is terminated rather than suspended.
|
|
385
409
|
|
|
386
410
|
```python
|
|
387
|
-
|
|
411
|
+
failproofai_sdk.event.human_interrupt(
|
|
388
412
|
session_id="run-001",
|
|
389
413
|
agent_id="planner",
|
|
390
414
|
reason="output_incorrect", # str | None
|
|
@@ -400,7 +424,7 @@ agenteye.event.human_interrupt(
|
|
|
400
424
|
Any extra keyword arguments are appended to the event after the standard fields:
|
|
401
425
|
|
|
402
426
|
```python
|
|
403
|
-
|
|
427
|
+
failproofai_sdk.event.tool_use(
|
|
404
428
|
session_id="run-001",
|
|
405
429
|
agent_id="planner",
|
|
406
430
|
tool_name="db_query",
|
|
@@ -410,7 +434,7 @@ agenteye.event.tool_use(
|
|
|
410
434
|
)
|
|
411
435
|
```
|
|
412
436
|
|
|
413
|
-
`timestamp`, `type`, and `environment` are reserved and raise `ValueError` (`Reserved field names cannot be used as custom fields: [...]`) if passed as custom fields. `session_id` and `agent_id` are
|
|
437
|
+
`timestamp`, `type`, and `environment` are reserved and raise `ValueError` (`Reserved field names cannot be used as custom fields: [...]`) if passed as custom fields. `session_id` and `agent_id` are **optional** on every event method — omitted, they resolve from the enclosing `session()`/`agent()` scope — and cannot be supplied a second time as custom fields; Python raises `TypeError` if you do. Set the environment with `configure(environment=...)` (or the `AGENTEYE_ENVIRONMENT` variable) instead.
|
|
414
438
|
|
|
415
439
|
Keep payloads as structured JSON when you want to query their fields. Values JSON does not natively support—such as datetimes, UUIDs, decimals, sets, bytes, or model objects—are converted to strings so recording continues safely.
|
|
416
440
|
|
|
@@ -421,7 +445,7 @@ Keep payloads as structured JSON when you want to query their fields. Values JSO
|
|
|
421
445
|
Events are buffered in-process and flushed to disk every `flush_interval` seconds (default 500 ms). Each flush writes one JSONL file:
|
|
422
446
|
|
|
423
447
|
```text
|
|
424
|
-
~/.agenteye/events/event-2026-04-01T12-00-00-000Z.jsonl
|
|
448
|
+
~/.agenteye/events/event-2026-04-01T12-00-00-000Z-48213-7.jsonl
|
|
425
449
|
```
|
|
426
450
|
|
|
427
451
|
The collector watches this directory and uploads files automatically. You do not need to manage these files directly.
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
[](https://github.com/failproofai/failproofai/actions)
|
|
15
15
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
16
16
|
[](https://discord.befailproof.ai/)
|
|
17
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
17
18
|
[](https://docs.befailproof.ai/introduction)
|
|
18
19
|
[](../../LICENSE)
|
|
19
20
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://github.com/failproofai/failproofai/actions)
|
|
13
13
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
14
14
|
[](https://discord.befailproof.ai/)
|
|
15
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
15
16
|
[](https://docs.befailproof.ai/introduction)
|
|
16
17
|
[](../../LICENSE)
|
|
17
18
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://github.com/failproofai/failproofai/actions)
|
|
13
13
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
14
14
|
[](https://discord.befailproof.ai/)
|
|
15
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
15
16
|
[](https://docs.befailproof.ai/introduction)
|
|
16
17
|
[](../../LICENSE)
|
|
17
18
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://github.com/failproofai/failproofai/actions)
|
|
13
13
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
14
14
|
[](https://discord.befailproof.ai/)
|
|
15
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
15
16
|
[](https://docs.befailproof.ai/introduction)
|
|
16
17
|
[](../../LICENSE)
|
|
17
18
|
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
[](https://github.com/failproofai/failproofai/actions)
|
|
15
15
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
16
16
|
[](https://discord.befailproof.ai/)
|
|
17
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
17
18
|
[](https://docs.befailproof.ai/introduction)
|
|
18
19
|
[](../../LICENSE)
|
|
19
20
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://github.com/failproofai/failproofai/actions)
|
|
13
13
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
14
14
|
[](https://discord.befailproof.ai/)
|
|
15
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
15
16
|
[](https://docs.befailproof.ai/introduction)
|
|
16
17
|
[](../../LICENSE)
|
|
17
18
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://github.com/failproofai/failproofai/actions)
|
|
13
13
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
14
14
|
[](https://discord.befailproof.ai/)
|
|
15
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
15
16
|
[](https://docs.befailproof.ai/introduction)
|
|
16
17
|
[](../../LICENSE)
|
|
17
18
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://github.com/failproofai/failproofai/actions)
|
|
13
13
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
14
14
|
[](https://discord.befailproof.ai/)
|
|
15
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
15
16
|
[](https://docs.befailproof.ai/introduction)
|
|
16
17
|
[](../../LICENSE)
|
|
17
18
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://github.com/failproofai/failproofai/actions)
|
|
13
13
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
14
14
|
[](https://discord.befailproof.ai/)
|
|
15
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
15
16
|
[](https://docs.befailproof.ai/introduction)
|
|
16
17
|
[](../../LICENSE)
|
|
17
18
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://github.com/failproofai/failproofai/actions)
|
|
13
13
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
14
14
|
[](https://discord.befailproof.ai/)
|
|
15
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
15
16
|
[](https://docs.befailproof.ai/introduction)
|
|
16
17
|
[](../../LICENSE)
|
|
17
18
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://github.com/failproofai/failproofai/actions)
|
|
13
13
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
14
14
|
[](https://discord.befailproof.ai/)
|
|
15
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
15
16
|
[](https://docs.befailproof.ai/introduction)
|
|
16
17
|
[](../../LICENSE)
|
|
17
18
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://github.com/failproofai/failproofai/actions)
|
|
13
13
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
14
14
|
[](https://discord.befailproof.ai/)
|
|
15
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
15
16
|
[](https://docs.befailproof.ai/introduction)
|
|
16
17
|
[](../../LICENSE)
|
|
17
18
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://github.com/failproofai/failproofai/actions)
|
|
13
13
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
14
14
|
[](https://discord.befailproof.ai/)
|
|
15
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
15
16
|
[](https://docs.befailproof.ai/introduction)
|
|
16
17
|
[](../../LICENSE)
|
|
17
18
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[](https://github.com/failproofai/failproofai/actions)
|
|
13
13
|
[](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml)
|
|
14
14
|
[](https://discord.befailproof.ai/)
|
|
15
|
+
[](https://www.reddit.com/r/failproofai/)
|
|
15
16
|
[](https://docs.befailproof.ai/introduction)
|
|
16
17
|
[](../../LICENSE)
|
|
17
18
|
|