failproofai 0.0.9-beta.1 → 0.0.9
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 +6 -6
- 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 +3 -3
- package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +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 +3 -3
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_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 +1 -1
- package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +1 -2
- package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
- 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 +1 -1
- package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/policies/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
- package/.next/standalone/.next/server/app/policies/page.js +2 -2
- 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 +3 -3
- 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 +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +3 -3
- 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 +4 -3
- 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 +3 -3
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js +2 -2
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0su~k6f._.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_codex-projects_ts_07qqk1g._.js +3 -0
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01743wx._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0.f_cyx._.js → [root-of-the-server]__01g_w_e._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0dub28-._.js → [root-of-the-server]__0_b7pgn._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gs6wz4._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0it81ys._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0u4a9jq._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ymlddl._.js +18 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12.h2mg._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_04w00cm._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_0cdqd9w._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/lib_codex-projects_ts_0eosib~._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/lib_utils_ts_068jk73._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0zaq1hm._.js → node_modules_0ttbz1~._.js} +2 -2
- package/.next/standalone/.next/server/middleware-build-manifest.js +6 -6
- package/.next/standalone/.next/server/pages/404.html +2 -2
- 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 +9 -9
- package/.next/standalone/.next/static/chunks/{0_c_yox08g_44.js → 01q52wg_amm60.js} +2 -2
- package/.next/standalone/.next/static/chunks/06x4-d1~o-opr.js +1 -0
- package/.next/standalone/.next/static/chunks/{0bghqwo4iloy0.js → 0756i.7omnnl6.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0p5zh2diw90a1.js → 095l4hc7-h.~~.js} +1 -1
- package/.next/standalone/.next/static/chunks/09ose_165ra4d.js +1 -0
- package/.next/standalone/.next/static/chunks/0n-_j_6fo6jex.js +6 -0
- package/.next/standalone/.next/static/chunks/0n~s0gafwnp2y.js +1 -0
- package/.next/standalone/.next/static/chunks/{0ufq8smh~i7wc.js → 0pr7k36o_.du1.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0z-jh701rc~j8.js → 0t~iusm_fxoao.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0jryicwtm9z2g.js → 0u-ys71jc4y68.js} +3 -3
- package/.next/standalone/.next/static/chunks/0zig0fh30t6ou.js +1 -0
- package/.next/standalone/.next/static/chunks/{0w1f.k~gi-y6..js → 11kt_9zaooda3.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0kzk5-mh1_x53.js → 12simlrcfk3g2.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0s36is87fc9r2.js → turbopack-0o7k.hakttp4k.js} +1 -1
- package/.next/standalone/app/components/cli-badge.tsx +24 -0
- package/.next/standalone/app/components/project-list.tsx +13 -7
- package/.next/standalone/app/components/sessions-list.tsx +4 -2
- package/.next/standalone/app/policies/hooks-client.tsx +66 -10
- package/.next/standalone/app/project/[name]/page.tsx +49 -22
- package/.next/standalone/app/project/[name]/session/[sessionId]/page.tsx +51 -19
- package/.next/standalone/components/reach-developers.tsx +6 -1
- package/.next/standalone/lib/codex-projects.ts +250 -0
- package/.next/standalone/lib/codex-sessions.ts +414 -0
- package/.next/standalone/lib/format-date.ts +21 -0
- package/.next/standalone/lib/log-entries.ts +3 -3
- package/.next/standalone/lib/paths.ts +13 -0
- package/.next/standalone/lib/projects.ts +57 -3
- package/.next/standalone/lib/utils.ts +6 -22
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/server.js +1 -1
- package/bin/failproofai.mjs +1 -0
- package/dist/cli.mjs +1042 -122
- package/lib/codex-projects.ts +250 -0
- package/lib/codex-sessions.ts +414 -0
- package/lib/format-date.ts +21 -0
- package/lib/log-entries.ts +3 -3
- package/lib/paths.ts +13 -0
- package/lib/projects.ts +57 -3
- package/lib/utils.ts +6 -22
- package/package.json +1 -1
- package/scripts/launch.ts +2 -1
- package/src/hooks/builtin-policies.ts +7 -1
- package/src/hooks/hook-activity-store.ts +3 -0
- package/src/hooks/manager.ts +1 -1
- package/src/hooks/resolve-permission-mode.ts +6 -91
- package/.next/standalone/.next/server/chunks/[externals]__080wern._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b57.gk._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03rd.z8._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e74wa-._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vu.o-3._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +0 -17
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zqcovi._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__105.l_7._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0uy6m~m._.js +0 -3
- package/.next/standalone/.next/static/chunks/00b5h4r1el.6f.js +0 -1
- package/.next/standalone/.next/static/chunks/0fw2h.g66c0h3.js +0 -1
- package/.next/standalone/.next/static/chunks/0gu87mlr5ssnt.js +0 -6
- package/.next/standalone/.next/static/chunks/0igf3xbisp1lx.js +0 -1
- package/.next/standalone/.next/static/chunks/0vwqucikost_q.js +0 -1
- /package/.next/standalone/.next/static/{CiVeb_yiVt-O2JYrzGzB7 → A_Ax17P33facL0OmIwFXj}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{CiVeb_yiVt-O2JYrzGzB7 → A_Ax17P33facL0OmIwFXj}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{CiVeb_yiVt-O2JYrzGzB7 → A_Ax17P33facL0OmIwFXj}/_ssgManifest.js +0 -0
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
module.exports=[12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},57764,(a,b,c)=>{b.exports=a.x("node:url",()=>require("node:url"))},92509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},11369,a=>{"use strict";var b=a.i(36359),c=a.i(7292),d=a.i(37936),e=a.i(2157),f=a.i(50227),g=a.i(60526);let h={info:0,warn:1,error:2},i=(0,f.join)((0,g.homedir)(),".failproofai","logs"),j=!1,k="warn",l=!1,m=i;function n(a){return!function(){if(j)return;j=!0;let a=(process.env.FAILPROOFAI_LOG_LEVEL??"").toLowerCase();("info"===a||"warn"===a||"error"===a)&&(k=a);let b=(process.env.FAILPROOFAI_HOOK_LOG_FILE??"").trim();b&&(l=!0,"1"!==b&&"true"!==b&&(m=b))}(),h[a]>=h[k]}function o(a,b){process.stderr.write(`[failproofai:hook] ${a} ${b}
|
|
2
|
-
`)}function p(a,b){if(l)try{(0,e.existsSync)(m)||(0,e.mkdirSync)(m,{recursive:!0});let c=(0,f.join)(m,"hooks.log");try{if((0,e.statSync)(c).size>=524288){let a=`hooks-${Date.now()}.log`;(0,e.renameSync)(c,(0,f.join)(m,a))}}catch{}let d=new Date().toISOString(),g=`[${d}] ${a} ${b}
|
|
3
|
-
`;(0,e.appendFileSync)(c,g,"utf-8")}catch{}}function q(a){n("warn")&&(o("WARN",a),p("WARN",a))}function r(a){let b=(0,g.homedir)(),c=(0,f.resolve)(a);for(;c!==b;){let a=(0,f.resolve)(c,".failproofai");try{if((0,e.statSync)(a).isDirectory())return c}catch{}let b=(0,f.dirname)(c);if(b===c)break;c=b}return(0,f.resolve)(a)}function s(){return(0,f.resolve)((0,g.homedir)(),".failproofai","policies-config.json")}function t(){let a=s();if(!(0,e.existsSync)(a))return{enabledPolicies:[]};try{let b=(0,e.readFileSync)(a,"utf8");return JSON.parse(b)}catch(b){return q(`failed to parse config at ${a}: ${b instanceof Error?b.message:String(b)}`),{enabledPolicies:[]}}}function u(a){let b=s(),c=(0,f.dirname)(b);(0,e.existsSync)(c)||(0,e.mkdirSync)(c,{recursive:!0}),(0,e.writeFileSync)(b,JSON.stringify(a,null,2)+"\n","utf8")}function v(a,b){switch(a){case"user":return(0,f.resolve)((0,g.homedir)(),".failproofai","policies-config.json");case"project":return(0,f.resolve)(r(b??process.cwd()),".failproofai","policies-config.json");case"local":return(0,f.resolve)(r(b??process.cwd()),".failproofai","policies-config.local.json")}}function w(a,b){let c=v(a,b);if(!(0,e.existsSync)(c))return{enabledPolicies:[]};try{let a=(0,e.readFileSync)(c,"utf8");return JSON.parse(a)}catch(a){return q(`failed to parse config at ${c}: ${a instanceof Error?a.message:String(a)}`),{enabledPolicies:[]}}}function x(a,b,c){let d=v(b,c),g=(0,f.dirname)(d);(0,e.existsSync)(g)||(0,e.mkdirSync)(g,{recursive:!0}),(0,e.writeFileSync)(d,JSON.stringify(a,null,2)+"\n","utf8")}var y=a.i(74533);let z=["user","project","local"],A=["claude","codex"],B=["session_start","pre_tool_use","permission_request","post_tool_use","user_prompt_submit","stop"],C={session_start:"SessionStart",pre_tool_use:"PreToolUse",permission_request:"PermissionRequest",post_tool_use:"PostToolUse",user_prompt_submit:"UserPromptSubmit",stop:"Stop"},D=["SessionStart","SessionEnd","UserPromptSubmit","PreToolUse","PermissionRequest","PermissionDenied","PostToolUse","PostToolUseFailure","Notification","SubagentStart","SubagentStop","TaskCreated","TaskCompleted","Stop","StopFailure","TeammateIdle","InstructionsLoaded","ConfigChange","CwdChanged","FileChanged","WorktreeCreate","WorktreeRemove","PreCompact","PostCompact","Elicitation","ElicitationResult","UserPromptExpansion","PostToolBatch"],E="__failproofai_hook__";function F(a){return(0,e.existsSync)(a)?JSON.parse((0,e.readFileSync)(a,"utf8")):{}}function G(a,b){(0,e.mkdirSync)((0,f.dirname)(a),{recursive:!0}),(0,e.writeFileSync)(a,JSON.stringify(b,null,2)+"\n","utf8")}function H(a){if(!0===a[E])return!0;let b="string"==typeof a.command?a.command:"";return b.includes("failproofai")&&b.includes("--hook")}function I(a){try{let b=`which ${a}`;return(0,y.execSync)(b,{encoding:"utf8",stdio:"pipe"}),!0}catch{return!1}}let J={id:"claude",displayName:"Claude Code",scopes:z,eventTypes:D,getSettingsPath(a,b){let c=b?(0,f.resolve)(b):process.cwd();switch(a){case"user":return(0,f.resolve)((0,g.homedir)(),".claude","settings.json");case"project":return(0,f.resolve)(c,".claude","settings.json");case"local":return(0,f.resolve)(c,".claude","settings.local.json")}},readSettings:a=>F(a),writeSettings(a,b){G(a,b)},buildHookEntry:(a,b,c)=>({type:"command",command:"project"===c?`npx -y failproofai --hook ${b}`:`"${a}" --hook ${b}`,timeout:6e4,[E]:!0}),isFailproofaiHook:H,writeHookEntries(a,b,c){for(let d of(a.hooks||(a.hooks={}),D)){let e=this.buildHookEntry(b,d,c);a.hooks[d]||(a.hooks[d]=[]);let f=a.hooks[d],g=!1;for(let a of f){if(!a.hooks)continue;let b=a.hooks.findIndex(a=>H(a));if(b>=0){a.hooks[b]=e,g=!0;break}}g||f.push({hooks:[e]})}},removeHooksFromFile(a){let b=this.readSettings(a);if(!b.hooks)return 0;let c=0;for(let a of Object.keys(b.hooks)){let d=b.hooks[a];if(Array.isArray(d)){for(let a=d.length-1;a>=0;a--){let b=d[a];if(!b.hooks)continue;let e=b.hooks.length;b.hooks=b.hooks.filter(a=>!H(a)),c+=e-b.hooks.length,0===b.hooks.length&&d.splice(a,1)}0===d.length&&delete b.hooks[a]}}return 0===Object.keys(b.hooks).length&&delete b.hooks,this.writeSettings(a,b),c},hooksInstalledInSettings(a,b){let c=this.getSettingsPath(a,b);if(!(0,e.existsSync)(c))return!1;try{let a=this.readSettings(c);if(!a.hooks)return!1;for(let b of Object.values(a.hooks))if(Array.isArray(b)){for(let a of b)if(a.hooks&&a.hooks.some(a=>H(a)))return!0}}catch{}return!1},detectInstalled:()=>I("claude")||I("claude-code")},K={claude:J,codex:{id:"codex",displayName:"OpenAI Codex",scopes:["user","project"],eventTypes:B,getSettingsPath(a,b){let c=b?(0,f.resolve)(b):process.cwd();switch(a){case"user":return(0,f.resolve)((0,g.homedir)(),".codex","hooks.json");case"project":case"local":return(0,f.resolve)(c,".codex","hooks.json")}},readSettings(a){let b=F(a);return void 0===b.version&&(b.version=1),b},writeSettings(a,b){G(a,b)},buildHookEntry:(a,b,c)=>({type:"command",command:"project"===c?`npx -y failproofai --hook ${b} --cli codex`:`"${a}" --hook ${b} --cli codex`,timeout:6e4,[E]:!0}),isFailproofaiHook:H,writeHookEntries(a,b,c){for(let d of(void 0===a.version&&(a.version=1),a.hooks||(a.hooks={}),B)){let e=C[d],f=this.buildHookEntry(b,d,c);a.hooks[e]||(a.hooks[e]=[]);let g=a.hooks[e],h=!1;for(let a of g){if(!a.hooks)continue;let b=a.hooks.findIndex(a=>H(a));if(b>=0){a.hooks[b]=f,h=!0;break}}h||g.push({hooks:[f]})}},removeHooksFromFile(a){let b=this.readSettings(a);if(!b.hooks)return 0;let c=0;for(let a of Object.keys(b.hooks)){let d=b.hooks[a];if(Array.isArray(d)){for(let a=d.length-1;a>=0;a--){let b=d[a];if(!b.hooks)continue;let e=b.hooks.length;b.hooks=b.hooks.filter(a=>!H(a)),c+=e-b.hooks.length,0===b.hooks.length&&d.splice(a,1)}0===d.length&&delete b.hooks[a]}}return 0===Object.keys(b.hooks).length&&delete b.hooks,this.writeSettings(a,b),c},hooksInstalledInSettings(a,b){let c=this.getSettingsPath(a,b);if(!(0,e.existsSync)(c))return!1;try{let a=this.readSettings(c);if(!a.hooks)return!1;for(let b of Object.values(a.hooks))if(Array.isArray(b)){for(let a of b)if(a.hooks&&a.hooks.some(a=>H(a)))return!0}}catch{}return!1},detectInstalled:()=>I("codex")}};function L(a){let b=K[a];if(!b)throw Error(`Unknown integration: ${a}. Valid: ${A.join(", ")}`);return b}function M(){return A.filter(a=>K[a].detectInstalled())}var N=a.i(1457),O=a.i(12714);function P(a){return a?{decision:"allow",reason:a}:{decision:"allow"}}function Q(a){return{decision:"deny",reason:a}}function R(a){return{decision:"instruct",reason:a}}let S=function(a){for(let b of[".claude",".codex"]){let c=(0,f.join)((0,g.homedir)(),b);if(a===c||a.startsWith(c+"/"))return!0}return!1},T=function(a){return!!(/[\\/]\.claude[\\/]settings(?:\.[^/\\]+)?\.json$/.test(a)||/[\\/]\.codex[\\/]hooks\.json$/.test(a))};function U(a){return a.toolInput?.command??""}function V(a){return a.toolInput?.file_path??""}function W(a){return a.trim().split(/\s+/).map(a=>a.replace(/^['"]|['"]$/g,""))}let X=new Set(["&&","||","|",";"]),Y=/[;&<>`$()\\]/,Z=/eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}/,$=[[/sk-ant-[A-Za-z0-9\-_]{20,}/,"Anthropic API key"],[/sk-proj-[A-Za-z0-9\-_]{20,}/,"OpenAI project API key"],[/sk-[A-Za-z0-9]{20,}/,"OpenAI API key"],[/ghp_[A-Za-z0-9]{36}/,"GitHub personal access token"],[/github_pat_[A-Za-z0-9_]{82}/,"GitHub fine-grained token"],[/AKIA[A-Z0-9]{16}/,"AWS access key ID"],[/sk_live_[A-Za-z0-9]{24,}/,"Stripe live secret key"],[/sk_test_[A-Za-z0-9]{24,}/,"Stripe test secret key"],[/AIza[0-9A-Za-z\-_]{35}/,"Google API key"]],_=/(?:postgresql|postgres|mysql|mongodb(?:\+srv)?|redis|amqps?|smtps?):\/\/[^@\s]+@/,aa=/-----BEGIN (?:[A-Z]+ )?PRIVATE KEY-----/,ab=/Authorization:\s*Bearer\s+[A-Za-z0-9\-._~+/]{20,}/i,ac=/\b(?:psql|mysql|sqlite3|pgcli|clickhouse-client)\b/,ad=/\b(?:DROP\s+(?:TABLE|DATABASE|SCHEMA)|TRUNCATE\b)/i,ae=/\bDELETE\s+FROM\b/i,af=/\bWHERE\b/i,ag=/\bALTER\s+TABLE\b[\s\S]*\b(?:DROP\s+COLUMN|ADD\s+COLUMN|RENAME\s+(?:COLUMN|TO)|MODIFY\s+COLUMN)\b/i,ah=/(?:npm\s+publish|bun\s+publish|pnpm\s+publish|yarn\s+npm\s+publish|twine\s+upload|poetry\s+publish|cargo\s+publish|gem\s+push)\b/,ai=/(?:^|\s|;|&&|\|\|)(?:env|printenv)(?:\s|$|;|&&|\|)/,aj=/echo\s+.*\$\{?[A-Za-z_]/,ak=/(?:^|\s|;|&&|\|\|)export\s+\w+/,al=/\$env:[A-Za-z_]/i,am=/(?:Get-ChildItem|dir|gci|ls)\s+Env:/i,an=/\[Environment\]::GetEnvironment/i,ao=/echo\s+%[A-Za-z_]/i,ap=/(?:^|[\\/])\.env(?:\.|$)/,aq=/\.env(?:\b|\s|$|\.)/,ar=/(?:^|;|&&|\|\|)\s*sudo\s/,as=/Start-Process\s+.*-Verb\s+RunAs/i,at=/(?:^|;|&&|\|\|)\s*runas\s/i,au=/(?:curl|wget)\s.*\|\s*(?:sh|bash|zsh|dash|ksh|csh|tcsh|fish|ash)\b/,av=/(?:Invoke-WebRequest|iwr|Invoke-RestMethod|irm)\s+.*\|\s*(?:Invoke-Expression|iex)/i,aw=/(?:--force|-f\b)/,ax=/\.(?:pem|key)$/,ay=/id_rsa/,az=/credentials/,aA=/git\s+(?:commit|merge|rebase|cherry-pick)\b/,aB=/(?:^|;|&&|\|\||\|)\s*failproofai(?:\s|$)/,aC=/(?:npm\s+(?:uninstall|remove|un|r)\s.*failproofai|bun\s+remove\s.*failproofai|yarn\s+global\s+remove\s+failproofai|pnpm\s+(?:remove|uninstall|un)\s.*failproofai)/,aD=/\bgit\s+commit\b.*--amend\b/,aE=/\bgit\s+stash\s+(?:drop|clear)\b/,aF=/\bgit\s+add\s+(?:-A\b|--all\b|\.(?:\s|$|;|&&|\|\|))/,aG=/\bnpm\s+(?:install|i)\b(?=.*(?:\s-g\b|--global\b))/,aH=/\byarn\s+global\s+add\b/,aI=/\bpnpm\s+(?:add|install|i)\b(?=.*(?:\s-g\b|--global\b))/,aJ=/\bbun\s+(?:install|add)\b(?=.*(?:\s-g\b|--global\b))/,aK=/\bcargo\s+install\b/,aL=/\bpip(?:3)?\s+install\b(?=.*(?:--user\b|--break-system-packages\b))/,aM={pip:[/\bpip\b/,/\bpip3\b/,/\bpython3?\s+-m\s+pip\b/],npm:[/\bnpm\b/,/\bnpx\b/],yarn:[/\byarn\b/],pnpm:[/\bpnpm\b/,/\bpnpx\b/],bun:[/\bbun\b/,/\bbunx\b/],uv:[/\buv\b/],poetry:[/\bpoetry\b/],pipenv:[/\bpipenv\b/],conda:[/\bconda\b/],cargo:[/\bcargo\b/]},aN=/\bnohup\s+\S/,aO=/\bscreen\s+-[A-Za-z]*d[A-Za-z]*\b/,aP=/\btmux\s+(?:new-session|new)\b[^|&;]*-d\b/,aQ=/\bdisown\b/,aR=/(?<![&|])\s?&\s*(?:$|#|;)/,aS=/(?:^|[;\n]|&&|\|\|?|&)\s*kubectl(?:\s|$)/,aT=/(?:^|[;\n]|&&|\|\|?|&)\s*(?:terraform|tofu)(?:\s|$)/,aU=/(?:^|[;\n]|&&|\|\|?|&)\s*aws(?:\s|$)/,aV=/(?:^|[;\n]|&&|\|\|?|&)\s*gcloud(?:\s|$)/,aW=/(?:^|[;\n]|&&|\|\|?|&)\s*az(?:\s|$)/,aX=/(?:^|[;\n]|&&|\|\|?|&)\s*helm(?:\s|$)/,aY=/(?:^|[;\n]|&&|\|\|?|&)\s*gh\s+(?:workflow\s+(?:run|enable|disable)|run\s+(?:rerun|cancel)|pr\s+merge|release\s+(?:create|delete)|cache\s+delete|secret\s+(?:set|delete))\b/,aZ=new Map;function a$(a){try{let b=aZ.get(a);return void 0===b&&(b=(0,y.execSync)("git rev-parse --abbrev-ref HEAD",{cwd:a,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:3e3}).trim(),aZ.set(a,b)),b||null}catch{return null}}function a_(a,b){let c=W(a),d=W(b);return!(c.length<d.length||c.some(a=>X.has(a))||c.some(a=>Y.test(a)))&&d.every((a,b)=>"*"===a||a===c[b])}function a0(a){return a.split(/&&|\|\||[|;\n]/).map(a=>a.trim()).filter(a=>/^git\s+push\s/.test(a)).map(a=>a.replace(/^git\s+push\s+/,""))}function a1(a,b){if(0===b.length)return!1;let c=a.split(/&&|\|\||[|;\n]/).map(a=>a.trim()).filter(a=>/\brm\b/.test(a));if(0===c.length)return!1;for(let a of c){let c=W(a),d=c.findIndex(a=>"rm"===a);if(d<0)continue;let e=c.slice(d+1).filter(a=>/^-[^-]/.test(a)),f=c.slice(d+1).filter(a=>/^--/.test(a));if(/r/i.test(e.join(""))||f.some(a=>/^--recursive$/i.test(a)))for(let e of c.slice(d+1).filter(a=>!a.startsWith("-"))){let c=e.replace(/\/\*$/,"").replace(/\/+$/,"")||"/";if(!b.some(a=>{let b=a.replace(/\/+$/,"")||"/";return c===b||c.startsWith(b+"/")})&&!b.some(b=>{let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return RegExp(`${c}(?:[/"'\\s/*]|$)`).test(a)}))return!1}}return!0}let a2=/(?:^|;|&&|\|\||\|)\s*(?:ls|find|cat|head|tail|less|more|wc|file|stat|tree|du)\s/;function a3(a,b,c){if("Bash"!==a.toolName)return P();let d=U(a);return!b.test(d)||(a.params?.allowPatterns??[]).some(a=>a_(d,a))?P():Q(c)}let a4=/\s*(?:&&|\|\||\||;)\s*/,a5=[{name:"sanitize-jwt",description:"Stop Claude from reading JWTs in tool responses",fn:function(a){let b=JSON.stringify(a.payload);return Z.test(b)?{decision:"deny",reason:"JWT token detected in tool output",message:"[REDACTED: JWT token removed by failproofai]"}:P()},match:{events:["PostToolUse"]},defaultEnabled:!0,category:"Sanitize"},{name:"sanitize-api-keys",description:"Stop Claude from reading API keys (OpenAI, Anthropic, GitHub, AWS, Stripe, Google) in tool responses",fn:function(a){let b=JSON.stringify(a.payload);for(let[a,c]of $)if(a.test(b))return{decision:"deny",reason:`${c} detected in tool output`,message:`[REDACTED: ${c} removed by failproofai]`};for(let{regex:c,label:d}of a.params?.additionalPatterns??[])try{if(new RegExp(c).test(b))return{decision:"deny",reason:`${d} detected in tool output`,message:`[REDACTED: ${d} removed by failproofai]`}}catch{q(`additionalPatterns: invalid regex "${c}", skipping`)}return P()},match:{events:["PostToolUse"]},defaultEnabled:!0,category:"Sanitize",params:{additionalPatterns:{type:"pattern[]",description:"Additional API key patterns to scrub, each with { regex, label }",default:[]}}},{name:"sanitize-connection-strings",description:"Stop Claude from reading database connection strings with embedded credentials in tool responses",fn:function(a){let b=JSON.stringify(a.payload);return _.test(b)?{decision:"deny",reason:"Database connection string with credentials detected in tool output",message:"[REDACTED: connection string removed by failproofai]"}:P()},match:{events:["PostToolUse"]},defaultEnabled:!0,category:"Sanitize"},{name:"sanitize-private-key-content",description:"Stop Claude from reading PEM private key content in tool responses",fn:function(a){let b=JSON.stringify(a.payload);return aa.test(b)?{decision:"deny",reason:"Private key content detected in tool output",message:"[REDACTED: private key content removed by failproofai]"}:P()},match:{events:["PostToolUse"]},defaultEnabled:!0,category:"Sanitize"},{name:"sanitize-bearer-tokens",description:"Stop Claude from reading Authorization Bearer tokens in tool responses",fn:function(a){let b=JSON.stringify(a.payload);return ab.test(b)?{decision:"deny",reason:"Bearer token detected in tool output",message:"[REDACTED: Bearer token removed by failproofai]"}:P()},match:{events:["PostToolUse"]},defaultEnabled:!0,category:"Sanitize"},{name:"protect-env-vars",description:"Prevent commands that read environment variables",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);return ai.test(b)?Q("Command reads environment variables"):aj.test(b)?Q("Command echoes environment variable"):ak.test(b)?Q("Command exports environment variable"):al.test(b)?Q("Command reads environment variable via PowerShell"):am.test(b)?Q("Command reads environment variables via PowerShell"):an.test(b)?Q("Command reads environment variable via .NET"):ao.test(b)?Q("Command echoes environment variable via cmd"):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!0,category:"Environment"},{name:"block-env-files",description:"Block reading/writing .env files",fn:function(a){let b=U(a),c=V(a);return c&&ap.test(c)?Q("Access to .env file blocked"):"Bash"===a.toolName&&aq.test(b)?Q("Command references .env file"):P()},match:{events:["PreToolUse"]},defaultEnabled:!0,category:"Environment"},{name:"block-read-outside-cwd",description:"Block file reads outside the session working directory",fn:function(a){let b=process.env.CLAUDE_PROJECT_DIR||a.session?.cwd;if(!b)return P();let c=a.params?.allowPaths??[];if("Bash"===a.toolName){let d=U(a);if(!a2.test(d))return P();let e=function(a){let b,c=[],d=/(?<![a-zA-Z0-9_.\-~\\])(?:~\/[^\s;|&"'()\[\]{}]*|~(?=\s|$|[;|&"'()\[\]{}])|\/[^\s;|&"'()\[\]{}]*)/g;function e(a){let b;for(d.lastIndex=0;null!==(b=d.exec(a));){let a=b[0];"~"===a?a=(0,g.homedir)():a.startsWith("~/")&&(a=(0,f.join)((0,g.homedir)(),a.slice(2))),c.push(a)}}let h=a.length,i=!1,j=!1;for(let b=0;b<a.length;b++){let c=a[b];if('"'!==c||j)if("'"!==c||i){if("|"===c&&!i&&!j){h=b;break}}else j=!j;else i=!i}let k=a.slice(0,h),l=/"([^"]*)"|'([^']*)'/g;for(;null!==(b=l.exec(k));){let a=b[1]??b[2]??"";/[*?\[\]^$+()\\]/.test(a)||e(a)}return e(a.replace(/"[^"]*"/g,a=>" ".repeat(a.length)).replace(/'[^']*'/g,a=>" ".repeat(a.length))),c}(d),h=b.endsWith("/")?b:b+"/";for(let a of e){let d=(0,f.resolve)(b,a);if(T(d))return Q(`Reading Claude settings file blocked: ${d}`);if(!S(d)&&"/dev/null"!==d&&d!==b&&!d.startsWith(h)){if(c.some(a=>d===a||d.startsWith(a.endsWith("/")?a:a+"/")))continue;return Q(`Bash read outside project directory blocked: ${d}`)}}return P()}let d=V(a),e=a.toolInput?.path??"",h=d||e;if(!h)return P();let i=(0,f.resolve)(b,h);if(T(i))return Q(`Reading Claude settings file blocked: ${i}`);if(S(i)||"/dev/null"===i)return P();let j=b.endsWith("/")?b:b+"/";return i===b||i.startsWith(j)?P():c.some(a=>i===a||i.startsWith(a.endsWith("/")?a:a+"/"))?P():Q(`Access outside project directory blocked: ${i}`)},match:{events:["PreToolUse"],toolNames:["Read","Glob","Grep","Bash"]},defaultEnabled:!1,category:"Environment",params:{allowPaths:{type:"string[]",description:"Absolute paths outside cwd that are allowed to be read",default:[]}}},{name:"block-sudo",description:"Block sudo commands",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a).trimStart();return ar.test(b)||b.startsWith("sudo ")?(a.params?.allowPatterns??[]).some(a=>a_(b,a))?P():Q("sudo commands are blocked"):as.test(b)?Q("Elevated process launch is blocked"):at.test(b)?Q("runas elevation is blocked"):P()},match:{events:["PreToolUse","PermissionRequest"],toolNames:["Bash"]},defaultEnabled:!0,category:"Dangerous Commands",params:{allowPatterns:{type:"string[]",description:"Sudo command patterns to allow, matched token-by-token (e.g. 'sudo systemctl status')",default:[]}}},{name:"block-curl-pipe-sh",description:"Block piping downloads to shell",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);return au.test(b)?Q("Piping downloads to shell is blocked"):av.test(b)?Q("Piping downloads to Invoke-Expression is blocked"):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!0,category:"Dangerous Commands"},{name:"block-rm-rf",description:"Prevent catastrophic deletions",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a),c=W(b).some(a=>{let b=a.replace(/\/\*$/,"").replace(/\/+$/,"")||(a.startsWith("/")?"/":"");return"/"===b||"~"===b||/^\/[A-Za-z_][\w.-]*$/.test(b)});if(c&&(/rm\s+-[^\s]*r[^\s]*f[^\s]*/.test(b)||/rm\s+-[^\s]*f[^\s]*r[^\s]*/.test(b)))return a1(b,a.params?.allowPaths??[])?P():Q("Catastrophic deletion blocked");if(c&&/\brm\b/.test(b)){let c=W(b),d=c.filter(a=>/^-[^-]/.test(a)).join(""),e=c.filter(a=>/^--/.test(a)),f=/r/i.test(d)||e.some(a=>/^--recursive$/i.test(a)),g=/f/.test(d)||e.some(a=>/^--force$/i.test(a));if(f&&g)return a1(b,a.params?.allowPaths??[])?P():Q("Catastrophic deletion blocked")}return/Remove-Item\s+.*-Recurse.*-Force.*(?:[A-Z]:\\(?:\s|$)|\\\*)/i.test(b)||/(?:rd|rmdir)\s+\/s\s+\/q\s+[A-Z]:\\/i.test(b)?Q("Catastrophic deletion blocked"):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Dangerous Commands",params:{allowPaths:{type:"string[]",description:"Paths that are allowed to be recursively deleted",default:[]}}},{name:"block-failproofai-commands",description:"Block failproofai CLI commands and uninstallation",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);return aB.test(b)?Q("Running failproofai CLI commands is blocked"):aC.test(b)?Q("Uninstalling failproofai is blocked"):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!0,category:"Dangerous Commands"},{name:"block-kubectl",description:"Block kubectl commands (Kubernetes cluster mutations)",fn:function(a){return a3(a,aS,"kubectl commands are blocked")},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Infra Commands",params:{allowPatterns:{type:"string[]",description:"kubectl command patterns to allow, matched token-by-token (e.g. 'kubectl get *', 'kubectl describe *')",default:[]}}},{name:"block-terraform",description:"Block terraform and tofu (OpenTofu) commands",fn:function(a){return a3(a,aT,"terraform/tofu commands are blocked")},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Infra Commands",params:{allowPatterns:{type:"string[]",description:"terraform/tofu command patterns to allow (e.g. 'terraform plan', 'terraform validate')",default:[]}}},{name:"block-aws-cli",description:"Block aws CLI commands",fn:function(a){return a3(a,aU,"aws CLI commands are blocked")},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Infra Commands",params:{allowPatterns:{type:"string[]",description:"aws CLI command patterns to allow (e.g. 'aws s3 ls *', 'aws sts get-caller-identity')",default:[]}}},{name:"block-gcloud",description:"Block gcloud (Google Cloud) CLI commands",fn:function(a){return a3(a,aV,"gcloud commands are blocked")},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Infra Commands",params:{allowPatterns:{type:"string[]",description:"gcloud command patterns to allow (e.g. 'gcloud auth list', 'gcloud config list')",default:[]}}},{name:"block-az-cli",description:"Block az (Azure) CLI commands",fn:function(a){return a3(a,aW,"az (Azure) CLI commands are blocked")},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Infra Commands",params:{allowPatterns:{type:"string[]",description:"az CLI command patterns to allow (e.g. 'az account show', 'az group list')",default:[]}}},{name:"block-helm",description:"Block helm commands",fn:function(a){return a3(a,aX,"helm commands are blocked")},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Infra Commands",params:{allowPatterns:{type:"string[]",description:"helm command patterns to allow (e.g. 'helm list', 'helm status *')",default:[]}}},{name:"block-gh-pipeline",description:"Block gh CLI pipeline-trigger subcommands (workflow run, run rerun/cancel, pr merge, release create/delete, cache delete, secret set/delete)",fn:function(a){return a3(a,aY,"gh pipeline-trigger commands are blocked")},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Infra Commands",params:{allowPatterns:{type:"string[]",description:"gh pipeline command patterns to allow (e.g. specific scripted invocations); read-only gh subcommands like 'gh pr view' and 'gh run list' are not matched by this policy",default:[]}}},{name:"block-secrets-write",description:"Block writing secret key files",fn:function(a){if("Write"!==a.toolName)return P();let b=V(a);if(ax.test(b)||ay.test(b)||az.test(b))return Q("Writing secret key files is blocked");for(let c of a.params?.additionalPatterns??[])if(b.includes(c))return Q(`Writing blocked file pattern: ${c}`);return P()},match:{events:["PreToolUse"],toolNames:["Write"]},defaultEnabled:!1,category:"Dangerous Commands",params:{additionalPatterns:{type:"string[]",description:"Additional filename patterns (substrings) to block",default:[]}}},{name:"block-push-master",description:"Block pushing to main/master",fn:function(a){if("Bash"!==a.toolName)return P();let b=a.params?.protectedBranches??["main","master"];if(0===b.length)return P();let c=a0(U(a)),d=RegExp(`\\b(?:${b.map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|")})\\b`);return c.some(a=>d.test(a))?Q(`Pushing to ${b.join("/")} is blocked`):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!0,category:"Git",params:{protectedBranches:{type:"string[]",description:"Branch names to protect from direct pushes",default:["main","master"]}}},{name:"block-force-push",description:"Prevent force-pushing to any branch",fn:function(a){return"Bash"!==a.toolName?P():a0(U(a)).some(a=>aw.test(a))?Q("Force-pushing is blocked"):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Git"},{name:"block-work-on-main",description:"Block git commits and merges on main/master branch",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);if(!aA.test(b))return P();let c=a.session?.cwd;if(!c)return P();let d=a$(c);return d&&(a.params?.protectedBranches??["main","master"]).includes(d)?Q(`Git ${b.match(/git\s+(\S+)/)?.[1]??"operation"} on ${d} is blocked. Create a feature branch first.`):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Git",params:{protectedBranches:{type:"string[]",description:"Branch names where commits/merges are blocked",default:["main","master"]}}},{name:"warn-git-amend",description:"Warns before amending git commits, which rewrites history",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);return aD.test(b)?R("STOP: This command amends the last commit, which rewrites git history. If this commit has already been pushed to a shared branch, this will cause divergence for other contributors. Confirm with the user before executing."):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Git"},{name:"warn-git-stash-drop",description:"Warns before permanently deleting stashed changes",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);return aE.test(b)?R("STOP: This command permanently deletes stashed changes (git stash drop/clear). Stash entries cannot be recovered after deletion. Confirm with the user before executing."):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Git"},{name:"warn-all-files-staged",description:"Warns before staging all working tree files with git add -A / . / --all",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);return aF.test(b)?R("STOP: This command stages all files in the working tree (git add -A / --all / .). This may inadvertently include build artifacts, generated files, or sensitive files not covered by .gitignore. Confirm with the user before executing."):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Git"},{name:"warn-destructive-sql",description:"Warn before executing destructive SQL (DROP/TRUNCATE/DELETE without WHERE) via database clients",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);return ac.test(b)&&(ad.test(b)||ae.test(b)&&!af.test(b))?R("STOP: This command contains destructive SQL (DROP/TRUNCATE/DELETE). Confirm with the user before executing."):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Database"},{name:"warn-schema-alteration",description:"Warns before SQL schema changes (ALTER TABLE with column or rename operations)",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);return ac.test(b)&&ag.test(b)?R("STOP: This command contains a schema-altering SQL statement (ALTER TABLE with column or rename operation). Schema changes on production databases are irreversible or disruptive. Confirm with the user before executing."):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Database"},{name:"warn-package-publish",description:"Warn before publishing packages to public registries (npm, PyPI, crates.io, RubyGems, etc.)",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);return ah.test(b)?R("STOP: This command publishes a package to a public registry. Confirm with the user that this is intentional."):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Packages & System"},{name:"warn-global-package-install",description:"Warns before installing packages globally (npm -g, cargo install, etc.)",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);return aG.test(b)||aH.test(b)||aI.test(b)||aJ.test(b)||aK.test(b)||aL.test(b)?R("STOP: This command installs a package globally, which modifies the system-wide environment outside the project. This can conflict with other projects or system tools. Confirm with the user before executing."):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Packages & System"},{name:"prefer-package-manager",description:"Blocks non-preferred package managers and tells Claude to use an allowed one (e.g., uv instead of pip)",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);if(!b)return P();let c=a.params?.allowed??[];if(0===c.length)return P();let d=new Set(c.map(a=>a.toLowerCase())),e=a.params?.blocked??[],f=c.join(", ");for(let a of b.split(a4)){let b=a.trim();if(!b)continue;let c=!1;for(let a of d){let d=aM[a];if(d){for(let a of d)if(a.test(b)){c=!0;break}if(c)break}}if(!c){for(let[a,c]of Object.entries(aM))if(!d.has(a)){for(let d of c)if(d.test(b))return Q(`"${a}" is not an allowed package manager. Allowed package managers for this project: ${f}. Rewrite this command using an allowed package manager.`)}for(let a of e){let c=a.toLowerCase();if(!d.has(c)&&RegExp(`\\b${c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\b`).test(b))return Q(`"${c}" is not an allowed package manager. Allowed package managers for this project: ${f}. Rewrite this command using an allowed package manager.`)}}}return P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Packages & System",params:{allowed:{type:"string[]",description:"Allowed package manager names (e.g. ['uv', 'bun']). Any detected manager not in this list is blocked.",default:[]},blocked:{type:"string[]",description:"Additional manager names to block beyond the built-in list (e.g. ['pdm', 'pipx']).",default:[]}}},{name:"warn-large-file-write",description:"Warn before writing files larger than 1MB (configurable via thresholdKb param)",fn:function(a){if("Write"!==a.toolName)return P();let b=a.toolInput?.content;if("string"!=typeof b)return P();let c=a.params?.thresholdKb??1024;return b.length>1024*c?R(`STOP: You are writing a file larger than ${c}KB (${Math.round(b.length/1024)}KB). This is unusually large. Confirm this is intentional before proceeding.`):P()},match:{events:["PreToolUse"],toolNames:["Write"]},defaultEnabled:!1,category:"Packages & System",params:{thresholdKb:{type:"number",description:"File size threshold in KB above which a warning is issued",default:1024}}},{name:"warn-background-process",description:"Warns before starting detached or background processes",fn:function(a){if("Bash"!==a.toolName)return P();let b=U(a);return aN.test(b)||aO.test(b)||aP.test(b)||aQ.test(b)||aR.test(b)?R("STOP: This command starts a background or detached process (nohup, screen -d, tmux -d, or trailing &). Background processes persist after Claude's session and may be difficult to track or stop. Confirm with the user before executing."):P()},match:{events:["PreToolUse"],toolNames:["Bash"]},defaultEnabled:!1,category:"Packages & System"},{name:"warn-repeated-tool-calls",description:"Warn when the same tool is called 3+ times with identical parameters",fn:async function a(a){let b=a.session?.transcriptPath;if(!b||!a.toolName||!a.toolInput)return P();let c=`${b}.tool-calls.json`,d=JSON.stringify({tool:a.toolName,input:a.toolInput}),e={};try{let a=await (0,O.readFile)(c,"utf8");e=JSON.parse(a)}catch{}let f=e[d]??0;if(f>=3)return R(`STOP: You have already called ${a.toolName} ${f} times with identical parameters. This is wasteful and unproductive. Do NOT repeat this call — use a different approach or ask the user for clarification.`);e[d]=f+1;try{let a=JSON.stringify(e);a.length<=65536&&await (0,O.writeFile)(c,a,"utf8")}catch{}return P()},match:{events:["PreToolUse"]},defaultEnabled:!1,category:"AI Behavior"},{name:"require-commit-before-stop",description:"Require all changes to be committed before Claude stops",fn:function(a){let b=a.session?.cwd;if(!b)return P("No working directory available, skipping commit check.");try{if((0,y.execSync)("git status --porcelain",{cwd:b,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:5e3}).trim().length>0)return Q("You have uncommitted changes in the working directory. Commit all changes now.");return P("All changes are committed.")}catch{return P("Not a git repository, skipping commit check.")}},match:{events:["Stop"]},defaultEnabled:!1,category:"Workflow"},{name:"require-push-before-stop",description:"Require all commits to be pushed to remote before Claude stops",fn:function(a){let b=a.session?.cwd;if(!b)return P("No working directory available, skipping push check.");try{if(!(0,y.execSync)("git remote",{cwd:b,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:3e3}).trim())return P("No git remote configured, skipping push check.");let c=a.params?.remote??"origin",d=a$(b);if(!d||"HEAD"===d)return P("Detached HEAD, skipping push check.");let e=a.params?.baseBranch??"main";if(d===e)return P(`On base branch "${e}", skipping push check.`);try{if(!(0,y.execFileSync)("git",["log",`${c}/${e}..HEAD`,"--oneline"],{cwd:b,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:5e3}).trim())return P(`No commits ahead of ${c}/${e}, skipping push check.`);if(!(0,y.execFileSync)("git",["diff","--stat",`${c}/${e}`,"HEAD"],{cwd:b,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:5e3}).trim())return P(`No file changes compared to ${c}/${e}, skipping push check.`)}catch{}let f=!1;try{(0,y.execFileSync)("git",["rev-parse","--verify",`${c}/${d}`],{cwd:b,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:3e3}),f=!0}catch{}if(!f)return Q(`Branch "${d}" has not been pushed to remote "${c}". Run now: git push -u ${c} ${d}`);let g=(0,y.execFileSync)("git",["log",`${c}/${d}..HEAD`,"--oneline"],{cwd:b,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:5e3}).trim();if(g.length>0){let a=g.split("\n").length;return Q(`You have ${a} unpushed commit${a>1?"s":""} on branch "${d}". Run now: git push`)}return P(`All commits pushed to "${c}".`)}catch{return P("Could not check push status, skipping.")}},match:{events:["Stop"]},defaultEnabled:!1,category:"Workflow",params:{remote:{type:"string",description:"Remote name to push to (default: origin)",default:"origin"},baseBranch:{type:"string",description:"Base branch to compare against (default: main)",default:"main"}}},{name:"require-pr-before-stop",description:"Require a pull request to exist for the current branch before Claude stops",fn:function(a){let b=a.session?.cwd;if(!b)return P("No working directory available, skipping PR check.");try{let c;try{(0,y.execSync)("gh --version",{cwd:b,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:3e3})}catch{return P("GitHub CLI (gh) not installed, skipping PR check.")}let d=a$(b);if(!d||"HEAD"===d)return P("Detached HEAD, skipping PR check.");let e=a.params?.baseBranch??"main";if(d===e)return P(`On base branch "${e}", skipping PR check.`);try{if(!(0,y.execFileSync)("git",["log",`origin/${e}..HEAD`,"--oneline"],{cwd:b,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:5e3}).trim())return P(`No commits ahead of origin/${e}, skipping PR check.`);if(!(0,y.execFileSync)("git",["diff","--stat",`origin/${e}`,"HEAD"],{cwd:b,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:5e3}).trim())return P(`No file changes compared to origin/${e}, skipping PR check.`)}catch{}try{c=(0,y.execSync)("gh pr view --json number,url,state",{cwd:b,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:15e3}).trim()}catch{return Q(`No pull request found for branch "${d}". Run now: gh pr create`)}let f=JSON.parse(c);if("OPEN"===f.state)return P(`PR #${f.number} exists: ${f.url}`);if("MERGED"===f.state)return P(`PR #${f.number} was merged: ${f.url}. Switch off this branch (e.g. 'git checkout ${e} && git pull') before stopping again.`);return Q(`Pull request for branch "${d}" is ${f.state.toLowerCase()}. Run now: gh pr create`)}catch{return P("Could not check PR status, skipping.")}},match:{events:["Stop"]},defaultEnabled:!1,category:"Workflow",params:{baseBranch:{type:"string",description:"Base branch to compare against (default: main)",default:"main"}}},{name:"require-no-conflicts-before-stop",description:"Require the current branch to merge cleanly with the base branch before Claude stops",fn:function(a){let b,c,d=a.session?.cwd;if(!d)return P("No working directory available, skipping conflict check.");let e=a$(d);if(!e||"HEAD"===e)return P("Detached HEAD, skipping conflict check.");let f=a.params?.baseBranch??"main";if(e===f)return P(`On base branch "${f}", skipping conflict check.`);try{(0,y.execSync)("gh --version",{cwd:d,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:3e3})}catch{return P("gh CLI not installed, skipping conflict check.")}try{b=(0,y.execSync)("gh pr view --json mergeable,number,url,state",{cwd:d,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:15e3}).trim()}catch{return P("No pull request found for branch, skipping conflict check.")}try{c=JSON.parse(b)}catch{return P("Could not parse gh pr view output, skipping conflict check.")}if("OPEN"!==c.state)return P(`PR #${c.number} is ${c.state.toLowerCase()}; skipping conflict check.`);try{(0,y.execFileSync)("git",["rev-parse","--verify",`origin/${f}`],{cwd:d,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:3e3}),(0,y.execFileSync)("git",["log",`origin/${f}..HEAD`,"--oneline"],{cwd:d,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:5e3}).trim()&&(0,y.execFileSync)("git",["merge-tree","--write-tree","--name-only",`origin/${f}`,"HEAD"],{cwd:d,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:1e4})}catch(a){if(1===a.status){let b=("string"==typeof a.stdout?a.stdout:a.stdout?.toString("utf8")??"").trim().split("\n"),c=[];for(let a=1;a<b.length;a++){let d=b[a];if(""===d)break;c.push(d)}let d=c.length?c.join(", "):"one or more files";return Q(`Branch "${e}" has merge conflicts with ${f} in: ${d}. Rebase or merge origin/${f} now and resolve the conflicts.`)}}return"CONFLICTING"===c.mergeable?Q(`PR #${c.number} has merge conflicts per GitHub (${c.url}). Rebase or merge origin/${f} now and resolve the conflicts.`):"UNKNOWN"===c.mergeable?Q(`GitHub is still computing mergeability for PR #${c.number} (${c.url}). Wait ~10 seconds, then re-check with \`gh pr view --json mergeable\` before attempting to stop again.`):P(`PR #${c.number} merges cleanly per GitHub.`)},match:{events:["Stop"]},defaultEnabled:!1,category:"Workflow",params:{baseBranch:{type:"string",description:"Base branch to check for conflicts against (default: main)",default:"main"}}},{name:"require-ci-green-before-stop",description:"Require CI checks to pass on the current branch before Claude stops",fn:function(a){let b=a.session?.cwd;if(!b)return P("No working directory available, skipping CI check.");try{try{(0,y.execSync)("gh --version",{cwd:b,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:3e3})}catch{return P("GitHub CLI (gh) not installed, skipping CI check.")}let a=a$(b);if(!a||"HEAD"===a)return P("Detached HEAD, skipping CI check.");let c=[];try{let d=(0,y.execFileSync)("gh",["run","list","--branch",a,"--limit","5","--json","status,conclusion,name"],{cwd:b,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:15e3}).trim();d&&"[]"!==d&&(c=JSON.parse(d))}catch{}let d=[],e=[],f=function(a){try{return(0,y.execSync)("git rev-parse HEAD",{cwd:a,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:3e3}).trim()||null}catch{return null}}(b);f&&(d=function(a,b){try{let c=(0,y.execFileSync)("gh",["api",`repos/{owner}/{repo}/commits/${b}/check-runs`,"--jq",'.check_runs | map(select(.app.slug != "github-actions")) | map({name: .name, status: .status, conclusion: (.conclusion // "")})'],{cwd:a,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:15e3}).trim();if(!c||"[]"===c)return[];return JSON.parse(c)}catch{return[]}}(b,f),e=function(a,b){try{let c=(0,y.execFileSync)("gh",["api",`repos/{owner}/{repo}/commits/${b}/statuses`,"--jq","map({name: .context, state: .state}) | unique_by(.name)"],{cwd:a,encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:15e3}).trim();if(!c||"[]"===c)return[];return JSON.parse(c).map(a=>({name:a.name,status:"pending"===a.state?"in_progress":"completed",conclusion:"pending"===a.state?"":"success"===a.state?"success":"failure"}))}catch{return[]}}(b,f));let g=[...c,...d,...e];if(0===g.length)return P(`No CI runs found for branch "${a}".`);let h=g.filter(a=>"completed"===a.status&&"success"!==a.conclusion&&"skipped"!==a.conclusion&&"cancelled"!==a.conclusion);if(h.length>0){let b=h.map(a=>`"${a.name}"`).join(", ");return Q(`CI checks are failing on branch "${a}": ${b}. Fix the failing checks now.`)}let i=g.filter(a=>"in_progress"===a.status||"queued"===a.status||"waiting"===a.status);if(i.length>0){let b=i.map(a=>`"${a.name}"`).join(", ");return Q(`CI checks are still running on branch "${a}": ${b}. Wait for all checks to complete, then verify they pass.`)}return P(`All CI checks passed on branch "${a}".`)}catch{return P("Could not check CI status, skipping.")}},match:{events:["Stop"]},defaultEnabled:!1,category:"Workflow"}];async function a6(a,b={}){let{includeBeta:c=!1}=b;if(!process.stdin.isTTY){let b=a5.filter(a=>c||!a.beta);return a?a.filter(a=>b.some(b=>b.name===a)):b.filter(a=>a.defaultEnabled).map(a=>a.name)}let d=a?new Set(a):null,e=a5.filter(a=>c||!a.beta).map(a=>({name:a.name,description:a.description,category:a.category,selected:d?d.has(a.name):a.defaultEnabled,beta:!!a.beta})),f=e.length,g=0,h="",i=0,j=!1;function k(){if(!h)return e;let a=h.toLowerCase();return e.filter(b=>b.name.toLowerCase().includes(a)||b.description.toLowerCase().includes(a))}function l(){let a=process.stdout.columns||120;j||(process.stdout.write("\x1b[?25l"),j=!0);let b=k(),d=b.length;d>0&&g>=d&&(g=d-1);let l=[];l.push(" Failproof AI — Policy Manager"),l.push("");let m=Math.max(20,a-6),n=" ┌"+"─".repeat(m+2)+"┐",o=" └"+"─".repeat(m+2)+"┘",p=h?` \x1b[2m(${d}/${f})\x1b[0m`:` \x1b[2m(${f} policies)\x1b[0m`,q=`\x1b[1mSearch:\x1b[0m ${h}\x1b[7m \x1b[0m${p}`;if(l.push(n),l.push(` \u2502 ${q}`),l.push(o),l.push(""),0===d){l.push(" \x1b[2mNo policies match “"+h+"”\x1b[0m");for(let a=0;a<9;a++)l.push("")}else{let c=function(a){let b=[],c=new Map,d=new Map;for(let a of e)c.has(a.category)||(b.push(a.category),c.set(a.category,0),d.set(a.category,0)),d.set(a.category,d.get(a.category)+1),a.selected&&c.set(a.category,c.get(a.category)+1);let f=new Map;for(let b of a){let a=f.get(b.category)??[];a.push(b),f.set(b.category,a)}let g=[],h=0;for(let a of b){let b=f.get(a);if(b&&0!==b.length)for(let e of(g.push({kind:"header",category:a,enabledCount:c.get(a),totalCount:d.get(a)}),b))g.push({kind:"item",item:e,filteredIndex:h++})}return g}(b),d=0;for(let a=0;a<c.length;a++){let b=c[a];if("item"===b.kind&&b.filteredIndex===g){d=a;break}}let f=d-Math.floor(4);f=Math.min(f=Math.max(0,f),Math.max(0,c.length-8));let h=Math.min(c.length,f+8),i=c.slice(0,f).filter(a=>"item"===a.kind).length;i>0?l.push(` \x1b[2m \u2191 ${i} more above\x1b[0m`):l.push("");for(let b=f;b<h;b++){let d=c[b];if("header"===d.kind){let b=` ${d.category.toUpperCase()} (${d.enabledCount}/${d.totalCount}) `,c=Math.max(2,a-2-(3+b.length));l.push(` \x1b[2m\u2500\u2500 ${b}${"─".repeat(c)}\x1b[0m`)}else{let a=d.item,b=d.filteredIndex===g,c=b?"\x1b[36m❯\x1b[0m":" ",e=a.selected?"\x1b[32m[✓]\x1b[0m":"[ ]",f=b?`\x1b[1;36m${a.name}\x1b[0m`:a.name,h=a.beta?" \x1b[35m[beta]\x1b[0m":"",i=" ".repeat(Math.max(1,28-a.name.length)),j=`\x1b[2m${a.description}\x1b[0m`;l.push(` ${c} ${e} ${f}${h}${i}${j}`)}}for(let a=h-f;a<8;a++)l.push("");let j=c.slice(h).filter(a=>"item"===a.kind).length;j>0?l.push(` \x1b[2m \u2193 ${j} more below\x1b[0m`):l.push("")}l.push(""),l.push(" \x1b[2m"+"─".repeat(a-2)+"\x1b[0m"),l.push(" [↑↓] Move [Space] Toggle [Ctrl+A] All [Ctrl+S] Save [Esc] Clear [^C] Quit"),l.push(""),l.push(" \x1b[2mTip: `policies` for a flat list · `policies --install <name…>` to skip prompt\x1b[0m"),c||l.push(" \x1b[2mTip: `policies --install --beta` to include beta policies\x1b[0m"),i>0&&process.stdout.write(`\x1b[${i}A\x1b[J`);let r=l.map(b=>""===b?b:function(a,b){let c=0,d="",e=0;for(;e<a.length;)if("\x1b"===a[e]&&"["===a[e+1]){let b=e+2;for(;b<a.length&&!/[A-Za-z]/.test(a[b]);)b++;b++,d+=a.slice(e,b),e=b}else{if(c>=b)break;d+=a[e],c++,e++}return d}(b,a)).join("\n")+"\n";process.stdout.write(r),i=l.length}return new Promise(a=>{function b(b,d){if(!d)return;d.ctrl&&"c"===d.name&&(c(),process.exit(0));let f=k();if("up"===d.name)f.length>0&&(g=g>0?g-1:f.length-1),l();else if("down"===d.name)f.length>0&&(g=g<f.length-1?g+1:0),l();else if("return"===d.name||"space"===d.name){let a=f[g];a&&(a.selected=!a.selected),l()}else if("escape"===d.name)h="",g=0,l();else if(d.ctrl&&"a"===d.name){let a=f.length>0&&f.every(a=>a.selected);for(let b of f)b.selected=!a;l()}else if(d.ctrl&&"s"===d.name){c();let b=e.filter(a=>a.selected).map(a=>a.name);process.stdout.write("\n"),a(b)}else"backspace"===d.name||"delete"===d.name?h.length>0&&(h=h.slice(0,-1),g=0,l()):!b||1!==b.length||d.ctrl||d.meta||(h+=b,g=0,l())}function c(){j&&(process.stdout.write("\x1b[?25h"),j=!1),process.stdin.removeListener("keypress",b),process.stdin.setRawMode(!1),process.stdin.pause()}l(),process.stdin.setRawMode(!0),process.stdin.resume(),N.emitKeypressEvents(process.stdin),process.stdin.on("keypress",b)})}var a7=a.i(57764);let a8="__failproofai_custom_hooks__";var a9=a.i(24868),ba=a.i(14747),bb=a.i(92509);let bc=".__failproofai_tmp__.mjs",bd=/(?:import\s+(?:[\s\S]*?\s+from\s+)?|export\s+(?:[\s\S]*?\s+from\s+))(['"])(\.\.?\/[^'"]+)\1/g,be=/require\s*\(\s*(['"])(\.\.?\/[^'"]+)\1\s*\)/g;async function bf(a){try{return await (0,a9.access)(a),!0}catch{return!1}}async function bg(){let a=process.env.FAILPROOFAI_DIST_PATH;if(a){let b=(0,ba.resolve)(a,"index.js");if(await bf(b))return b}for(let a of[(0,ba.resolve)((0,ba.dirname)(process.execPath),"..","assets","dist","index.js"),(0,ba.resolve)(process.cwd(),"dist","index.js"),(0,ba.resolve)(process.cwd(),"node_modules","failproofai","dist","index.js")])if(await bf(a))return a;return null}async function bh(a,b){let c=(0,ba.resolve)(a,b);for(let a of[c,`${c}.js`,`${c}.mjs`,`${c}.ts`,(0,ba.resolve)(c,"index.js")])if(await bf(a))return a;return null}async function bi(a,b){let c=a+".__failproofai_esm_shim__.mjs",d=`import _cjs from '${b}';
|
|
4
|
-
export const customPolicies = _cjs.customPolicies;
|
|
5
|
-
export const getCustomHooks = _cjs.getCustomHooks;
|
|
6
|
-
export const clearCustomHooks = _cjs.clearCustomHooks;
|
|
7
|
-
export const allow = _cjs.allow;
|
|
8
|
-
export const deny = _cjs.deny;
|
|
9
|
-
export const instruct = _cjs.instruct;
|
|
10
|
-
export default _cjs;`;return await (0,a9.writeFile)(c,d,"utf-8"),{shimPath:c,shimUrl:(0,bb.pathToFileURL)(c).href}}async function bj(a,b,c){let d=[a],e=new Set,f=[],g=null;if(c&&b){let a=await bi(c,b);f.push(a.shimPath),g=a.shimUrl}for(;d.length>0;){let a=d.shift();if(e.has(a))continue;e.add(a);let b=await (0,a9.readFile)(a,"utf-8");g&&(b=b.replace(/from\s+(['"])(?:claudeye|failproofai)\1/g,`from '${g}'`)),c&&(b=b.replace(/require\s*\(\s*(['"])(?:claudeye|failproofai)\1\s*\)/g,`require('${c.replace(/\\/g,"\\\\")}')`));let h=(0,ba.dirname)(a),i=new Map;for(let a of[bd,be]){let c,f=new RegExp(a.source,a.flags);for(;null!==(c=f.exec(b));){let a=c[2];if(i.has(a))continue;let b=await bh(h,a);if(!b)continue;e.has(b)||d.includes(b)||d.push(b);let f=(0,ba.relative)(h,b+bc).split("\\").join("/");f.startsWith(".")||(f="./"+f),i.set(a,f)}}for(let a of[...i.keys()].sort((a,b)=>b.length-a.length)){let c=i.get(a),d=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");b=(b=b.replace(RegExp(`'${d}'`,"g"),`'${c}'`)).replace(RegExp(`"${d}"`,"g"),`"${c}"`)}let j=a+bc;await (0,a9.writeFile)(j,b,"utf-8"),f.push(j)}return f}async function bk(a){for(let b of a)try{await (0,a9.unlink)(b)}catch{}}let bl="__FAILPROOFAI_LOADING_HOOKS__";async function bm(a,b){let c=globalThis;c[bl]=!0;let d=[];try{let b=await bg(),c=b?(0,a7.pathToFileURL)(b).href:null;d=await bj(a,c,b);let e=(0,a7.pathToFileURL)(a+bc).href;await import(e)}catch(d){var e;let c=d instanceof Error?d.message:String(d);if(b?.strict)throw Error(`Failed to load custom hooks from ${a}: ${c}`);e=`failed to load custom hooks from ${a}: ${c}`,n("error")&&(o("ERROR",e),p("ERROR",e))}finally{c[bl]=!1,await bk(d)}}async function bn(a,b){let c;if(!a)return[];let d=(0,f.isAbsolute)(a)?a:(0,f.resolve)(b?.sessionCwd??process.cwd(),a);if(!(0,e.existsSync)(d)){if(b?.strict)throw Error(`Custom hooks file not found: ${d}`);return q(`customPoliciesPath not found: ${d}`),[]}return globalThis[a8]=[],await bm(d,b),Array.isArray((c=globalThis)[a8])||(c[a8]=[]),c[a8]}var bo=a.i(12072);let bp=a.i(79779).POSTHOG_API_KEY;async function bq(a,b,c){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return;let d=JSON.stringify({api_key:process.env.FAILPROOFAI_POSTHOG_KEY??bp,event:b,distinct_id:a,properties:{...c,$lib:"failproofai-hooks",failproofai_version:bo.version}});try{await fetch(process.env.FAILPROOFAI_POSTHOG_HOST?`${process.env.FAILPROOFAI_POSTHOG_HOST}/capture/`:"https://us.i.posthog.com/capture/",{method:"POST",headers:{"Content-Type":"application/json"},body:d,signal:AbortSignal.timeout(5e3)})}catch{}}var br=a.i(69839);class bs extends Error{exitCode;constructor(a,b=1){super(a),this.name="CliError",this.exitCode=b}}let bt=new Set(a5.map(a=>a.name));function bu(a,b){return J.getSettingsPath(a,b)}function bv(a){let b=a.filter(a=>!bt.has(a));if(b.length>0){let a=[...bt].join(", ");throw new bs(`Unknown policy name(s): ${b.join(", ")}
|
|
11
|
-
Valid policies: ${a}`)}}function bw(a,b){return J.hooksInstalledInSettings(a,b)}async function bx(a,b="user",c,d=!1,e,h,i=!1,j){let k,l;if(void 0!==a&&a.length>0){let b=a.filter(a=>"all"!==a);if(b.length>0&&bv(b),a.includes("all")&&b.length>0)throw new bs(`"all" cannot be combined with specific policy names.
|
|
12
|
-
Use either: --install all or --install block-sudo sanitize-jwt ...`)}let m=j&&j.length>0?[...new Set(j)]:["claude"];for(let a of m){let c=L(a);if(!c.scopes.includes(b))throw new bs(`Scope "${b}" is not supported by ${c.displayName}. Valid scopes: ${c.scopes.join(", ")}`)}let n=function(){let a=process.env.FAILPROOFAI_BINARY_OVERRIDE;if(a&&a.trim())return a.trim();try{return(0,y.execSync)("which failproofai",{encoding:"utf8"}).trim().split("\n")[0].trim()}catch{throw new bs("failproofai binary not found in PATH.\nInstall it globally first: npm install -g failproofai")}}(),o=w(b,c),p=new Set(o.enabledPolicies);if(void 0!==a){let b;b=1===a.length&&"all"===a[0]?a5.filter(a=>d||!a.beta).map(a=>a.name):a,k=[...new Set([...o.enabledPolicies,...b])]}else{let a=o.enabledPolicies.length>0?o.enabledPolicies:void 0;k=await a6(a,{includeBeta:d})}let q={...o,enabledPolicies:k};if(i)delete q.customPoliciesPath;else if(h){q.customPoliciesPath=(0,f.resolve)(h);let a=[];try{a=await bn(q.customPoliciesPath,{strict:!0})}catch(a){console.error(`Error: ${a instanceof Error?a.message:String(a)}`),process.exit(1)}0===a.length&&(console.error(`Error: no hooks registered in ${h}. Make sure your file calls customPolicies.add(...) at least once.`),process.exit(1)),console.log(`
|
|
13
|
-
Validated ${a.length} custom hook(s): ${a.map(a=>a.name).join(", ")}`)}x(q,b,c),console.log(`
|
|
14
|
-
Enabled ${k.length} policy(ies): ${k.join(", ")}`),i?console.log("Custom hooks path cleared."):q.customPoliciesPath&&console.log(`Custom hooks path: ${q.customPoliciesPath}`);let r=[];for(let a of m){let d=L(a),e=d.getSettingsPath(b,c),f=d.readSettings(e);d.writeHookEntries(f,n,b),d.writeSettings(e,f),r.push({cli:a,path:e})}try{let a=new Set(k),c=k.filter(a=>!p.has(a)),d=[...p].filter(b=>!a.has(b)),f=(0,br.getInstanceId)();await bq(f,"hooks_installed",{scope:b,cli:m,cli_count:m.length,policies:k,policy_count:k.length,policies_added:c,policies_removed:d,...e?{source:e}:{},platform:(0,g.platform)(),arch:(0,g.arch)(),os_release:(0,g.release)(),hostname_hash:(0,br.hashToId)((0,g.hostname)()),has_custom_hooks_path:!!q.customPoliciesPath,has_policy_params:!!(q.policyParams&&Object.keys(q.policyParams).length>0),param_policy_names:q.policyParams?Object.keys(q.policyParams):[],command_format:"project"===b?"npx":"absolute"})}catch{}for(let{cli:a,path:c}of r){let d=L(a);console.log(`Failproof AI hooks installed for ${d.displayName} (${d.eventTypes.length} event types, scope: ${b}).`),console.log(`Settings: ${c}`)}"project"===b?(console.log("Command: npx -y failproofai"),console.log(`
|
|
15
|
-
This file can be committed to git — no machine-specific paths.`)):console.log(`Binary: ${n}`);let s=(l=new Set,z.filter(a=>{let b=bu(a,c);return!l.has(b)&&(l.add(b),!0)})).filter(a=>a!==b).filter(a=>bw(a,c));if(s.length>0){let a=s.map(a=>`${a} (${function(a){switch(a){case"user":return"~/.claude/settings.json";case"project":return"{cwd}/.claude/settings.json";case"local":return"{cwd}/.claude/settings.local.json"}}(a)})`).join(", ");console.log(),console.log(`\x1b[33mWarning: Failproof AI hooks are also installed at ${a}.\x1b[0m`),console.log("Having hooks in multiple scopes may cause duplicate policy evaluation."),console.log(`Use \`failproofai policies --uninstall --scope ${s[0]}\` to remove the other installation,`),console.log("or `failproofai policies` to see all scopes.")}}async function by(a,b="user",c,d){let f="all"===b?"user":b,h=d?.cli&&d.cli.length>0?[...new Set(d.cli)]:["claude"];if(d?.removeCustomHooks){let a=w(f,c);delete a.customPoliciesPath,x(a,f,c),console.log("Custom hooks path cleared.")}if(a&&a.length>0&&(1!==a.length||"all"!==a[0])){bv(a);let e=w(f,c),i=new Set(a),j=e.enabledPolicies.filter(a=>!i.has(a)),k=a.filter(a=>!e.enabledPolicies.includes(a));k.length>0&&console.log(`Warning: policy(ies) not currently enabled: ${k.join(", ")}`);let{policyParams:l,...m}=e,n=l?Object.fromEntries(Object.entries(l).filter(([a])=>!i.has(a))):null;x({...m,enabledPolicies:j,...n&&Object.keys(n).length>0?{policyParams:n}:{}},f,c);try{let c=(0,br.getInstanceId)(),f=a.filter(a=>e.enabledPolicies.includes(a));await bq(c,"hooks_removed",{scope:b,cli:h,removal_mode:d?.betaOnly?"beta_policies":"policies",beta_only:d?.betaOnly??!1,policies_removed:f,removed_count:f.length,...d?.source?{source:d.source}:{},platform:(0,g.platform)(),arch:(0,g.arch)(),os_release:(0,g.release)(),hostname_hash:(0,br.hashToId)((0,g.hostname)())})}catch{}console.log(`Disabled ${a.length-k.length} policy(ies).`),console.log(`Remaining: ${j.length>0?j.join(", "):"(none)"}`);return}let i=w(f,c),j=0,k=!1;for(let a of h){let d=L(a);for(let a of"all"===b?[...d.scopes]:d.scopes.includes(b)?[b]:[]){let f=d.getSettingsPath(a,c);if(!(0,e.existsSync)(f)){"all"!==b&&1===h.length&&(console.log("No settings file found. Nothing to remove."),k=!0);continue}let g=d.removeHooksFromFile(f);if(0===g&&"all"!==b&&1===h.length){console.log("No hooks found in settings. Nothing to remove."),k=!0;continue}j+=g,"all"!==b&&(console.log(`Removed ${g} failproofai hook(s) from ${d.displayName} settings.`),console.log(`Settings: ${f}`))}}if(!k||0!==j){if("all"===b)for(let a of(console.log(`Removed ${j} failproofai hook(s) from all scopes.`),h)){let b=L(a);for(let a of b.scopes)console.log(` ${b.displayName} / ${a}: ${b.getSettingsPath(a,c)}`)}try{let a=(0,br.getInstanceId)();await bq(a,"hooks_removed",{scope:b,cli:h,removal_mode:"hooks",policies_removed:i.enabledPolicies,removed_count:j,...d?.source?{source:d.source}:{},platform:(0,g.platform)(),arch:(0,g.arch)(),os_release:(0,g.release)(),hostname_hash:(0,br.hashToId)((0,g.hostname)())})}catch{}if("all"===b)for(let a of z){let b=w(a,c);if(b.enabledPolicies.length>0||b.customPoliciesPath||b.policyParams){let{customPoliciesPath:d,policyParams:e,...f}=b;x({...f,enabledPolicies:[]},a,c)}}else if(!z.some(a=>bw(a,c))){let{customPoliciesPath:a,policyParams:b,...d}=w(f,c);x({...d,enabledPolicies:[]},f,c)}}}var bz=a.i(13095);async function bA(a){if(!(0,e.existsSync)(a))return[];let b=await (0,O.readFile)(a,"utf-8"),c=[],d=b.split(/customPolicies\.add\s*\(/);for(let a=1;a<d.length;a++){let b=d[a],e=b.match(/name:\s*["'`]([^"'`]+)["'`]/);if(!e)continue;let f=b.match(/description:\s*["'`]([^"'`]+)["'`]/),g=b.match(/events:\s*\[([^\]]+)\]/),h=g?g[1].replace(/["'`\s]/g,"").split(",").filter(Boolean).join(", "):void 0;c.push({name:e[1],description:f?.[1],eventScope:h})}return c}async function bB(){let a=t(),b=new Set(a.enabledPolicies),c=z.filter(a=>bw(a)),d=bu(c[0]??"user"),e=a5.map(c=>{var d;let e,f;return{name:c.name,description:c.description,category:c.category,defaultEnabled:c.defaultEnabled,beta:!!c.beta,enabled:b.has(c.name),eventScope:(d=c.match,e=d.events?.join(", ")??"",f=d.toolNames?` \xb7 ${d.toolNames.join(", ")}`:"",`${e}${f}`),params:c.params?Object.fromEntries(Object.entries(c.params).map(([a,b])=>[a,{type:b.type,description:b.description,default:b.default}])):void 0,currentParams:c.params?a.policyParams?.[c.name]??{}:void 0}}),f=a.customPoliciesPath?await bA(a.customPoliciesPath):void 0;return{enabledPolicies:a.enabledPolicies,installedScopes:c,settingsPath:d,policies:e,customPoliciesPath:a.customPoliciesPath,customPolicies:f?.length?f:void 0}}async function bC(a,b){let c=t(),d=new Set(c.enabledPolicies);b?d.add(a):d.delete(a),u({...c,enabledPolicies:[...d]});try{let c=(0,br.getInstanceId)();await bq(c,"policy_toggled",{policy_name:a,enabled:b,action:b?"enable":"disable",source:"web"})}catch{}}async function bD(a="user",b){let c=t(),d=c.enabledPolicies.length>0?c.enabledPolicies:a5.filter(a=>a.defaultEnabled&&!a.beta).map(a=>a.name),e=b&&b.length>0?b:M(),f=e.length>0?e:["claude"];await bx(d,a,void 0,!1,"web",void 0,!1,f)}async function bE(a="user",b){let c=b&&b.length>0?b:M(),d=c.length>0?c:["claude"];await by(void 0,a,void 0,{source:"web",cli:d})}async function bF(a,b){let c=t(),d={...c.policyParams??{},[a]:b};u({...c,policyParams:d});try{let c=(0,br.getInstanceId)();await bq(c,"policy_params_updated",{policy_name:a,param_keys:Object.keys(b),source:"web"})}catch{}}(0,bz.ensureServerEntryExports)([bB]),(0,d.registerServerReference)(bB,"00657eebb38f19d2a7212e4ffd6d03b87eb14e4319",null),(0,bz.ensureServerEntryExports)([bC]),(0,d.registerServerReference)(bC,"6025f9d485bf713e077aef3be0776ee10173e66609",null),(0,bz.ensureServerEntryExports)([bD,bE]),(0,d.registerServerReference)(bD,"60f033bafe2fa587e0a86f0a2f2d1c4fb7edf3b49b",null),(0,d.registerServerReference)(bE,"6060fafc442341b89f301801fbededeabc28003a1d",null),(0,bz.ensureServerEntryExports)([bF]),(0,d.registerServerReference)(bF,"60b909baabd785dbafb3089f3c933d529557df1baa",null),a.s([],63895),a.i(63895),a.s(["0023e36be111cb5a102352dbb3d18fdcbd71df69ce",()=>b.getTelemetryConfig,"00657eebb38f19d2a7212e4ffd6d03b87eb14e4319",0,bB,"40ca2bca7d631f06465d3788d903e22110388b6097",()=>c.getHookActivityAction,"6025f9d485bf713e077aef3be0776ee10173e66609",0,bC,"6060fafc442341b89f301801fbededeabc28003a1d",0,bE,"608c099d99d1ba671f4f826f03425f19c7e90723e9",()=>c.searchHookActivityAction,"60b909baabd785dbafb3089f3c933d529557df1baa",0,bF,"60f033bafe2fa587e0a86f0a2f2d1c4fb7edf3b49b",0,bD],11369)}];
|
|
16
|
-
|
|
17
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0w6l33k._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[50640,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},64240,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},22734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},24868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},69191,90798,34900,26192,76668,82248,a=>{"use strict";var b=a.i(24868),c=a.i(14747),d=a.i(46786);function e(){let a=process.env.CLAUDE_PROJECTS_PATH;return a||(0,c.join)((0,d.homedir)(),".claude","projects")}function f(a,b,c){let d=new Map,e=new Map,f=c?.maxSize;return async(...c)=>{let g=JSON.stringify(c),h=d.get(g);if(h&&Date.now()<h.expiry)return h.data;let i=e.get(g);if(i)return i;let j=a(...c).then(a=>{if(e.delete(g),f&&d.size>=f){let a=d.keys().next().value;d.delete(a)}return d.set(g,{data:a,expiry:Date.now()+1e3*b}),a},a=>{throw e.delete(g),a});return e.set(g,j),j}}async function g(a,b){let c=Array(a.length),d=0;async function e(){for(;d<a.length;){let b=d++;try{c[b]={status:"fulfilled",value:await a[b]()}}catch(a){c[b]={status:"rejected",reason:a}}}}let f=Array.from({length:Math.min(b,a.length)},()=>e());return await Promise.all(f),c}a.s(["decodeFolderName",0,function(a){return/^[A-Za-z]--/.test(a)?a[0]+":/"+a.slice(3).replace(/-/g,"/"):a.replace(/-/g,"/")},"getClaudeProjectsPath",0,e],90798),a.s(["runtimeCache",0,f],34900),a.s(["batchAll",0,g],26192);let h=1;function i(a){return`[failproofai${new Date().toISOString()}] ${a}`}function j(a,b){h>=h&&(void 0!==b?console.warn(i("WARN"),a,b):console.warn(i("WARN"),a))}function k(a,b){void 0!==b?console.error(i("ERROR"),a,b):console.error(i("ERROR"),a)}function l(a){return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0}).format(a)}async function m(a,c){try{return(await (0,b.stat)(a)).mtime}catch(a){return j(`Failed to stat ${c}:`,a),new Date(0)}}async function n(a){try{if(!(await (0,b.stat)(a)).isDirectory())return null;return await (0,b.readdir)(a,{withFileTypes:!0})}catch{return null}}function o(a){let b=a.match(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i);return b?b[0]:void 0}async function p(a){try{let b=await n(a);if(!b)return[];let d=b.filter(a=>a.isFile()&&a.name.endsWith(".jsonl")&&o(a.name)),e=(await g(d.map(b=>async()=>{let d=(0,c.join)(a,b.name),e=await m(d,b.name);return{name:b.name,path:d,lastModified:e,lastModifiedFormatted:l(e),sessionId:o(b.name)}}),16)).filter(a=>"fulfilled"===a.status).map(a=>a.value);return e.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),e}catch(a){return k("Error reading session files:",a),[]}}a.s(["logError",0,k,"logWarn",0,j],76668),a.s(["formatDate",0,l],82248);let q=f(async function a(){try{let a=e(),b=await n(a);if(!b)return[];let d=(await g(b.filter(a=>a.isDirectory()).map(b=>async()=>{let d=(0,c.join)(a,b.name),e=await m(d,b.name);return{name:b.name,path:d,isDirectory:!0,lastModified:e,lastModifiedFormatted:l(e)}}),16)).filter(a=>"fulfilled"===a.status).map(a=>a.value);return d.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),d}catch(a){return k("Error reading project folders:",a),[]}},30),r=f(a=>p(a),30);a.s(["UUID_RE",0,/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/,"getCachedProjectFolders",0,q,"getCachedSessionFiles",0,r,"resolveProjectPath",0,function(a){if(!a)throw RangeError("Empty project name");if(/^[/\\]/.test(a))throw RangeError("Absolute project name");let b=(0,c.resolve)(e()),d=(0,c.resolve)((0,c.join)(b,a));if(!d.startsWith(b+c.sep))throw RangeError("Project path escapes root");return d}],69191)},790,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js <module evaluation>"))},84707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},97647,a=>{"use strict";a.i(790);var b=a.i(84707);a.n(b)},95936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(64240),g=a.r(7997),h=f._(a.r(97647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},8174,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/lucide-react/dist/esm/Icon.mjs <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/lucide-react/dist/esm/Icon.mjs <module evaluation>","default")},90697,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/lucide-react/dist/esm/Icon.mjs","default")},53808,a=>{"use strict";a.i(8174);var b=a.i(90697);a.n(b)},84930,92277,a=>{"use strict";var b=a.i(717);let c=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var d=a.i(53808);let e=(a,e)=>{let f=(0,b.forwardRef)(({className:f,...g},h)=>(0,b.createElement)(d.default,{ref:h,iconNode:e,className:((...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim())(`lucide-${c(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,f),...g}));return f.displayName=c(a),f};a.s(["default",0,e],92277);let f=e("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,f],84930)},71224,a=>{a.v("/_next/static/media/icon.0a.gigb3_x5pd.png"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},1022,a=>{"use strict";let b={src:a.i(71224).default,width:1920,height:1920};a.s(["default",0,b])},34417,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/sessions-list.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/sessions-list.tsx <module evaluation>","default")},46201,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/sessions-list.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/sessions-list.tsx","default")},13853,a=>{"use strict";a.i(34417);var b=a.i(46201);a.n(b)},80776,a=>{"use strict";var b=a.i(7997),c=a.i(717),d=a.i(69191),e=a.i(76668),f=a.i(90798);a.i(70396);var g=a.i(73727),h=a.i(22734),i=a.i(24868),j=a.i(95936),k=a.i(84930),l=a.i(82248),m=a.i(13853);async function n({params:a}){let o,{name:p}=await a;try{o=(0,d.resolveProjectPath)(p)}catch{(0,g.notFound)()}let q=(0,f.decodeFolderName)(p);(0,h.existsSync)(o)||(0,g.notFound)();let r=null;try{let a=await (0,i.stat)(o);a.mtime,r=(0,l.formatDate)(a.mtime)}catch(a){(0,e.logWarn)(`Failed to get stats for project ${q}:`,a)}let s=await (0,d.getCachedSessionFiles)(o);return(0,b.jsx)("main",{className:"min-h-screen bg-background",children:(0,b.jsxs)("div",{className:"container mx-auto p-8",children:[(0,b.jsxs)(j.default,{href:"/projects",className:"inline-flex items-center gap-2 text-muted-foreground hover:text-foreground mb-6 transition-colors",children:[(0,b.jsx)(k.ArrowLeft,{className:"w-4 h-4"}),(0,b.jsx)("span",{children:"Back to Projects"})]}),(0,b.jsxs)("div",{className:"mb-8",children:[(0,b.jsx)("h1",{className:"text-4xl font-bold text-foreground mb-2 break-words break-all",children:q}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("p",{className:"text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium",children:"Path:"})," ",o]}),r&&(0,b.jsxs)("p",{className:"text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium",children:"Modified:"})," ",r]})]})]}),(0,b.jsxs)("div",{className:"bg-card text-card-foreground rounded-lg border border-border p-6 shadow-sm",children:[(0,b.jsx)("h2",{className:"text-2xl font-semibold mb-4",children:"Sessions"}),0===s.length?(0,b.jsxs)("div",{className:"text-center py-8",children:[(0,b.jsx)("p",{className:"text-muted-foreground mb-2",children:"No .jsonl files found in this project."}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Session files will appear here once they are created."})]}):(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(m.default,{files:s,projectName:p})})]})]})})}a.s(["default",0,n,"dynamic",0,"force-dynamic"])},11363,a=>{a.n(a.i(80776))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0zqcovi._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[50640,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},64240,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},24868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},69191,90798,34900,26192,76668,82248,a=>{"use strict";var b=a.i(24868),c=a.i(14747),d=a.i(46786);function e(){let a=process.env.CLAUDE_PROJECTS_PATH;return a||(0,c.join)((0,d.homedir)(),".claude","projects")}function f(a,b,c){let d=new Map,e=new Map,f=c?.maxSize;return async(...c)=>{let g=JSON.stringify(c),h=d.get(g);if(h&&Date.now()<h.expiry)return h.data;let i=e.get(g);if(i)return i;let j=a(...c).then(a=>{if(e.delete(g),f&&d.size>=f){let a=d.keys().next().value;d.delete(a)}return d.set(g,{data:a,expiry:Date.now()+1e3*b}),a},a=>{throw e.delete(g),a});return e.set(g,j),j}}async function g(a,b){let c=Array(a.length),d=0;async function e(){for(;d<a.length;){let b=d++;try{c[b]={status:"fulfilled",value:await a[b]()}}catch(a){c[b]={status:"rejected",reason:a}}}}let f=Array.from({length:Math.min(b,a.length)},()=>e());return await Promise.all(f),c}a.s(["decodeFolderName",0,function(a){return/^[A-Za-z]--/.test(a)?a[0]+":/"+a.slice(3).replace(/-/g,"/"):a.replace(/-/g,"/")},"getClaudeProjectsPath",0,e],90798),a.s(["runtimeCache",0,f],34900),a.s(["batchAll",0,g],26192);let h=1;function i(a){return`[failproofai${new Date().toISOString()}] ${a}`}function j(a,b){h>=h&&(void 0!==b?console.warn(i("WARN"),a,b):console.warn(i("WARN"),a))}function k(a,b){void 0!==b?console.error(i("ERROR"),a,b):console.error(i("ERROR"),a)}function l(a){return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0}).format(a)}async function m(a,c){try{return(await (0,b.stat)(a)).mtime}catch(a){return j(`Failed to stat ${c}:`,a),new Date(0)}}async function n(a){try{if(!(await (0,b.stat)(a)).isDirectory())return null;return await (0,b.readdir)(a,{withFileTypes:!0})}catch{return null}}function o(a){let b=a.match(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i);return b?b[0]:void 0}async function p(a){try{let b=await n(a);if(!b)return[];let d=b.filter(a=>a.isFile()&&a.name.endsWith(".jsonl")&&o(a.name)),e=(await g(d.map(b=>async()=>{let d=(0,c.join)(a,b.name),e=await m(d,b.name);return{name:b.name,path:d,lastModified:e,lastModifiedFormatted:l(e),sessionId:o(b.name)}}),16)).filter(a=>"fulfilled"===a.status).map(a=>a.value);return e.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),e}catch(a){return k("Error reading session files:",a),[]}}a.s(["logError",0,k,"logWarn",0,j],76668),a.s(["formatDate",0,l],82248);let q=f(async function a(){try{let a=e(),b=await n(a);if(!b)return[];let d=(await g(b.filter(a=>a.isDirectory()).map(b=>async()=>{let d=(0,c.join)(a,b.name),e=await m(d,b.name);return{name:b.name,path:d,isDirectory:!0,lastModified:e,lastModifiedFormatted:l(e)}}),16)).filter(a=>"fulfilled"===a.status).map(a=>a.value);return d.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),d}catch(a){return k("Error reading project folders:",a),[]}},30),r=f(a=>p(a),30);a.s(["UUID_RE",0,/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/,"getCachedProjectFolders",0,q,"getCachedSessionFiles",0,r,"resolveProjectPath",0,function(a){if(!a)throw RangeError("Empty project name");if(/^[/\\]/.test(a))throw RangeError("Absolute project name");let b=(0,c.resolve)(e()),d=(0,c.resolve)((0,c.join)(b,a));if(!d.startsWith(b+c.sep))throw RangeError("Project path escapes root");return d}],69191)},71224,a=>{a.v("/_next/static/media/icon.0a.gigb3_x5pd.png"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},1022,a=>{"use strict";let b={src:a.i(71224).default,width:1920,height:1920};a.s(["default",0,b])},82165,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/project-list.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/project-list.tsx <module evaluation>","default")},92887,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/project-list.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/project-list.tsx","default")},17048,a=>{"use strict";a.i(82165);var b=a.i(92887);a.n(b)},61594,a=>{"use strict";var b=a.i(7997),c=a.i(717);a.i(70396);var d=a.i(73727),e=a.i(69191),f=a.i(17048);async function g(){(process.env.FAILPROOFAI_DISABLE_PAGES??"").split(",").map(a=>a.trim()).filter(Boolean).includes("projects")&&(0,d.notFound)();let a=await (0,e.getCachedProjectFolders)();return(0,b.jsx)("main",{className:"min-h-screen bg-background",children:(0,b.jsx)("div",{className:"container mx-auto p-8",children:(0,b.jsxs)("div",{className:"bg-card text-card-foreground rounded-lg border border-border p-6 shadow-sm",children:[(0,b.jsx)("h2",{className:"text-2xl font-semibold mb-4",children:"Projects"}),0===a.length?(0,b.jsxs)("div",{className:"text-center py-8",children:[(0,b.jsx)("p",{className:"text-muted-foreground mb-2",children:"No projects found in the .claude/projects directory."}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Make sure the directory exists and contains project folders."})]}):(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(f.default,{folders:a})})]})})})}a.s(["default",0,g,"dynamic",0,"force-dynamic"])},19057,a=>{a.n(a.i(61594))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__105.l_7._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[85650,52562,a=>{"use strict";var b=a.i(64831);let c=(0,b.default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);a.s(["Copy",0,c],85650);let d=(0,b.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",0,d],52562)},24121,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(85650),e=a.i(52562),f=a.i(97895);function g(a){let b=document.createElement("textarea");b.value=a,b.style.position="fixed",b.style.opacity="0",document.body.appendChild(b);try{return b.select(),document.execCommand("copy")}finally{document.body.removeChild(b)}}a.s(["CopyButton",0,function({text:a,className:h}){let[i,j]=(0,c.useState)(!1),k=(0,c.useCallback)(async()=>{try{if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(a);else if(!g(a))throw Error("Both clipboard methods failed");j(!0),setTimeout(()=>j(!1),2e3)}catch(b){console.error("Failed to copy to clipboard:",b);try{g(a)&&(j(!0),setTimeout(()=>j(!1),2e3))}catch{}}},[a]);return(0,b.jsx)("button",{onClick:k,title:"Copy to clipboard",className:(0,f.cn)("inline-flex items-center justify-center rounded p-1 text-muted-foreground hover:text-foreground hover:bg-muted/80 transition-colors",h),children:i?(0,b.jsx)(e.Check,{className:"w-3.5 h-3.5 text-green-500"}):(0,b.jsx)(d.Copy,{className:"w-3.5 h-3.5"})})}])},90619,95947,a=>{"use strict";var b=a.i(50944),c=a.i(72131);function d(a){let b=a.getFullYear(),c=String(a.getMonth()+1).padStart(2,"0"),d=String(a.getDate()).padStart(2,"0");return`${b}-${c}-${d}`}function e(a){var b;if(!a||(b=a,!/^\d{4}-\d{2}-\d{2}$/.test(b)||isNaN(Date.parse(b))))return null;let[c,d,e]=a.split("-").map(Number);return new Date(c,d-1,e,12,0,0)}a.s(["useUrlParams",0,function(){let a=(0,b.useSearchParams)(),d=(0,b.useRouter)(),e=(0,b.usePathname)(),f=(0,c.useRef)(null),g=(0,c.useCallback)(b=>a.get(b),[a]),h=(0,c.useCallback)(()=>new URLSearchParams(a.toString()),[a]),i=(0,c.useCallback)(b=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{let c=new URLSearchParams(a.toString());for(let[a,d]of Object.entries(b))void 0===d||""===d?c.delete(a):c.set(a,d);let f=c.toString(),g=f?`${e}?${f}`:e;d.replace(g,{scroll:!1})},150)},[a,e,d]);return(0,c.useEffect)(()=>()=>{f.current&&clearTimeout(f.current)},[]),{get:g,getAll:h,setAll:i}}],90619),a.s(["dateRangeToParams",0,function(a){let b={};return a.from&&(b.from=d(a.from)),a.to&&(b.to=d(a.to)),b},"keywordsToParam",0,function(a){if(0!==a.length)return a.map(a=>encodeURIComponent(a)).join(",")},"pageToParam",0,function(a){return a<=1?void 0:String(a)},"paramToKeywords",0,function(a){return a?a.split(",").map(a=>decodeURIComponent(a.trim())).filter(a=>a.length>0):[]},"paramToPage",0,function(a){if(!a)return 1;let b=parseInt(a,10);return Number.isFinite(b)&&b>=1?b:1},"paramToPreset",0,function(a){return a&&["all","last-hour","today","last-7-days","last-30-days","custom"].includes(a)?a:"all"},"paramsToDateRange",0,function(a,b){return{from:e(a),to:e(b)}},"presetToParam",0,function(a){return"all"===a?void 0:a}],95947)},65967,a=>{"use strict";var b=a.i(87924),c=a.i(64831);let d=(0,c.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),e=(0,c.default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["default",0,function({currentPage:a,totalPages:c,onPageChange:f}){if(c<=1)return null;let g=a=>`px-3 py-2 text-sm rounded-md transition-colors flex items-center gap-1 bg-muted text-muted-foreground ${a?"opacity-50 cursor-not-allowed":"hover:bg-muted/80"}`;return(0,b.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4",children:[(0,b.jsxs)("button",{onClick:()=>f(a-1),disabled:1===a,className:g(1===a),"aria-label":"Previous page",children:[(0,b.jsx)(d,{className:"w-4 h-4"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:"Previous"})]}),(0,b.jsx)("div",{className:"flex items-center gap-1",children:(()=>{if(c<=7)return Array.from({length:c},(a,b)=>b+1);let b=[1],d=Math.max(2,a-1),e=Math.min(c-1,a+1);a<=3&&(e=Math.min(5,c-1)),a>=c-2&&(d=Math.max(2,c-4)),d>2&&b.push("ellipsis-start");for(let a=d;a<=e;a++)b.push(a);return e<c-1&&b.push("ellipsis-end"),b.push(c),b})().map(c=>"string"==typeof c?(0,b.jsx)("span",{className:"px-2 text-muted-foreground",children:"..."},c):(0,b.jsx)("button",{onClick:()=>f(c),className:`min-w-[2.5rem] px-3 py-2 text-sm rounded-md transition-colors ${a===c?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,"aria-label":`Page ${c}`,"aria-current":a===c?"page":void 0,children:c},c))}),(0,b.jsxs)("button",{onClick:()=>f(a+1),disabled:a===c,className:g(a===c),"aria-label":"Next page",children:[(0,b.jsx)("span",{className:"hidden sm:inline",children:"Next"}),(0,b.jsx)(e,{className:"w-4 h-4"})]})]})}],65967)},27950,45481,33540,24451,a=>{"use strict";a.s(["FILTER_PRESETS",0,[{value:"all",label:"All"},{value:"last-hour",label:"Last Hour"},{value:"today",label:"Today"},{value:"last-7-days",label:"Last 7 Days"},{value:"last-30-days",label:"Last 30 Days"}],"ITEMS_PER_PAGE",0,25,"filterByDate",0,function(a,b,c){if("all"===b)return a;if("custom"===b){let b,d,e=c.from?((b=new Date(c.from)).setHours(0,0,0,0),b):null,f=c.to?((d=new Date(c.to)).setHours(23,59,59,999),d):null;return a.filter(a=>(!e||!(a.lastModified<e))&&(!f||!(a.lastModified>f)))}let d=function(a){let b=new Date;switch(a){case"last-hour":return new Date(b.getTime()-36e5);case"today":return new Date(b.getFullYear(),b.getMonth(),b.getDate());case"last-7-days":return new Date(b.getTime()-6048e5);case"last-30-days":return new Date(b.getTime()-2592e6);default:return null}}(b);return d?a.filter(a=>a.lastModified>=d):a},"rehydrateDates",0,function(a){return a.map(a=>({...a,lastModified:a.lastModified instanceof Date?a.lastModified:new Date(a.lastModified)}))}],27950);var b=a.i(72131);a.s(["useFilterState",0,function(a=[],c){let[d,e]=(0,b.useState)(c?.filterPreset??"all"),[f,g]=(0,b.useState)(c?.dateRange??{from:null,to:null}),[h,i]=(0,b.useState)(c?.currentPage??1),j=`${d}|${JSON.stringify(f)}|${JSON.stringify(a)}`,[k,l]=(0,b.useState)(j);j!==k&&(l(j),i(1));let m=(0,b.useCallback)(a=>{e(a),"custom"!==a&&g({from:null,to:null})},[]);return{filterPreset:d,dateRange:f,currentPage:h,setCurrentPage:i,handlePresetChange:m,handleDateRangeChange:(0,b.useCallback)((a,b)=>{e("custom"),g(c=>({...c,[a]:b?new Date(b):null}))},[]),clearFilters:(0,b.useCallback)(()=>{e("all"),g({from:null,to:null})},[])}}],45481);var c=a.i(64831);let d=(0,c.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);a.s(["Search",0,d],33540);var e=a.i(87924);let f=(0,c.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);a.s(["default",0,function({id:a,value:b,stringValue:c,onChange:d,"aria-label":g}){let h=null!=c?c:b?b.toISOString().split("T")[0]:"";return(0,e.jsxs)("div",{className:"relative group",children:[(0,e.jsx)("input",{type:"date",id:a,value:h,onChange:a=>d(a.target.value),"aria-label":g,className:"date-input px-3 py-2 pr-8 text-sm bg-input border border-border rounded-md text-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all hover:border-primary/50 w-[200px]"}),(0,e.jsx)("label",{htmlFor:a,className:"absolute right-2.5 top-1/2 -translate-y-1/2 cursor-pointer pointer-events-auto z-10 p-1 rounded hover:bg-muted/50 transition-colors",onClick:b=>{b.preventDefault();let c=document.getElementById(a);c&&"function"==typeof c.showPicker?c.showPicker():c?.click()},children:(0,e.jsx)(f,{className:"w-4 h-4 text-primary group-hover:text-primary/80 transition-colors"})})]})}],24451)},34484,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(97895),e=a.i(27950),f=a.i(45481),g=a.i(90619),h=a.i(95947);let i=(0,a.i(64831).default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var j=a.i(33540),k=a.i(38246),l=a.i(65967),m=a.i(24451),n=a.i(24121);a.s(["default",0,function({files:a,projectName:o}){let p=(0,g.useUrlParams)(),q=(0,c.useRef)(!1),[r,s]=(0,c.useState)(()=>p.get("sid")??""),{filterPreset:t,dateRange:u,currentPage:v,setCurrentPage:w,handlePresetChange:x,handleDateRangeChange:y,clearFilters:z}=(0,f.useFilterState)([r],{filterPreset:(0,h.paramToPreset)(p.get("preset")),dateRange:(0,h.paramsToDateRange)(p.get("from"),p.get("to")),currentPage:(0,h.paramToPage)(p.get("page"))});(0,c.useEffect)(()=>{if(!q.current){q.current=!0;return}p.setAll({preset:(0,h.presetToParam)(t),...(0,h.dateRangeToParams)(u),sid:r||void 0,page:(0,h.pageToParam)(v)})},[t,u,r,v]);let A=(0,c.useMemo)(()=>(0,e.rehydrateDates)(a),[a]),B=(0,c.useMemo)(()=>{var a;let b;return(a=(0,e.filterByDate)(A,t,u),!(b=r.trim().toLowerCase())?a:a.filter(a=>a.sessionId?.toLowerCase().includes(b))).sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime())},[A,r,t,u]),C=Math.max(1,Math.ceil(B.length/e.ITEMS_PER_PAGE));(0,c.useEffect)(()=>{v>C&&w(C)},[v,C,w]);let D=(v-1)*e.ITEMS_PER_PAGE,E=Math.min(D+e.ITEMS_PER_PAGE,B.length),F=B.slice(D,E),G="all"!==t||null!==u.from||null!==u.to||""!==r;return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"bg-card border border-border rounded-lg p-4 flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Filter by:"}),e.FILTER_PRESETS.map(a=>(0,b.jsx)("button",{onClick:()=>x(a.value),className:`px-3 py-1.5 text-sm rounded-md transition-colors ${t===a.value?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,children:a.label},a.value))]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-4",children:[(0,b.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Custom Range:"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(m.default,{id:"date-from",value:u.from,onChange:a=>y("from",a),"aria-label":"Filter from date"}),(0,b.jsx)("span",{className:"text-muted-foreground",children:"to"}),(0,b.jsx)(m.default,{id:"date-to",value:u.to,onChange:a=>y("to",a),"aria-label":"Filter to date"})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(j.Search,{className:"w-4 h-4 text-muted-foreground"}),(0,b.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Filter by Session ID:"}),(0,b.jsx)("input",{type:"text",value:r,onChange:a=>s(a.target.value),placeholder:"Enter session ID (UUID)",className:"px-3 py-2 text-sm bg-input border border-border rounded-md text-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all hover:border-primary/50 flex-1 max-w-md","aria-label":"Filter by session ID"}),G&&(0,b.jsx)("button",{onClick:()=>{z(),s("")},className:"px-3 py-2 text-sm bg-muted text-muted-foreground hover:bg-muted/80 rounded-md transition-colors",children:"Clear"})]}),(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:0===B.length?"No sessions found":(0,b.jsxs)(b.Fragment,{children:["Showing ",D+1,"-",E," of ",B.length," sessions",B.length!==A.length&&(0,b.jsxs)("span",{className:"ml-1",children:["(filtered from ",A.length," total)"]})]})})]}),(0,b.jsxs)("div",{className:"bg-card border border-border rounded-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{className:"border-b border-border bg-muted/50",children:[(0,b.jsx)("th",{scope:"col",className:"px-4 py-3 text-left text-sm font-semibold text-foreground w-12",children:(0,b.jsx)("span",{className:"sr-only",children:"Icon"})}),(0,b.jsx)("th",{scope:"col",className:"px-4 py-3 text-left text-sm font-semibold text-foreground",children:"SessionId"}),(0,b.jsx)("th",{scope:"col",className:"px-4 py-3 text-left text-sm font-semibold text-foreground",children:"Modified"})]})}),(0,b.jsx)("tbody",{children:0===F.length?(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:3,className:"px-4 py-8 text-center text-muted-foreground",children:"No sessions found matching the filter."})}):F.map(a=>(0,b.jsxs)("tr",{className:"border-b border-border hover:bg-muted/50 transition-colors",children:[(0,b.jsx)("td",{className:"px-4 py-3",children:(0,b.jsx)(i,{className:"w-5 h-5 text-primary"})}),(0,b.jsx)("td",{className:"px-4 py-3 max-w-md",children:(0,b.jsx)("div",{className:"flex items-center gap-1",children:a.sessionId?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.default,{href:`/project/${encodeURIComponent(o)}/session/${encodeURIComponent(a.sessionId)}`,className:"font-semibold text-foreground hover:text-primary transition-colors break-words break-all inline-block max-w-full",children:a.name.replace(/\.jsonl$/,"")}),(0,b.jsx)(n.CopyButton,{text:a.sessionId})]}):(0,b.jsx)("span",{className:"font-semibold text-foreground break-words break-all inline-block max-w-full",children:a.name.replace(/\.jsonl$/,"")})})}),(0,b.jsx)("td",{className:"px-4 py-3 text-sm text-muted-foreground",children:a.lastModifiedFormatted||(0,d.formatDate)(a.lastModified)})]},a.path))})]})}),B.length>0&&(0,b.jsx)(l.default,{currentPage:v,totalPages:C,onPageChange:w})]})]})}],34484)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=_0uy6m~m._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,96661,5014,e=>{"use strict";let r=(...e)=>e.filter((e,r,o)=>!!e&&""!==e.trim()&&o.indexOf(e)===r).join(" ").trim();e.s(["mergeClasses",0,r],96661);var o=e.i(71645),t={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let l=(0,o.createContext)({}),s=(0,o.forwardRef)(({color:e,size:s,strokeWidth:a,absoluteStrokeWidth:n,className:i="",children:d,iconNode:c,...m},p)=>{let{size:b=24,strokeWidth:u=2,absoluteStrokeWidth:f=!1,color:g="currentColor",className:h=""}=(0,o.useContext)(l)??{},k=n??f?24*Number(a??u)/Number(s??b):a??u;return(0,o.createElement)("svg",{ref:p,...t,width:s??b??t.width,height:s??b??t.height,stroke:e??g,strokeWidth:k,className:r("lucide",h,i),...!d&&!(e=>{for(let r in e)if(r.startsWith("aria-")||"role"===r||"title"===r)return!0;return!1})(m)&&{"aria-hidden":"true"},...m},[...c.map(([e,r])=>(0,o.createElement)(e,r)),...Array.isArray(d)?d:[d]])});e.s(["default",0,s],5014)},56420,e=>{"use strict";var r=e.i(71645),o=e.i(96661);let t=e=>{let r=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,r,o)=>o?o.toUpperCase():r.toLowerCase());return r.charAt(0).toUpperCase()+r.slice(1)};var l=e.i(5014);e.s(["default",0,(e,s)=>{let a=(0,r.forwardRef)(({className:a,...n},i)=>(0,r.createElement)(l.default,{ref:i,iconNode:s,className:(0,o.mergeClasses)(`lucide-${t(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,a),...n}));return a.displayName=t(e),a}],56420)},47163,e=>{"use strict";let r=(e=new Map,r=null,o)=>({nextPart:e,validators:r,classGroupId:o}),o=[],t=(e,r,o)=>{if(0==e.length-r)return o.classGroupId;let l=e[r],s=o.nextPart.get(l);if(s){let o=t(e,r+1,s);if(o)return o}let a=o.validators;if(null===a)return;let n=0===r?e.join("-"):e.slice(r).join("-"),i=a.length;for(let e=0;e<i;e++){let r=a[e];if(r.validator(n))return r.classGroupId}},l=(e,o)=>{let t=r();for(let r in e)s(e[r],t,r,o);return t},s=(e,r,o,t)=>{let l=e.length;for(let s=0;s<l;s++)a(e[s],r,o,t)},a=(e,r,o,t)=>{"string"==typeof e?n(e,r,o):"function"==typeof e?i(e,r,o,t):d(e,r,o,t)},n=(e,r,o)=>{(""===e?r:c(r,e)).classGroupId=o},i=(e,r,o,t)=>{m(e)?s(e(t),r,o,t):(null===r.validators&&(r.validators=[]),r.validators.push({classGroupId:o,validator:e}))},d=(e,r,o,t)=>{let l=Object.entries(e),a=l.length;for(let e=0;e<a;e++){let[a,n]=l[e];s(n,c(r,a),o,t)}},c=(e,o)=>{let t=e,l=o.split("-"),s=l.length;for(let e=0;e<s;e++){let o=l[e],s=t.nextPart.get(o);s||(s=r(),t.nextPart.set(o,s)),t=s}return t},m=e=>"isThemeGetter"in e&&!0===e.isThemeGetter,p=[],b=(e,r,o,t,l)=>({modifiers:e,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:t,isExternal:l}),u=/\s+/,f=e=>{let r;if("string"==typeof e)return e;let o="";for(let t=0;t<e.length;t++)e[t]&&(r=f(e[t]))&&(o&&(o+=" "),o+=r);return o},g=[],h=e=>{let r=r=>r[e]||g;return r.isThemeGetter=!0,r},k=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,w=/^\((?:(\w[\w-]*):)?(.+)\)$/i,x=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,v=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,y=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,z=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,j=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,C=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,N=e=>x.test(e),G=e=>!!e&&!Number.isNaN(Number(e)),W=e=>!!e&&Number.isInteger(Number(e)),$=e=>e.endsWith("%")&&G(e.slice(0,-1)),A=e=>v.test(e),O=()=>!0,I=e=>y.test(e)&&!z.test(e),T=()=>!1,S=e=>j.test(e),M=e=>C.test(e),P=e=>!E(e)&&!Z(e),U=e=>ee(e,el,T),E=e=>k.test(e),L=e=>ee(e,es,I),R=e=>ee(e,ea,G),B=e=>ee(e,ei,O),_=e=>ee(e,en,T),q=e=>ee(e,eo,T),D=e=>ee(e,et,M),K=e=>ee(e,ed,S),Z=e=>w.test(e),F=e=>er(e,es),H=e=>er(e,en),J=e=>er(e,eo),Q=e=>er(e,el),V=e=>er(e,et),X=e=>er(e,ed,!0),Y=e=>er(e,ei,!0),ee=(e,r,o)=>{let t=k.exec(e);return!!t&&(t[1]?r(t[1]):o(t[2]))},er=(e,r,o=!1)=>{let t=w.exec(e);return!!t&&(t[1]?r(t[1]):o)},eo=e=>"position"===e||"percentage"===e,et=e=>"image"===e||"url"===e,el=e=>"length"===e||"size"===e||"bg-size"===e,es=e=>"length"===e,ea=e=>"number"===e,en=e=>"family-name"===e,ei=e=>"number"===e||"weight"===e,ed=e=>"shadow"===e,ec=((e,...r)=>{let s,a,n,i,d=e=>{let r=a(e);if(r)return r;let o=((e,r)=>{let{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:l,sortModifiers:s}=r,a=[],n=e.trim().split(u),i="";for(let e=n.length-1;e>=0;e-=1){let r=n[e],{isExternal:d,modifiers:c,hasImportantModifier:m,baseClassName:p,maybePostfixModifierPosition:b}=o(r);if(d){i=r+(i.length>0?" "+i:i);continue}let u=!!b,f=t(u?p.substring(0,b):p);if(!f){if(!u||!(f=t(p))){i=r+(i.length>0?" "+i:i);continue}u=!1}let g=0===c.length?"":1===c.length?c[0]:s(c).join(":"),h=m?g+"!":g,k=h+f;if(a.indexOf(k)>-1)continue;a.push(k);let w=l(f,u);for(let e=0;e<w.length;++e){let r=w[e];a.push(h+r)}i=r+(i.length>0?" "+i:i)}return i})(e,s);return n(e,o),o};return i=c=>{var m;let u;return a=(s={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let r=0,o=Object.create(null),t=Object.create(null),l=(l,s)=>{o[l]=s,++r>e&&(r=0,t=o,o=Object.create(null))};return{get(e){let r=o[e];return void 0!==r?r:void 0!==(r=t[e])?(l(e,r),r):void 0},set(e,r){e in o?o[e]=r:l(e,r)}}})((m=r.reduce((e,r)=>r(e),e())).cacheSize),parseClassName:(e=>{let{prefix:r,experimentalParseClassName:o}=e,t=e=>{let r,o=[],t=0,l=0,s=0,a=e.length;for(let n=0;n<a;n++){let a=e[n];if(0===t&&0===l){if(":"===a){o.push(e.slice(s,n)),s=n+1;continue}if("/"===a){r=n;continue}}"["===a?t++:"]"===a?t--:"("===a?l++:")"===a&&l--}let n=0===o.length?e:e.slice(s),i=n,d=!1;return n.endsWith("!")?(i=n.slice(0,-1),d=!0):n.startsWith("!")&&(i=n.slice(1),d=!0),b(o,d,i,r&&r>s?r-s:void 0)};if(r){let e=r+":",o=t;t=r=>r.startsWith(e)?o(r.slice(e.length)):b(p,!1,r,void 0,!0)}if(o){let e=t;t=r=>o({className:r,parseClassName:e})}return t})(m),sortModifiers:(u=new Map,m.orderSensitiveModifiers.forEach((e,r)=>{u.set(e,1e6+r)}),e=>{let r=[],o=[];for(let t=0;t<e.length;t++){let l=e[t],s="["===l[0],a=u.has(l);s||a?(o.length>0&&(o.sort(),r.push(...o),o=[]),r.push(l)):o.push(l)}return o.length>0&&(o.sort(),r.push(...o)),r}),...(e=>{let r=(e=>{let{theme:r,classGroups:o}=e;return l(o,r)})(e),{conflictingClassGroups:s,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var o;let r,t,l;return -1===(o=e).slice(1,-1).indexOf(":")?void 0:(t=(r=o.slice(1,-1)).indexOf(":"),(l=r.slice(0,t))?"arbitrary.."+l:void 0)}let l=e.split("-"),s=+(""===l[0]&&l.length>1);return t(l,s,r)},getConflictingClassGroupIds:(e,r)=>{if(r){let r=a[e],t=s[e];if(r){if(t){let e=Array(t.length+r.length);for(let r=0;r<t.length;r++)e[r]=t[r];for(let o=0;o<r.length;o++)e[t.length+o]=r[o];return e}return r}return t||o}return s[e]||o}}})(m)}).cache.get,n=s.cache.set,i=d,d(c)},(...e)=>i(((...e)=>{let r,o,t=0,l="";for(;t<e.length;)(r=e[t++])&&(o=f(r))&&(l&&(l+=" "),l+=o);return l})(...e))})(()=>{let e=h("color"),r=h("font"),o=h("text"),t=h("font-weight"),l=h("tracking"),s=h("leading"),a=h("breakpoint"),n=h("container"),i=h("spacing"),d=h("radius"),c=h("shadow"),m=h("inset-shadow"),p=h("text-shadow"),b=h("drop-shadow"),u=h("blur"),f=h("perspective"),g=h("aspect"),k=h("ease"),w=h("animate"),x=()=>["auto","avoid","all","avoid-page","page","left","right","column"],v=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],y=()=>[...v(),Z,E],z=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],C=()=>[Z,E,i],I=()=>[N,"full","auto",...C()],T=()=>[W,"none","subgrid",Z,E],S=()=>["auto",{span:["full",W,Z,E]},W,Z,E],M=()=>[W,"auto",Z,E],ee=()=>["auto","min","max","fr",Z,E],er=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],eo=()=>["start","end","center","stretch","center-safe","end-safe"],et=()=>["auto",...C()],el=()=>[N,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...C()],es=()=>[N,"screen","full","dvw","lvw","svw","min","max","fit",...C()],ea=()=>[N,"screen","full","lh","dvh","lvh","svh","min","max","fit",...C()],en=()=>[e,Z,E],ei=()=>[...v(),J,q,{position:[Z,E]}],ed=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ec=()=>["auto","cover","contain",Q,U,{size:[Z,E]}],em=()=>[$,F,L],ep=()=>["","none","full",d,Z,E],eb=()=>["",G,F,L],eu=()=>["solid","dashed","dotted","double"],ef=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],eg=()=>[G,$,J,q],eh=()=>["","none",u,Z,E],ek=()=>["none",G,Z,E],ew=()=>["none",G,Z,E],ex=()=>[G,Z,E],ev=()=>[N,"full",...C()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[A],breakpoint:[A],color:[O],container:[A],"drop-shadow":[A],ease:["in","out","in-out"],font:[P],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[A],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[A],shadow:[A],spacing:["px",G],text:[A],"text-shadow":[A],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",N,E,Z,g]}],container:["container"],columns:[{columns:[G,E,Z,n]}],"break-after":[{"break-after":x()}],"break-before":[{"break-before":x()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:y()}],overflow:[{overflow:z()}],"overflow-x":[{"overflow-x":z()}],"overflow-y":[{"overflow-y":z()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:I()}],"inset-x":[{"inset-x":I()}],"inset-y":[{"inset-y":I()}],start:[{"inset-s":I(),start:I()}],end:[{"inset-e":I(),end:I()}],"inset-bs":[{"inset-bs":I()}],"inset-be":[{"inset-be":I()}],top:[{top:I()}],right:[{right:I()}],bottom:[{bottom:I()}],left:[{left:I()}],visibility:["visible","invisible","collapse"],z:[{z:[W,"auto",Z,E]}],basis:[{basis:[N,"full","auto",n,...C()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[G,N,"auto","initial","none",E]}],grow:[{grow:["",G,Z,E]}],shrink:[{shrink:["",G,Z,E]}],order:[{order:[W,"first","last","none",Z,E]}],"grid-cols":[{"grid-cols":T()}],"col-start-end":[{col:S()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":T()}],"row-start-end":[{row:S()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ee()}],"auto-rows":[{"auto-rows":ee()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...er(),"normal"]}],"justify-items":[{"justify-items":[...eo(),"normal"]}],"justify-self":[{"justify-self":["auto",...eo()]}],"align-content":[{content:["normal",...er()]}],"align-items":[{items:[...eo(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...eo(),{baseline:["","last"]}]}],"place-content":[{"place-content":er()}],"place-items":[{"place-items":[...eo(),"baseline"]}],"place-self":[{"place-self":["auto",...eo()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pbs:[{pbs:C()}],pbe:[{pbe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:et()}],mx:[{mx:et()}],my:[{my:et()}],ms:[{ms:et()}],me:[{me:et()}],mbs:[{mbs:et()}],mbe:[{mbe:et()}],mt:[{mt:et()}],mr:[{mr:et()}],mb:[{mb:et()}],ml:[{ml:et()}],"space-x":[{"space-x":C()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":C()}],"space-y-reverse":["space-y-reverse"],size:[{size:el()}],"inline-size":[{inline:["auto",...es()]}],"min-inline-size":[{"min-inline":["auto",...es()]}],"max-inline-size":[{"max-inline":["none",...es()]}],"block-size":[{block:["auto",...ea()]}],"min-block-size":[{"min-block":["auto",...ea()]}],"max-block-size":[{"max-block":["none",...ea()]}],w:[{w:[n,"screen",...el()]}],"min-w":[{"min-w":[n,"screen","none",...el()]}],"max-w":[{"max-w":[n,"screen","none","prose",{screen:[a]},...el()]}],h:[{h:["screen","lh",...el()]}],"min-h":[{"min-h":["screen","lh","none",...el()]}],"max-h":[{"max-h":["screen","lh",...el()]}],"font-size":[{text:["base",o,F,L]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,Y,B]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",$,E]}],"font-family":[{font:[H,_,r]}],"font-features":[{"font-features":[E]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,Z,E]}],"line-clamp":[{"line-clamp":[G,"none",Z,R]}],leading:[{leading:[s,...C()]}],"list-image":[{"list-image":["none",Z,E]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Z,E]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:en()}],"text-color":[{text:en()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...eu(),"wavy"]}],"text-decoration-thickness":[{decoration:[G,"from-font","auto",Z,L]}],"text-decoration-color":[{decoration:en()}],"underline-offset":[{"underline-offset":[G,"auto",Z,E]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:C()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Z,E]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Z,E]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ei()}],"bg-repeat":[{bg:ed()}],"bg-size":[{bg:ec()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},W,Z,E],radial:["",Z,E],conic:[W,Z,E]},V,D]}],"bg-color":[{bg:en()}],"gradient-from-pos":[{from:em()}],"gradient-via-pos":[{via:em()}],"gradient-to-pos":[{to:em()}],"gradient-from":[{from:en()}],"gradient-via":[{via:en()}],"gradient-to":[{to:en()}],rounded:[{rounded:ep()}],"rounded-s":[{"rounded-s":ep()}],"rounded-e":[{"rounded-e":ep()}],"rounded-t":[{"rounded-t":ep()}],"rounded-r":[{"rounded-r":ep()}],"rounded-b":[{"rounded-b":ep()}],"rounded-l":[{"rounded-l":ep()}],"rounded-ss":[{"rounded-ss":ep()}],"rounded-se":[{"rounded-se":ep()}],"rounded-ee":[{"rounded-ee":ep()}],"rounded-es":[{"rounded-es":ep()}],"rounded-tl":[{"rounded-tl":ep()}],"rounded-tr":[{"rounded-tr":ep()}],"rounded-br":[{"rounded-br":ep()}],"rounded-bl":[{"rounded-bl":ep()}],"border-w":[{border:eb()}],"border-w-x":[{"border-x":eb()}],"border-w-y":[{"border-y":eb()}],"border-w-s":[{"border-s":eb()}],"border-w-e":[{"border-e":eb()}],"border-w-bs":[{"border-bs":eb()}],"border-w-be":[{"border-be":eb()}],"border-w-t":[{"border-t":eb()}],"border-w-r":[{"border-r":eb()}],"border-w-b":[{"border-b":eb()}],"border-w-l":[{"border-l":eb()}],"divide-x":[{"divide-x":eb()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":eb()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...eu(),"hidden","none"]}],"divide-style":[{divide:[...eu(),"hidden","none"]}],"border-color":[{border:en()}],"border-color-x":[{"border-x":en()}],"border-color-y":[{"border-y":en()}],"border-color-s":[{"border-s":en()}],"border-color-e":[{"border-e":en()}],"border-color-bs":[{"border-bs":en()}],"border-color-be":[{"border-be":en()}],"border-color-t":[{"border-t":en()}],"border-color-r":[{"border-r":en()}],"border-color-b":[{"border-b":en()}],"border-color-l":[{"border-l":en()}],"divide-color":[{divide:en()}],"outline-style":[{outline:[...eu(),"none","hidden"]}],"outline-offset":[{"outline-offset":[G,Z,E]}],"outline-w":[{outline:["",G,F,L]}],"outline-color":[{outline:en()}],shadow:[{shadow:["","none",c,X,K]}],"shadow-color":[{shadow:en()}],"inset-shadow":[{"inset-shadow":["none",m,X,K]}],"inset-shadow-color":[{"inset-shadow":en()}],"ring-w":[{ring:eb()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:en()}],"ring-offset-w":[{"ring-offset":[G,L]}],"ring-offset-color":[{"ring-offset":en()}],"inset-ring-w":[{"inset-ring":eb()}],"inset-ring-color":[{"inset-ring":en()}],"text-shadow":[{"text-shadow":["none",p,X,K]}],"text-shadow-color":[{"text-shadow":en()}],opacity:[{opacity:[G,Z,E]}],"mix-blend":[{"mix-blend":[...ef(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ef()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[G]}],"mask-image-linear-from-pos":[{"mask-linear-from":eg()}],"mask-image-linear-to-pos":[{"mask-linear-to":eg()}],"mask-image-linear-from-color":[{"mask-linear-from":en()}],"mask-image-linear-to-color":[{"mask-linear-to":en()}],"mask-image-t-from-pos":[{"mask-t-from":eg()}],"mask-image-t-to-pos":[{"mask-t-to":eg()}],"mask-image-t-from-color":[{"mask-t-from":en()}],"mask-image-t-to-color":[{"mask-t-to":en()}],"mask-image-r-from-pos":[{"mask-r-from":eg()}],"mask-image-r-to-pos":[{"mask-r-to":eg()}],"mask-image-r-from-color":[{"mask-r-from":en()}],"mask-image-r-to-color":[{"mask-r-to":en()}],"mask-image-b-from-pos":[{"mask-b-from":eg()}],"mask-image-b-to-pos":[{"mask-b-to":eg()}],"mask-image-b-from-color":[{"mask-b-from":en()}],"mask-image-b-to-color":[{"mask-b-to":en()}],"mask-image-l-from-pos":[{"mask-l-from":eg()}],"mask-image-l-to-pos":[{"mask-l-to":eg()}],"mask-image-l-from-color":[{"mask-l-from":en()}],"mask-image-l-to-color":[{"mask-l-to":en()}],"mask-image-x-from-pos":[{"mask-x-from":eg()}],"mask-image-x-to-pos":[{"mask-x-to":eg()}],"mask-image-x-from-color":[{"mask-x-from":en()}],"mask-image-x-to-color":[{"mask-x-to":en()}],"mask-image-y-from-pos":[{"mask-y-from":eg()}],"mask-image-y-to-pos":[{"mask-y-to":eg()}],"mask-image-y-from-color":[{"mask-y-from":en()}],"mask-image-y-to-color":[{"mask-y-to":en()}],"mask-image-radial":[{"mask-radial":[Z,E]}],"mask-image-radial-from-pos":[{"mask-radial-from":eg()}],"mask-image-radial-to-pos":[{"mask-radial-to":eg()}],"mask-image-radial-from-color":[{"mask-radial-from":en()}],"mask-image-radial-to-color":[{"mask-radial-to":en()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":v()}],"mask-image-conic-pos":[{"mask-conic":[G]}],"mask-image-conic-from-pos":[{"mask-conic-from":eg()}],"mask-image-conic-to-pos":[{"mask-conic-to":eg()}],"mask-image-conic-from-color":[{"mask-conic-from":en()}],"mask-image-conic-to-color":[{"mask-conic-to":en()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ei()}],"mask-repeat":[{mask:ed()}],"mask-size":[{mask:ec()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Z,E]}],filter:[{filter:["","none",Z,E]}],blur:[{blur:eh()}],brightness:[{brightness:[G,Z,E]}],contrast:[{contrast:[G,Z,E]}],"drop-shadow":[{"drop-shadow":["","none",b,X,K]}],"drop-shadow-color":[{"drop-shadow":en()}],grayscale:[{grayscale:["",G,Z,E]}],"hue-rotate":[{"hue-rotate":[G,Z,E]}],invert:[{invert:["",G,Z,E]}],saturate:[{saturate:[G,Z,E]}],sepia:[{sepia:["",G,Z,E]}],"backdrop-filter":[{"backdrop-filter":["","none",Z,E]}],"backdrop-blur":[{"backdrop-blur":eh()}],"backdrop-brightness":[{"backdrop-brightness":[G,Z,E]}],"backdrop-contrast":[{"backdrop-contrast":[G,Z,E]}],"backdrop-grayscale":[{"backdrop-grayscale":["",G,Z,E]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[G,Z,E]}],"backdrop-invert":[{"backdrop-invert":["",G,Z,E]}],"backdrop-opacity":[{"backdrop-opacity":[G,Z,E]}],"backdrop-saturate":[{"backdrop-saturate":[G,Z,E]}],"backdrop-sepia":[{"backdrop-sepia":["",G,Z,E]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Z,E]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[G,"initial",Z,E]}],ease:[{ease:["linear","initial",k,Z,E]}],delay:[{delay:[G,Z,E]}],animate:[{animate:["none",w,Z,E]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[f,Z,E]}],"perspective-origin":[{"perspective-origin":y()}],rotate:[{rotate:ek()}],"rotate-x":[{"rotate-x":ek()}],"rotate-y":[{"rotate-y":ek()}],"rotate-z":[{"rotate-z":ek()}],scale:[{scale:ew()}],"scale-x":[{"scale-x":ew()}],"scale-y":[{"scale-y":ew()}],"scale-z":[{"scale-z":ew()}],"scale-3d":["scale-3d"],skew:[{skew:ex()}],"skew-x":[{"skew-x":ex()}],"skew-y":[{"skew-y":ex()}],transform:[{transform:[Z,E,"","none","gpu","cpu"]}],"transform-origin":[{origin:y()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ev()}],"translate-x":[{"translate-x":ev()}],"translate-y":[{"translate-y":ev()}],"translate-z":[{"translate-z":ev()}],"translate-none":["translate-none"],accent:[{accent:en()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:en()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Z,E]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mbs":[{"scroll-mbs":C()}],"scroll-mbe":[{"scroll-mbe":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pbs":[{"scroll-pbs":C()}],"scroll-pbe":[{"scroll-pbe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Z,E]}],fill:[{fill:["none",...en()]}],"stroke-w":[{stroke:[G,F,L,R]}],stroke:[{stroke:["none",...en()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});e.s(["cn",0,function(...e){return ec(function(){for(var e,r,o=0,t="",l=arguments.length;o<l;o++)(e=arguments[o])&&(r=function e(r){var o,t,l="";if("string"==typeof r||"number"==typeof r)l+=r;else if("object"==typeof r)if(Array.isArray(r)){var s=r.length;for(o=0;o<s;o++)r[o]&&(t=e(r[o]))&&(l&&(l+=" "),l+=t)}else for(t in r)r[t]&&(l&&(l+=" "),l+=t);return l}(e))&&(t&&(t+=" "),t+=r);return t}(e))},"formatDate",0,function(e){return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0}).format(e)}],47163)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,8734,89664,e=>{"use strict";var t=e.i(56420);let r=(0,t.default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,r],8734);let a=(0,t.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,a],89664)},24380,e=>{"use strict";var t=e.i(43476),r=e.i(71645),a=e.i(8734),s=e.i(89664),l=e.i(47163);function n(e){let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t);try{return t.select(),document.execCommand("copy")}finally{document.body.removeChild(t)}}e.s(["CopyButton",0,function({text:e,className:o}){let[i,d]=(0,r.useState)(!1),c=(0,r.useCallback)(async()=>{try{if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(e);else if(!n(e))throw Error("Both clipboard methods failed");d(!0),setTimeout(()=>d(!1),2e3)}catch(t){console.error("Failed to copy to clipboard:",t);try{n(e)&&(d(!0),setTimeout(()=>d(!1),2e3))}catch{}}},[e]);return(0,t.jsx)("button",{onClick:c,title:"Copy to clipboard",className:(0,l.cn)("inline-flex items-center justify-center rounded p-1 text-muted-foreground hover:text-foreground hover:bg-muted/80 transition-colors",o),children:i?(0,t.jsx)(s.Check,{className:"w-3.5 h-3.5 text-green-500"}):(0,t.jsx)(a.Copy,{className:"w-3.5 h-3.5"})})}])},24071,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",0,t],24071)},67927,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,t],67927)},73520,e=>{"use strict";var t=e.i(43476),r=e.i(24071),a=e.i(67927);e.s(["default",0,function({currentPage:e,totalPages:s,onPageChange:l}){if(s<=1)return null;let n=e=>`px-3 py-2 text-sm rounded-md transition-colors flex items-center gap-1 bg-muted text-muted-foreground ${e?"opacity-50 cursor-not-allowed":"hover:bg-muted/80"}`;return(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4",children:[(0,t.jsxs)("button",{onClick:()=>l(e-1),disabled:1===e,className:n(1===e),"aria-label":"Previous page",children:[(0,t.jsx)(r.ChevronLeft,{className:"w-4 h-4"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Previous"})]}),(0,t.jsx)("div",{className:"flex items-center gap-1",children:(()=>{if(s<=7)return Array.from({length:s},(e,t)=>t+1);let t=[1],r=Math.max(2,e-1),a=Math.min(s-1,e+1);e<=3&&(a=Math.min(5,s-1)),e>=s-2&&(r=Math.max(2,s-4)),r>2&&t.push("ellipsis-start");for(let e=r;e<=a;e++)t.push(e);return a<s-1&&t.push("ellipsis-end"),t.push(s),t})().map(r=>"string"==typeof r?(0,t.jsx)("span",{className:"px-2 text-muted-foreground",children:"..."},r):(0,t.jsx)("button",{onClick:()=>l(r),className:`min-w-[2.5rem] px-3 py-2 text-sm rounded-md transition-colors ${e===r?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,"aria-label":`Page ${r}`,"aria-current":e===r?"page":void 0,children:r},r))}),(0,t.jsxs)("button",{onClick:()=>l(e+1),disabled:e===s,className:n(e===s),"aria-label":"Next page",children:[(0,t.jsx)("span",{className:"hidden sm:inline",children:"Next"}),(0,t.jsx)(a.ChevronRight,{className:"w-4 h-4"})]})]})}])},80060,2711,e=>{"use strict";var t=e.i(18566),r=e.i(71645);function a(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${a}`}function s(e){var t;if(!e||(t=e,!/^\d{4}-\d{2}-\d{2}$/.test(t)||isNaN(Date.parse(t))))return null;let[r,a,s]=e.split("-").map(Number);return new Date(r,a-1,s,12,0,0)}e.s(["useUrlParams",0,function(){let e=(0,t.useSearchParams)(),a=(0,t.useRouter)(),s=(0,t.usePathname)(),l=(0,r.useRef)(null),n=(0,r.useCallback)(t=>e.get(t),[e]),o=(0,r.useCallback)(()=>new URLSearchParams(e.toString()),[e]),i=(0,r.useCallback)(t=>{l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{let r=new URLSearchParams(e.toString());for(let[e,a]of Object.entries(t))void 0===a||""===a?r.delete(e):r.set(e,a);let l=r.toString(),n=l?`${s}?${l}`:s;a.replace(n,{scroll:!1})},150)},[e,s,a]);return(0,r.useEffect)(()=>()=>{l.current&&clearTimeout(l.current)},[]),{get:n,getAll:o,setAll:i}}],80060),e.s(["dateRangeToParams",0,function(e){let t={};return e.from&&(t.from=a(e.from)),e.to&&(t.to=a(e.to)),t},"keywordsToParam",0,function(e){if(0!==e.length)return e.map(e=>encodeURIComponent(e)).join(",")},"pageToParam",0,function(e){return e<=1?void 0:String(e)},"paramToKeywords",0,function(e){return e?e.split(",").map(e=>decodeURIComponent(e.trim())).filter(e=>e.length>0):[]},"paramToPage",0,function(e){if(!e)return 1;let t=parseInt(e,10);return Number.isFinite(t)&&t>=1?t:1},"paramToPreset",0,function(e){return e&&["all","last-hour","today","last-7-days","last-30-days","custom"].includes(e)?e:"all"},"paramsToDateRange",0,function(e,t){return{from:s(e),to:s(t)}},"presetToParam",0,function(e){return"all"===e?void 0:e}],2711)},20087,30005,66595,85898,e=>{"use strict";e.s(["FILTER_PRESETS",0,[{value:"all",label:"All"},{value:"last-hour",label:"Last Hour"},{value:"today",label:"Today"},{value:"last-7-days",label:"Last 7 Days"},{value:"last-30-days",label:"Last 30 Days"}],"ITEMS_PER_PAGE",0,25,"filterByDate",0,function(e,t,r){if("all"===t)return e;if("custom"===t){let t,a,s=r.from?((t=new Date(r.from)).setHours(0,0,0,0),t):null,l=r.to?((a=new Date(r.to)).setHours(23,59,59,999),a):null;return e.filter(e=>(!s||!(e.lastModified<s))&&(!l||!(e.lastModified>l)))}let a=function(e){let t=new Date;switch(e){case"last-hour":return new Date(t.getTime()-36e5);case"today":return new Date(t.getFullYear(),t.getMonth(),t.getDate());case"last-7-days":return new Date(t.getTime()-6048e5);case"last-30-days":return new Date(t.getTime()-2592e6);default:return null}}(t);return a?e.filter(e=>e.lastModified>=a):e},"rehydrateDates",0,function(e){return e.map(e=>({...e,lastModified:e.lastModified instanceof Date?e.lastModified:new Date(e.lastModified)}))}],20087);var t=e.i(71645);e.s(["useFilterState",0,function(e=[],r){let[a,s]=(0,t.useState)(r?.filterPreset??"all"),[l,n]=(0,t.useState)(r?.dateRange??{from:null,to:null}),[o,i]=(0,t.useState)(r?.currentPage??1),d=`${a}|${JSON.stringify(l)}|${JSON.stringify(e)}`,[c,u]=(0,t.useState)(d);d!==c&&(u(d),i(1));let m=(0,t.useCallback)(e=>{s(e),"custom"!==e&&n({from:null,to:null})},[]);return{filterPreset:a,dateRange:l,currentPage:o,setCurrentPage:i,handlePresetChange:m,handleDateRangeChange:(0,t.useCallback)((e,t)=>{s("custom"),n(r=>({...r,[e]:t?new Date(t):null}))},[]),clearFilters:(0,t.useCallback)(()=>{s("all"),n({from:null,to:null})},[])}}],30005);var r=e.i(56420);let a=(0,r.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",0,a],66595);var s=e.i(43476);let l=(0,r.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);e.s(["default",0,function({id:e,value:t,stringValue:r,onChange:a,"aria-label":n}){let o=null!=r?r:t?t.toISOString().split("T")[0]:"";return(0,s.jsxs)("div",{className:"relative group",children:[(0,s.jsx)("input",{type:"date",id:e,value:o,onChange:e=>a(e.target.value),"aria-label":n,className:"date-input px-3 py-2 pr-8 text-sm bg-input border border-border rounded-md text-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all hover:border-primary/50 w-[200px]"}),(0,s.jsx)("label",{htmlFor:e,className:"absolute right-2.5 top-1/2 -translate-y-1/2 cursor-pointer pointer-events-auto z-10 p-1 rounded hover:bg-muted/50 transition-colors",onClick:t=>{t.preventDefault();let r=document.getElementById(e);r&&"function"==typeof r.showPicker?r.showPicker():r?.click()},children:(0,s.jsx)(l,{className:"w-4 h-4 text-primary group-hover:text-primary/80 transition-colors"})})]})}],85898)},73294,e=>{"use strict";var t=e.i(43476),r=e.i(71645),a=e.i(47163),s=e.i(20087),l=e.i(30005),n=e.i(80060),o=e.i(2711);let i=(0,e.i(56420).default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var d=e.i(66595),c=e.i(22016),u=e.i(73520),m=e.i(85898),f=e.i(24380);e.s(["default",0,function({files:e,projectName:h}){let p=(0,n.useUrlParams)(),x=(0,r.useRef)(!1),[g,b]=(0,r.useState)(()=>p.get("sid")??""),{filterPreset:y,dateRange:v,currentPage:j,setCurrentPage:N,handlePresetChange:w,handleDateRangeChange:C,clearFilters:k}=(0,l.useFilterState)([g],{filterPreset:(0,o.paramToPreset)(p.get("preset")),dateRange:(0,o.paramsToDateRange)(p.get("from"),p.get("to")),currentPage:(0,o.paramToPage)(p.get("page"))});(0,r.useEffect)(()=>{if(!x.current){x.current=!0;return}p.setAll({preset:(0,o.presetToParam)(y),...(0,o.dateRangeToParams)(v),sid:g||void 0,page:(0,o.pageToParam)(j)})},[y,v,g,j]);let P=(0,r.useMemo)(()=>(0,s.rehydrateDates)(e),[e]),T=(0,r.useMemo)(()=>{var e;let t;return(e=(0,s.filterByDate)(P,y,v),!(t=g.trim().toLowerCase())?e:e.filter(e=>e.sessionId?.toLowerCase().includes(t))).sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime())},[P,g,y,v]),S=Math.max(1,Math.ceil(T.length/s.ITEMS_PER_PAGE));(0,r.useEffect)(()=>{j>S&&N(S)},[j,S,N]);let M=(j-1)*s.ITEMS_PER_PAGE,D=Math.min(M+s.ITEMS_PER_PAGE,T.length),R=T.slice(M,D),E="all"!==y||null!==v.from||null!==v.to||""!==g;return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg p-4 flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Filter by:"}),s.FILTER_PRESETS.map(e=>(0,t.jsx)("button",{onClick:()=>w(e.value),className:`px-3 py-1.5 text-sm rounded-md transition-colors ${y===e.value?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,children:e.label},e.value))]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-4",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Custom Range:"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(m.default,{id:"date-from",value:v.from,onChange:e=>C("from",e),"aria-label":"Filter from date"}),(0,t.jsx)("span",{className:"text-muted-foreground",children:"to"}),(0,t.jsx)(m.default,{id:"date-to",value:v.to,onChange:e=>C("to",e),"aria-label":"Filter to date"})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(d.Search,{className:"w-4 h-4 text-muted-foreground"}),(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Filter by Session ID:"}),(0,t.jsx)("input",{type:"text",value:g,onChange:e=>b(e.target.value),placeholder:"Enter session ID (UUID)",className:"px-3 py-2 text-sm bg-input border border-border rounded-md text-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-all hover:border-primary/50 flex-1 max-w-md","aria-label":"Filter by session ID"}),E&&(0,t.jsx)("button",{onClick:()=>{k(),b("")},className:"px-3 py-2 text-sm bg-muted text-muted-foreground hover:bg-muted/80 rounded-md transition-colors",children:"Clear"})]}),(0,t.jsx)("div",{className:"text-sm text-muted-foreground",children:0===T.length?"No sessions found":(0,t.jsxs)(t.Fragment,{children:["Showing ",M+1,"-",D," of ",T.length," sessions",T.length!==P.length&&(0,t.jsxs)("span",{className:"ml-1",children:["(filtered from ",P.length," total)"]})]})})]}),(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg overflow-hidden",children:[(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"border-b border-border bg-muted/50",children:[(0,t.jsx)("th",{scope:"col",className:"px-4 py-3 text-left text-sm font-semibold text-foreground w-12",children:(0,t.jsx)("span",{className:"sr-only",children:"Icon"})}),(0,t.jsx)("th",{scope:"col",className:"px-4 py-3 text-left text-sm font-semibold text-foreground",children:"SessionId"}),(0,t.jsx)("th",{scope:"col",className:"px-4 py-3 text-left text-sm font-semibold text-foreground",children:"Modified"})]})}),(0,t.jsx)("tbody",{children:0===R.length?(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:3,className:"px-4 py-8 text-center text-muted-foreground",children:"No sessions found matching the filter."})}):R.map(e=>(0,t.jsxs)("tr",{className:"border-b border-border hover:bg-muted/50 transition-colors",children:[(0,t.jsx)("td",{className:"px-4 py-3",children:(0,t.jsx)(i,{className:"w-5 h-5 text-primary"})}),(0,t.jsx)("td",{className:"px-4 py-3 max-w-md",children:(0,t.jsx)("div",{className:"flex items-center gap-1",children:e.sessionId?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.default,{href:`/project/${encodeURIComponent(h)}/session/${encodeURIComponent(e.sessionId)}`,className:"font-semibold text-foreground hover:text-primary transition-colors break-words break-all inline-block max-w-full",children:e.name.replace(/\.jsonl$/,"")}),(0,t.jsx)(f.CopyButton,{text:e.sessionId})]}):(0,t.jsx)("span",{className:"font-semibold text-foreground break-words break-all inline-block max-w-full",children:e.name.replace(/\.jsonl$/,"")})})}),(0,t.jsx)("td",{className:"px-4 py-3 text-sm text-muted-foreground",children:e.lastModifiedFormatted||(0,a.formatDate)(e.lastModified)})]},e.path))})]})}),T.length>0&&(0,t.jsx)(u.default,{currentPage:j,totalPages:S,onPageChange:N})]})]})}],73294)}]);
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,8734,89664,e=>{"use strict";var t=e.i(56420);let r=(0,t.default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,r],8734);let s=(0,t.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,s],89664)},84026,29407,16306,e=>{"use strict";var t=e.i(56420);let r=(0,t.default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["ShieldCheck",0,r],84026);let s=(0,t.default)("shield-x",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]);e.s(["ShieldX",0,s],29407);let n=(0,t.default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);e.s(["ShieldAlert",0,n],16306)},66794,62301,e=>{"use strict";let t=(0,e.i(56420).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Settings",0,t],66794);var r=e.i(95187);let s=(0,r.createServerReference)("608c099d99d1ba671f4f826f03425f19c7e90723e9",r.callServer,void 0,r.findSourceMapURL,"searchHookActivityAction");e.s(["searchHookActivityAction",0,s],62301)},34713,e=>{"use strict";e.s(["formatDuration",0,function(e){if(e<1e3)return`${e}ms`;let t=e/1e3;if(t<60)return`${t.toFixed(1)}s`;let r=Math.floor(t/60);if(r>=60){let e=Math.floor(r/60);return`${e}h ${r%60}m`}let s=(t%60).toFixed(0);return`${r}m ${s}s`},"formatRelativeTime",0,function(e){let t=Date.now()-e;return t<6e4?`${Math.max(1,Math.floor(t/1e3))}s ago`:t<36e5?`${Math.floor(t/6e4)}m ago`:t<864e5?`${Math.floor(t/36e5)}h ago`:`${Math.floor(t/864e5)}d ago`}])},24071,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",0,t],24071)},67927,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,t],67927)},73520,e=>{"use strict";var t=e.i(43476),r=e.i(24071),s=e.i(67927);e.s(["default",0,function({currentPage:e,totalPages:n,onPageChange:a}){if(n<=1)return null;let o=e=>`px-3 py-2 text-sm rounded-md transition-colors flex items-center gap-1 bg-muted text-muted-foreground ${e?"opacity-50 cursor-not-allowed":"hover:bg-muted/80"}`;return(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4",children:[(0,t.jsxs)("button",{onClick:()=>a(e-1),disabled:1===e,className:o(1===e),"aria-label":"Previous page",children:[(0,t.jsx)(r.ChevronLeft,{className:"w-4 h-4"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Previous"})]}),(0,t.jsx)("div",{className:"flex items-center gap-1",children:(()=>{if(n<=7)return Array.from({length:n},(e,t)=>t+1);let t=[1],r=Math.max(2,e-1),s=Math.min(n-1,e+1);e<=3&&(s=Math.min(5,n-1)),e>=n-2&&(r=Math.max(2,n-4)),r>2&&t.push("ellipsis-start");for(let e=r;e<=s;e++)t.push(e);return s<n-1&&t.push("ellipsis-end"),t.push(n),t})().map(r=>"string"==typeof r?(0,t.jsx)("span",{className:"px-2 text-muted-foreground",children:"..."},r):(0,t.jsx)("button",{onClick:()=>a(r),className:`min-w-[2.5rem] px-3 py-2 text-sm rounded-md transition-colors ${e===r?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,"aria-label":`Page ${r}`,"aria-current":e===r?"page":void 0,children:r},r))}),(0,t.jsxs)("button",{onClick:()=>a(e+1),disabled:e===n,className:o(e===n),"aria-label":"Next page",children:[(0,t.jsx)("span",{className:"hidden sm:inline",children:"Next"}),(0,t.jsx)(s.ChevronRight,{className:"w-4 h-4"})]})]})}])},80060,2711,e=>{"use strict";var t=e.i(18566),r=e.i(71645);function s(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${s}`}function n(e){var t;if(!e||(t=e,!/^\d{4}-\d{2}-\d{2}$/.test(t)||isNaN(Date.parse(t))))return null;let[r,s,n]=e.split("-").map(Number);return new Date(r,s-1,n,12,0,0)}e.s(["useUrlParams",0,function(){let e=(0,t.useSearchParams)(),s=(0,t.useRouter)(),n=(0,t.usePathname)(),a=(0,r.useRef)(null),o=(0,r.useCallback)(t=>e.get(t),[e]),l=(0,r.useCallback)(()=>new URLSearchParams(e.toString()),[e]),i=(0,r.useCallback)(t=>{a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{let r=new URLSearchParams(e.toString());for(let[e,s]of Object.entries(t))void 0===s||""===s?r.delete(e):r.set(e,s);let a=r.toString(),o=a?`${n}?${a}`:n;s.replace(o,{scroll:!1})},150)},[e,n,s]);return(0,r.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),{get:o,getAll:l,setAll:i}}],80060),e.s(["dateRangeToParams",0,function(e){let t={};return e.from&&(t.from=s(e.from)),e.to&&(t.to=s(e.to)),t},"keywordsToParam",0,function(e){if(0!==e.length)return e.map(e=>encodeURIComponent(e)).join(",")},"pageToParam",0,function(e){return e<=1?void 0:String(e)},"paramToKeywords",0,function(e){return e?e.split(",").map(e=>decodeURIComponent(e.trim())).filter(e=>e.length>0):[]},"paramToPage",0,function(e){if(!e)return 1;let t=parseInt(e,10);return Number.isFinite(t)&&t>=1?t:1},"paramToPreset",0,function(e){return e&&["all","last-hour","today","last-7-days","last-30-days","custom"].includes(e)?e:"all"},"paramsToDateRange",0,function(e,t){return{from:n(e),to:n(t)}},"presetToParam",0,function(e){return"all"===e?void 0:e}],2711)},63676,e=>{"use strict";let t=(0,e.i(56420).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],63676)},64245,e=>{"use strict";var t=e.i(43476),r=e.i(71645),s=e.i(74080),n=e.i(22016),a=e.i(56420);let o=(0,a.default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);var l=e.i(84026),i=e.i(29407),d=e.i(16306),c=e.i(82954),m=e.i(16327),u=e.i(8734),x=e.i(89664),p=e.i(66794);let h=(0,a.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);var f=e.i(63676),g=e.i(73520),b=e.i(95187);let j=(0,b.createServerReference)("40ca2bca7d631f06465d3788d903e22110388b6097",b.callServer,void 0,b.findSourceMapURL,"getHookActivityAction");var v=e.i(62301);let y=(0,b.createServerReference)("00657eebb38f19d2a7212e4ffd6d03b87eb14e4319",b.callServer,void 0,b.findSourceMapURL,"getHooksConfigAction"),N=(0,b.createServerReference)("6025f9d485bf713e077aef3be0776ee10173e66609",b.callServer,void 0,b.findSourceMapURL,"togglePolicyAction"),k=(0,b.createServerReference)("60f033bafe2fa587e0a86f0a2f2d1c4fb7edf3b49b",b.callServer,void 0,b.findSourceMapURL,"installHooksWebAction"),w=(0,b.createServerReference)("6060fafc442341b89f301801fbededeabc28003a1d",b.callServer,void 0,b.findSourceMapURL,"removeHooksWebAction"),S=(0,b.createServerReference)("60b909baabd785dbafb3089f3c933d529557df1baa",b.callServer,void 0,b.findSourceMapURL,"updatePolicyParamsAction");var C=e.i(85881),P=e.i(80060),T=e.i(2711),$=e.i(34713),R=e.i(67881);function A({sessionId:e,transcriptPath:r}){if(!e)return(0,t.jsx)("span",{className:"text-muted-foreground",children:"\\u2014"});let s=r?function(e){let t=e.replace(/\\/g,"/").split("/").filter(Boolean);if(t.length<2)return null;let r=t[t.length-2];return!r||r.startsWith(".")?null:r}(r):null,a=e?e.slice(0,8):"—";return s?(0,t.jsx)(n.default,{href:`/project/${encodeURIComponent(s)}/session/${encodeURIComponent(e)}`,className:"text-primary hover:underline font-mono",onClick:e=>e.stopPropagation(),children:a}):(0,t.jsx)("span",{className:"text-muted-foreground font-mono",children:a})}function M({decision:e}){return"deny"===e?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[0.65rem] font-semibold tracking-wide uppercase bg-red-500/10 text-red-400 border border-red-500/20",children:[(0,t.jsx)(i.ShieldX,{className:"h-3 w-3"}),"Deny"]}):"instruct"===e?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[0.65rem] font-semibold tracking-wide uppercase bg-amber-500/10 text-amber-400 border border-amber-500/20",children:[(0,t.jsx)(d.ShieldAlert,{className:"h-3 w-3"}),"Instruct"]}):(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[0.65rem] font-semibold tracking-wide uppercase bg-emerald-500/10 text-emerald-400 border border-emerald-500/20",children:[(0,t.jsx)(l.ShieldCheck,{className:"h-3 w-3"}),"Allow"]})}function I({eventType:e}){return(0,t.jsx)("span",{className:"inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium bg-muted text-muted-foreground border border-border/50",children:e})}function E({integration:e}){if(!e)return null;let r="claude"===e?"Claude Code":"codex"===e?"OpenAI Codex":e,s="codex"===e;return(0,t.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium border ${s?"bg-purple-500/10 text-purple-400 border-purple-500/20":"bg-orange-500/10 text-orange-400 border-orange-500/20"}`,title:`Agent CLI: ${r}`,children:r})}function U({mode:e}){let r="default"===e;return(0,t.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium border ${r?"bg-sky-500/10 text-sky-400 border-sky-500/20":"bg-amber-500/10 text-amber-400 border-amber-500/20"}`,children:e})}function F({ms:e}){return(0,t.jsx)("span",{className:`font-mono text-[0.7rem] ${e>500?"text-red-400":e>100?"text-amber-400":"text-muted-foreground"}`,children:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`})}function D({text:e}){let[s,n]=(0,r.useState)(!1),a=async t=>{t.stopPropagation();try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)}catch{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),n(!0),setTimeout(()=>n(!1),1500)}};return(0,t.jsx)("button",{onClick:a,className:"inline-flex items-center justify-center h-5 w-5 rounded hover:bg-muted/50 text-muted-foreground hover:text-foreground transition-colors",title:"Copy",children:s?(0,t.jsx)(x.Check,{className:"h-3 w-3 text-emerald-400"}):(0,t.jsx)(u.Copy,{className:"h-3 w-3"})})}function L({value:e,onChange:r}){return(0,t.jsx)("div",{className:"inline-flex items-center rounded-md border border-border bg-muted/30 p-0.5",children:[{label:"All",value:""},{label:"Allow",value:"allow"},{label:"Instruct",value:"instruct"},{label:"Deny",value:"deny"}].map(s=>(0,t.jsx)("button",{onClick:()=>r(s.value),className:`px-2.5 py-1 text-[0.65rem] font-medium rounded transition-all ${e===s.value?"deny"===s.value?"bg-red-500/15 text-red-400 shadow-sm":"allow"===s.value?"bg-emerald-500/15 text-emerald-400 shadow-sm":"instruct"===s.value?"bg-amber-500/15 text-amber-400 shadow-sm":"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:s.label},s.value))})}function z({stats:e}){let r=e.totalEvents>0?(e.denyCount/e.totalEvents*100).toFixed(0):"0";return(0,t.jsxs)("div",{className:"flex items-center gap-6 text-[0.7rem] text-muted-foreground",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-foreground font-mono font-semibold",children:e.totalEvents})," total events"]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:`font-mono font-semibold ${e.denyCount>0?"text-red-400":"text-foreground"}`,children:[r,"%"]})," ","deny rate"]}),(0,t.jsxs)("div",{className:"hidden sm:block",children:["top policy:"," ",(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.topPolicy??"—"})]})]})}function O({item:e}){return(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:10,className:"px-0 py-0",children:(0,t.jsxs)("div",{className:"px-6 py-3 bg-muted/20 border-t border-border/30 space-y-2 text-xs animate-expand",children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-8 gap-y-1.5",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Session ID: "}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.sessionId??"—"}),e.sessionId&&(0,t.jsx)(D,{text:e.sessionId})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"CWD: "}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.cwd??"—"}),e.cwd&&(0,t.jsx)(D,{text:e.cwd})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Transcript: "}),(0,t.jsx)("span",{className:"font-mono text-foreground break-all",children:e.transcriptPath??"—"})]})]}),e.policyNames&&e.policyNames.length>1&&(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Policies: "}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.policyNames.join(", ")})]}),e.reason&&(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Full reason: "}),(0,t.jsx)("span",{className:"text-foreground",children:e.reason})]})]})})})}function B({hooksInstalled:e,onSwitchTab:s}){let{intervalSec:n}=(0,C.useAutoRefresh)(),a=(0,P.useUrlParams)(),o=(0,r.useRef)(!1),[l,i]=(0,r.useState)(()=>(0,T.paramToPage)(a.get("page"))),[d,u]=(0,r.useState)(null),[x,p]=(0,r.useState)(null),[h,f]=(0,r.useState)(()=>{let e=a.get("decision");return"allow"===e||"deny"===e||"instruct"===e?e:""}),[b,y]=(0,r.useState)(()=>a.get("event")??""),[N,k]=(0,r.useState)(()=>a.get("policy")??""),[w,S]=(0,r.useState)(()=>a.get("session")??""),R=(0,r.useRef)(null),D=(0,r.useRef)({filterDecision:h,filterEventType:b,filterPolicy:N,filterSessionId:w});D.current={filterDecision:h,filterEventType:b,filterPolicy:N,filterSessionId:w},(0,r.useEffect)(()=>{if(!o.current){o.current=!0;return}a.setAll({decision:h||void 0,event:b||void 0,policy:N||void 0,session:w||void 0,page:(0,T.pageToParam)(l)})},[h,b,N,w,l]);let H=""!==h||""!==b||""!==N||""!==w,X=(0,r.useCallback)(async e=>{try{let t,{filterDecision:r,filterEventType:s,filterPolicy:n,filterSessionId:a}=D.current;t=""!==r||""!==s||""!==n||""!==a?await (0,v.searchHookActivityAction)({decision:r||void 0,eventType:s||void 0,policyName:n||void 0,sessionId:a||void 0},e):await j(e),u(t)}catch{}},[]);(0,r.useEffect)(()=>{X(l);let e=setInterval(()=>X(l),n>0?1e3*n:5e3);return()=>clearInterval(e)},[l,X,n]),(0,r.useEffect)(()=>(R.current&&clearTimeout(R.current),R.current=setTimeout(()=>{i(1),p(null),X(1)},300),()=>{R.current&&clearTimeout(R.current)}),[h,b,N,w]);let W=d?.entries??[],q=d?.totalPages??1;return(0,t.jsxs)(t.Fragment,{children:[d?.stats&&d.stats.totalEvents>0&&(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(z,{stats:d.stats})}),(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 px-4 py-2.5 border-b border-border bg-muted/20",children:[(0,t.jsx)(L,{value:h,onChange:f}),(0,t.jsxs)("select",{value:b,onChange:e=>y(e.target.value),className:"h-7 rounded-md border border-border bg-background px-2 text-xs text-foreground focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/40 transition-shadow",children:[(0,t.jsx)("option",{value:"",children:"All Events"}),(0,t.jsx)("option",{value:"PreToolUse",children:"PreToolUse"}),(0,t.jsx)("option",{value:"PostToolUse",children:"PostToolUse"}),(0,t.jsx)("option",{value:"SessionStart",children:"SessionStart"}),(0,t.jsx)("option",{value:"SessionEnd",children:"SessionEnd"}),(0,t.jsx)("option",{value:"UserPromptSubmit",children:"UserPromptSubmit"}),(0,t.jsx)("option",{value:"PermissionRequest",children:"PermissionRequest"})]}),(0,t.jsx)("div",{className:"relative",children:(0,t.jsx)("input",{type:"text",value:N,onChange:e=>k(e.target.value),placeholder:"Filter by policy\\u2026",className:"h-7 rounded-md border border-border bg-background px-2.5 text-xs text-foreground placeholder:text-muted-foreground w-44 focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/40 transition-shadow"})}),(0,t.jsx)("div",{className:"relative",children:(0,t.jsx)("input",{type:"text",value:w,onChange:e=>S(e.target.value),placeholder:"Filter by session…",className:"h-7 rounded-md border border-border bg-background px-2.5 text-xs text-foreground placeholder:text-muted-foreground w-44 focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/40 transition-shadow"})})]}),0===W.length?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[(0,t.jsx)(c.Shield,{className:"h-12 w-12 text-muted-foreground/30"}),!1===e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground mt-4 font-medium",children:"Policies are not installed"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground mt-1 max-w-sm",children:["Go to the"," ",(0,t.jsx)("button",{className:"underline hover:text-foreground transition-colors",onClick:()=>s?.("policies"),children:"Policies tab"})," ","and click ",(0,t.jsx)("span",{className:"font-mono bg-muted px-1 rounded",children:"Install"})," to enable policy monitoring."]})]}):(0,t.jsx)("p",{className:"text-sm text-muted-foreground mt-4",children:H?"No matching activity.":"Waiting for hook events…"})]}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full text-xs",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-muted-foreground border-b border-border bg-muted/30",children:[(0,t.jsx)("th",{className:"px-4 py-2.5 font-medium w-6"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Decision"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Event"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"CLI"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Tool"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Policy"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Reason"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Duration"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Session"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Mode"}),(0,t.jsx)("th",{className:"px-3 py-2.5 font-medium text-right",children:"Time"})]})}),(0,t.jsx)("tbody",{className:"divide-y divide-border/30",children:W.map((e,s)=>{let n="deny"===e.decision,a=x===s,o="instruct"===e.decision;return(0,t.jsxs)(r.default.Fragment,{children:[(0,t.jsxs)("tr",{onClick:()=>{p(e=>e===s?null:s)},className:`cursor-pointer transition-colors ${n?"bg-red-500/[0.03] hover:bg-red-500/[0.07] border-l-2 border-l-red-500/40":o?"bg-amber-500/[0.03] hover:bg-amber-500/[0.07] border-l-2 border-l-amber-500/40":s%2==0?"hover:bg-muted/30":"bg-muted/[0.04] hover:bg-muted/30"} ${a?"bg-muted/20":""}`,children:[(0,t.jsx)("td",{className:"px-4 py-2",children:(0,t.jsx)(m.ChevronDown,{className:`h-3.5 w-3.5 text-muted-foreground transition-transform duration-150 ${a?"rotate-0":"-rotate-90"}`})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(M,{decision:e.decision})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(I,{eventType:e.eventType})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(E,{integration:e.integration})}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.toolName??"—"}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.policyNames&&e.policyNames.length>1?(0,t.jsxs)("span",{title:e.policyNames.join(", "),children:[e.policyNames[0],(0,t.jsxs)("span",{className:"text-muted-foreground text-[0.6rem]",children:[" +",e.policyNames.length-1]})]}):e.policyName??"—"}),(0,t.jsx)("td",{className:"px-3 py-2 text-muted-foreground truncate max-w-[240px]",title:e.reason??"",children:e.reason??"—"}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(F,{ms:e.durationMs})}),(0,t.jsx)("td",{className:"px-3 py-2",title:e.sessionId??"",children:(0,t.jsx)(A,{sessionId:e.sessionId,transcriptPath:e.transcriptPath})}),(0,t.jsx)("td",{className:"px-3 py-2",children:e.permissionMode?(0,t.jsx)(U,{mode:e.permissionMode}):"—"}),(0,t.jsx)("td",{className:"px-3 py-2 text-right text-muted-foreground whitespace-nowrap",title:new Date(e.timestamp).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"}),children:(0,$.formatRelativeTime)(e.timestamp)})]}),a&&(0,t.jsx)(O,{item:e})]},`${e.timestamp}-${s}`)})})]})}),(0,t.jsx)(g.default,{currentPage:l,totalPages:q,onPageChange:e=>{i(e),p(null)}})]})]})}function H({enabled:e,onChange:r,disabled:s}){return(0,t.jsx)("button",{onClick:r,disabled:s,className:`relative inline-flex h-4 w-7 shrink-0 items-center rounded-full transition-colors disabled:opacity-40 ${e?"bg-emerald-500":"bg-muted-foreground/30"}`,"aria-label":e?"Disable policy":"Enable policy",children:(0,t.jsx)("span",{className:`inline-block h-3 w-3 rounded-full bg-white shadow transition-transform ${e?"translate-x-3.5":"translate-x-0.5"}`})})}function X({policy:e,onClose:s,onSave:n}){let a=e.params??{},o=e.currentParams??{},[l,i]=(0,r.useState)(()=>{let e={};for(let[t,r]of Object.entries(a)){let s=t in o?o[t]:r.default;e[t]=s}return e});(0,r.useEffect)(()=>{let e=e=>{"Escape"===e.key&&s()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[s]);let d=(e,t)=>{i(r=>({...r,[e]:t}))};return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:e=>{e.target===e.currentTarget&&s()},children:(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg shadow-xl w-full max-w-lg mx-4 max-h-[80vh] flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-mono font-semibold text-foreground",children:e.name}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:e.description})]}),(0,t.jsx)("button",{onClick:s,className:"text-muted-foreground hover:text-foreground transition-colors",children:(0,t.jsx)(f.X,{className:"h-4 w-4"})})]}),(0,t.jsx)("div",{className:"overflow-y-auto flex-1 px-4 py-4 space-y-4",children:Object.entries(a).map(([e,r])=>(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs font-semibold text-foreground mb-1 font-mono",children:e}),(0,t.jsx)("p",{className:"text-[0.65rem] text-muted-foreground mb-1.5",children:r.description}),((e,r)=>{let s=l[e];if("boolean"===r.type)return(0,t.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,t.jsx)("input",{type:"checkbox",checked:!!s,onChange:t=>d(e,t.target.checked),className:"rounded border-border"}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:r.description})]});if("number"===r.type)return(0,t.jsx)("input",{type:"number",value:"number"==typeof s?s:"",onChange:t=>d(e,Number(t.target.value)),className:"w-full h-7 rounded border border-border bg-background px-2 text-xs text-foreground focus:outline-none focus:ring-2 focus:ring-primary/40"});if("string[]"===r.type){let r=Array.isArray(s)?s.join("\n"):"";return(0,t.jsx)("textarea",{value:r,onChange:t=>d(e,t.target.value.split("\n").filter(e=>""!==e.trim())),rows:4,placeholder:"One entry per line",className:"w-full rounded border border-border bg-background px-2 py-1.5 text-xs text-foreground font-mono focus:outline-none focus:ring-2 focus:ring-primary/40 resize-y"})}if("pattern[]"===r.type){let r=Array.isArray(s)?s:[];return(0,t.jsxs)("div",{className:"space-y-1.5",children:[r.map((s,n)=>(0,t.jsxs)("div",{className:"flex gap-1.5 items-center",children:[(0,t.jsx)("input",{type:"text",value:s.regex,onChange:t=>{let s=[...r];s[n]={...s[n],regex:t.target.value},d(e,s)},placeholder:"regex",className:"flex-1 h-6 rounded border border-border bg-background px-2 text-xs font-mono focus:outline-none focus:ring-2 focus:ring-primary/40"}),(0,t.jsx)("input",{type:"text",value:s.label,onChange:t=>{let s=[...r];s[n]={...s[n],label:t.target.value},d(e,s)},placeholder:"label",className:"flex-1 h-6 rounded border border-border bg-background px-2 text-xs focus:outline-none focus:ring-2 focus:ring-primary/40"}),(0,t.jsx)("button",{onClick:()=>d(e,r.filter((e,t)=>t!==n)),className:"text-muted-foreground/50 hover:text-destructive transition-colors",children:(0,t.jsx)(f.X,{className:"h-3.5 w-3.5"})})]},n)),(0,t.jsx)("button",{onClick:()=>d(e,[...r,{regex:"",label:""}]),className:"text-xs text-primary hover:underline",children:"+ Add pattern"})]})}return(0,t.jsx)("input",{type:"text",value:"string"==typeof s?s:"",onChange:t=>d(e,t.target.value),className:"w-full h-7 rounded border border-border bg-background px-2 text-xs text-foreground focus:outline-none focus:ring-2 focus:ring-primary/40"})})(e,r)]},e))}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 px-4 py-3 border-t border-border",children:[(0,t.jsx)(R.Button,{variant:"outline",size:"sm",onClick:s,className:"h-7 text-xs",children:"Cancel"}),(0,t.jsx)(R.Button,{size:"sm",onClick:()=>n(l),className:"h-7 text-xs",children:"Save"})]})]})})}function W({message:e,onDismiss:r,onInstall:n,isPending:a}){return(0,s.createPortal)((0,t.jsxs)("div",{className:"fixed top-4 right-4 z-[9999] w-full max-w-sm",style:{animation:"slideInFromRight 0.25s ease-out"},children:[(0,t.jsx)("style",{children:`
|
|
2
|
-
@keyframes slideInFromRight {
|
|
3
|
-
from { transform: translateX(calc(100% + 1rem)); opacity: 0; }
|
|
4
|
-
to { transform: translateX(0); opacity: 1; }
|
|
5
|
-
}
|
|
6
|
-
`}),(0,t.jsxs)("div",{className:"rounded-lg border border-red-500/40 bg-red-950/95 shadow-2xl shadow-red-900/40 overflow-hidden backdrop-blur-sm",children:[(0,t.jsx)("div",{className:"h-0.5 w-full bg-gradient-to-r from-red-600 via-red-400 to-red-600"}),(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"shrink-0 mt-0.5 flex h-5 w-5 items-center justify-center rounded-full bg-red-500 ring-2 ring-red-500/30",children:(0,t.jsx)(f.X,{className:"h-3 w-3 text-white",strokeWidth:3})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("p",{className:"text-[0.65rem] font-bold uppercase tracking-widest text-red-400 mb-0.5",children:"Error"}),(0,t.jsx)("p",{className:"text-sm text-red-100 leading-snug",children:e})]}),(0,t.jsx)("button",{onClick:r,className:"shrink-0 -mt-0.5 -mr-0.5 rounded p-0.5 text-red-400/60 transition-colors hover:bg-red-500/20 hover:text-red-200","aria-label":"Dismiss",children:(0,t.jsx)(f.X,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"mt-3 flex gap-2",children:[(0,t.jsx)(R.Button,{size:"sm",onClick:()=>{r(),n()},disabled:a,className:"h-7 flex-1 border-0 bg-red-500 px-3 text-xs font-semibold text-white hover:bg-red-400 disabled:opacity-50",children:"Install hooks"}),(0,t.jsx)(R.Button,{variant:"ghost",size:"sm",onClick:r,className:"h-7 px-3 text-xs text-red-400 hover:bg-red-500/10 hover:text-red-200",children:"Dismiss"})]})]})]})]}),document.body)}function q({onHooksInstallChange:e}){let[s,n]=(0,r.useState)(null),[a,o]=(0,r.useTransition)(),[l,i]=(0,r.useState)(null),[d,m]=(0,r.useState)(null),[u,x]=(0,r.useState)(null),f=(0,r.useCallback)(async()=>{try{let t=await y();n(t),e?.(t.installedScopes.length>0)}catch{}},[e]);(0,r.useEffect)(()=>{f()},[f]);let g=()=>{o(async()=>{try{i(null),await k("user"),await f()}catch(e){i(e instanceof Error?e.message:"Failed to install hooks.")}})};if(!s)return(0,t.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading\\u2026"})});let b=s.installedScopes.length>0,j=Array.from(new Set(s.policies.map(e=>e.category)));return(0,t.jsxs)(t.Fragment,{children:[u&&(0,t.jsx)(X,{policy:u,onClose:()=>x(null),onSave:e=>{if(!u)return;let t=u.name;x(null),o(async()=>{try{i(null),await S(t,e),await f()}catch(e){i(e instanceof Error?e.message:"Failed to save configuration.")}})}}),(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border bg-muted/10",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,t.jsx)("span",{className:`h-2 w-2 rounded-full shrink-0 ${b?"bg-emerald-500":"bg-muted-foreground/50"}`}),(0,t.jsx)("span",{className:"text-sm text-foreground",children:b?"Policies installed":"Policies not installed"}),b&&(0,t.jsxs)("span",{className:"text-xs text-muted-foreground font-mono hidden sm:inline",children:["· ",s.installedScopes.join(", ")," scope · ",s.settingsPath]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[b&&(0,t.jsx)(R.Button,{variant:"outline",size:"sm",onClick:()=>{o(async()=>{try{i(null),await w("user"),await f()}catch(e){i(e instanceof Error?e.message:"Failed to remove hooks.")}})},disabled:a,className:"text-xs h-7 px-3",children:"Remove"}),(0,t.jsx)(R.Button,{variant:b?"outline":"default",size:"sm",onClick:g,disabled:a,className:"text-xs h-7 px-3",children:b?"Reinstall":"Install policies"})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-border/40 bg-muted/5",children:[(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:[(0,t.jsx)("span",{className:"font-semibold text-foreground",children:s.enabledPolicies.length})," / ",s.policies.length+(s.customPolicies?.length??0)," ","policies enabled"]}),b&&(0,t.jsxs)("span",{className:"text-[0.65rem] text-muted-foreground/60",children:["· active in ",s.installedScopes.join(", ")," scope"]})]}),l&&(0,t.jsx)("div",{className:"px-4 py-2 bg-red-500/10 border-b border-red-500/20 text-xs text-red-400",children:l}),d&&(0,t.jsx)(W,{message:d,onDismiss:()=>m(null),onInstall:g,isPending:a}),j.map(e=>{let r=s.policies.filter(t=>t.category===e),l=r.filter(e=>e.enabled).length;return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 bg-muted/20 border-b border-border/50",children:[(0,t.jsx)("span",{className:"text-[0.7rem] font-semibold uppercase tracking-wider text-muted-foreground",children:e}),(0,t.jsxs)("span",{className:"text-[0.7rem] text-muted-foreground",children:[l," / ",r.length," enabled"]})]}),r.map(e=>(0,t.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3 border-b border-border/20 hover:bg-muted/20 transition-colors",children:[(0,t.jsx)("div",{className:"mt-0.5 shrink-0",children:(0,t.jsx)(H,{enabled:e.enabled,onChange:()=>{var t,r;return t=e.name,r=e.enabled,void(!s||(!(s.installedScopes.length>0)?m("Policies are not installed. Install policies to continue."):(m(null),n(e=>e?{...e,policies:e.policies.map(e=>e.name===t?{...e,enabled:!r}:e),enabledPolicies:r?e.enabledPolicies.filter(e=>e!==t):[...e.enabledPolicies,t]}:e),o(async()=>{try{await N(t,!r)}catch{i("Failed to save policy change."),f()}}))))},disabled:a})}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0 w-56 shrink-0 mt-0.5",children:[(0,t.jsx)("span",{className:"text-xs font-mono text-foreground truncate",children:e.name}),e.beta&&(0,t.jsx)("span",{className:"shrink-0 text-[0.6rem] px-1 py-0.5 rounded border bg-violet-500/10 text-violet-400 border-violet-500/20",children:"beta"})]}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("span",{className:"text-xs text-muted-foreground leading-relaxed",children:e.description}),e.eventScope&&(0,t.jsx)("span",{className:"block text-[0.65rem] text-muted-foreground/40 font-mono mt-0.5 hidden lg:block",children:e.eventScope}),e.params&&Object.keys(e.params).length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1 mt-1.5",children:Object.entries(e.params).map(([r,s])=>{let n=e.currentParams?.[r]??s.default,a=JSON.stringify(n)!==JSON.stringify(s.default);return(0,t.jsxs)("span",{className:`inline-flex items-center gap-1 font-mono text-[0.6rem] px-1.5 py-0.5 rounded border ${a?"bg-primary/10 text-primary/70 border-primary/20":"bg-muted/40 text-muted-foreground/55 border-border/40"}`,children:[(0,t.jsxs)("span",{className:"opacity-70",children:[r,":"]}),(0,t.jsx)("span",{children:function(e,t){if("string[]"===e||"pattern[]"===e){let r=Array.isArray(t)?t:[];return 0===r.length?"none":"pattern[]"===e?`${r.length} pattern${1!==r.length?"s":""}`:1===r.length?String(r[0]).slice(0,24):`${r.length} values`}return"boolean"===e?t?"on":"off":null==t||""===t?"—":String(t).slice(0,32)}(s.type,n)})]},r)})})]}),e.params&&Object.keys(e.params).length>0&&(0,t.jsx)("button",{className:"shrink-0 mt-0.5 text-muted-foreground hover:text-primary transition-colors",onClick:()=>x(e),title:"Edit parameters",children:(0,t.jsx)(p.Settings,{className:"h-3.5 w-3.5"})})]},e.name))]},e)}),s.customPoliciesPath&&(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 bg-muted/20 border-b border-border/50",children:[(0,t.jsx)("span",{className:"text-[0.7rem] font-semibold uppercase tracking-wider text-muted-foreground",children:"Custom Policies"}),(0,t.jsxs)("span",{className:"text-[0.7rem] text-muted-foreground",children:[s.customPolicies?.length??0," detected"]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 border-b border-border/20",children:[(0,t.jsx)(h,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,t.jsx)("span",{className:"text-xs font-mono text-muted-foreground truncate",children:s.customPoliciesPath})]}),(0,t.jsxs)("div",{className:"flex items-start gap-2 px-4 py-2.5 border-b border-border/20 bg-muted/10",children:[(0,t.jsx)(c.Shield,{className:"h-3.5 w-3.5 text-muted-foreground/60 shrink-0 mt-0.5"}),(0,t.jsx)("p",{className:"text-[0.7rem] text-muted-foreground/70 leading-relaxed",children:"Custom policies are always active. To add, remove, or reorder them, edit the JS file above."})]}),s.customPolicies?.map(e=>(0,t.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3 border-b border-border/20 hover:bg-muted/20 transition-colors",children:[(0,t.jsx)("div",{className:"h-4 w-7 shrink-0 mt-0.5"}),(0,t.jsx)("div",{className:"flex items-center gap-1.5 min-w-0 w-56 shrink-0 mt-0.5",children:(0,t.jsx)("span",{className:"text-xs font-mono text-foreground truncate",children:e.name})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[e.description&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground leading-relaxed",children:e.description}),e.eventScope&&(0,t.jsx)("span",{className:"block text-[0.65rem] text-muted-foreground/40 font-mono mt-0.5 hidden lg:block",children:e.eventScope})]})]},e.name))]})]})]})}function V({activeTab:e,onChange:r}){return(0,t.jsx)("div",{className:"inline-flex items-center rounded-md border border-border bg-muted/30 p-0.5 mb-5",children:[{id:"activity",label:"Activity"},{id:"policies",label:"Configure"}].map(s=>(0,t.jsx)("button",{onClick:()=>r(s.id),className:`px-3 py-1.5 text-xs font-medium rounded transition-all ${e===s.id?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:s.label},s.id))})}e.s(["default",0,function({initialTab:e="activity"}){let s=(0,P.useUrlParams)(),[a,l]=(0,r.useState)(e),[i,d]=(0,r.useState)(void 0),[c,m]=(0,r.useState)(null);(0,r.useEffect)(()=>{y().then(e=>{d(e.installedScopes.length>0),m({enabled:e.enabledPolicies.length,total:e.policies.length+(e.customPolicies?.length??0)})}).catch(()=>d(void 0))},[]);let u=e=>{l(e),s.setAll({tab:"activity"===e?void 0:e})};return(0,t.jsxs)("div",{className:"min-h-screen bg-background px-4 py-6 sm:px-6 lg:px-10",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)(n.default,{href:"/projects",className:"inline-flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,t.jsx)(o,{className:"h-3.5 w-3.5"}),"Back"]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 mt-3",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold text-foreground tracking-tight",children:"Policies"}),"activity"===a&&(0,t.jsxs)("span",{className:"relative flex h-2.5 w-2.5 mt-0.5",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75"}),(0,t.jsx)("span",{className:"relative inline-flex rounded-full h-2.5 w-2.5 bg-emerald-500"})]})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground mt-1",children:"activity"===a?(0,t.jsxs)(t.Fragment,{children:["Policy evaluations for Claude",c&&(0,t.jsxs)("span",{className:"text-muted-foreground/60",children:[" · ","enabled policies"," ",(0,t.jsxs)("span",{className:"font-mono text-foreground/70",children:[c.enabled,"/",c.total]})]}),(0,t.jsxs)("span",{className:"block text-xs text-muted-foreground/50 mt-0.5",children:["To configure policies,"," ",(0,t.jsx)("button",{className:"underline underline-offset-2 hover:text-foreground transition-colors",onClick:()=>u("policies"),children:"go here"})]})]}):"Configure Policies"})]}),(0,t.jsx)(V,{activeTab:a,onChange:u}),"activity"===a?(0,t.jsx)(B,{hooksInstalled:i,onSwitchTab:u}):(0,t.jsx)(q,{onHooksInstallChange:d})]})}],64245)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,9969,e=>{"use strict";let t=null;e.s(["captureClientEvent",0,function(e,r){if(!t||!t.enabled)return;let n=JSON.stringify({api_key:t.apiKey,event:e,distinct_id:t.distinctId,properties:{...r,$lib:"failproofai-web",failproofai_version:t.version,$current_url:window.location.href,$pathname:window.location.pathname}});fetch(t.host.replace(/\/+$/,"")+"/capture/",{method:"POST",headers:{"Content-Type":"application/json"},body:n,signal:AbortSignal.timeout(5e3)}).catch(()=>{})},"setClientTelemetryConfig",0,function(e){t=e}])},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return l},searchParamsToUrlQuery:function(){return u},urlQueryToSearchParams:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function a(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return m},MiddlewareNotFoundError:function(){return S},MissingStaticPage:function(){return P},NormalizeError:function(){return b},PageNotFoundError:function(){return v},SP:function(){return y},ST:function(){return g},WEB_VITALS:function(){return u},execOnce:function(){return i},getDisplayName:function(){return f},getLocationOrigin:function(){return s},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return d},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return _}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let a=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>a.test(e);function s(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=s();return e.substring(t.length)}function f(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&d(r))return n;if(!n)throw Object.defineProperty(Error(`"${f(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let y="u">typeof performance,g=y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class m extends Error{}class b extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class P extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class S extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function _(e){return JSON.stringify({message:e.message,stack:e.stack})}},33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},95057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return a},formatWithValidation:function(){return s},urlObjectKeys:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809)._(e.r(98183)),i=/https?|ftp|gopher|file/;function a(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",a=e.hash||"",l=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:r&&(s=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(s+=":"+e.port)),l&&"object"==typeof l&&(l=String(u.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==s?(s="//"+(s||""),o&&"/"!==o[0]&&(o="/"+o)):s||(s=""),a&&"#"!==a[0]&&(a="#"+a),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${s}${o}${c}${a}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function s(e){return a(e)}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(71645);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=u(e,n)),t&&(o.current=u(t,n))},[e,t])}function u(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return u}});let n=e.r(18967),o=e.r(52817);function u(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return m},useLinkStatus:function(){return v}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809),i=e.r(43476),a=u._(e.r(71645)),l=e.r(95057),s=e.r(8372),c=e.r(18581),f=e.r(18967),d=e.r(5550);e.r(33525);let p=e.r(88540),h=e.r(91949),y=e.r(73668),g=e.r(9396);function m(t){var r,n;let o,u,m,[v,P]=(0,a.useOptimistic)(h.IDLE_LINK_STATUS),S=(0,a.useRef)(null),{href:_,as:O,children:j,prefetch:x=null,passHref:E,replace:C,shallow:T,scroll:R,onClick:w,onMouseEnter:N,onTouchStart:M,legacyBehavior:A=!1,onNavigate:L,transitionTypes:$,ref:U,unstable_dynamicOnHover:k,...I}=t;o=j,A&&("string"==typeof o||"number"==typeof o)&&(o=(0,i.jsx)("a",{children:o}));let B=a.default.useContext(s.AppRouterContext),F=!1!==x,D=!1!==x?null===(n=x)||"auto"===n?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,K="string"==typeof(r=O||_)?r:(0,l.formatUrl)(r);if(A){if(o?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});u=a.default.Children.only(o)}let z=A?u&&"object"==typeof u&&u.ref:U,q=a.default.useCallback(e=>(null!==B&&(S.current=(0,h.mountLinkInstance)(e,K,B,D,F,P)),()=>{S.current&&((0,h.unmountLinkForCurrentNavigation)(S.current),S.current=null),(0,h.unmountPrefetchableInstance)(e)}),[F,K,B,D,P]),V={ref:(0,c.useMergedRef)(q,z),onClick(t){A||"function"!=typeof w||w(t),A&&u.props&&"function"==typeof u.props.onClick&&u.props.onClick(t),!B||t.defaultPrevented||function(t,r,n,o,u,i,l){if("u">typeof window){let s,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((s=t.currentTarget.getAttribute("target"))&&"_self"!==s||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,y.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);a.default.startTransition(()=>{f(r,o?"replace":"push",!1===u?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,l)})}}(t,K,S,C,R,L,$)},onMouseEnter(e){A||"function"!=typeof N||N(e),A&&u.props&&"function"==typeof u.props.onMouseEnter&&u.props.onMouseEnter(e),B&&F&&(0,h.onNavigationIntent)(e.currentTarget,!0===k)},onTouchStart:function(e){A||"function"!=typeof M||M(e),A&&u.props&&"function"==typeof u.props.onTouchStart&&u.props.onTouchStart(e),B&&F&&(0,h.onNavigationIntent)(e.currentTarget,!0===k)}};return(0,f.isAbsoluteUrl)(K)?V.href=K:A&&!E&&("a"!==u.type||"href"in u.props)||(V.href=(0,d.addBasePath)(K)),m=A?a.default.cloneElement(u,V):(0,i.jsx)("a",{...I,...V,children:o}),(0,i.jsx)(b.Provider,{value:v,children:m})}e.r(84508);let b=(0,a.createContext)(h.IDLE_LINK_STATUS),v=()=>(0,a.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18566,(e,t,r)=>{t.exports=e.r(76562)},51965,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("0023e36be111cb5a102352dbb3d18fdcbd71df69ce",t.callServer,void 0,t.findSourceMapURL,"getTelemetryConfig");e.s(["getTelemetryConfig",0,r])},68590,e=>{"use strict";let t=(0,e.i(56420).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",0,t],68590)},55574,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let n=[],o=0,u=new Set;function i(){for(let e of u)e()}function a(e){return u.add(e),()=>u.delete(e)}function l(){return n}function s({message:e}){let[n,o]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{requestAnimationFrame(()=>o(!0));let e=setTimeout(()=>o(!1),2e3);return()=>clearTimeout(e)},[]),(0,t.jsx)("div",{className:`bg-card border border-border text-foreground text-sm px-4 py-2 rounded-lg shadow-lg transition-opacity duration-300 ${n?"opacity-100":"opacity-0"}`,children:e})}e.s(["Toaster",0,function(){let e=(0,r.useSyncExternalStore)(a,l,l);return(0,t.jsx)("div",{className:"fixed bottom-4 right-4 z-50 flex flex-col gap-2",children:e.map(e=>(0,t.jsx)(s,{message:e.message},e.id))})},"toast",0,function(e){let t=o++;n=[...n,{id:t,message:e}],i(),setTimeout(()=>{n=n.filter(e=>e.id!==t),i()},2500)}])},95187,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={callServer:function(){return u.callServer},createServerReference:function(){return a.createServerReference},findSourceMapURL:function(){return i.findSourceMapURL}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(32120),i=e.r(92245),a=e.r(35326)},85881,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let n=(0,r.createContext)(void 0);e.s(["AutoRefreshProvider",0,function({children:e}){let[o,u]=(0,r.useState)(0);return(0,t.jsx)(n.Provider,{value:{intervalSec:o,setIntervalSec:u},children:e})},"useAutoRefresh",0,function(){let e=(0,r.useContext)(n);if(!e)throw Error("useAutoRefresh must be used within AutoRefreshProvider");return e}])},82954,e=>{"use strict";let t=(0,e.i(56420).default)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);e.s(["Shield",0,t],82954)},16327,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],16327)},67881,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(47163);let o=r.forwardRef(({className:e,variant:r="default",size:o="default",...u},i)=>(0,t.jsx)("button",{className:(0,n.cn)("inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none",{"bg-primary text-primary-foreground hover:bg-primary/90":"default"===r,"hover:bg-muted hover:text-muted-foreground":"ghost"===r,"border border-border bg-background hover:bg-muted":"outline"===r,"h-10 py-2 px-4":"default"===o,"h-10 w-10":"icon"===o,"h-9 px-3":"sm"===o,"h-11 px-8":"lg"===o},e),ref:i,...u}));o.displayName="Button",e.s(["Button",0,o])}]);
|