failproofai 0.0.10-beta.8 → 0.0.10
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 +7 -7
- 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 +4 -4
- 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 +4 -4
- package/.next/standalone/.next/server/app/_not-found/page/next-font-manifest.json +6 -2
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -30
- package/.next/standalone/.next/server/app/_not-found.rsc +21 -26
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +21 -26
- 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 -11
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +1 -1
- 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 +21 -21
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +21 -21
- 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 -11
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +3 -2
- package/.next/standalone/.next/server/app/page/build-manifest.json +4 -4
- package/.next/standalone/.next/server/app/page/next-font-manifest.json +6 -2
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js +2 -2
- 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 +4 -4
- package/.next/standalone/.next/server/app/policies/page/next-font-manifest.json +6 -2
- 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 +4 -4
- package/.next/standalone/.next/server/app/project/[name]/page/next-font-manifest.json +6 -2
- package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page.js +3 -3
- 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 +4 -4
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/next-font-manifest.json +6 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +3 -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 +4 -4
- package/.next/standalone/.next/server/app/projects/page/next-font-manifest.json +6 -2
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js +3 -3
- 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]__0fjhqi9._.js → [root-of-the-server]__044xt9.._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d_ob4n._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fe7_q_._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vlhtkc._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yfq1yr._.js +1 -1
- 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]__0370~qj._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0mup1hi._.js → [root-of-the-server]__0609ezh._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07_-mkc._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e9o9ri._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0og6yo7._.js → [root-of-the-server]__0l6swv1._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0logebz._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0mi5ejy._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0joez.y._.js → [root-of-the-server]__0podumr._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rkxer-._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rl2kwi._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0t5l7a5._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vg0uey._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ye1w50._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ymlddl._.js +32 -7
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__10._f0s._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_03d7qyt._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0xb8ngh._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_0cdqd9w._.js +1 -1
- 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 +2 -2
- package/.next/standalone/.next/server/chunks/ssr/lib_gemini-projects_ts_0sl~yqr._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/lib_opencode-projects_ts_0op9gyp._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +7 -7
- package/.next/standalone/.next/server/next-font-manifest.js +1 -1
- package/.next/standalone/.next/server/next-font-manifest.json +21 -2
- package/.next/standalone/.next/server/pages/404.html +1 -30
- 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/{0k2yq8zevk9bl.js → 0j171xiqge4rv.js} +1 -1
- package/.next/standalone/.next/static/chunks/0kqar56yl~41o.js +6 -0
- package/.next/standalone/.next/static/chunks/{07i9r0t6n4cpy.js → 0lt8ko3lw.5yt.js} +1 -1
- package/.next/standalone/.next/static/chunks/0ml1.ck_5t36i.js +1 -0
- package/.next/standalone/.next/static/chunks/{0km4.rc8uvt_t.js → 0pkl..xgo-qox.js} +1 -1
- package/.next/standalone/.next/static/chunks/{12simlrcfk3g2.js → 0rnqmir4cd5p9.js} +2 -2
- package/.next/standalone/.next/static/chunks/{0bi2r.m~yokoo.js → 0w6fzf.07a24u.js} +1 -1
- package/.next/standalone/.next/static/chunks/0xbo5nl6w4lka.js +1 -0
- package/.next/standalone/.next/static/chunks/12l2t63hkyo2q.js +1 -0
- package/.next/standalone/.next/static/chunks/{0tyw4u3~2isbh.js → 12pt~2f.c1sha.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0by8zx1no6kt4.js → 14lii11wmo450.js} +1 -1
- package/.next/standalone/.next/static/chunks/179yytvmam0ug.js +1 -0
- package/.next/standalone/.next/static/chunks/17rm86uz2nd5a.css +2 -0
- package/.next/standalone/.next/static/chunks/{turbopack-0o7k.hakttp4k.js → turbopack-05z7a19q43zfq.js} +1 -1
- package/.next/standalone/.next/static/media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2 +0 -0
- package/.next/standalone/.next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2 +0 -0
- package/.next/standalone/.next/static/media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2 +0 -0
- package/.next/standalone/.opencode/plugins/failproofai.mjs +75 -15
- package/.next/standalone/app/actions/get-hooks-config.ts +25 -1
- package/.next/standalone/app/components/cli-badge.tsx +1 -1
- package/.next/standalone/app/globals.css +68 -111
- package/.next/standalone/app/layout.tsx +16 -56
- package/.next/standalone/app/policies/hooks-client.tsx +228 -44
- package/.next/standalone/components/navbar.tsx +16 -15
- package/.next/standalone/components/ui/button.tsx +4 -4
- package/.next/standalone/lib/gemini-projects.ts +64 -24
- package/.next/standalone/lib/opencode-projects.ts +9 -7
- package/.next/standalone/package.json +2 -2
- package/.next/standalone/pi-extension/index.ts +113 -12
- package/.next/standalone/readme-arch-hq.gif +0 -0
- package/.next/standalone/server.js +1 -1
- package/README.md +54 -241
- package/dist/cli.mjs +195 -75
- package/lib/gemini-projects.ts +64 -24
- package/lib/opencode-projects.ts +9 -7
- package/package.json +2 -2
- package/pi-extension/index.ts +113 -12
- package/scripts/launch.ts +6 -22
- package/scripts/parse-script-args.ts +1 -11
- package/scripts/translate-docs/config.ts +0 -1
- package/src/hooks/handler.ts +63 -6
- package/src/hooks/integrations.ts +31 -6
- package/src/hooks/policy-evaluator.ts +34 -2
- package/src/hooks/types.ts +52 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01hj~sd._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02r6nu-._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04dywib._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06sb2gn._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09jpajs._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0jm6jnh._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0t2k4c5._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0u1i~9~._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/_02_tcps._.js +0 -32
- package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +0 -5
- package/.next/standalone/.next/server/chunks/ssr/_11rg2a_._.js +0 -3
- package/.next/standalone/.next/static/chunks/0gq8kvc3blri~.js +0 -1
- package/.next/standalone/.next/static/chunks/0q5bmqop--9yk.js +0 -1
- package/.next/standalone/.next/static/chunks/0s41ggdsb2alw.js +0 -3
- package/.next/standalone/.next/static/chunks/0t_7i~pqwbcww.js +0 -6
- package/.next/standalone/.next/static/chunks/0xr8w5io1-kb9.css +0 -1
- package/.next/standalone/.next/static/chunks/164g0yuhpb2pi.js +0 -1
- package/.next/standalone/components/logo.tsx +0 -36
- package/.next/standalone/components/theme-toggle.tsx +0 -37
- package/.next/standalone/contexts/ThemeContext.tsx +0 -69
- package/.next/standalone/failproofai-hq.gif +0 -0
- package/.next/standalone/public/exospheresmall-dark.png +0 -0
- package/.next/standalone/public/exospheresmall.png +0 -0
- /package/.next/standalone/.next/static/{0PSH56_4bbPBaHiyPkthl → dAuQps6jUwCz9X1Q5FFOO}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{0PSH56_4bbPBaHiyPkthl → dAuQps6jUwCz9X1Q5FFOO}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{0PSH56_4bbPBaHiyPkthl → dAuQps6jUwCz9X1Q5FFOO}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[14747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},77975,a=>{"use strict";var b=a.i(87924),c=a.i(87256);a.s(["CliBadge",0,function({cli:a}){let d=(0,c.getCliLabel)(a),e=(0,c.getCliBadgeClasses)(a);return(0,b.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium border ${e}`,title:`Agent CLI: ${d}`,children:d})}])},16316,27950,45481,33540,24451,a=>{"use strict";a.s(["formatDate",0,function(a){return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0}).format(a)}],16316),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)},87256,a=>{"use strict";let b={claude:{id:"claude",label:"Claude Code",badgeClasses:"bg-orange-500/10 text-orange-400 border-orange-500/20"},codex:{id:"codex",label:"OpenAI Codex",badgeClasses:"bg-purple-500/10 text-purple-400 border-purple-500/20"},copilot:{id:"copilot",label:"GitHub Copilot",badgeClasses:"bg-blue-500/10 text-blue-400 border-blue-500/20"},cursor:{id:"cursor",label:"Cursor Agent",badgeClasses:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20"},opencode:{id:"opencode",label:"OpenCode",badgeClasses:"bg-amber-500/10 text-amber-400 border-amber-500/20"},pi:{id:"pi",label:"Pi",badgeClasses:"bg-pink-500/10 text-pink-400 border-pink-500/20"},gemini:{id:"gemini",label:"Gemini CLI",badgeClasses:"bg-sky-500/10 text-sky-400 border-sky-500/20"}};a.s(["KNOWN_CLI_IDS",0,["claude","codex","copilot","cursor","opencode","pi","gemini"],"getCliBadgeClasses",0,function(a){return b[a]?.badgeClasses??b.claude.badgeClasses},"getCliLabel",0,function(a){return b[a]?.label??a},"isKnownCli",0,function(a){return"string"==typeof a&&Object.prototype.hasOwnProperty.call(b,a)}])},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)},74215,a=>{"use strict";let b=(0,a.i(64831).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);a.s(["X",0,b],74215)},69349,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(77975);a.i(46786),a.i(14747);var e=a.i(16316),f=a.i(27950),g=a.i(45481),h=a.i(90619),i=a.i(95947),j=a.i(87256);let k=(0,a.i(64831).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var l=a.i(33540),m=a.i(74215),n=a.i(38246),o=a.i(65967),p=a.i(24451);function q({date:a,formatted:c}){return(0,b.jsx)("span",{children:c||(0,e.formatDate)(a)})}a.s(["default",0,function({folders:a}){let e=(0,h.useUrlParams)(),r=(0,c.useRef)(!1),[s,t]=(0,c.useState)(()=>(0,i.paramToKeywords)(e.get("q"))),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)(()=>{let a=e.get("cli");return(0,j.isKnownCli)(a)?a:""}),{filterPreset:y,dateRange:z,currentPage:A,setCurrentPage:B,handlePresetChange:C,handleDateRangeChange:D,clearFilters:E}=(0,g.useFilterState)(s,{filterPreset:(0,i.paramToPreset)(e.get("preset")),dateRange:(0,i.paramsToDateRange)(e.get("from"),e.get("to")),currentPage:(0,i.paramToPage)(e.get("page"))});(0,c.useEffect)(()=>{if(!r.current){r.current=!0;return}e.setAll({preset:(0,i.presetToParam)(y),...(0,i.dateRangeToParams)(z),q:(0,i.keywordsToParam)(s),page:(0,i.pageToParam)(A),cli:w||void 0})},[y,z,s,A,w]);let F=a=>{let b=a.trim();b&&!s.includes(b)&&(t([...s,b]),v(""))},G=()=>{t([]),v("")},H=(0,c.useMemo)(()=>(0,f.rehydrateDates)(a),[a]),I=(0,c.useMemo)(()=>{let a=(0,f.filterByDate)(H,y,z);return s.length>0&&(a=a.filter(a=>{let b=a.name.toLowerCase();return s.every(a=>{let c=a.trim().toLowerCase().replace(/\//g,"-");return 0===c.length||b.includes(c)})})),w&&(a=a.filter(a=>a.cli.includes(w))),a.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime())},[H,y,z,s,w]),J=Math.max(1,Math.ceil(I.length/f.ITEMS_PER_PAGE));(0,c.useEffect)(()=>{A>J&&B(J)},[A,J,B]);let K=(A-1)*f.ITEMS_PER_PAGE,L=Math.min(K+f.ITEMS_PER_PAGE,I.length),M=I.slice(K,L);return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)("div",{className:"bg-card border border-border rounded-lg p-4",children:(0,b.jsxs)("div",{className:"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:"}),f.FILTER_PRESETS.map(a=>(0,b.jsx)("button",{onClick:()=>C(a.value),className:`px-3 py-1.5 text-sm rounded-md transition-colors ${y===a.value?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,children:a.label},a.value)),(0,b.jsx)("span",{className:"ml-2 text-sm font-medium text-foreground",children:"CLI:"}),(0,b.jsxs)("select",{"aria-label":"Filter by CLI",value:w,onChange:a=>{let b=a.target.value;x(""===b||(0,j.isKnownCli)(b)?b:"")},className:"px-2 py-1.5 text-sm bg-input border border-border rounded-md text-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent",children:[(0,b.jsx)("option",{value:"",children:"All CLIs"}),j.KNOWN_CLI_IDS.map(a=>(0,b.jsx)("option",{value:a,children:(0,j.getCliLabel)(a)},a))]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(l.Search,{className:"w-4 h-4 text-muted-foreground"}),(0,b.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Search Keywords:"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"text",value:u,onChange:a=>v(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),F(u))},placeholder:"Enter keyword and press Enter",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 w-[250px]","aria-label":"Add keyword"}),(0,b.jsx)("button",{onClick:()=>F(u),className:"px-3 py-2 text-sm bg-muted text-muted-foreground hover:bg-muted/80 rounded-md transition-colors","aria-label":"Add keyword",children:"Add"})]}),s.length>0&&(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[s.map((a,c)=>(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1.5 bg-muted text-muted-foreground rounded-md text-sm",children:[(0,b.jsx)("span",{children:a}),(0,b.jsx)("button",{onClick:()=>{t(s.filter((a,b)=>b!==c))},className:"hover:text-foreground transition-colors p-0.5 rounded hover:bg-muted/80","aria-label":`Remove keyword ${a}`,children:(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"})})]},c)),(0,b.jsx)("button",{onClick:G,className:"px-2 py-1.5 text-xs bg-muted text-muted-foreground hover:bg-muted/80 rounded-md transition-colors","aria-label":"Clear all keywords",children:"Clear all"})]})]})]}),(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)(p.default,{id:"date-from",value:z.from,onChange:a=>D("from",a),"aria-label":"Filter from date"}),(0,b.jsx)("span",{className:"text-muted-foreground",children:"to"}),(0,b.jsx)(p.default,{id:"date-to",value:z.to,onChange:a=>D("to",a),"aria-label":"Filter to date"})]}),("all"!==y||null!==z.from||null!==z.to||s.length>0||""!==w)&&(0,b.jsx)("button",{onClick:()=>{E(),G(),x("")},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===I.length?(0,b.jsx)(b.Fragment,{children:"No projects found"}):(0,b.jsxs)(b.Fragment,{children:["Showing ",K+1,"-",L," of ",I.length," projects",I.length!==H.length&&(0,b.jsxs)("span",{className:"ml-1",children:["(filtered from ",H.length," total)"]}),s.length>0&&(0,b.jsxs)("span",{className:"ml-1",children:["with ",s.length," keyword",1!==s.length?"s":""]})]})})]})}),(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 max-w-md",children:"Agent Root"}),(0,b.jsx)("th",{scope:"col",className:"px-4 py-3 text-left text-sm font-semibold text-foreground hidden md:table-cell",children:"Path"}),(0,b.jsx)("th",{scope:"col",className:"px-4 py-3 text-left text-sm font-semibold text-foreground",children:"Last Modified"})]})}),(0,b.jsx)("tbody",{children:0===M.length?(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:4,className:"px-4 py-8 text-center text-muted-foreground",children:"No projects found matching the selected filter."})}):M.map(a=>{var c;return(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)(k,{className:"w-5 h-5 text-primary"})}),(0,b.jsx)("td",{className:"px-4 py-3 max-w-md",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(n.default,{href:`/project/${encodeURIComponent(a.name)}`,className:"font-semibold text-foreground hover:text-primary transition-colors break-words break-all inline-block max-w-full",children:(c=a.name,/^[A-Za-z]--/.test(c)?c[0]+":/"+c.slice(3).replace(/-/g,"/"):c.replace(/-/g,"/"))}),a.cli.map(a=>(0,b.jsx)(d.CliBadge,{cli:a},a))]})}),(0,b.jsx)("td",{className:"px-4 py-3 text-sm text-muted-foreground hidden md:table-cell truncate max-w-md",children:a.path}),(0,b.jsx)("td",{className:"px-4 py-3 text-sm text-muted-foreground",children:(0,b.jsx)(q,{date:a.lastModified,formatted:a.lastModifiedFormatted})})]},a.name)})})]})}),I.length>0&&(0,b.jsx)(o.default,{currentPage:A,totalPages:J,onPageChange:B})]})]})}],69349)}];
|
|
1
|
+
module.exports=[14747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},77975,a=>{"use strict";var b=a.i(87924),c=a.i(87256);a.s(["CliBadge",0,function({cli:a}){let d=(0,c.getCliLabel)(a),e=(0,c.getCliBadgeClasses)(a);return(0,b.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-mono font-medium uppercase tracking-wider border ${e}`,title:`Agent CLI: ${d}`,children:d})}])},16316,27950,45481,33540,24451,a=>{"use strict";a.s(["formatDate",0,function(a){return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0}).format(a)}],16316),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)},87256,a=>{"use strict";let b={claude:{id:"claude",label:"Claude Code",badgeClasses:"bg-orange-500/10 text-orange-400 border-orange-500/20"},codex:{id:"codex",label:"OpenAI Codex",badgeClasses:"bg-purple-500/10 text-purple-400 border-purple-500/20"},copilot:{id:"copilot",label:"GitHub Copilot",badgeClasses:"bg-blue-500/10 text-blue-400 border-blue-500/20"},cursor:{id:"cursor",label:"Cursor Agent",badgeClasses:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20"},opencode:{id:"opencode",label:"OpenCode",badgeClasses:"bg-amber-500/10 text-amber-400 border-amber-500/20"},pi:{id:"pi",label:"Pi",badgeClasses:"bg-pink-500/10 text-pink-400 border-pink-500/20"},gemini:{id:"gemini",label:"Gemini CLI",badgeClasses:"bg-sky-500/10 text-sky-400 border-sky-500/20"}};a.s(["KNOWN_CLI_IDS",0,["claude","codex","copilot","cursor","opencode","pi","gemini"],"getCliBadgeClasses",0,function(a){return b[a]?.badgeClasses??b.claude.badgeClasses},"getCliLabel",0,function(a){return b[a]?.label??a},"isKnownCli",0,function(a){return"string"==typeof a&&Object.prototype.hasOwnProperty.call(b,a)}])},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)},74215,a=>{"use strict";let b=(0,a.i(64831).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);a.s(["X",0,b],74215)},69349,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(77975);a.i(46786),a.i(14747);var e=a.i(16316),f=a.i(27950),g=a.i(45481),h=a.i(90619),i=a.i(95947),j=a.i(87256);let k=(0,a.i(64831).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var l=a.i(33540),m=a.i(74215),n=a.i(38246),o=a.i(65967),p=a.i(24451);function q({date:a,formatted:c}){return(0,b.jsx)("span",{children:c||(0,e.formatDate)(a)})}a.s(["default",0,function({folders:a}){let e=(0,h.useUrlParams)(),r=(0,c.useRef)(!1),[s,t]=(0,c.useState)(()=>(0,i.paramToKeywords)(e.get("q"))),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)(()=>{let a=e.get("cli");return(0,j.isKnownCli)(a)?a:""}),{filterPreset:y,dateRange:z,currentPage:A,setCurrentPage:B,handlePresetChange:C,handleDateRangeChange:D,clearFilters:E}=(0,g.useFilterState)(s,{filterPreset:(0,i.paramToPreset)(e.get("preset")),dateRange:(0,i.paramsToDateRange)(e.get("from"),e.get("to")),currentPage:(0,i.paramToPage)(e.get("page"))});(0,c.useEffect)(()=>{if(!r.current){r.current=!0;return}e.setAll({preset:(0,i.presetToParam)(y),...(0,i.dateRangeToParams)(z),q:(0,i.keywordsToParam)(s),page:(0,i.pageToParam)(A),cli:w||void 0})},[y,z,s,A,w]);let F=a=>{let b=a.trim();b&&!s.includes(b)&&(t([...s,b]),v(""))},G=()=>{t([]),v("")},H=(0,c.useMemo)(()=>(0,f.rehydrateDates)(a),[a]),I=(0,c.useMemo)(()=>{let a=(0,f.filterByDate)(H,y,z);return s.length>0&&(a=a.filter(a=>{let b=a.name.toLowerCase();return s.every(a=>{let c=a.trim().toLowerCase().replace(/\//g,"-");return 0===c.length||b.includes(c)})})),w&&(a=a.filter(a=>a.cli.includes(w))),a.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime())},[H,y,z,s,w]),J=Math.max(1,Math.ceil(I.length/f.ITEMS_PER_PAGE));(0,c.useEffect)(()=>{A>J&&B(J)},[A,J,B]);let K=(A-1)*f.ITEMS_PER_PAGE,L=Math.min(K+f.ITEMS_PER_PAGE,I.length),M=I.slice(K,L);return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)("div",{className:"bg-card border border-border rounded-lg p-4",children:(0,b.jsxs)("div",{className:"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:"}),f.FILTER_PRESETS.map(a=>(0,b.jsx)("button",{onClick:()=>C(a.value),className:`px-3 py-1.5 text-sm rounded-md transition-colors ${y===a.value?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,children:a.label},a.value)),(0,b.jsx)("span",{className:"ml-2 text-sm font-medium text-foreground",children:"CLI:"}),(0,b.jsxs)("select",{"aria-label":"Filter by CLI",value:w,onChange:a=>{let b=a.target.value;x(""===b||(0,j.isKnownCli)(b)?b:"")},className:"px-2 py-1.5 text-sm bg-input border border-border rounded-md text-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent",children:[(0,b.jsx)("option",{value:"",children:"All CLIs"}),j.KNOWN_CLI_IDS.map(a=>(0,b.jsx)("option",{value:a,children:(0,j.getCliLabel)(a)},a))]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(l.Search,{className:"w-4 h-4 text-muted-foreground"}),(0,b.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Search Keywords:"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"text",value:u,onChange:a=>v(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),F(u))},placeholder:"Enter keyword and press Enter",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 w-[250px]","aria-label":"Add keyword"}),(0,b.jsx)("button",{onClick:()=>F(u),className:"px-3 py-2 text-sm bg-muted text-muted-foreground hover:bg-muted/80 rounded-md transition-colors","aria-label":"Add keyword",children:"Add"})]}),s.length>0&&(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[s.map((a,c)=>(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1.5 bg-muted text-muted-foreground rounded-md text-sm",children:[(0,b.jsx)("span",{children:a}),(0,b.jsx)("button",{onClick:()=>{t(s.filter((a,b)=>b!==c))},className:"hover:text-foreground transition-colors p-0.5 rounded hover:bg-muted/80","aria-label":`Remove keyword ${a}`,children:(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"})})]},c)),(0,b.jsx)("button",{onClick:G,className:"px-2 py-1.5 text-xs bg-muted text-muted-foreground hover:bg-muted/80 rounded-md transition-colors","aria-label":"Clear all keywords",children:"Clear all"})]})]})]}),(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)(p.default,{id:"date-from",value:z.from,onChange:a=>D("from",a),"aria-label":"Filter from date"}),(0,b.jsx)("span",{className:"text-muted-foreground",children:"to"}),(0,b.jsx)(p.default,{id:"date-to",value:z.to,onChange:a=>D("to",a),"aria-label":"Filter to date"})]}),("all"!==y||null!==z.from||null!==z.to||s.length>0||""!==w)&&(0,b.jsx)("button",{onClick:()=>{E(),G(),x("")},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===I.length?(0,b.jsx)(b.Fragment,{children:"No projects found"}):(0,b.jsxs)(b.Fragment,{children:["Showing ",K+1,"-",L," of ",I.length," projects",I.length!==H.length&&(0,b.jsxs)("span",{className:"ml-1",children:["(filtered from ",H.length," total)"]}),s.length>0&&(0,b.jsxs)("span",{className:"ml-1",children:["with ",s.length," keyword",1!==s.length?"s":""]})]})})]})}),(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 max-w-md",children:"Agent Root"}),(0,b.jsx)("th",{scope:"col",className:"px-4 py-3 text-left text-sm font-semibold text-foreground hidden md:table-cell",children:"Path"}),(0,b.jsx)("th",{scope:"col",className:"px-4 py-3 text-left text-sm font-semibold text-foreground",children:"Last Modified"})]})}),(0,b.jsx)("tbody",{children:0===M.length?(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:4,className:"px-4 py-8 text-center text-muted-foreground",children:"No projects found matching the selected filter."})}):M.map(a=>{var c;return(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)(k,{className:"w-5 h-5 text-primary"})}),(0,b.jsx)("td",{className:"px-4 py-3 max-w-md",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(n.default,{href:`/project/${encodeURIComponent(a.name)}`,className:"font-semibold text-foreground hover:text-primary transition-colors break-words break-all inline-block max-w-full",children:(c=a.name,/^[A-Za-z]--/.test(c)?c[0]+":/"+c.slice(3).replace(/-/g,"/"):c.replace(/-/g,"/"))}),a.cli.map(a=>(0,b.jsx)(d.CliBadge,{cli:a},a))]})}),(0,b.jsx)("td",{className:"px-4 py-3 text-sm text-muted-foreground hidden md:table-cell truncate max-w-md",children:a.path}),(0,b.jsx)("td",{className:"px-4 py-3 text-sm text-muted-foreground",children:(0,b.jsx)(q,{date:a.lastModified,formatted:a.lastModifiedFormatted})})]},a.name)})})]})}),I.length>0&&(0,b.jsx)(o.default,{currentPage:A,totalPages:J,onPageChange:B})]})]})}],69349)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0t5l7a5._.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"0.0.10",description:"The easiest way to manage policies that keep your AI agents reliable, on-task, and running autonomously — for Claude Code & the Agents SDK",bin:{failproofai:"./dist/cli.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",postinstall:"node scripts/postinstall.mjs",preuninstall:"node scripts/preuninstall.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate"},keywords:["claude","claude-code","claude-agents-sdk","anthropic","ai-agent","agent-reliability","agent-monitoring","autonomous-agent","failure-prevention","developer-tools","devtools","cli","local-first","hooks","policies"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/exospherehost/failproofai",repository:{type:"git",url:"https://github.com/exospherehost/failproofai.git"},bugs:{url:"https://github.com/exospherehost/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.93.0","@tailwindcss/postcss":"^4.1.18","@tanstack/react-virtual":"^3.13.18","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/node":"^25.5.2","@types/react":"^19.2.13","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.1",clsx:"^2.1.1",eslint:"^10.2.0","eslint-config-next":"^16.2.2","happy-dom":"^20.7.0","lucide-react":"^1.0.1",next:"^16.2.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.1.18",typescript:"^6.0.2",vitest:"^4.0.18"},dependencies:{"posthog-node":"^5.28.11"}}},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},36359,69839,79779,a=>{"use strict";let b;var c=a.i(37936),d=a.i(2157),e=a.i(50227),f=a.i(60526),g=a.i(66680);a.i(74533);let h=e.default.join(f.default.homedir(),".failproofai"),i=e.default.join(h,"instance-id");function j(a){return g.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(){if(b)return b;let a=function(){try{for(let a of(f.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=d.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return b=j(a);let c=[f.default.hostname(),f.default.homedir(),f.default.platform(),f.default.arch(),f.default.cpus()[0]?.model??""].join(":");return b=c?j(c):function(){try{let a=d.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=g.default.randomUUID();try{d.default.mkdirSync(h,{recursive:!0}),d.default.writeFileSync(i,a,"utf-8")}catch{}return a}()}a.s(["getInstanceId",0,k,"hashToId",0,j],69839),a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX"],79779);var l=a.i(12072);async function m(){let a="1"!==process.env.FAILPROOFAI_TELEMETRY_DISABLED;return{enabled:a,distinctId:a?k():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:l.version}}(0,a.i(13095).ensureServerEntryExports)([m]),(0,c.registerServerReference)(m,"001ce9bc6145239393c867a916f9601df1c75bfbf7",null),a.s(["getTelemetryConfig",0,m],36359)},165,a=>{"use strict";var b=a.i(36359);a.s([],84833),a.i(84833),a.s(["001ce9bc6145239393c867a916f9601df1c75bfbf7",()=>b.getTelemetryConfig],165)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__12dv.x0._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_0mebn66._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0vg0uey._.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},24868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"0.0.10",description:"The easiest way to manage policies that keep your AI agents reliable, on-task, and running autonomously — for Claude Code & the Agents SDK",bin:{failproofai:"./dist/cli.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",postinstall:"node scripts/postinstall.mjs",preuninstall:"node scripts/preuninstall.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate"},keywords:["claude","claude-code","claude-agents-sdk","anthropic","ai-agent","agent-reliability","agent-monitoring","autonomous-agent","failure-prevention","developer-tools","devtools","cli","local-first","hooks","policies"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/exospherehost/failproofai",repository:{type:"git",url:"https://github.com/exospherehost/failproofai.git"},bugs:{url:"https://github.com/exospherehost/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.93.0","@tailwindcss/postcss":"^4.1.18","@tanstack/react-virtual":"^3.13.18","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/node":"^25.5.2","@types/react":"^19.2.13","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.1",clsx:"^2.1.1",eslint:"^10.2.0","eslint-config-next":"^16.2.2","happy-dom":"^20.7.0","lucide-react":"^1.0.1",next:"^16.2.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.1.18",typescript:"^6.0.2",vitest:"^4.0.18"},dependencies:{"posthog-node":"^5.28.11"}}},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},36359,69839,79779,a=>{"use strict";let b;var c=a.i(37936),d=a.i(2157),e=a.i(50227),f=a.i(60526),g=a.i(66680);a.i(74533);let h=e.default.join(f.default.homedir(),".failproofai"),i=e.default.join(h,"instance-id");function j(a){return g.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(){if(b)return b;let a=function(){try{for(let a of(f.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=d.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return b=j(a);let c=[f.default.hostname(),f.default.homedir(),f.default.platform(),f.default.arch(),f.default.cpus()[0]?.model??""].join(":");return b=c?j(c):function(){try{let a=d.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=g.default.randomUUID();try{d.default.mkdirSync(h,{recursive:!0}),d.default.writeFileSync(i,a,"utf-8")}catch{}return a}()}a.s(["getInstanceId",0,k,"hashToId",0,j],69839),a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX"],79779);var l=a.i(12072);async function m(){let a="1"!==process.env.FAILPROOFAI_TELEMETRY_DISABLED;return{enabled:a,distinctId:a?k():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:l.version}}(0,a.i(13095).ensureServerEntryExports)([m]),(0,c.registerServerReference)(m,"001ce9bc6145239393c867a916f9601df1c75bfbf7",null),a.s(["getTelemetryConfig",0,m],36359)},1457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},24282,a=>{"use strict";let b={claude:{id:"claude",label:"Claude Code",badgeClasses:"bg-orange-500/10 text-orange-400 border-orange-500/20"},codex:{id:"codex",label:"OpenAI Codex",badgeClasses:"bg-purple-500/10 text-purple-400 border-purple-500/20"},copilot:{id:"copilot",label:"GitHub Copilot",badgeClasses:"bg-blue-500/10 text-blue-400 border-blue-500/20"},cursor:{id:"cursor",label:"Cursor Agent",badgeClasses:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20"},opencode:{id:"opencode",label:"OpenCode",badgeClasses:"bg-amber-500/10 text-amber-400 border-amber-500/20"},pi:{id:"pi",label:"Pi",badgeClasses:"bg-pink-500/10 text-pink-400 border-pink-500/20"},gemini:{id:"gemini",label:"Gemini CLI",badgeClasses:"bg-sky-500/10 text-sky-400 border-sky-500/20"}};a.s(["getCliBadgeClasses",0,function(a){return b[a]?.badgeClasses??b.claude.badgeClasses},"getCliLabel",0,function(a){return b[a]?.label??a}])},7292,a=>{"use strict";var b=a.i(37936),c=a.i(2157),d=a.i(50227),e=a.i(60526);let f=(0,d.join)((0,e.homedir)(),".failproofai","cache","hook-activity"),g="current.jsonl";function h(){(0,c.existsSync)(f)||(0,c.mkdirSync)(f,{recursive:!0})}function i(){let a=function(){try{return JSON.parse((0,c.readFileSync)((0,d.join)(f,"stats.json"),"utf-8"))}catch{return{totalEvents:0,denyCount:0,policyMap:{}}}}(),b=null,e=0;for(let[c,d]of Object.entries(a.policyMap))d>e&&(b=c,e=d);return{totalEvents:a.totalEvents,denyCount:a.denyCount,topPolicy:b,topPolicyCount:e}}function j(a){let b=function(a){try{return(0,c.readFileSync)(a,"utf-8")}catch{return""}}(a);if(!b.trim())return[];let d=[];for(let a of b.trim().split("\n"))try{d.push(JSON.parse(a))}catch{}return d}function k(){try{return(0,c.readdirSync)(f).filter(a=>a.startsWith("page-")&&a.endsWith(".jsonl")).sort((a,b)=>{let c=a.slice(5,-6).split("-"),d=b.slice(5,-6).split("-"),e=parseInt(c[0],10),f=parseInt(d[0],10);if(e!==f)return f-e;let g=c.length>1?parseInt(c[1],10):0;return(d.length>1?parseInt(d[1],10):0)-g})}catch{return[]}}async function l(a){let b;return b=function(a){if(h(),a<1)return[];if(1===a)return j((0,d.join)(f,g)).reverse();let b=k(),c=a-2;return c>=b.length?[]:j((0,d.join)(f,b[c])).reverse()}(a),h(),{entries:b,totalPages:1+k().length,page:a,stats:i()}}async function m(a,b){let c,e,l;return e=Math.max(1,Math.ceil((c=(function(){h();let a=j((0,d.join)(f,g)).reverse(),b=k(),c=[];for(let a of b){let b=j((0,d.join)(f,a));c.push(...b.reverse())}return[...a,...c]})().filter(b=>(!a.decision||b.decision===a.decision)&&(!a.eventType||b.eventType===a.eventType)&&(!a.policyName||!!b.policyName&&!!b.policyName.toLowerCase().includes(a.policyName.toLowerCase()))&&(!a.sessionId||!!b.sessionId&&!!b.sessionId.toLowerCase().includes(a.sessionId.toLowerCase()))&&(!a.integration||b.integration===a.integration))).length/25)),l=(b-1)*25,{entries:c.slice(l,l+25),totalPages:e,page:b,stats:i()}}(0,a.i(13095).ensureServerEntryExports)([l,m]),(0,b.registerServerReference)(l,"402714e0127fd96b57ab64b8f734f9316459cc9edc",null),(0,b.registerServerReference)(m,"60a3d76dbcd84dcda4d20bb06166e7d742409464f3",null),a.s(["getHookActivityAction",0,l,"searchHookActivityAction",0,m],7292)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_async_hooks_0v0ln8c._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_0mebn66._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0ye1w50._.js.map
|
|
@@ -42,6 +42,28 @@ function canonicalizeTool(raw) {
|
|
|
42
42
|
return TOOL_NAME_MAP[raw] != null ? TOOL_NAME_MAP[raw] : raw;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
// Per-tool input-key translation: opencode native tools deliver args as
|
|
46
|
+
// camelCase (\`filePath\`, \`oldString\`, …) but failproofai builtin policies
|
|
47
|
+
// (\`block-read-outside-cwd\`, \`block-env-files\`, \`block-secrets-write\`)
|
|
48
|
+
// read \`ctx.toolInput.file_path\` etc. Without this map every Read/Write/Edit
|
|
49
|
+
// path-check silently no-ops on opencode. Keys are PascalCase canonical tool
|
|
50
|
+
// names so the lookup pairs with canonicalizeTool's output. Tools outside the
|
|
51
|
+
// map (MCP \`mcp_*\`, plugins) pass through unchanged. Keep in sync with
|
|
52
|
+
// OPENCODE_TOOL_INPUT_MAP in failproofai/src/hooks/types.ts.
|
|
53
|
+
const TOOL_INPUT_MAP = {
|
|
54
|
+
Read: { filePath: "file_path" },
|
|
55
|
+
Write: { filePath: "file_path" },
|
|
56
|
+
Edit: { filePath: "file_path", oldString: "old_string", newString: "new_string", replaceAll: "replace_all" },
|
|
57
|
+
};
|
|
58
|
+
function canonicalizeToolInput(canonicalToolName, args) {
|
|
59
|
+
if (!args || typeof args !== "object") return args;
|
|
60
|
+
const map = TOOL_INPUT_MAP[canonicalToolName];
|
|
61
|
+
if (!map) return args;
|
|
62
|
+
const out = {};
|
|
63
|
+
for (const k of Object.keys(args)) out[map[k] != null ? map[k] : k] = args[k];
|
|
64
|
+
return out;
|
|
65
|
+
}
|
|
66
|
+
|
|
45
67
|
const FAILPROOFAI_BIN = ${h};
|
|
46
68
|
const USE_NPX = ${d};
|
|
47
69
|
|
|
@@ -140,11 +162,12 @@ export default async function failproofaiPlugin({ client, directory }) {
|
|
|
140
162
|
|
|
141
163
|
// First-class PreToolUse hook. Note: tool args live on output.args (mutable).
|
|
142
164
|
"tool.execute.before": async (input, output) => {
|
|
165
|
+
const canonicalTool = canonicalizeTool(input.tool);
|
|
143
166
|
const r = runFailproofai("PreToolUse", {
|
|
144
167
|
session_id: input.sessionID,
|
|
145
168
|
cwd: directory,
|
|
146
|
-
tool_name:
|
|
147
|
-
tool_input: output.args,
|
|
169
|
+
tool_name: canonicalTool,
|
|
170
|
+
tool_input: canonicalizeToolInput(canonicalTool, output.args),
|
|
148
171
|
hook_event_name: "PreToolUse",
|
|
149
172
|
}, directory);
|
|
150
173
|
await applyDecision(r, { client, sessionID: input.sessionID }, "PreToolUse");
|
|
@@ -152,11 +175,12 @@ export default async function failproofaiPlugin({ client, directory }) {
|
|
|
152
175
|
|
|
153
176
|
// First-class PostToolUse hook. Note: tool args live on input.args here.
|
|
154
177
|
"tool.execute.after": async (input, output) => {
|
|
178
|
+
const canonicalTool = canonicalizeTool(input.tool);
|
|
155
179
|
const r = runFailproofai("PostToolUse", {
|
|
156
180
|
session_id: input.sessionID,
|
|
157
181
|
cwd: directory,
|
|
158
|
-
tool_name:
|
|
159
|
-
tool_input: input.args,
|
|
182
|
+
tool_name: canonicalTool,
|
|
183
|
+
tool_input: canonicalizeToolInput(canonicalTool, input.args),
|
|
160
184
|
tool_response: { title: output.title, output: output.output, metadata: output.metadata },
|
|
161
185
|
hook_event_name: "PostToolUse",
|
|
162
186
|
}, directory);
|
|
@@ -165,11 +189,12 @@ export default async function failproofaiPlugin({ client, directory }) {
|
|
|
165
189
|
|
|
166
190
|
// Cleaner deny UX for prompted tools — mutate output.status instead of throwing.
|
|
167
191
|
"permission.ask": async (input, output) => {
|
|
192
|
+
const canonicalTool = canonicalizeTool(input.tool);
|
|
168
193
|
const r = runFailproofai("PermissionRequest", {
|
|
169
194
|
session_id: input.sessionID,
|
|
170
195
|
cwd: directory,
|
|
171
|
-
tool_name:
|
|
172
|
-
tool_input: input,
|
|
196
|
+
tool_name: canonicalTool || input.command || "permission",
|
|
197
|
+
tool_input: canonicalizeToolInput(canonicalTool, input),
|
|
173
198
|
hook_event_name: "PermissionRequest",
|
|
174
199
|
}, directory);
|
|
175
200
|
try {
|
|
@@ -193,6 +218,6 @@ Use either: --install all or --install block-sudo sanitize-jwt ...`)}let m=j&&
|
|
|
193
218
|
Validated ${a.length} custom hook(s): ${a.map(a=>a.name).join(", ")}`)}x(q,b,c),console.log(`
|
|
194
219
|
Enabled ${k.length} policy(ies): ${k.join(", ")}
|
|
195
220
|
`),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=V(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,bA.getInstanceId)();await bz(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,bA.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=V(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(`
|
|
196
|
-
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=bD(a,c);return!l.has(b)&&(l.add(b),!0)})).filter(a=>a!==b).filter(a=>bF(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 bH(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])){bE(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,bA.getInstanceId)(),f=a.filter(a=>e.enabledPolicies.includes(a));await bz(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,bA.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=V(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=V(a);for(let a of b.scopes)console.log(` ${b.displayName} / ${a}: ${b.getSettingsPath(a,c)}`)}try{let a=(0,bA.getInstanceId)();await bz(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,bA.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=>bF(a,c))){let{customPoliciesPath:a,policyParams:b,...d}=w(f,c);x({...d,enabledPolicies:[]},f,c)}}}var bI=a.i(13095);async function
|
|
221
|
+
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=bD(a,c);return!l.has(b)&&(l.add(b),!0)})).filter(a=>a!==b).filter(a=>bF(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 bH(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])){bE(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,bA.getInstanceId)(),f=a.filter(a=>e.enabledPolicies.includes(a));await bz(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,bA.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=V(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=V(a);for(let a of b.scopes)console.log(` ${b.displayName} / ${a}: ${b.getSettingsPath(a,c)}`)}try{let a=(0,bA.getInstanceId)();await bz(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,bA.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=>bF(a,c))){let{customPoliciesPath:a,policyParams:b,...d}=w(f,c);x({...d,enabledPolicies:[]},f,c)}}}var bI=a.i(24282),bJ=a.i(13095);async function bK(a){if(!(0,e.existsSync)(a))return[];let b=await (0,Y.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 bL(){let a=t(),b=new Set(a.enabledPolicies),c=z.filter(a=>bF(a)),d=bD(c[0]??"user"),e=A.map(a=>U[a]).map(a=>({id:a.id,label:(0,bI.getCliLabel)(a.id),installed:a.hooksInstalledInSettings("user"),settingsPath:a.getSettingsPath("user"),detected:a.detectInstalled()})),f=bf.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}}),g=a.customPoliciesPath?await bK(a.customPoliciesPath):void 0;return{enabledPolicies:a.enabledPolicies,installedScopes:c,settingsPath:d,clis:e,policies:f,customPoliciesPath:a.customPoliciesPath,customPolicies:g?.length?g:void 0}}async function bM(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,bA.getInstanceId)();await bz(c,"policy_toggled",{policy_name:a,enabled:b,action:b?"enable":"disable",source:"web"})}catch{}}async function bN(a="user",b){let c=t(),d=c.enabledPolicies.length>0?c.enabledPolicies:bf.filter(a=>a.defaultEnabled&&!a.beta).map(a=>a.name),e=b&&b.length>0?b:W(),f=e.length>0?e:["claude"];await bG(d,a,void 0,!1,"web",void 0,!1,f)}async function bO(a="user",b){let c=b&&b.length>0?b:W(),d=c.length>0?c:["claude"];await bH(void 0,a,void 0,{source:"web",cli:d})}async function bP(a,b){let c=t(),d={...c.policyParams??{},[a]:b};u({...c,policyParams:d});try{let c=(0,bA.getInstanceId)();await bz(c,"policy_params_updated",{policy_name:a,param_keys:Object.keys(b),source:"web"})}catch{}}(0,bJ.ensureServerEntryExports)([bL]),(0,d.registerServerReference)(bL,"006ae6c77a6b860631f0b05f055600b490d96feb01",null),(0,bJ.ensureServerEntryExports)([bM]),(0,d.registerServerReference)(bM,"60474dd63e4ca78318418a84742753bcf27e8be12d",null),(0,bJ.ensureServerEntryExports)([bN,bO]),(0,d.registerServerReference)(bN,"60afa57857d3f18dc463fc3a2dcf942a73adeb9e28",null),(0,d.registerServerReference)(bO,"6010e22670ccd7912f669a127211be1912462760c1",null),(0,bJ.ensureServerEntryExports)([bP]),(0,d.registerServerReference)(bP,"6009f76760f968bad6473b991630e917577dcad669",null),a.s([],63895),a.i(63895),a.s(["001ce9bc6145239393c867a916f9601df1c75bfbf7",()=>b.getTelemetryConfig,"006ae6c77a6b860631f0b05f055600b490d96feb01",0,bL,"402714e0127fd96b57ab64b8f734f9316459cc9edc",()=>c.getHookActivityAction,"6009f76760f968bad6473b991630e917577dcad669",0,bP,"6010e22670ccd7912f669a127211be1912462760c1",0,bO,"60474dd63e4ca78318418a84742753bcf27e8be12d",0,bM,"60a3d76dbcd84dcda4d20bb06166e7d742409464f3",()=>c.searchHookActivityAction,"60afa57857d3f18dc463fc3a2dcf942a73adeb9e28",0,bN],11369)}];
|
|
197
222
|
|
|
198
223
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0ymlddl._.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"0.0.10",description:"The easiest way to manage policies that keep your AI agents reliable, on-task, and running autonomously — for Claude Code & the Agents SDK",bin:{failproofai:"./dist/cli.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",postinstall:"node scripts/postinstall.mjs",preuninstall:"node scripts/preuninstall.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate"},keywords:["claude","claude-code","claude-agents-sdk","anthropic","ai-agent","agent-reliability","agent-monitoring","autonomous-agent","failure-prevention","developer-tools","devtools","cli","local-first","hooks","policies"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/exospherehost/failproofai",repository:{type:"git",url:"https://github.com/exospherehost/failproofai.git"},bugs:{url:"https://github.com/exospherehost/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.93.0","@tailwindcss/postcss":"^4.1.18","@tanstack/react-virtual":"^3.13.18","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/node":"^25.5.2","@types/react":"^19.2.13","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.1",clsx:"^2.1.1",eslint:"^10.2.0","eslint-config-next":"^16.2.2","happy-dom":"^20.7.0","lucide-react":"^1.0.1",next:"^16.2.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.1.18",typescript:"^6.0.2",vitest:"^4.0.18"},dependencies:{"posthog-node":"^5.28.11"}}},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},36359,69839,79779,a=>{"use strict";let b;var c=a.i(37936),d=a.i(2157),e=a.i(50227),f=a.i(60526),g=a.i(66680);a.i(74533);let h=e.default.join(f.default.homedir(),".failproofai"),i=e.default.join(h,"instance-id");function j(a){return g.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(){if(b)return b;let a=function(){try{for(let a of(f.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=d.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return b=j(a);let c=[f.default.hostname(),f.default.homedir(),f.default.platform(),f.default.arch(),f.default.cpus()[0]?.model??""].join(":");return b=c?j(c):function(){try{let a=d.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=g.default.randomUUID();try{d.default.mkdirSync(h,{recursive:!0}),d.default.writeFileSync(i,a,"utf-8")}catch{}return a}()}a.s(["getInstanceId",0,k,"hashToId",0,j],69839),a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX"],79779);var l=a.i(12072);async function m(){let a="1"!==process.env.FAILPROOFAI_TELEMETRY_DISABLED;return{enabled:a,distinctId:a?k():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:l.version}}(0,a.i(13095).ensureServerEntryExports)([m]),(0,c.registerServerReference)(m,"001ce9bc6145239393c867a916f9601df1c75bfbf7",null),a.s(["getTelemetryConfig",0,m],36359)},24190,a=>{"use strict";var b=a.i(36359);a.s([],40488),a.i(40488),a.s(["001ce9bc6145239393c867a916f9601df1c75bfbf7",()=>b.getTelemetryConfig],24190)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__12dv.x0._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_0mebn66._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__10._f0s._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
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)},87256,a=>{"use strict";let b={claude:{id:"claude",label:"Claude Code",badgeClasses:"bg-orange-500/10 text-orange-400 border-orange-500/20"},codex:{id:"codex",label:"OpenAI Codex",badgeClasses:"bg-purple-500/10 text-purple-400 border-purple-500/20"},copilot:{id:"copilot",label:"GitHub Copilot",badgeClasses:"bg-blue-500/10 text-blue-400 border-blue-500/20"},cursor:{id:"cursor",label:"Cursor Agent",badgeClasses:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20"},opencode:{id:"opencode",label:"OpenCode",badgeClasses:"bg-amber-500/10 text-amber-400 border-amber-500/20"},pi:{id:"pi",label:"Pi",badgeClasses:"bg-pink-500/10 text-pink-400 border-pink-500/20"},gemini:{id:"gemini",label:"Gemini CLI",badgeClasses:"bg-sky-500/10 text-sky-400 border-sky-500/20"}};a.s(["KNOWN_CLI_IDS",0,["claude","codex","copilot","cursor","opencode","pi","gemini"],"getCliBadgeClasses",0,function(a){return b[a]?.badgeClasses??b.claude.badgeClasses},"getCliLabel",0,function(a){return b[a]?.label??a},"isKnownCli",0,function(a){return"string"==typeof a&&Object.prototype.hasOwnProperty.call(b,a)}])},16316,27950,45481,33540,24451,a=>{"use strict";a.s(["formatDate",0,function(a){return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0}).format(a)}],16316),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)},77975,a=>{"use strict";var b=a.i(87924),c=a.i(87256);a.s(["CliBadge",0,function({cli:a}){let d=(0,c.getCliLabel)(a),e=(0,c.getCliBadgeClasses)(a);return(0,b.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium border ${e}`,title:`Agent CLI: ${d}`,children:d})}])},34484,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(16316),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),o=a.i(77975);a.s(["default",0,function({files:a,projectName:p}){let q=(0,g.useUrlParams)(),r=(0,c.useRef)(!1),[s,t]=(0,c.useState)(()=>q.get("sid")??""),{filterPreset:u,dateRange:v,currentPage:w,setCurrentPage:x,handlePresetChange:y,handleDateRangeChange:z,clearFilters:A}=(0,f.useFilterState)([s],{filterPreset:(0,h.paramToPreset)(q.get("preset")),dateRange:(0,h.paramsToDateRange)(q.get("from"),q.get("to")),currentPage:(0,h.paramToPage)(q.get("page"))});(0,c.useEffect)(()=>{if(!r.current){r.current=!0;return}q.setAll({preset:(0,h.presetToParam)(u),...(0,h.dateRangeToParams)(v),sid:s||void 0,page:(0,h.pageToParam)(w)})},[u,v,s,w]);let B=(0,c.useMemo)(()=>(0,e.rehydrateDates)(a),[a]),C=(0,c.useMemo)(()=>{var a;let b;return(a=(0,e.filterByDate)(B,u,v),!(b=s.trim().toLowerCase())?a:a.filter(a=>a.sessionId?.toLowerCase().includes(b))).sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime())},[B,s,u,v]),D=Math.max(1,Math.ceil(C.length/e.ITEMS_PER_PAGE));(0,c.useEffect)(()=>{w>D&&x(D)},[w,D,x]);let E=(w-1)*e.ITEMS_PER_PAGE,F=Math.min(E+e.ITEMS_PER_PAGE,C.length),G=C.slice(E,F),H="all"!==u||null!==v.from||null!==v.to||""!==s;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:()=>y(a.value),className:`px-3 py-1.5 text-sm rounded-md transition-colors ${u===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:v.from,onChange:a=>z("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:v.to,onChange:a=>z("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:s,onChange:a=>t(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"}),H&&(0,b.jsx)("button",{onClick:()=>{A(),t("")},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===C.length?"No sessions found":(0,b.jsxs)(b.Fragment,{children:["Showing ",E+1,"-",F," of ",C.length," sessions",C.length!==B.length&&(0,b.jsxs)("span",{className:"ml-1",children:["(filtered from ",B.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===G.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."})}):G.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.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[a.sessionId?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.default,{href:`/project/${encodeURIComponent(p)}/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$/,"")}),a.cli&&(0,b.jsx)(o.CliBadge,{cli:a.cli})]})}),(0,b.jsx)("td",{className:"px-4 py-3 text-sm text-muted-foreground",children:a.lastModifiedFormatted||(0,d.formatDate)(a.lastModified)})]},a.path))})]})}),C.length>0&&(0,b.jsx)(l.default,{currentPage:w,totalPages:D,onPageChange:x})]})]})}],34484)}];
|
|
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)},87256,a=>{"use strict";let b={claude:{id:"claude",label:"Claude Code",badgeClasses:"bg-orange-500/10 text-orange-400 border-orange-500/20"},codex:{id:"codex",label:"OpenAI Codex",badgeClasses:"bg-purple-500/10 text-purple-400 border-purple-500/20"},copilot:{id:"copilot",label:"GitHub Copilot",badgeClasses:"bg-blue-500/10 text-blue-400 border-blue-500/20"},cursor:{id:"cursor",label:"Cursor Agent",badgeClasses:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20"},opencode:{id:"opencode",label:"OpenCode",badgeClasses:"bg-amber-500/10 text-amber-400 border-amber-500/20"},pi:{id:"pi",label:"Pi",badgeClasses:"bg-pink-500/10 text-pink-400 border-pink-500/20"},gemini:{id:"gemini",label:"Gemini CLI",badgeClasses:"bg-sky-500/10 text-sky-400 border-sky-500/20"}};a.s(["KNOWN_CLI_IDS",0,["claude","codex","copilot","cursor","opencode","pi","gemini"],"getCliBadgeClasses",0,function(a){return b[a]?.badgeClasses??b.claude.badgeClasses},"getCliLabel",0,function(a){return b[a]?.label??a},"isKnownCli",0,function(a){return"string"==typeof a&&Object.prototype.hasOwnProperty.call(b,a)}])},16316,27950,45481,33540,24451,a=>{"use strict";a.s(["formatDate",0,function(a){return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0}).format(a)}],16316),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)},77975,a=>{"use strict";var b=a.i(87924),c=a.i(87256);a.s(["CliBadge",0,function({cli:a}){let d=(0,c.getCliLabel)(a),e=(0,c.getCliBadgeClasses)(a);return(0,b.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-mono font-medium uppercase tracking-wider border ${e}`,title:`Agent CLI: ${d}`,children:d})}])},34484,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(16316),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),o=a.i(77975);a.s(["default",0,function({files:a,projectName:p}){let q=(0,g.useUrlParams)(),r=(0,c.useRef)(!1),[s,t]=(0,c.useState)(()=>q.get("sid")??""),{filterPreset:u,dateRange:v,currentPage:w,setCurrentPage:x,handlePresetChange:y,handleDateRangeChange:z,clearFilters:A}=(0,f.useFilterState)([s],{filterPreset:(0,h.paramToPreset)(q.get("preset")),dateRange:(0,h.paramsToDateRange)(q.get("from"),q.get("to")),currentPage:(0,h.paramToPage)(q.get("page"))});(0,c.useEffect)(()=>{if(!r.current){r.current=!0;return}q.setAll({preset:(0,h.presetToParam)(u),...(0,h.dateRangeToParams)(v),sid:s||void 0,page:(0,h.pageToParam)(w)})},[u,v,s,w]);let B=(0,c.useMemo)(()=>(0,e.rehydrateDates)(a),[a]),C=(0,c.useMemo)(()=>{var a;let b;return(a=(0,e.filterByDate)(B,u,v),!(b=s.trim().toLowerCase())?a:a.filter(a=>a.sessionId?.toLowerCase().includes(b))).sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime())},[B,s,u,v]),D=Math.max(1,Math.ceil(C.length/e.ITEMS_PER_PAGE));(0,c.useEffect)(()=>{w>D&&x(D)},[w,D,x]);let E=(w-1)*e.ITEMS_PER_PAGE,F=Math.min(E+e.ITEMS_PER_PAGE,C.length),G=C.slice(E,F),H="all"!==u||null!==v.from||null!==v.to||""!==s;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:()=>y(a.value),className:`px-3 py-1.5 text-sm rounded-md transition-colors ${u===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:v.from,onChange:a=>z("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:v.to,onChange:a=>z("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:s,onChange:a=>t(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"}),H&&(0,b.jsx)("button",{onClick:()=>{A(),t("")},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===C.length?"No sessions found":(0,b.jsxs)(b.Fragment,{children:["Showing ",E+1,"-",F," of ",C.length," sessions",C.length!==B.length&&(0,b.jsxs)("span",{className:"ml-1",children:["(filtered from ",B.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===G.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."})}):G.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.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[a.sessionId?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.default,{href:`/project/${encodeURIComponent(p)}/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$/,"")}),a.cli&&(0,b.jsx)(o.CliBadge,{cli:a.cli})]})}),(0,b.jsx)("td",{className:"px-4 py-3 text-sm text-muted-foreground",children:a.lastModifiedFormatted||(0,d.formatDate)(a.lastModified)})]},a.path))})]})}),C.length>0&&(0,b.jsx)(l.default,{currentPage:w,totalPages:D,onPageChange:x})]})]})}],34484)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_03d7qyt._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
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"})})}])},33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},32245,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(41997);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},7773,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},97458,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(87924),e=a.r(35112),f=a.r(56704),g=a.r(7773),h=a.r(68063);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let j=(0,h.getAssetTokenQuery)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${j}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},69853,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(87924),e=a.r(72131),f=a.r(32245),g=a.r(97458);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},19721,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(33354)._(a.r(69853));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("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)},94092,a=>{"use strict";var b=a.i(87924);let c=(0,a.i(19721).default)(async()=>{},{loadableGenerated:{modules:[5780]},ssr:!1,loading:()=>(0,b.jsx)("div",{className:"bg-card border border-border rounded-lg p-4 shadow-sm",children:(0,b.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,b.jsx)("div",{className:"animate-pulse text-muted-foreground",children:"Loading log viewer..."})})})});a.s(["default",0,function({entries:a,projectName:d,sessionId:e}){return(0,b.jsx)(c,{entries:a,projectName:d,sessionId:e})}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0xb8ngh._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[14066,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/lazy-log-viewer.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/lazy-log-viewer.tsx <module evaluation>","default")},19597,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/lazy-log-viewer.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/lazy-log-viewer.tsx","default")},71130,a=>{"use strict";a.i(14066);var b=a.i(19597);a.n(b)},85540,a=>{"use strict";a.s(["CopyButton",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call CopyButton() from the server but CopyButton is 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/copy-button.tsx <module evaluation>","CopyButton")},35770,a=>{"use strict";a.s(["CopyButton",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call CopyButton() from the server but CopyButton is 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/copy-button.tsx","CopyButton")},893,a=>{"use strict";a.i(85540);var b=a.i(35770);a.n(b)},41190,a=>{"use strict";var b=a.i(7997),c=a.i(95936),d=a.i(84930);let e=(0,a.i(92277).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);a.i(70396);var f=a.i(73727),g=a.i(24868),h=a.i(14747),i=a.i(90798),j=a.i(69191);async function k(a,b,c,d){let e=`agent-${d}.jsonl`;for(let d of[(0,h.join)(a,b,e),(0,h.join)(a,b,c,e),(0,h.join)(a,b,c,"subagents",e)])if(!(0,h.relative)(a,d).startsWith(".."))try{return await (0,g.access)(d),d}catch(a){if("ENOENT"===a.code)continue;break}return null}var l=a.i(34900),m=a.i(26192),n=a.i(33432);function o(a){if(a<1e3)return`${a}ms`;let b=a/1e3;if(b<60)return`${b.toFixed(1)}s`;let c=Math.floor(b/60);if(c>=60){let a=Math.floor(c/60);return`${a}h ${c%60}m`}let d=(b%60).toFixed(0);return`${c}m ${d}s`}function p(a){let b=(0,n.formatDate)(a),c=a.getMilliseconds().toString().padStart(3,"0");return`${b}.${c}`}function q(a,b,c,d){return{_source:d,uuid:a.uuid||"",parentUuid:a.parentUuid??null,timestamp:b,timestampMs:c.getTime(),timestampFormatted:p(c)}}async function r(a,b){let c=a.split("\n").filter(a=>""!==a.trim()),d=new Map,e=[],f=[],g=new Set,h=!1;for(let a=0;a<c.length;a++){let i;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let j=c[a];try{i=JSON.parse(j)}catch{continue}let k={...i,_source:b};f.push(k);let l=i.type,m=i.timestamp;if(!m)continue;let n=new Date(m),o=n.getTime();if("user"===l){let a=i.message;if(Array.isArray(a?.content)){let b=a.content;if(b.some(a=>"tool_result"===a.type)){let a=i.toolUseResult,c="string"==typeof a?.agentId?a.agentId:void 0;for(let a of(c&&/^[a-f0-9]+$/.test(c)&&g.add(c),b)){if("tool_result"!==a.type)continue;let b=a.tool_use_id;if(!b)continue;let{text:e,images:f}=function(a){let b=a.content;if("string"==typeof b)return{text:b};if(Array.isArray(b)){let a=b.filter(a=>"text"===a.type).map(a=>a.text),c=b.filter(a=>"image"===a.type).map(a=>{let b=a.source;return{base64:b.data,mediaType:b.media_type}}).filter(a=>a.base64&&a.mediaType);return{text:a.length>0?a.join("\n"):void 0,images:c.length>0?c:void 0}}return{}}(a);d.set(b,{timestamp:m,timestampMs:o,content:e,images:f,agentId:c})}continue}}let c="string"==typeof a?.content?a.content:"";e.push({type:"user",...q(i,m,n,b),message:{role:"user",content:c}});continue}if("assistant"===l){let a=i.message,c=[];if(Array.isArray(a?.content)&&(c=a.content.filter(a=>["text","tool_use","thinking"].includes(a.type)).map(a=>{if("text"===a.type)return{type:"text",text:a.text};if("tool_use"===a.type){let b=a.input;return{type:"tool_use",id:a.id,name:a.name,input:a.input??{},..."Task"===a.name&&b?{subagentType:b.subagent_type,subagentDescription:b.description}:{}}}return{type:"thinking",thinking:a.thinking,signature:a.signature}})),0===c.length)continue;e.push({type:"assistant",...q(i,m,n,b),message:{role:"assistant",content:c,model:a?.model}});continue}if("file-history-snapshot"===l||"progress"===l||"system"===l){e.push({type:l,...q(i,m,n,b),raw:{...i}});continue}if("queue-operation"===l){let a=h?"Session Resumed":"Session Started";h=!0,e.push({type:"queue-operation",...q(i,m,n,b),label:a});continue}}let i=0;for(let a of e)if("assistant"===a.type)for(let b of(++i%200==0&&await new Promise(a=>setImmediate(a)),a.message.content)){if("tool_use"!==b.type)continue;let c=d.get(b.id);if(!c)continue;let e=new Date(c.timestamp),f=Math.max(0,c.timestampMs-a.timestampMs);b.result={timestamp:c.timestamp,timestampFormatted:p(e),content:c.content,images:c.images,durationMs:f,durationFormatted:o(f)},c.agentId&&(b.subagentId=c.agentId)}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,subagentIds:Array.from(g)}}async function s(a,b){let c=(0,j.resolveProjectPath)(a),d=(0,i.getClaudeProjectsPath)(),e=(0,h.join)(c,`${b}.jsonl`),f=await (0,g.readFile)(e,"utf-8"),{entries:l,rawLines:n,subagentIds:o}=await r(f,"session");if(0===o.length)return{entries:l,rawLines:n,subagentIds:[]};let p=await (0,m.batchAll)(o.map(c=>async()=>{let e=`agent-${c}`,f=await k(d,a,b,c);if(!f)return null;let h=await (0,g.readFile)(f,"utf-8"),{entries:i,rawLines:j}=await r(h,e);return{entries:i,rawLines:j}}),4),q=[...l],s=[...n];for(let a of p)"fulfilled"===a.status&&a.value&&(q.push(...a.value.entries),s.push(...a.value.rawLines));return q.length>500&&await new Promise(a=>setImmediate(a)),q.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:q,rawLines:s,subagentIds:o}}let t=(0,l.runtimeCache)((a,b)=>s(a,b),60,{maxSize:50});var u=a.i(2157),v=a.i(12714),w=a.i(50227),x=a.i(60526);let y=(0,w.join)((0,x.homedir)(),".failproofai","cache","codex-session-paths.json");function z(){try{if(!(0,u.existsSync)(y))return{};return JSON.parse((0,u.readFileSync)(y,"utf-8"))}catch{return{}}}function A(a,b){try{(0,u.mkdirSync)((0,w.dirname)(y),{recursive:!0});let c=z();c[a]=b,(0,u.writeFileSync)(y,JSON.stringify(c),"utf-8")}catch{}}function B(a,b){try{for(let c of(0,u.readdirSync)(a,{withFileTypes:!0}))if(c.isFile()&&c.name.includes(b)&&c.name.endsWith(".jsonl"))return(0,w.join)(a,c.name)}catch{}return null}function C(a,b){return Array.isArray(a)?a.filter(a=>a?.type===b&&"string"==typeof a.text).map(a=>a.text).join("\n"):""}async function D(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=new Map,h=new Map,i=!1;for(let a=0;a<d.length;a++){let j;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let k=d[a];try{j=JSON.parse(k)}catch{continue}let l={...j,_source:b};f.push(l);let m=j.timestamp;if(!m)continue;let n=new Date(m);if(Number.isNaN(n.getTime()))continue;let r=j.type,s=j.payload??{};if("session_meta"===r){let a=s.cwd;"string"!=typeof a||c||(c=a),e.push({type:"system",...q(l,m,n,b),raw:l});continue}if("response_item"===r){let a=s.type;if("message"===a){let a=s.role,c=s.content;if("user"===a||"developer"===a){let d=C(c,"input_text");if(!d)continue;let f="developer"===a?`[developer] ${d}`:d;e.push({type:"user",...q(l,m,n,b),message:{role:"user",content:f}});continue}if("assistant"===a){let a=C(c,"output_text");if(!a)continue;let d=[{type:"text",text:a}];e.push({type:"assistant",...q(l,m,n,b),message:{role:"assistant",content:d}});continue}e.push({type:"system",...q(l,m,n,b),raw:l});continue}if("function_call"===a){let a=s.call_id,c=s.name??"function_call",d={type:"tool_use",id:a??`${m}-${c}`,name:c,input:function(a){if(!a)return{};try{return JSON.parse(a)}catch{return{}}}(s.arguments)},f={type:"assistant",...q(l,m,n,b),message:{role:"assistant",content:[d]}};e.push(f),a&&(g.set(a,d),h.set(a,n.getTime()));continue}if("function_call_output"===a){let a=s.call_id,c=a?g.get(a):void 0;if(c){let b=h.get(a)??n.getTime(),d=Math.max(0,n.getTime()-b);c.result={timestamp:m,timestampFormatted:p(n),content:"string"==typeof s.output?s.output:JSON.stringify(s.output),durationMs:d,durationFormatted:o(d)};continue}e.push({type:"system",...q(l,m,n,b),raw:l});continue}e.push({type:"system",...q(l,m,n,b),raw:l});continue}if("event_msg"===r){let a=s.type;if("task_started"===a){let a=i?"Session Resumed":"Session Started";i=!0,e.push({type:"queue-operation",...q(l,m,n,b),label:a});continue}if("exec_command_end"===a){let a=s.call_id,c=a?g.get(a):void 0;if(c){let b=s.duration,d=b?(b.secs??0)*1e3+Math.round((b.nanos??0)/1e6):Math.max(0,n.getTime()-(h.get(a)??n.getTime())),e=s.aggregated_output;c.result={timestamp:m,timestampFormatted:p(n),content:"string"==typeof e?e:JSON.stringify(e),durationMs:d,durationFormatted:o(d)};continue}e.push({type:"system",...q(l,m,n,b),raw:l});continue}if("user_message"===a||"agent_message"===a)continue;e.push({type:"system",...q(l,m,n,b),raw:l});continue}e.push({type:"system",...q(l,m,n,b),raw:l})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function E(a){let b=function(a){let b=z()[a];if(b&&(0,u.existsSync)(b))return b;let c=(0,w.join)((0,x.homedir)(),".codex","sessions"),d=new Date,e=new Date(d.getTime()-864e5);for(let b of[d,e].map(a=>{let b=String(a.getUTCFullYear()),d=String(a.getUTCMonth()+1).padStart(2,"0"),e=String(a.getUTCDate()).padStart(2,"0");return(0,w.join)(c,b,d,e)})){let c=B(b,a);if(c)return A(a,c),c}try{for(let b of(0,u.readdirSync)(c,{withFileTypes:!0}))if(b.isDirectory()){for(let d of(0,u.readdirSync)((0,w.join)(c,b.name),{withFileTypes:!0}))if(d.isDirectory())for(let e of(0,u.readdirSync)((0,w.join)(c,b.name,d.name),{withFileTypes:!0})){if(!e.isDirectory())continue;let f=B((0,w.join)(c,b.name,d.name,e.name),a);if(f)return A(a,f),f}}}catch{}return null}(a);if(!b)return null;let c=await (0,v.readFile)(b,"utf-8"),{entries:d,rawLines:e,cwd:f}=await D(c,"session");return{entries:d,rawLines:e,cwd:f,filePath:b}}let F=(0,l.runtimeCache)(a=>E(a),60,{maxSize:50});function G(a,b){let c=function(a){if(!a)return null;let b=(0,w.resolve)((0,w.join)(process.env.COPILOT_HOME||(0,w.join)((0,x.homedir)(),".copilot"),"session-state")),c=(0,w.resolve)(b,a);return c!==b&&c.startsWith(`${b}${w.sep}`)?c:null}(a);return c?(0,w.join)(c,b):null}async function H(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=new Map,h=new Map,i=!1;for(let a=0;a<d.length;a++){let j;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let k=d[a];try{j=JSON.parse(k)}catch{continue}let l={...j,_source:b};f.push(l);let m=j.timestamp;if(!m)continue;let n=new Date(m);if(Number.isNaN(n.getTime()))continue;let r=n.toISOString(),s=j.type,t=j.data??{};if("session.start"===s){let a=t.context,d=a?.cwd;"string"!=typeof d||c||(c=d);let f=i?"Session Resumed":"Session Started";i=!0,e.push({type:"queue-operation",...q(l,r,n,b),label:f});continue}if("user.message"===s){let a=t.content??"";if(!a)continue;e.push({type:"user",...q(l,r,n,b),message:{role:"user",content:a}});continue}if("system.message"===s){e.push({type:"system",...q(l,r,n,b),raw:l});continue}if("assistant.message"===s){let a=t.content??"";if(!a){e.push({type:"system",...q(l,r,n,b),raw:l});continue}let c=[{type:"text",text:a}];e.push({type:"assistant",...q(l,r,n,b),message:{role:"assistant",content:c}});continue}if("tool.execution_start"===s){let a=t.toolCallId,c=t.toolName??"tool",d=t.arguments??{},f={type:"tool_use",id:a??`${n.getTime()}-${c}`,name:c,input:d},i={type:"assistant",...q(l,r,n,b),message:{role:"assistant",content:[f]}};e.push(i),a&&(g.set(a,f),h.set(a,n.getTime()));continue}if("tool.execution_complete"===s){let a=t.toolCallId,c=a?g.get(a):void 0;if(c){let b=h.get(a)??n.getTime(),d=t.result??{},e=t.toolTelemetry??{},f=e.metrics?.commandTimeMs??e.metrics?.durationMs??null,g="number"==typeof f&&f>=0?f:Math.max(0,n.getTime()-b),i=d.detailedContent??d.content??"";c.result={timestamp:r,timestampFormatted:p(n),content:"string"==typeof i?i:JSON.stringify(i),durationMs:g,durationFormatted:o(g)};continue}e.push({type:"system",...q(l,r,n,b),raw:l});continue}e.push({type:"system",...q(l,r,n,b),raw:l})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function I(a){let b,c,d=(c=G(a,"events.jsonl"))&&(0,u.existsSync)(c)?c:null;if(!d)return null;try{b=await (0,v.readFile)(d,"utf-8")}catch{return null}let{entries:e,rawLines:f,cwd:g}=await H(b,"session");return{entries:e,rawLines:f,cwd:g??function(a){let b,c=(b=G(a,"workspace.yaml"))&&(0,u.existsSync)(b)?b:null;if(c)try{let a=(0,u.readFileSync)(c,"utf-8"),b=RegExp("^cwd\\s*:\\s*(.+?)\\s*$","m"),d=a.match(b);if(!d)return;return d[1].replace(/^['"]|['"]$/g,"")}catch{return}}(a),filePath:d}}let J=(0,l.runtimeCache)(a=>I(a),60,{maxSize:50}),K=["agent-sessions","conversations","sessions"],L=["events.jsonl","transcript.jsonl","messages.jsonl"],M="agent-transcripts";async function N(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=new Map,h=new Map,i=!1,j=Date.now();for(let a=0;a<d.length;a++){let k;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let l=d[a];try{k=JSON.parse(l)}catch{continue}let m={...k,_source:b};if(f.push(m),!k.type&&k.role&&k.message?.content){let c=new Date(j+a),d=c.toISOString(),f=k.message.content.filter(a=>a?.type==="text"&&"string"==typeof a.text).map(a=>a.text).join("");if("user"===k.role){let a=/<user_query>\s*([\s\S]*?)\s*<\/user_query>/.exec(f),g=a?a[1]:f;g&&e.push({type:"user",...q(m,d,c,b),message:{role:"user",content:g}});continue}if("assistant"===k.role){let a=f?[{type:"text",text:f}]:[];0===a.length?e.push({type:"system",...q(m,d,c,b),raw:m}):e.push({type:"assistant",...q(m,d,c,b),message:{role:"assistant",content:a}});continue}e.push({type:"system",...q(m,d,c,b),raw:m});continue}let n=k.timestamp;if(!n)continue;let r=new Date(n);if(Number.isNaN(r.getTime()))continue;let s=r.toISOString(),t=k.type,u=k.data??{};if("session.start"===t||"sessionStart"===t||"session_start"===t){let a=u.context??u,d=a.cwd;"string"!=typeof d||c||(c=d),!c&&Array.isArray(a.workspace_roots)&&"string"==typeof a.workspace_roots[0]&&(c=a.workspace_roots[0]);let f=i?"Session Resumed":"Session Started";i=!0,e.push({type:"queue-operation",...q(m,s,r,b),label:f});continue}if("user.message"===t||"userMessage"===t){let a="string"==typeof u.content?u.content:"string"==typeof u.text?u.text:"";if(!a)continue;e.push({type:"user",...q(m,s,r,b),message:{role:"user",content:a}});continue}if("system.message"===t||"systemMessage"===t){e.push({type:"system",...q(m,s,r,b),raw:m});continue}if("assistant.message"===t||"assistantMessage"===t){let a="string"==typeof u.content?u.content:"string"==typeof u.text?u.text:"";if(!a){e.push({type:"system",...q(m,s,r,b),raw:m});continue}let c=[{type:"text",text:a}];e.push({type:"assistant",...q(m,s,r,b),message:{role:"assistant",content:c}});continue}if("tool.execution_start"===t||"tool.executionStart"===t||"preToolUse"===t){let a=u.toolCallId??u.tool_use_id,c=u.toolName??u.tool_name??"tool",d=u.arguments??u.tool_input??{},f={type:"tool_use",id:a??`${r.getTime()}-${c}`,name:c,input:d},i={type:"assistant",...q(m,s,r,b),message:{role:"assistant",content:[f]}};e.push(i),a&&(g.set(a,f),h.set(a,r.getTime()));continue}if("tool.execution_complete"===t||"tool.executionComplete"===t||"postToolUse"===t){let a=u.toolCallId??u.tool_use_id,c=a?g.get(a):void 0;if(c){let b=h.get(a)??r.getTime(),d=u.result??{},e=u.duration,f="number"==typeof e&&e>=0?e:Math.max(0,r.getTime()-b),g=d.detailedContent??d.content??u.tool_output??"";c.result={timestamp:s,timestampFormatted:p(r),content:"string"==typeof g?g:JSON.stringify(g),durationMs:f,durationFormatted:o(f)};continue}e.push({type:"system",...q(m,s,r,b),raw:m});continue}e.push({type:"system",...q(m,s,r,b),raw:m})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function O(a){let b,c=function(a){let b=function(a){if(!a)return null;let b=(0,w.resolve)(process.env.CURSOR_HOME||(0,w.join)((0,x.homedir)(),".cursor")),c=(0,w.resolve)(b,"projects"),d=[];try{d=(0,u.readdirSync)(c,{withFileTypes:!0})}catch{}for(let b of d){if(!b.isDirectory())continue;let d=(0,w.resolve)(c,b.name,M,a),e=(0,w.resolve)(c,b.name,M);if(d!==e&&d.startsWith(`${e}${w.sep}`)&&(0,u.existsSync)(d))return d}for(let c of K){let d=(0,w.resolve)(b,c),e=(0,w.resolve)(d,a);if(e!==d&&e.startsWith(`${d}${w.sep}`)&&(0,u.existsSync)(e))return e}return null}(a);if(!b)return null;let c=(0,w.join)(b,`${(0,w.basename)(b)}.jsonl`);if((0,u.existsSync)(c))return c;for(let a of L){let c=(0,w.join)(b,a);if((0,u.existsSync)(c))return c}return null}(a);if(!c)return null;try{b=await (0,v.readFile)(c,"utf-8")}catch{return null}let{entries:d,rawLines:e,cwd:f}=await N(b,"session");return{entries:d,rawLines:e,cwd:f,filePath:c}}let P=(0,l.runtimeCache)(a=>O(a),60,{maxSize:50});var Q=a.i(74533);function R(a){try{let b=(0,Q.execFileSync)("opencode",["db","--format","json",a],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]});if(!b.trim())return[];let c=JSON.parse(b);if(!Array.isArray(c))return null;return c}catch{return null}}function S(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function T(a){if("string"!=typeof a||0===a.length)return null;try{let b=JSON.parse(a);return S(b)?b:null}catch{return null}}async function U(a){if(!a||!/^[A-Za-z0-9_-]+$/.test(a))return null;let b=R(`SELECT id, project_id, slug, directory, title, time_created, time_updated FROM session WHERE id = '${a}'`);if(!b||0===b.length)return null;let c=b[0],d=R(`SELECT id, session_id, time_created, time_updated, data FROM message WHERE session_id = '${a}' ORDER BY time_created ASC`),e=R(`SELECT id, message_id, session_id, time_created, time_updated, data FROM part WHERE session_id = '${a}' ORDER BY time_created ASC`);if(!d)return{entries:[],rawLines:[],cwd:c.directory??void 0,filePath:`opencode://${a}`};let f=new Map;for(let a of e??[]){let b=f.get(a.message_id);b||(b=[],f.set(a.message_id,b)),b.push(a)}let g=[],h=[];for(let a of d){let b=f.get(a.id)??[];g.push(function(a,b,c){let d=T(a.data)??{},e="string"==typeof d.role?d.role:"system",f=new Date(a.time_created),g=f.toISOString(),h=q({uuid:a.id,parentUuid:null},g,f,c),i=[],j="";for(let a of b){let b=T(a.data);if(!b)continue;let c="string"==typeof b.type?b.type:"unknown";if("text"===c){let a="string"==typeof b.text?b.text:"string"==typeof b.content?b.content:"";a&&(i.push({type:"text",text:a}),j+=(j?"\n":"")+a);continue}if("tool"===c){let c="string"==typeof b.tool?b.tool:"string"==typeof b.name?b.name:"tool",d=S(b.state)?b.state:null,e=d&&S(d.input)?d.input:S(b.input)?b.input:S(b.args)?b.args:{},f={type:"tool_use",id:a.id,name:c,input:e},g=d&&"string"==typeof d.status?d.status:"";if(d&&("completed"===g||"error"===g)){let b=("error"===g&&"string"==typeof d.error?d.error:null)??d.output,c="string"==typeof b?b:null!=b?JSON.stringify(b):"",e=S(d.time)?d.time:{},h="number"==typeof e.start?e.start:a.time_created,i="number"==typeof e.end?e.end:a.time_updated,j=Math.max(0,i-h),k=new Date(i);f.result={timestamp:k.toISOString(),timestampFormatted:p(k),content:c,durationMs:j,durationFormatted:o(j)}}i.push(f);continue}i.push({type:"text",text:`[opencode ${c}]`})}if("user"===e)return{...h,type:"user",message:{role:"user",content:j}};if("assistant"===e){let a=S(d.model)?d.model:null,b=a&&"string"==typeof a.modelID?a.modelID:void 0;return{...h,type:"assistant",message:{role:"assistant",content:i,model:b}}}return{...h,type:"system",raw:{id:a.id,role:e,parts:i}}}(a,b,"session"));let c=T(a.data);h.push({id:a.id,session_id:a.session_id,time_created:a.time_created,data:c??a.data})}return{entries:g,rawLines:h,cwd:c.directory??void 0,filePath:`opencode://${a}`}}let V=(0,l.runtimeCache)(a=>U(a),30,{maxSize:50}),W=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,X=/^[\d-]+T[\d-]+Z_([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/i;async function Y(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=!1;for(let a=0;a<d.length;a++){let h;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let i=d[a];try{h=JSON.parse(i)}catch{continue}let j={...h,_source:b};f.push(j);let k=h.timestamp;if(!k)continue;let l=new Date(k);if(Number.isNaN(l.getTime()))continue;let m=l.toISOString(),n=h.type;if("session"===n){"string"!=typeof h.cwd||c||(c=h.cwd);let a=g?"Session Resumed":"Session Started";g=!0,e.push({type:"queue-operation",...q(j,m,l,b),label:a});continue}if("message"===n&&h.message&&"object"==typeof h.message){let a=h.message.role,c=h.message.content;if("user"===a){let a=function(a){if(!Array.isArray(a))return"";let b=[];for(let c of a)c?.type==="text"&&"string"==typeof c.text&&b.push(c.text);return b.join("\n\n")}(c);if(!a)continue;e.push({type:"user",...q(j,m,l,b),message:{role:"user",content:a}});continue}if("assistant"===a){let a=function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a)c?.type==="text"&&"string"==typeof c.text&&c.text.length>0&&b.push({type:"text",text:c.text}),c?.type==="thinking"&&"string"==typeof c.thinking&&c.thinking.length>0&&b.push({type:"text",text:`[thinking] ${c.thinking}`});return b}(c);if(0===a.length){e.push({type:"system",...q(j,m,l,b),raw:j});continue}e.push({type:"assistant",...q(j,m,l,b),message:{role:"assistant",content:a}});continue}e.push({type:"system",...q(j,m,l,b),raw:j});continue}e.push({type:"system",...q(j,m,l,b),raw:j})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function Z(a){let b,c,d=function(a){let b;if(!W.test(a))return null;let c=(0,w.resolve)(process.env.PI_SESSIONS_DIR||(0,w.join)((0,x.homedir)(),".pi","agent","sessions"));try{b=(0,u.readdirSync)(c)}catch{return null}for(let d of b){let b,e=(0,w.resolve)(c,d);if(e.startsWith(`${c}${w.sep}`)){try{b=(0,u.readdirSync)(e)}catch{continue}for(let c of b){let b=X.exec(c);if(!b||b[1].toLowerCase()!==a.toLowerCase())continue;let d=(0,w.resolve)(e,c);if(d.startsWith(`${e}${w.sep}`)&&(0,u.existsSync)(d))return d}}}return null}(a);if(!d)return null;try{b=await (0,v.readFile)(d,"utf-8")}catch{return null}try{c=await Y(b,"session")}catch{return null}return{entries:c.entries,rawLines:c.rawLines,cwd:c.cwd,filePath:d}}let $=(0,l.runtimeCache)(a=>Z(a),60,{maxSize:50}),_=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,aa=/^session-(.+)-([0-9a-f]{8})\.jsonl$/i;async function ab(a,b="session",c){let d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=!1;for(let a=0;a<d.length;a++){let c;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let h=d[a];try{c=JSON.parse(h)}catch{continue}let i={...c,_source:b};if(f.push(i),"string"==typeof c.sessionId&&"string"==typeof c.startTime){let a=new Date(c.startTime);if(!Number.isNaN(a.getTime())){let c=g?"Session Resumed":"Session Started";g=!0,e.push({type:"queue-operation",...q(i,a.toISOString(),a,b),label:c})}continue}if(c.$set)continue;let j=c.timestamp;if(!j)continue;let k=new Date(j);if(Number.isNaN(k.getTime()))continue;let l=k.toISOString(),m=c.type;if("user"===m){let a=function(a){if(!Array.isArray(a))return"";let b=[];for(let c of a)"string"==typeof c?.text&&b.push(c.text);return b.join("\n\n")}(c.content);if(!a)continue;e.push({type:"user",...q(i,l,k,b),message:{role:"user",content:a}});continue}if("assistant"===m||"model"===m){let a=function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a)"string"==typeof c?.text&&c.text.length>0&&b.push({type:"text",text:c.text});return b}(c.content);if(0===a.length){e.push({type:"system",...q(i,l,k,b),raw:i});continue}e.push({type:"assistant",...q(i,l,k,b),message:{role:"assistant",content:a}});continue}e.push({type:"system",...q(i,l,k,b),raw:i})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function ac(a){let b,c,d=function(a){let b;if(!_.test(a))return null;let c=(0,w.resolve)(process.env.GEMINI_SESSIONS_DIR||(0,w.join)((0,x.homedir)(),".gemini","tmp")),d=a.slice(0,8).toLowerCase();try{b=(0,u.readdirSync)(c)}catch{return null}for(let e of b){let b,f=(0,w.resolve)(c,e);if(!f.startsWith(`${c}${w.sep}`))continue;let g=(0,w.resolve)(f,"chats");try{b=(0,u.readdirSync)(g)}catch{continue}for(let c of b){let b=aa.exec(c);if(!b||b[2].toLowerCase()!==d)continue;let e=(0,w.resolve)(g,c);if(!e.startsWith(`${g}${w.sep}`)||!(0,u.existsSync)(e))continue;let f=function(a){let b;try{b=(0,u.openSync)(a,"r")}catch{return null}try{let a=Buffer.alloc(4096),c=(0,u.readSync)(b,a,0,a.length,0);if(0===c)return null;let d=a.subarray(0,c).toString("utf-8"),e=d.indexOf("\n");return e>=0?d.slice(0,e):d}catch{return null}finally{try{(0,u.closeSync)(b)}catch{}}}(e);if(f)try{let b=JSON.parse(f);if("string"==typeof b.sessionId&&b.sessionId.toLowerCase()===a.toLowerCase())return e}catch{continue}}}return null}(a);if(!d)return null;try{b=await (0,v.readFile)(d,"utf-8")}catch{return null}let e=function(a){let b=(0,w.resolve)(a,".."),c=(0,w.resolve)(b,".."),d=(0,w.join)(c,".project_root");try{let a=(0,u.readFileSync)(d,"utf-8").trim();return a.length>0?a:void 0}catch{return}}(d);try{c=await ab(b,"session",e)}catch{return null}return{entries:c.entries,rawLines:c.rawLines,cwd:c.cwd,filePath:d}}let ad=(0,l.runtimeCache)(a=>ac(a),60,{maxSize:50});var ae=a.i(71130),af=a.i(893);let ag={claude:{id:"claude",label:"Claude Code",badgeClasses:"bg-orange-500/10 text-orange-400 border-orange-500/20"},codex:{id:"codex",label:"OpenAI Codex",badgeClasses:"bg-purple-500/10 text-purple-400 border-purple-500/20"},copilot:{id:"copilot",label:"GitHub Copilot",badgeClasses:"bg-blue-500/10 text-blue-400 border-blue-500/20"},cursor:{id:"cursor",label:"Cursor Agent",badgeClasses:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20"},opencode:{id:"opencode",label:"OpenCode",badgeClasses:"bg-amber-500/10 text-amber-400 border-amber-500/20"},pi:{id:"pi",label:"Pi",badgeClasses:"bg-pink-500/10 text-pink-400 border-pink-500/20"},gemini:{id:"gemini",label:"Gemini CLI",badgeClasses:"bg-sky-500/10 text-sky-400 border-sky-500/20"}};function ah({cli:a}){var c,d;let e=(c=a,ag[c]?.label??c),f=(d=a,ag[d]?.badgeClasses??ag.claude.badgeClasses);return(0,b.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium border ${f}`,title:`Agent CLI: ${e}`,children:e})}async function ai({params:a}){let g,h,{name:k,sessionId:l}=await a;try{(0,j.resolveProjectPath)(k)}catch{(0,f.notFound)()}let m=(0,i.decodeFolderName)(k),n=-1===(h=l.indexOf("/"))?l:l.slice(0,h);j.UUID_RE.test(n)||/^ses_[A-Za-z0-9]+$/.test(n)||(0,f.notFound)();let o=null,p=null,q=null,r="claude";try{let a=await t(k,n);o=a.entries,p=a.rawLines}catch(a){if("ENOENT"===a.code){let a=await F(n);if(a)o=a.entries,p=a.rawLines,g=a.cwd,r="codex";else{let a=await J(n);if(a)o=a.entries,p=a.rawLines,g=a.cwd,r="copilot";else{let a=await P(n);if(a)o=a.entries,p=a.rawLines,g=a.cwd,r="cursor";else{let a=await V(n);if(a)o=a.entries,p=a.rawLines,g=a.cwd,r="opencode";else{let a=await $(n);if(a)o=a.entries,p=a.rawLines,g=a.cwd,r="pi";else{let a=await ad(n);a?(o=a.entries,p=a.rawLines,g=a.cwd,r="gemini"):q="Session log file not found."}}}}}}else q="Failed to read session log."}let s="claude"!==r,u="codex"===r?`OpenAI Codex${g?` \xb7 ${g}`:""}`:"copilot"===r?`GitHub Copilot${g?` \xb7 ${g}`:""}`:"cursor"===r?`Cursor Agent${g?` \xb7 ${g}`:""}`:"opencode"===r?`OpenCode${g?` \xb7 ${g}`:""}`:"pi"===r?`Pi${g?` \xb7 ${g}`:""}`:"gemini"===r?`Gemini CLI${g?` \xb7 ${g}`:""}`:m;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)(c.default,{href:s?"/policies?tab=activity":`/project/${encodeURIComponent(k)}`,className:"inline-flex items-center gap-2 text-muted-foreground hover:text-foreground mb-6 transition-colors",children:[(0,b.jsx)(d.ArrowLeft,{className:"w-4 h-4"}),(0,b.jsx)("span",{children:s?"Back to Activity":"Back to Sessions"})]}),(0,b.jsxs)("div",{className:"mb-8",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 mb-2",children:[(0,b.jsx)("h1",{className:"text-4xl font-bold text-foreground",children:"Session Log"}),(0,b.jsx)(ah,{cli:r})]}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("p",{className:"text-muted-foreground",children:[(0,b.jsxs)("span",{className:"font-medium",children:[s?"CLI":"Project",":"]})," ",u]}),(0,b.jsxs)("p",{className:"text-muted-foreground break-words break-all inline-flex items-center gap-1",children:[(0,b.jsx)("span",{className:"font-medium",children:"Session:"})," ",n,(0,b.jsx)(af.CopyButton,{text:n})]}),o&&p&&(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("p",{className:"text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium",children:p.length})," log lines"]}),(0,b.jsxs)("a",{href:`/api/download/${encodeURIComponent(k)}/${encodeURIComponent(n)}?cli=${r}`,download:!0,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-md bg-muted text-muted-foreground hover:bg-muted/80 hover:text-foreground transition-colors",children:[(0,b.jsx)(e,{className:"w-4 h-4"}),"Download Logs"]})]})]})]}),q&&(0,b.jsx)("div",{className:"bg-card text-card-foreground rounded-lg border border-destructive/50 p-6 shadow-sm",children:(0,b.jsx)("p",{className:"text-destructive text-center py-8",children:q})}),!q&&o&&(0,b.jsx)(ae.default,{entries:o,projectName:s?g??("codex"===r?"OpenAI Codex":"copilot"===r?"GitHub Copilot":"cursor"===r?"Cursor Agent":"opencode"===r?"OpenCode":"pi"===r?"Pi":"Gemini CLI"):m,sessionId:n})]})})}a.s(["default",0,ai,"dynamic",0,"force-dynamic"],41190)},87330,a=>{a.n(a.i(41190))}];
|
|
1
|
+
module.exports=[14066,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/lazy-log-viewer.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/lazy-log-viewer.tsx <module evaluation>","default")},19597,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/lazy-log-viewer.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/lazy-log-viewer.tsx","default")},71130,a=>{"use strict";a.i(14066);var b=a.i(19597);a.n(b)},85540,a=>{"use strict";a.s(["CopyButton",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call CopyButton() from the server but CopyButton is 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/copy-button.tsx <module evaluation>","CopyButton")},35770,a=>{"use strict";a.s(["CopyButton",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call CopyButton() from the server but CopyButton is 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/copy-button.tsx","CopyButton")},893,a=>{"use strict";a.i(85540);var b=a.i(35770);a.n(b)},41190,a=>{"use strict";var b=a.i(7997),c=a.i(95936),d=a.i(84930);let e=(0,a.i(92277).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);a.i(70396);var f=a.i(73727),g=a.i(24868),h=a.i(14747),i=a.i(90798),j=a.i(69191);async function k(a,b,c,d){let e=`agent-${d}.jsonl`;for(let d of[(0,h.join)(a,b,e),(0,h.join)(a,b,c,e),(0,h.join)(a,b,c,"subagents",e)])if(!(0,h.relative)(a,d).startsWith(".."))try{return await (0,g.access)(d),d}catch(a){if("ENOENT"===a.code)continue;break}return null}var l=a.i(34900),m=a.i(26192),n=a.i(33432);function o(a){if(a<1e3)return`${a}ms`;let b=a/1e3;if(b<60)return`${b.toFixed(1)}s`;let c=Math.floor(b/60);if(c>=60){let a=Math.floor(c/60);return`${a}h ${c%60}m`}let d=(b%60).toFixed(0);return`${c}m ${d}s`}function p(a){let b=(0,n.formatDate)(a),c=a.getMilliseconds().toString().padStart(3,"0");return`${b}.${c}`}function q(a,b,c,d){return{_source:d,uuid:a.uuid||"",parentUuid:a.parentUuid??null,timestamp:b,timestampMs:c.getTime(),timestampFormatted:p(c)}}async function r(a,b){let c=a.split("\n").filter(a=>""!==a.trim()),d=new Map,e=[],f=[],g=new Set,h=!1;for(let a=0;a<c.length;a++){let i;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let j=c[a];try{i=JSON.parse(j)}catch{continue}let k={...i,_source:b};f.push(k);let l=i.type,m=i.timestamp;if(!m)continue;let n=new Date(m),o=n.getTime();if("user"===l){let a=i.message;if(Array.isArray(a?.content)){let b=a.content;if(b.some(a=>"tool_result"===a.type)){let a=i.toolUseResult,c="string"==typeof a?.agentId?a.agentId:void 0;for(let a of(c&&/^[a-f0-9]+$/.test(c)&&g.add(c),b)){if("tool_result"!==a.type)continue;let b=a.tool_use_id;if(!b)continue;let{text:e,images:f}=function(a){let b=a.content;if("string"==typeof b)return{text:b};if(Array.isArray(b)){let a=b.filter(a=>"text"===a.type).map(a=>a.text),c=b.filter(a=>"image"===a.type).map(a=>{let b=a.source;return{base64:b.data,mediaType:b.media_type}}).filter(a=>a.base64&&a.mediaType);return{text:a.length>0?a.join("\n"):void 0,images:c.length>0?c:void 0}}return{}}(a);d.set(b,{timestamp:m,timestampMs:o,content:e,images:f,agentId:c})}continue}}let c="string"==typeof a?.content?a.content:"";e.push({type:"user",...q(i,m,n,b),message:{role:"user",content:c}});continue}if("assistant"===l){let a=i.message,c=[];if(Array.isArray(a?.content)&&(c=a.content.filter(a=>["text","tool_use","thinking"].includes(a.type)).map(a=>{if("text"===a.type)return{type:"text",text:a.text};if("tool_use"===a.type){let b=a.input;return{type:"tool_use",id:a.id,name:a.name,input:a.input??{},..."Task"===a.name&&b?{subagentType:b.subagent_type,subagentDescription:b.description}:{}}}return{type:"thinking",thinking:a.thinking,signature:a.signature}})),0===c.length)continue;e.push({type:"assistant",...q(i,m,n,b),message:{role:"assistant",content:c,model:a?.model}});continue}if("file-history-snapshot"===l||"progress"===l||"system"===l){e.push({type:l,...q(i,m,n,b),raw:{...i}});continue}if("queue-operation"===l){let a=h?"Session Resumed":"Session Started";h=!0,e.push({type:"queue-operation",...q(i,m,n,b),label:a});continue}}let i=0;for(let a of e)if("assistant"===a.type)for(let b of(++i%200==0&&await new Promise(a=>setImmediate(a)),a.message.content)){if("tool_use"!==b.type)continue;let c=d.get(b.id);if(!c)continue;let e=new Date(c.timestamp),f=Math.max(0,c.timestampMs-a.timestampMs);b.result={timestamp:c.timestamp,timestampFormatted:p(e),content:c.content,images:c.images,durationMs:f,durationFormatted:o(f)},c.agentId&&(b.subagentId=c.agentId)}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,subagentIds:Array.from(g)}}async function s(a,b){let c=(0,j.resolveProjectPath)(a),d=(0,i.getClaudeProjectsPath)(),e=(0,h.join)(c,`${b}.jsonl`),f=await (0,g.readFile)(e,"utf-8"),{entries:l,rawLines:n,subagentIds:o}=await r(f,"session");if(0===o.length)return{entries:l,rawLines:n,subagentIds:[]};let p=await (0,m.batchAll)(o.map(c=>async()=>{let e=`agent-${c}`,f=await k(d,a,b,c);if(!f)return null;let h=await (0,g.readFile)(f,"utf-8"),{entries:i,rawLines:j}=await r(h,e);return{entries:i,rawLines:j}}),4),q=[...l],s=[...n];for(let a of p)"fulfilled"===a.status&&a.value&&(q.push(...a.value.entries),s.push(...a.value.rawLines));return q.length>500&&await new Promise(a=>setImmediate(a)),q.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:q,rawLines:s,subagentIds:o}}let t=(0,l.runtimeCache)((a,b)=>s(a,b),60,{maxSize:50});var u=a.i(2157),v=a.i(12714),w=a.i(50227),x=a.i(60526);let y=(0,w.join)((0,x.homedir)(),".failproofai","cache","codex-session-paths.json");function z(){try{if(!(0,u.existsSync)(y))return{};return JSON.parse((0,u.readFileSync)(y,"utf-8"))}catch{return{}}}function A(a,b){try{(0,u.mkdirSync)((0,w.dirname)(y),{recursive:!0});let c=z();c[a]=b,(0,u.writeFileSync)(y,JSON.stringify(c),"utf-8")}catch{}}function B(a,b){try{for(let c of(0,u.readdirSync)(a,{withFileTypes:!0}))if(c.isFile()&&c.name.includes(b)&&c.name.endsWith(".jsonl"))return(0,w.join)(a,c.name)}catch{}return null}function C(a,b){return Array.isArray(a)?a.filter(a=>a?.type===b&&"string"==typeof a.text).map(a=>a.text).join("\n"):""}async function D(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=new Map,h=new Map,i=!1;for(let a=0;a<d.length;a++){let j;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let k=d[a];try{j=JSON.parse(k)}catch{continue}let l={...j,_source:b};f.push(l);let m=j.timestamp;if(!m)continue;let n=new Date(m);if(Number.isNaN(n.getTime()))continue;let r=j.type,s=j.payload??{};if("session_meta"===r){let a=s.cwd;"string"!=typeof a||c||(c=a),e.push({type:"system",...q(l,m,n,b),raw:l});continue}if("response_item"===r){let a=s.type;if("message"===a){let a=s.role,c=s.content;if("user"===a||"developer"===a){let d=C(c,"input_text");if(!d)continue;let f="developer"===a?`[developer] ${d}`:d;e.push({type:"user",...q(l,m,n,b),message:{role:"user",content:f}});continue}if("assistant"===a){let a=C(c,"output_text");if(!a)continue;let d=[{type:"text",text:a}];e.push({type:"assistant",...q(l,m,n,b),message:{role:"assistant",content:d}});continue}e.push({type:"system",...q(l,m,n,b),raw:l});continue}if("function_call"===a){let a=s.call_id,c=s.name??"function_call",d={type:"tool_use",id:a??`${m}-${c}`,name:c,input:function(a){if(!a)return{};try{return JSON.parse(a)}catch{return{}}}(s.arguments)},f={type:"assistant",...q(l,m,n,b),message:{role:"assistant",content:[d]}};e.push(f),a&&(g.set(a,d),h.set(a,n.getTime()));continue}if("function_call_output"===a){let a=s.call_id,c=a?g.get(a):void 0;if(c){let b=h.get(a)??n.getTime(),d=Math.max(0,n.getTime()-b);c.result={timestamp:m,timestampFormatted:p(n),content:"string"==typeof s.output?s.output:JSON.stringify(s.output),durationMs:d,durationFormatted:o(d)};continue}e.push({type:"system",...q(l,m,n,b),raw:l});continue}e.push({type:"system",...q(l,m,n,b),raw:l});continue}if("event_msg"===r){let a=s.type;if("task_started"===a){let a=i?"Session Resumed":"Session Started";i=!0,e.push({type:"queue-operation",...q(l,m,n,b),label:a});continue}if("exec_command_end"===a){let a=s.call_id,c=a?g.get(a):void 0;if(c){let b=s.duration,d=b?(b.secs??0)*1e3+Math.round((b.nanos??0)/1e6):Math.max(0,n.getTime()-(h.get(a)??n.getTime())),e=s.aggregated_output;c.result={timestamp:m,timestampFormatted:p(n),content:"string"==typeof e?e:JSON.stringify(e),durationMs:d,durationFormatted:o(d)};continue}e.push({type:"system",...q(l,m,n,b),raw:l});continue}if("user_message"===a||"agent_message"===a)continue;e.push({type:"system",...q(l,m,n,b),raw:l});continue}e.push({type:"system",...q(l,m,n,b),raw:l})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function E(a){let b=function(a){let b=z()[a];if(b&&(0,u.existsSync)(b))return b;let c=(0,w.join)((0,x.homedir)(),".codex","sessions"),d=new Date,e=new Date(d.getTime()-864e5);for(let b of[d,e].map(a=>{let b=String(a.getUTCFullYear()),d=String(a.getUTCMonth()+1).padStart(2,"0"),e=String(a.getUTCDate()).padStart(2,"0");return(0,w.join)(c,b,d,e)})){let c=B(b,a);if(c)return A(a,c),c}try{for(let b of(0,u.readdirSync)(c,{withFileTypes:!0}))if(b.isDirectory()){for(let d of(0,u.readdirSync)((0,w.join)(c,b.name),{withFileTypes:!0}))if(d.isDirectory())for(let e of(0,u.readdirSync)((0,w.join)(c,b.name,d.name),{withFileTypes:!0})){if(!e.isDirectory())continue;let f=B((0,w.join)(c,b.name,d.name,e.name),a);if(f)return A(a,f),f}}}catch{}return null}(a);if(!b)return null;let c=await (0,v.readFile)(b,"utf-8"),{entries:d,rawLines:e,cwd:f}=await D(c,"session");return{entries:d,rawLines:e,cwd:f,filePath:b}}let F=(0,l.runtimeCache)(a=>E(a),60,{maxSize:50});function G(a,b){let c=function(a){if(!a)return null;let b=(0,w.resolve)((0,w.join)(process.env.COPILOT_HOME||(0,w.join)((0,x.homedir)(),".copilot"),"session-state")),c=(0,w.resolve)(b,a);return c!==b&&c.startsWith(`${b}${w.sep}`)?c:null}(a);return c?(0,w.join)(c,b):null}async function H(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=new Map,h=new Map,i=!1;for(let a=0;a<d.length;a++){let j;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let k=d[a];try{j=JSON.parse(k)}catch{continue}let l={...j,_source:b};f.push(l);let m=j.timestamp;if(!m)continue;let n=new Date(m);if(Number.isNaN(n.getTime()))continue;let r=n.toISOString(),s=j.type,t=j.data??{};if("session.start"===s){let a=t.context,d=a?.cwd;"string"!=typeof d||c||(c=d);let f=i?"Session Resumed":"Session Started";i=!0,e.push({type:"queue-operation",...q(l,r,n,b),label:f});continue}if("user.message"===s){let a=t.content??"";if(!a)continue;e.push({type:"user",...q(l,r,n,b),message:{role:"user",content:a}});continue}if("system.message"===s){e.push({type:"system",...q(l,r,n,b),raw:l});continue}if("assistant.message"===s){let a=t.content??"";if(!a){e.push({type:"system",...q(l,r,n,b),raw:l});continue}let c=[{type:"text",text:a}];e.push({type:"assistant",...q(l,r,n,b),message:{role:"assistant",content:c}});continue}if("tool.execution_start"===s){let a=t.toolCallId,c=t.toolName??"tool",d=t.arguments??{},f={type:"tool_use",id:a??`${n.getTime()}-${c}`,name:c,input:d},i={type:"assistant",...q(l,r,n,b),message:{role:"assistant",content:[f]}};e.push(i),a&&(g.set(a,f),h.set(a,n.getTime()));continue}if("tool.execution_complete"===s){let a=t.toolCallId,c=a?g.get(a):void 0;if(c){let b=h.get(a)??n.getTime(),d=t.result??{},e=t.toolTelemetry??{},f=e.metrics?.commandTimeMs??e.metrics?.durationMs??null,g="number"==typeof f&&f>=0?f:Math.max(0,n.getTime()-b),i=d.detailedContent??d.content??"";c.result={timestamp:r,timestampFormatted:p(n),content:"string"==typeof i?i:JSON.stringify(i),durationMs:g,durationFormatted:o(g)};continue}e.push({type:"system",...q(l,r,n,b),raw:l});continue}e.push({type:"system",...q(l,r,n,b),raw:l})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function I(a){let b,c,d=(c=G(a,"events.jsonl"))&&(0,u.existsSync)(c)?c:null;if(!d)return null;try{b=await (0,v.readFile)(d,"utf-8")}catch{return null}let{entries:e,rawLines:f,cwd:g}=await H(b,"session");return{entries:e,rawLines:f,cwd:g??function(a){let b,c=(b=G(a,"workspace.yaml"))&&(0,u.existsSync)(b)?b:null;if(c)try{let a=(0,u.readFileSync)(c,"utf-8"),b=RegExp("^cwd\\s*:\\s*(.+?)\\s*$","m"),d=a.match(b);if(!d)return;return d[1].replace(/^['"]|['"]$/g,"")}catch{return}}(a),filePath:d}}let J=(0,l.runtimeCache)(a=>I(a),60,{maxSize:50}),K=["agent-sessions","conversations","sessions"],L=["events.jsonl","transcript.jsonl","messages.jsonl"],M="agent-transcripts";async function N(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=new Map,h=new Map,i=!1,j=Date.now();for(let a=0;a<d.length;a++){let k;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let l=d[a];try{k=JSON.parse(l)}catch{continue}let m={...k,_source:b};if(f.push(m),!k.type&&k.role&&k.message?.content){let c=new Date(j+a),d=c.toISOString(),f=k.message.content.filter(a=>a?.type==="text"&&"string"==typeof a.text).map(a=>a.text).join("");if("user"===k.role){let a=/<user_query>\s*([\s\S]*?)\s*<\/user_query>/.exec(f),g=a?a[1]:f;g&&e.push({type:"user",...q(m,d,c,b),message:{role:"user",content:g}});continue}if("assistant"===k.role){let a=f?[{type:"text",text:f}]:[];0===a.length?e.push({type:"system",...q(m,d,c,b),raw:m}):e.push({type:"assistant",...q(m,d,c,b),message:{role:"assistant",content:a}});continue}e.push({type:"system",...q(m,d,c,b),raw:m});continue}let n=k.timestamp;if(!n)continue;let r=new Date(n);if(Number.isNaN(r.getTime()))continue;let s=r.toISOString(),t=k.type,u=k.data??{};if("session.start"===t||"sessionStart"===t||"session_start"===t){let a=u.context??u,d=a.cwd;"string"!=typeof d||c||(c=d),!c&&Array.isArray(a.workspace_roots)&&"string"==typeof a.workspace_roots[0]&&(c=a.workspace_roots[0]);let f=i?"Session Resumed":"Session Started";i=!0,e.push({type:"queue-operation",...q(m,s,r,b),label:f});continue}if("user.message"===t||"userMessage"===t){let a="string"==typeof u.content?u.content:"string"==typeof u.text?u.text:"";if(!a)continue;e.push({type:"user",...q(m,s,r,b),message:{role:"user",content:a}});continue}if("system.message"===t||"systemMessage"===t){e.push({type:"system",...q(m,s,r,b),raw:m});continue}if("assistant.message"===t||"assistantMessage"===t){let a="string"==typeof u.content?u.content:"string"==typeof u.text?u.text:"";if(!a){e.push({type:"system",...q(m,s,r,b),raw:m});continue}let c=[{type:"text",text:a}];e.push({type:"assistant",...q(m,s,r,b),message:{role:"assistant",content:c}});continue}if("tool.execution_start"===t||"tool.executionStart"===t||"preToolUse"===t){let a=u.toolCallId??u.tool_use_id,c=u.toolName??u.tool_name??"tool",d=u.arguments??u.tool_input??{},f={type:"tool_use",id:a??`${r.getTime()}-${c}`,name:c,input:d},i={type:"assistant",...q(m,s,r,b),message:{role:"assistant",content:[f]}};e.push(i),a&&(g.set(a,f),h.set(a,r.getTime()));continue}if("tool.execution_complete"===t||"tool.executionComplete"===t||"postToolUse"===t){let a=u.toolCallId??u.tool_use_id,c=a?g.get(a):void 0;if(c){let b=h.get(a)??r.getTime(),d=u.result??{},e=u.duration,f="number"==typeof e&&e>=0?e:Math.max(0,r.getTime()-b),g=d.detailedContent??d.content??u.tool_output??"";c.result={timestamp:s,timestampFormatted:p(r),content:"string"==typeof g?g:JSON.stringify(g),durationMs:f,durationFormatted:o(f)};continue}e.push({type:"system",...q(m,s,r,b),raw:m});continue}e.push({type:"system",...q(m,s,r,b),raw:m})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function O(a){let b,c=function(a){let b=function(a){if(!a)return null;let b=(0,w.resolve)(process.env.CURSOR_HOME||(0,w.join)((0,x.homedir)(),".cursor")),c=(0,w.resolve)(b,"projects"),d=[];try{d=(0,u.readdirSync)(c,{withFileTypes:!0})}catch{}for(let b of d){if(!b.isDirectory())continue;let d=(0,w.resolve)(c,b.name,M,a),e=(0,w.resolve)(c,b.name,M);if(d!==e&&d.startsWith(`${e}${w.sep}`)&&(0,u.existsSync)(d))return d}for(let c of K){let d=(0,w.resolve)(b,c),e=(0,w.resolve)(d,a);if(e!==d&&e.startsWith(`${d}${w.sep}`)&&(0,u.existsSync)(e))return e}return null}(a);if(!b)return null;let c=(0,w.join)(b,`${(0,w.basename)(b)}.jsonl`);if((0,u.existsSync)(c))return c;for(let a of L){let c=(0,w.join)(b,a);if((0,u.existsSync)(c))return c}return null}(a);if(!c)return null;try{b=await (0,v.readFile)(c,"utf-8")}catch{return null}let{entries:d,rawLines:e,cwd:f}=await N(b,"session");return{entries:d,rawLines:e,cwd:f,filePath:c}}let P=(0,l.runtimeCache)(a=>O(a),60,{maxSize:50});var Q=a.i(74533);function R(a){try{let b=(0,Q.execFileSync)("opencode",["db","--format","json",a],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]});if(!b.trim())return[];let c=JSON.parse(b);if(!Array.isArray(c))return null;return c}catch{return null}}function S(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function T(a){if("string"!=typeof a||0===a.length)return null;try{let b=JSON.parse(a);return S(b)?b:null}catch{return null}}async function U(a){if(!a||!/^[A-Za-z0-9_-]+$/.test(a))return null;let b=R(`SELECT id, project_id, slug, directory, title, time_created, time_updated FROM session WHERE id = '${a}'`);if(!b||0===b.length)return null;let c=b[0],d=R(`SELECT id, session_id, time_created, time_updated, data FROM message WHERE session_id = '${a}' ORDER BY time_created ASC`),e=R(`SELECT id, message_id, session_id, time_created, time_updated, data FROM part WHERE session_id = '${a}' ORDER BY time_created ASC`);if(!d)return{entries:[],rawLines:[],cwd:c.directory??void 0,filePath:`opencode://${a}`};let f=new Map;for(let a of e??[]){let b=f.get(a.message_id);b||(b=[],f.set(a.message_id,b)),b.push(a)}let g=[],h=[];for(let a of d){let b=f.get(a.id)??[];g.push(function(a,b,c){let d=T(a.data)??{},e="string"==typeof d.role?d.role:"system",f=new Date(a.time_created),g=f.toISOString(),h=q({uuid:a.id,parentUuid:null},g,f,c),i=[],j="";for(let a of b){let b=T(a.data);if(!b)continue;let c="string"==typeof b.type?b.type:"unknown";if("text"===c){let a="string"==typeof b.text?b.text:"string"==typeof b.content?b.content:"";a&&(i.push({type:"text",text:a}),j+=(j?"\n":"")+a);continue}if("tool"===c){let c="string"==typeof b.tool?b.tool:"string"==typeof b.name?b.name:"tool",d=S(b.state)?b.state:null,e=d&&S(d.input)?d.input:S(b.input)?b.input:S(b.args)?b.args:{},f={type:"tool_use",id:a.id,name:c,input:e},g=d&&"string"==typeof d.status?d.status:"";if(d&&("completed"===g||"error"===g)){let b=("error"===g&&"string"==typeof d.error?d.error:null)??d.output,c="string"==typeof b?b:null!=b?JSON.stringify(b):"",e=S(d.time)?d.time:{},h="number"==typeof e.start?e.start:a.time_created,i="number"==typeof e.end?e.end:a.time_updated,j=Math.max(0,i-h),k=new Date(i);f.result={timestamp:k.toISOString(),timestampFormatted:p(k),content:c,durationMs:j,durationFormatted:o(j)}}i.push(f);continue}i.push({type:"text",text:`[opencode ${c}]`})}if("user"===e)return{...h,type:"user",message:{role:"user",content:j}};if("assistant"===e){let a=S(d.model)?d.model:null,b=a&&"string"==typeof a.modelID?a.modelID:void 0;return{...h,type:"assistant",message:{role:"assistant",content:i,model:b}}}return{...h,type:"system",raw:{id:a.id,role:e,parts:i}}}(a,b,"session"));let c=T(a.data);h.push({id:a.id,session_id:a.session_id,time_created:a.time_created,data:c??a.data})}return{entries:g,rawLines:h,cwd:c.directory??void 0,filePath:`opencode://${a}`}}let V=(0,l.runtimeCache)(a=>U(a),30,{maxSize:50}),W=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,X=/^[\d-]+T[\d-]+Z_([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/i;async function Y(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=!1;for(let a=0;a<d.length;a++){let h;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let i=d[a];try{h=JSON.parse(i)}catch{continue}let j={...h,_source:b};f.push(j);let k=h.timestamp;if(!k)continue;let l=new Date(k);if(Number.isNaN(l.getTime()))continue;let m=l.toISOString(),n=h.type;if("session"===n){"string"!=typeof h.cwd||c||(c=h.cwd);let a=g?"Session Resumed":"Session Started";g=!0,e.push({type:"queue-operation",...q(j,m,l,b),label:a});continue}if("message"===n&&h.message&&"object"==typeof h.message){let a=h.message.role,c=h.message.content;if("user"===a){let a=function(a){if(!Array.isArray(a))return"";let b=[];for(let c of a)c?.type==="text"&&"string"==typeof c.text&&b.push(c.text);return b.join("\n\n")}(c);if(!a)continue;e.push({type:"user",...q(j,m,l,b),message:{role:"user",content:a}});continue}if("assistant"===a){let a=function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a)c?.type==="text"&&"string"==typeof c.text&&c.text.length>0&&b.push({type:"text",text:c.text}),c?.type==="thinking"&&"string"==typeof c.thinking&&c.thinking.length>0&&b.push({type:"text",text:`[thinking] ${c.thinking}`});return b}(c);if(0===a.length){e.push({type:"system",...q(j,m,l,b),raw:j});continue}e.push({type:"assistant",...q(j,m,l,b),message:{role:"assistant",content:a}});continue}e.push({type:"system",...q(j,m,l,b),raw:j});continue}e.push({type:"system",...q(j,m,l,b),raw:j})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function Z(a){let b,c,d=function(a){let b;if(!W.test(a))return null;let c=(0,w.resolve)(process.env.PI_SESSIONS_DIR||(0,w.join)((0,x.homedir)(),".pi","agent","sessions"));try{b=(0,u.readdirSync)(c)}catch{return null}for(let d of b){let b,e=(0,w.resolve)(c,d);if(e.startsWith(`${c}${w.sep}`)){try{b=(0,u.readdirSync)(e)}catch{continue}for(let c of b){let b=X.exec(c);if(!b||b[1].toLowerCase()!==a.toLowerCase())continue;let d=(0,w.resolve)(e,c);if(d.startsWith(`${e}${w.sep}`)&&(0,u.existsSync)(d))return d}}}return null}(a);if(!d)return null;try{b=await (0,v.readFile)(d,"utf-8")}catch{return null}try{c=await Y(b,"session")}catch{return null}return{entries:c.entries,rawLines:c.rawLines,cwd:c.cwd,filePath:d}}let $=(0,l.runtimeCache)(a=>Z(a),60,{maxSize:50}),_=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,aa=/^session-(.+)-([0-9a-f]{8})\.jsonl$/i;async function ab(a,b="session",c){let d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=!1;for(let a=0;a<d.length;a++){let c;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let h=d[a];try{c=JSON.parse(h)}catch{continue}let i={...c,_source:b};if(f.push(i),"string"==typeof c.sessionId&&"string"==typeof c.startTime){let a=new Date(c.startTime);if(!Number.isNaN(a.getTime())){let c=g?"Session Resumed":"Session Started";g=!0,e.push({type:"queue-operation",...q(i,a.toISOString(),a,b),label:c})}continue}if(c.$set)continue;let j=c.timestamp;if(!j)continue;let k=new Date(j);if(Number.isNaN(k.getTime()))continue;let l=k.toISOString(),m=c.type;if("user"===m){let a=function(a){if(!Array.isArray(a))return"";let b=[];for(let c of a)"string"==typeof c?.text&&b.push(c.text);return b.join("\n\n")}(c.content);if(!a)continue;e.push({type:"user",...q(i,l,k,b),message:{role:"user",content:a}});continue}if("assistant"===m||"model"===m){let a=function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a)"string"==typeof c?.text&&c.text.length>0&&b.push({type:"text",text:c.text});return b}(c.content);if(0===a.length){e.push({type:"system",...q(i,l,k,b),raw:i});continue}e.push({type:"assistant",...q(i,l,k,b),message:{role:"assistant",content:a}});continue}e.push({type:"system",...q(i,l,k,b),raw:i})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function ac(a){let b,c,d=function(a){let b;if(!_.test(a))return null;let c=(0,w.resolve)(process.env.GEMINI_SESSIONS_DIR||(0,w.join)((0,x.homedir)(),".gemini","tmp")),d=a.slice(0,8).toLowerCase();try{b=(0,u.readdirSync)(c)}catch{return null}for(let e of b){let b,f=(0,w.resolve)(c,e);if(!f.startsWith(`${c}${w.sep}`))continue;let g=(0,w.resolve)(f,"chats");try{b=(0,u.readdirSync)(g)}catch{continue}for(let c of b){let b=aa.exec(c);if(!b||b[2].toLowerCase()!==d)continue;let e=(0,w.resolve)(g,c);if(!e.startsWith(`${g}${w.sep}`)||!(0,u.existsSync)(e))continue;let f=function(a){let b;try{b=(0,u.openSync)(a,"r")}catch{return null}try{let a=Buffer.alloc(4096),c=(0,u.readSync)(b,a,0,a.length,0);if(0===c)return null;let d=a.subarray(0,c).toString("utf-8"),e=d.indexOf("\n");return e>=0?d.slice(0,e):d}catch{return null}finally{try{(0,u.closeSync)(b)}catch{}}}(e);if(f)try{let b=JSON.parse(f);if("string"==typeof b.sessionId&&b.sessionId.toLowerCase()===a.toLowerCase())return e}catch{continue}}}return null}(a);if(!d)return null;try{b=await (0,v.readFile)(d,"utf-8")}catch{return null}let e=function(a){let b=(0,w.resolve)(a,".."),c=(0,w.resolve)(b,".."),d=(0,w.join)(c,".project_root");try{let a=(0,u.readFileSync)(d,"utf-8").trim();return a.length>0?a:void 0}catch{return}}(d);try{c=await ab(b,"session",e)}catch{return null}return{entries:c.entries,rawLines:c.rawLines,cwd:c.cwd,filePath:d}}let ad=(0,l.runtimeCache)(a=>ac(a),60,{maxSize:50});var ae=a.i(71130),af=a.i(893),ag=a.i(24282);function ah({cli:a}){let c=(0,ag.getCliLabel)(a),d=(0,ag.getCliBadgeClasses)(a);return(0,b.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-mono font-medium uppercase tracking-wider border ${d}`,title:`Agent CLI: ${c}`,children:c})}async function ai({params:a}){let g,h,{name:k,sessionId:l}=await a;try{(0,j.resolveProjectPath)(k)}catch{(0,f.notFound)()}let m=(0,i.decodeFolderName)(k),n=-1===(h=l.indexOf("/"))?l:l.slice(0,h);j.UUID_RE.test(n)||/^ses_[A-Za-z0-9]+$/.test(n)||(0,f.notFound)();let o=null,p=null,q=null,r="claude";try{let a=await t(k,n);o=a.entries,p=a.rawLines}catch(a){if("ENOENT"===a.code){let a=await F(n);if(a)o=a.entries,p=a.rawLines,g=a.cwd,r="codex";else{let a=await J(n);if(a)o=a.entries,p=a.rawLines,g=a.cwd,r="copilot";else{let a=await P(n);if(a)o=a.entries,p=a.rawLines,g=a.cwd,r="cursor";else{let a=await V(n);if(a)o=a.entries,p=a.rawLines,g=a.cwd,r="opencode";else{let a=await $(n);if(a)o=a.entries,p=a.rawLines,g=a.cwd,r="pi";else{let a=await ad(n);a?(o=a.entries,p=a.rawLines,g=a.cwd,r="gemini"):q="Session log file not found."}}}}}}else q="Failed to read session log."}let s="claude"!==r,u="codex"===r?`OpenAI Codex${g?` \xb7 ${g}`:""}`:"copilot"===r?`GitHub Copilot${g?` \xb7 ${g}`:""}`:"cursor"===r?`Cursor Agent${g?` \xb7 ${g}`:""}`:"opencode"===r?`OpenCode${g?` \xb7 ${g}`:""}`:"pi"===r?`Pi${g?` \xb7 ${g}`:""}`:"gemini"===r?`Gemini CLI${g?` \xb7 ${g}`:""}`:m;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)(c.default,{href:s?"/policies?tab=activity":`/project/${encodeURIComponent(k)}`,className:"inline-flex items-center gap-2 text-muted-foreground hover:text-foreground mb-6 transition-colors",children:[(0,b.jsx)(d.ArrowLeft,{className:"w-4 h-4"}),(0,b.jsx)("span",{children:s?"Back to Activity":"Back to Sessions"})]}),(0,b.jsxs)("div",{className:"mb-8",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 mb-2",children:[(0,b.jsx)("h1",{className:"text-4xl font-bold text-foreground",children:"Session Log"}),(0,b.jsx)(ah,{cli:r})]}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("p",{className:"text-muted-foreground",children:[(0,b.jsxs)("span",{className:"font-medium",children:[s?"CLI":"Project",":"]})," ",u]}),(0,b.jsxs)("p",{className:"text-muted-foreground break-words break-all inline-flex items-center gap-1",children:[(0,b.jsx)("span",{className:"font-medium",children:"Session:"})," ",n,(0,b.jsx)(af.CopyButton,{text:n})]}),o&&p&&(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("p",{className:"text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium",children:p.length})," log lines"]}),(0,b.jsxs)("a",{href:`/api/download/${encodeURIComponent(k)}/${encodeURIComponent(n)}?cli=${r}`,download:!0,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-md bg-muted text-muted-foreground hover:bg-muted/80 hover:text-foreground transition-colors",children:[(0,b.jsx)(e,{className:"w-4 h-4"}),"Download Logs"]})]})]})]}),q&&(0,b.jsx)("div",{className:"bg-card text-card-foreground rounded-lg border border-destructive/50 p-6 shadow-sm",children:(0,b.jsx)("p",{className:"text-destructive text-center py-8",children:q})}),!q&&o&&(0,b.jsx)(ae.default,{entries:o,projectName:s?g??("codex"===r?"OpenAI Codex":"copilot"===r?"GitHub Copilot":"cursor"===r?"Cursor Agent":"opencode"===r?"OpenCode":"pi"===r?"Pi":"Gemini CLI"):m,sessionId:n})]})})}a.s(["default",0,ai,"dynamic",0,"force-dynamic"],41190)},87330,a=>{a.n(a.i(41190))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=app_0cdqd9w._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[3171,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(
|
|
1
|
+
module.exports=[3171,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(2121),e=a.i(66036);a.s(["default",0,function({error:a,reset:f}){return(0,c.useEffect)(()=>{(0,d.getTelemetryConfig)().then(b=>{(0,e.setClientTelemetryConfig)(b),(0,e.captureClientEvent)("client_error",{error_message:a.message,error_name:a.name,error_digest:a.digest,boundary:"global"})}).catch(()=>{})},[a]),(0,b.jsx)("html",{children:(0,b.jsx)("body",{children:(0,b.jsx)("main",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#031035",color:"#f8fafc",fontFamily:"system-ui, sans-serif"},children:(0,b.jsxs)("div",{style:{textAlign:"center",padding:"2rem",border:"1px solid rgba(239,68,68,0.4)",borderRadius:"0.5rem",maxWidth:"500px"},children:[(0,b.jsx)("h2",{style:{color:"#ef4444",marginBottom:"0.5rem",fontSize:"1.25rem"},children:"Something went wrong"}),(0,b.jsx)("p",{style:{color:"#94a3b8",marginBottom:"1.5rem"},children:a.message||"An unexpected error occurred."}),(0,b.jsx)("button",{onClick:f,style:{padding:"0.5rem 1.25rem",background:"#3b82f6",color:"white",border:"none",borderRadius:"0.375rem",cursor:"pointer",fontSize:"0.875rem"},children:"Try again"})]})})})})}])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=app_global-error_tsx_0xerkr6._.js.map
|