failproofai 1.0.12-beta.2 → 1.0.13-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 +13 -13
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- 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 +2 -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/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 +4 -3
- 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 +6 -5
- 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 +27 -26
- 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 +4 -3
- 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 +6 -5
- 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 +6 -5
- 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 +6 -5
- 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 +6 -5
- 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 +4 -3
- 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 +7 -6
- 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/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 +6 -5
- 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 +5 -4
- package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page/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 +21 -20
- 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 +10 -9
- 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 +7 -6
- 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 +6 -5
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/{[externals]__0vt9i6fqinjne._.js → [externals]__1h83uo-b1b6-2._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[externals]__214wn4wh2x79y._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[externals]__1rlxpymm37wel._.js → [root-of-the-server]__031qp1lkow_kc._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__038kwryp970nh._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0_hsnj_a2mvl_._.js → [root-of-the-server]__03s1za0hn71yp._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0wg9dk8x8bnau._.js → [root-of-the-server]__07a0sa6fuw5_b._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__08atcie7jzswm._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__08dchfudh2_4f._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0car70pylmvor._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0spt0kv8azrpl._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__12kq3x-h7t7i1._.js → [root-of-the-server]__0yvyp5b7jmlc4._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__02vous7mpi2xm._.js → [root-of-the-server]__145vo_drnuvas._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[externals]__0h0p9dmv_e7r7._.js → [root-of-the-server]__1a2d0ewycsp6k._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[externals]__1_407huhlmj1m._.js → [root-of-the-server]__1am_1tz0o0aqz._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__03i5o4a840guz._.js → [root-of-the-server]__1gxfzuvpyw30j._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1j6kfp0vzu5rw._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1l0ayum_hqqsw._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1lh8c0mmhdrbj._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1o9rznwc0w7og._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0f_4g-vazrvxv._.js → [root-of-the-server]__1o_622x0fglpr._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1oclamblhzhrf._.js +68 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1v1-l-83czzsr._.js +63 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1a5zkndjwlc13._.js → [root-of-the-server]__1wwi53kkqhnfi._.js} +1 -1
- package/.next/standalone/.next/server/chunks/{_1y590mjzpkbos._.js → _02sa8fcu9_9xo._.js} +2 -2
- 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/_1-2owkp-1_987._.js +1 -1
- package/.next/standalone/.next/server/chunks/_13ltj8a9z92o8._.js +1 -1
- package/.next/standalone/.next/server/chunks/_15k37au70vjvg._.js +1 -1
- package/.next/standalone/.next/server/chunks/_18rfu4__wjhwb._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1ek68lnh2daur._.js +2 -2
- package/.next/standalone/.next/server/chunks/_1fz8m31sndkcu._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1ogwigfb0163w._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1vslkoe35wok6._.js +1 -1
- package/.next/standalone/.next/server/chunks/node_modules_@opentelemetry_api_build_esm_index_0oo58a7rymoxh.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_@opentelemetry_api_build_esm_index_1jp9ij0_ddtgk.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oigsgz07._.js +2 -2
- package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p77cu37y._.js +2 -2
- 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]__0ffu2-38y03ic._.js → [root-of-the-server]__021vebe-4il8s._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__075uro8t92s0_._.js +14 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08ch3staq3ejw._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[externals]__12qr51qgrrt6o._.js → [root-of-the-server]__097i34ct1o88x._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0alpzjn3450sr._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0aup10z2o8zc1._.js +3 -0
- 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]__0bioghlkjf7s7._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__01j58mdcdw0vn._.js → [root-of-the-server]__0ed1zh4scn7-k._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0naevg4bcoh54._.js → [root-of-the-server]__0evgy902m9h5e._.js} +2 -2
- 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]__00l2u6j86cb8y._.js → [root-of-the-server]__0mhtkwwx1pxcq._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0nhm28v58ty9z._.js +3 -0
- 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]__0vse4qi496ol-._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__17r4zrwanhp6r._.js → [root-of-the-server]__0yb3u36xjy3b9._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0g8b0kyorya-t._.js → [root-of-the-server]__0ywj2u6ovfm_5._.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]__0zn1d4blhd3bu._.js → [root-of-the-server]__10v5cyxvj64j4._.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]__16gb3_92zvk5x._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__190xwrr5zrfi3._.js +3 -0
- 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]__1vx7o8ukefudh._.js → [root-of-the-server]__1guwlpkyurdn9._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1k96jctukf65_._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1r7drlqli-ado._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1sj-wn2jp6va5._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1vofkb2oq7p7e._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1s2-ck3k3rsoo._.js → [root-of-the-server]__20dt376-socef._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1lnfv02ucky7m._.js → [root-of-the-server]__2158020r_amn9._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_1fw0_nzkae5ao._.js → _0bc4f4quq6w47._.js} +2 -2
- 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/_0ouu886szh6yj._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0pedwblqdoh58._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1_ozgifqv1ssi._.js +1 -1
- 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_09s4n108bqreq._.js → node_modules_0ptcnmeaxvd_a._.js} +22 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_@opentelemetry_api_build_esm_index_0ntwr8lzj6p2i.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_html-to-image_es_index_1fv03uigni8s5.js → node_modules_html-to-image_es_index_1jwgv0pf-gy96.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_0bz67659f5z-3._.js +32 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_0ocrceo0c9psx._.js +32 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_1alv566ojmz5j._.js +32 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_1khq67j4vo9y4._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_shared_lib_0ftnv26hg1lry._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_0dagmbznysrc2._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuznb72p7z._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/package_json_[json]_cjs_013tntikdft59._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +13 -13
- package/.next/standalone/.next/server/middleware.js +2 -2
- 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/0cbom4-ijx_a_.js +1 -0
- package/.next/standalone/.next/static/chunks/0u5weo5jdn2s8.js +1 -0
- package/.next/standalone/.next/static/chunks/{1c_jf6g5wnslk.js → 18-icoqze51kl.js} +1 -1
- package/.next/standalone/.next/static/chunks/2d-u90dt4-8rd.js +6 -0
- package/.next/standalone/.next/static/chunks/2n-bzb7pxe7hu.js +1 -0
- package/.next/standalone/.next/static/chunks/{2o6d37j425uci.js → 2zc7lg-jq353g.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0tbm3vjm62h-2.js → 33djjf12bhcsv.js} +1 -1
- package/.next/standalone/.next/static/chunks/{42xptz88mtq3x.js → 38u_i3j5funpi.js} +1 -1
- package/.next/standalone/.next/static/chunks/{20py8k1gd_i1m.js → 3symuj7t4js-c.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0ay__-d2h1xb5.js → 3vzut6zpdrvtx.js} +1 -1
- package/.next/standalone/.next/static/chunks/{063al_q720fkj.js → 3xgxl1s_in776.js} +2 -2
- package/.next/standalone/SECURITY.md +20 -4
- package/.next/standalone/fp-cloud-cli/CHANGELOG.md +34 -1
- package/.next/standalone/fp-cloud-cli/README.md +120 -0
- package/.next/standalone/fp-cloud-cli/fp_cli/_version.py +1 -1
- 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/fp-cloud-cli/uv.lock +4 -4
- package/.next/standalone/hermes-plugin/plugin.yaml +1 -1
- 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/app-page-turbo-experimental.runtime.prod.js +24 -24
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +26 -26
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +3 -3
- package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +13 -13
- package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/.next/standalone/node_modules/next/dist/server/app-render/app-render.js +41 -40
- package/.next/standalone/node_modules/next/dist/server/app-render/async-local-storage.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/app-render/dynamic-rendering-validation.js +814 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/dynamic-rendering.js +1 -799
- package/.next/standalone/node_modules/next/dist/server/base-server.js +39 -5
- 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/dedupe-fetch.js +4 -43
- package/.next/standalone/node_modules/next/dist/server/lib/patch-fetch-symbol.js +13 -0
- package/.next/standalone/node_modules/next/dist/server/lib/patch-fetch.js +3 -7
- package/.next/standalone/node_modules/next/dist/server/lib/router-server.js +3 -3
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js +77 -12
- package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/trace/constants.js +12 -0
- package/.next/standalone/node_modules/next/dist/server/lib/trace/tracer.js +30 -14
- package/.next/standalone/node_modules/next/dist/server/next-server.js +10 -11
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/pages-handler.js +29 -23
- package/.next/standalone/node_modules/next/dist/server/route-modules/route-module.js +85 -8
- package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/web/adapter.js +124 -65
- package/.next/standalone/node_modules/next/dist/server/web/forward-trace-context.js +102 -0
- 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/node_modules/react/cjs/react.production.js +1 -1
- package/.next/standalone/node_modules/react/package.json +1 -1
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1 -1
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1 -1
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +31 -27
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +33 -27
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +38 -30
- package/.next/standalone/node_modules/react-dom/cjs/react-dom.production.js +1 -1
- package/.next/standalone/node_modules/react-dom/package.json +2 -2
- package/.next/standalone/package.json +10 -10
- package/.next/standalone/sdk/python/CHANGELOG.md +8 -4
- package/.next/standalone/sdk/python/failproofai_sdk/evaluator/source.py +2 -2
- package/.next/standalone/sdk/python/pyproject.toml +2 -7
- package/.next/standalone/sdk/python/skill/references/frameworks.md +0 -15
- package/.next/standalone/sdk/python/tests/test_docs.py +1 -4
- package/.next/standalone/sdk/python/tests/test_evaluator_source.py +1 -1
- package/.next/standalone/sdk/python/tests/test_packaging.py +4 -7
- package/.next/standalone/sdk/python/tests/test_zero_dependencies.py +2 -13
- package/.next/standalone/sdk/python/uv.lock +43 -905
- package/.next/standalone/sdk/typescript/CHANGELOG.md +52 -0
- package/.next/standalone/sdk/typescript/integration/fixtures/ai-5/package-lock.json +7 -7
- package/.next/standalone/sdk/typescript/integration/fixtures/ai-5/package.json +2 -2
- 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-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 +3 -3
- package/.next/standalone/sdk/typescript/integration/fixtures/llamaindex-0.11/package.json +3 -0
- 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 +34 -22
- package/.next/standalone/sdk/typescript/integration/fixtures/mastra-1/package.json +3 -2
- 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/deno-npm.ts +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/README.md +0 -6
- package/dist/cli.mjs +87 -38
- package/dist/worker.mjs +73 -28
- package/hermes-plugin/plugin.yaml +1 -1
- package/openclaw-plugin/daemon-client.js +254 -0
- package/openclaw-plugin/hooks.js +187 -0
- package/openclaw-plugin/index.js +17 -211
- package/package.json +10 -10
- package/scripts/sync-agent-cli-harnesses-prompt.md +26 -31
- package/src/hooks/agent-skill.ts +3 -0
- package/src/hooks/enforcement-capability.ts +1 -1
- package/src/hooks/fp-home.ts +1 -1
- package/src/hooks/handler.ts +22 -3
- package/src/hooks/integrations.ts +5 -2
- package/src/hooks/semantic/intent.ts +127 -24
- package/src/hooks/semantic/jev-review.ts +21 -2
- package/.next/standalone/.codex/hooks.json +0 -76
- package/.next/standalone/.cursor/hooks.json +0 -47
- package/.next/standalone/.factory/hooks.json +0 -112
- package/.next/standalone/.next/server/chunks/[externals]__1x24dzcbbq6-g._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0__a_je8fsn65._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l-oi4gdtmlo5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t9ufnv5hi2hq._.js +0 -327
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1aaw59g-5uty7._.js +0 -322
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1hqpg6vgmfexv._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[externals]__0ilfh9mfnzsth._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[externals]__0ohnuzsaozaca._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pwj2h2efe5f-._.js +0 -14
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js +0 -271
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_158jo-9mwvgad._.js +0 -291
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_19r82zsxo2jj1._.js +0 -291
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js +0 -23
- package/.next/standalone/.next/static/chunks/1my3-5p47t7r-.js +0 -1
- package/.next/standalone/.next/static/chunks/21hckpmsc4g70.js +0 -6
- package/.next/standalone/.next/static/chunks/2hmex93ppj1ke.js +0 -1
- package/.next/standalone/.next/static/chunks/40oworn_-x12p.js +0 -1
- package/.next/standalone/.opencode/opencode.json +0 -4
- package/.next/standalone/.opencode/plugins/failproofai.mjs +0 -210
- package/.next/standalone/.pi/settings.json +0 -5
- package/.next/standalone/node_modules/react/cjs/react.development.js +0 -1330
- package/scripts/dev-hook.mjs +0 -333
- /package/.next/standalone/.next/static/{LHCtFxVG0mdvd4lsXAOFC → 1n2dyfTQb0MDajeqlipJy}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{LHCtFxVG0mdvd4lsXAOFC → 1n2dyfTQb0MDajeqlipJy}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{LHCtFxVG0mdvd4lsXAOFC → 1n2dyfTQb0MDajeqlipJy}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[6095,e=>{var t=e.i(89171),r=e.i(47756),a=e.i(29095),n=e.i(48480);async function i(){let e=(0,n.J)(),i=(0,r.x)(),
|
|
1
|
+
(()=>{"use strict";module.exports=[6095,e=>{var t=e.i(89171),r=e.i(47756),a=e.i(29095),n=e.i(48480);async function i(){let e=(0,n.J)(),i=(0,r.x)(),s=(0,a.T)(),o=null!==s&&s.pid!==process.pid;return t.NextResponse.json({running:e.running||o,startedAt:e.startedAt??null,cachedAt:i?.cachedAt??null,error:e.error})}e.s(["GET",0,i,"dynamic",0,"force-dynamic"])},56799,e=>{var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(26937),v=e.i(10372),m=e.i(93695),w=e.i(9580);e.i(52474);var R=e.i(220);let x=new t.AppRouteRouteModule({definition:{kind:r.f.APP_ROUTE,page:"/api/audit/status/route",pathname:"/api/audit/status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/audit/status/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(6095),...{}}),{workAsyncStorage:g,workUnitAsyncStorage:y,serverHooks:E}=x;async function C(e,t,r){r.requestMeta&&(0,n.R)(e,r.requestMeta),x.isDev&&(0,n.i)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/audit/status/route";a=a.replace(/\/index$/,"")||"/";let{instrumentation:s}=await x.ensureInstrumentation(e,{deferSpans:!0});return x.traceRequest(e,{tracer:(0,i.v)(),spanName:`${e.method||"GET"} ${a}`,httpTarget:e.url,instrumentation:s},(n,i)=>A(e,t,r,a,!1,n,i))}async function A(e,t,a,g,y,E,C){let A=await x.prepare(e,t,{srcPage:g,multiZoneDraftMode:y});if(!A)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,deploymentId:b,params:P,nextConfig:O,parsedUrl:U,isDraftMode:S,prerenderManifest:k,routerServerContext:q,isOnDemandRevalidate:I,revalidateOnlyGenerated:M,resolvedPathname:N,clientReferenceManifest:_,serverActionsManifest:D,previewProps:G}=A,H=(0,o.f)(g),j=!!k.routes[N]&&(x.isDev||(0,w.f)(N,x.cacheOwner,k.routes[N])),L=!!(k.dynamicRoutes[H]||j),$=async()=>((null==q?void 0:q.render404)?await q.render404(e,t,U,!1):t.end("This page could not be found"),null);if(L&&!S){let e=k.dynamicRoutes[H];if(e&&!1===e.fallback&&!j){if(O.adapterPath)return await $();throw new m.NoFallbackError}}let B=null;!L||x.isDev||S||(B="/index"===(B=N)?"/":B),D&&_&&(0,s.f)({page:g,clientReferenceManifest:_,serverActionsManifest:D});let F=e.method||"GET",J=(0,i.v)(),K=!!(null==q?void 0:q.isWrappedByNextServer),Q=!!(0,n.w)(e,"minimalMode"),V=(0,n.w)(e,"incrementalCache")||await x.getIncrementalCache(e,O,G,k,Q);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:P,previewProps:G,renderOpts:{experimental:{authInterrupts:!!O.experimental.authInterrupts,useCacheTimeout:O.experimental.useCacheTimeout,durableUseCacheEntries:!!O.experimental.durableUseCacheEntries},cacheComponents:!!O.cacheComponents,validationLevel:O.experimental.instantInsights.validationLevel,isDraftMode:S,incrementalCache:V,hmrRefreshHash:(0,n.w)(e,"hmrRefreshHash"),cacheLifeProfiles:O.cacheLife,staticPageGenerationTimeout:O.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0},sharedContext:{buildId:T,deploymentId:b}},z=new l.x(e),X=new l.e(t),Y=u.k.fromNodeNextRequest(z,(0,u.t)(t)),Z=async({previousCacheEntry:r})=>{try{if(!Q&&I&&M&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=null===B?await x.handle(Y,W):await x.prerender(Y,W);e.fetchMetrics=W.renderOpts.fetchMetrics;let i=W.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let s=W.renderOpts.collectedTags;if(!L)return await (0,p.f)(z,X,n,i),null;{let e=await n.blob(),t=(0,h.S)(n.headers);s&&(t[v.M]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=v.Q)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=v.Q?!1!==r&&r>0?O.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:R.x.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.f)({isStaticGeneration:null!==B,isOnDemandRevalidate:I})},!1,q),t}},ee=async n=>{try{var s,o;let n=await x.handleResponse({req:e,nextConfig:O,cacheKey:B,routeKind:r.f.APP_ROUTE,isFallback:!1,previewProps:G,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:I,revalidateOnlyGenerated:M,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:Q});if(null!==n&&"error"in n)throw n.error;if(!L)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==R.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==n||null==(o=n.value)?void 0:o.kind}`);Q||t.setHeader("x-nextjs-cache",I?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.G)(n.value.headers);Q&&L||i.delete(v.M),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,f.f)(n.cacheControl)),await (0,p.f)(z,X,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(r){if(r instanceof m.NoFallbackError||await x.onRequestError(e,r,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.f)({isStaticGeneration:null!==B,isOnDemandRevalidate:I})},!1,q),L)throw r;if(t.headersSent){if(n){let e=r instanceof Error?r:Error("Unknown app route error");n.recordException(e),n.setStatus({code:i.J.ERROR,message:e.message}),n.setAttribute("error.type",e.name)}t.writableEnded||t.destroyed||t.end()}else await (0,p.f)(z,X,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.J.ERROR}),n.setAttribute("error.type",e.toString()));let r=J.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.q.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||H,s=`${F} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":s}),n.updateName(s),C&&C!==n&&(C.setAttribute("http.route",a),C.updateName(s))})()}};K||void 0===e.url||null==E||E.setAttribute("http.target",e.url),await ee(E)}e.s(["handler",0,C,"patchFetch",0,function(){return(0,a.f)({workAsyncStorage:g,workUnitAsyncStorage:y})},"routeModule",0,x,"serverHooks",0,E,"workAsyncStorage",0,g,"workUnitAsyncStorage",0,y])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_1-2owkp-1_987._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[61403,e=>{var t=e.i(89171),r=e.i(6375),a=e.i(46501);async function s(e){await (0,a.u)();let s={};try{s=await e.json()}catch{return(0,a.z)("audit_otp_requested",{status:"validation_error",source:"dashboard",reason:"invalid_json"}),t.NextResponse.json({code:"validation_error",message:"Invalid JSON body"},{status:400})}if("string"!=typeof s.email||!s.email.trim())return(0,a.z)("audit_otp_requested",{status:"validation_error",source:"dashboard",reason:"missing_email"}),t.NextResponse.json({code:"validation_error",message:"email is required"},{status:400});let
|
|
1
|
+
(()=>{"use strict";module.exports=[61403,e=>{var t=e.i(89171),r=e.i(6375),a=e.i(46501);async function s(e){await (0,a.u)();let s={};try{s=await e.json()}catch{return(0,a.z)("audit_otp_requested",{status:"validation_error",source:"dashboard",reason:"invalid_json"}),t.NextResponse.json({code:"validation_error",message:"Invalid JSON body"},{status:400})}if("string"!=typeof s.email||!s.email.trim())return(0,a.z)("audit_otp_requested",{status:"validation_error",source:"dashboard",reason:"missing_email"}),t.NextResponse.json({code:"validation_error",message:"email is required"},{status:400});let n=s.email.trim().toLowerCase();try{let e=await (0,r.Z)(s.email);return(0,a.z)("audit_otp_requested",{status:"success",email:n,source:"dashboard",expires_in:e.expires_in,resend_available_in:e.resend_available_in}),t.NextResponse.json({status:e.status,expires_in:e.expires_in,resend_available_in:e.resend_available_in},{status:200})}catch(s){if(s instanceof r.Y){(0,a.z)("audit_otp_requested",{status:"failed",email:n,source:"dashboard",error_code:s.code,http_status:s.status,retry_after_secs:s.retryAfterSecs??null});let e=s.status>=200&&s.status<600?s.status:504;return t.NextResponse.json({code:s.code,message:s.message,...void 0!==s.retryAfterSecs?{retry_after_secs:s.retryAfterSecs}:{}},{status:e})}let e=s instanceof Error?s.message:String(s);return(0,a.z)("audit_otp_requested",{status:"failed",email:n,source:"dashboard",error_code:"upstream_unreachable",error_message:e.slice(0,200)}),t.NextResponse.json({code:"upstream_unreachable",message:`api-server unreachable: ${e}`},{status:502})}}e.s(["POST",0,s,"dynamic",0,"force-dynamic"])},51481,e=>{var t=e.i(47909),r=e.i(74017),a=e.i(96250),s=e.i(59756),n=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(26937),m=e.i(10372),v=e.i(93695),w=e.i(9580);e.i(52474);var _=e.i(220);let R=new t.AppRouteRouteModule({definition:{kind:r.f.APP_ROUTE,page:"/api/auth/login-request/route",pathname:"/api/auth/login-request",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/auth/login-request/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(61403),...{}}),{workAsyncStorage:g,workUnitAsyncStorage:x,serverHooks:y}=R;async function b(e,t,r){r.requestMeta&&(0,s.R)(e,r.requestMeta),R.isDev&&(0,s.i)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/auth/login-request/route";a=a.replace(/\/index$/,"")||"/";let{instrumentation:i}=await R.ensureInstrumentation(e,{deferSpans:!0});return R.traceRequest(e,{tracer:(0,n.v)(),spanName:`${e.method||"GET"} ${a}`,httpTarget:e.url,instrumentation:i},(s,n)=>E(e,t,r,a,!1,s,n))}async function E(e,t,a,g,x,y,b){let E=await R.prepare(e,t,{srcPage:g,multiZoneDraftMode:x});if(!E)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,deploymentId:A,params:T,nextConfig:P,parsedUrl:S,isDraftMode:q,prerenderManifest:O,routerServerContext:U,isOnDemandRevalidate:N,revalidateOnlyGenerated:k,resolvedPathname:j,clientReferenceManifest:I,serverActionsManifest:M,previewProps:D}=E,H=(0,o.f)(g),L=!!O.routes[j]&&(R.isDev||(0,w.f)(j,R.cacheOwner,O.routes[j])),$=!!(O.dynamicRoutes[H]||L),G=async()=>((null==U?void 0:U.render404)?await U.render404(e,t,S,!1):t.end("This page could not be found"),null);if($&&!q){let e=O.dynamicRoutes[H];if(e&&!1===e.fallback&&!L){if(P.adapterPath)return await G();throw new v.NoFallbackError}}let z=null;!$||R.isDev||q||(z="/index"===(z=j)?"/":z),M&&I&&(0,i.f)({page:g,clientReferenceManifest:I,serverActionsManifest:M});let B=e.method||"GET",F=(0,n.v)(),J=!!(null==U?void 0:U.isWrappedByNextServer),K=!!(0,s.w)(e,"minimalMode"),Q=(0,s.w)(e,"incrementalCache")||await R.getIncrementalCache(e,P,D,O,K);null==Q||Q.resetRequestCache(),globalThis.__incrementalCache=Q;let V={params:T,previewProps:D,renderOpts:{experimental:{authInterrupts:!!P.experimental.authInterrupts,useCacheTimeout:P.experimental.useCacheTimeout,durableUseCacheEntries:!!P.experimental.durableUseCacheEntries},cacheComponents:!!P.cacheComponents,validationLevel:P.experimental.instantInsights.validationLevel,isDraftMode:q,incrementalCache:Q,hmrRefreshHash:(0,s.w)(e,"hmrRefreshHash"),cacheLifeProfiles:P.cacheLife,staticPageGenerationTimeout:P.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0},sharedContext:{buildId:C,deploymentId:A}},W=new l.x(e),Y=new l.e(t),Z=u.k.fromNodeNextRequest(W,(0,u.t)(t)),X=async({previousCacheEntry:r})=>{try{if(!K&&N&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=null===z?await R.handle(Z,V):await R.prerender(Z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let n=V.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let i=V.renderOpts.collectedTags;if(!$)return await (0,p.f)(W,Y,s,n),null;{let e=await s.blob(),t=(0,h.S)(s.headers);i&&(t[m.M]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=m.Q)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=m.Q?!1!==r&&r>0?P.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:_.x.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.f)({isStaticGeneration:null!==z,isOnDemandRevalidate:N})},!1,U),t}},ee=async s=>{try{var i,o;let s=await R.handleResponse({req:e,nextConfig:P,cacheKey:z,routeKind:r.f.APP_ROUTE,isFallback:!1,previewProps:D,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:k,responseGenerator:X,waitUntil:a.waitUntil,isMinimalMode:K});if(null!==s&&"error"in s)throw s.error;if(!$)return;if((null==s||null==(i=s.value)?void 0:i.kind)!==_.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==s||null==(o=s.value)?void 0:o.kind}`);K||t.setHeader("x-nextjs-cache",N?"REVALIDATED":s.isMiss?"MISS":s.isStale?"STALE":"HIT"),q&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.G)(s.value.headers);K&&$||n.delete(m.M),!s.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,f.f)(s.cacheControl)),await (0,p.f)(W,Y,new Response(s.value.body,{headers:n,status:s.value.status||200}));return}catch(r){if(r instanceof v.NoFallbackError||await R.onRequestError(e,r,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.f)({isStaticGeneration:null!==z,isOnDemandRevalidate:N})},!1,U),$)throw r;if(t.headersSent){if(s){let e=r instanceof Error?r:Error("Unknown app route error");s.recordException(e),s.setStatus({code:n.J.ERROR,message:e.message}),s.setAttribute("error.type",e.name)}t.writableEnded||t.destroyed||t.end()}else await (0,p.f)(W,Y,new Response(null,{status:500}));return}finally{(()=>{if(!s)return;let e=t.statusCode;s.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(s.setStatus({code:n.J.ERROR}),s.setAttribute("error.type",e.toString()));let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.q.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||H,i=`${B} ${a}`;s.setAttributes({"next.route":a,"http.route":a,"next.span_name":i}),s.updateName(i),b&&b!==s&&(b.setAttribute("http.route",a),b.updateName(i))})()}};J||void 0===e.url||null==y||y.setAttribute("http.target",e.url),await ee(y)}e.s(["handler",0,b,"patchFetch",0,function(){return(0,a.f)({workAsyncStorage:g,workUnitAsyncStorage:x})},"routeModule",0,R,"serverHooks",0,y,"workAsyncStorage",0,g,"workUnitAsyncStorage",0,x])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_13ltj8a9z92o8._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[19851,e=>{var t=e.i(89171),r=e.i(6375),a=e.i(17707),n=e.i(46501);async function i(){await (0,n.u)();let e=(0,a.M)();if(!e)return(0,n.z)("audit_user_logged_out",{source:"dashboard",had_session:!1,upstream:"noop"}),t.NextResponse.json({authenticated:!1},{status:200});let i="skipped",o=null;try{await (0,r.N)(e.access_token,e.refresh_token),i="revoked"}catch(e){e instanceof r.Y&&401===e.status?i="revoked":(i="failed",o=e instanceof Error?e.message.slice(0,200):String(e).slice(0,200))}return(0,a.m)(),(0,n.z)("audit_user_logged_out",{source:"dashboard",had_session:!0,upstream:i,upstream_error:o,user_id:e.user.id}),t.NextResponse.json({authenticated:!1,upstream:i},{status:200})}e.s(["POST",0,i,"dynamic",0,"force-dynamic"])},43488,e=>{var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(26937),v=e.i(10372),m=e.i(93695),w=e.i(9580);e.i(52474);var R=e.i(220);let g=new t.AppRouteRouteModule({definition:{kind:r.f.APP_ROUTE,page:"/api/auth/logout/route",pathname:"/api/auth/logout",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/auth/logout/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(19851),...{}}),{workAsyncStorage:x,workUnitAsyncStorage:y,serverHooks:E}=g;async function
|
|
1
|
+
(()=>{"use strict";module.exports=[19851,e=>{var t=e.i(89171),r=e.i(6375),a=e.i(17707),n=e.i(46501);async function i(){await (0,n.u)();let e=(0,a.M)();if(!e)return(0,n.z)("audit_user_logged_out",{source:"dashboard",had_session:!1,upstream:"noop"}),t.NextResponse.json({authenticated:!1},{status:200});let i="skipped",o=null;try{await (0,r.N)(e.access_token,e.refresh_token),i="revoked"}catch(e){e instanceof r.Y&&401===e.status?i="revoked":(i="failed",o=e instanceof Error?e.message.slice(0,200):String(e).slice(0,200))}return(0,a.m)(),(0,n.z)("audit_user_logged_out",{source:"dashboard",had_session:!0,upstream:i,upstream_error:o,user_id:e.user.id}),t.NextResponse.json({authenticated:!1,upstream:i},{status:200})}e.s(["POST",0,i,"dynamic",0,"force-dynamic"])},43488,e=>{var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(26937),v=e.i(10372),m=e.i(93695),w=e.i(9580);e.i(52474);var R=e.i(220);let g=new t.AppRouteRouteModule({definition:{kind:r.f.APP_ROUTE,page:"/api/auth/logout/route",pathname:"/api/auth/logout",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/auth/logout/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(19851),...{}}),{workAsyncStorage:x,workUnitAsyncStorage:y,serverHooks:E}=g;async function b(e,t,r){r.requestMeta&&(0,n.R)(e,r.requestMeta),g.isDev&&(0,n.i)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/auth/logout/route";a=a.replace(/\/index$/,"")||"/";let{instrumentation:o}=await g.ensureInstrumentation(e,{deferSpans:!0});return g.traceRequest(e,{tracer:(0,i.v)(),spanName:`${e.method||"GET"} ${a}`,httpTarget:e.url,instrumentation:o},(n,i)=>C(e,t,r,a,!1,n,i))}async function C(e,t,a,x,y,E,b){let C=await g.prepare(e,t,{srcPage:x,multiZoneDraftMode:y});if(!C)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,deploymentId:P,params:A,nextConfig:_,parsedUrl:k,isDraftMode:O,prerenderManifest:S,routerServerContext:U,isOnDemandRevalidate:M,revalidateOnlyGenerated:N,resolvedPathname:q,clientReferenceManifest:I,serverActionsManifest:D,previewProps:j}=C,H=(0,s.f)(x),G=!!S.routes[q]&&(g.isDev||(0,w.f)(q,g.cacheOwner,S.routes[q])),L=!!(S.dynamicRoutes[H]||G),$=async()=>((null==U?void 0:U.render404)?await U.render404(e,t,k,!1):t.end("This page could not be found"),null);if(L&&!O){let e=S.dynamicRoutes[H];if(e&&!1===e.fallback&&!G){if(_.adapterPath)return await $();throw new m.NoFallbackError}}let B=null;!L||g.isDev||O||(B="/index"===(B=q)?"/":B),D&&I&&(0,o.f)({page:x,clientReferenceManifest:I,serverActionsManifest:D});let F=e.method||"GET",K=(0,i.v)(),z=!!(null==U?void 0:U.isWrappedByNextServer),J=!!(0,n.w)(e,"minimalMode"),Q=(0,n.w)(e,"incrementalCache")||await g.getIncrementalCache(e,_,j,S,J);null==Q||Q.resetRequestCache(),globalThis.__incrementalCache=Q;let V={params:A,previewProps:j,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts,useCacheTimeout:_.experimental.useCacheTimeout,durableUseCacheEntries:!!_.experimental.durableUseCacheEntries},cacheComponents:!!_.cacheComponents,validationLevel:_.experimental.instantInsights.validationLevel,isDraftMode:O,incrementalCache:Q,hmrRefreshHash:(0,n.w)(e,"hmrRefreshHash"),cacheLifeProfiles:_.cacheLife,staticPageGenerationTimeout:_.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0},sharedContext:{buildId:T,deploymentId:P}},W=new l.x(e),Y=new l.e(t),X=u.k.fromNodeNextRequest(W,(0,u.t)(t)),Z=async({previousCacheEntry:r})=>{try{if(!J&&M&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=null===B?await g.handle(X,V):await g.prerender(X,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let i=V.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let o=V.renderOpts.collectedTags;if(!L)return await (0,p.f)(W,Y,n,i),null;{let e=await n.blob(),t=(0,h.S)(n.headers);o&&(t[v.M]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=v.Q)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=v.Q?!1!==r&&r>0?_.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:R.x.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.f)({isStaticGeneration:null!==B,isOnDemandRevalidate:M})},!1,U),t}},ee=async n=>{try{var o,s;let n=await g.handleResponse({req:e,nextConfig:_,cacheKey:B,routeKind:r.f.APP_ROUTE,isFallback:!1,previewProps:j,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:M,revalidateOnlyGenerated:N,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:J});if(null!==n&&"error"in n)throw n.error;if(!L)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==R.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==n||null==(s=n.value)?void 0:s.kind}`);J||t.setHeader("x-nextjs-cache",M?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.G)(n.value.headers);J&&L||i.delete(v.M),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,f.f)(n.cacheControl)),await (0,p.f)(W,Y,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(r){if(r instanceof m.NoFallbackError||await g.onRequestError(e,r,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.f)({isStaticGeneration:null!==B,isOnDemandRevalidate:M})},!1,U),L)throw r;if(t.headersSent){if(n){let e=r instanceof Error?r:Error("Unknown app route error");n.recordException(e),n.setStatus({code:i.J.ERROR,message:e.message}),n.setAttribute("error.type",e.name)}t.writableEnded||t.destroyed||t.end()}else await (0,p.f)(W,Y,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.J.ERROR}),n.setAttribute("error.type",e.toString()));let r=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.q.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||H,o=`${F} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),n.updateName(o),b&&b!==n&&(b.setAttribute("http.route",a),b.updateName(o))})()}};z||void 0===e.url||null==E||E.setAttribute("http.target",e.url),await ee(E)}e.s(["handler",0,b,"patchFetch",0,function(){return(0,a.f)({workAsyncStorage:x,workUnitAsyncStorage:y})},"routeModule",0,g,"serverHooks",0,E,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,y])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_15k37au70vjvg._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[20855,e=>{var t=e.i(89171),
|
|
1
|
+
(()=>{"use strict";module.exports=[20855,e=>{var t=e.i(89171),r=e.i(17707);async function a(){let e=(0,r.M)();return e?t.NextResponse.json({authenticated:!0,user:{id:e.user.id,email:e.user.email}},{status:200}):t.NextResponse.json({authenticated:!1},{status:200})}e.s(["GET",0,a,"dynamic",0,"force-dynamic"])},96889,e=>{var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(26937),v=e.i(10372),m=e.i(93695),w=e.i(9580);e.i(52474);var R=e.i(220);let x=new t.AppRouteRouteModule({definition:{kind:r.f.APP_ROUTE,page:"/api/auth/status/route",pathname:"/api/auth/status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/auth/status/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(20855),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:E,serverHooks:g}=x;async function C(e,t,r){r.requestMeta&&(0,n.R)(e,r.requestMeta),x.isDev&&(0,n.i)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/auth/status/route";a=a.replace(/\/index$/,"")||"/";let{instrumentation:s}=await x.ensureInstrumentation(e,{deferSpans:!0});return x.traceRequest(e,{tracer:(0,i.v)(),spanName:`${e.method||"GET"} ${a}`,httpTarget:e.url,instrumentation:s},(n,i)=>b(e,t,r,a,!1,n,i))}async function b(e,t,a,y,E,g,C){let b=await x.prepare(e,t,{srcPage:y,multiZoneDraftMode:E});if(!b)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,deploymentId:A,params:P,nextConfig:O,parsedUrl:U,isDraftMode:S,prerenderManifest:k,routerServerContext:M,isOnDemandRevalidate:q,revalidateOnlyGenerated:I,resolvedPathname:N,clientReferenceManifest:_,serverActionsManifest:D,previewProps:j}=b,G=(0,o.f)(y),H=!!k.routes[N]&&(x.isDev||(0,w.f)(N,x.cacheOwner,k.routes[N])),L=!!(k.dynamicRoutes[G]||H),$=async()=>((null==M?void 0:M.render404)?await M.render404(e,t,U,!1):t.end("This page could not be found"),null);if(L&&!S){let e=k.dynamicRoutes[G];if(e&&!1===e.fallback&&!H){if(O.adapterPath)return await $();throw new m.NoFallbackError}}let B=null;!L||x.isDev||S||(B="/index"===(B=N)?"/":B),D&&_&&(0,s.f)({page:y,clientReferenceManifest:_,serverActionsManifest:D});let F=e.method||"GET",K=(0,i.v)(),J=!!(null==M?void 0:M.isWrappedByNextServer),Q=!!(0,n.w)(e,"minimalMode"),V=(0,n.w)(e,"incrementalCache")||await x.getIncrementalCache(e,O,j,k,Q);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:P,previewProps:j,renderOpts:{experimental:{authInterrupts:!!O.experimental.authInterrupts,useCacheTimeout:O.experimental.useCacheTimeout,durableUseCacheEntries:!!O.experimental.durableUseCacheEntries},cacheComponents:!!O.cacheComponents,validationLevel:O.experimental.instantInsights.validationLevel,isDraftMode:S,incrementalCache:V,hmrRefreshHash:(0,n.w)(e,"hmrRefreshHash"),cacheLifeProfiles:O.cacheLife,staticPageGenerationTimeout:O.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0},sharedContext:{buildId:T,deploymentId:A}},z=new l.x(e),X=new l.e(t),Y=u.k.fromNodeNextRequest(z,(0,u.t)(t)),Z=async({previousCacheEntry:r})=>{try{if(!Q&&q&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=null===B?await x.handle(Y,W):await x.prerender(Y,W);e.fetchMetrics=W.renderOpts.fetchMetrics;let i=W.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let s=W.renderOpts.collectedTags;if(!L)return await (0,p.f)(z,X,n,i),null;{let e=await n.blob(),t=(0,h.S)(n.headers);s&&(t[v.M]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=v.Q)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=v.Q?!1!==r&&r>0?O.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:R.x.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.f)({isStaticGeneration:null!==B,isOnDemandRevalidate:q})},!1,M),t}},ee=async n=>{try{var s,o;let n=await x.handleResponse({req:e,nextConfig:O,cacheKey:B,routeKind:r.f.APP_ROUTE,isFallback:!1,previewProps:j,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:I,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:Q});if(null!==n&&"error"in n)throw n.error;if(!L)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==R.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==n||null==(o=n.value)?void 0:o.kind}`);Q||t.setHeader("x-nextjs-cache",q?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.G)(n.value.headers);Q&&L||i.delete(v.M),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,f.f)(n.cacheControl)),await (0,p.f)(z,X,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(r){if(r instanceof m.NoFallbackError||await x.onRequestError(e,r,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,c.f)({isStaticGeneration:null!==B,isOnDemandRevalidate:q})},!1,M),L)throw r;if(t.headersSent){if(n){let e=r instanceof Error?r:Error("Unknown app route error");n.recordException(e),n.setStatus({code:i.J.ERROR,message:e.message}),n.setAttribute("error.type",e.name)}t.writableEnded||t.destroyed||t.end()}else await (0,p.f)(z,X,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.J.ERROR}),n.setAttribute("error.type",e.toString()));let r=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.q.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||G,s=`${F} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":s}),n.updateName(s),C&&C!==n&&(C.setAttribute("http.route",a),C.updateName(s))})()}};J||void 0===e.url||null==g||g.setAttribute("http.target",e.url),await ee(g)}e.s(["handler",0,C,"patchFetch",0,function(){return(0,a.f)({workAsyncStorage:y,workUnitAsyncStorage:E})},"routeModule",0,x,"serverHooks",0,g,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,E])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_18rfu4__wjhwb._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[97610,e=>{var t=e.i(89171),i=e.i(71809),n=e.i(73634),s=e.i(73136),r=e.i(52306),o=e.i(38791),a=e.i(38441),c=e.i(12714),l=e.i(2157),d=e.i(50227),u=e.i(81580);let p=/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i;var f=e.i(54214);function m(e,t){let i=[];for(let s of e)if("assistant"===s.type)for(let e of s.message.content){var n;let r;if("tool_use"!==e.type)continue;let o=e.name,c=(n=t.cli,(o?"copilot"===n?a.s[o]??o:"cursor"===n?a.D[o]??o:"codex"===n?a.j[o]??o:"opencode"===n?a.A[o]??o:"pi"===n?a.S[o]??o:"hermes"===n?a.C[o]??o:"openclaw"===n?a.e[o]??o:"factory"===n?a.r[o]??o:"devin"===n?a.u[o]??o:"antigravity"===n?a.I[o]??o:"goose"===n?a.K[o]??o:o:o)??o),l=function(e,t,i){let n;if(!e||!t||"object"!=typeof t||Array.isArray(t)||("copilot"===i?n=a.U[e]:"opencode"===i?n=a.k[e]:"pi"===i?n=a.V[e]:"hermes"===i?n=a.z[e]:"openclaw"===i?n=a.v[e]:"antigravity"===i?n=a.H[e]:"goose"===i&&(n=a.M[e]),!n))return t;let s={};for(let[e,i]of Object.entries(t))s[n[e]??e]=i;return s}(c,e.input,t.cli);e.result?.content&&(r=function(e){let t=Buffer.from(e,"utf-8");if(t.byteLength<=65536)return e;let i=65536;for(;i>0&&(192&t[i])==128;)i--;return t.subarray(0,i).toString("utf-8")}(e.result.content)),i.push({cli:t.cli,sessionId:t.sessionId,transcriptPath:t.transcriptPath,cwd:t.cwd,timestamp:s.timestamp,toolName:c,rawToolName:o,toolInput:l??{},toolResultText:r})}return i}async function y(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of function(){let e,t=(0,u.n)();try{e=(0,l.readdirSync)(t,{withFileTypes:!0})}catch{return[]}return e.filter(e=>e.isDirectory()).map(e=>({name:e.name,cwd:(0,u.b)(e.name),path:(0,d.join)(t,e.name)}))}()){let s;if(!t||t.has(e.cwd)){try{s=function(e){let t,i=[];try{t=(0,l.readdirSync)(e.path,{withFileTypes:!0})}catch{return i}for(let n of t)if(n.isFile()&&n.name.endsWith(".jsonl")){let t=n.name.slice(0,-6);if(!p.test(t))continue;let s=(0,d.join)(e.path,n.name);try{let n=(0,l.statSync)(s);i.push({projectName:e.name,cwd:e.cwd,sessionId:t,transcriptPath:s,mtimeMs:n.mtimeMs,sizeBytes:n.size,isSubagent:!1})}catch{}}else if(n.isDirectory()&&p.test(n.name)){let t,s=(0,d.join)(e.path,n.name,"subagents");if(!(0,l.existsSync)(s))continue;try{t=(0,l.readdirSync)(s,{withFileTypes:!0})}catch{continue}for(let n of t){if(!n.isFile()||!n.name.endsWith(".jsonl"))continue;let t=n.name.slice(0,-6),r=(0,d.join)(s,n.name);try{let n=(0,l.statSync)(r);i.push({projectName:e.name,cwd:e.cwd,sessionId:t,transcriptPath:r,mtimeMs:n.mtimeMs,sizeBytes:n.size,isSubagent:!0})}catch{}}}return i}(e)}catch{continue}for(let t of s)t.mtimeMs<i||n.push({cli:"claude",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.transcriptPath,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes})}}return n}async function h(e){let t,i;try{t=await (0,c.readFile)(e.transcriptPath,"utf-8")}catch{return[]}try{i=await (0,f.j)(t,"session")}catch{return[]}let n="";for(let e of t.split("\n",50))if(e.trim())try{let t=JSON.parse(e);if("string"==typeof t.cwd&&t.cwd.length>0){n=t.cwd;break}}catch{}return m(i,{cli:"claude",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:n})}async function g(e,t){let i,n;if(!Number.isFinite(t)||t<0)return null;let s=null;try{s=await (0,c.open)(e.transcriptPath,"r");let{size:n}=await s.stat();if(t>n)return null;if(t===n)return{events:[],bytesConsumed:t};let r=Buffer.alloc(n-t);await s.read(r,0,r.length,t),i=r.toString("utf-8")}catch{return null}finally{if(s)try{await s.close()}catch{}}let r=i.lastIndexOf("\n"),o=-1===r?"":i.slice(0,r+1),a=i.slice(r+1),l=a.trim().length>0&&(()=>{try{return JSON.parse(a),!0}catch{return!1}})()?o+a:o;if(0===l.length)return{events:[],bytesConsumed:t};let d=t+Buffer.byteLength(l,"utf-8");try{n=await (0,f.j)(l,"session")}catch{return null}let u="";for(let e of l.split("\n",50))if(e.trim())try{let t=JSON.parse(e);if("string"==typeof t.cwd&&t.cwd.length>0){u=t.cwd;break}}catch{}return{events:m(n,{cli:"claude",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:u}),bytesConsumed:d,cwd:u||void 0}}var w=e.i(36203),N=e.i(57232);async function v(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,w.getCodexProjects)())){let{cwd:s,sessions:r}=await (0,w.getCodexSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"codex",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function S(e){let t=await (0,N.getCodexSessionLog)(e.sessionId);return t?m(t.entries,{cli:"codex",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var b=e.i(55851),x=e.i(78166);async function j(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,b.getCopilotProjects)())){let{cwd:s,sessions:r}=await (0,b.getCopilotSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"copilot",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function O(e){let t=await (0,x.getCopilotSessionLog)(e.sessionId);return t?m(t.entries,{cli:"copilot",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var I=e.i(46413),k=e.i(72094);async function C(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,I.getCursorProjects)())){let{cwd:s,sessions:r}=await (0,I.getCursorSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"cursor",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function $(e){let t=await (0,k.getCursorSessionLog)(e.sessionId);return t?m(t.entries,{cli:"cursor",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var T=e.i(35435),P=e.i(99440);async function M(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,T.getOpenCodeProjects)())){let{cwd:s,sessions:r}=await (0,T.getOpenCodeSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();!(s<i)&&t.sessionId&&n.push({cli:"opencode",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:0})}}return n}async function R(e){let t=await (0,P.getOpenCodeSessionLog)(e.sessionId);return t?m(t.entries,{cli:"opencode",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var B=e.i(19791),E=e.i(85116);async function A(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,B.getPiProjects)())){let{cwd:s,sessions:r}=await (0,B.getPiSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"pi",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function D(e){let t=await (0,E.getPiSessionLog)(e.sessionId);return t?m(t.entries,{cli:"pi",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var _=e.i(64828),U=e.i(28898),J=e.i(3605);async function z(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=await (0,_.getHermesSessions)(),s=[];for(let e of n)!(e.mtimeMs<i)&&(!(e.messageCount<=0)||e.hasMessages)&&(!t||e.cwd&&t.has(e.cwd))&&s.push({cli:"hermes",projectName:e.cwd?(0,u.f)(e.cwd):e.source?(0,U.S)(e.profile,e.source):`hermes:${e.profile}`,sessionId:e.sessionId,transcriptPath:`hermes://${e.sessionId}`,mtimeMs:e.mtimeMs,sizeBytes:e.messageCount});return s}async function W(e){let t=await (0,J.getHermesSessionLog)(e.sessionId);return t?m(t.entries,{cli:"hermes",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var q=e.i(90624),Y=e.i(64199);async function F(e={}){if(e.projects&&e.projects.length>0)return[];let t=e.sinceMs??0,i=[];for(let e of(await (0,q.getOpenClawSessions)()))e.mtimeMs<t||i.push({cli:"openclaw",projectName:(0,q.openClawProjectPath)(e.agentId,e.channel),sessionId:e.sessionId,transcriptPath:e.transcriptPath,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});return i}async function L(e){let t=await (0,Y.getOpenClawSessionLog)(e.sessionId);return t?m(t.entries,{cli:"openclaw",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var H=e.i(28246);async function Q(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(0,H.listFactoryTranscripts)())!(e.mtimeMs<i)&&(!t||t.has(e.cwd))&&n.push({cli:"factory",projectName:e.projectName,sessionId:e.sessionId,transcriptPath:e.transcriptPath,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});return n}async function V(e){let t;try{t=await (0,c.readFile)(e.transcriptPath,"utf-8")}catch{return[]}let i=(0,f.V)(t,"session"),n=(0,H.factoryLinesToLogEntries)(i,"session"),s="";for(let e of i)if(e&&"object"==typeof e&&"session_start"===e.type){let t=e.cwd;if("string"==typeof t&&t.length>0){s=t;break}}return m(n,{cli:"factory",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:s})}var G=e.i(93114),Z=e.i(30441);async function K(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[],s=await (0,Z.getAntigravityIndex)();for(let e of(0,G.listAntigravityTranscripts)()){if(e.mtimeMs<i)continue;let r=s.get(e.conversationId)?.cwd;(!t||r&&t.has(r))&&n.push({cli:"antigravity",projectName:r?(0,u.f)(r):"antigravity",sessionId:e.conversationId,transcriptPath:e.transcriptPath,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes})}return n}async function X(e){let t;try{t=await (0,c.readFile)(e.transcriptPath,"utf-8")}catch{return[]}let i=(0,f.V)(t,"session"),n=(0,G.antigravityLinesToLogEntries)(i,"session"),s="";for(let e of i){if(!e||"object"!=typeof e)continue;let t=e.tool_calls;if(Array.isArray(t)){for(let e of t){let t=e&&"object"==typeof e?e.args:void 0,i=t&&"object"==typeof t?t.Cwd:void 0;if("string"==typeof i&&i.length>0){s=i;break}}if(s)break}}return m(n,{cli:"antigravity",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:s})}var ee=e.i(79364),et=e.i(40375);async function ei(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=await (0,ee.getDevinSessions)(),s=[];for(let e of n)!(e.mtimeMs<i)&&(!t||e.cwd&&t.has(e.cwd))&&s.push({cli:"devin",projectName:e.projectName,sessionId:e.sessionId,transcriptPath:`devin-db://${e.sessionId}`,mtimeMs:e.mtimeMs,sizeBytes:0});return s}async function en(e){let t=await (0,et.getDevinSessionLog)(e.sessionId);return t?m(t.entries,{cli:"devin",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var es=e.i(69164),er=e.i(36618);let eo={claude:{cli:"claude",listTranscripts:y,streamEvents:h,streamEventsFrom:g},codex:{cli:"codex",listTranscripts:v,streamEvents:S},copilot:{cli:"copilot",listTranscripts:j,streamEvents:O},cursor:{cli:"cursor",listTranscripts:C,streamEvents:$},opencode:{cli:"opencode",listTranscripts:M,streamEvents:R},pi:{cli:"pi",listTranscripts:A,streamEvents:D},hermes:{cli:"hermes",listTranscripts:z,streamEvents:W},openclaw:{cli:"openclaw",listTranscripts:F,streamEvents:L},factory:{cli:"factory",listTranscripts:Q,streamEvents:V},devin:{cli:"devin",listTranscripts:ei,streamEvents:en},antigravity:{cli:"antigravity",listTranscripts:K,streamEvents:X},goose:{cli:"goose",listTranscripts:async function(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=await (0,es.getGooseSessions)(),s=[];for(let e of n)!(e.mtimeMs<i)&&(!t||e.cwd&&t.has(e.cwd))&&s.push({cli:"goose",projectName:e.projectName,sessionId:e.sessionId,transcriptPath:`goose-db://${e.sessionId}`,mtimeMs:e.mtimeMs,sizeBytes:0});return s},streamEvents:async function(e){let t=await (0,er.getGooseSessionLog)(e.sessionId);return t?m(t.entries,{cli:"goose",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}}},ea=/\.(?:ts|tsx|js|jsx|mjs|cjs|py|go|rs|java|kt|swift|rb|php|c|h|cc|cpp|hpp|cs|scala|sh|bash|zsh|json|yaml|yml|toml|md|txt|sql|html|css|scss|sass)$/i,ec=["/","/home","/usr","/etc","/var","/opt","/Users"],el="rereadAfterEdit",ed=[{name:"redundant-cd-cwd",description:"Bash commands prefixed with `cd <cwd> && …` even though commands already run in cwd.",category:"Wasteful",severity:"info",displayTitle:"Prepended cd <cwd> before commands",impact:"Pure waste — your agent's shell already runs in `cwd`.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t||!e.cwd)return null;let i=t.trimStart(),n=/^cd\s+(?:"([^"]+)"|'([^']+)'|(\S+))\s*&&\s*([\s\S]+)$/.exec(i);if(!n)return null;let s=(n[1]??n[2]??n[3]??"").replace(/\/+$/,"");if(s!==e.cwd.replace(/\/+$/,""))return null;let r=n[4].trim();return{example:`cd ${s} && ${r}`}}},{name:"prefer-edit-over-read-cat",description:"Bash `cat`/`head`/`tail`/`less`/`more` on a single source file — use Read.",category:"Wasteful",severity:"info",displayTitle:"Used `cat`/`head`/`tail` on a source file",impact:"Burns tokens; the Read tool returns content directly without going through Bash output.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;let i=t.trim();if(/[|<>;&`$()]/.test(i))return null;let n=/^(cat|head|tail|less|more)\s+(?:-\S+\s+)*(?:"([^"]+)"|'([^']+)'|(\S+))\s*$/.exec(i);if(!n)return null;let s=n[2]??n[3]??n[4]??"";return!s||/(?:^|\/)\.env(?:\..+)?$/.test(s)||!ea.test(s)?null:{example:i}}},{name:"prefer-edit-over-sed-awk",description:"Bash `sed -i`/`awk` in-place edits — use Edit.",category:"Wasteful",severity:"info",displayTitle:"Used sed -i or awk for an in-place edit",impact:"Edit tool is safer and produces a diff the agent can verify.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;let i=t.trim();return/(?:^|\s|;|&&|\|\|)sed\b[^|]*\s-i(?=\b|['"])/.test(i)||/(?:^|\s|;|&&|\|\|)awk\b[^|]*\s>\s*\S+/.test(i)&&!/\|/.test(i)?{example:i}:null}},{name:"prefer-write-over-heredoc",description:"Bash heredoc / `echo > file` writing multi-line content — use Write.",category:"Wasteful",severity:"info",displayTitle:"Used heredoc / `echo > file` to write a multi-line file",impact:"Write tool handles escaping and is verifiable.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;return"string"!=typeof t?null:/<<-?\s*['"]?[A-Za-z_][A-Za-z0-9_]*['"]?\s*>\s*\S/.test(t)||/(?:^|\s|;|&&|\|\|)(?:echo|printf)\s+["'][^"']*\n[^"']*["']\s*>\s*\S/.test(t)?{example:t.replace(/\s+/g," ").trim().slice(0,160)}:null}},{name:"sleep-polling-loop",description:"Bash long `sleep` or while-sleep polling loops.",category:"Wasteful",severity:"info",displayTitle:"Used a long sleep or while-sleep polling loop",impact:"Burns wall-clock; better to wait for an explicit signal.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;if(/\bwhile\b[\s\S]*?\bsleep\b[\s\S]*?\bdone\b/.test(t))return{example:t.replace(/\s+/g," ").trim().slice(0,160)};let i=/\bsleep\s+(\d+(?:\.\d+)?)(m|h|d)?\b/.exec(t);if(i){let e=parseFloat(i[1]),n=i[2]??"s";if(("m"===n?60*e:"h"===n?3600*e:"d"===n?86400*e:e)>=30)return{example:t.replace(/\s+/g," ").trim().slice(0,160)}}return null}},{name:"find-from-root",description:"Bash `find` against `/`, `/home`, `/usr`, etc. — scope to cwd instead.",category:"Risky",severity:"warn",displayTitle:"Ran find from /, /home, /usr, etc.",impact:"Filesystem-wide finds exhaust resources and rarely return useful results.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;let i=t.trim(),n=/(?:^|[\s;|&])find\s+(?:-\S+\s+)*("[^"]+"|'[^']+'|\S+)/.exec(i);if(!n)return null;let s=n[1].replace(/^["']|["']$/g,"").replace(/\/+$/,"")||"/";return ec.includes(s)?{example:i.slice(0,160)}:null}},{name:"git-commit-no-verify",description:"git commit invoked with --no-verify / -n, skipping hooks.",category:"Risky",severity:"warn",displayTitle:"Committed with --no-verify",impact:"Skips pre-commit hooks that exist to catch broken or unsafe code.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;return"string"!=typeof t?null:/\bgit\s+commit\b/.test(t)&&(/\s--no-verify\b/.test(t)||/\s-n\b/.test(t))?{example:t.replace(/\s+/g," ").trim().slice(0,160)}:null}},{name:"reread-after-edit",description:"Read of a file that was just Edit'd or Write'n in the same session.",category:"Wasteful",severity:"info",displayTitle:"Re-read a file it just edited",impact:"Edit/Write already returned the updated content; the second Read is wasted tokens.",detect(e,t){let i,n=((i=t[el])||(i={countdown:new Map},t[el]=i),i),s=e.toolInput.file_path,r="string"==typeof s?s:null;for(let[e,t]of n.countdown)t<=1?n.countdown.delete(e):n.countdown.set(e,t-1);return r?"Edit"===e.toolName||"Write"===e.toolName?(n.countdown.set(r,5),null):"Read"===e.toolName&&n.countdown.has(r)?(n.countdown.delete(r),{example:`Read ${r} immediately after Edit/Write`}):null:null}}],eu=["cowboy","explorer","ghost","optimist","hammer","architect"],ep={explorer:.38,architect:.33,hammer:.11,cowboy:.11,optimist:.07,ghost:.01,precision:0,goldfish:0},ef={optimist:0,cowboy:0,explorer:0,goldfish:0,architect:0,precision:0,hammer:0,ghost:0};for(let e of eu)ef[e]=Math.max(ep[e],.05);var em=e.i(66680),ey=e.i(79857);let eh=null,eg=null;function ew(){if(eh)return eh;let e=n.H.map(e=>`${e.name}|${e.fn.toString()}`).sort().join("\n");return eh=(0,em.createHash)("sha1").update(e).digest("hex").slice(0,16)}function eN(){if(eg)return eg;let e=ed.map(e=>`${e.name}|${e.detect.toString()}`).sort().join("\n");return eg=(0,em.createHash)("sha1").update(e).digest("hex").slice(0,16)}function ev(e){let t=(0,ey.r)(),i=(0,em.createHash)("sha1").update(e).digest("hex");return(0,d.join)(t,`${i}.json`)}function eS(e,t){if(t<=0)return null;let i=null;try{i=(0,l.openSync)(e,"r");let n=Buffer.alloc(Math.min(4096,t));(0,l.readSync)(i,n,0,n.length,0);let s=Math.min(4096,t),r=Buffer.alloc(s);return(0,l.readSync)(i,r,0,s,t-s),(0,em.createHash)("sha1").update(String(t)).update(n).update(r).digest("hex").slice(0,32)}catch{return null}finally{if(null!==i)try{(0,l.closeSync)(i)}catch{}}}var eb=e.i(71194);let ex="request-cut",ej=/^[A-Za-z0-9._:/@~+-]{1,200}$/;function eO(e){let t=e.find(e=>"deny"===e.decision);if(t)return{decision:"deny",entries:[{policyName:t.policyName,reason:t.reason??""}]};let i=e.filter(e=>"instruct"===e.decision);return i.length>0?{decision:"instruct",entries:i.map(e=>({policyName:e.policyName,reason:e.reason??""}))}:{decision:"allow",entries:e.filter(e=>"allow"===e.decision&&e.reason).map(e=>({policyName:e.policyName,reason:e.reason}))}}let eI={allow:0,instruct:1,deny:2};var ek=e.i(97348),eC=e.i(49335),e$=e.i(10659);function eT(e,t){let i=e.trim(),n="string"==typeof t?t.trim():"";return n?i?`${i}. ${n}`:n:i}function eP(e,t){if(!e?.policyParams)return;let i=e.policyParams[t];if(i)return i;let n=function(e){if(!e.startsWith("pack/"))return null;let t=e.slice(5),i=t.lastIndexOf("/");if(i<=0)return null;let n=t.slice(0,i),s=n.lastIndexOf("@");return{packId:s>0?n.slice(0,s):n,name:t.slice(i+1)}}(t);if(n)return function(e,t,i){if(!e)return;let n=e[`pack/${t}/${i}`];return n||(t.toLowerCase()===eb.w.toLowerCase()?e[i]:void 0)}(e.policyParams,n.packId,n.name);let s=`${o.l}/`;if(t.startsWith(s))return e.policyParams[t.slice(s.length)]}let eM={authority:"hard",reviewedBy:[]};async function eR(e,t,i,n,s){let r,a,c=t.tool_name,l=(0,o.w)(e,c);if((0,ek.Q)(`evaluating ${l.length} policies for ${e}`),!s){if(0===l.length)return{exitCode:0,stdout:"",stderr:"",policyName:null,reason:null,decision:"allow"};let{verdicts:s}=await eB(e,t,i,n,l);return eE(e,i,c,eO(s))}try{r=await eB(e,t,i,n,l,s)}catch(e){throw s.abort(),e}if(r.hardDenied?(s.abort(),a={kind:"not-consulted"}):(s.releaseRegistry?.(),a=await s.review),"answered"===a.kind&&0===a.asked.length&&"allow"===a.decision&&!a.observedAsked?.length||"not-consulted"===a.kind&&s.cloud)return eE(e,i,c,eO(r.verdicts));let d=function(e,t,i){let n=eO(e);if("not-consulted"===t.kind)return{final:n,cleared:[],decidedByJev:!1,activity:{evaluator:"jev",jevMode:i}};if("fallback"===t.kind)return{final:n,cleared:[],decidedByJev:!1,activity:{evaluator:"jev-fallback",jevFallbackReason:t.reason,...null!==t.latencyMs?{jevLatencyMs:t.latencyMs}:{},...t.model?{jevModel:t.model}:{},jevMode:i}};let s=t.injectionAsked&&!t.injected&&!t.requestCut,r=new Set(t.asked),o=new Set(t.notDenied),a=s&&!t.unclearableWarned?e.filter(e=>"allow"!==e.decision&&"reviewable"===e.authority&&0!==e.reviewedBy.length&&e.reviewedBy.every(e=>r.has(e)&&o.has(e))).map(e=>e.policyName):[],c={policyName:t.policyName,reason:t.reason??`Flagged by semantic review (${t.policyName})`},l=function(e,t,i,n){let s=new Set(t),r=e.filter(e=>!s.has(e.policyName)),o=r.find(e=>"deny"===e.decision);if(o)return{final:{decision:"deny",entries:[{policyName:o.policyName,reason:o.reason??""}]},decidedByJev:!1};if("deny"===i)return{final:{decision:"deny",entries:[n]},decidedByJev:!0};let a=r.filter(e=>"instruct"===e.decision).map(e=>({policyName:e.policyName,reason:e.reason??""}));return("instruct"===i&&a.push(n),a.length>0)?{final:{decision:"instruct",entries:a},decidedByJev:a[0]===n}:{final:eO(r),decidedByJev:!1}}(e,a,t.decision,c),d={evaluator:t.requestCut?"jev-fallback":"jev",...t.requestCut?{jevFallbackReason:ex}:{},jevDecision:t.decision,...a.length>0&&eI[l.final.decision]<eI[n.decision]?{jevCleared:a}:{},...null!==t.latencyMs?{jevLatencyMs:t.latencyMs}:{},...t.model?{jevModel:t.model}:{},jevMode:i,...t.checks?{jevChecks:[...t.checks]}:{}};if("observe"===i){let e="deny"===t.decision||"instruct"===t.decision?{policyName:c.policyName,decision:t.decision,reason:c.reason,version:t.model&&ej.test(t.model)?t.model:"jev"}:void 0;return{final:n,cleared:a,decidedByJev:!1,activity:d,...e?{observeVerdict:e}:{}}}return{...l,cleared:a,activity:d}}(r.verdicts,a,s.mode);return d.cleared.length>0&&(0,ek.Q)(`jev ${"observe"===s.mode?"would clear":"cleared"}: ${d.cleared.join(", ")}`),"jev-fallback"===d.activity.evaluator&&(0,ek.Q)(d.activity.jevFallbackReason===ex?"jev could not be shown the whole call; it cleared nothing, and the call was not allowed on a partial read":`jev unavailable (${d.activity.jevFallbackReason}); the regex result decided this call`),{...eE(e,i,c,d.final,d.decidedByJev),twoTier:{activity:d.activity,decidedByJev:d.decidedByJev,...(d.decidedByJev||d.observeVerdict)&&"answered"===a.kind&&a.origin?{jevOrigin:a.origin}:{},...d.observeVerdict?{observeVerdict:d.observeVerdict}:{},..."answered"===a.kind&&a.observedCloud?.length?{observedCloud:a.observedCloud}:{}}}}async function eB(e,t,i,n,s,r){let a=t.tool_name,c=t.tool_input,l={eventType:e,payload:t,toolName:a,toolInput:c,session:i,cli:i?.cli},d=[];for(let t of s){let s,a,c=t.params,u=eP(n,t.name)??{};if(c){let e={};for(let[t,i]of Object.entries(c))e[t]=t in u?u[t]:i.default;s={...l,params:e}}else s={...l,params:u};try{a=await t.fn(s)}catch(s){let n=s instanceof Error?s.message:String(s);(0,ek.g)(`policy "${t.name}" threw: ${n}`),t.name.startsWith(`${o.l}/`)&&(0,eC.f)((0,e$.f)(),"policy_evaluation_error",{policy_name:t.name,event_type:e,cli:i?.cli??null,error_type:s instanceof Error?s.name:"unknown"});continue}if("deny"===a.decision){let e=eT(a.reason??`Blocked by policy: ${t.name}`,eP(n,t.name)?.hint);(0,ek.Q)(`deny by "${t.name}": ${e}`);let{authority:i,reviewedBy:s}=r?r.authorityOf(t):eM;if(d.push({policyName:t.name,decision:"deny",reason:e,authority:i,reviewedBy:s}),"hard"===i)return{verdicts:d,hardDenied:!0};continue}if("instruct"===a.decision){let e=eT(a.reason??`Instruction from policy: ${t.name}`,eP(n,t.name)?.hint),{authority:i,reviewedBy:s}=r?r.authorityOf(t):eM;d.push({policyName:t.name,decision:"instruct",reason:e,authority:i,reviewedBy:s}),(0,ek.Q)(`instruct by "${t.name}": ${e}`)}"allow"===a.decision&&a.reason&&d.push({policyName:t.name,decision:"allow",reason:a.reason,...eM})}return{verdicts:d,hardDenied:!1}}function eE(e,t,i,n,s=!1){if("deny"===n.decision){let[r]=n.entries;return function(e,t,i,n,s,r=!1){let o;o=i||("UserPromptSubmit"===e?"prompt":"SessionStart"===e?"session start":"SessionEnd"===e?"session end":"Stop"===e?"stop":"operation");let a=r?`Blocked ${o} by failproofai because: ${s.replace(/[.\s]+$/,"")}, as flagged by Jev semantic review`:`Blocked ${o} by failproofai because: ${s}, as per the policy configured by the user`;if(t?.cli==="cursor")return"Stop"===e||"SubagentStop"===e?{exitCode:0,stdout:JSON.stringify({followup_message:`MANDATORY ACTION REQUIRED from failproofai (policy: ${n}): ${s}
|
|
1
|
+
(()=>{"use strict";module.exports=[97610,e=>{var t=e.i(89171),i=e.i(71809),n=e.i(73634),s=e.i(73136),r=e.i(52306),o=e.i(38791),a=e.i(38441),c=e.i(12714),l=e.i(2157),d=e.i(50227),u=e.i(81580);let p=/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i;var f=e.i(54214);function m(e,t){let i=[];for(let s of e)if("assistant"===s.type)for(let e of s.message.content){var n;let r;if("tool_use"!==e.type)continue;let o=e.name,c=(n=t.cli,(o?"copilot"===n?a.s[o]??o:"cursor"===n?a.D[o]??o:"codex"===n?a.j[o]??o:"opencode"===n?a.A[o]??o:"pi"===n?a.S[o]??o:"hermes"===n?a.C[o]??o:"openclaw"===n?a.e[o]??o:"factory"===n?a.r[o]??o:"devin"===n?a.u[o]??o:"antigravity"===n?a.I[o]??o:"goose"===n?a.K[o]??o:o:o)??o),l=function(e,t,i){let n;if(!e||!t||"object"!=typeof t||Array.isArray(t)||("copilot"===i?n=a.U[e]:"opencode"===i?n=a.k[e]:"pi"===i?n=a.V[e]:"hermes"===i?n=a.z[e]:"openclaw"===i?n=a.v[e]:"antigravity"===i?n=a.H[e]:"goose"===i&&(n=a.M[e]),!n))return t;let s={};for(let[e,i]of Object.entries(t))s[n[e]??e]=i;return s}(c,e.input,t.cli);e.result?.content&&(r=function(e){let t=Buffer.from(e,"utf-8");if(t.byteLength<=65536)return e;let i=65536;for(;i>0&&(192&t[i])==128;)i--;return t.subarray(0,i).toString("utf-8")}(e.result.content)),i.push({cli:t.cli,sessionId:t.sessionId,transcriptPath:t.transcriptPath,cwd:t.cwd,timestamp:s.timestamp,toolName:c,rawToolName:o,toolInput:l??{},toolResultText:r})}return i}async function y(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of function(){let e,t=(0,u.n)();try{e=(0,l.readdirSync)(t,{withFileTypes:!0})}catch{return[]}return e.filter(e=>e.isDirectory()).map(e=>({name:e.name,cwd:(0,u.b)(e.name),path:(0,d.join)(t,e.name)}))}()){let s;if(!t||t.has(e.cwd)){try{s=function(e){let t,i=[];try{t=(0,l.readdirSync)(e.path,{withFileTypes:!0})}catch{return i}for(let n of t)if(n.isFile()&&n.name.endsWith(".jsonl")){let t=n.name.slice(0,-6);if(!p.test(t))continue;let s=(0,d.join)(e.path,n.name);try{let n=(0,l.statSync)(s);i.push({projectName:e.name,cwd:e.cwd,sessionId:t,transcriptPath:s,mtimeMs:n.mtimeMs,sizeBytes:n.size,isSubagent:!1})}catch{}}else if(n.isDirectory()&&p.test(n.name)){let t,s=(0,d.join)(e.path,n.name,"subagents");if(!(0,l.existsSync)(s))continue;try{t=(0,l.readdirSync)(s,{withFileTypes:!0})}catch{continue}for(let n of t){if(!n.isFile()||!n.name.endsWith(".jsonl"))continue;let t=n.name.slice(0,-6),r=(0,d.join)(s,n.name);try{let n=(0,l.statSync)(r);i.push({projectName:e.name,cwd:e.cwd,sessionId:t,transcriptPath:r,mtimeMs:n.mtimeMs,sizeBytes:n.size,isSubagent:!0})}catch{}}}return i}(e)}catch{continue}for(let t of s)t.mtimeMs<i||n.push({cli:"claude",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.transcriptPath,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes})}}return n}async function h(e){let t,i;try{t=await (0,c.readFile)(e.transcriptPath,"utf-8")}catch{return[]}try{i=await (0,f.j)(t,"session")}catch{return[]}let n="";for(let e of t.split("\n",50))if(e.trim())try{let t=JSON.parse(e);if("string"==typeof t.cwd&&t.cwd.length>0){n=t.cwd;break}}catch{}return m(i,{cli:"claude",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:n})}async function g(e,t){let i,n;if(!Number.isFinite(t)||t<0)return null;let s=null;try{s=await (0,c.open)(e.transcriptPath,"r");let{size:n}=await s.stat();if(t>n)return null;if(t===n)return{events:[],bytesConsumed:t};let r=Buffer.alloc(n-t);await s.read(r,0,r.length,t),i=r.toString("utf-8")}catch{return null}finally{if(s)try{await s.close()}catch{}}let r=i.lastIndexOf("\n"),o=-1===r?"":i.slice(0,r+1),a=i.slice(r+1),l=a.trim().length>0&&(()=>{try{return JSON.parse(a),!0}catch{return!1}})()?o+a:o;if(0===l.length)return{events:[],bytesConsumed:t};let d=t+Buffer.byteLength(l,"utf-8");try{n=await (0,f.j)(l,"session")}catch{return null}let u="";for(let e of l.split("\n",50))if(e.trim())try{let t=JSON.parse(e);if("string"==typeof t.cwd&&t.cwd.length>0){u=t.cwd;break}}catch{}return{events:m(n,{cli:"claude",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:u}),bytesConsumed:d,cwd:u||void 0}}var w=e.i(36203),N=e.i(57232);async function v(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,w.getCodexProjects)())){let{cwd:s,sessions:r}=await (0,w.getCodexSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"codex",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function S(e){let t=await (0,N.getCodexSessionLog)(e.sessionId);return t?m(t.entries,{cli:"codex",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var b=e.i(55851),x=e.i(78166);async function j(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,b.getCopilotProjects)())){let{cwd:s,sessions:r}=await (0,b.getCopilotSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"copilot",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function O(e){let t=await (0,x.getCopilotSessionLog)(e.sessionId);return t?m(t.entries,{cli:"copilot",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var I=e.i(46413),k=e.i(72094);async function C(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,I.getCursorProjects)())){let{cwd:s,sessions:r}=await (0,I.getCursorSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"cursor",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function T(e){let t=await (0,k.getCursorSessionLog)(e.sessionId);return t?m(t.entries,{cli:"cursor",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var $=e.i(35435),P=e.i(99440);async function M(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,$.getOpenCodeProjects)())){let{cwd:s,sessions:r}=await (0,$.getOpenCodeSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();!(s<i)&&t.sessionId&&n.push({cli:"opencode",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:0})}}return n}async function R(e){let t=await (0,P.getOpenCodeSessionLog)(e.sessionId);return t?m(t.entries,{cli:"opencode",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var B=e.i(19791),E=e.i(85116);async function A(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,B.getPiProjects)())){let{cwd:s,sessions:r}=await (0,B.getPiSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"pi",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function _(e){let t=await (0,E.getPiSessionLog)(e.sessionId);return t?m(t.entries,{cli:"pi",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var D=e.i(64828),U=e.i(28898),J=e.i(3605);async function z(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=await (0,D.getHermesSessions)(),s=[];for(let e of n)!(e.mtimeMs<i)&&(!(e.messageCount<=0)||e.hasMessages)&&(!t||e.cwd&&t.has(e.cwd))&&s.push({cli:"hermes",projectName:e.cwd?(0,u.f)(e.cwd):e.source?(0,U.S)(e.profile,e.source):`hermes:${e.profile}`,sessionId:e.sessionId,transcriptPath:`hermes://${e.sessionId}`,mtimeMs:e.mtimeMs,sizeBytes:e.messageCount});return s}async function W(e){let t=await (0,J.getHermesSessionLog)(e.sessionId);return t?m(t.entries,{cli:"hermes",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var q=e.i(90624),Y=e.i(64199);async function F(e={}){if(e.projects&&e.projects.length>0)return[];let t=e.sinceMs??0,i=[];for(let e of(await (0,q.getOpenClawSessions)()))e.mtimeMs<t||i.push({cli:"openclaw",projectName:(0,q.openClawProjectPath)(e.agentId,e.channel),sessionId:e.sessionId,transcriptPath:e.transcriptPath,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});return i}async function L(e){let t=await (0,Y.getOpenClawSessionLog)(e.sessionId);return t?m(t.entries,{cli:"openclaw",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var H=e.i(28246);async function Q(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(0,H.listFactoryTranscripts)())!(e.mtimeMs<i)&&(!t||t.has(e.cwd))&&n.push({cli:"factory",projectName:e.projectName,sessionId:e.sessionId,transcriptPath:e.transcriptPath,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});return n}async function V(e){let t;try{t=await (0,c.readFile)(e.transcriptPath,"utf-8")}catch{return[]}let i=(0,f.V)(t,"session"),n=(0,H.factoryLinesToLogEntries)(i,"session"),s="";for(let e of i)if(e&&"object"==typeof e&&"session_start"===e.type){let t=e.cwd;if("string"==typeof t&&t.length>0){s=t;break}}return m(n,{cli:"factory",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:s})}var G=e.i(93114),Z=e.i(30441);async function K(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[],s=await (0,Z.getAntigravityIndex)();for(let e of(0,G.listAntigravityTranscripts)()){if(e.mtimeMs<i)continue;let r=s.get(e.conversationId)?.cwd;(!t||r&&t.has(r))&&n.push({cli:"antigravity",projectName:r?(0,u.f)(r):"antigravity",sessionId:e.conversationId,transcriptPath:e.transcriptPath,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes})}return n}async function X(e){let t;try{t=await (0,c.readFile)(e.transcriptPath,"utf-8")}catch{return[]}let i=(0,f.V)(t,"session"),n=(0,G.antigravityLinesToLogEntries)(i,"session"),s="";for(let e of i){if(!e||"object"!=typeof e)continue;let t=e.tool_calls;if(Array.isArray(t)){for(let e of t){let t=e&&"object"==typeof e?e.args:void 0,i=t&&"object"==typeof t?t.Cwd:void 0;if("string"==typeof i&&i.length>0){s=i;break}}if(s)break}}return m(n,{cli:"antigravity",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:s})}var ee=e.i(79364),et=e.i(40375);async function ei(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=await (0,ee.getDevinSessions)(),s=[];for(let e of n)!(e.mtimeMs<i)&&(!t||e.cwd&&t.has(e.cwd))&&s.push({cli:"devin",projectName:e.projectName,sessionId:e.sessionId,transcriptPath:`devin-db://${e.sessionId}`,mtimeMs:e.mtimeMs,sizeBytes:0});return s}async function en(e){let t=await (0,et.getDevinSessionLog)(e.sessionId);return t?m(t.entries,{cli:"devin",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var es=e.i(69164),er=e.i(36618);let eo={claude:{cli:"claude",listTranscripts:y,streamEvents:h,streamEventsFrom:g},codex:{cli:"codex",listTranscripts:v,streamEvents:S},copilot:{cli:"copilot",listTranscripts:j,streamEvents:O},cursor:{cli:"cursor",listTranscripts:C,streamEvents:T},opencode:{cli:"opencode",listTranscripts:M,streamEvents:R},pi:{cli:"pi",listTranscripts:A,streamEvents:_},hermes:{cli:"hermes",listTranscripts:z,streamEvents:W},openclaw:{cli:"openclaw",listTranscripts:F,streamEvents:L},factory:{cli:"factory",listTranscripts:Q,streamEvents:V},devin:{cli:"devin",listTranscripts:ei,streamEvents:en},antigravity:{cli:"antigravity",listTranscripts:K,streamEvents:X},goose:{cli:"goose",listTranscripts:async function(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=await (0,es.getGooseSessions)(),s=[];for(let e of n)!(e.mtimeMs<i)&&(!t||e.cwd&&t.has(e.cwd))&&s.push({cli:"goose",projectName:e.projectName,sessionId:e.sessionId,transcriptPath:`goose-db://${e.sessionId}`,mtimeMs:e.mtimeMs,sizeBytes:0});return s},streamEvents:async function(e){let t=await (0,er.getGooseSessionLog)(e.sessionId);return t?m(t.entries,{cli:"goose",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}}},ea=/\.(?:ts|tsx|js|jsx|mjs|cjs|py|go|rs|java|kt|swift|rb|php|c|h|cc|cpp|hpp|cs|scala|sh|bash|zsh|json|yaml|yml|toml|md|txt|sql|html|css|scss|sass)$/i,ec=["/","/home","/usr","/etc","/var","/opt","/Users"],el="rereadAfterEdit",ed=[{name:"redundant-cd-cwd",description:"Bash commands prefixed with `cd <cwd> && …` even though commands already run in cwd.",category:"Wasteful",severity:"info",displayTitle:"Prepended cd <cwd> before commands",impact:"Pure waste — your agent's shell already runs in `cwd`.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t||!e.cwd)return null;let i=t.trimStart(),n=/^cd\s+(?:"([^"]+)"|'([^']+)'|(\S+))\s*&&\s*([\s\S]+)$/.exec(i);if(!n)return null;let s=(n[1]??n[2]??n[3]??"").replace(/\/+$/,"");if(s!==e.cwd.replace(/\/+$/,""))return null;let r=n[4].trim();return{example:`cd ${s} && ${r}`}}},{name:"prefer-edit-over-read-cat",description:"Bash `cat`/`head`/`tail`/`less`/`more` on a single source file — use Read.",category:"Wasteful",severity:"info",displayTitle:"Used `cat`/`head`/`tail` on a source file",impact:"Burns tokens; the Read tool returns content directly without going through Bash output.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;let i=t.trim();if(/[|<>;&`$()]/.test(i))return null;let n=/^(cat|head|tail|less|more)\s+(?:-\S+\s+)*(?:"([^"]+)"|'([^']+)'|(\S+))\s*$/.exec(i);if(!n)return null;let s=n[2]??n[3]??n[4]??"";return!s||/(?:^|\/)\.env(?:\..+)?$/.test(s)||!ea.test(s)?null:{example:i}}},{name:"prefer-edit-over-sed-awk",description:"Bash `sed -i`/`awk` in-place edits — use Edit.",category:"Wasteful",severity:"info",displayTitle:"Used sed -i or awk for an in-place edit",impact:"Edit tool is safer and produces a diff the agent can verify.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;let i=t.trim();return/(?:^|\s|;|&&|\|\|)sed\b[^|]*\s-i(?=\b|['"])/.test(i)||/(?:^|\s|;|&&|\|\|)awk\b[^|]*\s>\s*\S+/.test(i)&&!/\|/.test(i)?{example:i}:null}},{name:"prefer-write-over-heredoc",description:"Bash heredoc / `echo > file` writing multi-line content — use Write.",category:"Wasteful",severity:"info",displayTitle:"Used heredoc / `echo > file` to write a multi-line file",impact:"Write tool handles escaping and is verifiable.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;return"string"!=typeof t?null:/<<-?\s*['"]?[A-Za-z_][A-Za-z0-9_]*['"]?\s*>\s*\S/.test(t)||/(?:^|\s|;|&&|\|\|)(?:echo|printf)\s+["'][^"']*\n[^"']*["']\s*>\s*\S/.test(t)?{example:t.replace(/\s+/g," ").trim().slice(0,160)}:null}},{name:"sleep-polling-loop",description:"Bash long `sleep` or while-sleep polling loops.",category:"Wasteful",severity:"info",displayTitle:"Used a long sleep or while-sleep polling loop",impact:"Burns wall-clock; better to wait for an explicit signal.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;if(/\bwhile\b[\s\S]*?\bsleep\b[\s\S]*?\bdone\b/.test(t))return{example:t.replace(/\s+/g," ").trim().slice(0,160)};let i=/\bsleep\s+(\d+(?:\.\d+)?)(m|h|d)?\b/.exec(t);if(i){let e=parseFloat(i[1]),n=i[2]??"s";if(("m"===n?60*e:"h"===n?3600*e:"d"===n?86400*e:e)>=30)return{example:t.replace(/\s+/g," ").trim().slice(0,160)}}return null}},{name:"find-from-root",description:"Bash `find` against `/`, `/home`, `/usr`, etc. — scope to cwd instead.",category:"Risky",severity:"warn",displayTitle:"Ran find from /, /home, /usr, etc.",impact:"Filesystem-wide finds exhaust resources and rarely return useful results.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;let i=t.trim(),n=/(?:^|[\s;|&])find\s+(?:-\S+\s+)*("[^"]+"|'[^']+'|\S+)/.exec(i);if(!n)return null;let s=n[1].replace(/^["']|["']$/g,"").replace(/\/+$/,"")||"/";return ec.includes(s)?{example:i.slice(0,160)}:null}},{name:"git-commit-no-verify",description:"git commit invoked with --no-verify / -n, skipping hooks.",category:"Risky",severity:"warn",displayTitle:"Committed with --no-verify",impact:"Skips pre-commit hooks that exist to catch broken or unsafe code.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;return"string"!=typeof t?null:/\bgit\s+commit\b/.test(t)&&(/\s--no-verify\b/.test(t)||/\s-n\b/.test(t))?{example:t.replace(/\s+/g," ").trim().slice(0,160)}:null}},{name:"reread-after-edit",description:"Read of a file that was just Edit'd or Write'n in the same session.",category:"Wasteful",severity:"info",displayTitle:"Re-read a file it just edited",impact:"Edit/Write already returned the updated content; the second Read is wasted tokens.",detect(e,t){let i,n=((i=t[el])||(i={countdown:new Map},t[el]=i),i),s=e.toolInput.file_path,r="string"==typeof s?s:null;for(let[e,t]of n.countdown)t<=1?n.countdown.delete(e):n.countdown.set(e,t-1);return r?"Edit"===e.toolName||"Write"===e.toolName?(n.countdown.set(r,5),null):"Read"===e.toolName&&n.countdown.has(r)?(n.countdown.delete(r),{example:`Read ${r} immediately after Edit/Write`}):null:null}}],eu=["cowboy","explorer","ghost","optimist","hammer","architect"],ep={explorer:.38,architect:.33,hammer:.11,cowboy:.11,optimist:.07,ghost:.01,precision:0,goldfish:0},ef={optimist:0,cowboy:0,explorer:0,goldfish:0,architect:0,precision:0,hammer:0,ghost:0};for(let e of eu)ef[e]=Math.max(ep[e],.05);var em=e.i(66680),ey=e.i(79857);let eh=null,eg=null;function ew(){if(eh)return eh;let e=n.H.map(e=>`${e.name}|${e.fn.toString()}`).sort().join("\n");return eh=(0,em.createHash)("sha1").update(e).digest("hex").slice(0,16)}function eN(){if(eg)return eg;let e=ed.map(e=>`${e.name}|${e.detect.toString()}`).sort().join("\n");return eg=(0,em.createHash)("sha1").update(e).digest("hex").slice(0,16)}function ev(e){let t=(0,ey.r)(),i=(0,em.createHash)("sha1").update(e).digest("hex");return(0,d.join)(t,`${i}.json`)}function eS(e,t){if(t<=0)return null;let i=null;try{i=(0,l.openSync)(e,"r");let n=Buffer.alloc(Math.min(4096,t));(0,l.readSync)(i,n,0,n.length,0);let s=Math.min(4096,t),r=Buffer.alloc(s);return(0,l.readSync)(i,r,0,s,t-s),(0,em.createHash)("sha1").update(String(t)).update(n).update(r).digest("hex").slice(0,32)}catch{return null}finally{if(null!==i)try{(0,l.closeSync)(i)}catch{}}}var eb=e.i(71194);let ex="request-cut",ej=/^[A-Za-z0-9._:/@~+-]{1,200}$/;function eO(e){let t=e.find(e=>"deny"===e.decision);if(t)return{decision:"deny",entries:[{policyName:t.policyName,reason:t.reason??""}]};let i=e.filter(e=>"instruct"===e.decision);return i.length>0?{decision:"instruct",entries:i.map(e=>({policyName:e.policyName,reason:e.reason??""}))}:{decision:"allow",entries:e.filter(e=>"allow"===e.decision&&e.reason).map(e=>({policyName:e.policyName,reason:e.reason}))}}let eI={allow:0,instruct:1,deny:2};var ek=e.i(97348),eC=e.i(49335),eT=e.i(10659);function e$(e,t){let i=e.trim(),n="string"==typeof t?t.trim():"";return n?i?`${i}. ${n}`:n:i}function eP(e,t){if(!e?.policyParams)return;let i=e.policyParams[t];if(i)return i;let n=function(e){if(!e.startsWith("pack/"))return null;let t=e.slice(5),i=t.lastIndexOf("/");if(i<=0)return null;let n=t.slice(0,i),s=n.lastIndexOf("@");return{packId:s>0?n.slice(0,s):n,name:t.slice(i+1)}}(t);if(n)return function(e,t,i){if(!e)return;let n=e[`pack/${t}/${i}`];return n||(t.toLowerCase()===eb.w.toLowerCase()?e[i]:void 0)}(e.policyParams,n.packId,n.name);let s=`${o.l}/`;if(t.startsWith(s))return e.policyParams[t.slice(s.length)]}let eM={authority:"hard",reviewedBy:[]};async function eR(e,t,i,n,s){let r,a,c=t.tool_name,l=(0,o.w)(e,c);if((0,ek.Q)(`evaluating ${l.length} policies for ${e}`),!s){if(0===l.length)return{exitCode:0,stdout:"",stderr:"",policyName:null,reason:null,decision:"allow"};let{verdicts:s}=await eB(e,t,i,n,l);return eE(e,i,c,eO(s))}try{r=await eB(e,t,i,n,l,s)}catch(e){throw s.abort(),e}if(r.hardDenied?(s.abort(),a={kind:"not-consulted"}):(s.releaseRegistry?.(),a=await s.review),"answered"===a.kind&&0===a.asked.length&&"allow"===a.decision&&!a.observedAsked?.length||"not-consulted"===a.kind&&s.cloud)return eE(e,i,c,eO(r.verdicts));let d=function(e,t,i){let n=eO(e);if("not-consulted"===t.kind)return{final:n,cleared:[],decidedByJev:!1,activity:{evaluator:"jev",jevMode:i}};if("fallback"===t.kind)return{final:n,cleared:[],decidedByJev:!1,activity:{evaluator:"jev-fallback",jevFallbackReason:t.reason,...null!==t.latencyMs?{jevLatencyMs:t.latencyMs}:{},...t.model?{jevModel:t.model}:{},jevMode:i}};let s=t.injectionAsked&&!t.injected&&!t.requestCut,r=new Set(t.asked),o=new Set(t.notDenied),a=s&&!t.unclearableWarned?e.filter(e=>"allow"!==e.decision&&"reviewable"===e.authority&&0!==e.reviewedBy.length&&e.reviewedBy.every(e=>r.has(e)&&o.has(e))).map(e=>e.policyName):[],c={policyName:t.policyName,reason:t.reason??`Flagged by semantic review (${t.policyName})`},l=function(e,t,i,n){let s=new Set(t),r=e.filter(e=>!s.has(e.policyName)),o=r.find(e=>"deny"===e.decision);if(o)return{final:{decision:"deny",entries:[{policyName:o.policyName,reason:o.reason??""}]},decidedByJev:!1};if("deny"===i)return{final:{decision:"deny",entries:[n]},decidedByJev:!0};let a=r.filter(e=>"instruct"===e.decision).map(e=>({policyName:e.policyName,reason:e.reason??""}));return("instruct"===i&&a.push(n),a.length>0)?{final:{decision:"instruct",entries:a},decidedByJev:a[0]===n}:{final:eO(r),decidedByJev:!1}}(e,a,t.decision,c),d={evaluator:t.requestCut?"jev-fallback":"jev",...t.requestCut?{jevFallbackReason:ex}:{},jevDecision:t.decision,...a.length>0&&eI[l.final.decision]<eI[n.decision]?{jevCleared:a}:{},...null!==t.latencyMs?{jevLatencyMs:t.latencyMs}:{},...t.model?{jevModel:t.model}:{},jevMode:i,...t.checks?{jevChecks:[...t.checks]}:{}};if("observe"===i){let e="deny"===t.decision||"instruct"===t.decision?{policyName:c.policyName,decision:t.decision,reason:c.reason,version:t.model&&ej.test(t.model)?t.model:"jev"}:void 0;return{final:n,cleared:a,decidedByJev:!1,activity:d,...e?{observeVerdict:e}:{}}}return{...l,cleared:a,activity:d}}(r.verdicts,a,s.mode);return d.cleared.length>0&&(0,ek.Q)(`jev ${"observe"===s.mode?"would clear":"cleared"}: ${d.cleared.join(", ")}`),"jev-fallback"===d.activity.evaluator&&(0,ek.Q)(d.activity.jevFallbackReason===ex?"jev could not be shown the whole call; it cleared nothing, and the call was not allowed on a partial read":`jev unavailable (${d.activity.jevFallbackReason}); the regex result decided this call`),{...eE(e,i,c,d.final,d.decidedByJev),twoTier:{activity:d.activity,decidedByJev:d.decidedByJev,...(d.decidedByJev||d.observeVerdict)&&"answered"===a.kind&&a.origin?{jevOrigin:a.origin}:{},...d.observeVerdict?{observeVerdict:d.observeVerdict}:{},..."answered"===a.kind&&a.observedCloud?.length?{observedCloud:a.observedCloud}:{}}}}async function eB(e,t,i,n,s,r){let a=t.tool_name,c=t.tool_input,l={eventType:e,payload:t,toolName:a,toolInput:c,session:i,cli:i?.cli},d=[];for(let t of s){let s,a,c=t.params,u=eP(n,t.name)??{};if(c){let e={};for(let[t,i]of Object.entries(c))e[t]=t in u?u[t]:i.default;s={...l,params:e}}else s={...l,params:u};try{a=await t.fn(s)}catch(s){let n=s instanceof Error?s.message:String(s);(0,ek.g)(`policy "${t.name}" threw: ${n}`),t.name.startsWith(`${o.l}/`)&&(0,eC.f)((0,eT.f)(),"policy_evaluation_error",{policy_name:t.name,event_type:e,cli:i?.cli??null,error_type:s instanceof Error?s.name:"unknown"});continue}if("deny"===a.decision){let e=e$(a.reason??`Blocked by policy: ${t.name}`,eP(n,t.name)?.hint);(0,ek.Q)(`deny by "${t.name}": ${e}`);let{authority:i,reviewedBy:s}=r?r.authorityOf(t):eM;if(d.push({policyName:t.name,decision:"deny",reason:e,authority:i,reviewedBy:s}),"hard"===i)return{verdicts:d,hardDenied:!0};continue}if("instruct"===a.decision){let e=e$(a.reason??`Instruction from policy: ${t.name}`,eP(n,t.name)?.hint),{authority:i,reviewedBy:s}=r?r.authorityOf(t):eM;d.push({policyName:t.name,decision:"instruct",reason:e,authority:i,reviewedBy:s}),(0,ek.Q)(`instruct by "${t.name}": ${e}`)}"allow"===a.decision&&a.reason&&d.push({policyName:t.name,decision:"allow",reason:a.reason,...eM})}return{verdicts:d,hardDenied:!1}}function eE(e,t,i,n,s=!1){if("deny"===n.decision){let[r]=n.entries;return function(e,t,i,n,s,r=!1){let o;o=i||("UserPromptSubmit"===e?"prompt":"SessionStart"===e?"session start":"SessionEnd"===e?"session end":"Stop"===e?"stop":"operation");let a=r?`Blocked ${o} by failproofai because: ${s.replace(/[.\s]+$/,"")}, as flagged by Jev semantic review`:`Blocked ${o} by failproofai because: ${s}, as per the policy configured by the user`;if(t?.cli==="cursor")return"Stop"===e||"SubagentStop"===e?{exitCode:0,stdout:JSON.stringify({followup_message:`MANDATORY ACTION REQUIRED from failproofai (policy: ${n}): ${s}
|
|
2
2
|
|
|
3
3
|
You MUST complete the above action NOW. Do NOT ask the user for confirmation — execute the required action, then attempt to finish your task again.`}),stderr:"",policyName:n,reason:s,decision:"deny"}:"UserPromptSubmit"===e?{exitCode:0,stdout:JSON.stringify({continue:!1,user_message:a}),stderr:"",policyName:n,reason:s,decision:"deny"}:{exitCode:0,stdout:JSON.stringify({permission:"deny",user_message:a,agent_message:a}),stderr:"",policyName:n,reason:s,decision:"deny"};if(t?.cli==="pi")return"Stop"===e?{exitCode:0,stdout:JSON.stringify({permission:"deny",reason:`MANDATORY ACTION REQUIRED from failproofai (policy: ${n}): ${s}
|
|
4
4
|
|
|
@@ -28,6 +28,6 @@ You MUST complete the above action(s) NOW. Do NOT ask the user for confirmation
|
|
|
28
28
|
|
|
29
29
|
You MUST complete the above action(s) NOW. Do NOT ask the user for confirmation — execute the required action(s), then attempt to finish your task again.`}),stderr:"",policyName:s[0],policyNames:s,reason:n,decision:"instruct"}}return{exitCode:0,stdout:"",stderr:i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n")+"\n",policyName:s[0],policyNames:s,reason:n,decision:"instruct"}}if(t?.cli==="goose")return{exitCode:0,stdout:"",stderr:i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n")+"\n",policyName:s[0],policyNames:s,reason:n,decision:"instruct"};if("Stop"===e||"SubagentStop"===e){let e=1===s.length?`policy: ${s[0]}`:`policies: ${s.join(", ")}`,i=`MANDATORY ACTION REQUIRED from failproofai (${e}): ${n}
|
|
30
30
|
|
|
31
|
-
You MUST complete the above action(s) NOW. Do NOT ask the user for confirmation — execute the required action(s), then attempt to finish your task again.`;return t?.cli==="copilot"?{exitCode:0,stdout:JSON.stringify({decision:"block",reason:i}),stderr:"",policyName:s[0],policyNames:s,reason:n,decision:"instruct"}:{exitCode:2,stdout:"",stderr:i,policyName:s[0],policyNames:s,reason:n,decision:"instruct"}}return{exitCode:0,stdout:JSON.stringify({hookSpecificOutput:{hookEventName:e,additionalContext:`Instruction from failproofai: ${n}`}}),stderr:"",policyName:s[0],policyNames:s,reason:n,decision:"instruct"}}(e,t,n.entries):n.entries.length>0?function(e,t,i){let n=i.map(e=>e.reason).join("\n"),s=i.map(e=>e.policyName);if(t?.cli==="cursor"){let e={permission:"allow",additional_context:`Note from failproofai: ${n}`},t=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return{exitCode:0,stdout:JSON.stringify(e),stderr:t+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}if(t?.cli==="pi"){let e={permission:"allow",reason:`Note from failproofai: ${n}`},t=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return{exitCode:0,stdout:JSON.stringify(e),stderr:t+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}if(t?.cli==="openclaw"){let e=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return{exitCode:0,stdout:JSON.stringify({permission:"allow",reason:`Note from failproofai: ${n}`}),stderr:e+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}let r=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return"PreToolUse"===e||"PostToolUse"===e||"UserPromptSubmit"===e||"PermissionRequest"===e?{exitCode:0,stdout:JSON.stringify({hookSpecificOutput:{hookEventName:e,additionalContext:`Note from failproofai: ${n}`}}),stderr:r+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}:{exitCode:0,stdout:"",stderr:r+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}(e,t,n.entries):{exitCode:0,stdout:"",stderr:"",policyName:null,reason:null,decision:"allow"}}let eA=new Set(["warn-repeated-tool-calls"].map(e=>(0,o.o)(e))),eD=!1,e_=null;async function eU(){if(eD)return;e_=(0,o.Z)(),(0,o.G)();let e=n.H.map(e=>e.name).filter(e=>!eA.has((0,o.o)(e)));(0,n.k)(e),eD=!0}async function eJ(e){eD||await eU();let t={sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:e.cwd,cli:e.cli},i={tool_name:e.toolName,tool_input:e.toolInput,session_id:e.sessionId,cwd:e.cwd,transcript_path:e.transcriptPath},n=[];if(ez(await eR("PreToolUse",i,t),"PreToolUse",n),void 0!==e.toolResultText){let s={...i,tool_response:e.toolResultText};ez(await eR("PostToolUse",s,t),"PostToolUse",n)}return n}function ez(e,t,i){for(let n of e.policyNames&&e.policyNames.length>0?e.policyNames:e.policyName?[e.policyName]:[])i.push({policyName:n,decision:e.decision,reason:e.reason,eventType:t})}function eW(e){let t=e.indexOf("/");return t>=0?e.slice(t+1):e}function eq(e){return e.length<=80?e:e.slice(0,79)+"…"}async function eY(e,t){let i,n={transcriptPath:e.transcriptPath,cli:e.cli,projectName:e.projectName,sessionId:e.sessionId,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes,cwd:"",eventsScanned:0,hitsByName:{},examplesByName:{},rangeByName:{}},s=eo[e.cli],r=0,o=!1,a=t?.detectorState??{};if(s.streamEventsFrom){let a=await s.streamEventsFrom(e,t?.fromByte??0);a?(i=a.events,r=a.bytesConsumed,n.cwd=a.cwd??"",o=!0):(i=await s.streamEvents(e),r=0)}else i=await s.streamEvents(e),r=0;if(0===i.length)return{result:n,bytesScanned:r,detectorState:a,resumed:o};for(let e of(n.eventsScanned=i.length,n.cwd=n.cwd||i[0].cwd||"",i)){let t;for(let t of ed){let i=t.detect(e,a);i&&eF(n,t.name,e.timestamp,e.cwd,eq(i.example))}try{t=await eJ(e)}catch{continue}for(let i of t){let t=function(e,t){if("Bash"===t.toolName){let e=t.toolInput.command;if("string"==typeof e)return e.replace(/\s+/g," ")}let i=t.toolInput.file_path;return"string"==typeof i?`${t.toolName} ${i}`:`${t.toolName}`}(i.policyName,e);eF(n,i.policyName,e.timestamp,e.cwd,eq(t))}}return{result:n,bytesScanned:r,detectorState:a,resumed:o}}function eF(e,t,i,n,s){e.hitsByName[t]=(e.hitsByName[t]??0)+1;let r=e.examplesByName[t]??[];r.length<3&&(r.push({timestamp:i,cwd:n,example:s}),e.examplesByName[t]=r);let o=e.rangeByName[t];o?(i<o.first&&(o.first=i),i>o.last&&(o.last=i)):e.rangeByName[t]={first:i,last:i}}async function eL(e={}){let t=Date.now();await eU();try{return await eH(e,t)}finally{eD&&(null!==e_&&((0,o.c)(e_),e_=null),eD=!1)}}async function eH(e,t){let c=e.clis??Array.from(a._),d=function(e){if(!e)return;let t=/^(\d+)\s*([dhm])$/i.exec(e.trim());if(t){let e=parseInt(t[1],10),i=t[2].toLowerCase();return Date.now()-e*("d"===i?864e5:"h"===i?36e5:6e4)}let i=Date.parse(e);if(!Number.isNaN(i))return i;throw Error(`Invalid --since value: "${e}" (expected e.g. "7d", "30d", or "2026-04-01")`)}(e.since),u=new Set(((0,s.f)().enabledPolicies??[]).map(e=>(0,o.o)(e)));try{for(let e of(0,r.f)().packs)for(let t of e.enabled??e.policies.map(e=>e.name))u.add((0,o.o)(t))}catch{}let p=[];for(let t of c){let i,n=eo[t];try{i=await n.listTranscripts({projects:e.projects,sinceMs:d})}catch{continue}p.push(...i)}let f=t=>{try{e.onProgress?.(t)}catch{}};if(e.onProgress){let e=new Map;for(let t of p)e.set(t.cli,(e.get(t.cli)??0)+1);f({kind:"discovered",agents:c.map(t=>({cli:t,transcripts:e.get(t)??0})),policies:(0,o.Z)().filter(e=>{let t=e.match.events;return!t||0===t.length||t.includes("PreToolUse")||t.includes("PostToolUse")}).length})}let m=0,y=0,h=p.map(t=>async()=>{let i,n=null;if(!e.noCache){let e=function(e,t,i){if(0===i)return null;let n=ev(e);if(!(0,l.existsSync)(n))return null;try{let s=(0,l.readFileSync)(n,"utf-8"),r=JSON.parse(s);if(4!==r.schemaVersion||r.engineVersion!==ew()||r.detectorVersion!==eN()||!Number.isFinite(r.cachedAt)||Date.now()-r.cachedAt>2592e6||!r.result)return null;if(r.mtimeMs===t&&r.sizeBytes===i)return{kind:"hit",result:r.result};let o=r.bytesScanned;if(!Number.isFinite(o)||o<=0||o>i||!r.anchorHash||eS(e,o)!==r.anchorHash)return null;return{kind:"resume",result:r.result,fromByte:o,detectorState:function(e){if(!e)return{};try{return JSON.parse(e,(e,t)=>t&&"object"==typeof t&&Array.isArray(t.__map)?new Map(t.__map):t)}catch{return{}}}(r.detectorState)}}catch{return null}}(t.transcriptPath,t.mtimeMs,t.sizeBytes);if(e?.kind==="hit")return e.result;i=e?.kind==="resume"?{fromByte:e.fromByte,detectorState:e.detectorState}:void 0,n=e?.kind==="resume"?e.result:null}try{let s=await eY(t,i),r=n&&s.resumed?function(e,t){let i={...e,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes,cwd:e.cwd||t.cwd||"",eventsScanned:(e.eventsScanned??0)+(t.eventsScanned??0),hitsByName:{...e.hitsByName},examplesByName:{},rangeByName:{...e.rangeByName}};for(let[t,n]of Object.entries(e.examplesByName))i.examplesByName[t]=[...n];for(let[e,n]of Object.entries(t.hitsByName))i.hitsByName[e]=(i.hitsByName[e]??0)+n;for(let[e,n]of Object.entries(t.examplesByName)){let t=i.examplesByName[e]??[];for(let e of n){if(t.length>=3)break;t.push(e)}i.examplesByName[e]=t}for(let[e,n]of Object.entries(t.rangeByName)){let t=i.rangeByName[e];t?(n.first<t.first&&(t.first=n.first),n.last>t.last&&(t.last=n.last)):i.rangeByName[e]={...n}}return i}(n,s.result):s.result;return e.noCache||function(e,t,i,n,s){if(0===i)return;let r=ev(e);try{(0,l.mkdirSync)((0,ey.r)(),{recursive:!0});let a={schemaVersion:4,cachedAt:Date.now(),mtimeMs:t,sizeBytes:i,engineVersion:ew(),detectorVersion:eN(),result:n};if(s&&s.bytesScanned>0){let t=eS(e,s.bytesScanned);if(t){var o;a.bytesScanned=s.bytesScanned,a.anchorHash=t,o=s.detectorState,a.detectorState=JSON.stringify(o,(e,t)=>t instanceof Map?{__map:[...t.entries()]}:t)}}(0,l.writeFileSync)(r,JSON.stringify(a),{encoding:"utf-8",mode:384});try{(0,l.chmodSync)(r,384)}catch{}}catch{}}(t.transcriptPath,t.mtimeMs,t.sizeBytes,r,s.bytesScanned>0?{bytesScanned:s.bytesScanned,detectorState:s.detectorState}:void 0),r}catch{return y++,{transcriptPath:t.transcriptPath,cli:t.cli,projectName:t.projectName,cwd:"",sessionId:t.sessionId,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes,eventsScanned:0,hitsByName:{},examplesByName:{},rangeByName:{}}}}),g=e.onProgress?h.map((e,t)=>async()=>{let i={};try{let t=await e();return i=t.hitsByName,t}finally{f({kind:"transcript",cli:p[t].cli,hitsByName:i})}}):h,w=await (0,i.f)(g,8),N=[];for(let e of w)"fulfilled"===e.status?N.push(e.value):m++;let v=function(e,t){let i=new Map;for(let t of e)for(let[e,n]of Object.entries(t.hitsByName)){let s=i.get(e)??{hits:0,projects:new Set,examples:[]};for(let i of(s.hits+=n,s.projects.add(t.projectName),t.examplesByName[e]??[]))s.examples.length<3&&s.examples.push({...i,sessionId:t.sessionId});let r=t.rangeByName[e];r&&((!s.first||r.first<s.first)&&(s.first=r.first),(!s.last||r.last>s.last)&&(s.last=r.last)),i.set(e,s)}let s=new Map(ed.map(e=>[e.name,e])),r=[];for(let[e,a]of i){let i=s.get(e),c=!!i,l=c?null:function(e){let t=eW(e);for(let i of n.H)if(i.name===e||eW(i.name)===t)return i;return null}(e),d=c?"audit-detector":"builtin",u=!c&&t.has((0,o.o)(e)),p=i?.displayTitle??l?.displayTitle??i?.description??l?.description??eW(e),f=i?.impact??l?.impact??"";r.push({name:e,source:d,category:i?.category??l?.category??"Custom",severity:c?i?.severity??"info":function(e){let t,i=(t=e.indexOf("/"))>=0?e.slice(t+1):e;return i.startsWith("sanitize-")?"sanitize":i.startsWith("block-")?"deny":i.startsWith("warn-")||i.startsWith("protect-")||i.startsWith("prefer-")||i.startsWith("require-")?"warn":"deny"}(e),hits:a.hits,projects:a.projects.size,firstSeen:a.first,lastSeen:a.last,examples:a.examples,displayTitle:p,impact:f,enabledInConfig:u,installHint:"audit-detector"===d?"Audit-only — `failproofai audit` will keep tracking these.":u?"Already enforced — failproofai is blocking these in real time.":`Enable in one command: failproofai policies --install ${eW(e)}`})}return r.sort((e,t)=>t.hits-e.hits),r}(N,u);if(e.policies?.length){let t=new Set(e.policies.map(eW));v=v.filter(e=>t.has(eW(e.name)))}let S=v.reduce((e,t)=>e+t.hits,0),b=new Set,x=new Set,j=0;for(let e of N)Object.keys(e.hitsByName).length>0&&b.add(e.projectName),e.cwd&&x.add(e.cwd),j+=e.eventsScanned??0;return{version:2,scannedAt:new Date(t).toISOString(),scope:{cli:c,projects:e.projects??"all",since:e.since??null},transcripts:{scanned:p.length,skipped:m,errors:y,durationMs:Date.now()-t},results:v,totals:{hits:S,projectsWithHits:b.size},projectsScanned:[...x].sort(),eventsScanned:j,enabledBuiltinNames:[...u].map(e=>e.includes("/")?e.slice(e.indexOf("/")+1):e)}}var eQ=e.i(47756),eV=e.i(48480),eG=e.i(29095),eZ=e.i(46501),eK=e.i(60526);let eX=new Set(a._);async function e0(e){await (0,eZ.u)();let i={};try{let n=await e.text();if(n.trim().length>0){let e=JSON.parse(n);if(null===e||"object"!=typeof e||Array.isArray(e))return(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"non_object_body"}),t.NextResponse.json({error:"Request body must be a JSON object"},{status:400});i=e}}catch{return(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"invalid_json"}),t.NextResponse.json({error:"Invalid JSON body"},{status:400})}let n=function(e){let t={};if("string"==typeof e.since&&e.since.trim()&&(t.since=e.since.trim()),Array.isArray(e.cli)&&e.cli.length>0){let i=e.cli.filter(e=>"string"==typeof e&&eX.has(e));i.length>0&&(t.clis=i)}return Array.isArray(e.project)&&e.project.length>0&&(t.projects=e.project.filter(e=>"string"==typeof e)),Array.isArray(e.policy)&&e.policy.length>0&&(t.policies=e.policy.filter(e=>"string"==typeof e)),!0===e.noCache&&(t.noCache=!0),t}(i);if(!(0,eV.O)())return(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"already_running"}),t.NextResponse.json({error:"Audit already running",status:"already-running"},{status:409});let s=(0,eG.R)("dashboard");if(!s.ok)return(0,eV.w)(null),(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"cross_process_lock"}),t.NextResponse.json({error:"Audit already running",status:"already-running"},{status:409});(0,eZ.z)("audit_run_started",{source:"dashboard",since:n.since??null,no_cache:!0===n.noCache,cli_count:n.clis?.length??0,project_count:n.projects?.length??0});let r=Date.now();return(async()=>{try{let e=await eL(n),t=(0,eQ.T)(n,e);(0,eZ.z)("audit_run_completed",{source:"dashboard",duration_ms:Date.now()-r,events_scanned:e.eventsScanned,sessions_scanned:e.transcripts.scanned,projects_scanned:e.projectsScanned.length,findings:e.results.length,total_hits:e.totals.hits,persisted:t}),(0,eV.w)(t?null:"audit finished but its result could not be saved")}catch(e){(0,eZ.z)("audit_run_failed",{source:"dashboard",duration_ms:Date.now()-r,error_type:e instanceof Error?e.name:"unknown",error_message:function(e){let t;try{t=e instanceof Error?e.message:String(e)}catch{return"unknown"}if(!t)return"";let i="";try{i=eK.default.homedir()}catch{}return i&&i.length>1&&(t=t.split(i).join("~")),t.length>300&&(t=t.slice(0,300)+"…"),t}(e)}),(0,eV.w)(e instanceof Error?e.message:String(e))}finally{s.lock.release()}})(),t.NextResponse.json({status:"started"},{status:202})}e.s(["POST",0,e0,"dynamic",0,"force-dynamic"],97610)},89498,e=>{var t=e.i(47909),i=e.i(74017),n=e.i(96250),s=e.i(59756),r=e.i(61916),o=e.i(74677),a=e.i(69741),c=e.i(16795),l=e.i(87718),d=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(26937),y=e.i(10372),h=e.i(93695),g=e.i(9580);e.i(52474);var w=e.i(220);let N=new t.AppRouteRouteModule({definition:{kind:i.f.APP_ROUTE,page:"/api/audit/run/route",pathname:"/api/audit/run",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/audit/run/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(97610),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:S,serverHooks:b}=N;async function x(e,t,n){n.requestMeta&&(0,s.R)(e,n.requestMeta),N.isDev&&(0,s.i)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/audit/run/route";v=v.replace(/\/index$/,"")||"/";let S=await N.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:b,deploymentId:x,params:j,nextConfig:O,parsedUrl:I,isDraftMode:k,prerenderManifest:C,routerServerContext:$,isOnDemandRevalidate:T,revalidateOnlyGenerated:P,resolvedPathname:M,clientReferenceManifest:R,serverActionsManifest:B,previewProps:E}=S,A=(0,a.f)(v),D=!!C.routes[M]&&(N.isDev||(0,g.f)(M,N.cacheOwner,C.routes[M])),_=!!(C.dynamicRoutes[A]||D),U=async()=>((null==$?void 0:$.render404)?await $.render404(e,t,I,!1):t.end("This page could not be found"),null);if(_&&!k){let e=C.dynamicRoutes[A];if(e&&!1===e.fallback&&!D){if(O.adapterPath)return await U();throw new h.NoFallbackError}}let J=null;!_||N.isDev||k||(J="/index"===(J=M)?"/":J),B&&R&&(0,o.f)({page:v,clientReferenceManifest:R,serverActionsManifest:B});let z=e.method||"GET",W=(0,r.v)(),q=W.getActiveScopeSpan(),Y=!!(null==$?void 0:$.isWrappedByNextServer),F=!!(0,s.w)(e,"minimalMode"),L=(0,s.w)(e,"incrementalCache")||await N.getIncrementalCache(e,O,E,C,F);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let H={params:j,previewProps:E,renderOpts:{experimental:{authInterrupts:!!O.experimental.authInterrupts,useCacheTimeout:O.experimental.useCacheTimeout,durableUseCacheEntries:!!O.experimental.durableUseCacheEntries},cacheComponents:!!O.cacheComponents,validationLevel:O.experimental.instantInsights.validationLevel,isDraftMode:k,incrementalCache:L,hmrRefreshHash:(0,s.w)(e,"hmrRefreshHash"),cacheLifeProfiles:O.cacheLife,staticPageGenerationTimeout:O.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0},sharedContext:{buildId:b,deploymentId:x}},Q=new c.x(e),V=new c.e(t),G=l.k.fromNodeNextRequest(Q,(0,l.t)(t)),Z=async({previousCacheEntry:i})=>{try{if(!F&&T&&P&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=null===J?await N.handle(G,H):await N.prerender(G,H);e.fetchMetrics=H.renderOpts.fetchMetrics;let r=H.renderOpts.pendingWaitUntil;r&&n.waitUntil&&(n.waitUntil(r),r=void 0);let o=H.renderOpts.collectedTags;if(!_)return await (0,p.f)(Q,V,s,r),null;{let e=await s.blob(),t=(0,f.S)(s.headers);o&&(t[y.M]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let i=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=y.Q)&&H.renderOpts.collectedRevalidate,n=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=y.Q?!1!==i&&i>0?O.expireTime:void 0:H.renderOpts.collectedExpire;return{value:{kind:w.x.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:i,expire:n}}}}catch(t){throw(null==i?void 0:i.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.f)({isStaticGeneration:null!==J,isOnDemandRevalidate:T})},!1,$),t}},K=async(s,o)=>{try{var a,c;let s=await N.handleResponse({req:e,nextConfig:O,cacheKey:J,routeKind:i.f.APP_ROUTE,isFallback:!1,previewProps:E,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:P,responseGenerator:Z,waitUntil:n.waitUntil,isMinimalMode:F});if(null!==s&&"error"in s)throw s.error;if(!_)return;if((null==s||null==(a=s.value)?void 0:a.kind)!==w.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==s||null==(c=s.value)?void 0:c.kind}`);F||t.setHeader("x-nextjs-cache",T?"REVALIDATED":s.isMiss?"MISS":s.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let r=(0,f.G)(s.value.headers);F&&_||r.delete(y.M),!s.cacheControl||t.getHeader("Cache-Control")||r.get("Cache-Control")||r.set("Cache-Control",(0,m.f)(s.cacheControl)),await (0,p.f)(Q,V,new Response(s.value.body,{headers:r,status:s.value.status||200}));return}catch(i){if(i instanceof h.NoFallbackError||await N.onRequestError(e,i,{routerKind:"App Router",routePath:A,routeType:"route",revalidateReason:(0,u.f)({isStaticGeneration:null!==J,isOnDemandRevalidate:T})},!1,$),_)throw i;if(t.headersSent){if(s){let e=i instanceof Error?i:Error("Unknown app route error");s.recordException(e),s.setStatus({code:r.J.ERROR,message:e.message}),s.setAttribute("error.type",e.name)}t.writableEnded||t.destroyed||t.end()}else await (0,p.f)(Q,V,new Response(null,{status:500}));return}finally{(()=>{if(!s)return;let e=t.statusCode;s.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(s.setStatus({code:r.J.ERROR}),s.setAttribute("error.type",e.toString()));let i=W.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==d.q.handleRequest)return console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=i.get("next.route")||A,a=`${z} ${n}`;s.setAttributes({"next.route":n,"http.route":n,"next.span_name":a}),s.updateName(a),o&&o!==s&&(o.setAttribute("http.route",n),o.updateName(a))})()}};if(Y&&q)await K(q,void 0);else{let t=W.getActiveScopeSpan();await W.withPropagatedContext(e.headers,()=>W.trace(d.q.handleRequest,{spanName:`${z} ${v}`,kind:r.C.SERVER,attributes:{"http.method":z,"http.target":e.url}},e=>K(e,t)),void 0,!Y)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,n.f)({workAsyncStorage:v,workUnitAsyncStorage:S})},"routeModule",0,N,"serverHooks",0,b,"workAsyncStorage",0,v,"workUnitAsyncStorage",0,S])}]})();
|
|
31
|
+
You MUST complete the above action(s) NOW. Do NOT ask the user for confirmation — execute the required action(s), then attempt to finish your task again.`;return t?.cli==="copilot"?{exitCode:0,stdout:JSON.stringify({decision:"block",reason:i}),stderr:"",policyName:s[0],policyNames:s,reason:n,decision:"instruct"}:{exitCode:2,stdout:"",stderr:i,policyName:s[0],policyNames:s,reason:n,decision:"instruct"}}return{exitCode:0,stdout:JSON.stringify({hookSpecificOutput:{hookEventName:e,additionalContext:`Instruction from failproofai: ${n}`}}),stderr:"",policyName:s[0],policyNames:s,reason:n,decision:"instruct"}}(e,t,n.entries):n.entries.length>0?function(e,t,i){let n=i.map(e=>e.reason).join("\n"),s=i.map(e=>e.policyName);if(t?.cli==="cursor"){let e={permission:"allow",additional_context:`Note from failproofai: ${n}`},t=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return{exitCode:0,stdout:JSON.stringify(e),stderr:t+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}if(t?.cli==="pi"){let e={permission:"allow",reason:`Note from failproofai: ${n}`},t=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return{exitCode:0,stdout:JSON.stringify(e),stderr:t+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}if(t?.cli==="openclaw"){let e=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return{exitCode:0,stdout:JSON.stringify({permission:"allow",reason:`Note from failproofai: ${n}`}),stderr:e+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}let r=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return"PreToolUse"===e||"PostToolUse"===e||"UserPromptSubmit"===e||"PermissionRequest"===e?{exitCode:0,stdout:JSON.stringify({hookSpecificOutput:{hookEventName:e,additionalContext:`Note from failproofai: ${n}`}}),stderr:r+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}:{exitCode:0,stdout:"",stderr:r+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}(e,t,n.entries):{exitCode:0,stdout:"",stderr:"",policyName:null,reason:null,decision:"allow"}}let eA=new Set(["warn-repeated-tool-calls"].map(e=>(0,o.o)(e))),e_=!1,eD=null;async function eU(){if(e_)return;eD=(0,o.Z)(),(0,o.G)();let e=n.H.map(e=>e.name).filter(e=>!eA.has((0,o.o)(e)));(0,n.k)(e),e_=!0}async function eJ(e){e_||await eU();let t={sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:e.cwd,cli:e.cli},i={tool_name:e.toolName,tool_input:e.toolInput,session_id:e.sessionId,cwd:e.cwd,transcript_path:e.transcriptPath},n=[];if(ez(await eR("PreToolUse",i,t),"PreToolUse",n),void 0!==e.toolResultText){let s={...i,tool_response:e.toolResultText};ez(await eR("PostToolUse",s,t),"PostToolUse",n)}return n}function ez(e,t,i){for(let n of e.policyNames&&e.policyNames.length>0?e.policyNames:e.policyName?[e.policyName]:[])i.push({policyName:n,decision:e.decision,reason:e.reason,eventType:t})}function eW(e){let t=e.indexOf("/");return t>=0?e.slice(t+1):e}function eq(e){return e.length<=80?e:e.slice(0,79)+"…"}async function eY(e,t){let i,n={transcriptPath:e.transcriptPath,cli:e.cli,projectName:e.projectName,sessionId:e.sessionId,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes,cwd:"",eventsScanned:0,hitsByName:{},examplesByName:{},rangeByName:{}},s=eo[e.cli],r=0,o=!1,a=t?.detectorState??{};if(s.streamEventsFrom){let a=await s.streamEventsFrom(e,t?.fromByte??0);a?(i=a.events,r=a.bytesConsumed,n.cwd=a.cwd??"",o=!0):(i=await s.streamEvents(e),r=0)}else i=await s.streamEvents(e),r=0;if(0===i.length)return{result:n,bytesScanned:r,detectorState:a,resumed:o};for(let e of(n.eventsScanned=i.length,n.cwd=n.cwd||i[0].cwd||"",i)){let t;for(let t of ed){let i=t.detect(e,a);i&&eF(n,t.name,e.timestamp,e.cwd,eq(i.example))}try{t=await eJ(e)}catch{continue}for(let i of t){let t=function(e,t){if("Bash"===t.toolName){let e=t.toolInput.command;if("string"==typeof e)return e.replace(/\s+/g," ")}let i=t.toolInput.file_path;return"string"==typeof i?`${t.toolName} ${i}`:`${t.toolName}`}(i.policyName,e);eF(n,i.policyName,e.timestamp,e.cwd,eq(t))}}return{result:n,bytesScanned:r,detectorState:a,resumed:o}}function eF(e,t,i,n,s){e.hitsByName[t]=(e.hitsByName[t]??0)+1;let r=e.examplesByName[t]??[];r.length<3&&(r.push({timestamp:i,cwd:n,example:s}),e.examplesByName[t]=r);let o=e.rangeByName[t];o?(i<o.first&&(o.first=i),i>o.last&&(o.last=i)):e.rangeByName[t]={first:i,last:i}}async function eL(e={}){let t=Date.now();await eU();try{return await eH(e,t)}finally{e_&&(null!==eD&&((0,o.c)(eD),eD=null),e_=!1)}}async function eH(e,t){let c=e.clis??Array.from(a._),d=function(e){if(!e)return;let t=/^(\d+)\s*([dhm])$/i.exec(e.trim());if(t){let e=parseInt(t[1],10),i=t[2].toLowerCase();return Date.now()-e*("d"===i?864e5:"h"===i?36e5:6e4)}let i=Date.parse(e);if(!Number.isNaN(i))return i;throw Error(`Invalid --since value: "${e}" (expected e.g. "7d", "30d", or "2026-04-01")`)}(e.since),u=new Set(((0,s.f)().enabledPolicies??[]).map(e=>(0,o.o)(e)));try{for(let e of(0,r.f)().packs)for(let t of e.enabled??e.policies.map(e=>e.name))u.add((0,o.o)(t))}catch{}let p=[];for(let t of c){let i,n=eo[t];try{i=await n.listTranscripts({projects:e.projects,sinceMs:d})}catch{continue}p.push(...i)}let f=t=>{try{e.onProgress?.(t)}catch{}};if(e.onProgress){let e=new Map;for(let t of p)e.set(t.cli,(e.get(t.cli)??0)+1);f({kind:"discovered",agents:c.map(t=>({cli:t,transcripts:e.get(t)??0})),policies:(0,o.Z)().filter(e=>{let t=e.match.events;return!t||0===t.length||t.includes("PreToolUse")||t.includes("PostToolUse")}).length})}let m=0,y=0,h=p.map(t=>async()=>{let i,n=null;if(!e.noCache){let e=function(e,t,i){if(0===i)return null;let n=ev(e);if(!(0,l.existsSync)(n))return null;try{let s=(0,l.readFileSync)(n,"utf-8"),r=JSON.parse(s);if(4!==r.schemaVersion||r.engineVersion!==ew()||r.detectorVersion!==eN()||!Number.isFinite(r.cachedAt)||Date.now()-r.cachedAt>2592e6||!r.result)return null;if(r.mtimeMs===t&&r.sizeBytes===i)return{kind:"hit",result:r.result};let o=r.bytesScanned;if(!Number.isFinite(o)||o<=0||o>i||!r.anchorHash||eS(e,o)!==r.anchorHash)return null;return{kind:"resume",result:r.result,fromByte:o,detectorState:function(e){if(!e)return{};try{return JSON.parse(e,(e,t)=>t&&"object"==typeof t&&Array.isArray(t.__map)?new Map(t.__map):t)}catch{return{}}}(r.detectorState)}}catch{return null}}(t.transcriptPath,t.mtimeMs,t.sizeBytes);if(e?.kind==="hit")return e.result;i=e?.kind==="resume"?{fromByte:e.fromByte,detectorState:e.detectorState}:void 0,n=e?.kind==="resume"?e.result:null}try{let s=await eY(t,i),r=n&&s.resumed?function(e,t){let i={...e,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes,cwd:e.cwd||t.cwd||"",eventsScanned:(e.eventsScanned??0)+(t.eventsScanned??0),hitsByName:{...e.hitsByName},examplesByName:{},rangeByName:{...e.rangeByName}};for(let[t,n]of Object.entries(e.examplesByName))i.examplesByName[t]=[...n];for(let[e,n]of Object.entries(t.hitsByName))i.hitsByName[e]=(i.hitsByName[e]??0)+n;for(let[e,n]of Object.entries(t.examplesByName)){let t=i.examplesByName[e]??[];for(let e of n){if(t.length>=3)break;t.push(e)}i.examplesByName[e]=t}for(let[e,n]of Object.entries(t.rangeByName)){let t=i.rangeByName[e];t?(n.first<t.first&&(t.first=n.first),n.last>t.last&&(t.last=n.last)):i.rangeByName[e]={...n}}return i}(n,s.result):s.result;return e.noCache||function(e,t,i,n,s){if(0===i)return;let r=ev(e);try{(0,l.mkdirSync)((0,ey.r)(),{recursive:!0});let a={schemaVersion:4,cachedAt:Date.now(),mtimeMs:t,sizeBytes:i,engineVersion:ew(),detectorVersion:eN(),result:n};if(s&&s.bytesScanned>0){let t=eS(e,s.bytesScanned);if(t){var o;a.bytesScanned=s.bytesScanned,a.anchorHash=t,o=s.detectorState,a.detectorState=JSON.stringify(o,(e,t)=>t instanceof Map?{__map:[...t.entries()]}:t)}}(0,l.writeFileSync)(r,JSON.stringify(a),{encoding:"utf-8",mode:384});try{(0,l.chmodSync)(r,384)}catch{}}catch{}}(t.transcriptPath,t.mtimeMs,t.sizeBytes,r,s.bytesScanned>0?{bytesScanned:s.bytesScanned,detectorState:s.detectorState}:void 0),r}catch{return y++,{transcriptPath:t.transcriptPath,cli:t.cli,projectName:t.projectName,cwd:"",sessionId:t.sessionId,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes,eventsScanned:0,hitsByName:{},examplesByName:{},rangeByName:{}}}}),g=e.onProgress?h.map((e,t)=>async()=>{let i={};try{let t=await e();return i=t.hitsByName,t}finally{f({kind:"transcript",cli:p[t].cli,hitsByName:i})}}):h,w=await (0,i.f)(g,8),N=[];for(let e of w)"fulfilled"===e.status?N.push(e.value):m++;let v=function(e,t){let i=new Map;for(let t of e)for(let[e,n]of Object.entries(t.hitsByName)){let s=i.get(e)??{hits:0,projects:new Set,examples:[]};for(let i of(s.hits+=n,s.projects.add(t.projectName),t.examplesByName[e]??[]))s.examples.length<3&&s.examples.push({...i,sessionId:t.sessionId});let r=t.rangeByName[e];r&&((!s.first||r.first<s.first)&&(s.first=r.first),(!s.last||r.last>s.last)&&(s.last=r.last)),i.set(e,s)}let s=new Map(ed.map(e=>[e.name,e])),r=[];for(let[e,a]of i){let i=s.get(e),c=!!i,l=c?null:function(e){let t=eW(e);for(let i of n.H)if(i.name===e||eW(i.name)===t)return i;return null}(e),d=c?"audit-detector":"builtin",u=!c&&t.has((0,o.o)(e)),p=i?.displayTitle??l?.displayTitle??i?.description??l?.description??eW(e),f=i?.impact??l?.impact??"";r.push({name:e,source:d,category:i?.category??l?.category??"Custom",severity:c?i?.severity??"info":function(e){let t,i=(t=e.indexOf("/"))>=0?e.slice(t+1):e;return i.startsWith("sanitize-")?"sanitize":i.startsWith("block-")?"deny":i.startsWith("warn-")||i.startsWith("protect-")||i.startsWith("prefer-")||i.startsWith("require-")?"warn":"deny"}(e),hits:a.hits,projects:a.projects.size,firstSeen:a.first,lastSeen:a.last,examples:a.examples,displayTitle:p,impact:f,enabledInConfig:u,installHint:"audit-detector"===d?"Audit-only — `failproofai audit` will keep tracking these.":u?"Already enforced — failproofai is blocking these in real time.":`Enable in one command: failproofai policies --install ${eW(e)}`})}return r.sort((e,t)=>t.hits-e.hits),r}(N,u);if(e.policies?.length){let t=new Set(e.policies.map(eW));v=v.filter(e=>t.has(eW(e.name)))}let S=v.reduce((e,t)=>e+t.hits,0),b=new Set,x=new Set,j=0;for(let e of N)Object.keys(e.hitsByName).length>0&&b.add(e.projectName),e.cwd&&x.add(e.cwd),j+=e.eventsScanned??0;return{version:2,scannedAt:new Date(t).toISOString(),scope:{cli:c,projects:e.projects??"all",since:e.since??null},transcripts:{scanned:p.length,skipped:m,errors:y,durationMs:Date.now()-t},results:v,totals:{hits:S,projectsWithHits:b.size},projectsScanned:[...x].sort(),eventsScanned:j,enabledBuiltinNames:[...u].map(e=>e.includes("/")?e.slice(e.indexOf("/")+1):e)}}var eQ=e.i(47756),eV=e.i(48480),eG=e.i(29095),eZ=e.i(46501),eK=e.i(60526);let eX=new Set(a._);async function e0(e){await (0,eZ.u)();let i={};try{let n=await e.text();if(n.trim().length>0){let e=JSON.parse(n);if(null===e||"object"!=typeof e||Array.isArray(e))return(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"non_object_body"}),t.NextResponse.json({error:"Request body must be a JSON object"},{status:400});i=e}}catch{return(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"invalid_json"}),t.NextResponse.json({error:"Invalid JSON body"},{status:400})}let n=function(e){let t={};if("string"==typeof e.since&&e.since.trim()&&(t.since=e.since.trim()),Array.isArray(e.cli)&&e.cli.length>0){let i=e.cli.filter(e=>"string"==typeof e&&eX.has(e));i.length>0&&(t.clis=i)}return Array.isArray(e.project)&&e.project.length>0&&(t.projects=e.project.filter(e=>"string"==typeof e)),Array.isArray(e.policy)&&e.policy.length>0&&(t.policies=e.policy.filter(e=>"string"==typeof e)),!0===e.noCache&&(t.noCache=!0),t}(i);if(!(0,eV.O)())return(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"already_running"}),t.NextResponse.json({error:"Audit already running",status:"already-running"},{status:409});let s=(0,eG.R)("dashboard");if(!s.ok)return(0,eV.w)(null),(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"cross_process_lock"}),t.NextResponse.json({error:"Audit already running",status:"already-running"},{status:409});(0,eZ.z)("audit_run_started",{source:"dashboard",since:n.since??null,no_cache:!0===n.noCache,cli_count:n.clis?.length??0,project_count:n.projects?.length??0});let r=Date.now();return(async()=>{try{let e=await eL(n),t=(0,eQ.T)(n,e);(0,eZ.z)("audit_run_completed",{source:"dashboard",duration_ms:Date.now()-r,events_scanned:e.eventsScanned,sessions_scanned:e.transcripts.scanned,projects_scanned:e.projectsScanned.length,findings:e.results.length,total_hits:e.totals.hits,persisted:t}),(0,eV.w)(t?null:"audit finished but its result could not be saved")}catch(e){(0,eZ.z)("audit_run_failed",{source:"dashboard",duration_ms:Date.now()-r,error_type:e instanceof Error?e.name:"unknown",error_message:function(e){let t;try{t=e instanceof Error?e.message:String(e)}catch{return"unknown"}if(!t)return"";let i="";try{i=eK.default.homedir()}catch{}return i&&i.length>1&&(t=t.split(i).join("~")),t.length>300&&(t=t.slice(0,300)+"…"),t}(e)}),(0,eV.w)(e instanceof Error?e.message:String(e))}finally{s.lock.release()}})(),t.NextResponse.json({status:"started"},{status:202})}e.s(["POST",0,e0,"dynamic",0,"force-dynamic"],97610)},89498,e=>{var t=e.i(47909),i=e.i(74017),n=e.i(96250),s=e.i(59756),r=e.i(61916),o=e.i(74677),a=e.i(69741),c=e.i(16795),l=e.i(87718),d=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(26937),y=e.i(10372),h=e.i(93695),g=e.i(9580);e.i(52474);var w=e.i(220);let N=new t.AppRouteRouteModule({definition:{kind:i.f.APP_ROUTE,page:"/api/audit/run/route",pathname:"/api/audit/run",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/audit/run/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(97610),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:S,serverHooks:b}=N;async function x(e,t,i){i.requestMeta&&(0,s.R)(e,i.requestMeta),N.isDev&&(0,s.i)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/audit/run/route";n=n.replace(/\/index$/,"")||"/";let{instrumentation:o}=await N.ensureInstrumentation(e,{deferSpans:!0});return N.traceRequest(e,{tracer:(0,r.v)(),spanName:`${e.method||"GET"} ${n}`,httpTarget:e.url,instrumentation:o},(s,r)=>j(e,t,i,n,!1,s,r))}async function j(e,t,n,v,S,b,x){let j=await N.prepare(e,t,{srcPage:v,multiZoneDraftMode:S});if(!j)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:O,deploymentId:I,params:k,nextConfig:C,parsedUrl:T,isDraftMode:$,prerenderManifest:P,routerServerContext:M,isOnDemandRevalidate:R,revalidateOnlyGenerated:B,resolvedPathname:E,clientReferenceManifest:A,serverActionsManifest:_,previewProps:D}=j,U=(0,a.f)(v),J=!!P.routes[E]&&(N.isDev||(0,g.f)(E,N.cacheOwner,P.routes[E])),z=!!(P.dynamicRoutes[U]||J),W=async()=>((null==M?void 0:M.render404)?await M.render404(e,t,T,!1):t.end("This page could not be found"),null);if(z&&!$){let e=P.dynamicRoutes[U];if(e&&!1===e.fallback&&!J){if(C.adapterPath)return await W();throw new h.NoFallbackError}}let q=null;!z||N.isDev||$||(q="/index"===(q=E)?"/":q),_&&A&&(0,o.f)({page:v,clientReferenceManifest:A,serverActionsManifest:_});let Y=e.method||"GET",F=(0,r.v)(),L=!!(null==M?void 0:M.isWrappedByNextServer),H=!!(0,s.w)(e,"minimalMode"),Q=(0,s.w)(e,"incrementalCache")||await N.getIncrementalCache(e,C,D,P,H);null==Q||Q.resetRequestCache(),globalThis.__incrementalCache=Q;let V={params:k,previewProps:D,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout,durableUseCacheEntries:!!C.experimental.durableUseCacheEntries},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:$,incrementalCache:Q,hmrRefreshHash:(0,s.w)(e,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0},sharedContext:{buildId:O,deploymentId:I}},G=new c.x(e),Z=new c.e(t),K=l.k.fromNodeNextRequest(G,(0,l.t)(t)),X=async({previousCacheEntry:i})=>{try{if(!H&&R&&B&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=null===q?await N.handle(K,V):await N.prerender(K,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let r=V.renderOpts.pendingWaitUntil;r&&n.waitUntil&&(n.waitUntil(r),r=void 0);let o=V.renderOpts.collectedTags;if(!z)return await (0,p.f)(G,Z,s,r),null;{let e=await s.blob(),t=(0,f.S)(s.headers);o&&(t[y.M]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let i=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=y.Q)&&V.renderOpts.collectedRevalidate,n=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=y.Q?!1!==i&&i>0?C.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:w.x.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:i,expire:n}}}}catch(t){throw(null==i?void 0:i.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.f)({isStaticGeneration:null!==q,isOnDemandRevalidate:R})},!1,M),t}},ee=async s=>{try{var o,a;let s=await N.handleResponse({req:e,nextConfig:C,cacheKey:q,routeKind:i.f.APP_ROUTE,isFallback:!1,previewProps:D,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:R,revalidateOnlyGenerated:B,responseGenerator:X,waitUntil:n.waitUntil,isMinimalMode:H});if(null!==s&&"error"in s)throw s.error;if(!z)return;if((null==s||null==(o=s.value)?void 0:o.kind)!==w.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==s||null==(a=s.value)?void 0:a.kind}`);H||t.setHeader("x-nextjs-cache",R?"REVALIDATED":s.isMiss?"MISS":s.isStale?"STALE":"HIT"),$&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let r=(0,f.G)(s.value.headers);H&&z||r.delete(y.M),!s.cacheControl||t.getHeader("Cache-Control")||r.get("Cache-Control")||r.set("Cache-Control",(0,m.f)(s.cacheControl)),await (0,p.f)(G,Z,new Response(s.value.body,{headers:r,status:s.value.status||200}));return}catch(i){if(i instanceof h.NoFallbackError||await N.onRequestError(e,i,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,u.f)({isStaticGeneration:null!==q,isOnDemandRevalidate:R})},!1,M),z)throw i;if(t.headersSent){if(s){let e=i instanceof Error?i:Error("Unknown app route error");s.recordException(e),s.setStatus({code:r.J.ERROR,message:e.message}),s.setAttribute("error.type",e.name)}t.writableEnded||t.destroyed||t.end()}else await (0,p.f)(G,Z,new Response(null,{status:500}));return}finally{(()=>{if(!s)return;let e=t.statusCode;s.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(s.setStatus({code:r.J.ERROR}),s.setAttribute("error.type",e.toString()));let i=F.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==d.q.handleRequest)return console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=i.get("next.route")||U,o=`${Y} ${n}`;s.setAttributes({"next.route":n,"http.route":n,"next.span_name":o}),s.updateName(o),x&&x!==s&&(x.setAttribute("http.route",n),x.updateName(o))})()}};L||void 0===e.url||null==b||b.setAttribute("http.target",e.url),await ee(b)}e.s(["handler",0,x,"patchFetch",0,function(){return(0,n.f)({workAsyncStorage:v,workUnitAsyncStorage:S})},"routeModule",0,N,"serverHooks",0,b,"workAsyncStorage",0,v,"workUnitAsyncStorage",0,S])}]})();
|
|
32
32
|
|
|
33
33
|
//# sourceMappingURL=_1ek68lnh2daur._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[16241,e=>{var t=e.i(89171),r=e.i(6375),a=e.i(17707),i=e.i(46501),s=e.i(10659);async function n(e){await (0,i.u)();let n={};try{n=await e.json()}catch{return(0,i.z)("audit_otp_verified",{status:"validation_error",source:"dashboard",reason:"invalid_json"}),t.NextResponse.json({code:"validation_error",message:"Invalid JSON body"},{status:400})}if("string"!=typeof n.email||!n.email.trim())return(0,i.z)("audit_otp_verified",{status:"validation_error",source:"dashboard",reason:"missing_email"}),t.NextResponse.json({code:"validation_error",message:"email is required"},{status:400});if("string"!=typeof n.code||!n.code.trim())return(0,i.z)("audit_otp_verified",{status:"validation_error",source:"dashboard",reason:"missing_code",email:n.email.trim().toLowerCase()}),t.NextResponse.json({code:"validation_error",message:"code is required"},{status:400});let o=n.email.trim().toLowerCase();try{let e=await (0,r.U)(n.email,n.code);return(0,a.r)((0,a.W)(e)),(0,i.z)("audit_user_identity_linked",{source:"audit_set_reminder_auth_dialog",user_id:e.user.id,email:e.user.email,local_random_id:(0,s.f)(),$set:{email:e.user.email,user_id:e.user.id}}),(0,i.z)("audit_otp_verified",{status:"success",source:"dashboard",user_id:e.user.id,email:e.user.email}),t.NextResponse.json({authenticated:!0,user:{id:e.user.id,email:e.user.email}},{status:200})}catch(a){if(a instanceof r.Y){(0,i.z)("audit_otp_verified",{status:"failed",source:"dashboard",email:o,error_code:a.code,http_status:a.status});let e=a.status>=200&&a.status<600?a.status:504;return t.NextResponse.json({code:a.code,message:a.message},{status:e})}let e=a instanceof Error?a.message:String(a);return(0,i.z)("audit_otp_verified",{status:"failed",source:"dashboard",email:o,error_code:"upstream_unreachable",error_message:e.slice(0,200)}),t.NextResponse.json({code:"upstream_unreachable",message:`api-server unreachable: ${e}`},{status:502})}}e.s(["POST",0,n,"dynamic",0,"force-dynamic"])},20177,e=>{var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),s=e.i(61916),n=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(26937),f=e.i(10372),v=e.i(93695),
|
|
1
|
+
(()=>{"use strict";module.exports=[16241,e=>{var t=e.i(89171),r=e.i(6375),a=e.i(17707),i=e.i(46501),s=e.i(10659);async function n(e){await (0,i.u)();let n={};try{n=await e.json()}catch{return(0,i.z)("audit_otp_verified",{status:"validation_error",source:"dashboard",reason:"invalid_json"}),t.NextResponse.json({code:"validation_error",message:"Invalid JSON body"},{status:400})}if("string"!=typeof n.email||!n.email.trim())return(0,i.z)("audit_otp_verified",{status:"validation_error",source:"dashboard",reason:"missing_email"}),t.NextResponse.json({code:"validation_error",message:"email is required"},{status:400});if("string"!=typeof n.code||!n.code.trim())return(0,i.z)("audit_otp_verified",{status:"validation_error",source:"dashboard",reason:"missing_code",email:n.email.trim().toLowerCase()}),t.NextResponse.json({code:"validation_error",message:"code is required"},{status:400});let o=n.email.trim().toLowerCase();try{let e=await (0,r.U)(n.email,n.code);return(0,a.r)((0,a.W)(e)),(0,i.z)("audit_user_identity_linked",{source:"audit_set_reminder_auth_dialog",user_id:e.user.id,email:e.user.email,local_random_id:(0,s.f)(),$set:{email:e.user.email,user_id:e.user.id}}),(0,i.z)("audit_otp_verified",{status:"success",source:"dashboard",user_id:e.user.id,email:e.user.email}),t.NextResponse.json({authenticated:!0,user:{id:e.user.id,email:e.user.email}},{status:200})}catch(a){if(a instanceof r.Y){(0,i.z)("audit_otp_verified",{status:"failed",source:"dashboard",email:o,error_code:a.code,http_status:a.status});let e=a.status>=200&&a.status<600?a.status:504;return t.NextResponse.json({code:a.code,message:a.message},{status:e})}let e=a instanceof Error?a.message:String(a);return(0,i.z)("audit_otp_verified",{status:"failed",source:"dashboard",email:o,error_code:"upstream_unreachable",error_message:e.slice(0,200)}),t.NextResponse.json({code:"upstream_unreachable",message:`api-server unreachable: ${e}`},{status:502})}}e.s(["POST",0,n,"dynamic",0,"force-dynamic"])},20177,e=>{var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),s=e.i(61916),n=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(26937),f=e.i(10372),v=e.i(93695),w=e.i(9580);e.i(52474);var _=e.i(220);let g=new t.AppRouteRouteModule({definition:{kind:r.f.APP_ROUTE,page:"/api/auth/login-verify/route",pathname:"/api/auth/login-verify",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/auth/login-verify/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(16241),...{}}),{workAsyncStorage:R,workUnitAsyncStorage:y,serverHooks:x}=g;async function b(e,t,r){r.requestMeta&&(0,i.R)(e,r.requestMeta),g.isDev&&(0,i.i)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/auth/login-verify/route";a=a.replace(/\/index$/,"")||"/";let{instrumentation:n}=await g.ensureInstrumentation(e,{deferSpans:!0});return g.traceRequest(e,{tracer:(0,s.v)(),spanName:`${e.method||"GET"} ${a}`,httpTarget:e.url,instrumentation:n},(i,s)=>E(e,t,r,a,!1,i,s))}async function E(e,t,a,R,y,x,b){let E=await g.prepare(e,t,{srcPage:R,multiZoneDraftMode:y});if(!E)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,deploymentId:T,params:P,nextConfig:A,parsedUrl:O,isDraftMode:S,prerenderManifest:U,routerServerContext:N,isOnDemandRevalidate:k,revalidateOnlyGenerated:j,resolvedPathname:q,clientReferenceManifest:I,serverActionsManifest:M,previewProps:D}=E,L=(0,o.f)(R),$=!!U.routes[q]&&(g.isDev||(0,w.f)(q,g.cacheOwner,U.routes[q])),H=!!(U.dynamicRoutes[L]||$),z=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,O,!1):t.end("This page could not be found"),null);if(H&&!S){let e=U.dynamicRoutes[L];if(e&&!1===e.fallback&&!$){if(A.adapterPath)return await z();throw new v.NoFallbackError}}let G=null;!H||g.isDev||S||(G="/index"===(G=q)?"/":G),M&&I&&(0,n.f)({page:R,clientReferenceManifest:I,serverActionsManifest:M});let B=e.method||"GET",F=(0,s.v)(),J=!!(null==N?void 0:N.isWrappedByNextServer),K=!!(0,i.w)(e,"minimalMode"),W=(0,i.w)(e,"incrementalCache")||await g.getIncrementalCache(e,A,D,U,K);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Q={params:P,previewProps:D,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout,durableUseCacheEntries:!!A.experimental.durableUseCacheEntries},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,isDraftMode:S,incrementalCache:W,hmrRefreshHash:(0,i.w)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0},sharedContext:{buildId:C,deploymentId:T}},V=new l.x(e),Y=new l.e(t),X=u.k.fromNodeNextRequest(V,(0,u.t)(t)),Z=async({previousCacheEntry:r})=>{try{if(!K&&k&&j&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=null===G?await g.handle(X,Q):await g.prerender(X,Q);e.fetchMetrics=Q.renderOpts.fetchMetrics;let s=Q.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let n=Q.renderOpts.collectedTags;if(!H)return await (0,p.f)(V,Y,i,s),null;{let e=await i.blob(),t=(0,h.S)(i.headers);n&&(t[f.M]=n),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==Q.renderOpts.collectedRevalidate&&!(Q.renderOpts.collectedRevalidate>=f.Q)&&Q.renderOpts.collectedRevalidate,a=void 0===Q.renderOpts.collectedExpire||Q.renderOpts.collectedExpire>=f.Q?!1!==r&&r>0?A.expireTime:void 0:Q.renderOpts.collectedExpire;return{value:{kind:_.x.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,c.f)({isStaticGeneration:null!==G,isOnDemandRevalidate:k})},!1,N),t}},ee=async i=>{try{var n,o;let i=await g.handleResponse({req:e,nextConfig:A,cacheKey:G,routeKind:r.f.APP_ROUTE,isFallback:!1,previewProps:D,prerenderManifest:U,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:j,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:K});if(null!==i&&"error"in i)throw i.error;if(!H)return;if((null==i||null==(n=i.value)?void 0:n.kind)!==_.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==i||null==(o=i.value)?void 0:o.kind}`);K||t.setHeader("x-nextjs-cache",k?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,h.G)(i.value.headers);K&&H||s.delete(f.M),!i.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,m.f)(i.cacheControl)),await (0,p.f)(V,Y,new Response(i.value.body,{headers:s,status:i.value.status||200}));return}catch(r){if(r instanceof v.NoFallbackError||await g.onRequestError(e,r,{routerKind:"App Router",routePath:L,routeType:"route",revalidateReason:(0,c.f)({isStaticGeneration:null!==G,isOnDemandRevalidate:k})},!1,N),H)throw r;if(t.headersSent){if(i){let e=r instanceof Error?r:Error("Unknown app route error");i.recordException(e),i.setStatus({code:s.J.ERROR,message:e.message}),i.setAttribute("error.type",e.name)}t.writableEnded||t.destroyed||t.end()}else await (0,p.f)(V,Y,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:s.J.ERROR}),i.setAttribute("error.type",e.toString()));let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.q.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||L,n=`${B} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":n}),i.updateName(n),b&&b!==i&&(b.setAttribute("http.route",a),b.updateName(n))})()}};J||void 0===e.url||null==x||x.setAttribute("http.target",e.url),await ee(x)}e.s(["handler",0,b,"patchFetch",0,function(){return(0,a.f)({workAsyncStorage:R,workUnitAsyncStorage:y})},"routeModule",0,g,"serverHooks",0,x,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,y])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_1fz8m31sndkcu._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[72993,e=>{var t=e.i(89171),r=e.i(17707),a=e.i(6375),s=e.i(46501);let
|
|
1
|
+
(()=>{"use strict";module.exports=[72993,e=>{var t=e.i(89171),r=e.i(17707),a=e.i(6375),s=e.i(46501);let n=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;async function i(e){let i;await (0,s.u)();let o=await (0,r.s)();if(!o)return(0,s.z)("audit_invite_sent",{status:"unauthorized",source:"dashboard"}),t.NextResponse.json({code:"unauthorized",message:"Sign in before sending invites."},{status:401});let u={},l=await e.text();if(l.trim().length>0)try{let e=JSON.parse(l);if(null===e||"object"!=typeof e||Array.isArray(e))return(0,s.z)("audit_invite_sent",{status:"validation_error",source:"dashboard",reason:"not_an_object",user_id:o.me.id}),t.NextResponse.json({code:"validation_error",message:"Request body must be a JSON object."},{status:400});u=e}catch{return(0,s.z)("audit_invite_sent",{status:"validation_error",source:"dashboard",reason:"malformed_json",user_id:o.me.id}),t.NextResponse.json({code:"validation_error",message:"Request body is not valid JSON."},{status:400})}if(!Array.isArray(u.to))return(0,s.z)("audit_invite_sent",{status:"validation_error",source:"dashboard",reason:"missing_to",user_id:o.me.id}),t.NextResponse.json({code:"validation_error",message:"`to` must be a list of email addresses."},{status:400});let d=[],c=new Set;for(let e of u.to){if("string"!=typeof e)continue;let t=e.trim().toLowerCase();t&&n.test(t)&&t!==o.me.email.toLowerCase()&&(c.has(t)||(c.add(t),d.push(t)))}if(0===d.length)return(0,s.z)("audit_invite_sent",{status:"validation_error",source:"dashboard",reason:"no_valid_recipients",user_id:o.me.id,input_count:Array.isArray(u.to)?u.to.length:0}),t.NextResponse.json({code:"validation_error",message:"Provide at least one valid email address (other than your own)."},{status:400});if(d.length>10)return(0,s.z)("audit_invite_sent",{status:"validation_error",source:"dashboard",reason:"too_many_recipients",user_id:o.me.id,input_count:d.length}),t.NextResponse.json({code:"validation_error",message:"Up to 10 recipients per invite batch. Please send the rest in a follow-up."},{status:400});"number"==typeof u.score&&Number.isFinite(u.score)&&(i=Math.max(0,Math.min(100,Math.round(u.score))));try{let e=await (0,a.O)(o.auth.access_token,d,i);return(0,s.z)("audit_invite_sent",{status:"success",source:"dashboard",user_id:o.me.id,sent_count:e.sent.length,failed_count:e.failed.length}),t.NextResponse.json(e,{status:200})}catch(r){if(r instanceof a.Y){(0,s.z)("audit_invite_sent",{status:"failed",source:"dashboard",user_id:o.me.id,error_code:r.code,http_status:r.status,recipient_count:d.length});let e=r.status>=200&&r.status<600?r.status:504;return t.NextResponse.json({code:r.code,message:r.message,...void 0!==r.retryAfterSecs?{retry_after_secs:r.retryAfterSecs}:{}},{status:e})}let e=r instanceof Error?r.name:"unknown";return(0,s.z)("audit_invite_sent",{status:"failed",source:"dashboard",user_id:o.me.id,error_code:"upstream_unreachable",error_name:e.slice(0,50),recipient_count:d.length}),t.NextResponse.json({code:"upstream_unreachable",message:"Invite service is unreachable. Please try again in a moment."},{status:502})}}e.s(["POST",0,i,"dynamic",0,"force-dynamic"])},69005,e=>{var t=e.i(47909),r=e.i(74017),a=e.i(96250),s=e.i(59756),n=e.i(61916),i=e.i(74677),o=e.i(69741),u=e.i(16795),l=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(26937),f=e.i(10372),v=e.i(93695),_=e.i(9580);e.i(52474);var w=e.i(220);let g=new t.AppRouteRouteModule({definition:{kind:r.f.APP_ROUTE,page:"/api/audit/invite/route",pathname:"/api/audit/invite",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/audit/invite/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(72993),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:R,serverHooks:b}=g;async function x(e,t,r){r.requestMeta&&(0,s.R)(e,r.requestMeta),g.isDev&&(0,s.i)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/audit/invite/route";a=a.replace(/\/index$/,"")||"/";let{instrumentation:i}=await g.ensureInstrumentation(e,{deferSpans:!0});return g.traceRequest(e,{tracer:(0,n.v)(),spanName:`${e.method||"GET"} ${a}`,httpTarget:e.url,instrumentation:i},(s,n)=>E(e,t,r,a,!1,s,n))}async function E(e,t,a,y,R,b,x){let E=await g.prepare(e,t,{srcPage:y,multiZoneDraftMode:R});if(!E)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:A,deploymentId:C,params:P,nextConfig:S,parsedUrl:T,isDraftMode:O,prerenderManifest:N,routerServerContext:j,isOnDemandRevalidate:U,revalidateOnlyGenerated:k,resolvedPathname:M,clientReferenceManifest:q,serverActionsManifest:I,previewProps:z}=E,D=(0,o.f)(y),L=!!N.routes[M]&&(g.isDev||(0,_.f)(M,g.cacheOwner,N.routes[M])),H=!!(N.dynamicRoutes[D]||L),$=async()=>((null==j?void 0:j.render404)?await j.render404(e,t,T,!1):t.end("This page could not be found"),null);if(H&&!O){let e=N.dynamicRoutes[D];if(e&&!1===e.fallback&&!L){if(S.adapterPath)return await $();throw new v.NoFallbackError}}let G=null;!H||g.isDev||O||(G="/index"===(G=M)?"/":G),I&&q&&(0,i.f)({page:y,clientReferenceManifest:q,serverActionsManifest:I});let F=e.method||"GET",J=(0,n.v)(),B=!!(null==j?void 0:j.isWrappedByNextServer),K=!!(0,s.w)(e,"minimalMode"),Q=(0,s.w)(e,"incrementalCache")||await g.getIncrementalCache(e,S,z,N,K);null==Q||Q.resetRequestCache(),globalThis.__incrementalCache=Q;let V={params:P,previewProps:z,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts,useCacheTimeout:S.experimental.useCacheTimeout,durableUseCacheEntries:!!S.experimental.durableUseCacheEntries},cacheComponents:!!S.cacheComponents,validationLevel:S.experimental.instantInsights.validationLevel,isDraftMode:O,incrementalCache:Q,hmrRefreshHash:(0,s.w)(e,"hmrRefreshHash"),cacheLifeProfiles:S.cacheLife,staticPageGenerationTimeout:S.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0},sharedContext:{buildId:A,deploymentId:C}},W=new u.x(e),Y=new u.e(t),X=l.k.fromNodeNextRequest(W,(0,l.t)(t)),Z=async({previousCacheEntry:r})=>{try{if(!K&&U&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=null===G?await g.handle(X,V):await g.prerender(X,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let n=V.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let i=V.renderOpts.collectedTags;if(!H)return await (0,p.f)(W,Y,s,n),null;{let e=await s.blob(),t=(0,h.S)(s.headers);i&&(t[f.M]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=f.Q)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=f.Q?!1!==r&&r>0?S.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:w.x.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.f)({isStaticGeneration:null!==G,isOnDemandRevalidate:U})},!1,j),t}},ee=async s=>{try{var i,o;let s=await g.handleResponse({req:e,nextConfig:S,cacheKey:G,routeKind:r.f.APP_ROUTE,isFallback:!1,previewProps:z,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:U,revalidateOnlyGenerated:k,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:K});if(null!==s&&"error"in s)throw s.error;if(!H)return;if((null==s||null==(i=s.value)?void 0:i.kind)!==w.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==s||null==(o=s.value)?void 0:o.kind}`);K||t.setHeader("x-nextjs-cache",U?"REVALIDATED":s.isMiss?"MISS":s.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.G)(s.value.headers);K&&H||n.delete(f.M),!s.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,m.f)(s.cacheControl)),await (0,p.f)(W,Y,new Response(s.value.body,{headers:n,status:s.value.status||200}));return}catch(r){if(r instanceof v.NoFallbackError||await g.onRequestError(e,r,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,c.f)({isStaticGeneration:null!==G,isOnDemandRevalidate:U})},!1,j),H)throw r;if(t.headersSent){if(s){let e=r instanceof Error?r:Error("Unknown app route error");s.recordException(e),s.setStatus({code:n.J.ERROR,message:e.message}),s.setAttribute("error.type",e.name)}t.writableEnded||t.destroyed||t.end()}else await (0,p.f)(W,Y,new Response(null,{status:500}));return}finally{(()=>{if(!s)return;let e=t.statusCode;s.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(s.setStatus({code:n.J.ERROR}),s.setAttribute("error.type",e.toString()));let r=J.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.q.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||D,i=`${F} ${a}`;s.setAttributes({"next.route":a,"http.route":a,"next.span_name":i}),s.updateName(i),x&&x!==s&&(x.setAttribute("http.route",a),x.updateName(i))})()}};B||void 0===e.url||null==b||b.setAttribute("http.target",e.url),await ee(b)}e.s(["handler",0,x,"patchFetch",0,function(){return(0,a.f)({workAsyncStorage:y,workUnitAsyncStorage:R})},"routeModule",0,g,"serverHooks",0,b,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,R])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_1ogwigfb0163w._.js.map
|