failproofai 1.0.12-beta.2 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +4 -4
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.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 +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.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 +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/audit/invite/route.js.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/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 +3 -3
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- 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/server-reference-manifest.json +14 -14
- package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +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/_0tovk6q0miud6._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0trp3ycqv17cl._.js +1 -1
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4vkpxxu7._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08ch3staq3ejw._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0bigvy9xmv2ka._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h86bl2qf0k_o._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pia5h3p8re4c._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pwj2h2efe5f-._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1-ey9fgesfbc0._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15usvs-ms-0hf._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__00l2u6j86cb8y._.js → [root-of-the-server]__167mipqmjprq5._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__16gb3_92zvk5x._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1avi2kypusyb_._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1r7drlqli-ado._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0bseae9u7g98r._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0eoura3_9gjb-._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0mouhaflye1ro._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0pedwblqdoh58._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_1fw0_nzkae5ao._.js → _1d98fyfrcaqhy._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_1djqs9i27e4kg._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_20hn4gn87nsjc._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo5_vm5f.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_actions_get-scheduled-audit_ts_0ei9snixb5fd-._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47q0xq5w._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_components_project-list_tsx_1ke6anr0vt64h._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x33jqb6._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpcz0uxur._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_settings_02tf1h47jmhhd._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_html-to-image_es_index_1fv03uigni8s5.js → node_modules_html-to-image_es_index_0tqc05n832v7a.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/package_json_[json]_cjs_013tntikdft59._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- 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/preview-props.json +3 -3
- 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/{1c_jf6g5wnslk.js → 0el9n3h9_zp5m.js} +1 -1
- package/.next/standalone/.next/static/chunks/0k7g_8x3o6gd-.js +1 -0
- package/.next/standalone/.next/static/chunks/{2o6d37j425uci.js → 0umzct31duk5g.js} +1 -1
- package/.next/standalone/.next/static/chunks/{42xptz88mtq3x.js → 0wobqgosirs8p.js} +1 -1
- package/.next/standalone/.next/static/chunks/12rug3jilwqzs.js +1 -0
- package/.next/standalone/.next/static/chunks/{0ay__-d2h1xb5.js → 1kduj74-715jh.js} +1 -1
- package/.next/standalone/.next/static/chunks/{40oworn_-x12p.js → 2701amhrbsbot.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0tbm3vjm62h-2.js → 27cavoc8paelg.js} +1 -1
- package/.next/standalone/.next/static/chunks/{1my3-5p47t7r-.js → 2ve23a7keupjw.js} +1 -1
- package/.next/standalone/.next/static/chunks/{21hckpmsc4g70.js → 3bv6xaoitjpnh.js} +2 -2
- package/.next/standalone/fp-cloud-cli/CHANGELOG.md +19 -0
- package/.next/standalone/fp-cloud-cli/README.md +120 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/app.py +15 -1
- package/.next/standalone/fp-cloud-cli/fp_cli/client.py +198 -7
- package/.next/standalone/fp-cloud-cli/fp_cli/cloud_output.py +523 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/_cloud.py +45 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/_write.py +3 -1
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/account_cmds.py +171 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/agent_cmds.py +80 -7
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/alerts_cmds.py +23 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/audits_cmds.py +2 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/contracts_cmds.py +67 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/dashboards_cmds.py +159 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/evaluators_cmds.py +380 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/events_cmds.py +14 -1
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/incidents_cmds.py +82 -6
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/list_cmds.py +4 -1
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/orgs_cmds.py +17 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/policies_cmds.py +143 -1
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/queries_cmds.py +70 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/sentiment_cmds.py +49 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/sessions_cmds.py +95 -1
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/settings_cmds.py +2 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/usage_cmds.py +21 -1
- package/.next/standalone/fp-cloud-cli/fp_cli/commands/users_cmds.py +14 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/errors.py +3 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/evaluator_spec.py +266 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/output.py +187 -81
- package/.next/standalone/fp-cloud-cli/fp_cli/theme.py +21 -24
- package/.next/standalone/fp-cloud-cli/skill/SKILL.md +124 -23
- package/.next/standalone/fp-cloud-cli/skill/agents/openai.yaml +2 -1
- package/.next/standalone/fp-cloud-cli/skill/references/commands.md +168 -16
- package/.next/standalone/fp-cloud-cli/tests/fake_cloud_smoke.py +312 -0
- package/.next/standalone/fp-cloud-cli/tests/test_cloud_account.py +125 -0
- package/.next/standalone/fp-cloud-cli/tests/test_cloud_agent.py +253 -0
- package/.next/standalone/fp-cloud-cli/tests/test_cloud_human_views.py +287 -0
- package/.next/standalone/fp-cloud-cli/tests/test_cloud_observability.py +116 -0
- package/.next/standalone/fp-cloud-cli/tests/test_cloud_transport.py +141 -0
- package/.next/standalone/fp-cloud-cli/tests/test_commands.py +3 -3
- package/.next/standalone/fp-cloud-cli/tests/test_dashboards_agent.py +3 -3
- package/.next/standalone/fp-cloud-cli/tests/test_evaluator_authoring.py +449 -0
- package/.next/standalone/fp-cloud-cli/tests/test_facets.py +1 -1
- package/.next/standalone/fp-cloud-cli/tests/test_help_table_coverage.py +15 -0
- package/.next/standalone/fp-cloud-cli/tests/test_operator.py +1 -1
- package/.next/standalone/fp-cloud-cli/tests/test_orgs.py +1 -1
- package/.next/standalone/fp-cloud-cli/tests/test_output.py +37 -37
- package/.next/standalone/fp-cloud-cli/tests/test_round4_behaviour.py +144 -0
- package/.next/standalone/fp-cloud-cli/tests/test_screen_language.py +80 -0
- package/.next/standalone/fp-cloud-cli/tests/test_session_reevaluate.py +33 -0
- package/.next/standalone/fp-cloud-cli/tests/test_staging_parity.py +198 -0
- package/.next/standalone/fp-cloud-cli/tests/test_whoami.py +1 -1
- package/.next/standalone/hermes-plugin/plugin.yaml +1 -1
- package/.next/standalone/package.json +9 -9
- package/.next/standalone/sdk/typescript/integration/fixtures/ai-4/package-lock.json +68 -176
- package/.next/standalone/sdk/typescript/integration/fixtures/ai-4/package.json +2 -2
- package/.next/standalone/sdk/typescript/integration/fixtures/ai-5/package-lock.json +4 -4
- package/.next/standalone/sdk/typescript/integration/fixtures/ai-5/package.json +1 -1
- package/.next/standalone/sdk/typescript/integration/fixtures/ai-6/package-lock.json +7 -7
- package/.next/standalone/sdk/typescript/integration/fixtures/ai-6/package.json +1 -1
- package/.next/standalone/sdk/typescript/integration/fixtures/ai-7/package-lock.json +7 -7
- package/.next/standalone/sdk/typescript/integration/fixtures/ai-7/package.json +1 -1
- package/.next/standalone/sdk/typescript/integration/fixtures/langchain-0.3/package-lock.json +98 -115
- package/.next/standalone/sdk/typescript/integration/fixtures/langchain-0.3/package.json +3 -3
- package/.next/standalone/sdk/typescript/integration/fixtures/langchain-1/package-lock.json +4 -4
- package/.next/standalone/sdk/typescript/integration/fixtures/langchain-1/package.json +1 -1
- package/.next/standalone/sdk/typescript/integration/fixtures/langchain-dup-core/package-lock.json +4 -4
- package/.next/standalone/sdk/typescript/integration/fixtures/langchain-dup-core/package.json +1 -1
- package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.11/package-lock.json +149 -171
- package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.11/package.json +2 -2
- package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.12/package-lock.json +4 -4
- package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.12/package.json +1 -1
- package/.next/standalone/sdk/typescript/integration/fixtures/mastra-0/package-lock.json +25 -25
- package/.next/standalone/sdk/typescript/integration/fixtures/mastra-0/package.json +1 -1
- package/.next/standalone/sdk/typescript/integration/fixtures/mastra-1/package-lock.json +7 -7
- package/.next/standalone/sdk/typescript/integration/fixtures/mastra-1/package.json +1 -1
- package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/package-lock.json +10 -10
- package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/package.json +1 -1
- package/.next/standalone/sdk/typescript/integration/fixtures/runtimes/package-lock.json +7 -7
- package/.next/standalone/sdk/typescript/integration/fixtures/runtimes/package.json +1 -1
- package/.next/standalone/server.js +1 -1
- package/dist/cli.mjs +85 -37
- package/dist/worker.mjs +73 -28
- package/hermes-plugin/plugin.yaml +1 -1
- package/package.json +9 -9
- package/src/hooks/agent-skill.ts +3 -0
- package/src/hooks/fp-home.ts +1 -1
- package/src/hooks/handler.ts +22 -3
- package/src/hooks/semantic/intent.ts +127 -24
- package/src/hooks/semantic/jev-review.ts +21 -2
- package/.next/standalone/.next/static/chunks/20py8k1gd_i1m.js +0 -1
- package/.next/standalone/.next/static/chunks/2hmex93ppj1ke.js +0 -1
- /package/.next/standalone/.next/static/{LHCtFxVG0mdvd4lsXAOFC → D7LY1YSrw96ZxKSpxxrFw}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{LHCtFxVG0mdvd4lsXAOFC → D7LY1YSrw96ZxKSpxxrFw}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{LHCtFxVG0mdvd4lsXAOFC → D7LY1YSrw96ZxKSpxxrFw}/_ssgManifest.js +0 -0
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"next": "16.4.1",
|
|
17
17
|
"react": "19.3.0",
|
|
18
18
|
"react-dom": "19.3.0",
|
|
19
|
-
"zod": "4.6.
|
|
19
|
+
"zod": "4.6.7"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/node": "22.20.4",
|
|
@@ -2052,9 +2052,9 @@
|
|
|
2052
2052
|
}
|
|
2053
2053
|
},
|
|
2054
2054
|
"node_modules/hono": {
|
|
2055
|
-
"version": "4.13.
|
|
2056
|
-
"resolved": "https://registry.npmjs.org/hono/-/hono-4.13.
|
|
2057
|
-
"integrity": "sha512
|
|
2055
|
+
"version": "4.13.13",
|
|
2056
|
+
"resolved": "https://registry.npmjs.org/hono/-/hono-4.13.13.tgz",
|
|
2057
|
+
"integrity": "sha512-CQ46U0ZkAGmbT/4UxdzzGJpacP2IeKgY4a5/tOI9AABbpOMfK739wfDXmv1usCk+3RkKj1hQy4/fjhiwa2xlrA==",
|
|
2058
2058
|
"license": "MIT",
|
|
2059
2059
|
"engines": {
|
|
2060
2060
|
"node": ">=16.9.0"
|
|
@@ -3825,9 +3825,9 @@
|
|
|
3825
3825
|
}
|
|
3826
3826
|
},
|
|
3827
3827
|
"node_modules/undici": {
|
|
3828
|
-
"version": "7.
|
|
3829
|
-
"resolved": "https://registry.npmjs.org/undici/-/undici-7.
|
|
3830
|
-
"integrity": "sha512-
|
|
3828
|
+
"version": "7.30.1",
|
|
3829
|
+
"resolved": "https://registry.npmjs.org/undici/-/undici-7.30.1.tgz",
|
|
3830
|
+
"integrity": "sha512-03KrMbjIFDWQR5RNPrSw3bd1r12JpyFQl9/yxjUbJtqkjmllqC5lFjZh6ujeuJCKr8EOQvRW872Oy/az+nLYxg==",
|
|
3831
3831
|
"license": "MIT",
|
|
3832
3832
|
"engines": {
|
|
3833
3833
|
"node": ">=20.18.1"
|
|
@@ -4029,9 +4029,9 @@
|
|
|
4029
4029
|
}
|
|
4030
4030
|
},
|
|
4031
4031
|
"node_modules/zod": {
|
|
4032
|
-
"version": "4.6.
|
|
4033
|
-
"resolved": "https://registry.npmjs.org/zod/-/zod-4.6.
|
|
4034
|
-
"integrity": "sha512-
|
|
4032
|
+
"version": "4.6.7",
|
|
4033
|
+
"resolved": "https://registry.npmjs.org/zod/-/zod-4.6.7.tgz",
|
|
4034
|
+
"integrity": "sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==",
|
|
4035
4035
|
"license": "MIT",
|
|
4036
4036
|
"funding": {
|
|
4037
4037
|
"url": "https://github.com/sponsors/colinhacks"
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"name": "failproofai-it-runtimes",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"ai": "6.0.288",
|
|
10
|
-
"zod": "4.6.
|
|
10
|
+
"zod": "4.6.7"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
13
|
"@types/node": "22.20.4",
|
|
@@ -456,9 +456,9 @@
|
|
|
456
456
|
"license": "(AFL-2.1 OR BSD-3-Clause)"
|
|
457
457
|
},
|
|
458
458
|
"node_modules/undici": {
|
|
459
|
-
"version": "6.
|
|
460
|
-
"resolved": "https://registry.npmjs.org/undici/-/undici-6.
|
|
461
|
-
"integrity": "sha512-
|
|
459
|
+
"version": "6.29.1",
|
|
460
|
+
"resolved": "https://registry.npmjs.org/undici/-/undici-6.29.1.tgz",
|
|
461
|
+
"integrity": "sha512-EvRlUt/QqAEvXdQeRMYUfwOQsfzpDztykrG2owGEE/rBOBoYv9uF39ZzsNDh4lTFHhTr2XOZjKkYgueD12ZmGA==",
|
|
462
462
|
"license": "MIT",
|
|
463
463
|
"engines": {
|
|
464
464
|
"node": ">=18.17"
|
|
@@ -472,9 +472,9 @@
|
|
|
472
472
|
"license": "MIT"
|
|
473
473
|
},
|
|
474
474
|
"node_modules/zod": {
|
|
475
|
-
"version": "4.6.
|
|
476
|
-
"resolved": "https://registry.npmjs.org/zod/-/zod-4.6.
|
|
477
|
-
"integrity": "sha512-
|
|
475
|
+
"version": "4.6.7",
|
|
476
|
+
"resolved": "https://registry.npmjs.org/zod/-/zod-4.6.7.tgz",
|
|
477
|
+
"integrity": "sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==",
|
|
478
478
|
"license": "MIT",
|
|
479
479
|
"funding": {
|
|
480
480
|
"url": "https://github.com/sponsors/colinhacks"
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"description": "Integration fixture: the pinned non-Node runtimes (Bun, Deno) that the core smoke (agent.ts), the short-lived-handler cases and every framework fixture's agent run under. Installed with --ignore-scripts, so each runtime is its platform package's own binary, which the harness locates. `ai` and `zod` are for deno-npm.ts, which imports them through `npm:` specifiers.",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"ai": "6.0.288",
|
|
8
|
-
"zod": "4.6.
|
|
8
|
+
"zod": "4.6.7"
|
|
9
9
|
},
|
|
10
10
|
"devDependencies": {
|
|
11
11
|
"@types/node": "22.20.4",
|
|
@@ -9,7 +9,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
|
|
|
9
9
|
const hostname = process.env.HOSTNAME || '0.0.0.0'
|
|
10
10
|
|
|
11
11
|
let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
|
|
12
|
-
const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"1.0.12
|
|
12
|
+
const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"1.0.12"},"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"instrumentationClientInject":[],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/failproofai/failproofai","enablePrerenderSourceMaps":true,"cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"deprecated":{},"experimental":{"agentUpgrade":"security","agentFeedback":false,"coldCacheBadge":false,"collapseAdapterRoutes":true,"devValidationWorker":true,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"parallelRouteMetadata":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"dynamicOnHover":false,"reactBrowserBailout":true,"useOffline":false,"varyParams":true,"optimisticRouting":true,"concurrentRouterQueue":false,"instrumentationClientRouterTransitionEvents":false,"prefetchInlining":{"maxSize":2048,"maxBundleSize":10240},"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptOperationCache":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptMozjpeg":true,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"devMemoryThresholdRestart":true,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"requestInsights":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"useTypeScriptCli":true,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":true,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"serverComponentsHmrCancellation":false,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"useCacheStaticRootParamTracking":false,"globalNotFound":false,"explicitParallelRouteChildren":true,"strictRouteMatching":true,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"disableResumeDataCacheCompression":false,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"exposeRuntimeErrorsToHMR":false,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":true,"turbopackStaleOutputMaxAge":604800000,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","turbopackSharedRuntime":true,"turbopackMemoryEvictionMode":"auto","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"useCacheTimeout":54,"instantInsights":{"validationLevel":"warning"},"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","outputFileTracingExcludes":{"*":["node_modules/@img/**","node_modules/sharp/**"]},"turbopack":{"root":"/home/runner/work/failproofai/failproofai"},"repoRoot":"/home/runner/work/failproofai/failproofai","distDirRoot":".next"}
|
|
13
13
|
|
|
14
14
|
process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
|
|
15
15
|
|
package/dist/cli.mjs
CHANGED
|
@@ -29,7 +29,7 @@ var __esm = (fn, res, err) => () => {
|
|
|
29
29
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
30
30
|
|
|
31
31
|
// package.json
|
|
32
|
-
var version2 = "1.0.12
|
|
32
|
+
var version2 = "1.0.12", package_default;
|
|
33
33
|
var init_package = __esm(() => {
|
|
34
34
|
package_default = {
|
|
35
35
|
name: "failproofai",
|
|
@@ -159,16 +159,16 @@ var init_package = __esm(() => {
|
|
|
159
159
|
browserslist: "4.28.8"
|
|
160
160
|
},
|
|
161
161
|
optionalDependencies: {
|
|
162
|
-
"@failproofai/failproofaid-linux-x64": "1.0.12
|
|
163
|
-
"@failproofai/failproofaid-linux-arm64": "1.0.12
|
|
164
|
-
"@failproofai/failproofaid-darwin-x64": "1.0.12
|
|
165
|
-
"@failproofai/failproofaid-darwin-arm64": "1.0.12
|
|
162
|
+
"@failproofai/failproofaid-linux-x64": "1.0.12",
|
|
163
|
+
"@failproofai/failproofaid-linux-arm64": "1.0.12",
|
|
164
|
+
"@failproofai/failproofaid-darwin-x64": "1.0.12",
|
|
165
|
+
"@failproofai/failproofaid-darwin-arm64": "1.0.12"
|
|
166
166
|
},
|
|
167
167
|
failproofaidBinaries: {
|
|
168
|
-
"linux-x64": "
|
|
169
|
-
"linux-arm64": "
|
|
170
|
-
"darwin-x64": "
|
|
171
|
-
"darwin-arm64": "
|
|
168
|
+
"linux-x64": "3b379ce2b03dd8a74393daed2c3120309f591fe6433e0c939d70c7b20da55be7",
|
|
169
|
+
"linux-arm64": "bd77d7fee68dc2723fb57cc9c7fcf957b7e939c797e61b099c412263880aa16e",
|
|
170
|
+
"darwin-x64": "fce3faab9406b1c2267955f0e07d04ef7a2b7a0b007e12ecd144fcfef563ebc8",
|
|
171
|
+
"darwin-arm64": "765732f8f64aa3d3dbd98e93b1aba71fc02956f65baeb73b08447b37fac3a17b"
|
|
172
172
|
}
|
|
173
173
|
};
|
|
174
174
|
});
|
|
@@ -30551,6 +30551,7 @@ __export(exports_intent, {
|
|
|
30551
30551
|
cleanHumanTurn: () => cleanHumanTurn,
|
|
30552
30552
|
cleanUserSaid: () => cleanUserSaid,
|
|
30553
30553
|
humanMessageText: () => humanMessageText,
|
|
30554
|
+
intentProfileKey: () => intentProfileKey,
|
|
30554
30555
|
lastAgentMessage: () => lastAgentMessage,
|
|
30555
30556
|
looseIntentStoreDir: () => looseIntentStoreDir,
|
|
30556
30557
|
pruneExpiredSessions: () => pruneExpiredSessions,
|
|
@@ -30570,13 +30571,27 @@ import {
|
|
|
30570
30571
|
writeFileSync as writeFileSync12
|
|
30571
30572
|
} from "node:fs";
|
|
30572
30573
|
import { dirname as dirname18, resolve as resolve25 } from "node:path";
|
|
30574
|
+
function intentProfileKey(profile) {
|
|
30575
|
+
if (validAgentIdentity(profile.agent))
|
|
30576
|
+
return `${profile.agent.integration}.${profile.agent.instanceId}`;
|
|
30577
|
+
return isKnownCli(profile.cli) ? profile.cli : null;
|
|
30578
|
+
}
|
|
30579
|
+
function storeSlot(sessionId, profile) {
|
|
30580
|
+
if (profile === undefined)
|
|
30581
|
+
return { dir: sessionsDir(), file: resolve25(sessionsDir(), `${sessionId}.json`) };
|
|
30582
|
+
const key = intentProfileKey(profile);
|
|
30583
|
+
if (key === null || !PROFILE_DIR_RE.test(key))
|
|
30584
|
+
return null;
|
|
30585
|
+
const dir = resolve25(sessionsDir(), key);
|
|
30586
|
+
return { dir, file: resolve25(dir, `${sessionId}.json`) };
|
|
30587
|
+
}
|
|
30573
30588
|
function modesAreMeaningful2() {
|
|
30574
30589
|
return process.platform !== "win32";
|
|
30575
30590
|
}
|
|
30576
|
-
function storeDirChain() {
|
|
30591
|
+
function storeDirChain(innermost = sessionsDir()) {
|
|
30577
30592
|
const home = resolve25(failproofaiHome());
|
|
30578
30593
|
const chain = [];
|
|
30579
|
-
let dir =
|
|
30594
|
+
let dir = innermost;
|
|
30580
30595
|
for (let i = 0;i < 8; i++) {
|
|
30581
30596
|
chain.push(dir);
|
|
30582
30597
|
if (dir === home)
|
|
@@ -30588,10 +30603,10 @@ function storeDirChain() {
|
|
|
30588
30603
|
}
|
|
30589
30604
|
return chain;
|
|
30590
30605
|
}
|
|
30591
|
-
function looseIntentStoreDir() {
|
|
30606
|
+
function looseIntentStoreDir(innermost) {
|
|
30592
30607
|
if (!modesAreMeaningful2())
|
|
30593
30608
|
return null;
|
|
30594
|
-
for (const dir of storeDirChain()) {
|
|
30609
|
+
for (const dir of storeDirChain(innermost)) {
|
|
30595
30610
|
let mode;
|
|
30596
30611
|
try {
|
|
30597
30612
|
mode = statSync25(dir).mode & 511;
|
|
@@ -30610,23 +30625,22 @@ function looseIntentStoreDir() {
|
|
|
30610
30625
|
}
|
|
30611
30626
|
return null;
|
|
30612
30627
|
}
|
|
30613
|
-
function readIntentFile(
|
|
30628
|
+
function readIntentFile(slot) {
|
|
30614
30629
|
try {
|
|
30615
|
-
const parsed = JSON.parse(readFileSync26(
|
|
30630
|
+
const parsed = JSON.parse(readFileSync26(slot.file, "utf8"));
|
|
30616
30631
|
return Array.isArray(parsed?.prompts) ? parsed : { prompts: [] };
|
|
30617
30632
|
} catch {
|
|
30618
30633
|
return { prompts: [] };
|
|
30619
30634
|
}
|
|
30620
30635
|
}
|
|
30621
|
-
function appendPrompt(
|
|
30636
|
+
function appendPrompt(slot, entry) {
|
|
30622
30637
|
try {
|
|
30623
|
-
const file = readIntentFile(
|
|
30638
|
+
const file = readIntentFile(slot);
|
|
30624
30639
|
const last = file.prompts[file.prompts.length - 1];
|
|
30625
30640
|
const kept = last && last.text === entry.text ? file.prompts.slice(0, -1) : file.prompts;
|
|
30626
30641
|
file.prompts = [...kept, entry].slice(-MAX_RECORDED_PROMPTS);
|
|
30627
|
-
|
|
30628
|
-
|
|
30629
|
-
const target = intentFile(sessionId);
|
|
30642
|
+
mkdirSync14(slot.dir, { recursive: true, mode: 448 });
|
|
30643
|
+
const target = slot.file;
|
|
30630
30644
|
const isNew = !fileExists2(target);
|
|
30631
30645
|
const tmp = `${target}.${process.pid}.tmp`;
|
|
30632
30646
|
writeFileSync12(tmp, JSON.stringify(file), { mode: 384 });
|
|
@@ -30647,9 +30661,24 @@ function fileExists2(path) {
|
|
|
30647
30661
|
}
|
|
30648
30662
|
}
|
|
30649
30663
|
function pruneExpiredSessions(now = Date.now()) {
|
|
30664
|
+
const root = sessionsDir();
|
|
30665
|
+
let removed = pruneDir(root, now);
|
|
30666
|
+
try {
|
|
30667
|
+
for (const name of readdirSync16(root)) {
|
|
30668
|
+
if (!PROFILE_DIR_RE.test(name))
|
|
30669
|
+
continue;
|
|
30670
|
+
const dir = resolve25(root, name);
|
|
30671
|
+
try {
|
|
30672
|
+
if (statSync25(dir).isDirectory())
|
|
30673
|
+
removed += pruneDir(dir, now);
|
|
30674
|
+
} catch {}
|
|
30675
|
+
}
|
|
30676
|
+
} catch {}
|
|
30677
|
+
return removed;
|
|
30678
|
+
}
|
|
30679
|
+
function pruneDir(dir, now) {
|
|
30650
30680
|
let removed = 0;
|
|
30651
30681
|
try {
|
|
30652
|
-
const dir = sessionsDir();
|
|
30653
30682
|
for (const name of readdirSync16(dir)) {
|
|
30654
30683
|
if (!SESSION_FILE_RE3.test(name))
|
|
30655
30684
|
continue;
|
|
@@ -30665,23 +30694,29 @@ function pruneExpiredSessions(now = Date.now()) {
|
|
|
30665
30694
|
} catch {}
|
|
30666
30695
|
return removed;
|
|
30667
30696
|
}
|
|
30668
|
-
function recordPrompt(sessionId, prompt, agent, now) {
|
|
30697
|
+
function recordPrompt(sessionId, profile, prompt, agent, now) {
|
|
30669
30698
|
if (!SESSION_ID_RE2.test(sessionId))
|
|
30670
30699
|
return false;
|
|
30671
30700
|
if (prompt.trim().length === 0)
|
|
30672
30701
|
return false;
|
|
30702
|
+
const slot = storeSlot(sessionId, profile);
|
|
30703
|
+
if (!slot)
|
|
30704
|
+
return false;
|
|
30673
30705
|
try {
|
|
30674
|
-
return appendPrompt(
|
|
30706
|
+
return appendPrompt(slot, { at: now, text: storable(prompt.trim()), agent: agent === null ? null : storable(agent) });
|
|
30675
30707
|
} catch {
|
|
30676
30708
|
return false;
|
|
30677
30709
|
}
|
|
30678
30710
|
}
|
|
30679
|
-
function livePrompts(sessionId, now) {
|
|
30711
|
+
function livePrompts(sessionId, now, profile) {
|
|
30680
30712
|
if (!sessionId || !SESSION_ID_RE2.test(sessionId))
|
|
30681
30713
|
return [];
|
|
30682
|
-
|
|
30714
|
+
const slot = storeSlot(sessionId, profile);
|
|
30715
|
+
if (!slot)
|
|
30683
30716
|
return [];
|
|
30684
|
-
|
|
30717
|
+
if (looseIntentStoreDir(slot.dir) !== null)
|
|
30718
|
+
return [];
|
|
30719
|
+
return readIntentFile(slot).prompts.filter((p) => typeof p?.text === "string" && typeof p.at === "number" && now - p.at <= INTENT_MAX_AGE_MS && p.at - now <= MAX_CLOCK_SKEW_MS);
|
|
30685
30720
|
}
|
|
30686
30721
|
function replaceTagBlocks(text, tag, replace, attributes = false) {
|
|
30687
30722
|
const open = attributes ? `<${tag}` : `<${tag}>`;
|
|
@@ -31028,16 +31063,16 @@ function captureIntent(ev, now = Date.now()) {
|
|
|
31028
31063
|
const cleaned = cleanHumanTurn(raw);
|
|
31029
31064
|
if (cleaned === null)
|
|
31030
31065
|
return;
|
|
31031
|
-
recordPrompt(sessionId, cleaned, lastAgentMessage(ev.transcriptPath), now);
|
|
31066
|
+
recordPrompt(sessionId, ev.profile, cleaned, lastAgentMessage(ev.transcriptPath), now);
|
|
31032
31067
|
} catch {}
|
|
31033
31068
|
}
|
|
31034
|
-
function readIntent(sessionId, now = Date.now()) {
|
|
31035
|
-
const prompts = livePrompts(sessionId, now);
|
|
31069
|
+
function readIntent(sessionId, now = Date.now(), profile) {
|
|
31070
|
+
const prompts = livePrompts(sessionId, now, profile);
|
|
31036
31071
|
const latest = prompts[prompts.length - 1];
|
|
31037
31072
|
const agent = latest && typeof latest.agent === "string" && latest.agent.length > 0 ? latest.agent : null;
|
|
31038
31073
|
return { userSaid: prompts.map((p) => p.text), agentLastMessage: agent };
|
|
31039
31074
|
}
|
|
31040
|
-
var MAX_RECORDED_PROMPTS = 5, INTENT_MAX_AGE_MS, MAX_CLOCK_SKEW_MS, SESSION_ID_RE2, sessionsDir = () => resolve25(semanticDir(), "sessions"),
|
|
31075
|
+
var MAX_RECORDED_PROMPTS = 5, INTENT_MAX_AGE_MS, MAX_CLOCK_SKEW_MS, SESSION_ID_RE2, sessionsDir = () => resolve25(semanticDir(), "sessions"), PROFILE_DIR_RE, DIR_WRITABLE_BY_OTHERS3 = 18, SESSION_FILE_RE3, NON_HUMAN_PREFIXES, CONTINUATION_PREFIX = "This session is being continued from a previous conversation", IDE_MACHINE_OPENERS, IDE_AMBIGUOUS_OPENERS, IDE_REQUEST_HEADINGS, obj = (v) => v && typeof v === "object" && !Array.isArray(v) ? v : undefined, CLAUDE_MACHINE_SOURCES, claudeMachineTurn = (payload) => typeof payload.source === "string" && CLAUDE_MACHINE_SOURCES.has(payload.source), piMachineTurn = (payload) => payload.input_source === "extension" || payload.source === "extension", openclawMachineRun = (payload) => {
|
|
31041
31076
|
const meta = obj(payload.openclaw);
|
|
31042
31077
|
if (!meta)
|
|
31043
31078
|
return false;
|
|
@@ -31053,9 +31088,11 @@ var MAX_RECORDED_PROMPTS = 5, INTENT_MAX_AGE_MS, MAX_CLOCK_SKEW_MS, SESSION_ID_R
|
|
|
31053
31088
|
var init_intent = __esm(() => {
|
|
31054
31089
|
init_fp_home();
|
|
31055
31090
|
init_envelope();
|
|
31091
|
+
init_agent_targets();
|
|
31056
31092
|
INTENT_MAX_AGE_MS = 6 * 60 * 60 * 1000;
|
|
31057
31093
|
MAX_CLOCK_SKEW_MS = 5 * 60 * 1000;
|
|
31058
31094
|
SESSION_ID_RE2 = /^[A-Za-z0-9._-]{1,128}$/;
|
|
31095
|
+
PROFILE_DIR_RE = /^[a-z]+(?:\.agt_[0-9a-f]{16,32})?$/;
|
|
31059
31096
|
SESSION_FILE_RE3 = /^[A-Za-z0-9._-]{1,128}\.json(?:\.\d+\.tmp)?$/;
|
|
31060
31097
|
NON_HUMAN_PREFIXES = [
|
|
31061
31098
|
"<local-command-caveat>",
|
|
@@ -32754,7 +32791,10 @@ function startJevReview(cfg, call) {
|
|
|
32754
32791
|
}
|
|
32755
32792
|
let intent;
|
|
32756
32793
|
try {
|
|
32757
|
-
intent = intentReader.readIntent(call.sessionId
|
|
32794
|
+
intent = intentReader.readIntent(call.sessionId, undefined, {
|
|
32795
|
+
cli: call.cli,
|
|
32796
|
+
agent: call.agent !== undefined ? call.agent : call.cloud?.agent ?? null
|
|
32797
|
+
});
|
|
32758
32798
|
} catch {
|
|
32759
32799
|
intent = { userSaid: [], agentLastMessage: null };
|
|
32760
32800
|
}
|
|
@@ -33166,6 +33206,7 @@ async function startTwoTier(canonicalEventType, parsed, session, cli, opts, acti
|
|
|
33166
33206
|
permissionMode: session.permissionMode,
|
|
33167
33207
|
sessionId: session.sessionId,
|
|
33168
33208
|
cli,
|
|
33209
|
+
agent,
|
|
33169
33210
|
...loaded.cloud ? { cloud: loaded.cloud } : {},
|
|
33170
33211
|
...activePause ? { localPaused: true } : {}
|
|
33171
33212
|
});
|
|
@@ -33192,13 +33233,16 @@ function jevTelemetry(activity) {
|
|
|
33192
33233
|
return {};
|
|
33193
33234
|
}
|
|
33194
33235
|
}
|
|
33195
|
-
async function captureJevIntent(canonicalEventType, decision, parsed, session, cli, opts) {
|
|
33236
|
+
async function captureJevIntent(canonicalEventType, decision, parsed, session, cli, opts, agent) {
|
|
33196
33237
|
if (canonicalEventType !== "UserPromptSubmit" || jevForcedOff(opts))
|
|
33197
33238
|
return;
|
|
33198
33239
|
try {
|
|
33199
|
-
|
|
33240
|
+
const cloudAsks = cloudJevAsks(readCloudJevMode());
|
|
33241
|
+
if (!cloudAsks && !jevChecksInstalled())
|
|
33242
|
+
return;
|
|
33243
|
+
if (cloudAsks && cloudJevAssignmentsFor(agent)?.length === 0 && !packJevChecksInstalled())
|
|
33200
33244
|
return;
|
|
33201
|
-
if (!await readJevConfig())
|
|
33245
|
+
if (!await readJevConfig(agent))
|
|
33202
33246
|
return;
|
|
33203
33247
|
if (decision === "deny") {
|
|
33204
33248
|
await Promise.resolve().then(() => init_enforcement_capability());
|
|
@@ -33212,7 +33256,8 @@ async function captureJevIntent(canonicalEventType, decision, parsed, session, c
|
|
|
33212
33256
|
transcriptPath: session.transcriptPath,
|
|
33213
33257
|
cli,
|
|
33214
33258
|
payload: parsed,
|
|
33215
|
-
prompt: parsed.prompt
|
|
33259
|
+
prompt: parsed.prompt,
|
|
33260
|
+
profile: { cli, agent }
|
|
33216
33261
|
};
|
|
33217
33262
|
captureIntent(event);
|
|
33218
33263
|
} catch (err) {
|
|
@@ -33478,7 +33523,7 @@ async function evaluateHookEvent(eventType, cli = "claude", stdinPayload, opts)
|
|
|
33478
33523
|
}
|
|
33479
33524
|
const durationMs = Math.round(performance.now() - startTime);
|
|
33480
33525
|
hookLogInfo(`result=${result.decision} policy=${result.policyName ?? "none"} duration=${durationMs}ms`);
|
|
33481
|
-
await captureJevIntent(canonicalEventType, result.decision, parsed, session, cli, opts);
|
|
33526
|
+
await captureJevIntent(canonicalEventType, result.decision, parsed, session, cli, opts, runtimeAgent);
|
|
33482
33527
|
const matchedPolicies = matchedBeforeRelease ?? getPoliciesForEvent(canonicalEventType, parsed.tool_name).map((p) => p.name);
|
|
33483
33528
|
const jevOrigin = result.policyName && result.twoTier?.decidedByJev ? result.twoTier.jevOrigin : undefined;
|
|
33484
33529
|
const activityEntry = {
|
|
@@ -36440,6 +36485,9 @@ For focused work, read the matching skill too. Each has the same layout, with it
|
|
|
36440
36485
|
- FailproofAI Cloud and the \`fp\` CLI: ${SKILLS_RAW}/fp-cloud-cli/SKILL.md
|
|
36441
36486
|
- Adding the SDK to an agent, or running an evaluator: ${SKILLS_RAW}/failproofai-sdk/SKILL.md
|
|
36442
36487
|
- Planning evaluations: ${SKILLS_RAW}/failproofai-eval-brainstorm/SKILL.md
|
|
36488
|
+
- Writing an evaluation: ${SKILLS_RAW}/failproofai-eval-author/SKILL.md
|
|
36489
|
+
- Writing an alert: ${SKILLS_RAW}/failproofai-alert-author/SKILL.md
|
|
36490
|
+
- Writing an audit: ${SKILLS_RAW}/failproofai-audit-author/SKILL.md
|
|
36443
36491
|
`;
|
|
36444
36492
|
});
|
|
36445
36493
|
|
|
@@ -53026,7 +53074,7 @@ import { realpathSync as realpathSync9 } from "fs";
|
|
|
53026
53074
|
import { dirname as dirname34, resolve as resolve47 } from "path";
|
|
53027
53075
|
import { fileURLToPath as fileURLToPath4 } from "url";
|
|
53028
53076
|
// package.json
|
|
53029
|
-
var version = "1.0.12
|
|
53077
|
+
var version = "1.0.12";
|
|
53030
53078
|
|
|
53031
53079
|
// bin/failproofai.mjs
|
|
53032
53080
|
if (!process.env.FAILPROOFAI_PACKAGE_ROOT) {
|