failproofai 1.0.8 → 1.0.9-beta.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 +5 -5
- 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 +2 -2
- 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.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 +2 -2
- 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.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.nft.json +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.nft.json +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.nft.json +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.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +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/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +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 +2 -2
- package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +14 -14
- package/.next/standalone/.next/server/app/policies/page.js +4 -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/build-manifest.json +2 -2
- 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.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 +2 -2
- 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.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 +2 -2
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- 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 +2 -2
- package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +8 -8
- 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]__0o07qi9._.js +1 -1
- package/.next/standalone/.next/server/chunks/_09dz7xv._.js +20 -20
- package/.next/standalone/.next/server/chunks/_0tovk6q._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0trp3yc._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1ek68ln._.js +2 -2
- 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_09z9-p7._.js +2 -2
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_hooks_1aveq0u._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03m2iw6._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04usis8._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__056wjo4._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n0xg95._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rwtwpm._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__12e7nhs._.js → [root-of-the-server]__1-bm5zf._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11mayhe._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15578wp._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1m_svbe._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1pprgri._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1q4p5b8._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_042cgl1._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0bqoto4._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_11ilmst._.js +23 -0
- package/.next/standalone/.next/server/chunks/ssr/_1gb0ifp._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/{_0-vcssj._.js → _1jatlmf._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1zopuov._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/app_actions_get-scheduled-audit_ts_0ei9sni._.js +1 -1
- 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_02tf1h4._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_effective-reviewers_ts_1h4wtvo._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_semantic_pack-policies_ts_0gh_bu_._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +5 -5
- 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 +23 -23
- package/.next/standalone/.next/static/chunks/{06jxjnw8bfczc.js → 0542cuk_va8g1.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0wbjy0zo-m7is.js → 08ckontevw-0w.js} +1 -1
- package/.next/standalone/.next/static/chunks/0pefjgvu4x-sx.js +1 -0
- package/.next/standalone/.next/static/chunks/{21uv-uusw329x.js → 1-d48e9k-7e1a.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0m-9d6yn9hx4j.js → 1r74hmr1wm_sd.js} +1 -1
- package/.next/standalone/.next/static/chunks/1uec0n0lcx5h1.js +1 -0
- package/.next/standalone/.next/static/chunks/21-pqc3-l9ak2.js +6 -0
- package/.next/standalone/.next/static/chunks/21qlo00jis4w-.js +1 -0
- package/.next/standalone/.next/static/chunks/2n00c3zqyloy9.js +1 -0
- package/.next/standalone/.next/static/chunks/{0bhidk90e-07f.css → 3_e_wg5_oay87.css} +1 -1
- package/.next/standalone/.next/static/chunks/{3c3qbmosdjl6w.js → 3tv107_for_n7.js} +1 -1
- package/.next/standalone/.next/static/chunks/{2qdpj67x6ifk_.js → 3vp54x0dyrrm6.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-38nzuvp95_2rv.js → turbopack-11dn2pegmg9_9.js} +1 -1
- package/.next/standalone/app/actions/get-jev-config.ts +2 -2
- package/.next/standalone/app/actions/update-jev-config.ts +12 -9
- package/.next/standalone/app/components/jev-notices.tsx +10 -10
- package/.next/standalone/app/settings/jev-panel.tsx +11 -11
- package/.next/standalone/fp-cloud-cli/CHANGELOG.md +2 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/output.py +26 -0
- package/.next/standalone/fp-cloud-cli/tests/test_output.py +27 -0
- package/.next/standalone/fp-cloud-cli/uv.lock +3 -3
- package/.next/standalone/hermes-plugin/README.md +18 -8
- package/.next/standalone/node_modules/@next/env/package.json +1 -1
- package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
- package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
- package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -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 +10 -10
- package/.next/standalone/package.json +12 -12
- package/.next/standalone/sdk/python/uv.lock +18 -18
- package/.next/standalone/server.js +1 -1
- package/bin/failproofai.mjs +33 -7
- package/dist/cli.mjs +1385 -1158
- package/dist/worker.mjs +59 -375
- package/hermes-plugin/README.md +18 -8
- package/package.json +12 -12
- package/scripts/build-policy-pack.mjs +6 -9
- package/src/hooks/cloud-connection.ts +12 -6
- package/src/hooks/custom-hooks-loader.ts +1 -1
- package/src/hooks/effective-reviewers.ts +50 -43
- package/src/hooks/handler.ts +25 -16
- package/src/hooks/hermes-update.ts +74 -0
- package/src/hooks/hook-activity-store.ts +3 -3
- package/src/hooks/integrations.ts +472 -68
- package/src/hooks/jev-activity.ts +8 -3
- package/src/hooks/jev-cli.ts +17 -17
- package/src/hooks/jev-cloud-connection.ts +4 -4
- package/src/hooks/manager.ts +3 -2
- package/src/hooks/pack-cli.ts +24 -23
- package/src/hooks/pack-manifest.ts +25 -2
- package/src/hooks/pack-store.ts +2 -2
- package/src/hooks/policy-authority.ts +51 -32
- package/src/hooks/policy-evaluator.ts +5 -5
- package/src/hooks/policy-registry.ts +5 -7
- package/src/hooks/policy-reviewability.ts +30 -12
- package/src/hooks/policy-types.ts +4 -4
- package/src/hooks/safe-config-write.ts +119 -0
- package/src/hooks/semantic/combine.ts +13 -13
- package/src/hooks/semantic/evaluator.ts +5 -5
- package/src/hooks/semantic/jev-client.ts +1 -1
- package/src/hooks/semantic/jev-config.ts +21 -12
- package/src/hooks/semantic/jev-review.ts +3 -3
- package/src/hooks/semantic/jev-stats.ts +17 -17
- package/src/hooks/semantic/pack-policies.ts +48 -48
- package/src/hooks/semantic/policies.ts +13 -425
- package/src/hooks/semantic/precondition-names.ts +1 -1
- package/src/hooks/semantic/preconditions.ts +1 -1
- package/src/hooks/semantic/types.ts +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__13t1zkw._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_13kfn90._.js +0 -23
- package/.next/standalone/.next/static/chunks/06dnzbolj00mc.js +0 -6
- package/.next/standalone/.next/static/chunks/16f3fa-lx38hk.js +0 -1
- package/.next/standalone/.next/static/chunks/2g2tki08kdhie.js +0 -1
- package/.next/standalone/.next/static/chunks/3-nbtkhg9y-1j.js +0 -1
- package/.next/standalone/.next/static/chunks/355km0ihuqo1p.js +0 -1
- /package/.next/standalone/.next/static/{5yKM8NoTOpUI0MoQl8eo5 → ozuWoyIwOTqeUUjKqOKiH}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{5yKM8NoTOpUI0MoQl8eo5 → ozuWoyIwOTqeUUjKqOKiH}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{5yKM8NoTOpUI0MoQl8eo5 → ozuWoyIwOTqeUUjKqOKiH}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[93133,(e,i,t)=>{i.exports={name:"failproofai",version:"1.0.
|
|
1
|
+
module.exports=[93133,(e,i,t)=>{i.exports={name:"failproofai",version:"1.0.9-beta.1",description:"Observability and enforcement for AI agent harnesses. 40 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","hermes-plugin/","openclaw-plugin/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node --external sql.js && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"","build:worker":"bun build --target=node --format=esm --outfile=dist/worker.mjs bin/failproofai-worker.mjs --external posthog-node --external sql.js",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun run build:worker && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate","validate:mdx":"bun scripts/validate-mdx.ts","docs:audit":"bun scripts/docs-audit.ts","build:pack":"bun scripts/build-policy-pack.mjs"},keywords:["agent-observability","llm-observability","agent-tracing","agent-monitoring","agent-harness","guardrails","enforcement","policies","evals","ai-agent","autonomous-agent","agent-reliability","failure-prevention","claude-code","codex","hermes","openclaw","cli","local-first","hooks"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/FailproofAI/failproofai",repository:{type:"git",url:"https://github.com/FailproofAI/failproofai.git"},bugs:{url:"https://github.com/FailproofAI/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.128.0","@mdx-js/mdx":"^3.1.1","@tailwindcss/postcss":"^4.3.1","@tanstack/react-virtual":"^3.14.10","@testing-library/jest-dom":"^7.0.0","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.5","@types/node":"26.6.2","@types/react":"19.3.0","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.1.0",clsx:"^2.1.1",eslint:"^10.9.0","eslint-config-next":"^16.3.2",jsdom:"^30.0.1","lucide-react":"^1.33.0",next:"^16.3.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.1","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.9-beta.1","@failproofai/failproofaid-linux-arm64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-x64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-arm64":"1.0.9-beta.1"},failproofaidBinaries:{"linux-x64":"a0db1ad28bc0584bb4554b1dc60b55353fad9d982354880f9cc1e1ee567e5d36","linux-arm64":"b8d2797db8d93ce0deec86707093dd22ecd2d3fe2b137944938f4851d31718f1","darwin-x64":"94dc7ea33121c884736eadafc8281b0b752824b5c7fbe1726745bd1fa2b2a577","darwin-arm64":"8da18bbede18b8c112e8c46b6f0de798e84445c163a91a80edeef6d9e21da8ad"}}}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=package_json_%5Bjson%5D_cjs_1nxcc4v._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[16774,99891,98901,52306,e=>{"use strict";let r;var t=e.i(66680),i=e.i(2157),o=e.i(50227),n=e.i(24214),a=e.i(79857);e.i(97348);let s=new Set(["destructive-deletion","production-infra-change","git-history-rewrite","push-to-protected-branch","commit-on-protected-branch","secret-exposure","credential-exfiltration","remote-code-execution","privilege-escalation","database-destruction","read-outside-workspace","agent-config-tampering","system-modification","env-secrets-dump","external-destructive-action","external-data-egress"]),c=e=>"string"==typeof e&&e.length>0;function l(e){let r={};("hard"===e.authority||"reviewable"===e.authority)&&(r.authority=e.authority);let t=e.reviewedBy;return Array.isArray(t)&&t.length>0&&t.every(c)&&(r.reviewedBy=[...t]),r}e.s(["SEMANTIC_REVIEWER_NAMES",0,s,"authorityFieldsOf",0,l,"resolvePolicyAuthority",0,function(e,r=s,t){let i=e?.authority==="reviewable";if(!e||"hard"==(!0!==e.alwaysOn&&"reviewable"===e.authority&&Array.isArray(e.reviewedBy)&&e.reviewedBy.filter(e=>"string"==typeof e&&e.length>0).length>0?"reviewable":"hard")){var o;return i?{authority:"hard",downgraded:!0===(o=e).alwaysOn?"it is alwaysOn, and the self-protection guard is never reviewable":Array.isArray(o.reviewedBy)&&0!==o.reviewedBy.length?"reviewedBy is not a list of semantic policy names":"reviewedBy does not name any semantic policy"}:{authority:"hard"}}let n=e.reviewedBy;if(!n.every(c))return{authority:"hard",downgraded:"reviewedBy is not a list of semantic policy names"};let a=n.filter(e=>!r.has(e));return a.length>0?{authority:"hard",downgraded:`reviewedBy names ${a.map(e=>(function(e,r,t){let i=JSON.stringify(e),o=t?.get(e);if(o)return`${i}, which packs ${o.join(" and ")} declare differently, so it is asked for neither`;if(r===s)return`${i}, which is not a semantic policy in this build`;let n=[...r].sort(),a=n.length>6?`${n.slice(0,6).join(", ")} and ${n.length-6} more`:n.join(", ");return`${i}, which is not among the Jev checks it is judged against (${a})`})(e,r,t)).join("; ")}`}:{authority:"reviewable",reviewedBy:[...new Set(n)]}}],99891);let f=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/,d=/^(?:0|[1-9]\d*)$/;function p(e){if("string"!=typeof e)return null;let r=f.exec(e);return r?{major:Number(r[1]),minor:Number(r[2]),patch:Number(r[3]),prerelease:void 0===r[4]?[]:r[4].split(".").map(e=>d.test(e)?Number(e):e)}:null}let h=(e,r)=>e<r?-1:+(e>r),u=["always","protected_branch","in_git_repo","has_paths","paths_outside_project","system_or_root_paths"];function y(e){return"string"==typeof e&&u.includes(e)}e.s(["PACK_PRECONDITION_NAMES",0,u,"isPackPreconditionName",0,y],98901);let m=[1],g=/^[a-f0-9]{64}$/,w=/^[A-Za-z0-9._-]{1,64}\/[A-Za-z0-9._-]{1,64}$/,$=/^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$/,v=/^[0-9a-f]{7,40}$/,b=/^[A-Za-z0-9._-]{1,128}$/,A=/^[a-z][a-z0-9_]{0,31}$/,O=new Set(["exempt","user_asked"]),E=new Set(["shell","write","read","network","other"]),k=new Set(["string","number","boolean","string[]","pattern[]"]);function S(e,r,t,i){if("string"!=typeof t||0===t.length)throw Error(`${e} is missing ${r}`);if(t.length>i)throw Error(`${e} has a ${r} of ${t.length} characters, over the ${i}-character cap`);return t}function j(e,r,t){let i;if(!r||"object"!=typeof r||Array.isArray(r))throw Error(`${e} is not an object`);if(null!==t)i=t;else{if("string"!=typeof r.id||!A.test(r.id))throw Error(`${e} has an unsafe id ${JSON.stringify(r.id)}`);if(O.has(r.id))throw Error(`${e} uses the reserved probe id ${JSON.stringify(r.id)}`);i=r.id}let o=S(e,"instructions",r.instructions,600);if(void 0===r.criteria)return{id:i,instructions:o};if(!r.criteria||"object"!=typeof r.criteria||Array.isArray(r.criteria))throw Error(`${e} has criteria that is not an object`);let n=r.criteria;return{id:i,instructions:o,criteria:{true:S(e,"criteria.true",n.true,300),false:S(e,"criteria.false",n.false,300)}}}function P(){let e,r=process.env.FAILPROOFAI_PACK_DIR?(0,o.resolve)(process.env.FAILPROOFAI_PACK_DIR,"installed.json"):(0,a.packsInstalledFile)();if(!(0,i.existsSync)(r))return{packs:[],errors:[]};try{e=JSON.parse((0,i.readFileSync)(r,"utf8"))}catch(e){return{packs:[],errors:[{id:null,reason:`unreadable pack manifest: ${_(e)}`}]}}if(!e||"object"!=typeof e)return{packs:[],errors:[{id:null,reason:"pack manifest is not an object"}]};let s=e;if(!m.includes(s.schemaVersion))return{packs:[],errors:[{id:null,reason:`unsupported pack manifest schema ${String(s.schemaVersion)} (supported: ${m.join(", ")})`}]};if(!Array.isArray(s.packs))return{packs:[],errors:[{id:null,reason:"pack manifest packs is not an array"}]};let c=process.env.FAILPROOFAI_PACK_DIR??(0,a.packsDir)(),f=[],d=[],A=[],O=new Set;for(let e of s.packs){let r=e&&"object"==typeof e&&"string"==typeof e.id?e.id:null,a=[];try{let r=function(e,r,a){if(!r||"object"!=typeof r)throw Error("pack entry is not an object");let s=function(e){if("string"!=typeof e.id||!w.test(e.id))throw Error(`unsafe pack id ${JSON.stringify(e.id)}`);if("string"!=typeof e.version||!$.test(e.version))throw Error(`invalid version for pack ${e.id}`);if(void 0!==e.effect&&"enforce"!==e.effect&&"observe"!==e.effect)throw Error(`unknown effect ${JSON.stringify(e.effect)} for pack ${e.id}`);let r="string"==typeof e.commit&&v.test(e.commit.trim().toLowerCase())?e.commit.trim().toLowerCase():void 0;return{id:e.id,version:e.version,effect:e.effect??"enforce",...r?{commit:r}:{}}}(r);if("string"!=typeof r.source||0===r.source.length)throw Error(`pack ${r.id} has no source`);if("string"!=typeof r.sha256||!g.test(r.sha256))throw Error(`invalid SHA-256 for pack ${r.id}`);let c=s.effect,f=function(e,r,t=n.version){if(void 0===r)return{kind:"satisfied"};let i=function(e,r){let t=p(e),i=p(r);return t&&i?h(t.major,i.major)||h(t.minor,i.minor)||h(t.patch,i.patch)||function(e,r){if(0===e.length&&0===r.length)return 0;if(0===e.length)return 1;if(0===r.length)return -1;for(let t=0;t<Math.min(e.length,r.length);t++){let i=e[t],o=r[t];if(i===o)continue;let n="number"==typeof i,a="number"==typeof o;if(n!==a)return n?-1:1;if(n&&a)return h(i,o);return i<o?-1:1}return h(e.length,r.length)}(t.prerelease,i.prerelease):null}(t,r);return null===i?{kind:"unreadable",reason:`pack ${e} declares minCliVersion ${JSON.stringify(r)}, which is not a version this CLI can compare against its own (${t}) — the requirement was ignored`}:i<0?{kind:"too-old",reason:`pack ${e} needs failproofai ${String(r)} or newer and this is ${t} — run \`npm i -g "failproofai@>=${String(r)}" && failproofai update\``}:{kind:"satisfied",declared:r}}(s.id,r.minCliVersion);if("too-old"===f.kind)throw Error(f.reason);"unreadable"===f.kind&&a.push(f.reason);let d=function(e,r){if(!r||(0,o.isAbsolute)(r))throw Error(`unsafe managed policy path ${JSON.stringify(r)}`);let t=(0,o.resolve)(e,r),n=(0,o.relative)(e,t);if(n.startsWith("..")||(0,o.isAbsolute)(n))throw Error(`managed policy path escapes its root: ${JSON.stringify(r)}`);let a=(0,i.realpathSync)(e),s=(0,i.realpathSync)(t),c=(0,o.relative)(a,s);if(c.startsWith("..")||(0,o.isAbsolute)(c))throw Error(`managed policy symlink escapes its root: ${JSON.stringify(r)}`);return s}(e,r.entry),m=(0,t.createHash)("sha256").update((0,i.readFileSync)(d)).digest("hex");if(m!==r.sha256)throw Error(`pack ${r.id} failed integrity verification: expected ${r.sha256}, got ${m}`);if(!Array.isArray(r.policies))throw Error(`pack ${r.id} policies is not an array`);let A=r.policies.map((e,t)=>(function(e,r,t,i){let o=`${e} policy #${t}`;if(!r||"object"!=typeof r)throw Error(`${o} is not an object`);let n=r.name;if("string"!=typeof n||!b.test(n))throw Error(`${o} has an unsafe name ${JSON.stringify(n)}`);if("alwaysOn"in r)throw Error(`${o} declares alwaysOn, which packs may not set`);if("string"!=typeof r.description||0===r.description.length)throw Error(`${o} is missing a description`);if("string"!=typeof r.category||0===r.category.length)throw Error(`${o} is missing a category`);if("boolean"!=typeof r.defaultEnabled)throw Error(`${o} is missing defaultEnabled`);if(!r.match||"object"!=typeof r.match)throw Error(`${o} is missing a match`);let a=r.match;for(let e of["events","toolNames"]){let r=a[e];if(void 0!==r&&(!Array.isArray(r)||r.some(e=>"string"!=typeof e||0===e.length)))throw Error(`${o} has a match.${e} that is not a list of names`)}let s=l(r),c=["authority","reviewedBy"].filter(e=>e in r&&!(e in s));if("params"in r){let e=function(e){if(!e||"object"!=typeof e||Array.isArray(e))return"params is not an object";for(let[r,t]of Object.entries(e)){if(0===r.length)return"params has an empty parameter name";if(!t||"object"!=typeof t||Array.isArray(t))return`params.${r} is not an object`;if("string"!=typeof t.type||!k.has(t.type))return`params.${r} has type ${JSON.stringify(t.type)}, which is not one of ${[...k].join(", ")}`;if("string"!=typeof t.description||0===t.description.length)return`params.${r} is missing a description`;if(!("default"in t))return`params.${r} is missing a default`}}(r.params);e&&(i?.push(`${o} declares a params schema that was dropped: ${e}`),c.push("params"))}return c.length>0?Object.fromEntries(Object.entries(r).filter(([e])=>!c.includes(e))):r})(r.id,e,t,a)),O=new Set;for(let e of A){if(O.has(e.name))throw Error(`pack ${r.id} declares ${e.name} twice`);O.add(e.name)}let P=null;if(void 0!==r.enabled){if(!Array.isArray(r.enabled)||r.enabled.some(e=>"string"!=typeof e))throw Error(`pack ${r.id} enabled is not an array of names`);P=r.enabled.filter(e=>O.has(e))}let N=null;if(void 0!==r.clis){if(!Array.isArray(r.clis)||r.clis.some(e=>"string"!=typeof e))throw Error(`pack ${r.id} clis is not an array of agent names`);N=r.clis}return{clis:N,id:s.id,version:s.version,source:r.source,path:d,sha256:r.sha256,effect:c,policies:A,semantic:function(e,r,t){if(void 0===r)return[];if(!Array.isArray(r))return t.push(`pack ${e} semantic is not an array, so none of it was loaded`),[];let i=[],o=new Set;for(let[n,a]of r.entries()){if(i.length>=24){t.push(`pack ${e} declares more than 24 semantic policies; the ${r.length-24} past that cap were dropped`);break}try{let r=function(e,r,t){let i=`${e} semantic policy #${t}`;if(!r||"object"!=typeof r||Array.isArray(r))throw Error(`${i} is not an object`);let o=r.name;if("string"!=typeof o||!b.test(o))throw Error(`${i} has an unsafe name ${JSON.stringify(o)}`);if("alwaysOn"in r)throw Error(`${i} declares alwaysOn, which packs may not set`);let n=S(`${e} semantic policy ${o}`,"title",r.title,120),a=`${e} semantic policy ${o}`;if(!Array.isArray(r.appliesTo)||0===r.appliesTo.length)throw Error(`${a} has no appliesTo tool classes`);let s=r.appliesTo.find(e=>"string"!=typeof e||!E.has(e));if(void 0!==s)throw Error(`${a} applies to ${JSON.stringify(s)}, which is not a tool class (${[...E].join(", ")})`);if("deny"!==r.mode&&"instruct"!==r.mode)throw Error(`${a} has mode ${JSON.stringify(r.mode)}, which must be "deny" or "instruct"`);if("boolean"!=typeof r.userCanOverride)throw Error(`${a} is missing userCanOverride, which has no default`);if(!Array.isArray(r.probes)||0===r.probes.length)throw Error(`${a} declares no probes`);if(r.probes.length>6)throw Error(`${a} declares ${r.probes.length} probes, over the cap of 6`);let c=r.probes.map((e,r)=>j(`${a} probe #${r}`,e,null)),l=new Set;for(let e of c){if(l.has(e.id))throw Error(`${a} declares probe ${e.id} twice`);l.add(e.id)}let f=void 0===r.exempt?void 0:j(`${a} exempt`,r.exempt,"exempt");if(void 0!==r.precondition&&!y(r.precondition))throw Error(`${a} names precondition ${JSON.stringify(r.precondition)}, which this build does not have (${u.join(", ")})`);let d=S(a,"guidance",r.guidance,600);return{name:o,title:n,appliesTo:r.appliesTo,mode:r.mode,userCanOverride:r.userCanOverride,probes:c,...f?{exempt:f}:{},...void 0!==r.precondition?{precondition:r.precondition}:{},guidance:d}}(e,a,n);if(o.has(r.name))throw Error(`pack ${e} declares semantic policy ${r.name} twice`);o.add(r.name),i.push(r)}catch(e){t.push(_(e))}}return i}(s.id,r.semantic,a),..."satisfied"===f.kind&&f.declared?{minCliVersion:f.declared}:{},enabled:P}}(c,e,a);if(O.has(r.id))throw Error(`duplicate pack id ${r.id}`);O.add(r.id),f.push(r),A.push(...a)}catch(i){let t=e&&("observe"===e.effect||"enforce"===e.effect)?e.effect:"enforce";d.push({id:r,reason:_(i),effect:t,...Array.isArray(e?.policies)?{declared:function(e){let r=[];for(let t of e)t&&"object"==typeof t&&"string"==typeof t.name&&t.match&&"object"==typeof t.match&&r.push(t);return r}(e.policies)}:{},...Array.isArray(e?.policies)&&0===e.policies.length?{semanticOnly:!0}:{},...Array.isArray(e?.clis)&&e.clis.every(e=>"string"==typeof e)?{clis:e.clis}:{}})}}return{packs:f,errors:d,...A.length>0?{warnings:A}:{}}}function _(e){return e instanceof Error?e.message:String(e)}e.s(["readInstalledPacks",0,P,"semanticQuestions",0,function(e){return e.exempt?[...e.probes,e.exempt]:e.probes}],52306);let N=null;function I(e){let r=new Map,t=new Map;for(let i of e)for(let e of i.semantic??[]){if(C(i,e.name))continue;let o=function e(r){if(Array.isArray(r))return`[${r.map(e).join(",")}]`;if(null!==r&&"object"==typeof r){let t=Object.entries(r).filter(([,e])=>void 0!==e).sort(([e],[r])=>e<r?-1:+(e>r));return`{${t.map(([r,t])=>`${JSON.stringify(r)}:${e(t)}`).join(",")}}`}return JSON.stringify(r)??"null"}(e),n=r.get(e.name);if(void 0===n){r.set(e.name,{form:o,ids:[i.id]});continue}n.ids.push(i.id),n.form!==o&&t.set(e.name,n.ids)}return t}function F(e){return/^github:FailproofAI\//i.test(e.source??"")}function C(e,r){return s.has(r)&&!F(e)}e.s(["effectiveReviewerNames",0,function(){if(N)return N;let e=s;try{var t,i,o;let n,a,c=(t=P().packs,i=r,t.filter(e=>"observe"!==e.effect&&!(i&&Array.isArray(e.clis)&&e.clis.length>0&&!e.clis.includes(i))));o=c,n=I(o),a=o.flatMap(e=>(e.semantic??[]).filter(r=>!C(e,r.name)).map(e=>e.name)).filter(e=>!n.has(e)),e=0===a.length?s:new Set(o.some(e=>F(e)&&(e.semantic??[]).length>0)?a:[...s,...a]),I(c)}catch{}return N=e,e},"forgetEffectiveReviewerNames",0,function(e){N=null,r=e}],16774)},97348,e=>{"use strict";var r=e.i(2157),t=e.i(50227),i=e.i(79857);let o={info:0,warn:1,error:2},n=(0,i.logsDir)(),a=!1,s="warn",c=!1,l=n;function f(e){return!function(){if(a)return;a=!0;let e=(process.env.FAILPROOFAI_LOG_LEVEL??"").toLowerCase();("info"===e||"warn"===e||"error"===e)&&(s=e);let r=(process.env.FAILPROOFAI_HOOK_LOG_FILE??"").trim();r&&(c=!0,"1"!==r&&"true"!==r&&(l=r))}(),o[e]>=o[s]}function d(e,r){process.stderr.write(`[failproofai:hook] ${e} ${r}
|
|
1
|
+
module.exports=[16774,99891,98901,52306,e=>{"use strict";let r;var t=e.i(66680),i=e.i(2157),o=e.i(50227),n=e.i(24214),a=e.i(79857);e.i(97348);let s=new Set(["destructive-deletion","production-infra-change","git-history-rewrite","push-to-protected-branch","commit-on-protected-branch","secret-exposure","credential-exfiltration","remote-code-execution","privilege-escalation","database-destruction","read-outside-workspace","agent-config-tampering","system-modification","env-secrets-dump","external-destructive-action","external-data-egress"]),c=new Set,l=e=>"string"==typeof e&&e.length>0;function f(e){let r={};("hard"===e.authority||"reviewable"===e.authority)&&(r.authority=e.authority);let t=e.reviewedBy;return Array.isArray(t)&&t.length>0&&t.every(l)&&(r.reviewedBy=[...t]),r}e.s(["NO_REVIEWERS",0,c,"SEMANTIC_REVIEWER_NAMES",0,s,"authorityFieldsOf",0,f,"resolvePolicyAuthority",0,function(e,r=c,t){let i=e?.authority==="reviewable";if(!e||"hard"==(!0!==e.alwaysOn&&"reviewable"===e.authority&&Array.isArray(e.reviewedBy)&&e.reviewedBy.filter(e=>"string"==typeof e&&e.length>0).length>0?"reviewable":"hard")){var o;return i?{authority:"hard",downgraded:!0===(o=e).alwaysOn?"it is alwaysOn, and the self-protection guard is never reviewable":Array.isArray(o.reviewedBy)&&0!==o.reviewedBy.length?"reviewedBy is not a list of semantic policy names":"reviewedBy does not name any semantic policy"}:{authority:"hard"}}let n=e.reviewedBy;if(!n.every(l))return{authority:"hard",downgraded:"reviewedBy is not a list of semantic policy names"};let a=n.filter(e=>!r.has(e));return 0!==r.size||a.some(e=>t?.has(e))?a.length>0?{authority:"hard",downgraded:`reviewedBy names ${a.map(e=>(function(e,r,t){let i=JSON.stringify(e),o=t?.get(e);if(o)return`${i}, which packs ${o.join(" and ")} declare differently, so it is asked for neither`;if(r===s)return`${i}, which is not a semantic policy in this build`;let n=[...r].sort(),a=n.length>6?`${n.slice(0,6).join(", ")} and ${n.length-6} more`:n.join(", ");return`${i}, which is not among the Jev checks it is judged against (${a})`})(e,r,t)).join("; ")}`}:{authority:"reviewable",reviewedBy:[...new Set(n)]}:{authority:"hard"}}],99891);let d=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/,p=/^(?:0|[1-9]\d*)$/;function h(e){if("string"!=typeof e)return null;let r=d.exec(e);return r?{major:Number(r[1]),minor:Number(r[2]),patch:Number(r[3]),prerelease:void 0===r[4]?[]:r[4].split(".").map(e=>p.test(e)?Number(e):e)}:null}let u=(e,r)=>e<r?-1:+(e>r),y=["always","protected_branch","in_git_repo","has_paths","paths_outside_project","system_or_root_paths"];function m(e){return"string"==typeof e&&y.includes(e)}e.s(["PACK_PRECONDITION_NAMES",0,y,"isPackPreconditionName",0,m],98901);let g=[1],w=/^[a-f0-9]{64}$/,$=/^[A-Za-z0-9._-]{1,64}\/[A-Za-z0-9._-]{1,64}$/,v=/^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$/,b=/^[0-9a-f]{7,40}$/,A=/^[A-Za-z0-9._-]{1,128}$/,O=/^[a-z][a-z0-9_]{0,31}$/,E=new Set(["exempt","user_asked"]),S=new Set(["shell","write","read","network","other"]),k=new Set(["string","number","boolean","string[]","pattern[]"]);function j(e,r,t,i){if("string"!=typeof t||0===t.length)throw Error(`${e} is missing ${r}`);if(t.length>i)throw Error(`${e} has a ${r} of ${t.length} characters, over the ${i}-character cap`);return t}function P(e,r,t){let i;if(!r||"object"!=typeof r||Array.isArray(r))throw Error(`${e} is not an object`);if(null!==t)i=t;else{if("string"!=typeof r.id||!O.test(r.id))throw Error(`${e} has an unsafe id ${JSON.stringify(r.id)}`);if(E.has(r.id))throw Error(`${e} uses the reserved probe id ${JSON.stringify(r.id)}`);i=r.id}let o=j(e,"instructions",r.instructions,600);if(void 0===r.criteria)return{id:i,instructions:o};if(!r.criteria||"object"!=typeof r.criteria||Array.isArray(r.criteria))throw Error(`${e} has criteria that is not an object`);let n=r.criteria;return{id:i,instructions:o,criteria:{true:j(e,"criteria.true",n.true,300),false:j(e,"criteria.false",n.false,300)}}}function _(){let e,r=process.env.FAILPROOFAI_PACK_DIR?(0,o.resolve)(process.env.FAILPROOFAI_PACK_DIR,"installed.json"):(0,a.packsInstalledFile)();if(!(0,i.existsSync)(r))return{packs:[],errors:[]};try{e=JSON.parse((0,i.readFileSync)(r,"utf8"))}catch(e){return{packs:[],errors:[{id:null,reason:`unreadable pack manifest: ${N(e)}`}]}}if(!e||"object"!=typeof e)return{packs:[],errors:[{id:null,reason:"pack manifest is not an object"}]};let s=e;if(!g.includes(s.schemaVersion))return{packs:[],errors:[{id:null,reason:`unsupported pack manifest schema ${String(s.schemaVersion)} (supported: ${g.join(", ")})`}]};if(!Array.isArray(s.packs))return{packs:[],errors:[{id:null,reason:"pack manifest packs is not an array"}]};let c=process.env.FAILPROOFAI_PACK_DIR??(0,a.packsDir)(),l=[],d=[],p=[],O=new Set;for(let e of s.packs){let r=e&&"object"==typeof e&&"string"==typeof e.id?e.id:null,a=[];try{let r=function(e,r,a){if(!r||"object"!=typeof r)throw Error("pack entry is not an object");let s=function(e){if("string"!=typeof e.id||!$.test(e.id))throw Error(`unsafe pack id ${JSON.stringify(e.id)}`);if("string"!=typeof e.version||!v.test(e.version))throw Error(`invalid version for pack ${e.id}`);if(void 0!==e.effect&&"enforce"!==e.effect&&"observe"!==e.effect)throw Error(`unknown effect ${JSON.stringify(e.effect)} for pack ${e.id}`);let r="string"==typeof e.commit&&b.test(e.commit.trim().toLowerCase())?e.commit.trim().toLowerCase():void 0;return{id:e.id,version:e.version,effect:e.effect??"enforce",...r?{commit:r}:{}}}(r);if("string"!=typeof r.source||0===r.source.length)throw Error(`pack ${r.id} has no source`);if("string"!=typeof r.sha256||!w.test(r.sha256))throw Error(`invalid SHA-256 for pack ${r.id}`);let c=s.effect,l=function(e,r,t=n.version){if(void 0===r)return{kind:"satisfied"};let i=function(e,r){let t=h(e),i=h(r);return t&&i?u(t.major,i.major)||u(t.minor,i.minor)||u(t.patch,i.patch)||function(e,r){if(0===e.length&&0===r.length)return 0;if(0===e.length)return 1;if(0===r.length)return -1;for(let t=0;t<Math.min(e.length,r.length);t++){let i=e[t],o=r[t];if(i===o)continue;let n="number"==typeof i,a="number"==typeof o;if(n!==a)return n?-1:1;if(n&&a)return u(i,o);return i<o?-1:1}return u(e.length,r.length)}(t.prerelease,i.prerelease):null}(t,r);return null===i?{kind:"unreadable",reason:`pack ${e} declares minCliVersion ${JSON.stringify(r)}, which is not a version this CLI can compare against its own (${t}) — the requirement was ignored`}:i<0?{kind:"too-old",reason:`pack ${e} needs failproofai ${String(r)} or newer and this is ${t} — run \`npm i -g "failproofai@>=${String(r)}" && failproofai update\``}:{kind:"satisfied",declared:r}}(s.id,r.minCliVersion);if("too-old"===l.kind)throw Error(l.reason);"unreadable"===l.kind&&a.push(l.reason);let d=function(e,r){if(!r||(0,o.isAbsolute)(r))throw Error(`unsafe managed policy path ${JSON.stringify(r)}`);let t=(0,o.resolve)(e,r),n=(0,o.relative)(e,t);if(n.startsWith("..")||(0,o.isAbsolute)(n))throw Error(`managed policy path escapes its root: ${JSON.stringify(r)}`);let a=(0,i.realpathSync)(e),s=(0,i.realpathSync)(t),c=(0,o.relative)(a,s);if(c.startsWith("..")||(0,o.isAbsolute)(c))throw Error(`managed policy symlink escapes its root: ${JSON.stringify(r)}`);return s}(e,r.entry),p=(0,t.createHash)("sha256").update((0,i.readFileSync)(d)).digest("hex");if(p!==r.sha256)throw Error(`pack ${r.id} failed integrity verification: expected ${r.sha256}, got ${p}`);if(!Array.isArray(r.policies))throw Error(`pack ${r.id} policies is not an array`);let g=r.policies.map((e,t)=>(function(e,r,t,i){let o=`${e} policy #${t}`;if(!r||"object"!=typeof r)throw Error(`${o} is not an object`);let n=r.name;if("string"!=typeof n||!A.test(n))throw Error(`${o} has an unsafe name ${JSON.stringify(n)}`);if("alwaysOn"in r)throw Error(`${o} declares alwaysOn, which packs may not set`);if("string"!=typeof r.description||0===r.description.length)throw Error(`${o} is missing a description`);if("string"!=typeof r.category||0===r.category.length)throw Error(`${o} is missing a category`);if("boolean"!=typeof r.defaultEnabled)throw Error(`${o} is missing defaultEnabled`);if(!r.match||"object"!=typeof r.match)throw Error(`${o} is missing a match`);let a=r.match;for(let e of["events","toolNames"]){let r=a[e];if(void 0!==r&&(!Array.isArray(r)||r.some(e=>"string"!=typeof e||0===e.length)))throw Error(`${o} has a match.${e} that is not a list of names`)}let s=f(r),c=["authority","reviewedBy"].filter(e=>e in r&&!(e in s));if("params"in r){let e=function(e){if(!e||"object"!=typeof e||Array.isArray(e))return"params is not an object";for(let[r,t]of Object.entries(e)){if(0===r.length)return"params has an empty parameter name";if(!t||"object"!=typeof t||Array.isArray(t))return`params.${r} is not an object`;if("string"!=typeof t.type||!k.has(t.type))return`params.${r} has type ${JSON.stringify(t.type)}, which is not one of ${[...k].join(", ")}`;if("string"!=typeof t.description||0===t.description.length)return`params.${r} is missing a description`;if(!("default"in t))return`params.${r} is missing a default`}}(r.params);e&&(i?.push(`${o} declares a params schema that was dropped: ${e}`),c.push("params"))}return c.length>0?Object.fromEntries(Object.entries(r).filter(([e])=>!c.includes(e))):r})(r.id,e,t,a)),O=new Set;for(let e of g){if(O.has(e.name))throw Error(`pack ${r.id} declares ${e.name} twice`);O.add(e.name)}let E=null;if(void 0!==r.enabled){if(!Array.isArray(r.enabled)||r.enabled.some(e=>"string"!=typeof e))throw Error(`pack ${r.id} enabled is not an array of names`);E=r.enabled.filter(e=>O.has(e))}let _=null;if(void 0!==r.clis){if(!Array.isArray(r.clis)||r.clis.some(e=>"string"!=typeof e))throw Error(`pack ${r.id} clis is not an array of agent names`);_=r.clis}return{clis:_,id:s.id,version:s.version,source:r.source,path:d,sha256:r.sha256,effect:c,policies:g,semantic:function(e,r,t){if(void 0===r)return[];if(!Array.isArray(r))return t.push(`pack ${e} semantic is not an array, so none of it was loaded`),[];let i=[],o=new Set;for(let[n,a]of r.entries()){if(i.length>=24){t.push(`pack ${e} declares more than 24 semantic policies; the ${r.length-24} past that cap were dropped`);break}try{let r=function(e,r,t){let i=`${e} semantic policy #${t}`;if(!r||"object"!=typeof r||Array.isArray(r))throw Error(`${i} is not an object`);let o=r.name;if("string"!=typeof o||!A.test(o))throw Error(`${i} has an unsafe name ${JSON.stringify(o)}`);if("alwaysOn"in r)throw Error(`${i} declares alwaysOn, which packs may not set`);let n=j(`${e} semantic policy ${o}`,"title",r.title,120),a=`${e} semantic policy ${o}`;if(!Array.isArray(r.appliesTo)||0===r.appliesTo.length)throw Error(`${a} has no appliesTo tool classes`);let s=r.appliesTo.find(e=>"string"!=typeof e||!S.has(e));if(void 0!==s)throw Error(`${a} applies to ${JSON.stringify(s)}, which is not a tool class (${[...S].join(", ")})`);if("deny"!==r.mode&&"instruct"!==r.mode)throw Error(`${a} has mode ${JSON.stringify(r.mode)}, which must be "deny" or "instruct"`);if("boolean"!=typeof r.userCanOverride)throw Error(`${a} is missing userCanOverride, which has no default`);if(!Array.isArray(r.probes)||0===r.probes.length)throw Error(`${a} declares no probes`);if(r.probes.length>6)throw Error(`${a} declares ${r.probes.length} probes, over the cap of 6`);let c=r.probes.map((e,r)=>P(`${a} probe #${r}`,e,null)),l=new Set;for(let e of c){if(l.has(e.id))throw Error(`${a} declares probe ${e.id} twice`);l.add(e.id)}let f=void 0===r.exempt?void 0:P(`${a} exempt`,r.exempt,"exempt");if(void 0!==r.precondition&&!m(r.precondition))throw Error(`${a} names precondition ${JSON.stringify(r.precondition)}, which this build does not have (${y.join(", ")})`);let d=j(a,"guidance",r.guidance,600);return{name:o,title:n,appliesTo:r.appliesTo,mode:r.mode,userCanOverride:r.userCanOverride,probes:c,...f?{exempt:f}:{},...void 0!==r.precondition?{precondition:r.precondition}:{},guidance:d}}(e,a,n);if(o.has(r.name))throw Error(`pack ${e} declares semantic policy ${r.name} twice`);o.add(r.name),i.push(r)}catch(e){t.push(N(e))}}return i}(s.id,r.semantic,a),..."satisfied"===l.kind&&l.declared?{minCliVersion:l.declared}:{},enabled:E}}(c,e,a);if(O.has(r.id))throw Error(`duplicate pack id ${r.id}`);O.add(r.id),l.push(r),p.push(...a)}catch(i){let t=e&&("observe"===e.effect||"enforce"===e.effect)?e.effect:"enforce";d.push({id:r,reason:N(i),effect:t,...Array.isArray(e?.policies)?{declared:function(e){let r=[];for(let t of e)t&&"object"==typeof t&&"string"==typeof t.name&&t.match&&"object"==typeof t.match&&r.push(t);return r}(e.policies)}:{},...Array.isArray(e?.policies)&&0===e.policies.length?{semanticOnly:!0}:{},...Array.isArray(e?.clis)&&e.clis.every(e=>"string"==typeof e)?{clis:e.clis}:{}})}}return{packs:l,errors:d,...p.length>0?{warnings:p}:{}}}function N(e){return e instanceof Error?e.message:String(e)}e.s(["readInstalledPacks",0,_],52306);let I=null;function F(e){let r=new Map,t=new Map;for(let i of e)for(let e of i.semantic??[]){if(R(i,e.name))continue;let o=function e(r){if(Array.isArray(r))return`[${r.map(e).join(",")}]`;if(null!==r&&"object"==typeof r){let t=Object.entries(r).filter(([,e])=>void 0!==e).sort(([e],[r])=>e<r?-1:+(e>r));return`{${t.map(([r,t])=>`${JSON.stringify(r)}:${e(t)}`).join(",")}}`}return JSON.stringify(r)??"null"}(e),n=r.get(e.name);if(void 0===n){r.set(e.name,{form:o,ids:[i.id]});continue}n.ids.push(i.id),n.form!==o&&t.set(e.name,n.ids)}return t}function R(e,r){return s.has(r)&&!/^github:FailproofAI\//i.test(e.source??"")}e.s(["effectiveReviewerNames",0,function(){if(I)return I;let e=c;try{var t,i,o;let n,a,s=(t=_().packs,i=r,t.filter(e=>"observe"!==e.effect&&!(i&&Array.isArray(e.clis)&&e.clis.length>0&&!e.clis.includes(i))));o=s,n=F(o),a=o.flatMap(e=>(e.semantic??[]).filter(r=>!R(e,r.name)).map(e=>e.name)).filter(e=>!n.has(e)),e=0===a.length?c:new Set(a),F(s)}catch{}return I=e,e},"forgetEffectiveReviewerNames",0,function(e){I=null,r=e}],16774)},97348,e=>{"use strict";var r=e.i(2157),t=e.i(50227),i=e.i(79857);let o={info:0,warn:1,error:2},n=(0,i.logsDir)(),a=!1,s="warn",c=!1,l=n;function f(e){return!function(){if(a)return;a=!0;let e=(process.env.FAILPROOFAI_LOG_LEVEL??"").toLowerCase();("info"===e||"warn"===e||"error"===e)&&(s=e);let r=(process.env.FAILPROOFAI_HOOK_LOG_FILE??"").trim();r&&(c=!0,"1"!==r&&"true"!==r&&(l=r))}(),o[e]>=o[s]}function d(e,r){process.stderr.write(`[failproofai:hook] ${e} ${r}
|
|
2
2
|
`)}function p(e,i){if(c)try{(0,r.existsSync)(l)||(0,r.mkdirSync)(l,{recursive:!0});let o=(0,t.join)(l,"hooks.log");try{if((0,r.statSync)(o).size>=524288){let e=`hooks-${Date.now()}.log`;(0,r.renameSync)(o,(0,t.join)(l,e))}}catch{}let n=new Date().toISOString(),a=`[${n}] ${e} ${i}
|
|
3
3
|
`;(0,r.appendFileSync)(o,a,"utf-8")}catch{}}e.s(["hookLogError",0,function(e){f("error")&&(d("ERROR",e),p("ERROR",e))},"hookLogInfo",0,function(e){f("info")&&(d("INFO",e),p("INFO",e))},"hookLogWarn",0,function(e){f("warn")&&(d("WARN",e),p("WARN",e))}])},73136,49335,e=>{"use strict";var r=e.i(2157),t=e.i(50227),i=e.i(60526),o=e.i(97348),n=e.i(79857);function a(e){if(!(0,r.existsSync)(e))return{};try{let t=(0,r.readFileSync)(e,"utf8");return JSON.parse(t)}catch(r){return(0,o.hookLogWarn)(`failed to parse config at ${e}: ${r instanceof Error?r.message:String(r)}`),{}}}e.s(["readMergedHooksConfig",0,function(e){let o=function(e){let o=(0,i.homedir)(),n=(0,t.resolve)(e);for(;n!==o;){let e=(0,t.resolve)(n,".failproofai");try{if((0,r.statSync)(e).isDirectory())return n}catch{}let i=(0,t.dirname)(n);if(i===n)break;n=i}return(0,t.resolve)(e)}(e??process.cwd()),s=(0,t.resolve)(o,".failproofai","policies-config.json"),c=(0,t.resolve)(o,".failproofai","policies-config.local.json"),l=(0,n.globalPolicyConfigFile)(),f=a(s),d=a(c),p=a(l),h=new Set([...f.enabledPolicies??[],...d.enabledPolicies??[],...p.enabledPolicies??[]]),u={};for(let e of[f,d,p])if(e.policyParams)for(let[r,t]of Object.entries(e.policyParams))r in u||(u[r]=t);let y=[f,d,p].map(e=>void 0!==e.customPoliciesPaths?e.customPoliciesPaths:void 0!==e.customPoliciesPath?[e.customPoliciesPath]:void 0).find(e=>void 0!==e),m=new Set([...f.disabledCustomPolicies??[],...d.disabledCustomPolicies??[],...p.disabledCustomPolicies??[]]),g=f.customPoliciesEnabled??d.customPoliciesEnabled??p.customPoliciesEnabled,w=f.llm??d.llm??p.llm;return{enabledPolicies:[...h],...Object.keys(u).length>0?{policyParams:u}:{},...void 0!==y?{customPoliciesPaths:y}:{},...m.size?{disabledCustomPolicies:[...m]}:{},...void 0!==g?{customPoliciesEnabled:g}:{},...void 0!==w?{llm:w}:{}}}],73136);var s=e.i(24214),c=e.i(28067),l=e.i(17694);let f=c.POSTHOG_API_KEY,d=new Set;async function p(e,r,t){let i=JSON.stringify({api_key:process.env.FAILPROOFAI_POSTHOG_KEY??f,event:r,distinct_id:e,properties:{...t,$lib:"failproofai-hooks",failproofai_version:s.version,product:c.POSTHOG_PRODUCT}});try{await fetch(process.env.FAILPROOFAI_POSTHOG_HOST?`${process.env.FAILPROOFAI_POSTHOG_HOST}/capture/`:"https://us.i.posthog.com/capture/",{method:"POST",headers:{"Content-Type":"application/json"},body:i,signal:AbortSignal.timeout(5e3)})}catch{}}async function h(e,r,t){if(!(0,l.isTelemetryEnabled)())return;let i=p(e,r,t);d.add(i),i.finally(()=>d.delete(i)),await i}e.s(["trackHookEvent",0,h],49335)}];
|
|
4
4
|
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(a,b,c)=>{b.exports=a.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},19952,a=>{"use strict";var b=a.i(5050);let c=(0,b.createServerReference)("00a9163b93014ab406fd89a6249f844ab47fada4df",b.callServer,void 0,b.findSourceMapURL,"getTelemetryConfig");a.s(["getTelemetryConfig",0,c])},3171,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(19952),e=a.i(66036);a.s(["default",0,function({error:a,reset:f}){return(0,c.useEffect)(()=>{(0,d.getTelemetryConfig)().then(b=>{(0,e.setClientTelemetryConfig)(b),(0,e.captureClientEvent)("client_error",{error_message:a.message,error_name:a.name,error_digest:a.digest,boundary:"global"})}).catch(()=>{})},[a]),(0,b.jsx)("html",{children:(0,b.jsx)("body",{children:(0,b.jsx)("main",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#031035",color:"#f8fafc",fontFamily:"system-ui, sans-serif"},children:(0,b.jsxs)("div",{style:{textAlign:"center",padding:"2rem",border:"1px solid rgba(239,68,68,0.4)",borderRadius:"0.5rem",maxWidth:"500px"},children:[(0,b.jsx)("h2",{style:{color:"#ef4444",marginBottom:"0.5rem",fontSize:"1.25rem"},children:"Something went wrong"}),(0,b.jsx)("p",{style:{color:"#94a3b8",marginBottom:"1.5rem"},children:a.message||"An unexpected error occurred."}),(0,b.jsx)("button",{onClick:f,style:{padding:"0.5rem 1.25rem",background:"#3b82f6",color:"white",border:"none",borderRadius:"0.375rem",cursor:"pointer",fontSize:"0.875rem"},children:"Try again"})]})})})})}])},66036,a=>{"use strict";a.s(["captureClientEvent",0,function(a,b){},"setClientTelemetryConfig",0,function(a){}])},46058,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},5050,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={callServer:function(){return f.callServer},createServerReference:function(){return h.createServerReference},findSourceMapURL:function(){return g.findSourceMapURL}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20611),g=a.r(1722),h=a.r(38783)},20611,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"callServer",{enumerable:!0,get:function(){return g}});let d=a.r(72131),e=a.r(88347),f=a.r(90841);async function g(a,b){return new Promise((c,g)=>{(0,d.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:e.ACTION_SERVER_ACTION,actionId:a,actionArgs:b,resolve:c,reject:g})})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},1722,(a,b,c)=>{"use strict";let d;Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findSourceMapURL",{enumerable:!0,get:function(){return d}});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},88347,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f={ACTION_HMR_REFRESH:function(){return l},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return h},ACTION_RESTORE:function(){return j},ACTION_SERVER_ACTION:function(){return m},ACTION_SERVER_PATCH:function(){return k},PrefetchKind:function(){return n},ScrollBehavior:function(){return o}};for(var g in f)Object.defineProperty(c,g,{enumerable:!0,get:f[g]});let h="refresh",i="navigate",j="restore",k="server-patch",l="hmr-refresh",m="server-action";var n=((d={}).AUTO="auto",d.FULL="full",d),o=((e={})[e.Default=0]="Default",e[e.NoScroll=1]="NoScroll",e);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},90841,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={dispatchAppRouterAction:function(){return i},dispatchGestureState:function(){return j},refreshOnInstantNavigationUnlock:function(){return h},useActionQueue:function(){return k}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(46058)._(a.r(72131)),g=a.r(67009);a.r(88347);function h(){}function i(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function j(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function k(a){let[b,c]=f.default.useState(a.state),[d,e]=(0,f.useOptimistic)(b),h=(0,f.useMemo)(()=>d,[d]);return(0,g.isThenable)(h)?(0,f.use)(h):h}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React},67009,(a,b,c)=>{"use strict";function d(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isThenable",{enumerable:!0,get:function(){return d}})}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__03m2iw6._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.
|
|
1
|
+
module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"00a9163b93014ab406fd89a6249f844ab47fada4df",null),a.s(["getTelemetryConfig",0,f])},31920,a=>{"use strict";var b=a.i(21572);a.s(["isTelemetryEnabled",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,b.readConfig)().telemetry.enabled}catch{return!0}}])},69839,a=>{"use strict";let b;var c=a.i(2157),d=a.i(50227),e=a.i(60526),f=a.i(66680);a.i(74533);var g=a.i(75818);let h=d.default.join(e.default.homedir(),".failproofai"),i=d.default.join(h,"instance-id");function j(a){return f.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(a){let b;try{if(b=(0,g.telemetryIdFile)(),c.default.readFileSync(b,"utf-8").trim()===a)return}catch{try{b=(0,g.telemetryIdFile)()}catch{return}}try{c.default.mkdirSync(d.default.dirname(b),{recursive:!0});let e=`${b}.${process.pid}.tmp`;c.default.writeFileSync(e,a,{encoding:"utf-8",mode:384}),c.default.renameSync(e,b)}catch{}}a.s(["getInstanceId",0,function(){if(b)return b;let a=function(){try{for(let a of(e.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=c.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return k(b=j(a)),b;let d=[e.default.hostname(),e.default.homedir(),e.default.platform(),e.default.arch(),e.default.cpus()[0]?.model??""].join(":");return d?k(b=j(d)):k(b=function(){try{let a=c.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=f.default.randomUUID();try{c.default.mkdirSync(h,{recursive:!0}),c.default.writeFileSync(i,a,"utf-8")}catch{}return a}()),b},"hashToId",0,j])},93328,a=>{"use strict";var b=a.i(69839),c=a.i(31920),d=a.i(12072),e=a.i(79779);e.POSTHOG_API_KEY,a.s(["trackEvent",0,function(a,f){if(!(0,c.isTelemetryEnabled)())return;let g=globalThis.__FAILPROOFAI_POSTHOG__;g&&g.capture({distinctId:(0,b.getInstanceId)(),event:a,properties:{...f,$lib:"failproofai",failproofai_version:d.version,product:e.POSTHOG_PRODUCT}})}])},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.9-beta.1",description:"Observability and enforcement for AI agent harnesses. 40 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","hermes-plugin/","openclaw-plugin/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node --external sql.js && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"","build:worker":"bun build --target=node --format=esm --outfile=dist/worker.mjs bin/failproofai-worker.mjs --external posthog-node --external sql.js",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun run build:worker && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate","validate:mdx":"bun scripts/validate-mdx.ts","docs:audit":"bun scripts/docs-audit.ts","build:pack":"bun scripts/build-policy-pack.mjs"},keywords:["agent-observability","llm-observability","agent-tracing","agent-monitoring","agent-harness","guardrails","enforcement","policies","evals","ai-agent","autonomous-agent","agent-reliability","failure-prevention","claude-code","codex","hermes","openclaw","cli","local-first","hooks"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/FailproofAI/failproofai",repository:{type:"git",url:"https://github.com/FailproofAI/failproofai.git"},bugs:{url:"https://github.com/FailproofAI/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.128.0","@mdx-js/mdx":"^3.1.1","@tailwindcss/postcss":"^4.3.1","@tanstack/react-virtual":"^3.14.10","@testing-library/jest-dom":"^7.0.0","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.5","@types/node":"26.6.2","@types/react":"19.3.0","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.1.0",clsx:"^2.1.1",eslint:"^10.9.0","eslint-config-next":"^16.3.2",jsdom:"^30.0.1","lucide-react":"^1.33.0",next:"^16.3.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.1","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.9-beta.1","@failproofai/failproofaid-linux-arm64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-x64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-arm64":"1.0.9-beta.1"},failproofaidBinaries:{"linux-x64":"a0db1ad28bc0584bb4554b1dc60b55353fad9d982354880f9cc1e1ee567e5d36","linux-arm64":"b8d2797db8d93ce0deec86707093dd22ecd2d3fe2b137944938f4851d31718f1","darwin-x64":"94dc7ea33121c884736eadafc8281b0b752824b5c7fbe1726745bd1fa2b2a577","darwin-arm64":"8da18bbede18b8c112e8c46b6f0de798e84445c163a91a80edeef6d9e21da8ad"}}},1144,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(75818);let e="current.jsonl",f=()=>(0,d.hookActivityDir)();function g(){(0,b.existsSync)(f())||(0,b.mkdirSync)(f(),{recursive:!0})}function h(){let a=function(){try{return JSON.parse((0,b.readFileSync)((0,c.join)(f(),"stats.json"),"utf-8"))}catch{return{totalEvents:0,denyCount:0,policyMap:{}}}}(),d=null,e=0;for(let[b,c]of Object.entries(a.policyMap))c>e&&(d=b,e=c);return{totalEvents:a.totalEvents,denyCount:a.denyCount,topPolicy:d,topPolicyCount:e}}function i(a){let c=function(a){try{return(0,b.readFileSync)(a,"utf-8")}catch{return""}}(a);if(!c.trim())return[];let d=[];for(let a of c.trim().split("\n"))try{var e;d.push((e=JSON.parse(a),void 0===e.cloudVersion&&"number"==typeof e.cloudRevision&&(e.cloudVersion=e.cloudRevision),void 0===e.cloudDeployment&&"number"==typeof e.cloudGeneration&&(e.cloudDeployment=e.cloudGeneration),e))}catch{}return d}function j(){try{return(0,b.readdirSync)(f()).filter(a=>a.startsWith("page-")&&a.endsWith(".jsonl")).sort((a,b)=>{let c=a.slice(5,-6).split("-"),d=b.slice(5,-6).split("-"),e=parseInt(c[0],10),f=parseInt(d[0],10);if(e!==f)return f-e;let g=c.length>1?parseInt(c[1],10):0;return(d.length>1?parseInt(d[1],10):0)-g})}catch{return[]}}a.s(["getHookActivityEntriesSince",0,function(a){g();let b=f(),d=b=>"number"==typeof b.timestamp&&b.timestamp>=a,h=new Set(j());let k=i((0,c.join)(b,e));let l=new Map;for(let a of k){let b=JSON.stringify(a);l.set(b,(l.get(b)??0)+1)}let m=a=>{let b=JSON.stringify(a),c=l.get(b)??0;return 0===c||(l.set(b,c-1),!1)},n=k.reverse().filter(d);for(let e of j()){let f=parseInt(e.slice(5,-6).split("-")[0],10);if(Number.isFinite(f)&&f<a-6e5)break;let g=i((0,c.join)(b,e));h.has(e)||(g=g.filter(m)),n.push(...g.reverse().filter(d))}return n},"getHookActivityHistory",0,function(a){let b=function(a){if(g(),a<1)return[];if(1===a)return i((0,c.join)(f(),e)).reverse();let b=j(),d=a-2;return d>=b.length?[]:i((0,c.join)(f(),b[d])).reverse()}(a);return{entries:b,totalPages:(g(),1+j().length),page:a,stats:h()}},"searchHookActivity",0,function(a,b){let d=(function(){g();let a=i((0,c.join)(f(),e)).reverse(),b=j(),d=[];for(let a of b){let b=i((0,c.join)(f(),a));d.push(...b.reverse())}return[...a,...d]})().filter(b=>(!a.decision||b.decision===a.decision)&&(!a.eventType||b.eventType===a.eventType)&&(!a.policyName||!!b.policyName&&!!b.policyName.toLowerCase().includes(a.policyName.toLowerCase()))&&(!a.sessionId||!!b.sessionId&&!!b.sessionId.toLowerCase().includes(a.sessionId.toLowerCase()))&&(!a.integration||b.integration===a.integration)&&(!a.source||b.policySource===a.source)&&!0),k=Math.max(1,Math.ceil(d.length/25)),l=(b-1)*25;return{entries:d.slice(l,l+25),totalPages:k,page:b,stats:h()}}])},79779,a=>{"use strict";a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=%5Broot-of-the-server%5D__04usis8._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},37985,a=>{"use strict";var b=a.i(36359);a.s([],80194),a.i(80194),a.s(["
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.
|
|
1
|
+
module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},37985,a=>{"use strict";var b=a.i(36359);a.s([],80194),a.i(80194),a.s(["00a9163b93014ab406fd89a6249f844ab47fada4df",()=>b.getTelemetryConfig],37985)},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"00a9163b93014ab406fd89a6249f844ab47fada4df",null),a.s(["getTelemetryConfig",0,f])},31920,a=>{"use strict";var b=a.i(21572);a.s(["isTelemetryEnabled",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,b.readConfig)().telemetry.enabled}catch{return!0}}])},69839,a=>{"use strict";let b;var c=a.i(2157),d=a.i(50227),e=a.i(60526),f=a.i(66680);a.i(74533);var g=a.i(75818);let h=d.default.join(e.default.homedir(),".failproofai"),i=d.default.join(h,"instance-id");function j(a){return f.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(a){let b;try{if(b=(0,g.telemetryIdFile)(),c.default.readFileSync(b,"utf-8").trim()===a)return}catch{try{b=(0,g.telemetryIdFile)()}catch{return}}try{c.default.mkdirSync(d.default.dirname(b),{recursive:!0});let e=`${b}.${process.pid}.tmp`;c.default.writeFileSync(e,a,{encoding:"utf-8",mode:384}),c.default.renameSync(e,b)}catch{}}a.s(["getInstanceId",0,function(){if(b)return b;let a=function(){try{for(let a of(e.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=c.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return k(b=j(a)),b;let d=[e.default.hostname(),e.default.homedir(),e.default.platform(),e.default.arch(),e.default.cpus()[0]?.model??""].join(":");return d?k(b=j(d)):k(b=function(){try{let a=c.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=f.default.randomUUID();try{c.default.mkdirSync(h,{recursive:!0}),c.default.writeFileSync(i,a,"utf-8")}catch{}return a}()),b},"hashToId",0,j])},93328,a=>{"use strict";var b=a.i(69839),c=a.i(31920),d=a.i(12072),e=a.i(79779);e.POSTHOG_API_KEY,a.s(["trackEvent",0,function(a,f){if(!(0,c.isTelemetryEnabled)())return;let g=globalThis.__FAILPROOFAI_POSTHOG__;g&&g.capture({distinctId:(0,b.getInstanceId)(),event:a,properties:{...f,$lib:"failproofai",failproofai_version:d.version,product:e.POSTHOG_PRODUCT}})}])},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.9-beta.1",description:"Observability and enforcement for AI agent harnesses. 40 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","hermes-plugin/","openclaw-plugin/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node --external sql.js && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"","build:worker":"bun build --target=node --format=esm --outfile=dist/worker.mjs bin/failproofai-worker.mjs --external posthog-node --external sql.js",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun run build:worker && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate","validate:mdx":"bun scripts/validate-mdx.ts","docs:audit":"bun scripts/docs-audit.ts","build:pack":"bun scripts/build-policy-pack.mjs"},keywords:["agent-observability","llm-observability","agent-tracing","agent-monitoring","agent-harness","guardrails","enforcement","policies","evals","ai-agent","autonomous-agent","agent-reliability","failure-prevention","claude-code","codex","hermes","openclaw","cli","local-first","hooks"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/FailproofAI/failproofai",repository:{type:"git",url:"https://github.com/FailproofAI/failproofai.git"},bugs:{url:"https://github.com/FailproofAI/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.128.0","@mdx-js/mdx":"^3.1.1","@tailwindcss/postcss":"^4.3.1","@tanstack/react-virtual":"^3.14.10","@testing-library/jest-dom":"^7.0.0","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.5","@types/node":"26.6.2","@types/react":"19.3.0","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.1.0",clsx:"^2.1.1",eslint:"^10.9.0","eslint-config-next":"^16.3.2",jsdom:"^30.0.1","lucide-react":"^1.33.0",next:"^16.3.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.1","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.9-beta.1","@failproofai/failproofaid-linux-arm64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-x64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-arm64":"1.0.9-beta.1"},failproofaidBinaries:{"linux-x64":"a0db1ad28bc0584bb4554b1dc60b55353fad9d982354880f9cc1e1ee567e5d36","linux-arm64":"b8d2797db8d93ce0deec86707093dd22ecd2d3fe2b137944938f4851d31718f1","darwin-x64":"94dc7ea33121c884736eadafc8281b0b752824b5c7fbe1726745bd1fa2b2a577","darwin-arm64":"8da18bbede18b8c112e8c46b6f0de798e84445c163a91a80edeef6d9e21da8ad"}}},79779,a=>{"use strict";a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=%5Broot-of-the-server%5D__056wjo4._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},24190,a=>{"use strict";var b=a.i(36359);a.s([],40488),a.i(40488),a.s(["
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.
|
|
1
|
+
module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},24190,a=>{"use strict";var b=a.i(36359);a.s([],40488),a.i(40488),a.s(["00a9163b93014ab406fd89a6249f844ab47fada4df",()=>b.getTelemetryConfig],24190)},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"00a9163b93014ab406fd89a6249f844ab47fada4df",null),a.s(["getTelemetryConfig",0,f])},31920,a=>{"use strict";var b=a.i(21572);a.s(["isTelemetryEnabled",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,b.readConfig)().telemetry.enabled}catch{return!0}}])},69839,a=>{"use strict";let b;var c=a.i(2157),d=a.i(50227),e=a.i(60526),f=a.i(66680);a.i(74533);var g=a.i(75818);let h=d.default.join(e.default.homedir(),".failproofai"),i=d.default.join(h,"instance-id");function j(a){return f.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(a){let b;try{if(b=(0,g.telemetryIdFile)(),c.default.readFileSync(b,"utf-8").trim()===a)return}catch{try{b=(0,g.telemetryIdFile)()}catch{return}}try{c.default.mkdirSync(d.default.dirname(b),{recursive:!0});let e=`${b}.${process.pid}.tmp`;c.default.writeFileSync(e,a,{encoding:"utf-8",mode:384}),c.default.renameSync(e,b)}catch{}}a.s(["getInstanceId",0,function(){if(b)return b;let a=function(){try{for(let a of(e.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=c.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return k(b=j(a)),b;let d=[e.default.hostname(),e.default.homedir(),e.default.platform(),e.default.arch(),e.default.cpus()[0]?.model??""].join(":");return d?k(b=j(d)):k(b=function(){try{let a=c.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=f.default.randomUUID();try{c.default.mkdirSync(h,{recursive:!0}),c.default.writeFileSync(i,a,"utf-8")}catch{}return a}()),b},"hashToId",0,j])},93328,a=>{"use strict";var b=a.i(69839),c=a.i(31920),d=a.i(12072),e=a.i(79779);e.POSTHOG_API_KEY,a.s(["trackEvent",0,function(a,f){if(!(0,c.isTelemetryEnabled)())return;let g=globalThis.__FAILPROOFAI_POSTHOG__;g&&g.capture({distinctId:(0,b.getInstanceId)(),event:a,properties:{...f,$lib:"failproofai",failproofai_version:d.version,product:e.POSTHOG_PRODUCT}})}])},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.9-beta.1",description:"Observability and enforcement for AI agent harnesses. 40 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","hermes-plugin/","openclaw-plugin/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node --external sql.js && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"","build:worker":"bun build --target=node --format=esm --outfile=dist/worker.mjs bin/failproofai-worker.mjs --external posthog-node --external sql.js",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun run build:worker && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate","validate:mdx":"bun scripts/validate-mdx.ts","docs:audit":"bun scripts/docs-audit.ts","build:pack":"bun scripts/build-policy-pack.mjs"},keywords:["agent-observability","llm-observability","agent-tracing","agent-monitoring","agent-harness","guardrails","enforcement","policies","evals","ai-agent","autonomous-agent","agent-reliability","failure-prevention","claude-code","codex","hermes","openclaw","cli","local-first","hooks"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/FailproofAI/failproofai",repository:{type:"git",url:"https://github.com/FailproofAI/failproofai.git"},bugs:{url:"https://github.com/FailproofAI/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.128.0","@mdx-js/mdx":"^3.1.1","@tailwindcss/postcss":"^4.3.1","@tanstack/react-virtual":"^3.14.10","@testing-library/jest-dom":"^7.0.0","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.5","@types/node":"26.6.2","@types/react":"19.3.0","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.1.0",clsx:"^2.1.1",eslint:"^10.9.0","eslint-config-next":"^16.3.2",jsdom:"^30.0.1","lucide-react":"^1.33.0",next:"^16.3.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.1","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.9-beta.1","@failproofai/failproofaid-linux-arm64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-x64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-arm64":"1.0.9-beta.1"},failproofaidBinaries:{"linux-x64":"a0db1ad28bc0584bb4554b1dc60b55353fad9d982354880f9cc1e1ee567e5d36","linux-arm64":"b8d2797db8d93ce0deec86707093dd22ecd2d3fe2b137944938f4851d31718f1","darwin-x64":"94dc7ea33121c884736eadafc8281b0b752824b5c7fbe1726745bd1fa2b2a577","darwin-arm64":"8da18bbede18b8c112e8c46b6f0de798e84445c163a91a80edeef6d9e21da8ad"}}},79779,a=>{"use strict";a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0n0xg95._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},165,a=>{"use strict";var b=a.i(36359);a.s([],84833),a.i(84833),a.s(["
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.
|
|
1
|
+
module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},165,a=>{"use strict";var b=a.i(36359);a.s([],84833),a.i(84833),a.s(["00a9163b93014ab406fd89a6249f844ab47fada4df",()=>b.getTelemetryConfig],165)},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"00a9163b93014ab406fd89a6249f844ab47fada4df",null),a.s(["getTelemetryConfig",0,f])},31920,a=>{"use strict";var b=a.i(21572);a.s(["isTelemetryEnabled",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,b.readConfig)().telemetry.enabled}catch{return!0}}])},69839,a=>{"use strict";let b;var c=a.i(2157),d=a.i(50227),e=a.i(60526),f=a.i(66680);a.i(74533);var g=a.i(75818);let h=d.default.join(e.default.homedir(),".failproofai"),i=d.default.join(h,"instance-id");function j(a){return f.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(a){let b;try{if(b=(0,g.telemetryIdFile)(),c.default.readFileSync(b,"utf-8").trim()===a)return}catch{try{b=(0,g.telemetryIdFile)()}catch{return}}try{c.default.mkdirSync(d.default.dirname(b),{recursive:!0});let e=`${b}.${process.pid}.tmp`;c.default.writeFileSync(e,a,{encoding:"utf-8",mode:384}),c.default.renameSync(e,b)}catch{}}a.s(["getInstanceId",0,function(){if(b)return b;let a=function(){try{for(let a of(e.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=c.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return k(b=j(a)),b;let d=[e.default.hostname(),e.default.homedir(),e.default.platform(),e.default.arch(),e.default.cpus()[0]?.model??""].join(":");return d?k(b=j(d)):k(b=function(){try{let a=c.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=f.default.randomUUID();try{c.default.mkdirSync(h,{recursive:!0}),c.default.writeFileSync(i,a,"utf-8")}catch{}return a}()),b},"hashToId",0,j])},93328,a=>{"use strict";var b=a.i(69839),c=a.i(31920),d=a.i(12072),e=a.i(79779);e.POSTHOG_API_KEY,a.s(["trackEvent",0,function(a,f){if(!(0,c.isTelemetryEnabled)())return;let g=globalThis.__FAILPROOFAI_POSTHOG__;g&&g.capture({distinctId:(0,b.getInstanceId)(),event:a,properties:{...f,$lib:"failproofai",failproofai_version:d.version,product:e.POSTHOG_PRODUCT}})}])},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.9-beta.1",description:"Observability and enforcement for AI agent harnesses. 40 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","hermes-plugin/","openclaw-plugin/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node --external sql.js && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"","build:worker":"bun build --target=node --format=esm --outfile=dist/worker.mjs bin/failproofai-worker.mjs --external posthog-node --external sql.js",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun run build:worker && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate","validate:mdx":"bun scripts/validate-mdx.ts","docs:audit":"bun scripts/docs-audit.ts","build:pack":"bun scripts/build-policy-pack.mjs"},keywords:["agent-observability","llm-observability","agent-tracing","agent-monitoring","agent-harness","guardrails","enforcement","policies","evals","ai-agent","autonomous-agent","agent-reliability","failure-prevention","claude-code","codex","hermes","openclaw","cli","local-first","hooks"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/FailproofAI/failproofai",repository:{type:"git",url:"https://github.com/FailproofAI/failproofai.git"},bugs:{url:"https://github.com/FailproofAI/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.128.0","@mdx-js/mdx":"^3.1.1","@tailwindcss/postcss":"^4.3.1","@tanstack/react-virtual":"^3.14.10","@testing-library/jest-dom":"^7.0.0","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.5","@types/node":"26.6.2","@types/react":"19.3.0","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.1.0",clsx:"^2.1.1",eslint:"^10.9.0","eslint-config-next":"^16.3.2",jsdom:"^30.0.1","lucide-react":"^1.33.0",next:"^16.3.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.1","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.9-beta.1","@failproofai/failproofaid-linux-arm64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-x64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-arm64":"1.0.9-beta.1"},failproofaidBinaries:{"linux-x64":"a0db1ad28bc0584bb4554b1dc60b55353fad9d982354880f9cc1e1ee567e5d36","linux-arm64":"b8d2797db8d93ce0deec86707093dd22ecd2d3fe2b137944938f4851d31718f1","darwin-x64":"94dc7ea33121c884736eadafc8281b0b752824b5c7fbe1726745bd1fa2b2a577","darwin-arm64":"8da18bbede18b8c112e8c46b6f0de798e84445c163a91a80edeef6d9e21da8ad"}}},79779,a=>{"use strict";a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0rwtwpm._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module.exports=[60815,a=>{a.v(a=>Promise.resolve().then(()=>a(24868)))},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0ilfh9m._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},6188,a=>{a.v(a=>Promise.resolve().then(()=>a(15638)))},84670,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__1v185mo._.js"].map(b=>a.l(b))).then(()=>b(32271)))},49679,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_hooks_semantic_pack-policies_ts_0gh_bu_._.js","server/chunks/ssr/src_hooks_pack-cli_ts_0t7me65._.js"].map(b=>a.l(b))).then(()=>b(31934)))}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__1-bm5zf._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},26035,a=>{"use strict";var b=a.i(36359);a.s([],19459),a.i(19459),a.s(["
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.
|
|
1
|
+
module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},26035,a=>{"use strict";var b=a.i(36359);a.s([],19459),a.i(19459),a.s(["00a9163b93014ab406fd89a6249f844ab47fada4df",()=>b.getTelemetryConfig],26035)},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"00a9163b93014ab406fd89a6249f844ab47fada4df",null),a.s(["getTelemetryConfig",0,f])},31920,a=>{"use strict";var b=a.i(21572);a.s(["isTelemetryEnabled",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,b.readConfig)().telemetry.enabled}catch{return!0}}])},69839,a=>{"use strict";let b;var c=a.i(2157),d=a.i(50227),e=a.i(60526),f=a.i(66680);a.i(74533);var g=a.i(75818);let h=d.default.join(e.default.homedir(),".failproofai"),i=d.default.join(h,"instance-id");function j(a){return f.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(a){let b;try{if(b=(0,g.telemetryIdFile)(),c.default.readFileSync(b,"utf-8").trim()===a)return}catch{try{b=(0,g.telemetryIdFile)()}catch{return}}try{c.default.mkdirSync(d.default.dirname(b),{recursive:!0});let e=`${b}.${process.pid}.tmp`;c.default.writeFileSync(e,a,{encoding:"utf-8",mode:384}),c.default.renameSync(e,b)}catch{}}a.s(["getInstanceId",0,function(){if(b)return b;let a=function(){try{for(let a of(e.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=c.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return k(b=j(a)),b;let d=[e.default.hostname(),e.default.homedir(),e.default.platform(),e.default.arch(),e.default.cpus()[0]?.model??""].join(":");return d?k(b=j(d)):k(b=function(){try{let a=c.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=f.default.randomUUID();try{c.default.mkdirSync(h,{recursive:!0}),c.default.writeFileSync(i,a,"utf-8")}catch{}return a}()),b},"hashToId",0,j])},93328,a=>{"use strict";var b=a.i(69839),c=a.i(31920),d=a.i(12072),e=a.i(79779);e.POSTHOG_API_KEY,a.s(["trackEvent",0,function(a,f){if(!(0,c.isTelemetryEnabled)())return;let g=globalThis.__FAILPROOFAI_POSTHOG__;g&&g.capture({distinctId:(0,b.getInstanceId)(),event:a,properties:{...f,$lib:"failproofai",failproofai_version:d.version,product:e.POSTHOG_PRODUCT}})}])},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.9-beta.1",description:"Observability and enforcement for AI agent harnesses. 40 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","hermes-plugin/","openclaw-plugin/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node --external sql.js && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"","build:worker":"bun build --target=node --format=esm --outfile=dist/worker.mjs bin/failproofai-worker.mjs --external posthog-node --external sql.js",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun run build:worker && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate","validate:mdx":"bun scripts/validate-mdx.ts","docs:audit":"bun scripts/docs-audit.ts","build:pack":"bun scripts/build-policy-pack.mjs"},keywords:["agent-observability","llm-observability","agent-tracing","agent-monitoring","agent-harness","guardrails","enforcement","policies","evals","ai-agent","autonomous-agent","agent-reliability","failure-prevention","claude-code","codex","hermes","openclaw","cli","local-first","hooks"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/FailproofAI/failproofai",repository:{type:"git",url:"https://github.com/FailproofAI/failproofai.git"},bugs:{url:"https://github.com/FailproofAI/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.128.0","@mdx-js/mdx":"^3.1.1","@tailwindcss/postcss":"^4.3.1","@tanstack/react-virtual":"^3.14.10","@testing-library/jest-dom":"^7.0.0","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.5","@types/node":"26.6.2","@types/react":"19.3.0","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.1.0",clsx:"^2.1.1",eslint:"^10.9.0","eslint-config-next":"^16.3.2",jsdom:"^30.0.1","lucide-react":"^1.33.0",next:"^16.3.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.1","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.9-beta.1","@failproofai/failproofaid-linux-arm64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-x64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-arm64":"1.0.9-beta.1"},failproofaidBinaries:{"linux-x64":"a0db1ad28bc0584bb4554b1dc60b55353fad9d982354880f9cc1e1ee567e5d36","linux-arm64":"b8d2797db8d93ce0deec86707093dd22ecd2d3fe2b137944938f4851d31718f1","darwin-x64":"94dc7ea33121c884736eadafc8281b0b752824b5c7fbe1726745bd1fa2b2a577","darwin-arm64":"8da18bbede18b8c112e8c46b6f0de798e84445c163a91a80edeef6d9e21da8ad"}}},79779,a=>{"use strict";a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=%5Broot-of-the-server%5D__11mayhe._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},24868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},1457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},57764,(a,b,c)=>{b.exports=a.x("node:url",()=>require("node:url"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},5365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},92509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},7292,a=>{"use strict";var b=a.i(37936),c=a.i(1144);async function d(a){return(0,c.getHookActivityHistory)(a)}async function e(a,b){return(0,c.searchHookActivity)(a,b)}(0,a.i(13095).ensureServerEntryExports)([d,e]),(0,b.registerServerReference)(d,"
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.
|
|
1
|
+
module.exports=[874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},24868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},1457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},57764,(a,b,c)=>{b.exports=a.x("node:url",()=>require("node:url"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},5365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},92509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},7292,a=>{"use strict";var b=a.i(37936),c=a.i(1144);async function d(a){return(0,c.getHookActivityHistory)(a)}async function e(a,b){return(0,c.searchHookActivity)(a,b)}(0,a.i(13095).ensureServerEntryExports)([d,e]),(0,b.registerServerReference)(d,"40bc37a56aefa912c16db05694c078261098f19d07",null),(0,b.registerServerReference)(e,"60ba6ff3e2d21af9ec38adc6462120f44deda66a2b",null),a.s(["getHookActivityAction",0,d,"searchHookActivityAction",0,e])},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"00a9163b93014ab406fd89a6249f844ab47fada4df",null),a.s(["getTelemetryConfig",0,f])},8674,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(66680);a.s(["writeJsonAtomically",0,function(a,e,f={}){let g=f.mode??384,h=f.dirMode??448,i=(0,c.dirname)(a);(0,b.existsSync)(i)||(0,b.mkdirSync)(i,{recursive:!0,mode:h});let j=`${a}.${process.pid}.${(0,d.randomBytes)(6).toString("hex")}.tmp`;try{(0,b.writeFileSync)(j,JSON.stringify(e,null,2),{mode:g});try{(63&(0,b.statSync)(j).mode)!=0&&(0,b.chmodSync)(j,g)}catch{}(0,b.renameSync)(j,a);try{(63&(0,b.statSync)(a).mode)!=0&&(0,b.chmodSync)(a,g)}catch{}}catch(a){try{(0,b.rmSync)(j,{force:!0})}catch{}throw a}}])},24282,a=>{"use strict";let b={claude:{id:"claude",label:"Claude Code",badgeClasses:"bg-orange-500/10 text-orange-400 border-orange-500/20"},codex:{id:"codex",label:"OpenAI Codex",badgeClasses:"bg-purple-500/10 text-purple-400 border-purple-500/20"},copilot:{id:"copilot",label:"GitHub Copilot",badgeClasses:"bg-blue-500/10 text-blue-400 border-blue-500/20"},cursor:{id:"cursor",label:"Cursor Agent",badgeClasses:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20"},opencode:{id:"opencode",label:"OpenCode",badgeClasses:"bg-amber-500/10 text-amber-400 border-amber-500/20"},pi:{id:"pi",label:"Pi",badgeClasses:"bg-pink-500/10 text-pink-400 border-pink-500/20"},hermes:{id:"hermes",label:"Hermes",badgeClasses:"bg-indigo-500/10 text-indigo-400 border-indigo-500/20"},openclaw:{id:"openclaw",label:"OpenClaw",badgeClasses:"bg-teal-500/10 text-teal-400 border-teal-500/20"},factory:{id:"factory",label:"Factory Droid",badgeClasses:"bg-rose-500/10 text-rose-400 border-rose-500/20"},devin:{id:"devin",label:"Devin CLI",badgeClasses:"bg-violet-500/10 text-violet-400 border-violet-500/20"},antigravity:{id:"antigravity",label:"Antigravity CLI",badgeClasses:"bg-cyan-500/10 text-cyan-400 border-cyan-500/20"},goose:{id:"goose",label:"Goose",badgeClasses:"bg-lime-500/10 text-lime-400 border-lime-500/20"}};a.s(["getCliBadgeClasses",0,function(a){return b[a]?.badgeClasses??b.claude.badgeClasses},"getCliLabel",0,function(a){return b[a]?.label??a}])},43600,a=>{"use strict";var b=a.i(2157),c=a.i(60526),d=a.i(50227);let e="profiles",f=".hermes",g=".hermes-",h="default";function i(){let a=(process.env.HERMES_HOME||"").trim();if(a){let b=(0,d.resolve)(a),c=(0,d.dirname)(b);(0,d.basename)(c)===e&&(b=(0,d.dirname)(c));let h=(0,d.basename)(b);return h===f||h.startsWith(g)?(0,d.join)((0,d.dirname)(b),f):b}return(0,d.join)((0,c.homedir)(),f)}function j(){let a=i(),c=[{name:h,home:a}],j=new Set([h]),k=[];try{k=(0,b.readdirSync)((0,d.join)(a,e),{withFileTypes:!0}).filter(a=>(a.isDirectory()||a.isSymbolicLink())&&!a.name.startsWith(".")).map(a=>a.name).sort()}catch{}for(let b of k)j.has(b)||(j.add(b),c.push({name:b,home:(0,d.join)(a,e,b)}));if((0,d.basename)(a)!==f)return c;let l=[],m=(0,d.dirname)(a);try{l=(0,b.readdirSync)(m,{withFileTypes:!0}).filter(a=>(a.isDirectory()||a.isSymbolicLink())&&a.name.startsWith(g)&&a.name.length>g.length&&(0,b.existsSync)((0,d.join)(m,a.name,"config.yaml"))).map(a=>({name:a.name.slice(g.length),home:(0,d.join)(m,a.name)})).sort((a,b)=>a.name.localeCompare(b.name))}catch{return c}for(let a of l){let b=function(a,b){if(!b.has(a))return a;let c=`${a}-home`;if(!b.has(c))return c;let d=2;for(;b.has(`${c}-${d}`);)d+=1;return`${c}-${d}`}(a.name,j);j.add(b),c.push({name:b,home:a.home})}return c}a.s(["HERMES_DEFAULT_PROFILE",0,h,"hermesProjectName",0,function(a,b){return`hermes-${a}-${b}`},"hermesProjectNameCandidates",0,function(a){if(!a.startsWith("hermes-"))return[];let b=a.slice(7);if(!b)return[];let c=[];for(let a of j().map(a=>a.name).sort((a,b)=>b.length-a.length)){let d=`${a}-`;b.startsWith(d)&&b.length>d.length&&c.push({profile:a,source:b.slice(d.length)})}return c.push({profile:h,source:b}),c},"hermesProjectPath",0,function(a,b){return`hermes:${a}:${b}`},"hermesRoot",0,i,"listHermesProfiles",0,j])},31920,a=>{"use strict";var b=a.i(21572);a.s(["isTelemetryEnabled",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,b.readConfig)().telemetry.enabled}catch{return!0}}])},69839,a=>{"use strict";let b;var c=a.i(2157),d=a.i(50227),e=a.i(60526),f=a.i(66680);a.i(74533);var g=a.i(75818);let h=d.default.join(e.default.homedir(),".failproofai"),i=d.default.join(h,"instance-id");function j(a){return f.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(a){let b;try{if(b=(0,g.telemetryIdFile)(),c.default.readFileSync(b,"utf-8").trim()===a)return}catch{try{b=(0,g.telemetryIdFile)()}catch{return}}try{c.default.mkdirSync(d.default.dirname(b),{recursive:!0});let e=`${b}.${process.pid}.tmp`;c.default.writeFileSync(e,a,{encoding:"utf-8",mode:384}),c.default.renameSync(e,b)}catch{}}a.s(["getInstanceId",0,function(){if(b)return b;let a=function(){try{for(let a of(e.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=c.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return k(b=j(a)),b;let d=[e.default.hostname(),e.default.homedir(),e.default.platform(),e.default.arch(),e.default.cpus()[0]?.model??""].join(":");return d?k(b=j(d)):k(b=function(){try{let a=c.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=f.default.randomUUID();try{c.default.mkdirSync(h,{recursive:!0}),c.default.writeFileSync(i,a,"utf-8")}catch{}return a}()),b},"hashToId",0,j])},93328,a=>{"use strict";var b=a.i(69839),c=a.i(31920),d=a.i(12072),e=a.i(79779);e.POSTHOG_API_KEY,a.s(["trackEvent",0,function(a,f){if(!(0,c.isTelemetryEnabled)())return;let g=globalThis.__FAILPROOFAI_POSTHOG__;g&&g.capture({distinctId:(0,b.getInstanceId)(),event:a,properties:{...f,$lib:"failproofai",failproofai_version:d.version,product:e.POSTHOG_PRODUCT}})}])},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.9-beta.1",description:"Observability and enforcement for AI agent harnesses. 40 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","hermes-plugin/","openclaw-plugin/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node --external sql.js && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"","build:worker":"bun build --target=node --format=esm --outfile=dist/worker.mjs bin/failproofai-worker.mjs --external posthog-node --external sql.js",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun run build:worker && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate","validate:mdx":"bun scripts/validate-mdx.ts","docs:audit":"bun scripts/docs-audit.ts","build:pack":"bun scripts/build-policy-pack.mjs"},keywords:["agent-observability","llm-observability","agent-tracing","agent-monitoring","agent-harness","guardrails","enforcement","policies","evals","ai-agent","autonomous-agent","agent-reliability","failure-prevention","claude-code","codex","hermes","openclaw","cli","local-first","hooks"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/FailproofAI/failproofai",repository:{type:"git",url:"https://github.com/FailproofAI/failproofai.git"},bugs:{url:"https://github.com/FailproofAI/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.128.0","@mdx-js/mdx":"^3.1.1","@tailwindcss/postcss":"^4.3.1","@tanstack/react-virtual":"^3.14.10","@testing-library/jest-dom":"^7.0.0","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.5","@types/node":"26.6.2","@types/react":"19.3.0","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.1.0",clsx:"^2.1.1",eslint:"^10.9.0","eslint-config-next":"^16.3.2",jsdom:"^30.0.1","lucide-react":"^1.33.0",next:"^16.3.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.1","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.9-beta.1","@failproofai/failproofaid-linux-arm64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-x64":"1.0.9-beta.1","@failproofai/failproofaid-darwin-arm64":"1.0.9-beta.1"},failproofaidBinaries:{"linux-x64":"a0db1ad28bc0584bb4554b1dc60b55353fad9d982354880f9cc1e1ee567e5d36","linux-arm64":"b8d2797db8d93ce0deec86707093dd22ecd2d3fe2b137944938f4851d31718f1","darwin-x64":"94dc7ea33121c884736eadafc8281b0b752824b5c7fbe1726745bd1fa2b2a577","darwin-arm64":"8da18bbede18b8c112e8c46b6f0de798e84445c163a91a80edeef6d9e21da8ad"}}},1144,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(75818);let e="current.jsonl",f=()=>(0,d.hookActivityDir)();function g(){(0,b.existsSync)(f())||(0,b.mkdirSync)(f(),{recursive:!0})}function h(){let a=function(){try{return JSON.parse((0,b.readFileSync)((0,c.join)(f(),"stats.json"),"utf-8"))}catch{return{totalEvents:0,denyCount:0,policyMap:{}}}}(),d=null,e=0;for(let[b,c]of Object.entries(a.policyMap))c>e&&(d=b,e=c);return{totalEvents:a.totalEvents,denyCount:a.denyCount,topPolicy:d,topPolicyCount:e}}function i(a){let c=function(a){try{return(0,b.readFileSync)(a,"utf-8")}catch{return""}}(a);if(!c.trim())return[];let d=[];for(let a of c.trim().split("\n"))try{var e;d.push((e=JSON.parse(a),void 0===e.cloudVersion&&"number"==typeof e.cloudRevision&&(e.cloudVersion=e.cloudRevision),void 0===e.cloudDeployment&&"number"==typeof e.cloudGeneration&&(e.cloudDeployment=e.cloudGeneration),e))}catch{}return d}function j(){try{return(0,b.readdirSync)(f()).filter(a=>a.startsWith("page-")&&a.endsWith(".jsonl")).sort((a,b)=>{let c=a.slice(5,-6).split("-"),d=b.slice(5,-6).split("-"),e=parseInt(c[0],10),f=parseInt(d[0],10);if(e!==f)return f-e;let g=c.length>1?parseInt(c[1],10):0;return(d.length>1?parseInt(d[1],10):0)-g})}catch{return[]}}a.s(["getHookActivityEntriesSince",0,function(a){g();let b=f(),d=b=>"number"==typeof b.timestamp&&b.timestamp>=a,h=new Set(j());let k=i((0,c.join)(b,e));let l=new Map;for(let a of k){let b=JSON.stringify(a);l.set(b,(l.get(b)??0)+1)}let m=a=>{let b=JSON.stringify(a),c=l.get(b)??0;return 0===c||(l.set(b,c-1),!1)},n=k.reverse().filter(d);for(let e of j()){let f=parseInt(e.slice(5,-6).split("-")[0],10);if(Number.isFinite(f)&&f<a-6e5)break;let g=i((0,c.join)(b,e));h.has(e)||(g=g.filter(m)),n.push(...g.reverse().filter(d))}return n},"getHookActivityHistory",0,function(a){let b=function(a){if(g(),a<1)return[];if(1===a)return i((0,c.join)(f(),e)).reverse();let b=j(),d=a-2;return d>=b.length?[]:i((0,c.join)(f(),b[d])).reverse()}(a);return{entries:b,totalPages:(g(),1+j().length),page:a,stats:h()}},"searchHookActivity",0,function(a,b){let d=(function(){g();let a=i((0,c.join)(f(),e)).reverse(),b=j(),d=[];for(let a of b){let b=i((0,c.join)(f(),a));d.push(...b.reverse())}return[...a,...d]})().filter(b=>(!a.decision||b.decision===a.decision)&&(!a.eventType||b.eventType===a.eventType)&&(!a.policyName||!!b.policyName&&!!b.policyName.toLowerCase().includes(a.policyName.toLowerCase()))&&(!a.sessionId||!!b.sessionId&&!!b.sessionId.toLowerCase().includes(a.sessionId.toLowerCase()))&&(!a.integration||b.integration===a.integration)&&(!a.source||b.policySource===a.source)&&!0),k=Math.max(1,Math.ceil(d.length/25)),l=(b-1)*25;return{entries:d.slice(l,l+25),totalPages:k,page:b,stats:h()}}])},79779,a=>{"use strict";a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=%5Broot-of-the-server%5D__15578wp._.js.map
|