agentgraphed 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +17 -17
- package/.next/standalone/.next/app-path-routes-manifest.json +3 -3
- package/.next/standalone/.next/build-manifest.json +2 -2
- 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 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
- package/.next/standalone/.next/server/app/analytics/page.js +2 -2
- package/.next/standalone/.next/server/app/analytics/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ingest-local/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/quota-probe/route.js +2 -110
- package/.next/standalone/.next/server/app/api/quota-probe/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/quota-probe/route_client-reference-manifest.js +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/projects/[id]/page.js +2 -2
- package/.next/standalone/.next/server/app/projects/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page.js +2 -2
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/sessions/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/sessions/page.js +2 -2
- package/.next/standalone/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js +2 -2
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/timeline/page.js +2 -2
- package/.next/standalone/.next/server/app/timeline/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/timeline/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +3 -3
- package/.next/standalone/.next/server/chunks/165.js +109 -0
- package/.next/standalone/.next/server/chunks/660.js +1 -0
- package/.next/standalone/.next/server/chunks/944.js +24 -24
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/static/chunks/app/layout-359f69bd6ea201be.js +1 -0
- package/.next/standalone/.next/static/chunks/app/page-72efdd1b71c43e03.js +1 -0
- package/.next/standalone/.next/static/css/568a2d3dc76080d7.css +3 -0
- package/.next/standalone/package.json +1 -1
- package/.next/static/chunks/app/layout-359f69bd6ea201be.js +1 -0
- package/.next/static/chunks/app/page-72efdd1b71c43e03.js +1 -0
- package/.next/static/css/568a2d3dc76080d7.css +3 -0
- package/CHANGELOG.md +17 -0
- package/README.md +2 -0
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/368.js +0 -109
- package/.next/standalone/.next/static/chunks/app/layout-9b69ebd975a7854c.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-beaf8e4a3ac0e533.js +0 -1
- package/.next/standalone/.next/static/css/e8b7ea34df142b21.css +0 -3
- package/.next/static/chunks/app/layout-9b69ebd975a7854c.js +0 -1
- package/.next/static/chunks/app/page-beaf8e4a3ac0e533.js +0 -1
- package/.next/static/css/e8b7ea34df142b21.css +0 -3
- /package/.next/standalone/.next/static/{bL7Df9c-sxVDK2-CBLFJb → x9UWQ4odHhvHvXGtRm2Bl}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{bL7Df9c-sxVDK2-CBLFJb → x9UWQ4odHhvHvXGtRm2Bl}/_ssgManifest.js +0 -0
- /package/.next/static/{bL7Df9c-sxVDK2-CBLFJb → x9UWQ4odHhvHvXGtRm2Bl}/_buildManifest.js +0 -0
- /package/.next/static/{bL7Df9c-sxVDK2-CBLFJb → x9UWQ4odHhvHvXGtRm2Bl}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var a={};a.id=404,a.ids=[404],a.modules={74:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33497:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,65169,23))},33873:a=>{"use strict";a.exports=require("path")},40753:(a,b,c)=>{"use strict";c.d(b,{z:()=>e});var d=c(75338);function e({title:a,subtitle:b,right:c}){return(0,d.jsxs)("header",{className:"px-7 h-[72px] border-b border-surface-2 flex items-center justify-between sticky top-0 z-20 bg-canvas/95 backdrop-blur supports-[backdrop-filter]:bg-canvas/80",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-headline-md text-ink font-semibold",children:a}),b&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute mt-0.5",children:b})]}),c&&(0,d.jsx)("div",{className:"flex items-center gap-2",children:c})]})}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},44237:(a,b,c)=>{"use strict";c.d(b,{Sidebar:()=>j});var d=c(21124),e=c(3991),f=c.n(e),g=c(42378),h=c(43249);let i=[{href:"/",label:"Dashboard",icon:"◧"},{href:"/timeline",label:"Timeline",icon:"☰"},{href:"/projects",label:"Projects",icon:"▦"},{href:"/sessions",label:"Sessions",icon:"⌘"},{href:"/analytics",label:"Analytics",icon:"⌁"}];function j(){let a=(0,g.usePathname)();return(0,d.jsxs)("aside",{className:"w-56 shrink-0 border-r border-surface-2 bg-surface-0 flex flex-col sticky top-0 h-screen self-start",children:[(0,d.jsxs)("div",{className:"px-5 border-b border-surface-2 h-[72px] flex flex-col justify-center",children:[(0,d.jsxs)("div",{className:"flex items-baseline gap-1.5 leading-none",children:[(0,d.jsx)("span",{className:"text-primary text-base",children:"◧"}),(0,d.jsxs)("span",{className:"text-lg font-bold tracking-tight",children:[(0,d.jsx)("span",{className:"text-ink-dim",children:"Agent"}),(0,d.jsx)("span",{className:"text-primary",children:"Graphed"})]})]}),(0,d.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-ink-mute mt-1.5",children:"See your AI work"})]}),(0,d.jsx)("nav",{className:"px-2 py-3 flex-1 flex flex-col gap-0.5",children:i.map(b=>{let c="/"===b.href?"/"===a:a.startsWith(b.href);return(0,d.jsxs)(f(),{href:b.href,className:(0,h.A)("flex items-center gap-3 px-3 py-2 rounded text-[13px] transition-colors",c?"bg-surface-2 text-primary border-l-2 border-primary -ml-px":"text-ink-dim hover:text-ink hover:bg-surface-1"),children:[(0,d.jsx)("span",{className:"text-base w-4 text-center opacity-80",children:b.icon}),(0,d.jsx)("span",{children:b.label})]},b.href)})}),(0,d.jsx)("div",{className:"px-2 py-3 border-t border-surface-2",children:(0,d.jsxs)(f(),{href:"/settings",className:(0,h.A)("flex items-center gap-3 px-3 py-2 rounded text-[13px] transition-colors",a.startsWith("/settings")?"bg-surface-2 text-primary border-l-2 border-primary -ml-px":"text-ink-dim hover:text-ink hover:bg-surface-1"),children:[(0,d.jsx)("span",{className:"text-base w-4 text-center opacity-80",children:"⚙"}),(0,d.jsx)("span",{children:"Settings"})]})})]})}},46194:(a,b,c)=>{Promise.resolve().then(c.bind(c,44237))},46649:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,3991,23))},48161:a=>{"use strict";a.exports=require("node:os")},49145:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(52574),o=c(82802),p=c(77533),q=c(45229),r=c(32822),s=c(261),t=c(26453),u=c(52474),v=c(26713),w=c(51356),x=c(62685),y=c(36225),z=c(63446),A=c(2762),B=c(45742),C=c(86439),D=c(81170),E=c.n(D),F=c(62506),G=c(91203),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["timeline",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,51149)),"/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/timeline/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,51472)),"/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,J=["/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/timeline/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/timeline/page",pathname:"/timeline",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/timeline/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
-
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},51149:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j,dynamic:()=>i});var d=c(75338),e=c(40753),f=c(59482),g=c(10944),h=c(46145);let i="force-dynamic";async function j({searchParams:a}){let b=await a,c=(0,g.JQ)(),i=(0,g.k$)({projectId:b.project,provider:b.provider,search:b.q,limit:200});return(0,d.jsxs)("div",{children:[(0,d.jsx)(e.z,{title:"Timeline",subtitle:"Chronological record of every AI coding session"}),(0,d.jsxs)("form",{className:"px-7 pt-5 pb-3 flex items-center gap-3 border-b border-surface-2",method:"get",children:[(0,d.jsx)("input",{name:"q",defaultValue:b.q??"",placeholder:"Search prompts…",className:"bg-surface-1 border border-surface-3 rounded px-3 h-8 text-body-md flex-1 max-w-md focus:outline-none focus:border-primary"}),(0,d.jsxs)("select",{name:"project",defaultValue:b.project??"",className:"bg-surface-1 border border-surface-3 rounded px-2 h-8 text-body-sm",children:[(0,d.jsx)("option",{value:"",children:"All projects"}),c.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,d.jsxs)("select",{name:"provider",defaultValue:b.provider??"",className:"bg-surface-1 border border-surface-3 rounded px-2 h-8 text-body-sm",children:[(0,d.jsx)("option",{value:"",children:"All providers"}),(0,d.jsx)("option",{value:"claude",children:"Claude"}),(0,d.jsx)("option",{value:"codex",children:"Codex"})]}),(0,d.jsx)("button",{type:"submit",className:"btn",children:"Filter"})]}),(0,d.jsxs)("div",{className:"p-7 space-y-7",children:[0===i.length&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute text-center py-12",children:"No sessions match these filters."}),i.map(a=>{let b=a.entries.filter(a=>"single"===a.role||"closed"===a.role).length;return(0,d.jsxs)("section",{children:[(0,d.jsxs)("header",{className:"flex items-baseline gap-3 mb-3",children:[(0,d.jsx)("h2",{className:"text-headline-md text-ink",children:new Date(a.dayMs).toLocaleDateString(void 0,{weekday:"long",month:"long",day:"numeric",year:"numeric"})}),(0,d.jsxs)("span",{className:"text-body-sm text-ink-mute font-mono tabular",children:[b," closed \xb7 ",a.entries.length," active \xb7 ",(0,h.yj)(a.totalTokens)," tok \xb7 ",(0,h.F0)(a.totalCost)]})]}),(0,d.jsx)("div",{className:"card divide-y divide-surface-2",children:(0,d.jsx)("div",{className:"p-3 space-y-1",children:a.entries.map(a=>(0,d.jsx)(f.E,{session:a.session,role:a.role,spanDays:a.spanDays},`${a.session.id}-${a.role}`))})})]},a.day)})]})]})}},51472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g,metadata:()=>f});var d=c(75338);c(61135);var e=c(87907);let f={title:"AgentGraphed",description:"Local-first analytics for AI-assisted development"};function g({children:a}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsx)("body",{children:(0,d.jsxs)("div",{className:"flex min-h-screen",children:[(0,d.jsx)(e.Sidebar,{}),(0,d.jsx)("main",{className:"flex-1 min-w-0",children:a})]})})})}},59482:(a,b,c)=>{"use strict";c.d(b,{E:()=>k});var d=c(75338),e=c(65169),f=c.n(e),g=c(97064),h=c(46145),i=c(92490);function j({role:a,spanDays:b}){if("single"===a)return null;let c="started"===a?`Started \xb7 spans ${b}d`:"closed"===a?"Closed":"Continued";return(0,d.jsx)("span",{className:"text-code-sm font-mono uppercase tracking-wide px-1.5 py-0.5 rounded border border-surface-3 text-ink-mute",children:c})}function k({session:a,role:b="single",spanDays:c=1}){var e;let k=(0,g.x)(a),l=a.input_tokens+a.output_tokens+a.cache_read_tokens+a.cache_write_tokens,m=(0,g.L)(a),n="continued"===b,o="closed"===b?a.ended_at:a.started_at;return(0,d.jsxs)(f(),{href:`/sessions/${a.id}`,className:`flex items-stretch gap-3 border-l-2 border-surface-3 hover:border-primary transition-colors pl-3 py-2 group ${n?"opacity-60":""}`,children:[(0,d.jsxs)("div",{className:"flex flex-col items-center pt-1 min-w-[60px]",children:[(0,d.jsx)("div",{className:"font-mono text-code-sm text-ink-mute tabular",children:(0,h.ME)(o)}),(0,d.jsx)("div",{className:`w-1.5 h-1.5 rounded-full mt-2 ${"claude"===(e=a.provider)?"bg-primary":"codex"===e?"bg-secondary":"bg-ink-mute"}`})]}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,d.jsx)("div",{className:"text-body-md text-ink truncate group-hover:text-primary transition-colors",children:k}),(0,d.jsx)(j,{role:b,spanDays:c}),m.map(a=>(0,d.jsx)(i.i,{category:a},a))]}),(0,d.jsxs)("div",{className:"text-body-sm text-ink-mute mt-0.5 flex items-center gap-2 flex-wrap",children:[(0,d.jsx)("span",{children:a.project_name}),(0,d.jsx)("span",{children:"\xb7"}),(0,d.jsx)("span",{className:"font-mono text-code-sm",children:a.model||"unknown"}),(0,d.jsx)("span",{children:"\xb7"}),(0,d.jsxs)("span",{className:"font-mono text-code-sm tabular",children:[(0,h.yj)(l)," tok"]}),(0,d.jsx)("span",{children:"\xb7"}),(0,d.jsx)("span",{className:"font-mono text-code-sm tabular",children:(0,h.c5)(a.duration_ms)})]})]})]})}},61135:()=>{},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65169:(a,b,c)=>{let{createProxy:d}=c(39893);a.exports=d("/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/client/app-dir/link.js")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},81922:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},83146:(a,b,c)=>{Promise.resolve().then(c.bind(c,87907))},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87907:(a,b,c)=>{"use strict";c.d(b,{Sidebar:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar 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.")},"/Users/mikekuehn/devProjects/agentgraphed/oss/src/components/Sidebar.tsx","Sidebar")},92490:(a,b,c)=>{"use strict";c.d(b,{i:()=>f});var d=c(75338);let e={Planning:"bg-tertiary-soft text-ink-dim border-ink-mute/30",Debugging:"bg-error/15 text-error border-error/30",Refactor:"bg-primary/10 text-primary border-primary/30",Feature:"bg-secondary/10 text-secondary border-secondary/30",Styling:"bg-fuchsia-400/10 text-fuchsia-300 border-fuchsia-400/30","SEO/Content":"bg-amber-400/10 text-amber-300 border-amber-400/30",DevOps:"bg-orange-400/10 text-orange-300 border-orange-400/30",Data:"bg-sky-400/10 text-sky-300 border-sky-400/30",Payments:"bg-emerald-400/10 text-emerald-300 border-emerald-400/30",Docs:"bg-violet-400/10 text-violet-300 border-violet-400/30",Unknown:"bg-surface-3 text-ink-mute border-surface-4"};function f({category:a,size:b="sm"}){let c=e[a]||e.Unknown;return(0,d.jsx)("span",{className:`inline-block ${"xs"===b?"text-[9px] px-1 py-0":"text-[10px] px-1.5 py-0.5"} rounded font-mono uppercase tracking-wider border ${c} shrink-0`,children:a})}}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[873,609,564,944],()=>b(b.s=49145));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=404,a.ids=[404],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},33497:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,65169,23))},33873:a=>{"use strict";a.exports=require("path")},40753:(a,b,c)=>{"use strict";c.d(b,{z:()=>e});var d=c(75338);function e({title:a,subtitle:b,right:c}){return(0,d.jsxs)("header",{className:"px-7 h-[72px] border-b border-surface-2 flex items-center justify-between sticky top-0 z-20 bg-canvas/95 backdrop-blur supports-[backdrop-filter]:bg-canvas/80",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-headline-md text-ink font-semibold",children:a}),b&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute mt-0.5",children:b})]}),c&&(0,d.jsx)("div",{className:"flex items-center gap-2",children:c})]})}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},46649:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,3991,23))},48161:a=>{"use strict";a.exports=require("node:os")},49145:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(52574),o=c(82802),p=c(77533),q=c(45229),r=c(32822),s=c(261),t=c(26453),u=c(52474),v=c(26713),w=c(51356),x=c(62685),y=c(36225),z=c(63446),A=c(2762),B=c(45742),C=c(86439),D=c(81170),E=c.n(D),F=c(62506),G=c(91203),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["timeline",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,51149)),"/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/timeline/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,51472)),"/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,J=["/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/timeline/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/timeline/page",pathname:"/timeline",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/timeline/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},51149:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>k,dynamic:()=>j});var d=c(75338),e=c(40753),f=c(59482),g=c(10944),h=c(86718),i=c(46145);let j="force-dynamic";async function k({searchParams:a}){(0,h.N)();let b=await a,c=(0,g.JQ)(),j=(0,g.k$)({projectId:b.project,provider:b.provider,search:b.q,limit:200});return(0,d.jsxs)("div",{children:[(0,d.jsx)(e.z,{title:"Timeline",subtitle:"Chronological record of every AI coding session"}),(0,d.jsxs)("form",{className:"px-7 pt-5 pb-3 flex items-center gap-3 border-b border-surface-2",method:"get",children:[(0,d.jsx)("input",{name:"q",defaultValue:b.q??"",placeholder:"Search prompts…",className:"bg-surface-1 border border-surface-3 rounded px-3 h-8 text-body-md flex-1 max-w-md focus:outline-none focus:border-primary"}),(0,d.jsxs)("select",{name:"project",defaultValue:b.project??"",className:"bg-surface-1 border border-surface-3 rounded px-2 h-8 text-body-sm",children:[(0,d.jsx)("option",{value:"",children:"All projects"}),c.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,d.jsxs)("select",{name:"provider",defaultValue:b.provider??"",className:"bg-surface-1 border border-surface-3 rounded px-2 h-8 text-body-sm",children:[(0,d.jsx)("option",{value:"",children:"All providers"}),(0,d.jsx)("option",{value:"claude",children:"Claude"}),(0,d.jsx)("option",{value:"codex",children:"Codex"})]}),(0,d.jsx)("button",{type:"submit",className:"btn",children:"Filter"})]}),(0,d.jsxs)("div",{className:"p-7 space-y-7",children:[0===j.length&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute text-center py-12",children:"No sessions match these filters."}),j.map(a=>{let b=a.entries.filter(a=>"single"===a.role||"closed"===a.role).length;return(0,d.jsxs)("section",{children:[(0,d.jsxs)("header",{className:"flex items-baseline gap-3 mb-3",children:[(0,d.jsx)("h2",{className:"text-headline-md text-ink",children:new Date(a.dayMs).toLocaleDateString(void 0,{weekday:"long",month:"long",day:"numeric",year:"numeric"})}),(0,d.jsxs)("span",{className:"text-body-sm text-ink-mute font-mono tabular",children:[b," closed \xb7 ",a.entries.length," active \xb7 ",(0,i.yj)(a.totalTokens)," tok \xb7 ",(0,i.F0)(a.totalCost)]})]}),(0,d.jsx)("div",{className:"card divide-y divide-surface-2",children:(0,d.jsx)("div",{className:"p-3 space-y-1",children:a.entries.map(a=>(0,d.jsx)(f.E,{session:a.session,role:a.role,spanDays:a.spanDays},`${a.session.id}-${a.role}`))})})]},a.day)})]})]})}},59482:(a,b,c)=>{"use strict";c.d(b,{E:()=>k});var d=c(75338),e=c(65169),f=c.n(e),g=c(97064),h=c(46145),i=c(92490);function j({role:a,spanDays:b}){if("single"===a)return null;let c="started"===a?`Started \xb7 spans ${b}d`:"closed"===a?"Closed":"Continued";return(0,d.jsx)("span",{className:"text-code-sm font-mono uppercase tracking-wide px-1.5 py-0.5 rounded border border-surface-3 text-ink-mute",children:c})}function k({session:a,role:b="single",spanDays:c=1}){var e;let k=(0,g.x)(a),l=a.input_tokens+a.output_tokens+a.cache_read_tokens+a.cache_write_tokens,m=(0,g.L)(a),n="continued"===b,o="closed"===b?a.ended_at:a.started_at;return(0,d.jsxs)(f(),{href:`/sessions/${a.id}`,className:`flex items-stretch gap-3 border-l-2 border-surface-3 hover:border-primary transition-colors pl-3 py-2 group ${n?"opacity-60":""}`,children:[(0,d.jsxs)("div",{className:"flex flex-col items-center pt-1 min-w-[60px]",children:[(0,d.jsx)("div",{className:"font-mono text-code-sm text-ink-mute tabular",children:(0,h.ME)(o)}),(0,d.jsx)("div",{className:`w-1.5 h-1.5 rounded-full mt-2 ${"claude"===(e=a.provider)?"bg-primary":"codex"===e?"bg-secondary":"bg-ink-mute"}`})]}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,d.jsx)("div",{className:"text-body-md text-ink truncate group-hover:text-primary transition-colors",children:k}),(0,d.jsx)(j,{role:b,spanDays:c}),m.map(a=>(0,d.jsx)(i.i,{category:a},a))]}),(0,d.jsxs)("div",{className:"text-body-sm text-ink-mute mt-0.5 flex items-center gap-2 flex-wrap",children:[(0,d.jsx)("span",{children:a.project_name}),(0,d.jsx)("span",{children:"\xb7"}),(0,d.jsx)("span",{className:"font-mono text-code-sm",children:a.model||"unknown"}),(0,d.jsx)("span",{children:"\xb7"}),(0,d.jsxs)("span",{className:"font-mono text-code-sm tabular",children:[(0,h.yj)(l)," tok"]}),(0,d.jsx)("span",{children:"\xb7"}),(0,d.jsx)("span",{className:"font-mono text-code-sm tabular",children:(0,h.c5)(a.duration_ms)})]})]})]})}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65169:(a,b,c)=>{let{createProxy:d}=c(39893);a.exports=d("/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/client/app-dir/link.js")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},80481:a=>{"use strict";a.exports=require("node:readline")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86718:(a,b,c)=>{"use strict";c.d(b,{L:()=>i,N:()=>h});var d=c(90027),e=c(10944),f=c(25742);let g=null;function h(){if(g)return;let a=(0,e.PL)("dashboard_last_auto_ingest_ms"),b=a?parseInt(a,10):0;Date.now()-b<1e4||((0,e.ZC)("dashboard_last_auto_ingest_ms",String(Date.now())),g=(async()=>{try{let a=await (0,d.U)();(a.claude.filesIngested>0||a.codex.filesIngested>0)&&(0,f.e)()}catch{}finally{g=null}})())}function i(){let a=(0,e.PL)("dashboard_last_auto_ingest_ms");return a?parseInt(a,10):0}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},92490:(a,b,c)=>{"use strict";c.d(b,{i:()=>f});var d=c(75338);let e={Planning:"bg-tertiary-soft text-ink-dim border-ink-mute/30",Debugging:"bg-error/15 text-error border-error/30",Refactor:"bg-primary/10 text-primary border-primary/30",Feature:"bg-secondary/10 text-secondary border-secondary/30",Styling:"bg-fuchsia-400/10 text-fuchsia-300 border-fuchsia-400/30","SEO/Content":"bg-amber-400/10 text-amber-300 border-amber-400/30",DevOps:"bg-orange-400/10 text-orange-300 border-orange-400/30",Data:"bg-sky-400/10 text-sky-300 border-sky-400/30",Payments:"bg-emerald-400/10 text-emerald-300 border-emerald-400/30",Docs:"bg-violet-400/10 text-violet-300 border-violet-400/30",Unknown:"bg-surface-3 text-ink-mute border-surface-4"};function f({category:a,size:b="sm"}){let c=e[a]||e.Unknown;return(0,d.jsx)("span",{className:`inline-block ${"xs"===b?"text-[9px] px-1 py-0":"text-[10px] px-1.5 py-0.5"} rounded font-mono uppercase tracking-wider border ${c} shrink-0`,children:a})}}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[873,609,564,944,660,27],()=>b(b.s=49145));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../node_modules/better-sqlite3/lib/database.js","../../../../node_modules/better-sqlite3/lib/index.js","../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../node_modules/better-sqlite3/lib/util.js","../../../../node_modules/better-sqlite3/package.json","../../../../node_modules/bindings/bindings.js","../../../../node_modules/bindings/package.json","../../../../node_modules/file-uri-to-path/index.js","../../../../node_modules/file-uri-to-path/package.json","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../node_modules/next/dist/shared/lib/segment.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../package.json","../../../../src/lib/pricing-data/litellm.json","../../../package.json","../../chunks/564.js","../../chunks/609.js","../../chunks/873.js","../../chunks/944.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
|
|
1
|
+
{"version":1,"files":["../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../node_modules/better-sqlite3/lib/database.js","../../../../node_modules/better-sqlite3/lib/index.js","../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../node_modules/better-sqlite3/lib/util.js","../../../../node_modules/better-sqlite3/package.json","../../../../node_modules/bindings/bindings.js","../../../../node_modules/bindings/package.json","../../../../node_modules/file-uri-to-path/index.js","../../../../node_modules/file-uri-to-path/package.json","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../node_modules/next/dist/shared/lib/segment.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../package.json","../../../../src/lib/pricing-data/litellm.json","../../../package.json","../../chunks/27.js","../../chunks/564.js","../../chunks/609.js","../../chunks/660.js","../../chunks/873.js","../../chunks/944.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/timeline/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"11796":{"*":{"id":"67640","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/timeline/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"11796":{"*":{"id":"67640","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"29366":{"*":{"id":"70285","name":"*","chunks":[],"async":false}},"34077":{"*":{"id":"47621","name":"*","chunks":[],"async":false}},"35248":{"*":{"id":"95753","name":"*","chunks":[],"async":false}},"38250":{"*":{"id":"21757","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"3991","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"82259":{"*":{"id":"65610","name":"*","chunks":[],"async":false}},"95828":{"*":{"id":"92437","name":"*","chunks":[],"async":false}},"95925":{"*":{"id":"94709","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/globals.css":{"id":13673,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","177","static/chunks/app/layout-359f69bd6ea201be.js"],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/src/components/Sidebar.tsx":{"id":82259,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","177","static/chunks/app/layout-359f69bd6ea201be.js"],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/src/components/AnalyticsCharts.tsx":{"id":11796,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/src/components/RangePicker.tsx":{"id":95925,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","997","static/chunks/997-0bc10efbbb03a5ca.js","974","static/chunks/app/page-72efdd1b71c43e03.js"],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/src/components/SessionRow.tsx":{"id":38250,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/client/app-dir/link.js":{"id":52619,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","404","static/chunks/app/timeline/page-85ce81e040071814.js"],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/node_modules/next/dist/esm/client/app-dir/link.js":{"id":52619,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","404","static/chunks/app/timeline/page-85ce81e040071814.js"],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/src/components/LlmSection.tsx":{"id":35248,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/src/components/SessionActions.tsx":{"id":95828,"name":"*","chunks":[],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/src/components/FreshnessIndicator.tsx":{"id":34077,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","997","static/chunks/997-0bc10efbbb03a5ca.js","974","static/chunks/app/page-72efdd1b71c43e03.js"],"async":false},"/Users/mikekuehn/devProjects/agentgraphed/oss/src/components/UsageChartCard.tsx":{"id":29366,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","997","static/chunks/997-0bc10efbbb03a5ca.js","974","static/chunks/app/page-72efdd1b71c43e03.js"],"async":false}},"entryCSSFiles":{"/Users/mikekuehn/devProjects/agentgraphed/oss/src/":[],"/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/layout":[{"inlined":false,"path":"static/css/568a2d3dc76080d7.css"}],"/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/page":[],"/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/timeline/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"11796":{"*":{"id":"32192","name":"*","chunks":[],"async":false}},"13673":{"*":{"id":"61135","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"29366":{"*":{"id":"47290","name":"*","chunks":[],"async":false}},"34077":{"*":{"id":"39115","name":"*","chunks":[],"async":false}},"35248":{"*":{"id":"15073","name":"*","chunks":[],"async":false}},"38250":{"*":{"id":"14631","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"65169","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"82259":{"*":{"id":"87907","name":"*","chunks":[],"async":false}},"95828":{"*":{"id":"9998","name":"*","chunks":[],"async":false}},"95925":{"*":{"id":"51094","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"/_not-found/page": "app/_not-found/page.js",
|
|
3
|
-
"/api/quota-probe/route": "app/api/quota-probe/route.js",
|
|
4
3
|
"/api/ingest-local/route": "app/api/ingest-local/route.js",
|
|
4
|
+
"/api/quota-probe/route": "app/api/quota-probe/route.js",
|
|
5
5
|
"/analytics/page": "app/analytics/page.js",
|
|
6
|
+
"/sessions/page": "app/sessions/page.js",
|
|
6
7
|
"/projects/[id]/page": "app/projects/[id]/page.js",
|
|
7
8
|
"/projects/page": "app/projects/page.js",
|
|
8
9
|
"/settings/page": "app/settings/page.js",
|
|
9
|
-
"/sessions/page": "app/sessions/page.js",
|
|
10
|
-
"/timeline/page": "app/timeline/page.js",
|
|
11
10
|
"/sessions/[id]/page": "app/sessions/[id]/page.js",
|
|
11
|
+
"/timeline/page": "app/timeline/page.js",
|
|
12
12
|
"/page": "app/page.js"
|
|
13
13
|
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";exports.id=165,exports.ids=[165],exports.modules={40753:(a,b,c)=>{c.d(b,{z:()=>e});var d=c(75338);function e({title:a,subtitle:b,right:c}){return(0,d.jsxs)("header",{className:"px-7 h-[72px] border-b border-surface-2 flex items-center justify-between sticky top-0 z-20 bg-canvas/95 backdrop-blur supports-[backdrop-filter]:bg-canvas/80",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-headline-md text-ink font-semibold",children:a}),b&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute mt-0.5",children:b})]}),c&&(0,d.jsx)("div",{className:"flex items-center gap-2",children:c})]})}},53223:(a,b,c)=>{c.d(b,{x:()=>y});var d={};c.r(d),c.d(d,{daySummaries:()=>u,ingestState:()=>s,messages:()=>r,projectSummaries:()=>v,projects:()=>p,sessions:()=>q,settings:()=>t});var e=c(87550),f=c.n(e),g=c(35674),h=c(48161),i=c(76760),j=c(73024),k=c(37444),l=c(72873),m=c(51166),n=c(92780),o=c(41444);let p=(0,k.D)("projects",{id:(0,l.Qq)("id").primaryKey(),name:(0,l.Qq)("name").notNull(),rootPath:(0,l.Qq)("root_path").notNull(),gitRemote:(0,l.Qq)("git_remote"),firstSeen:(0,m.nd)("first_seen").notNull(),lastActive:(0,m.nd)("last_active").notNull()},a=>({rootIdx:(0,n.GL)("projects_root_idx").on(a.rootPath)})),q=(0,k.D)("sessions",{id:(0,l.Qq)("id").primaryKey(),provider:(0,l.Qq)("provider").notNull(),projectId:(0,l.Qq)("project_id").notNull(),cwd:(0,l.Qq)("cwd").notNull(),startedAt:(0,m.nd)("started_at").notNull(),endedAt:(0,m.nd)("ended_at").notNull(),durationMs:(0,m.nd)("duration_ms").notNull(),model:(0,l.Qq)("model"),messageCount:(0,m.nd)("message_count").notNull().default(0),userMessageCount:(0,m.nd)("user_message_count").notNull().default(0),inputTokens:(0,m.nd)("input_tokens").notNull().default(0),outputTokens:(0,m.nd)("output_tokens").notNull().default(0),cacheReadTokens:(0,m.nd)("cache_read_tokens").notNull().default(0),cacheWriteTokens:(0,m.nd)("cache_write_tokens").notNull().default(0),estCostUsd:(0,o.x)("est_cost_usd").notNull().default(0),firstPrompt:(0,l.Qq)("first_prompt"),summary:(0,l.Qq)("summary"),summaryGenerated:(0,m.nd)("summary_generated").notNull().default(0),heuristicTitle:(0,l.Qq)("heuristic_title"),category:(0,l.Qq)("category"),keywords:(0,l.Qq)("keywords"),gitBranch:(0,l.Qq)("git_branch"),sourcePath:(0,l.Qq)("source_path").notNull()},a=>({projectIdx:(0,n.Pe)("sessions_project_idx").on(a.projectId),startedIdx:(0,n.Pe)("sessions_started_idx").on(a.startedAt),providerIdx:(0,n.Pe)("sessions_provider_idx").on(a.provider),modelIdx:(0,n.Pe)("sessions_model_idx").on(a.model)})),r=(0,k.D)("messages",{id:(0,l.Qq)("id").primaryKey(),sessionId:(0,l.Qq)("session_id").notNull(),role:(0,l.Qq)("role").notNull(),content:(0,l.Qq)("content").notNull(),timestamp:(0,m.nd)("timestamp").notNull(),model:(0,l.Qq)("model")},a=>({sessionIdx:(0,n.Pe)("messages_session_idx").on(a.sessionId),timestampIdx:(0,n.Pe)("messages_timestamp_idx").on(a.timestamp)})),s=(0,k.D)("ingest_state",{sourcePath:(0,l.Qq)("source_path").primaryKey(),mtime:(0,m.nd)("mtime").notNull(),size:(0,m.nd)("size").notNull(),sessionId:(0,l.Qq)("session_id").notNull(),ingestedAt:(0,m.nd)("ingested_at").notNull()}),t=(0,k.D)("settings",{key:(0,l.Qq)("key").primaryKey(),value:(0,l.Qq)("value").notNull()}),u=(0,k.D)("day_summaries",{day:(0,l.Qq)("day").primaryKey(),summary:(0,l.Qq)("summary").notNull(),generatedAt:(0,m.nd)("generated_at").notNull()}),v=(0,k.D)("project_summaries",{projectId:(0,l.Qq)("project_id").primaryKey(),summary:(0,l.Qq)("summary").notNull(),generatedAt:(0,m.nd)("generated_at").notNull()}),w=null,x=null;function y(){return!x&&(w||((x=new(f())((0,i.join)(function(){let a=process.env.AGENTGRAPHED_DATA_DIR||(0,i.join)((0,h.homedir)(),".agentgraphed");return(0,j.existsSync)(a)||(0,j.mkdirSync)(a,{recursive:!0}),a}(),"agentgraphed.sqlite"))).pragma("journal_mode = WAL"),x.pragma("synchronous = NORMAL"),function(a){a.exec(`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
3
|
+
id TEXT PRIMARY KEY,
|
|
4
|
+
name TEXT NOT NULL,
|
|
5
|
+
root_path TEXT NOT NULL,
|
|
6
|
+
git_remote TEXT,
|
|
7
|
+
first_seen INTEGER NOT NULL,
|
|
8
|
+
last_active INTEGER NOT NULL
|
|
9
|
+
);
|
|
10
|
+
CREATE UNIQUE INDEX IF NOT EXISTS projects_root_idx ON projects(root_path);
|
|
11
|
+
|
|
12
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
13
|
+
id TEXT PRIMARY KEY,
|
|
14
|
+
provider TEXT NOT NULL,
|
|
15
|
+
project_id TEXT NOT NULL,
|
|
16
|
+
cwd TEXT NOT NULL,
|
|
17
|
+
started_at INTEGER NOT NULL,
|
|
18
|
+
ended_at INTEGER NOT NULL,
|
|
19
|
+
duration_ms INTEGER NOT NULL,
|
|
20
|
+
model TEXT,
|
|
21
|
+
message_count INTEGER NOT NULL DEFAULT 0,
|
|
22
|
+
user_message_count INTEGER NOT NULL DEFAULT 0,
|
|
23
|
+
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
24
|
+
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
25
|
+
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
26
|
+
cache_write_tokens INTEGER NOT NULL DEFAULT 0,
|
|
27
|
+
est_cost_usd REAL NOT NULL DEFAULT 0,
|
|
28
|
+
first_prompt TEXT,
|
|
29
|
+
summary TEXT,
|
|
30
|
+
summary_generated INTEGER NOT NULL DEFAULT 0,
|
|
31
|
+
heuristic_title TEXT,
|
|
32
|
+
category TEXT,
|
|
33
|
+
keywords TEXT,
|
|
34
|
+
git_branch TEXT,
|
|
35
|
+
source_path TEXT NOT NULL
|
|
36
|
+
);
|
|
37
|
+
CREATE INDEX IF NOT EXISTS sessions_project_idx ON sessions(project_id);
|
|
38
|
+
CREATE INDEX IF NOT EXISTS sessions_started_idx ON sessions(started_at);
|
|
39
|
+
CREATE INDEX IF NOT EXISTS sessions_provider_idx ON sessions(provider);
|
|
40
|
+
CREATE INDEX IF NOT EXISTS sessions_model_idx ON sessions(model);
|
|
41
|
+
|
|
42
|
+
CREATE TABLE IF NOT EXISTS messages (
|
|
43
|
+
id TEXT PRIMARY KEY,
|
|
44
|
+
session_id TEXT NOT NULL,
|
|
45
|
+
role TEXT NOT NULL,
|
|
46
|
+
content TEXT NOT NULL,
|
|
47
|
+
timestamp INTEGER NOT NULL,
|
|
48
|
+
model TEXT
|
|
49
|
+
);
|
|
50
|
+
CREATE INDEX IF NOT EXISTS messages_session_idx ON messages(session_id);
|
|
51
|
+
CREATE INDEX IF NOT EXISTS messages_timestamp_idx ON messages(timestamp);
|
|
52
|
+
|
|
53
|
+
CREATE TABLE IF NOT EXISTS ingest_state (
|
|
54
|
+
source_path TEXT PRIMARY KEY,
|
|
55
|
+
mtime INTEGER NOT NULL,
|
|
56
|
+
size INTEGER NOT NULL,
|
|
57
|
+
session_id TEXT NOT NULL,
|
|
58
|
+
ingested_at INTEGER NOT NULL
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
CREATE TABLE IF NOT EXISTS settings (
|
|
62
|
+
key TEXT PRIMARY KEY,
|
|
63
|
+
value TEXT NOT NULL
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
CREATE TABLE IF NOT EXISTS day_summaries (
|
|
67
|
+
day TEXT PRIMARY KEY,
|
|
68
|
+
summary TEXT NOT NULL,
|
|
69
|
+
generated_at INTEGER NOT NULL
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
CREATE TABLE IF NOT EXISTS project_summaries (
|
|
73
|
+
project_id TEXT PRIMARY KEY,
|
|
74
|
+
summary TEXT NOT NULL,
|
|
75
|
+
generated_at INTEGER NOT NULL
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
CREATE TABLE IF NOT EXISTS session_contexts (
|
|
79
|
+
session_id TEXT PRIMARY KEY,
|
|
80
|
+
context TEXT NOT NULL,
|
|
81
|
+
generated_at INTEGER NOT NULL,
|
|
82
|
+
model TEXT
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
CREATE TABLE IF NOT EXISTS quota_snapshots (
|
|
86
|
+
provider TEXT PRIMARY KEY,
|
|
87
|
+
observed_at INTEGER NOT NULL,
|
|
88
|
+
plan_type TEXT,
|
|
89
|
+
primary_pct REAL,
|
|
90
|
+
primary_window_minutes INTEGER,
|
|
91
|
+
primary_resets_at INTEGER,
|
|
92
|
+
secondary_pct REAL,
|
|
93
|
+
secondary_window_minutes INTEGER,
|
|
94
|
+
secondary_resets_at INTEGER
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
CREATE TABLE IF NOT EXISTS claude_limit_events (
|
|
98
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
99
|
+
session_id TEXT NOT NULL,
|
|
100
|
+
observed_at INTEGER NOT NULL,
|
|
101
|
+
reset_at INTEGER,
|
|
102
|
+
kind TEXT NOT NULL,
|
|
103
|
+
raw TEXT
|
|
104
|
+
);
|
|
105
|
+
CREATE INDEX IF NOT EXISTS claude_limit_events_observed_idx ON claude_limit_events(observed_at);
|
|
106
|
+
CREATE INDEX IF NOT EXISTS claude_limit_events_session_idx ON claude_limit_events(session_id);
|
|
107
|
+
`);let b=new Set(a.prepare("PRAGMA table_info(sessions)").all().map(a=>a.name));b.has("heuristic_title")||a.exec("ALTER TABLE sessions ADD COLUMN heuristic_title TEXT"),b.has("category")||a.exec("ALTER TABLE sessions ADD COLUMN category TEXT"),b.has("keywords")||a.exec("ALTER TABLE sessions ADD COLUMN keywords TEXT"),a.exec("CREATE INDEX IF NOT EXISTS sessions_category_idx ON sessions(category)"),b.has("categories")||(a.exec("ALTER TABLE sessions ADD COLUMN categories TEXT"),a.exec(`UPDATE sessions
|
|
108
|
+
SET categories = json_array(category)
|
|
109
|
+
WHERE category IS NOT NULL AND categories IS NULL`))}(x),w=(0,g.f)(x,{schema:d}))),x}},74498:(a,b,c)=>{let d;c.d(b,{PL:()=>i,ZC:()=>h});var e=c(53223),f=c(73024),g=c(76760);function h(a,b){(0,e.x)().prepare("INSERT OR REPLACE INTO settings (key, value) VALUES (?, ?)").run(a,b)}function i(a){let b=(0,e.x)().prepare("SELECT value FROM settings WHERE key = ?").get(a);return b?.value??null}c(73136),!function(){let a=function(){if(void 0!==d)return d;try{let a=__dirname,b=(0,g.join)(a,"pricing-data","litellm.meta.json");d=(0,f.existsSync)(b)?JSON.parse((0,f.readFileSync)(b,"utf8")):null}catch{d=null}return d}();a?.fetchedAt&&a.fetchedAt.slice(0,10)}()},88009:(a,b,c)=>{c.d(b,{$I:()=>f,P6:()=>e,nG:()=>g});let d=[{id:"claude-haiku-4-5",label:"Claude Haiku 4.5 (cheapest)",provider:"anthropic",input:1,output:5},{id:"claude-sonnet-4-6",label:"Claude Sonnet 4.6 (smarter)",provider:"anthropic",input:3,output:15},{id:"gpt-5-mini",label:"GPT-5 Mini (cheapest)",provider:"openai",input:.5,output:2},{id:"gpt-4o-mini",label:"GPT-4o Mini (very cheap)",provider:"openai",input:.15,output:.6},{id:"gpt-5",label:"GPT-5 (smarter)",provider:"openai",input:2.5,output:10}];function e(a){return d.find(b=>b.id===a)}function f(a){return"openai"===a?"gpt-5-mini":"claude-haiku-4-5"}function g(a,b,c){return(b*a.input+c*a.output)/1e6}},92568:(a,b,c)=>{c.d(b,{$I:()=>d});function d(a){return"openai"===a?"gpt-5-mini":"claude-haiku-4-5"}},94450:(a,b,c)=>{c.d(b,{M:()=>i,Q:()=>h});var d=c(79742),e=c(63894),f=c(74498),g=c(88009);function h(){let a=(0,f.PL)("llm_provider")||"anthropic",b="openai"===a?"openai_api_key":"anthropic_api_key",c=(0,f.PL)(b)||process.env["openai"===a?"OPENAI_API_KEY":"ANTHROPIC_API_KEY"]||"";if(!c)return null;let d=(0,f.PL)("classifier_model")||(0,g.$I)(a),e=(0,f.PL)("summarizer_model")||(0,g.$I)(a);return{provider:a,apiKey:c,classifierModel:d,summarizerModel:e}}async function i(a){let b=h();if(!b)throw Error("No LLM provider configured");let c=(0,g.P6)(a.model)??(0,g.P6)(b.classifierModel);if(!c)throw Error(`Unknown model: ${a.model}`);if("anthropic"===c.provider){let e=new d.Ay({apiKey:b.apiKey}),f=await e.messages.create({model:c.id,max_tokens:a.maxTokens??1024,system:a.systemPrompt,messages:[{role:"user",content:a.userPrompt}]});return{text:f.content.map(a=>"text"in a?a.text:"").join("").trim(),inputTokens:f.usage.input_tokens,outputTokens:f.usage.output_tokens}}{let d=new e.Ay({apiKey:b.apiKey}),f=/^gpt-5/i.test(c.id)||/^o\d/i.test(c.id),g=await d.chat.completions.create({model:c.id,messages:[...a.systemPrompt?[{role:"system",content:a.systemPrompt}]:[],{role:"user",content:a.userPrompt}],max_completion_tokens:a.maxTokens??1024,...f?{reasoning_effort:"minimal"}:{},..."json"===a.responseFormat?{response_format:{type:"json_object"}}:{}}),h=g.choices[0]?.message?.content?.trim()||"",i=g.usage?.completion_tokens_details?.reasoning_tokens??0,j=g.choices[0]?.finish_reason;if(!h)throw Error("length"===j&&i>0?`model used all ${i} output tokens on reasoning before producing any visible content; raise the token budget or use a non-reasoning model`:`model returned empty content (finish_reason=${j})`);return{text:h,inputTokens:g.usage?.prompt_tokens??0,outputTokens:g.usage?.completion_tokens??0}}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.id=660,exports.ids=[660],exports.modules={74:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},46194:(a,b,c)=>{Promise.resolve().then(c.bind(c,65610))},51472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g,metadata:()=>f});var d=c(75338);c(61135);var e=c(87907);let f={title:"AgentGraphed",description:"Local-first analytics for AI-assisted development"};function g({children:a}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsx)("body",{children:(0,d.jsxs)("div",{className:"flex min-h-screen",children:[(0,d.jsx)(e.Sidebar,{}),(0,d.jsx)("main",{className:"flex-1 min-w-0",children:a})]})})})}},61135:()=>{},65610:(a,b,c)=>{"use strict";c.d(b,{Sidebar:()=>s});var d=c(21124),e=c(3991),f=c.n(e),g=c(42378),h=c(43249),i=c(38301),j=c(23312);function k(a){if(!a||!a.ok)return null;let b=a.primary?.pct??null,c=a.secondary?.pct??null;return null===b&&null===c?null:Math.max(b??0,c??0)}function l(a){let b=a-Date.now();if(b<=0)return"resetting";let c=Math.round(b/6e4);if(c<1)return"<1m";if(c<60)return`${c}m`;let d=Math.floor(c/60),e=c%60;return 0===e?`${d}h`:`${d}h${e}m`}function m(){let[a,b]=(0,i.useState)({claude:null,codex:null,fetchedAt:0,loading:!1}),[c,e]=(0,i.useState)(!1),[f,g]=(0,i.useState)(null),h=(0,i.useRef)(null),m=(0,i.useRef)(null),o=(0,i.useCallback)(async()=>{b(a=>({...a,loading:!0}));let[a,c]=await Promise.all([fetch("/api/quota-probe?provider=claude",{method:"POST"}).then(a=>a.json()).catch(a=>({ok:!1,error:a.message})),fetch("/api/quota-probe?provider=codex",{method:"POST"}).then(a=>a.json()).catch(a=>({ok:!1,error:a.message}))]);b({claude:q("claude",a),codex:q("codex",c),fetchedAt:Date.now(),loading:!1})},[]);function p(){m.current&&clearTimeout(m.current),e(!0),Date.now()-a.fetchedAt>6e4&&!a.loading&&o()}function r(){m.current&&clearTimeout(m.current),m.current=setTimeout(()=>e(!1),120)}return(0,d.jsxs)("div",{ref:h,className:"relative px-3 py-2 border-b border-surface-2",onMouseEnter:p,onMouseLeave:r,onFocus:p,onBlur:r,children:[(0,d.jsxs)("button",{type:"button",onClick:o,className:"w-full flex items-center gap-2 text-[12px] text-ink-dim hover:text-ink","aria-haspopup":"dialog","aria-expanded":c,children:[(0,d.jsx)("span",{className:`w-1.5 h-1.5 rounded-full ${function(a){if(0===a.fetchedAt)return"bg-ink-mute";let b=Math.max(k(a.claude)??0,k(a.codex)??0);return b>=95?"bg-error":b>=80?"bg-secondary":"bg-primary"}(a)} ${a.loading?"animate-pulse":""}`}),(0,d.jsx)("span",{className:"font-mono tabular truncate",children:a.loading&&0===a.fetchedAt?"Probing…":function(a){if(0===a.fetchedAt)return"Live quota";let b=k(a.claude);return null!==b&&a.claude?.primary?`Claude ${Math.round(b)}% \xb7 ${l(a.claude.primary.resetsAt)}`:"Live quota"}(a)})]}),c&&f&&"undefined"!=typeof document&&(0,j.createPortal)((0,d.jsx)(n,{state:a,loading:a.loading,anchorRect:f,onEnter:p,onLeave:r}),document.body)]})}function n({state:a,loading:b,anchorRect:c,onEnter:e,onLeave:f}){let g={position:"fixed",left:c.right+8,top:c.top,backgroundColor:"#1c2026",isolation:"isolate"};return(0,d.jsx)("div",{role:"dialog",onMouseEnter:e,onMouseLeave:f,className:"w-72 z-[9999] rounded-lg border border-surface-3 p-4 space-y-4 shadow-[0_20px_60px_-10px_rgba(0,0,0,0.8)]",style:g,children:b&&0===a.fetchedAt?(0,d.jsx)("div",{className:"text-body-sm text-ink-mute",children:"Probing Anthropic & OpenAI…"}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(o,{kpi:a.claude}),(0,d.jsx)("div",{className:"border-t border-surface-2"}),(0,d.jsx)(o,{kpi:a.codex}),(0,d.jsx)("div",{className:"text-[10px] text-ink-mute font-mono tabular pt-1 border-t border-surface-2",children:0===a.fetchedAt?"never probed":`updated ${function(a){let b=Date.now()-a;return b<1e3?"just now":b<6e4?`${Math.round(b/1e3)}s ago`:`${Math.round(b/6e4)}m ago`}(a.fetchedAt)} \xb7 hover again after 60s to refresh`})]})})}function o({kpi:a}){if(!a)return(0,d.jsx)("div",{className:"text-body-sm text-ink-mute",children:"No data."});let b="claude"===a.provider?"Claude":"Codex";return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,d.jsx)("span",{className:"text-label-caps text-ink-dim",children:b}),a.ok&&a.planType&&(0,d.jsx)("span",{className:"text-[10px] text-ink-mute font-mono uppercase tracking-wide",children:a.planType})]}),a.ok?(0,d.jsxs)(d.Fragment,{children:[a.primary&&(0,d.jsx)(p,{label:a.primary.label,pct:a.primary.pct,resetsAt:a.primary.resetsAt,accent:"primary"}),a.secondary&&(0,d.jsx)(p,{label:a.secondary.label,pct:a.secondary.pct,resetsAt:a.secondary.resetsAt,accent:"secondary"}),!a.primary&&!a.secondary&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute",children:"No rate-limit headers returned."})]}):(0,d.jsx)("div",{className:"text-[11px] text-ink-mute leading-relaxed",children:a.error})]})}function p({label:a,pct:b,resetsAt:c,accent:e}){return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between text-body-sm",children:[(0,d.jsx)("span",{className:"text-ink font-mono uppercase tracking-wider text-[10px]",children:a}),(0,d.jsxs)("span",{className:"font-mono tabular text-ink",children:[Math.round(b),"%"]})]}),(0,d.jsx)("div",{className:"h-1 bg-surface-2 rounded-full overflow-hidden mt-1",children:(0,d.jsx)("div",{className:`h-full ${"primary"===e?"bg-primary":"bg-secondary"}`,style:{width:`${Math.min(100,Math.max(0,b))}%`}})}),(0,d.jsxs)("div",{className:"text-[10px] text-ink-mute font-mono tabular mt-0.5",children:["resets in ",l(c)]})]})}function q(a,b){if(!b||!("ok"in b))return{provider:a,ok:!1,observedAt:Date.now(),planType:null,primary:null,secondary:null,error:"unexpected response"};if(!b.ok)return{provider:a,ok:!1,observedAt:Date.now(),planType:null,primary:null,secondary:null,error:b.error};let c=b.snapshot;return{provider:a,ok:!0,observedAt:c.observedAt,planType:c.planType,primary:c.primary?{pct:c.primary.pct,resetsAt:c.primary.resetsAt,label:"claude"===a?"5h":"1m"}:null,secondary:c.secondary?{pct:c.secondary.pct,resetsAt:c.secondary.resetsAt,label:"7d"}:null}}let r=[{href:"/",label:"Dashboard",icon:"◧"},{href:"/timeline",label:"Timeline",icon:"☰"},{href:"/projects",label:"Projects",icon:"▦"},{href:"/sessions",label:"Sessions",icon:"⌘"},{href:"/analytics",label:"Analytics",icon:"⌁"}];function s(){let a=(0,g.usePathname)();return(0,d.jsxs)("aside",{className:"w-56 shrink-0 border-r border-surface-2 bg-surface-0 flex flex-col sticky top-0 h-screen self-start",children:[(0,d.jsxs)("div",{className:"px-5 border-b border-surface-2 h-[72px] flex flex-col justify-center",children:[(0,d.jsxs)("div",{className:"flex items-baseline gap-1.5 leading-none",children:[(0,d.jsx)("span",{className:"text-primary text-base",children:"◧"}),(0,d.jsxs)("span",{className:"text-lg font-bold tracking-tight",children:[(0,d.jsx)("span",{className:"text-ink-dim",children:"Agent"}),(0,d.jsx)("span",{className:"text-primary",children:"Graphed"})]})]}),(0,d.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-ink-mute mt-1.5",children:"See your AI work"})]}),(0,d.jsx)(m,{}),(0,d.jsx)("nav",{className:"px-2 py-3 flex-1 flex flex-col gap-0.5",children:r.map(b=>{let c="/"===b.href?"/"===a:a.startsWith(b.href);return(0,d.jsxs)(f(),{href:b.href,className:(0,h.A)("flex items-center gap-3 px-3 py-2 rounded text-[13px] transition-colors",c?"bg-surface-2 text-primary border-l-2 border-primary -ml-px":"text-ink-dim hover:text-ink hover:bg-surface-1"),children:[(0,d.jsx)("span",{className:"text-base w-4 text-center opacity-80",children:b.icon}),(0,d.jsx)("span",{children:b.label})]},b.href)})}),(0,d.jsx)("div",{className:"px-2 py-3 border-t border-surface-2",children:(0,d.jsxs)(f(),{href:"/settings",className:(0,h.A)("flex items-center gap-3 px-3 py-2 rounded text-[13px] transition-colors",a.startsWith("/settings")?"bg-surface-2 text-primary border-l-2 border-primary -ml-px":"text-ink-dim hover:text-ink hover:bg-surface-1"),children:[(0,d.jsx)("span",{className:"text-base w-4 text-center opacity-80",children:"⚙"}),(0,d.jsx)("span",{children:"Settings"})]})})]})}},81922:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},83146:(a,b,c)=>{Promise.resolve().then(c.bind(c,87907))},87907:(a,b,c)=>{"use strict";c.d(b,{Sidebar:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar 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.")},"/Users/mikekuehn/devProjects/agentgraphed/oss/src/components/Sidebar.tsx","Sidebar")}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=944,exports.ids=[944],exports.modules={10944:(a,b,c)=>{c.d(b,{Cj:()=>
|
|
1
|
+
"use strict";exports.id=944,exports.ids=[944],exports.modules={10944:(a,b,c)=>{c.d(b,{Cj:()=>z,Dq:()=>s,Ht:()=>q,JQ:()=>n,K6:()=>w,LQ:()=>j,PL:()=>D,Pw:()=>v,Qd:()=>A,TN:()=>u,U1:()=>o,ZC:()=>C,dS:()=>t,fZ:()=>B,jU:()=>y,k$:()=>m,lS:()=>r,rz:()=>k,sW:()=>p,zR:()=>x});var d=c(22446),e=c(46145),f=c(76846),g=c(97064),h=c(25742);let i=`
|
|
2
2
|
s.id, s.provider, s.project_id, p.name AS project_name, s.cwd,
|
|
3
3
|
s.started_at, s.ended_at, s.duration_ms, s.model,
|
|
4
4
|
s.message_count, s.user_message_count,
|
|
@@ -6,31 +6,31 @@
|
|
|
6
6
|
s.est_cost_usd, s.first_prompt, s.summary,
|
|
7
7
|
s.heuristic_title, s.category, s.categories, s.keywords,
|
|
8
8
|
s.git_branch
|
|
9
|
-
`,
|
|
10
|
-
WHERE s.started_at < ? AND s.ended_at >= ? ORDER BY s.started_at DESC`).all(b,a)}function
|
|
9
|
+
`,j=g.L;function k(){let{start:a,end:b}=function(){let a=new Date,b=new Date(a.getFullYear(),a.getMonth(),a.getDate()).getTime();return{start:b,end:b+864e5}}();return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id
|
|
10
|
+
WHERE s.started_at < ? AND s.ended_at >= ? ORDER BY s.started_at DESC`).all(b,a)}function l(a){let b=new Date(a);return new Date(b.getFullYear(),b.getMonth(),b.getDate()).getTime()}function m(a={}){let b=a.limit??60,c=a.before??Date.now()+1,f=["s.started_at < ?"],g=[c];if(a.projectId&&(f.push("s.project_id = ?"),g.push(a.projectId)),a.provider&&(f.push("s.provider = ?"),g.push(a.provider)),a.search){f.push("(s.first_prompt LIKE ? OR s.summary LIKE ?)");let b=`%${a.search}%`;g.push(b,b)}let h=(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id
|
|
11
11
|
WHERE ${f.join(" AND ")}
|
|
12
|
-
ORDER BY s.started_at DESC LIMIT ?`).all(...g,b),j=new Map,
|
|
12
|
+
ORDER BY s.started_at DESC LIMIT ?`).all(...g,b),j=new Map,k=a=>{let b=(0,e.EL)(a),c=j.get(b);return c||(c={day:b,dayMs:a,entries:[],totalTokens:0,totalCost:0,providers:{}},j.set(b,c)),c};for(let a of h){let b=l(a.started_at),c=l(a.ended_at),d=Math.max(1,Math.round((c-b)/864e5)+1),e=a.input_tokens+a.output_tokens+a.cache_read_tokens+a.cache_write_tokens;if(b===c){let c=k(b);c.entries.push({session:a,role:"single",spanDays:1}),c.totalTokens+=e,c.totalCost+=a.est_cost_usd,c.providers[a.provider]=(c.providers[a.provider]||0)+1;continue}for(let f=b;f<=c;f+=864e5){let g=k(f),h=f===b?"started":f===c?"closed":"continued";g.entries.push({session:a,role:h,spanDays:d}),"closed"===h&&(g.totalTokens+=e,g.totalCost+=a.est_cost_usd,g.providers[a.provider]=(g.providers[a.provider]||0)+1)}}for(let a of j.values())a.entries.sort((a,b)=>b.session.started_at-a.session.started_at);return[...j.values()].sort((a,b)=>b.dayMs-a.dayMs)}function n(){return(0,h.n)("getProjects",5e3,()=>(0,d.x)().prepare(`SELECT p.id, p.name, p.root_path, p.git_remote, p.first_seen, p.last_active,
|
|
13
|
+
COUNT(s.id) AS sessions,
|
|
14
|
+
COALESCE(SUM(s.input_tokens + s.output_tokens + s.cache_read_tokens + s.cache_write_tokens), 0) AS tokens,
|
|
15
|
+
COALESCE(SUM(s.est_cost_usd), 0) AS cost
|
|
16
|
+
FROM projects p LEFT JOIN sessions s ON s.project_id = p.id
|
|
17
|
+
GROUP BY p.id ORDER BY p.last_active DESC`).all())}function o(a){return(0,d.x)().prepare(`SELECT p.id, p.name, p.root_path, p.git_remote, p.first_seen, p.last_active,
|
|
13
18
|
COUNT(s.id) AS sessions,
|
|
14
19
|
COALESCE(SUM(s.input_tokens + s.output_tokens + s.cache_read_tokens + s.cache_write_tokens), 0) AS tokens,
|
|
15
20
|
COALESCE(SUM(s.est_cost_usd), 0) AS cost
|
|
16
21
|
FROM projects p LEFT JOIN sessions s ON s.project_id = p.id
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
FROM sessions WHERE started_at >= ?`).all(b),h=new Map;for(let a=0;a<c;a++){let b=new Date;b.setDate(b.getDate()-a),b.setHours(0,0,0,0);let c=(0,e.EL)(b.getTime());h.set(c,{day:c,sessions:0,tokens:0,cost:0})}for(let a of g){let b=(0,e.EL)(a.started_at),c=h.get(b);c&&(c.sessions+=1,c.tokens+=a.input_tokens+a.output_tokens+a.cache_read_tokens+a.cache_write_tokens,c.cost+=a.est_cost_usd)}return[...h.values()].sort((a,b)=>a.day.localeCompare(b.day))}function t(){return(0,d.x)().prepare(`SELECT provider,
|
|
26
|
-
COUNT(*) AS sessions,
|
|
27
|
-
SUM(input_tokens + output_tokens + cache_read_tokens + cache_write_tokens) AS tokens,
|
|
28
|
-
SUM(est_cost_usd) AS cost
|
|
29
|
-
FROM sessions GROUP BY provider ORDER BY tokens DESC`).all()}function u(){let a=(0,d.x)().prepare(`SELECT COALESCE(model, 'unknown') AS model,
|
|
22
|
+
WHERE p.id = ? GROUP BY p.id`).get(a)??null}function p(a,b=100){return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id
|
|
23
|
+
WHERE s.project_id = ? ORDER BY s.started_at DESC LIMIT ?`).all(a,b)}function q(a){return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id WHERE s.id = ?`).get(a)??null}function r(a){return(0,d.x)().prepare("SELECT id, role, content, timestamp, model FROM messages WHERE session_id = ? ORDER BY timestamp ASC LIMIT 200").all(a)}function s(a={}){let b=a.limit??200,c=a.offset??0,e=[],f=[];a.provider&&(e.push("s.provider = ?"),f.push(a.provider)),a.projectId&&(e.push("s.project_id = ?"),f.push(a.projectId));let g=e.length?`WHERE ${e.join(" AND ")}`:"";return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id ${g}
|
|
24
|
+
ORDER BY s.started_at DESC LIMIT ? OFFSET ?`).all(...f,b,c)}function t(a=30){return(0,h.n)(`getDailySeries:${a}`,5e3,()=>(function(a){let b,c,f=(0,d.x)();if(null===a){let a=f.prepare("SELECT MIN(started_at) AS min FROM sessions").get();if(!a.min)return[];b=a.min,c=Math.max(1,Math.ceil((Date.now()-b)/864e5)+1)}else b=Date.now()-864e5*a,c=a;let g=f.prepare(`SELECT started_at, input_tokens, output_tokens, cache_read_tokens, cache_write_tokens, est_cost_usd
|
|
25
|
+
FROM sessions WHERE started_at >= ?`).all(b),h=new Map;for(let a=0;a<c;a++){let b=new Date;b.setDate(b.getDate()-a),b.setHours(0,0,0,0);let c=(0,e.EL)(b.getTime());h.set(c,{day:c,sessions:0,tokens:0,cost:0})}for(let a of g){let b=(0,e.EL)(a.started_at),c=h.get(b);c&&(c.sessions+=1,c.tokens+=a.input_tokens+a.output_tokens+a.cache_read_tokens+a.cache_write_tokens,c.cost+=a.est_cost_usd)}return[...h.values()].sort((a,b)=>a.day.localeCompare(b.day))})(a))}function u(){return(0,h.n)("getProviderBreakdown",5e3,()=>(0,d.x)().prepare(`SELECT provider,
|
|
26
|
+
COUNT(*) AS sessions,
|
|
27
|
+
SUM(input_tokens + output_tokens + cache_read_tokens + cache_write_tokens) AS tokens,
|
|
28
|
+
SUM(est_cost_usd) AS cost
|
|
29
|
+
FROM sessions GROUP BY provider ORDER BY tokens DESC`).all())}function v(){return(0,h.n)("getModelBreakdown",5e3,()=>(function(){let a=(0,d.x)().prepare(`SELECT COALESCE(model, 'unknown') AS model,
|
|
30
30
|
COUNT(*) AS sessions,
|
|
31
31
|
SUM(input_tokens + output_tokens + cache_read_tokens + cache_write_tokens) AS tokens,
|
|
32
32
|
SUM(est_cost_usd) AS cost
|
|
33
|
-
FROM sessions GROUP BY model`).all(),b=new Map;for(let c of a){let a=(0,f.gW)(c.model),d=b.get(a);d?(d.sessions+=c.sessions,d.tokens+=c.tokens,d.cost+=c.cost):b.set(a,{model:a,sessions:c.sessions,tokens:c.tokens,cost:c.cost})}return[...b.values()].sort((a,b)=>b.tokens-a.tokens).slice(0,12)}function
|
|
33
|
+
FROM sessions GROUP BY model`).all(),b=new Map;for(let c of a){let a=(0,f.gW)(c.model),d=b.get(a);d?(d.sessions+=c.sessions,d.tokens+=c.tokens,d.cost+=c.cost):b.set(a,{model:a,sessions:c.sessions,tokens:c.tokens,cost:c.cost})}return[...b.values()].sort((a,b)=>b.tokens-a.tokens).slice(0,12)})())}function w(){return(0,h.n)("getOverview",5e3,()=>(0,d.x)().prepare(`SELECT
|
|
34
34
|
COUNT(*) AS sessions,
|
|
35
35
|
COUNT(DISTINCT project_id) AS projects,
|
|
36
36
|
COALESCE(SUM(input_tokens + output_tokens + cache_read_tokens + cache_write_tokens), 0) AS tokens,
|
|
@@ -38,16 +38,16 @@
|
|
|
38
38
|
COUNT(DISTINCT strftime('%Y-%m', started_at/1000, 'unixepoch')) AS active_months,
|
|
39
39
|
MIN(started_at) AS first_session,
|
|
40
40
|
MAX(started_at) AS last_session
|
|
41
|
-
FROM sessions`).get()}function
|
|
42
|
-
ORDER BY s.started_at DESC LIMIT ?`).all(a)}function
|
|
41
|
+
FROM sessions`).get())}function x(a=12){return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id
|
|
42
|
+
ORDER BY s.started_at DESC LIMIT ?`).all(a)}function y(a=30,b=6){return(0,h.n)(`getProjectBreakdown:${a}:${b}`,5e3,()=>(function(a,b){let c=null===a?0:Date.now()-864e5*a;return(0,d.x)().prepare(`SELECT p.id, p.name, p.last_active,
|
|
43
43
|
COUNT(s.id) AS sessions,
|
|
44
44
|
COALESCE(SUM(s.input_tokens + s.output_tokens + s.cache_read_tokens + s.cache_write_tokens), 0) AS tokens,
|
|
45
45
|
COALESCE(SUM(s.est_cost_usd), 0) AS cost
|
|
46
46
|
FROM projects p JOIN sessions s ON s.project_id = p.id
|
|
47
47
|
WHERE s.started_at >= ?
|
|
48
|
-
GROUP BY p.id ORDER BY tokens DESC LIMIT ?`).all(c,b)}function
|
|
48
|
+
GROUP BY p.id ORDER BY tokens DESC LIMIT ?`).all(c,b)})(a,b))}function z(a=30){return(0,h.n)(`getCategoryBreakdown:${a}`,5e3,()=>(function(a){let b=null===a?0:Date.now()-864e5*a,c=(0,d.x)().prepare(`SELECT category, categories,
|
|
49
49
|
(input_tokens + output_tokens + cache_read_tokens + cache_write_tokens) AS tokens
|
|
50
|
-
FROM sessions WHERE started_at >= ?`).all(b),e=new Map;for(let a of c){let b=(0,g.L)(a);for(let c of b.length?b:["Unknown"]){let b=e.get(c)??{sessions:0,tokens:0};b.sessions+=1,b.tokens+=a.tokens,e.set(c,b)}}return[...e.entries()].map(([a,b])=>({category:a,...b})).sort((a,b)=>b.sessions-a.sessions)}function
|
|
50
|
+
FROM sessions WHERE started_at >= ?`).all(b),e=new Map;for(let a of c){let b=(0,g.L)(a);for(let c of b.length?b:["Unknown"]){let b=e.get(c)??{sessions:0,tokens:0};b.sessions+=1,b.tokens+=a.tokens,e.set(c,b)}}return[...e.entries()].map(([a,b])=>({category:a,...b})).sort((a,b)=>b.sessions-a.sessions)})(a))}function A(a=30){return(0,h.n)(`getRangeSummary:${a}`,5e3,()=>(function(a){let b=(0,d.x)(),c=Date.now(),e=null===a?0:c-864e5*a,f=null===a?0:e-864e5*a,g=b.prepare(`SELECT COUNT(*) AS sessions,
|
|
51
51
|
COUNT(DISTINCT project_id) AS projects,
|
|
52
52
|
COALESCE(SUM(input_tokens + output_tokens + cache_read_tokens + cache_write_tokens), 0) AS tokens,
|
|
53
53
|
COALESCE(SUM(est_cost_usd), 0) AS cost,
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
COALESCE(SUM(input_tokens + output_tokens + cache_read_tokens + cache_write_tokens), 0) AS tokens,
|
|
57
57
|
COALESCE(SUM(est_cost_usd), 0) AS cost,
|
|
58
58
|
COUNT(DISTINCT strftime('%Y-%m', started_at/1000, 'unixepoch')) AS active_months
|
|
59
|
-
FROM sessions WHERE started_at >= ? AND started_at < ?`).get(f,e);return{...g,sessions_prev:h.sessions,tokens_prev:h.tokens,cost_prev:h.cost,active_months_prev:h.active_months}}function
|
|
59
|
+
FROM sessions WHERE started_at >= ? AND started_at < ?`).get(f,e);return{...g,sessions_prev:h.sessions,tokens_prev:h.tokens,cost_prev:h.cost,active_months_prev:h.active_months}})(a))}function B(a){let b=(0,d.x)().prepare("SELECT summary FROM day_summaries WHERE day = ?").get(a);return b?.summary??null}function C(a,b){(0,d.x)().prepare("INSERT OR REPLACE INTO settings (key, value) VALUES (?, ?)").run(a,b)}function D(a){let b=(0,d.x)().prepare("SELECT value FROM settings WHERE key = ?").get(a);return b?.value??null}},22446:(a,b,c)=>{c.d(b,{L:()=>w,x:()=>x});var d={};c.r(d),c.d(d,{daySummaries:()=>s,ingestState:()=>q,messages:()=>p,projectSummaries:()=>t,projects:()=>n,sessions:()=>o,settings:()=>r});var e=c(87550),f=c.n(e),g=c(65127),h=c(48211),i=c(95417),j=c(58040),k=c(20377),l=c(4035),m=c(19643);let n=(0,i.D)("projects",{id:(0,j.Qq)("id").primaryKey(),name:(0,j.Qq)("name").notNull(),rootPath:(0,j.Qq)("root_path").notNull(),gitRemote:(0,j.Qq)("git_remote"),firstSeen:(0,k.nd)("first_seen").notNull(),lastActive:(0,k.nd)("last_active").notNull()},a=>({rootIdx:(0,l.GL)("projects_root_idx").on(a.rootPath)})),o=(0,i.D)("sessions",{id:(0,j.Qq)("id").primaryKey(),provider:(0,j.Qq)("provider").notNull(),projectId:(0,j.Qq)("project_id").notNull(),cwd:(0,j.Qq)("cwd").notNull(),startedAt:(0,k.nd)("started_at").notNull(),endedAt:(0,k.nd)("ended_at").notNull(),durationMs:(0,k.nd)("duration_ms").notNull(),model:(0,j.Qq)("model"),messageCount:(0,k.nd)("message_count").notNull().default(0),userMessageCount:(0,k.nd)("user_message_count").notNull().default(0),inputTokens:(0,k.nd)("input_tokens").notNull().default(0),outputTokens:(0,k.nd)("output_tokens").notNull().default(0),cacheReadTokens:(0,k.nd)("cache_read_tokens").notNull().default(0),cacheWriteTokens:(0,k.nd)("cache_write_tokens").notNull().default(0),estCostUsd:(0,m.x)("est_cost_usd").notNull().default(0),firstPrompt:(0,j.Qq)("first_prompt"),summary:(0,j.Qq)("summary"),summaryGenerated:(0,k.nd)("summary_generated").notNull().default(0),heuristicTitle:(0,j.Qq)("heuristic_title"),category:(0,j.Qq)("category"),keywords:(0,j.Qq)("keywords"),gitBranch:(0,j.Qq)("git_branch"),sourcePath:(0,j.Qq)("source_path").notNull()},a=>({projectIdx:(0,l.Pe)("sessions_project_idx").on(a.projectId),startedIdx:(0,l.Pe)("sessions_started_idx").on(a.startedAt),providerIdx:(0,l.Pe)("sessions_provider_idx").on(a.provider),modelIdx:(0,l.Pe)("sessions_model_idx").on(a.model)})),p=(0,i.D)("messages",{id:(0,j.Qq)("id").primaryKey(),sessionId:(0,j.Qq)("session_id").notNull(),role:(0,j.Qq)("role").notNull(),content:(0,j.Qq)("content").notNull(),timestamp:(0,k.nd)("timestamp").notNull(),model:(0,j.Qq)("model")},a=>({sessionIdx:(0,l.Pe)("messages_session_idx").on(a.sessionId),timestampIdx:(0,l.Pe)("messages_timestamp_idx").on(a.timestamp)})),q=(0,i.D)("ingest_state",{sourcePath:(0,j.Qq)("source_path").primaryKey(),mtime:(0,k.nd)("mtime").notNull(),size:(0,k.nd)("size").notNull(),sessionId:(0,j.Qq)("session_id").notNull(),ingestedAt:(0,k.nd)("ingested_at").notNull()}),r=(0,i.D)("settings",{key:(0,j.Qq)("key").primaryKey(),value:(0,j.Qq)("value").notNull()}),s=(0,i.D)("day_summaries",{day:(0,j.Qq)("day").primaryKey(),summary:(0,j.Qq)("summary").notNull(),generatedAt:(0,k.nd)("generated_at").notNull()}),t=(0,i.D)("project_summaries",{projectId:(0,j.Qq)("project_id").primaryKey(),summary:(0,j.Qq)("summary").notNull(),generatedAt:(0,k.nd)("generated_at").notNull()}),u=null,v=null;function w(){return u||((v=new(f())((0,h.W)())).pragma("journal_mode = WAL"),v.pragma("synchronous = NORMAL"),function(a){a.exec(`
|
|
60
60
|
CREATE TABLE IF NOT EXISTS projects (
|
|
61
61
|
id TEXT PRIMARY KEY,
|
|
62
62
|
name TEXT NOT NULL,
|
|
@@ -164,4 +164,4 @@
|
|
|
164
164
|
CREATE INDEX IF NOT EXISTS claude_limit_events_session_idx ON claude_limit_events(session_id);
|
|
165
165
|
`);let b=new Set(a.prepare("PRAGMA table_info(sessions)").all().map(a=>a.name));b.has("heuristic_title")||a.exec("ALTER TABLE sessions ADD COLUMN heuristic_title TEXT"),b.has("category")||a.exec("ALTER TABLE sessions ADD COLUMN category TEXT"),b.has("keywords")||a.exec("ALTER TABLE sessions ADD COLUMN keywords TEXT"),a.exec("CREATE INDEX IF NOT EXISTS sessions_category_idx ON sessions(category)"),b.has("categories")||(a.exec("ALTER TABLE sessions ADD COLUMN categories TEXT"),a.exec(`UPDATE sessions
|
|
166
166
|
SET categories = json_array(category)
|
|
167
|
-
WHERE category IS NOT NULL AND categories IS NULL`))}(v),u=(0,g.f)(v,{schema:d}))}function x(){return v||w(),v}},46145:(a,b,c)=>{function d(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}k`:a.toString()}function e(a){return a>=1e3?`$${a.toFixed(0)}`:`$${a.toFixed(2)}`}function f(a){let b=Math.floor((Date.now()-a)/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);if(d<30)return`${d}d ago`;let e=Math.floor(d/30);return`${e}mo ago`}function g(a){return new Date(a).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1})}function h(a){let b=Math.floor(a/1e3);if(b<60)return`${b}s`;let c=Math.floor(b/60);if(c<60)return`${c}m`;let d=Math.floor(c/60);return`${d}h ${c%60}m`}function i(a){return new Date(a).toLocaleDateString(void 0,{weekday:"long",month:"long",day:"numeric"})}function j(a){let b=new Date(a),c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0");return`${c}-${d}-${e}`}c.d(b,{EL:()=>j,F0:()=>e,I_:()=>i,Kc:()=>f,ME:()=>g,c5:()=>h,yj:()=>d})},48211:(a,b,c)=>{c.d(b,{K:()=>g,W:()=>h});var d=c(48161),e=c(76760),f=c(73024);function g(){let a=process.env.AGENTGRAPHED_DATA_DIR||(0,e.join)((0,d.homedir)(),".agentgraphed");return(0,f.existsSync)(a)||(0,f.mkdirSync)(a,{recursive:!0}),a}function h(){return(0,e.join)(g(),"agentgraphed.sqlite")}},76846:(a,b,c)=>{let d;c.d(b,{QJ:()=>j,a3:()=>l,gW:()=>m});var e=c(73024),f=c(76760);c(73136);let g={input:3,output:15},h={"claude-opus-4-7":{input:5,output:25,cacheRead:.5,cacheWrite:6.25},"claude-opus-4-6":{input:5,output:25,cacheRead:.5,cacheWrite:6.25},"claude-opus-4-5":{input:5,output:25,cacheRead:.5,cacheWrite:6.25},"claude-opus-4":{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},"claude-sonnet-4-6":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"claude-sonnet-4-5":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"claude-haiku-4-5":{input:1,output:5,cacheRead:.1,cacheWrite:1.25},"claude-3-5-sonnet":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"gpt-5.1":{input:1.25,output:10,cacheRead:.125},"gpt-5":{input:1.25,output:10,cacheRead:.125},"gpt-5-mini":{input:.25,output:2,cacheRead:.025},"gpt-4o":{input:2.5,output:10},"gpt-4o-mini":{input:.15,output:.6}},i=null,j=function(){let a=function(){if(void 0!==d)return d;try{let a=__dirname,b=(0,f.join)(a,"pricing-data","litellm.meta.json");d=(0,e.existsSync)(b)?JSON.parse((0,e.readFileSync)(b,"utf8")):null}catch{d=null}return d}();return a?.fetchedAt?a.fetchedAt.slice(0,10):"2026-06-05"}();function k(a){let b=a.input_cost_per_token,c=a.output_cost_per_token;return null==b||null==c?null:{input:1e6*b,output:1e6*c,cacheRead:null!=a.cache_read_input_token_cost?1e6*a.cache_read_input_token_cost:void 0,cacheWrite:null!=a.cache_creation_input_token_cost?1e6*a.cache_creation_input_token_cost:void 0}}function l(a){let b=function(a){if(!a)return g;let b=null!==i?i:i=function(){try{let a=__dirname;for(let b of[(0,f.join)(a,"pricing-data","litellm.json"),(0,f.join)(process.cwd(),"src","lib","pricing-data","litellm.json")])if((0,e.existsSync)(b))return JSON.parse((0,e.readFileSync)(b,"utf8"))}catch{}return{}}(),c=b[a];if(c){let a=k(c);if(a)return a}let d=a.replace(/-(\d{8})$/,"");if(d!==a&&b[d]){let a=k(b[d]);if(a)return a}if(h[a])return h[a];let j=Object.keys(h).find(b=>a.startsWith(b));if(j)return h[j];let l=Object.keys(b).find(b=>a.startsWith(b));if(l){let a=k(b[l]);if(a)return a}return g}(a.model),c=a.cacheReadTokens??0,d=a.cacheWriteTokens??0;return a.inputTokens*b.input/1e6+a.outputTokens*b.output/1e6+c*(b.cacheRead??b.input)/1e6+d*(b.cacheWrite??b.input)/1e6}function m(a){if(!a)return"Unknown";let b=a.toLowerCase(),c=b.match(/^claude-(?:(\d+(?:-\d+)?)-)?(opus|sonnet|haiku)-?(\d+)?/);if(c){let a=c[2].charAt(0).toUpperCase()+c[2].slice(1);if(c[1]){let b=c[1].replace("-",".");return`Claude ${a} ${b}`}return c[3]?`Claude ${a} ${c[3]}`:`Claude ${a}`}if(b.startsWith("gpt-4o"))return b.includes("mini")?"GPT-4o Mini":"GPT-4o";let d=b.match(/^gpt-(\d+(?:\.\d+)?)(?:-(mini|nano|turbo))?/);if(d){let a=`GPT-${d[1]}`;return d[2]?`${a} ${d[2].charAt(0).toUpperCase()+d[2].slice(1)}`:a}return a}},97064:(a,b,c)=>{function d(a){if(a.categories)try{let b=JSON.parse(a.categories);if(Array.isArray(b))return b.filter(a=>"string"==typeof a)}catch{}return a.category?[a.category]:[]}function e(a){if(a.summary)return a.summary.split("\n")[0].trim();if(a.heuristic_title)return a.heuristic_title;if(a.first_prompt){let b=(a.first_prompt.trim().split("\n").find(a=>a.trim().length>0)??"").replace(/\s+/g," ").trim();if(b.length<=100)return b;let c=b.lastIndexOf(" ",100);return(c>60?b.slice(0,c):b.slice(0,100))+"…"}return"(untitled session)"}c.d(b,{L:()=>d,x:()=>e})}};
|
|
167
|
+
WHERE category IS NOT NULL AND categories IS NULL`))}(v),u=(0,g.f)(v,{schema:d}))}function x(){return v||w(),v}},25742:(a,b,c)=>{c.d(b,{e:()=>f,n:()=>e});let d=new Map;function e(a,b,c){let e=d.get(a),f=Date.now();if(e&&e.expires>f)return e.value;let g=c();if(d.set(a,{value:g,expires:f+b}),d.size>64)for(let[a,b]of d)b.expires<=f&&d.delete(a);return g}function f(){d.clear()}},46145:(a,b,c)=>{function d(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}k`:a.toString()}function e(a){return a>=1e3?`$${a.toFixed(0)}`:`$${a.toFixed(2)}`}function f(a){let b=Math.floor((Date.now()-a)/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);if(d<30)return`${d}d ago`;let e=Math.floor(d/30);return`${e}mo ago`}function g(a){return new Date(a).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1})}function h(a){let b=Math.floor(a/1e3);if(b<60)return`${b}s`;let c=Math.floor(b/60);if(c<60)return`${c}m`;let d=Math.floor(c/60);return`${d}h ${c%60}m`}function i(a){return new Date(a).toLocaleDateString(void 0,{weekday:"long",month:"long",day:"numeric"})}function j(a){let b=new Date(a),c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0");return`${c}-${d}-${e}`}c.d(b,{EL:()=>j,F0:()=>e,I_:()=>i,Kc:()=>f,ME:()=>g,c5:()=>h,yj:()=>d})},48211:(a,b,c)=>{c.d(b,{K:()=>g,W:()=>h});var d=c(48161),e=c(76760),f=c(73024);function g(){let a=process.env.AGENTGRAPHED_DATA_DIR||(0,e.join)((0,d.homedir)(),".agentgraphed");return(0,f.existsSync)(a)||(0,f.mkdirSync)(a,{recursive:!0}),a}function h(){return(0,e.join)(g(),"agentgraphed.sqlite")}},76846:(a,b,c)=>{let d;c.d(b,{QJ:()=>j,a3:()=>l,gW:()=>m});var e=c(73024),f=c(76760);c(73136);let g={input:3,output:15},h={"claude-opus-4-7":{input:5,output:25,cacheRead:.5,cacheWrite:6.25},"claude-opus-4-6":{input:5,output:25,cacheRead:.5,cacheWrite:6.25},"claude-opus-4-5":{input:5,output:25,cacheRead:.5,cacheWrite:6.25},"claude-opus-4":{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},"claude-sonnet-4-6":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"claude-sonnet-4-5":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"claude-haiku-4-5":{input:1,output:5,cacheRead:.1,cacheWrite:1.25},"claude-3-5-sonnet":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"gpt-5.1":{input:1.25,output:10,cacheRead:.125},"gpt-5":{input:1.25,output:10,cacheRead:.125},"gpt-5-mini":{input:.25,output:2,cacheRead:.025},"gpt-4o":{input:2.5,output:10},"gpt-4o-mini":{input:.15,output:.6}},i=null,j=function(){let a=function(){if(void 0!==d)return d;try{let a=__dirname,b=(0,f.join)(a,"pricing-data","litellm.meta.json");d=(0,e.existsSync)(b)?JSON.parse((0,e.readFileSync)(b,"utf8")):null}catch{d=null}return d}();return a?.fetchedAt?a.fetchedAt.slice(0,10):"2026-06-05"}();function k(a){let b=a.input_cost_per_token,c=a.output_cost_per_token;return null==b||null==c?null:{input:1e6*b,output:1e6*c,cacheRead:null!=a.cache_read_input_token_cost?1e6*a.cache_read_input_token_cost:void 0,cacheWrite:null!=a.cache_creation_input_token_cost?1e6*a.cache_creation_input_token_cost:void 0}}function l(a){let b=function(a){if(!a)return g;let b=null!==i?i:i=function(){try{let a=__dirname;for(let b of[(0,f.join)(a,"pricing-data","litellm.json"),(0,f.join)(process.cwd(),"src","lib","pricing-data","litellm.json")])if((0,e.existsSync)(b))return JSON.parse((0,e.readFileSync)(b,"utf8"))}catch{}return{}}(),c=b[a];if(c){let a=k(c);if(a)return a}let d=a.replace(/-(\d{8})$/,"");if(d!==a&&b[d]){let a=k(b[d]);if(a)return a}if(h[a])return h[a];let j=Object.keys(h).find(b=>a.startsWith(b));if(j)return h[j];let l=Object.keys(b).find(b=>a.startsWith(b));if(l){let a=k(b[l]);if(a)return a}return g}(a.model),c=a.cacheReadTokens??0,d=a.cacheWriteTokens??0;return a.inputTokens*b.input/1e6+a.outputTokens*b.output/1e6+c*(b.cacheRead??b.input)/1e6+d*(b.cacheWrite??b.input)/1e6}function m(a){if(!a)return"Unknown";let b=a.toLowerCase(),c=b.match(/^claude-(?:(\d+(?:-\d+)?)-)?(opus|sonnet|haiku)-?(\d+)?/);if(c){let a=c[2].charAt(0).toUpperCase()+c[2].slice(1);if(c[1]){let b=c[1].replace("-",".");return`Claude ${a} ${b}`}return c[3]?`Claude ${a} ${c[3]}`:`Claude ${a}`}if(b.startsWith("gpt-4o"))return b.includes("mini")?"GPT-4o Mini":"GPT-4o";let d=b.match(/^gpt-(\d+(?:\.\d+)?)(?:-(mini|nano|turbo))?/);if(d){let a=`GPT-${d[1]}`;return d[2]?`${a} ${d[2].charAt(0).toUpperCase()+d[2].slice(1)}`:a}return a}},97064:(a,b,c)=>{function d(a){if(a.categories)try{let b=JSON.parse(a.categories);if(Array.isArray(b))return b.filter(a=>"string"==typeof a)}catch{}return a.category?[a.category]:[]}function e(a){if(a.summary)return a.summary.split("\n")[0].trim();if(a.heuristic_title)return a.heuristic_title;if(a.first_prompt){let b=(a.first_prompt.trim().split("\n").find(a=>a.trim().length>0)??"").replace(/\s+/g," ").trim();if(b.length<=100)return b;let c=b.lastIndexOf(" ",100);return(c>60?b.slice(0,c):b.slice(0,100))+"…"}return"(untitled session)"}c.d(b,{L:()=>d,x:()=>e})}};
|