failproofai 0.0.11-beta.2 → 0.0.11-beta.3
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/app-path-routes-manifest.json +8 -1
- package/.next/standalone/.next/build-manifest.json +10 -10
- package/.next/standalone/.next/prerender-manifest.json +3 -32
- package/.next/standalone/.next/required-server-files.json +2 -1
- package/.next/standalone/.next/routes-manifest.json +45 -3
- package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +7 -7
- 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 +6 -6
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- 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 +7 -7
- package/.next/standalone/.next/server/app/_not-found/page/next-font-manifest.json +2 -6
- 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 +12 -13
- 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 +16 -16
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
- 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/_not-found.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/audit/run/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/audit/run/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/audit/run/route.js +8 -0
- package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/audit/run/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/audit/status/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/audit/status/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/audit/status/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/audit/status/route.js +6 -0
- package/.next/standalone/.next/server/app/api/audit/status/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/audit/status/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/auth/login-request/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/auth/login-request/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/auth/login-request/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/auth/login-request/route.js +6 -0
- package/.next/standalone/.next/server/app/api/auth/login-request/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/auth/login-request/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/auth/login-verify/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/auth/login-verify/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/auth/login-verify/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +7 -0
- package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/auth/login-verify/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/auth/logout/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/auth/logout/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/auth/logout/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/auth/logout/route.js +7 -0
- package/.next/standalone/.next/server/app/api/auth/logout/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/auth/reminder/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/auth/reminder/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/auth/reminder/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/auth/reminder/route.js +7 -0
- package/.next/standalone/.next/server/app/api/auth/reminder/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/auth/reminder/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/auth/reminder/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/auth/status/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/auth/status/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/auth/status/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/auth/status/route.js +7 -0
- package/.next/standalone/.next/server/app/api/auth/status/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/auth/status/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +3 -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/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/audit/page/build-manifest.json +18 -0
- package/.next/standalone/.next/server/app/audit/page/next-font-manifest.json +6 -0
- package/.next/standalone/.next/server/app/audit/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +29 -0
- package/.next/standalone/.next/server/app/audit/page.js +17 -0
- package/.next/standalone/.next/server/app/audit/page.js.map +5 -0
- package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +16 -17
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +16 -17
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -3
- package/.next/standalone/.next/server/app/page/build-manifest.json +7 -7
- package/.next/standalone/.next/server/app/page/next-font-manifest.json +2 -6
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js +14 -15
- 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 +7 -7
- package/.next/standalone/.next/server/app/policies/page/next-font-manifest.json +2 -6
- package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
- package/.next/standalone/.next/server/app/policies/page.js +16 -16
- 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 +7 -7
- package/.next/standalone/.next/server/app/project/[name]/page/next-font-manifest.json +2 -6
- 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 +16 -17
- 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 +7 -7
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/next-font-manifest.json +2 -6
- 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 +19 -20
- 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 +7 -7
- package/.next/standalone/.next/server/app/projects/page/next-font-manifest.json +2 -6
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js +15 -16
- 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-paths-manifest.json +8 -1
- package/.next/standalone/.next/server/chunks/[externals]__14odj07._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[externals]__0z0j--b._.js → [externals]__1nl3dvw._.js} +1 -1
- package/.next/standalone/.next/server/chunks/{[externals]__0-p9.k~._.js → [externals]__1s61mel._.js} +1 -1
- package/.next/standalone/.next/server/chunks/{[externals]_node_os_06ur78j._.js → [externals]_node_os_0by37l-._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07tgnzi._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0kjo7d_._.js → [root-of-the-server]__0_0xu5z._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cag8qd._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0z-180.._.js → [root-of-the-server]__0cycwg6._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__08px0ym._.js → [root-of-the-server]__0f7mikp._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oeun7z._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0q-v9z2._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0rv7m0k._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0g48iv.._.js → [root-of-the-server]__0sb_5m8._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0j8-xkl._.js → [root-of-the-server]__0xuaoik._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12pit4m._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13h8pzr._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13ra2jq._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__17g9wh7._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0d_ob4n._.js → [root-of-the-server]__1_mqemn._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1b9z5-i._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0vlhtkc._.js → [root-of-the-server]__1hgv_75._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ixjiy8._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0wu7fr7._.js → [root-of-the-server]__1jm9fw6._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1legmza._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0fwb7ao._.js → [root-of-the-server]__1m2_4t0._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0yfq1yr._.js → [root-of-the-server]__1mhmdzs._.js} +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0zso~62._.js → [root-of-the-server]__1ou2ehh._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1qxztj-._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1rhmvod._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0.~nmr9._.js → [root-of-the-server]__1w9zl9-._.js} +1 -1
- package/.next/standalone/.next/server/chunks/{_0ebx_lc._.js → _0p53ge1._.js} +2 -2
- package/.next/standalone/.next/server/chunks/_1-1804f._.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_audit_run_route_actions_1qgp9io.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_audit_status_route_actions_1f7pjof.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_login-request_route_actions_1c49co0.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_login-verify_route_actions_1r3slzk.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_logout_route_actions_0regwyr.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_reminder_route_actions_1kjgxf8.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_status_route_actions_1aho9zu.js +3 -0
- package/.next/standalone/.next/server/chunks/{_next-internal_server_app_api_download_[project]_[session]_route_actions_0wb00i-.js → _next-internal_server_app_api_download_[project]_[session]_route_actions_1is7vs7.js} +1 -1
- package/.next/standalone/.next/server/chunks/{lib_logger_ts_047tt9f._.js → lib_logger_ts_07e65t5._.js} +1 -1
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_17k9e3w.js +23 -0
- package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oi._.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p7._.js +3 -0
- package/.next/standalone/.next/server/chunks/{package_json_[json]_cjs_0z7w.hh._.js → package_json_[json]_cjs_1nxcc4v._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[externals]__12dv.x0._.js → [externals]__1_g_b3t._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[externals]_node_async_hooks_0v0ln8c._.js → [externals]_node_async_hooks_1gjz99j._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00jkjmt._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__013du6r._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0989_dx._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e85wxv._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gfxvb1._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h12me5._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0l13qf2._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ts150~._.js → [root-of-the-server]__0ywoypf._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1-scthx._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__100hdar._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11rtg6s._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__14dd6h8._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1cd25c7._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0t5l7a5._.js → [root-of-the-server]__1d8omgc._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0tcyn68._.js → [root-of-the-server]__1dky4g0._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__098zro9._.js → [root-of-the-server]__1fax1sl._.js} +4 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1hlrq6y._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1ihxdo5._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1mt35_w._.js +221 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0-wn51s._.js → [root-of-the-server]__1pcxxwg._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1usf8v2._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1vvfde2._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__212nf49._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_03d7qyt._.js → _05whahf._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_11_p9y8._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0xb8ngh._.js → _1kje4fm._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0zx~s__._.js → _1p0-leb._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{app_04qfs8z._.js → app_087bt9w._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{app_0uosk1e._.js → app_1fvisnp._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{app_13f0ohr._.js → app_209u41o._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +43 -0
- package/.next/standalone/.next/server/chunks/ssr/app_audit_loading_tsx_1j1kc6j._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{app_error_tsx_11t4ysq._.js → app_error_tsx_1zds1ns._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{app_global-error_tsx_0m9qisk._.js → app_global-error_tsx_113y3za._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +8 -0
- package/.next/standalone/.next/server/chunks/ssr/{app_project_[name]_error_tsx_0.9-fod._.js → app_project_[name]_error_tsx_1v02_5n._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{app_project_[name]_loading_tsx_03g9xy0._.js → app_project_[name]_loading_tsx_05-l4uf._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{app_project_[name]_session_[sessionId]_error_tsx_0ler-mr._.js → app_project_[name]_session_[sessionId]_error_tsx_0-lj3nd._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{app_project_[name]_session_[sessionId]_loading_tsx_0c0e3yx._.js → app_project_[name]_session_[sessionId]_loading_tsx_0l4aixs._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_projects_loading_tsx_20-3u8b._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{lib_codex-projects_ts_0eosib~._.js → lib_codex-projects_ts_0pqlw37._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{lib_copilot-projects_ts_0r8xkn8._.js → lib_copilot-projects_ts_19wl7tp._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{lib_cursor-projects_ts_0qt1scg._.js → lib_cursor-projects_ts_18-iwyk._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{lib_gemini-projects_ts_0sl~yqr._.js → lib_gemini-projects_ts_1c7bgx-._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{lib_opencode-projects_ts_0op9gyp._.js → lib_opencode-projects_ts_15bjxkm._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{lib_pi-projects_ts_103tsh1._.js → lib_pi-projects_ts_1wikofb._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{lib_utils_ts_068jk73._.js → lib_utils_ts_0az0sfq._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_1ynf7el._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_html2canvas_dist_html2canvas_esm_05gja40.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_html2canvas_dist_html2canvas_esm_1n-0xws.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_0rd0oc-._.js → node_modules_next_1a1kch7._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_0h9llsw._.js → node_modules_next_dist_0uboya6._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_11dij6w._.js → node_modules_next_dist_1d_onnt._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_client_components_0inhx6q._.js → node_modules_next_dist_client_components_0wpq8j3._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js → node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js → node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-uvagv.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03c7gi5.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09p-8om.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0v-kfiu.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0j79~gv.js → node_modules_next_dist_esm_build_templates_app-page_0xrgzyz.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1806lsc.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1j6dd-e.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1sa65r-.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_1ezd2jf._.js +5 -0
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_1tnuifj._.js +5 -0
- package/.next/standalone/.next/server/functions-config-manifest.json +3 -0
- package/.next/standalone/.next/server/instrumentation.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +10 -10
- package/.next/standalone/.next/server/middleware.js +2 -2
- package/.next/standalone/.next/server/next-font-manifest.js +1 -1
- package/.next/standalone/.next/server/next-font-manifest.json +2 -21
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +27 -9
- package/.next/standalone/.next/static/chunks/{07uz2g0_38qia.js → 03fmihek9n986.js} +1 -1
- package/.next/standalone/.next/static/chunks/09ueq8s1as8xs.css +2 -0
- package/.next/standalone/.next/static/chunks/0ehe4dh0grngk.js +41 -0
- package/.next/standalone/.next/static/chunks/{0bke.~atnsbeb.js → 0gdm-xaez4l7t.js} +1 -1
- package/.next/standalone/.next/static/chunks/{11w14gnqzprir.js → 0kdglk0vtzymo.js} +1 -1
- package/.next/standalone/.next/static/chunks/0qassxjx1ef04.js +1 -0
- package/.next/standalone/.next/static/chunks/0zbxssxh53n-3.js +1 -0
- package/.next/standalone/.next/static/chunks/13f1kmjea-0md.js +2 -0
- package/.next/standalone/.next/static/chunks/1btx2c49fk9xt.css +1 -0
- package/.next/standalone/.next/static/chunks/1fmco3pvq_twz.js +1 -0
- package/.next/standalone/.next/static/chunks/2b1fzuhuk-42n.js +1 -0
- package/.next/standalone/.next/static/chunks/{0bv1oyxspkpkb.js → 2dtip-mvmihiu.js} +1 -1
- package/.next/standalone/.next/static/chunks/2srzafd1_ha5y.js +1 -0
- package/.next/standalone/.next/static/chunks/{0d3shmwh5_nmn.js → 33u59vf_8xpd-.js} +1 -1
- package/.next/standalone/.next/static/chunks/3gti1qdk5epqn.js +1 -0
- package/.next/standalone/.next/static/chunks/{0dvhi-prcsh3~.js → 3krzy-lhwfrmz.js} +1 -1
- package/.next/standalone/.next/static/chunks/{17mubwtqwijpu.js → 3w8d8k_dca5rp.js} +1 -1
- package/.next/standalone/.next/static/chunks/43lnq0c1rnflb.js +6 -0
- package/.next/standalone/.next/static/chunks/{turbopack-0nh.aopesgj~5.js → turbopack-00qy7zfa7m--m.js} +1 -1
- package/.next/standalone/SECURITY.md +73 -0
- package/.next/standalone/app/actions/get-audit-result.ts +24 -0
- package/.next/standalone/app/api/audit/_state.ts +72 -0
- package/.next/standalone/app/api/audit/run/route.ts +89 -0
- package/.next/standalone/app/api/audit/status/route.ts +23 -0
- package/.next/standalone/app/api/auth/login-request/route.ts +91 -0
- package/.next/standalone/app/api/auth/login-verify/route.ts +98 -0
- package/.next/standalone/app/api/auth/logout/route.ts +48 -0
- package/.next/standalone/app/api/auth/reminder/route.ts +213 -0
- package/.next/standalone/app/api/auth/status/route.ts +42 -0
- package/.next/standalone/app/audit/_components/audit-dashboard.tsx +364 -0
- package/.next/standalone/app/audit/_components/auth-dialog.tsx +401 -0
- package/.next/standalone/app/audit/_components/empty-state.tsx +146 -0
- package/.next/standalone/app/audit/_components/findings-section.tsx +135 -0
- package/.next/standalone/app/audit/_components/identity-section.tsx +126 -0
- package/.next/standalone/app/audit/_components/policies-section.tsx +194 -0
- package/.next/standalone/app/audit/_components/report-footer.tsx +35 -0
- package/.next/standalone/app/audit/_components/rerun-button.tsx +81 -0
- package/.next/standalone/app/audit/_components/return-section.tsx +428 -0
- package/.next/standalone/app/audit/_components/run-progress.tsx +120 -0
- package/.next/standalone/app/audit/_components/score-section.tsx +179 -0
- package/.next/standalone/app/audit/_components/share-dock.tsx +265 -0
- package/.next/standalone/app/audit/_components/share-templates.ts +67 -0
- package/.next/standalone/app/audit/_components/show-off-cta.tsx +135 -0
- package/.next/standalone/app/audit/_components/sigil.tsx +93 -0
- package/.next/standalone/app/audit/_components/strengths-section.tsx +57 -0
- package/.next/standalone/app/audit/audit-styles.css +2066 -0
- package/.next/standalone/app/audit/loading.tsx +24 -0
- package/.next/standalone/app/audit/page.tsx +53 -0
- package/.next/standalone/app/globals.css +570 -137
- package/.next/standalone/app/layout.tsx +16 -9
- package/.next/standalone/app/policies/hooks-client.tsx +223 -129
- package/.next/standalone/app/project/[name]/page.tsx +89 -39
- package/.next/standalone/app/projects/loading.tsx +30 -8
- package/.next/standalone/app/projects/page.tsx +76 -18
- package/.next/standalone/assets/audit/Audit Report.html +22 -0
- package/.next/standalone/assets/audit/Show Off Your Agent.html +22 -0
- package/.next/standalone/assets/audit/archetypes.jsx +277 -0
- package/.next/standalone/assets/audit/assets/fonts/bitcount-prop-single.woff2 +0 -0
- package/.next/standalone/assets/audit/audit.jsx +825 -0
- package/.next/standalone/assets/audit/poster-styles.css +424 -0
- package/.next/standalone/assets/audit/poster.jsx +247 -0
- package/.next/standalone/assets/audit/screenshots/poster-optimist.png +0 -0
- package/.next/standalone/assets/audit/screenshots/poster-scrolled.png +0 -0
- package/.next/standalone/assets/audit/styles.css +1225 -0
- package/.next/standalone/assets/audit/tweaks-panel.jsx +425 -0
- package/.next/standalone/assets/logos/company/icon.svg +1 -0
- package/.next/standalone/assets/logos/company/logo.svg +1 -0
- package/.next/standalone/components/navbar.tsx +154 -65
- package/.next/standalone/components/reach-developers.tsx +37 -9
- package/.next/standalone/lib/atomic-write.ts +67 -0
- package/.next/standalone/lib/auth/api-server-client.ts +281 -0
- package/.next/standalone/lib/auth/auth-store.ts +250 -0
- package/.next/standalone/lib/client-telemetry.ts +2 -0
- package/.next/standalone/lib/fetch-with-timeout.ts +42 -0
- package/.next/standalone/lib/share-card.ts +120 -0
- package/.next/standalone/lib/telemetry.ts +12 -7
- 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/client/dev/debug-channel.js +102 -2
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +11 -11
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +13 -13
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +2 -2
- package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
- package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/.next/standalone/node_modules/next/dist/server/app-render/action-handler.js +18 -8
- package/.next/standalone/node_modules/next/dist/server/config-schema.js +1 -0
- 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/encode-cache-tag.js +45 -0
- package/.next/standalone/node_modules/next/dist/server/lib/implicit-tags.js +6 -3
- package/.next/standalone/node_modules/next/dist/server/lib/patch-fetch.js +5 -1
- package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/revalidate.js +4 -3
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +6 -2
- package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/.next/standalone/node_modules/next/package.json +15 -15
- package/.next/standalone/node_modules/react/cjs/react.development.js +1 -1
- 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 +3 -3
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +3 -3
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +3 -3
- 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/osv-scanner.toml +17 -0
- package/.next/standalone/package.json +8 -3
- package/.next/standalone/public/audit/fonts/bitcount-prop-single.woff2 +0 -0
- package/.next/standalone/public/icon.svg +1 -0
- package/.next/standalone/public/logo.svg +1 -0
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/templates/bitcount-font/README.md +42 -0
- package/.next/standalone/templates/bitcount-font/bitcount-prop-single.woff2 +0 -0
- package/.next/standalone/templates/bitcount-font/bitcount.css +49 -0
- package/.next/standalone/templates/bitcount-font/fonts.ts.example +23 -0
- package/README.md +2 -1
- package/bin/failproofai.mjs +165 -144
- package/dist/cli.mjs +607 -1858
- package/lib/atomic-write.ts +67 -0
- package/lib/auth/api-server-client.ts +281 -0
- package/lib/auth/auth-store.ts +250 -0
- package/lib/client-telemetry.ts +2 -0
- package/lib/fetch-with-timeout.ts +42 -0
- package/lib/share-card.ts +120 -0
- package/lib/telemetry.ts +12 -7
- package/package.json +8 -3
- package/scripts/install-telemetry.mjs +4 -0
- package/src/audit/archetypes.ts +924 -0
- package/src/audit/cache.ts +21 -2
- package/src/audit/dashboard-cache.ts +111 -0
- package/src/audit/features.ts +268 -0
- package/src/audit/findings.ts +298 -0
- package/src/audit/index.ts +39 -21
- package/src/audit/replay.ts +29 -3
- package/src/audit/scoring.ts +174 -0
- package/src/audit/strengths.ts +138 -0
- package/src/audit/types.ts +24 -1
- package/src/auth/cli.ts +359 -0
- package/src/hooks/builtin-policies.ts +2 -1
- package/src/hooks/hook-telemetry.ts +2 -2
- package/src/hooks/policy-registry.ts +20 -0
- package/src/posthog-key.ts +9 -0
- package/.next/standalone/.next/server/app/icon.png/route/app-paths-manifest.json +0 -3
- package/.next/standalone/.next/server/app/icon.png/route.js +0 -7
- package/.next/standalone/.next/server/app/icon.png/route.js.nft.json +0 -1
- package/.next/standalone/.next/server/app/icon.png.body +0 -0
- package/.next/standalone/.next/server/app/icon.png.meta +0 -1
- package/.next/standalone/.next/server/chunks/[externals]_next_dist_0sqmaqd._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__06.arfm._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0__i0h0._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fe7_q_._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fw.e.h._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pxn0e1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xv0jh2._.js +0 -3
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_icon_png_route_actions_12.gv.r.js +0 -3
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0bdfoky.js +0 -3
- package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_05pz9._._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01as125._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0370~qj._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09v.ljl._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0agrcb8._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b7hkr~._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ehh6vp._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g8l0tu._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0j4l6hl._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0k5n2kz._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0lp08ll._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n0yaqw._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0o21f.o._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0t8juvy._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0uylufv._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ymlddl._.js +0 -223
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~03grs._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_0cdqd9w._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +0 -8
- package/.next/standalone/.next/server/chunks/ssr/app_projects_loading_tsx_13veom4._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0ttbz1~._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_06u0kr8._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a_7sdg.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ef3uwk.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pbja1x.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0r6o0i2.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11y81~_.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12or2kf.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_0mebn66._.js +0 -3
- package/.next/standalone/.next/static/chunks/07kpqoo7kuckx.js +0 -6
- package/.next/standalone/.next/static/chunks/0azb~vy9ds_uy.js +0 -1
- package/.next/standalone/.next/static/chunks/0f5p9plm.aqlp.css +0 -2
- package/.next/standalone/.next/static/chunks/0ffvlbgzgnlw7.js +0 -2
- package/.next/standalone/.next/static/chunks/0spktq7xqab9h.js +0 -1
- package/.next/standalone/.next/static/chunks/118q3uljozd5z.js +0 -4
- package/.next/standalone/.next/static/chunks/12pt~2f.c1sha.js +0 -1
- package/.next/standalone/.next/static/media/4fa387ec64143e14-s.0.qu-9752pffj.woff2 +0 -0
- package/.next/standalone/.next/static/media/5ce348bf30bf5439-s.0ee55_hj9qcer.woff2 +0 -0
- package/.next/standalone/.next/static/media/6306c77e7c8268e4-s.0mao5jbfbduzp.woff2 +0 -0
- package/.next/standalone/.next/static/media/797e433ab948586e-s.p.09zddjkbdep5a.woff2 +0 -0
- package/.next/standalone/.next/static/media/7d817b4c03b0c5f1-s.0uzt.a6d44yda.woff2 +0 -0
- package/.next/standalone/.next/static/media/bbc41e54d2fcbd21-s.0mvwgmnhv29no.woff2 +0 -0
- package/.next/standalone/.next/static/media/icon.0a.gigb3_x5pd.png +0 -0
- package/.next/standalone/app/icon.png +0 -0
- package/src/audit/telemetry.ts +0 -113
- /package/.next/standalone/.next/server/app/{icon.png → api/audit/run}/route/build-manifest.json +0 -0
- /package/.next/standalone/.next/server/app/{icon.png → api/audit/run}/route.js.map +0 -0
- /package/.next/standalone/.next/static/chunks/{03~yq9q893hmn.js → 0cz1d0mv5g_q7.js} +0 -0
- /package/.next/standalone/.next/static/chunks/{0a40sy4tk8ioe.js → 0wwt5o04i4zwh.js} +0 -0
- /package/.next/standalone/.next/static/chunks/{0n1n67imq.udf.js → 1__i9af9g78vd.js} +0 -0
- /package/.next/standalone/.next/static/chunks/{0w6fzf.07a24u.js → 2so39wg7mjbi7.js} +0 -0
- /package/.next/standalone/.next/static/chunks/{0xbo5nl6w4lka.js → 2wbuxnsvux4di.js} +0 -0
- /package/.next/standalone/.next/static/chunks/{0_s0luks5tay-.js → 35fgpd_feci6x.js} +0 -0
- /package/.next/standalone/.next/static/chunks/{15fklyav5py5m.js → 3xpjn3cdgm-7m.js} +0 -0
- /package/.next/standalone/.next/static/chunks/{17.b3suj8zjjj.js → 4448_qq7bd963.js} +0 -0
- /package/.next/standalone/.next/static/{tGVQM5SE3NvbVu0gbAJm7 → wU3ot-EKa5ApKoh785wp8}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{tGVQM5SE3NvbVu0gbAJm7 → wU3ot-EKa5ApKoh785wp8}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{tGVQM5SE3NvbVu0gbAJm7 → wU3ot-EKa5ApKoh785wp8}/_ssgManifest.js +0 -0
|
@@ -13,7 +13,6 @@ import { notFound } from "next/navigation";
|
|
|
13
13
|
import { existsSync } from "fs";
|
|
14
14
|
import { stat } from "fs/promises";
|
|
15
15
|
import Link from "next/link";
|
|
16
|
-
import { ArrowLeft } from "lucide-react";
|
|
17
16
|
import { formatDate } from "@/lib/format-date";
|
|
18
17
|
import SessionsList from "@/app/components/sessions-list";
|
|
19
18
|
|
|
@@ -115,50 +114,101 @@ export default async function ProjectPage({ params }: ProjectPageProps) {
|
|
|
115
114
|
const displayPath = claudeExists && claudeProjectPath ? claudeProjectPath : canonicalRoot;
|
|
116
115
|
|
|
117
116
|
return (
|
|
118
|
-
<main className="
|
|
119
|
-
<
|
|
120
|
-
<
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
<div className="space-y-1">
|
|
133
|
-
<p className="text-muted-foreground">
|
|
134
|
-
<span className="font-medium">Path:</span> {displayPath}
|
|
135
|
-
</p>
|
|
136
|
-
{lastModifiedFormatted && (
|
|
137
|
-
<p className="text-muted-foreground">
|
|
138
|
-
<span className="font-medium">Modified:</span> {lastModifiedFormatted}
|
|
139
|
-
</p>
|
|
140
|
-
)}
|
|
117
|
+
<main className="report">
|
|
118
|
+
<section className="section" data-screen-label="project">
|
|
119
|
+
<div className="section-mast">
|
|
120
|
+
<Link
|
|
121
|
+
href="/projects"
|
|
122
|
+
className="btn"
|
|
123
|
+
style={{ fontSize: 11, letterSpacing: "0.18em", textTransform: "uppercase" }}
|
|
124
|
+
aria-label="Back to projects"
|
|
125
|
+
>
|
|
126
|
+
<span style={{ color: "var(--accent-pink)", letterSpacing: "-2px" }}>━━</span>
|
|
127
|
+
back to projects
|
|
128
|
+
</Link>
|
|
129
|
+
<div className="section-meta">
|
|
130
|
+
<span className="g">●</span> {sessionFiles.length} session{sessionFiles.length === 1 ? "" : "s"}
|
|
141
131
|
</div>
|
|
142
132
|
</div>
|
|
143
133
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
134
|
+
<h1
|
|
135
|
+
className="section-h"
|
|
136
|
+
style={{ textTransform: "none", marginBottom: 18, wordBreak: "break-word" }}
|
|
137
|
+
>
|
|
138
|
+
{canonicalRoot}
|
|
139
|
+
</h1>
|
|
147
140
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
141
|
+
<dl
|
|
142
|
+
style={{
|
|
143
|
+
display: "grid",
|
|
144
|
+
gridTemplateColumns: "auto 1fr",
|
|
145
|
+
gap: "8px 18px",
|
|
146
|
+
margin: "0 0 36px",
|
|
147
|
+
fontFamily: "var(--font-mono)",
|
|
148
|
+
fontSize: 12,
|
|
149
|
+
color: "var(--ink-2)",
|
|
150
|
+
}}
|
|
151
|
+
>
|
|
152
|
+
<dt
|
|
153
|
+
style={{
|
|
154
|
+
color: "var(--accent-green)",
|
|
155
|
+
letterSpacing: "0.2em",
|
|
156
|
+
textTransform: "uppercase",
|
|
157
|
+
fontSize: 10,
|
|
158
|
+
alignSelf: "center",
|
|
159
|
+
}}
|
|
160
|
+
>
|
|
161
|
+
path
|
|
162
|
+
</dt>
|
|
163
|
+
<dd style={{ margin: 0, wordBreak: "break-all" }}>{displayPath}</dd>
|
|
164
|
+
{lastModifiedFormatted && (
|
|
165
|
+
<>
|
|
166
|
+
<dt
|
|
167
|
+
style={{
|
|
168
|
+
color: "var(--accent-green)",
|
|
169
|
+
letterSpacing: "0.2em",
|
|
170
|
+
textTransform: "uppercase",
|
|
171
|
+
fontSize: 10,
|
|
172
|
+
alignSelf: "center",
|
|
173
|
+
}}
|
|
174
|
+
>
|
|
175
|
+
modified
|
|
176
|
+
</dt>
|
|
177
|
+
<dd style={{ margin: 0 }}>{lastModifiedFormatted}</dd>
|
|
178
|
+
</>
|
|
159
179
|
)}
|
|
180
|
+
</dl>
|
|
181
|
+
|
|
182
|
+
<div className="section-mast" style={{ marginBottom: 18 }}>
|
|
183
|
+
<div className="section-label">
|
|
184
|
+
<span className="glyph">━━</span> sessions
|
|
185
|
+
</div>
|
|
160
186
|
</div>
|
|
161
|
-
|
|
187
|
+
|
|
188
|
+
{sessionFiles.length === 0 ? (
|
|
189
|
+
<div
|
|
190
|
+
className="panel"
|
|
191
|
+
style={{ textAlign: "center", padding: "48px 32px" }}
|
|
192
|
+
>
|
|
193
|
+
<p style={{ color: "var(--ink-2)", marginBottom: 8 }}>
|
|
194
|
+
no .jsonl files found in this project.
|
|
195
|
+
</p>
|
|
196
|
+
<p
|
|
197
|
+
style={{
|
|
198
|
+
color: "var(--dim)",
|
|
199
|
+
fontSize: 12,
|
|
200
|
+
letterSpacing: "0.05em",
|
|
201
|
+
}}
|
|
202
|
+
>
|
|
203
|
+
session files will appear here once they are created.
|
|
204
|
+
</p>
|
|
205
|
+
</div>
|
|
206
|
+
) : (
|
|
207
|
+
<div className="panel" style={{ padding: 0 }}>
|
|
208
|
+
<Suspense><SessionsList files={sessionFiles} projectName={name} /></Suspense>
|
|
209
|
+
</div>
|
|
210
|
+
)}
|
|
211
|
+
</section>
|
|
162
212
|
</main>
|
|
163
213
|
);
|
|
164
214
|
}
|
|
@@ -1,17 +1,39 @@
|
|
|
1
|
-
/** Skeleton loading UI for the projects page
|
|
1
|
+
/** Skeleton loading UI for the projects page — audit-styled to match
|
|
2
|
+
* the dashed `.panel` chrome of the loaded state. Staggered fade-in on the
|
|
3
|
+
* rows gives the skeleton its own rhythm rather than every bar blinking in
|
|
4
|
+
* lockstep. */
|
|
2
5
|
export default function ProjectsLoading() {
|
|
3
6
|
return (
|
|
4
|
-
<main className="
|
|
5
|
-
<
|
|
6
|
-
<div className="
|
|
7
|
-
<div className="
|
|
8
|
-
|
|
7
|
+
<main className="report">
|
|
8
|
+
<section className="section" data-screen-label="projects">
|
|
9
|
+
<div className="section-mast">
|
|
10
|
+
<div className="section-label">
|
|
11
|
+
<span className="glyph">━━</span> projects
|
|
12
|
+
</div>
|
|
13
|
+
<div
|
|
14
|
+
className="section-meta"
|
|
15
|
+
aria-live="polite"
|
|
16
|
+
aria-busy="true"
|
|
17
|
+
>
|
|
18
|
+
<span className="p">●</span> loading…
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
<h2 className="section-h" style={{ textTransform: "none" }}>
|
|
22
|
+
your agent footprint.
|
|
23
|
+
</h2>
|
|
24
|
+
<div className="panel" style={{ padding: 24 }}>
|
|
25
|
+
<div className="bg-muted h-6 w-40 mb-5 animate-pulse" />
|
|
26
|
+
<div className="space-y-2">
|
|
9
27
|
{Array.from({ length: 8 }).map((_, i) => (
|
|
10
|
-
<div
|
|
28
|
+
<div
|
|
29
|
+
key={i}
|
|
30
|
+
className="bg-muted/50 h-10 audit-row-enter"
|
|
31
|
+
style={{ ["--row-delay" as string]: `${i * 60}ms` }}
|
|
32
|
+
/>
|
|
11
33
|
))}
|
|
12
34
|
</div>
|
|
13
35
|
</div>
|
|
14
|
-
</
|
|
36
|
+
</section>
|
|
15
37
|
</main>
|
|
16
38
|
);
|
|
17
39
|
}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
/** Projects page — lists all Claude Agent SDK project folders.
|
|
1
|
+
/** Projects page — lists all Claude Agent SDK project folders.
|
|
2
|
+
*
|
|
3
|
+
* Wrapped in the audit `.report` + `.section` chrome so the page picks up
|
|
4
|
+
* the unified design system: mono fonts, section masthead with the ━━
|
|
5
|
+
* glyph + green eyebrow label, and the dashed-frame `.panel` around the
|
|
6
|
+
* project list when it's populated. The inner ProjectList component is
|
|
7
|
+
* unchanged — every Tailwind utility it uses (bg-card, text-foreground,
|
|
8
|
+
* border-border, …) now resolves to the audit palette globally.
|
|
9
|
+
*/
|
|
2
10
|
import { Suspense } from "react";
|
|
3
11
|
import { notFound } from "next/navigation";
|
|
4
12
|
import { getCachedProjectFolders } from "@/lib/projects";
|
|
@@ -13,27 +21,77 @@ export default async function ProjectsPage() {
|
|
|
13
21
|
if (disabled.includes("projects")) notFound();
|
|
14
22
|
|
|
15
23
|
const folders = await getCachedProjectFolders();
|
|
24
|
+
const count = folders.length;
|
|
16
25
|
|
|
17
26
|
return (
|
|
18
|
-
<main className="
|
|
19
|
-
<
|
|
20
|
-
<div className="
|
|
21
|
-
<
|
|
27
|
+
<main className="report">
|
|
28
|
+
<section className="section" data-screen-label="projects">
|
|
29
|
+
<div className="section-mast">
|
|
30
|
+
<div className="section-label">
|
|
31
|
+
<span className="glyph">━━</span> projects
|
|
32
|
+
</div>
|
|
33
|
+
<div className="section-meta">
|
|
34
|
+
<span className={count > 0 ? "g" : "p"}>●</span>{" "}
|
|
35
|
+
{count} {count === 1 ? "folder" : "folders"}
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
<h2 className="section-h" style={{ textTransform: "none" }}>
|
|
39
|
+
your agent footprint.
|
|
40
|
+
</h2>
|
|
22
41
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
42
|
+
{count === 0 ? (
|
|
43
|
+
<div
|
|
44
|
+
className="panel"
|
|
45
|
+
style={{ textAlign: "center", padding: "56px 32px" }}
|
|
46
|
+
>
|
|
47
|
+
<div aria-hidden="true" style={{ marginBottom: 20 }}>
|
|
48
|
+
<div
|
|
49
|
+
style={{
|
|
50
|
+
display: "inline-grid",
|
|
51
|
+
gridTemplateColumns: "repeat(6, 10px)",
|
|
52
|
+
gridTemplateRows: "repeat(6, 10px)",
|
|
53
|
+
gap: 2,
|
|
54
|
+
padding: 12,
|
|
55
|
+
border: "1px solid var(--line-2)",
|
|
56
|
+
background: "var(--bg)",
|
|
57
|
+
boxShadow: "4px 4px 0 0 var(--accent-pink-shadow)",
|
|
58
|
+
}}
|
|
59
|
+
>
|
|
60
|
+
{Array.from({ length: 36 }).map((_, i) => {
|
|
61
|
+
// a sparse "empty box" glyph
|
|
62
|
+
const on = [0, 5, 30, 35, 7, 10, 25, 28].includes(i);
|
|
63
|
+
return (
|
|
64
|
+
<span
|
|
65
|
+
key={i}
|
|
66
|
+
style={{
|
|
67
|
+
background: on ? "var(--dim)" : "transparent",
|
|
68
|
+
}}
|
|
69
|
+
/>
|
|
70
|
+
);
|
|
71
|
+
})}
|
|
72
|
+
</div>
|
|
31
73
|
</div>
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
74
|
+
<p style={{ color: "var(--ink-2)", marginBottom: 8 }}>
|
|
75
|
+
no projects found in the <code style={{ color: "var(--accent-pink)" }}>.claude/projects</code> directory.
|
|
76
|
+
</p>
|
|
77
|
+
<p
|
|
78
|
+
style={{
|
|
79
|
+
color: "var(--dim)",
|
|
80
|
+
fontSize: 12,
|
|
81
|
+
letterSpacing: "0.05em",
|
|
82
|
+
}}
|
|
83
|
+
>
|
|
84
|
+
run an agent in any folder and it will show up here.
|
|
85
|
+
</p>
|
|
86
|
+
</div>
|
|
87
|
+
) : (
|
|
88
|
+
<div className="panel" style={{ padding: 0 }}>
|
|
89
|
+
<Suspense>
|
|
90
|
+
<ProjectList folders={folders} />
|
|
91
|
+
</Suspense>
|
|
92
|
+
</div>
|
|
93
|
+
)}
|
|
94
|
+
</section>
|
|
37
95
|
</main>
|
|
38
96
|
);
|
|
39
97
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>failproof_ai — audit · blrnow / api-coder</title>
|
|
7
|
+
<link rel="icon" type="image/svg+xml" href="assets/favicon.svg">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
+
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=VT323&display=swap" rel="stylesheet">
|
|
11
|
+
<link rel="stylesheet" href="styles.css">
|
|
12
|
+
<script src="https://unpkg.com/react@18.3.1/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script>
|
|
13
|
+
<script src="https://unpkg.com/react-dom@18.3.1/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script>
|
|
14
|
+
<script src="https://unpkg.com/@babel/standalone@7.29.0/babel.min.js" integrity="sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y" crossorigin="anonymous"></script>
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
<div id="root"></div>
|
|
18
|
+
<script type="text/babel" src="tweaks-panel.jsx"></script>
|
|
19
|
+
<script type="text/babel" src="archetypes.jsx"></script>
|
|
20
|
+
<script type="text/babel" src="audit.jsx"></script>
|
|
21
|
+
</body>
|
|
22
|
+
</html>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>failproof_ai — show off your agent</title>
|
|
7
|
+
<link rel="icon" type="image/svg+xml" href="assets/favicon.svg">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
+
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=VT323&display=swap" rel="stylesheet">
|
|
11
|
+
<link rel="stylesheet" href="styles.css">
|
|
12
|
+
<link rel="stylesheet" href="poster-styles.css">
|
|
13
|
+
<script src="https://unpkg.com/react@18.3.1/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script>
|
|
14
|
+
<script src="https://unpkg.com/react-dom@18.3.1/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script>
|
|
15
|
+
<script src="https://unpkg.com/@babel/standalone@7.29.0/babel.min.js" integrity="sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y" crossorigin="anonymous"></script>
|
|
16
|
+
</head>
|
|
17
|
+
<body>
|
|
18
|
+
<div id="root"></div>
|
|
19
|
+
<script type="text/babel" src="archetypes.jsx"></script>
|
|
20
|
+
<script type="text/babel" src="poster.jsx"></script>
|
|
21
|
+
</body>
|
|
22
|
+
</html>
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// failproof_ai — audit report: archetype catalog
|
|
3
|
+
// 8 archetypes. Each has its own pixel-sigil and behavioral data.
|
|
4
|
+
// ============================================================
|
|
5
|
+
|
|
6
|
+
// 8x8 pixel sigil grids. legend:
|
|
7
|
+
// . = empty o = ink p = pink g = green d = dim
|
|
8
|
+
// Designed to feel like the brand's pixel-agent vocabulary —
|
|
9
|
+
// chunky, abstract, each glyph reads in <1s.
|
|
10
|
+
|
|
11
|
+
const SIGILS = {
|
|
12
|
+
optimist: [
|
|
13
|
+
"........",
|
|
14
|
+
"...p....",
|
|
15
|
+
"..p.p...",
|
|
16
|
+
".p...p..",
|
|
17
|
+
"p.....p.",
|
|
18
|
+
"..ooo...",
|
|
19
|
+
"..o.o...",
|
|
20
|
+
".oo.oo..",
|
|
21
|
+
],
|
|
22
|
+
cowboy: [
|
|
23
|
+
"..pppp..",
|
|
24
|
+
".p....p.",
|
|
25
|
+
"p..pp..p",
|
|
26
|
+
"pppppppp",
|
|
27
|
+
"..o..o..",
|
|
28
|
+
"..o..o..",
|
|
29
|
+
".oo..oo.",
|
|
30
|
+
"........",
|
|
31
|
+
],
|
|
32
|
+
explorer: [
|
|
33
|
+
"..pppp..",
|
|
34
|
+
".p.gg.p.",
|
|
35
|
+
"p.g..g.p",
|
|
36
|
+
"p.g..g.p",
|
|
37
|
+
".p.gg.pp",
|
|
38
|
+
"..pppp.p",
|
|
39
|
+
"........",
|
|
40
|
+
"........",
|
|
41
|
+
],
|
|
42
|
+
goldfish: [
|
|
43
|
+
"....p...",
|
|
44
|
+
"..oooop.",
|
|
45
|
+
".ooooopp",
|
|
46
|
+
"ooooooop",
|
|
47
|
+
".oooooo.",
|
|
48
|
+
"..ooo...",
|
|
49
|
+
".o...o..",
|
|
50
|
+
"o.....o.",
|
|
51
|
+
],
|
|
52
|
+
architect: [
|
|
53
|
+
"oooooooo",
|
|
54
|
+
"o......o",
|
|
55
|
+
"o.pppp.o",
|
|
56
|
+
"o.p..p.o",
|
|
57
|
+
"o.p..p.o",
|
|
58
|
+
"o.pppp.o",
|
|
59
|
+
"o......o",
|
|
60
|
+
"oooooooo",
|
|
61
|
+
],
|
|
62
|
+
precision: [
|
|
63
|
+
"...gg...",
|
|
64
|
+
"...gg...",
|
|
65
|
+
"........",
|
|
66
|
+
"gg...gg.",
|
|
67
|
+
"gg.gg.gg",
|
|
68
|
+
"...gg...",
|
|
69
|
+
"...gg...",
|
|
70
|
+
"........",
|
|
71
|
+
],
|
|
72
|
+
hammer: [
|
|
73
|
+
"..ooooo.",
|
|
74
|
+
".oppppo.",
|
|
75
|
+
".oppppo.",
|
|
76
|
+
"..o..o..",
|
|
77
|
+
"...oo...",
|
|
78
|
+
"...oo...",
|
|
79
|
+
"...oo...",
|
|
80
|
+
"..pppp..",
|
|
81
|
+
],
|
|
82
|
+
ghost: [
|
|
83
|
+
"..dddd..",
|
|
84
|
+
".dddddd.",
|
|
85
|
+
"ddpd.pd.",
|
|
86
|
+
"ddddddd.",
|
|
87
|
+
"ddddddd.",
|
|
88
|
+
"ddddddd.",
|
|
89
|
+
"d.d.d.d.",
|
|
90
|
+
".d...d..",
|
|
91
|
+
],
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const ARCHETYPES = {
|
|
95
|
+
optimist: {
|
|
96
|
+
key: "optimist",
|
|
97
|
+
index: "01",
|
|
98
|
+
name: "the optimist",
|
|
99
|
+
tagline: "ships fast. retries with conviction. occasionally forgets it was already there.",
|
|
100
|
+
keywords: ["pace", "conviction", "forgetful"],
|
|
101
|
+
description:
|
|
102
|
+
"moves at pace. doesn't second-guess itself — which is mostly a feature. when something fails, it tries again: same args, same hope. when uncertain about its location, it prepends the directory anyway. just in case. the optimism is earned. this agent gets things done. it just occasionally burns tokens proving it.",
|
|
103
|
+
signature: [
|
|
104
|
+
{ arrow: "→", body: "cd /Users/n/blrnow/api &&", comment: " # (already here)" },
|
|
105
|
+
{ arrow: "→", body: 'read_file("src/api/router.ts")', err: " → ENOENT × 6" },
|
|
106
|
+
{ arrow: "→", body: "retries: 6. diagnosis: 0." },
|
|
107
|
+
],
|
|
108
|
+
common: "fast-iteration solo projects, early-stage prototypes, builders who ship daily",
|
|
109
|
+
risk: "token waste, retry spirals, stale state assumptions",
|
|
110
|
+
closing: "the optimism is a feature. the waste is not.",
|
|
111
|
+
secondary: "explorer",
|
|
112
|
+
},
|
|
113
|
+
cowboy: {
|
|
114
|
+
key: "cowboy",
|
|
115
|
+
index: "02",
|
|
116
|
+
name: "the cowboy",
|
|
117
|
+
tagline: "asks for forgiveness, not permission. git push --force is a philosophy.",
|
|
118
|
+
keywords: ["bold", "forceful", "ungoverned"],
|
|
119
|
+
description:
|
|
120
|
+
"high output. low ceremony. the cowboy gets code onto main faster than anyone — and your branch protection rules are the only thing standing between this agent and your production database. not reckless. just confident. in a way that requires guardrails.",
|
|
121
|
+
signature: [
|
|
122
|
+
{ arrow: "→", body: "git push origin main --force" },
|
|
123
|
+
{ arrow: "!", body: "remote: branch protection rule", comment: " # caught it" },
|
|
124
|
+
{ arrow: "→", body: "git push origin HEAD:main", err: " # non-fast-forward, again." },
|
|
125
|
+
],
|
|
126
|
+
common: "solo repos, weekend projects, founders writing their own infra",
|
|
127
|
+
risk: "branch protection bypass, accidental main commits, revert overhead",
|
|
128
|
+
closing: "the pace is real. the risk is too.",
|
|
129
|
+
secondary: "hammer",
|
|
130
|
+
},
|
|
131
|
+
explorer: {
|
|
132
|
+
key: "explorer",
|
|
133
|
+
index: "03",
|
|
134
|
+
name: "the explorer",
|
|
135
|
+
tagline: "technically brilliant. occasionally reads your ~/.aws/credentials while doing it.",
|
|
136
|
+
keywords: ["curious", "thorough", "leaky"],
|
|
137
|
+
description:
|
|
138
|
+
"curious by nature. reads broadly, thinks laterally, sometimes follows a symlink somewhere it wasn't meant to go. this isn't malice — it's thoroughness that hasn't learned boundaries yet. the explorer builds great things. it just occasionally needs someone to close the door to the secrets drawer.",
|
|
139
|
+
signature: [
|
|
140
|
+
{ arrow: "→", body: "cat /Users/n/.aws/credentials" },
|
|
141
|
+
{ arrow: "→", body: "cat ../other-repo/.env" },
|
|
142
|
+
{ arrow: "→", body: "cat ~/.config/openai/key" },
|
|
143
|
+
],
|
|
144
|
+
common: "multi-project setups, agents with broad file access, complex monorepos",
|
|
145
|
+
risk: "credential exposure, unintended cross-project reads, secrets landing in context",
|
|
146
|
+
closing: "the curiosity stays. the credentials stay private.",
|
|
147
|
+
secondary: "architect",
|
|
148
|
+
},
|
|
149
|
+
goldfish: {
|
|
150
|
+
key: "goldfish",
|
|
151
|
+
index: "04",
|
|
152
|
+
name: "the goldfish",
|
|
153
|
+
tagline: "long sessions, short memory. every turn is a fresh start. some turns are a little too fresh.",
|
|
154
|
+
keywords: ["ambitious", "drifting", "inventive"],
|
|
155
|
+
description:
|
|
156
|
+
"great at long tasks. not great at remembering which long task it's on. past 80% context, the goldfish starts inventing history — citing files it never opened, referencing edits it never made. not lying. just filling gaps with confidence. the longer the session, the more creative the memory.",
|
|
157
|
+
signature: [
|
|
158
|
+
{ comment: "# turn 47/52 — ctx 82% full" },
|
|
159
|
+
{ comment: '# agent: "as we saw earlier in auth.ts…"' },
|
|
160
|
+
{ comment: "# auth.ts was never opened this session." },
|
|
161
|
+
],
|
|
162
|
+
common: "long-running refactor sessions, complex multi-file tasks, agents without session breaks",
|
|
163
|
+
risk: "context drift, hallucinated prior work, compounding errors in long sessions",
|
|
164
|
+
closing: "the ambition is good. the context budget is not.",
|
|
165
|
+
secondary: "optimist",
|
|
166
|
+
},
|
|
167
|
+
architect: {
|
|
168
|
+
key: "architect",
|
|
169
|
+
index: "05",
|
|
170
|
+
name: "the paranoid architect",
|
|
171
|
+
tagline: "has never shipped a bug it didn't catch first. also hasn't shipped since tuesday.",
|
|
172
|
+
keywords: ["methodical", "safe", "slow"],
|
|
173
|
+
description:
|
|
174
|
+
"methodical. thorough. reads the same file from two different paths, just to be sure. verifies before every write. double-checks the package.json before running anything. the paranoid architect rarely makes mistakes — because it rarely finishes fast enough to make them. your safest agent. your slowest agent.",
|
|
175
|
+
signature: [
|
|
176
|
+
{ arrow: "→", body: 'read_file("src/api/router.ts")', comment: " # read 1" },
|
|
177
|
+
{ arrow: "→", body: 'read_file("./src/api/router.ts")', comment: " # read 2" },
|
|
178
|
+
{ arrow: "→", body: "ls src/api/", comment: " # just confirming" },
|
|
179
|
+
],
|
|
180
|
+
common: "production systems, high-stakes codebases, builders with strong safety instincts",
|
|
181
|
+
risk: "token overhead, slow sessions, redundant verification loops",
|
|
182
|
+
closing: "safety is a feature. so is finishing.",
|
|
183
|
+
secondary: "precision",
|
|
184
|
+
},
|
|
185
|
+
precision: {
|
|
186
|
+
key: "precision",
|
|
187
|
+
index: "06",
|
|
188
|
+
name: "the precision builder",
|
|
189
|
+
tagline: "in. done. out. your agent doesn't linger.",
|
|
190
|
+
keywords: ["clean", "focused", "minimal"],
|
|
191
|
+
description:
|
|
192
|
+
"minimal footprint. focused calls. gets in, does the work, gets out. the precision builder is what every agent aspires to be — and what most agents aren't yet. few findings don't mean no findings. but it means your agent has found its rhythm. the gap between here and s-tier is smaller than you think.",
|
|
193
|
+
signature: [
|
|
194
|
+
{ arrow: "→", body: "clean tool calls. right paths, right args." },
|
|
195
|
+
{ arrow: "→", body: "sessions end when the task ends." },
|
|
196
|
+
{ arrow: "→", body: "no redundant reads. no retry storms." },
|
|
197
|
+
],
|
|
198
|
+
common: "mature agents, heavily policy-enforced setups, builders who've iterated for a while",
|
|
199
|
+
risk: "low finding count can mask edge cases that haven't surfaced yet",
|
|
200
|
+
closing: "rare. keep it that way.",
|
|
201
|
+
secondary: "ghost",
|
|
202
|
+
},
|
|
203
|
+
hammer: {
|
|
204
|
+
key: "hammer",
|
|
205
|
+
index: "07",
|
|
206
|
+
name: "the hammer",
|
|
207
|
+
tagline: "when something doesn't work, it tries the exact same thing again. harder.",
|
|
208
|
+
keywords: ["determined", "repetitive", "unbacked"],
|
|
209
|
+
description:
|
|
210
|
+
"determined. possibly to a fault. the hammer's first response to failure is repetition. no diagnosis, no arg change, no backoff. just the same call, six times, under 90 seconds, with conviction. occasionally works. mostly burns tokens and stalls the session. needs a budget more than it needs encouragement.",
|
|
211
|
+
signature: [
|
|
212
|
+
{ arrow: "→", body: 'read_file("src/api/router.ts")', err: " → ENOENT" },
|
|
213
|
+
{ arrow: "→", body: 'read_file("src/api/router.ts")', err: " → ENOENT" },
|
|
214
|
+
{ arrow: "→", body: 'read_file("src/api/router.ts")', err: " → ENOENT" },
|
|
215
|
+
{ comment: "# 6× total. file is at src/router.ts." },
|
|
216
|
+
],
|
|
217
|
+
common: "agents without failure-handling policies, complex directory structures, ambiguous task framing",
|
|
218
|
+
risk: "token spirals, stalled sessions, no diagnostic signal ever surfaces",
|
|
219
|
+
closing: "the conviction is good. the diagnosis is missing.",
|
|
220
|
+
secondary: "optimist",
|
|
221
|
+
},
|
|
222
|
+
ghost: {
|
|
223
|
+
key: "ghost",
|
|
224
|
+
index: "08",
|
|
225
|
+
name: "the ghost",
|
|
226
|
+
tagline: "moves fast, leaves little trace. sometimes leaves a little too little trace.",
|
|
227
|
+
keywords: ["efficient", "quiet", "unverified"],
|
|
228
|
+
description:
|
|
229
|
+
"efficient. clean. doesn't hang around. the ghost completes tasks with minimal overhead — no redundant reads, no retry storms, no boundary drift. the risk is quiet: it doesn't always check that things worked. the build passes. or it looks like it does. the ghost trusts its own output more than it should.",
|
|
230
|
+
signature: [
|
|
231
|
+
{ arrow: "→", body: 'write_file("src/api/router.ts")', comment: " # done" },
|
|
232
|
+
{ comment: "→ [no read_file to verify]" },
|
|
233
|
+
{ comment: "→ [no test run after write]" },
|
|
234
|
+
{ comment: "# task complete. # maybe." },
|
|
235
|
+
],
|
|
236
|
+
common: "fast-moving solo projects, low-constraint CLAUDE.md setups, minimal oversight workflows",
|
|
237
|
+
risk: "silent failures, unverified writes, false completion signals",
|
|
238
|
+
closing: "fast is good. verified-fast is better.",
|
|
239
|
+
secondary: "precision",
|
|
240
|
+
},
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
const ARCHETYPE_ORDER = ["optimist", "cowboy", "explorer", "goldfish", "architect", "precision", "hammer", "ghost"];
|
|
244
|
+
|
|
245
|
+
// Pixel sigil component — renders an 8x8 grid from a SIGILS entry
|
|
246
|
+
function Sigil({ archetypeKey }) {
|
|
247
|
+
// Normalize once so every downstream lookup (SIGILS, ARCHETYPES) hits the
|
|
248
|
+
// same safe key. Previously the SIGILS lookup had a fallback but the index
|
|
249
|
+
// line still indexed ARCHETYPES[archetypeKey] directly, which crashed on
|
|
250
|
+
// an unknown key (TypeError: Cannot read properties of undefined).
|
|
251
|
+
const safeKey = ARCHETYPES[archetypeKey] ? archetypeKey : "optimist";
|
|
252
|
+
const grid = SIGILS[safeKey] || SIGILS.optimist;
|
|
253
|
+
const cells = [];
|
|
254
|
+
for (let y = 0; y < 8; y++) {
|
|
255
|
+
const row = grid[y] || "........";
|
|
256
|
+
for (let x = 0; x < 8; x++) {
|
|
257
|
+
const c = row[x] || ".";
|
|
258
|
+
let cls = "px";
|
|
259
|
+
if (c === "o") cls += " on";
|
|
260
|
+
else if (c === "p") cls += " p";
|
|
261
|
+
else if (c === "g") cls += " g";
|
|
262
|
+
else if (c === "d") cls += " d";
|
|
263
|
+
cells.push(<div key={y * 8 + x} className={cls} />);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return (
|
|
267
|
+
<div className="sigil-wrap">
|
|
268
|
+
<div className="sigil">{cells}</div>
|
|
269
|
+
<div className="sigil-label">
|
|
270
|
+
<span className="ix">№{ARCHETYPES[safeKey].index}</span>
|
|
271
|
+
sigil
|
|
272
|
+
</div>
|
|
273
|
+
</div>
|
|
274
|
+
);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
Object.assign(window, { ARCHETYPES, ARCHETYPE_ORDER, SIGILS, Sigil });
|