agentgraphed 0.2.2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +54 -33
  3. package/.next/standalone/.next/app-path-routes-manifest.json +7 -4
  4. package/.next/standalone/.next/build-manifest.json +3 -3
  5. package/.next/standalone/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/.next/required-server-files.json +6 -6
  7. package/.next/standalone/.next/routes-manifest.json +16 -0
  8. package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
  9. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  12. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  13. package/.next/standalone/.next/server/app/analytics/page.js +2 -2
  14. package/.next/standalone/.next/server/app/analytics/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/api/ingest-local/route.js +1 -1
  17. package/.next/standalone/.next/server/app/api/ingest-local/route_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/api/quota-probe/route.js +2 -2
  19. package/.next/standalone/.next/server/app/api/quota-probe/route_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/api/share/dashboard/route.js +1 -0
  21. package/.next/standalone/.next/server/app/api/share/dashboard/route.js.nft.json +1 -0
  22. package/.next/standalone/.next/server/app/api/share/dashboard/route_client-reference-manifest.js +1 -0
  23. package/.next/standalone/.next/server/app/api/share/project/[id]/route.js +1 -0
  24. package/.next/standalone/.next/server/app/api/share/project/[id]/route.js.nft.json +1 -0
  25. package/.next/standalone/.next/server/app/api/share/project/[id]/route_client-reference-manifest.js +1 -0
  26. package/.next/standalone/.next/server/app/api/share/session/[id]/route.js +1 -0
  27. package/.next/standalone/.next/server/app/api/share/session/[id]/route.js.nft.json +1 -0
  28. package/.next/standalone/.next/server/app/api/share/session/[id]/route_client-reference-manifest.js +1 -0
  29. package/.next/standalone/.next/server/app/page.js +46 -2
  30. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/projects/[id]/page.js +2 -2
  33. package/.next/standalone/.next/server/app/projects/[id]/page.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/projects/[id]/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/projects/page.js +2 -2
  36. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/sessions/[id]/page.js +3 -10
  39. package/.next/standalone/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/sessions/page.js +2 -2
  42. package/.next/standalone/.next/server/app/sessions/page.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/settings/page.js +8 -19
  45. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/timeline/page.js +2 -2
  48. package/.next/standalone/.next/server/app/timeline/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/timeline/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app-paths-manifest.json +7 -4
  51. package/.next/standalone/.next/server/chunks/27.js +15 -3
  52. package/.next/standalone/.next/server/chunks/450.js +137 -0
  53. package/.next/standalone/.next/server/chunks/564.js +4 -4
  54. package/.next/standalone/.next/server/chunks/693.js +1 -0
  55. package/.next/standalone/.next/server/chunks/694.js +43 -0
  56. package/.next/standalone/.next/server/chunks/837.js +12 -0
  57. package/.next/standalone/.next/server/chunks/903.js +1 -0
  58. package/.next/standalone/.next/server/chunks/944.js +70 -31
  59. package/.next/standalone/.next/server/chunks/954.js +1 -0
  60. package/.next/standalone/.next/server/chunks/970.js +9 -0
  61. package/.next/standalone/.next/server/functions-config-manifest.json +4 -1
  62. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  63. package/.next/standalone/.next/server/pages/404.html +1 -1
  64. package/.next/standalone/.next/server/pages/500.html +1 -1
  65. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  67. package/.next/{static/chunks/app/_not-found/page-dc1cbec20c205394.js → standalone/.next/static/chunks/app/_not-found/page-01ad39d2ead973c7.js} +1 -1
  68. package/.next/{static/chunks/app/analytics/page-42186370029f753c.js → standalone/.next/static/chunks/app/analytics/page-79a1781c3529dcb6.js} +1 -1
  69. package/.next/standalone/.next/static/chunks/app/api/ingest-local/route-3bc0072e65861283.js +1 -0
  70. package/.next/standalone/.next/static/chunks/app/api/quota-probe/route-3bc0072e65861283.js +1 -0
  71. package/.next/standalone/.next/static/chunks/app/api/share/dashboard/route-3bc0072e65861283.js +1 -0
  72. package/.next/standalone/.next/static/chunks/app/api/share/project/[id]/route-3bc0072e65861283.js +1 -0
  73. package/.next/standalone/.next/static/chunks/app/api/share/session/[id]/route-3bc0072e65861283.js +1 -0
  74. package/.next/standalone/.next/static/chunks/app/layout-bbab14e77aaeeb67.js +1 -0
  75. package/.next/standalone/.next/static/chunks/app/page-a3c60158eb6e8a4c.js +1 -0
  76. package/.next/standalone/.next/static/chunks/app/projects/[id]/page-32fe8cf66558be7c.js +1 -0
  77. package/.next/standalone/.next/static/chunks/app/projects/page-dce207c2f75422be.js +1 -0
  78. package/.next/standalone/.next/static/chunks/app/sessions/[id]/page-bd098facac562ae1.js +1 -0
  79. package/.next/standalone/.next/static/chunks/app/sessions/page-aec145af506da55b.js +1 -0
  80. package/.next/standalone/.next/static/chunks/app/settings/page-655af37dd2ec318b.js +1 -0
  81. package/.next/standalone/.next/static/chunks/app/timeline/page-dce207c2f75422be.js +1 -0
  82. package/.next/standalone/.next/static/chunks/{main-app-c9ae70e5bb48ac77.js → main-app-27b331c894fe5037.js} +1 -1
  83. package/.next/standalone/.next/static/css/fff107f5d96e58c9.css +3 -0
  84. package/.next/standalone/.next/static/sgmNXxdNgpIfrW53A0qbg/_buildManifest.js +1 -0
  85. package/.next/standalone/node_modules/@img/{sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib → sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3} +0 -0
  86. package/.next/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/package.json +11 -5
  87. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
  88. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  89. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
  90. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
  91. package/.next/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  92. package/.next/standalone/node_modules/@img/{sharp-darwin-arm64 → sharp-linux-x64}/package.json +13 -7
  93. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/LICENSE +191 -0
  94. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  95. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
  96. package/.next/standalone/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  97. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/index.node.js +20180 -0
  98. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf +0 -0
  99. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/package.json +16 -0
  100. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/resvg.wasm +0 -0
  101. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/yoga.wasm +0 -0
  102. package/.next/standalone/package.json +2 -1
  103. package/.next/standalone/server.js +1 -1
  104. package/.next/standalone/src/lib/pricing-data/litellm.json +615 -92
  105. package/.next/standalone/src/lib/pricing-data/litellm.meta.json +2 -2
  106. package/.next/{standalone/.next/static/chunks/app/_not-found/page-dc1cbec20c205394.js → static/chunks/app/_not-found/page-01ad39d2ead973c7.js} +1 -1
  107. package/.next/{standalone/.next/static/chunks/app/analytics/page-42186370029f753c.js → static/chunks/app/analytics/page-79a1781c3529dcb6.js} +1 -1
  108. package/.next/static/chunks/app/api/ingest-local/route-3bc0072e65861283.js +1 -0
  109. package/.next/static/chunks/app/api/quota-probe/route-3bc0072e65861283.js +1 -0
  110. package/.next/static/chunks/app/api/share/dashboard/route-3bc0072e65861283.js +1 -0
  111. package/.next/static/chunks/app/api/share/project/[id]/route-3bc0072e65861283.js +1 -0
  112. package/.next/static/chunks/app/api/share/session/[id]/route-3bc0072e65861283.js +1 -0
  113. package/.next/static/chunks/app/layout-bbab14e77aaeeb67.js +1 -0
  114. package/.next/static/chunks/app/page-a3c60158eb6e8a4c.js +1 -0
  115. package/.next/static/chunks/app/projects/[id]/page-32fe8cf66558be7c.js +1 -0
  116. package/.next/static/chunks/app/projects/page-dce207c2f75422be.js +1 -0
  117. package/.next/static/chunks/app/sessions/[id]/page-bd098facac562ae1.js +1 -0
  118. package/.next/static/chunks/app/sessions/page-aec145af506da55b.js +1 -0
  119. package/.next/static/chunks/app/settings/page-655af37dd2ec318b.js +1 -0
  120. package/.next/static/chunks/app/timeline/page-dce207c2f75422be.js +1 -0
  121. package/.next/static/chunks/{main-app-c9ae70e5bb48ac77.js → main-app-27b331c894fe5037.js} +1 -1
  122. package/.next/static/css/fff107f5d96e58c9.css +3 -0
  123. package/.next/static/sgmNXxdNgpIfrW53A0qbg/_buildManifest.js +1 -0
  124. package/CHANGELOG.md +40 -0
  125. package/README.md +48 -46
  126. package/package.json +2 -1
  127. package/src/lib/pricing-data/litellm.json +615 -92
  128. package/src/lib/pricing-data/litellm.meta.json +2 -2
  129. package/.next/standalone/.next/server/chunks/165.js +0 -109
  130. package/.next/standalone/.next/server/chunks/660.js +0 -1
  131. package/.next/standalone/.next/static/chunks/app/api/ingest-local/route-db04e57ba4c845d6.js +0 -1
  132. package/.next/standalone/.next/static/chunks/app/api/quota-probe/route-db04e57ba4c845d6.js +0 -1
  133. package/.next/standalone/.next/static/chunks/app/layout-359f69bd6ea201be.js +0 -1
  134. package/.next/standalone/.next/static/chunks/app/page-72efdd1b71c43e03.js +0 -1
  135. package/.next/standalone/.next/static/chunks/app/projects/[id]/page-85ce81e040071814.js +0 -1
  136. package/.next/standalone/.next/static/chunks/app/projects/page-85ce81e040071814.js +0 -1
  137. package/.next/standalone/.next/static/chunks/app/sessions/[id]/page-9e268d4cde844722.js +0 -1
  138. package/.next/standalone/.next/static/chunks/app/sessions/page-caef08af2717f525.js +0 -1
  139. package/.next/standalone/.next/static/chunks/app/settings/page-e26a7c386e472178.js +0 -1
  140. package/.next/standalone/.next/static/chunks/app/timeline/page-85ce81e040071814.js +0 -1
  141. package/.next/standalone/.next/static/css/568a2d3dc76080d7.css +0 -3
  142. package/.next/standalone/.next/static/x9UWQ4odHhvHvXGtRm2Bl/_buildManifest.js +0 -1
  143. package/.next/standalone/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  144. package/.next/static/chunks/app/api/ingest-local/route-db04e57ba4c845d6.js +0 -1
  145. package/.next/static/chunks/app/api/quota-probe/route-db04e57ba4c845d6.js +0 -1
  146. package/.next/static/chunks/app/layout-359f69bd6ea201be.js +0 -1
  147. package/.next/static/chunks/app/page-72efdd1b71c43e03.js +0 -1
  148. package/.next/static/chunks/app/projects/[id]/page-85ce81e040071814.js +0 -1
  149. package/.next/static/chunks/app/projects/page-85ce81e040071814.js +0 -1
  150. package/.next/static/chunks/app/sessions/[id]/page-9e268d4cde844722.js +0 -1
  151. package/.next/static/chunks/app/sessions/page-caef08af2717f525.js +0 -1
  152. package/.next/static/chunks/app/settings/page-e26a7c386e472178.js +0 -1
  153. package/.next/static/chunks/app/timeline/page-85ce81e040071814.js +0 -1
  154. package/.next/static/css/568a2d3dc76080d7.css +0 -3
  155. package/.next/static/x9UWQ4odHhvHvXGtRm2Bl/_buildManifest.js +0 -1
  156. /package/.next/standalone/.next/static/{x9UWQ4odHhvHvXGtRm2Bl → sgmNXxdNgpIfrW53A0qbg}/_ssgManifest.js +0 -0
  157. /package/.next/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/lib/index.js +0 -0
  158. /package/.next/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/versions.json +0 -0
  159. /package/.next/standalone/node_modules/@img/{sharp-darwin-arm64 → sharp-linux-x64}/LICENSE +0 -0
  160. /package/.next/static/{x9UWQ4odHhvHvXGtRm2Bl → sgmNXxdNgpIfrW53A0qbg}/_ssgManifest.js +0 -0
@@ -1,2 +1,46 @@
1
- (()=>{var a={};a.id=974,a.ids=[974],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")},15872:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,65169,23)),Promise.resolve().then(c.bind(c,39115)),Promise.resolve().then(c.bind(c,51094)),Promise.resolve().then(c.bind(c,47290))},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")},29509:(a,b,c)=>{"use strict";c.d(b,{Ig:()=>h,QT:()=>g,RC:()=>e,du:()=>f});let d=[{key:"7d",label:"Last 7 days",days:7},{key:"30d",label:"Last 30 days",days:30},{key:"90d",label:"Last 90 days",days:90},{key:"all",label:"All time",days:null}];function e(a){let b=(a||"").toLowerCase(),c=d.find(a=>a.key===b);return c?c.key:"30d"}function f(a){return d.find(b=>b.key===a)?.days??30}function g(a){return d.find(b=>b.key===a)?.label??"Last 30 days"}function h(a){return"all"===a?"all time":a}},31421:a=>{"use strict";a.exports=require("node:child_process")},33873:a=>{"use strict";a.exports=require("path")},37229:(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:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,60967)),"/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/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"]}],J=["/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/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}}},39115:(a,b,c)=>{"use strict";c.d(b,{FreshnessIndicator:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call FreshnessIndicator() from the server but FreshnessIndicator 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/FreshnessIndicator.tsx","FreshnessIndicator")},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")},47290:(a,b,c)=>{"use strict";c.d(b,{UsageChartCard:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call UsageChartCard() from the server but UsageChartCard 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/UsageChartCard.tsx","UsageChartCard")},47621:(a,b,c)=>{"use strict";c.d(b,{FreshnessIndicator:()=>g});var d=c(21124),e=c(38301),f=c(42378);function g({lastIngestedAt:a}){let[,b]=(0,e.useState)(0),[c,g]=(0,e.useTransition)(),h=(0,f.useRouter)(),i=0===a?"never scanned":`updated ${function(a){let b=Date.now()-a;return b<1e3?"just now":b<6e4?`${Math.round(b/1e3)}s`:b<36e5?`${Math.round(b/6e4)}m`:`${Math.round(b/36e5)}h`}(a)} ago`;return(0,d.jsxs)("span",{className:"text-[11px] text-ink-mute font-mono tabular flex items-center gap-2",children:[(0,d.jsx)("span",{children:i}),(0,d.jsx)("button",{onClick:function(){g(()=>h.refresh())},disabled:c,className:"text-ink-mute hover:text-primary uppercase tracking-wide disabled:opacity-50",title:"Re-scan local sessions and refresh",children:c?"…":"refresh"})]})}},48161:a=>{"use strict";a.exports=require("node:os")},51094:(a,b,c)=>{"use strict";c.d(b,{RangePicker:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call RangePicker() from the server but RangePicker 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/RangePicker.tsx","RangePicker")},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)})]})]})]})}},60967:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>t,dynamic:()=>r});var d=c(75338),e=c(65169),f=c.n(e),g=c(40753),h=c(73169),i=c(59482),j=c(47290),k=c(92490),l=c(51094),m=c(39115),n=c(10944),o=c(86718),p=c(46145),q=c(29509);let r="force-dynamic";function s(a,b){if(0===b)return{text:a>0?"new":"—",positive:a>0||null};let c=(a-b)/b*100,d=c>=0?"+":"";return{text:`${d}${c.toFixed(0)}% vs prev`,positive:c>=0}}async function t({searchParams:a}){let b=await a,c=(0,q.RC)(b.range),e=(0,q.du)(c),r=(0,q.Ig)(c),t=(0,q.QT)(c).toLowerCase();(0,o.N)();let v=(0,n.K6)(),w=(0,n.Qd)(e),x=(0,n.dS)(e),y=(0,n.jU)(e,8),z=(0,n.Cj)(e),A=(0,n.rz)(),B=(0,n.zR)(8),C=(0,n.fZ)((0,p.EL)(Date.now())),D=(0,n.PL)("llm_provider")||"anthropic",E="anthropic"===D?!!(0,n.PL)("anthropic_api_key"):!!(0,n.PL)("openai_api_key");if(0===v.sessions)return(0,d.jsx)(u,{});let F=null!==e,G=s(w.tokens,w.tokens_prev),H=s(w.sessions,w.sessions_prev),I=s(w.cost,w.cost_prev);return(0,d.jsxs)("div",{children:[(0,d.jsx)(g.z,{title:"Dashboard",subtitle:(0,p.I_)(Date.now()),right:(0,d.jsxs)("div",{className:"flex items-center gap-4",children:[(0,d.jsx)(l.RangePicker,{current:c}),(0,d.jsxs)("div",{className:"text-[11px] text-ink-mute font-mono",children:[v.sessions.toLocaleString()," sessions all-time \xb7 ",(0,p.yj)(v.tokens)," tokens"]}),(0,d.jsx)(m.FreshnessIndicator,{lastIngestedAt:(0,o.L)()})]})}),(0,d.jsxs)("div",{className:"p-7 space-y-7",children:[(0,d.jsxs)("div",{className:"grid grid-cols-4 gap-4",children:[(0,d.jsx)(h.f,{label:`Tokens \xb7 ${r}`,value:(0,p.yj)(w.tokens),accent:"primary",hint:F?G.text:void 0}),(0,d.jsx)(h.f,{label:`Sessions \xb7 ${r}`,value:w.sessions.toString(),hint:F?H.text:void 0}),(0,d.jsx)(h.f,{label:`Projects \xb7 ${r}`,value:w.projects.toString(),hint:"active"}),(0,d.jsx)(h.f,{label:`Est. Cost \xb7 ${r}`,value:(0,p.F0)(w.cost),accent:"secondary",hint:F?I.text:"retail token prices"})]}),(0,d.jsx)(j.UsageChartCard,{data:x,label:t}),(0,d.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,d.jsxs)("div",{className:"card col-span-2",children:[(0,d.jsxs)("div",{className:"card-header flex items-center justify-between",children:[(0,d.jsx)("span",{children:A.length>0?"Today’s Activity":"Recent Activity"}),(0,d.jsx)(f(),{href:"/timeline",className:"normal-case tracking-normal text-ink-mute hover:text-primary text-[11px]",children:"Full timeline →"})]}),(0,d.jsx)("div",{className:"p-3 space-y-1",children:(A.length>0?A:B).slice(0,8).map(a=>(0,d.jsx)(i.E,{session:a},a.id))})]}),(0,d.jsxs)("div",{className:"card h-fit",children:[(0,d.jsx)("div",{className:"card-header",children:"Daily Summary"}),(0,d.jsx)("div",{className:"p-4 text-body-md text-ink-dim leading-relaxed",children:C||function(a){if(0===a.length)return"No AI coding sessions yet today.";let b=new Set(a.map(a=>a.project_name)),c=new Map;for(let b of a)b.category&&c.set(b.category,(c.get(b.category)||0)+1);let d=[...c.entries()].sort((a,b)=>b[1]-a[1]).slice(0,2).map(([a])=>a.toLowerCase()),e=[...new Map(a.map(a=>[a.project_name,a])).values()].sort((a,b)=>(b.message_count||0)-(a.message_count||0)).slice(0,2).map(a=>a.project_name).join(" and "),f=d.length?` Activity skewed toward ${d.join(" and ")}.`:"";return`You ran ${a.length} ${1===a.length?"session":"sessions"} across ${b.size} ${1===b.size?"project":"projects"}${e?`, mostly on ${e}`:""}.${f}`}(A)}),!C&&!E&&(0,d.jsxs)("div",{className:"px-4 pb-4 text-[11px] text-ink-mute",children:["Add an ","openai"===D?"OpenAI":"Anthropic"," key in"," ",(0,d.jsx)(f(),{href:"/settings",className:"text-primary hover:underline",children:"Settings"})," ","to enable AI-written summaries."]})]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,d.jsxs)("div",{className:"card col-span-2",children:[(0,d.jsxs)("div",{className:"card-header flex items-center justify-between",children:[(0,d.jsxs)("span",{children:["Top Projects \xb7 ",t]}),(0,d.jsx)(f(),{href:"/projects",className:"normal-case tracking-normal text-ink-mute hover:text-primary text-[11px]",children:"See all →"})]}),(0,d.jsxs)("div",{className:"p-4 space-y-2.5",children:[y.map(a=>{let b=Math.max(...y.map(a=>a.tokens),1),c=a.tokens/b*100;return(0,d.jsxs)(f(),{href:`/projects/${a.id}`,className:"block group hover:bg-surface-2/40 -mx-2 px-2 py-1.5 rounded",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between text-body-sm mb-1",children:[(0,d.jsx)("span",{className:"text-ink group-hover:text-primary transition-colors",children:a.name}),(0,d.jsxs)("span",{className:"font-mono text-ink-mute tabular text-code-sm",children:[a.sessions," ",1===a.sessions?"session":"sessions"," \xb7 ",(0,p.yj)(a.tokens)," \xb7 ",(0,p.F0)(a.cost)]})]}),(0,d.jsx)("div",{className:"h-1 bg-surface-2 rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-primary",style:{width:`${c}%`}})})]},a.id)}),0===y.length&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute text-center py-4",children:"No project activity in the last 30 days."})]})]}),(0,d.jsxs)("div",{className:"card h-fit",children:[(0,d.jsxs)("div",{className:"card-header",children:["Work Type \xb7 ",r]}),(0,d.jsxs)("div",{className:"p-4 space-y-2",children:[z.map(a=>{let b=Math.max(...z.map(a=>a.sessions),1),c=a.sessions/b*100;return(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between text-body-sm",children:[(0,d.jsx)(k.i,{category:a.category}),(0,d.jsx)("span",{className:"font-mono tabular text-ink-mute text-code-sm",children:a.sessions})]}),(0,d.jsx)("div",{className:"h-1 bg-surface-2 rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-primary/60",style:{width:`${c}%`}})})]},a.category)}),0===z.length&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute text-center py-4",children:"No data yet."})]})]})]})]})]})}function u(){return(0,d.jsxs)("div",{children:[(0,d.jsx)(g.z,{title:"Dashboard",subtitle:"No AI coding sessions found yet"}),(0,d.jsx)("div",{className:"p-7",children:(0,d.jsxs)("div",{className:"card p-10 text-center",children:[(0,d.jsx)("div",{className:"text-headline-md text-ink mb-2",children:"No sessions to show"}),(0,d.jsxs)("div",{className:"text-body-md text-ink-mute mb-4",children:["AgentGraphed looks in ",(0,d.jsx)("span",{className:"font-mono text-ink",children:"~/.claude/projects"})," and"," ",(0,d.jsx)("span",{className:"font-mono text-ink",children:"~/.codex/sessions"}),"."]}),(0,d.jsx)("div",{className:"text-body-sm text-ink-mute",children:"Run a session with Claude Code or Codex CLI and come back. AgentGraphed picks them up automatically."})]})})]})}},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")},70285:(a,b,c)=>{"use strict";c.d(b,{UsageChartCard:()=>o});var d=c(21124),e=c(38301),f=c(6077),g=c(12868),h=c(57495),i=c(59296),j=c(16803),k=c(11767),l=c(57188),m=c(92155);function n({data:a,metric:b="tokens",scale:c="lin"}){let e=a.map(a=>{let d=a[b];return{...a,label:a.day.slice(5),value:"log"===c&&d<=0?1:d,raw:d}}),n="cost"===b?"#00ffab":"#00f5ff";return(0,d.jsx)("div",{className:"h-64 -mx-1",children:(0,d.jsx)(f.u,{width:"100%",height:"100%",children:(0,d.jsxs)(g.Q,{data:e,margin:{top:8,right:8,bottom:0,left:-8},children:[(0,d.jsx)("defs",{children:(0,d.jsxs)("linearGradient",{id:`grad-${b}`,x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,d.jsx)("stop",{offset:"0%",stopColor:n,stopOpacity:.35}),(0,d.jsx)("stop",{offset:"100%",stopColor:n,stopOpacity:0})]})}),(0,d.jsx)(h.d,{stroke:"#262a31",strokeDasharray:"2 4",vertical:!1}),(0,d.jsx)(i.W,{dataKey:"label",tick:{fill:"#849495",fontSize:11,fontFamily:"JetBrains Mono"},axisLine:{stroke:"#262a31"},tickLine:!1,minTickGap:48}),(0,d.jsx)(j.h,{scale:"log"===c?"log":"auto",domain:"log"===c?[1,"auto"]:["auto","auto"],allowDataOverflow:!0,tick:{fill:"#849495",fontSize:11,fontFamily:"JetBrains Mono"},axisLine:!1,tickLine:!1,tickFormatter:a=>"cost"===b?`$${Math.round(a)}`:(0,m.yj)(a)}),(0,d.jsx)(k.m,{cursor:{stroke:n,strokeOpacity:.3},contentStyle:{background:"#181c22",border:`1px solid ${n}`,borderRadius:6,fontSize:12,color:"#dfe2eb"},formatter:(a,c,d)=>{let e=d?.payload?.raw??0;return"tokens"===b?[(0,m.yj)(e),"tokens"]:"sessions"===b?[e.toString(),"sessions"]:[`$${e.toFixed(2)}`,"cost"]},labelFormatter:a=>`Day ${a}`}),(0,d.jsx)(l.G,{type:"monotone",dataKey:"value",stroke:n,strokeWidth:2,fill:`url(#grad-${b})`,isAnimationActive:!1})]})})})}function o({data:a,label:b="last 30 days"}){let[c,f]=(0,e.useState)("tokens"),g=(0,e.useMemo)(()=>!function(a,b){let c=a.map(a=>a[b]).filter(a=>a>0);if(c.length<5)return!1;let d=[...c].sort((a,b)=>a-b);return d[d.length-1]/Math.max(d[Math.floor(d.length/2)],1)>10}(a,c)?"lin":"log",[a,c]),[h,i]=(0,e.useState)(null),j=h??g;return(0,d.jsxs)("div",{className:"card",children:[(0,d.jsxs)("div",{className:"card-header flex items-center justify-between",children:[(0,d.jsxs)("span",{children:["Usage — ",b]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 normal-case tracking-normal",children:[(0,d.jsx)("div",{className:"flex items-center gap-0.5",children:[{id:"tokens",label:"Tokens"},{id:"sessions",label:"Sessions"},{id:"cost",label:"Est. Cost"}].map(a=>(0,d.jsx)("button",{onClick:()=>f(a.id),className:`px-2 py-0.5 text-[11px] rounded transition-colors font-mono ${c===a.id?"bg-primary/15 text-primary":"text-ink-mute hover:text-ink-dim"}`,children:a.label},a.id))}),(0,d.jsx)("div",{className:"w-px h-4 bg-surface-3"}),(0,d.jsx)("div",{className:"flex items-center gap-0.5",children:["lin","log"].map(a=>(0,d.jsxs)("button",{onClick:()=>i(a),className:`px-1.5 py-0.5 text-[10px] rounded transition-colors font-mono uppercase relative ${j===a?"bg-secondary/15 text-secondary":"text-ink-mute hover:text-ink-dim"}`,title:"log"===a?"Logarithmic scale — better when one day dwarfs the rest":"Linear scale",children:[a,null===h&&g===a&&(0,d.jsx)("span",{className:"absolute -top-0.5 -right-0.5 w-1.5 h-1.5 rounded-full bg-secondary",title:"auto-selected based on data range"})]},a))})]})]}),(0,d.jsx)("div",{className:"p-4",children:(0,d.jsx)(n,{data:a,metric:c,scale:j})})]})}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73169:(a,b,c)=>{"use strict";c.d(b,{f:()=>e});var d=c(75338);function e({label:a,value:b,hint:c,accent:e}){return(0,d.jsxs)("div",{className:"card p-4",children:[(0,d.jsx)("div",{className:"metric-label",children:a}),(0,d.jsx)("div",{className:`metric-value tabular mt-1 ${"primary"===e?"text-primary":"secondary"===e?"text-secondary":"text-ink"}`,children:b}),c&&(0,d.jsx)("div",{className:"text-[11px] text-ink-mute mt-1",children:c})]})}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79424:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,3991,23)),Promise.resolve().then(c.bind(c,47621)),Promise.resolve().then(c.bind(c,94709)),Promise.resolve().then(c.bind(c,70285))},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")},92155:(a,b,c)=>{"use strict";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(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`}c.d(b,{F0:()=>e,c5:()=>f,yj:()=>d})},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})}},94709:(a,b,c)=>{"use strict";c.d(b,{RangePicker:()=>h});var d=c(21124),e=c(42378),f=c(38301);let g=[{key:"7d",label:"Last 7 days",days:7},{key:"30d",label:"Last 30 days",days:30},{key:"90d",label:"Last 90 days",days:90},{key:"all",label:"All time",days:null}];function h({current:a}){let b=(0,e.useRouter)(),c=(0,e.usePathname)(),h=(0,e.useSearchParams)(),[i,j]=(0,f.useTransition)();return(0,d.jsx)("div",{className:`flex items-center gap-0.5 normal-case tracking-normal transition-opacity ${i?"opacity-50":""}`,children:g.map(e=>(0,d.jsx)("button",{onClick:()=>(a=>{let d=new URLSearchParams(h.toString());"30d"===a?d.delete("range"):d.set("range",a);let e=d.toString();j(()=>{b.push(e?`${c}?${e}`:c)})})(e.key),className:`px-2 py-0.5 text-[11px] rounded transition-colors font-mono ${a===e.key?"bg-primary/15 text-primary":"text-ink-mute hover:text-ink-dim"}`,children:"all"===e.key?"All":e.key},e.key))})}}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[873,609,564,634,944,660,27],()=>b(b.s=37229));module.exports=c})();
1
+ (()=>{var a={};a.id=974,a.ids=[974],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3276:(a,b,c)=>{"use strict";c.d(b,{ProjectFilter:()=>h});var d=c(21124),e=c(42378),f=c(38301),g=c(23312);function h({projects:a,current:b}){let c=(0,e.useRouter)(),h=(0,e.usePathname)(),i=(0,e.useSearchParams)(),[j,k]=(0,f.useState)(!1),[l,m]=(0,f.useTransition)(),[n,o]=(0,f.useState)(!1),[p,q]=(0,f.useState)(null),r=(0,f.useRef)(null),s=a=>{let b=new URLSearchParams(i.toString());a?b.set("project",a):b.delete("project");let d=b.toString();k(!1),m(()=>c.push(d?`${h}?${d}`:h,{scroll:!1}))},t=b?a.find(a=>a.id===b)?.name??"project":null;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{ref:r,onClick:()=>{if(!j&&r.current){let a=r.current.getBoundingClientRect();q({top:a.bottom+6,left:a.left,width:Math.max(a.width,220)})}k(a=>!a)},className:`text-[11px] font-mono px-2 py-0.5 rounded transition-colors flex items-center gap-1.5 ${b?"bg-primary/15 text-primary":"text-ink-mute hover:text-ink-dim hover:bg-surface-2"} ${l?"opacity-60":""}`,title:"Filter by project",children:[(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})}),(0,d.jsx)("span",{className:"truncate max-w-[140px]",children:t??"All projects"}),(0,d.jsx)("svg",{width:"8",height:"8",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",className:`transition-transform ${j?"rotate-180":""}`,children:(0,d.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),n&&j&&p&&(0,g.createPortal)((0,d.jsxs)("div",{id:"project-filter-pop",style:{position:"fixed",top:p.top,left:p.left,minWidth:p.width,backgroundColor:"#1c2026",zIndex:100,isolation:"isolate"},className:"border border-surface-3 rounded-md shadow-xl overflow-hidden text-[12px] font-mono max-h-[60vh] overflow-y-auto",children:[(0,d.jsx)("button",{onClick:()=>s(null),className:`w-full text-left px-3 py-2 transition-colors hover:bg-surface-2 ${!b?"text-primary bg-primary/10":"text-ink-dim"}`,children:"All projects"}),(0,d.jsx)("div",{className:"h-px bg-surface-3"}),a.map(a=>(0,d.jsx)("button",{onClick:()=>s(a.id),className:`w-full text-left px-3 py-2 transition-colors hover:bg-surface-2 truncate ${b===a.id?"text-primary bg-primary/10":"text-ink-dim"}`,title:a.name,children:a.name},a.id)),0===a.length&&(0,d.jsx)("div",{className:"px-3 py-2 text-ink-mute",children:"No projects yet."})]}),document.body)]})}},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")},11735:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"4006197c7f39df910cea8635c5c22d0f12c7c42f35":()=>d.R,"4086085619f2eb1832f13de02c11c03744ae709f78":()=>d.v});var d=c(88035)},11997:a=>{"use strict";a.exports=require("punycode")},15166:(a,b,c)=>{"use strict";c.d(b,{ProjectFilter:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ProjectFilter() from the server but ProjectFilter 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.")},"/home/runner/work/agentgraphed/agentgraphed/src/components/ProjectFilter.tsx","ProjectFilter")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},22412:(a,b,c)=>{"use strict";c.d(b,{ShareButton:()=>f});var d=c(21124),e=c(38301);function f({imageUrl:a,className:b}){let[c,f]=(0,e.useState)("idle"),[j,k]=(0,e.useState)(null),l=async()=>{f("busy"),k(null);try{let b=await fetch(a);if(!b.ok)throw Error(`HTTP ${b.status}`);let c=await b.blob();if("undefined"==typeof ClipboardItem||!navigator.clipboard?.write)throw Error("clipboard image unsupported");let d=new ClipboardItem({"image/png":c});await navigator.clipboard.write([d]),f("done"),setTimeout(()=>f("idle"),2400)}catch(b){try{let b=await fetch(a),c=await b.blob(),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,e.download="agentgraphed-stats.png",document.body.appendChild(e),e.click(),document.body.removeChild(e),setTimeout(()=>URL.revokeObjectURL(d),5e3),k("Saved to Downloads (clipboard image unsupported)"),f("err"),setTimeout(()=>f("idle"),4e3)}catch(a){k(a.message||b.message),f("err"),setTimeout(()=>f("idle"),3e3)}}};return(0,d.jsx)("button",{onClick:l,disabled:"busy"===c,"aria-label":"Share",title:"busy"===c?"Generating image…":"done"===c?"Image copied to clipboard":"err"===c?j??"Try again":"Copy share image to clipboard",className:`btn-icon ${"done"===c?"text-secondary":""} ${b??""}`,children:"busy"===c?(0,d.jsx)(i,{}):"done"===c?(0,d.jsx)(h,{}):(0,d.jsx)(g,{})})}function g(){return(0,d.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"}),(0,d.jsx)("polyline",{points:"16 6 12 2 8 6"}),(0,d.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"15"})]})}function h(){return(0,d.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})})}function i(){return(0,d.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"animate-spin",children:(0,d.jsx)("path",{d:"M21 12a9 9 0 1 1-6.219-8.56"})})}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28342:(a,b,c)=>{"use strict";c.d(b,{ModelFilter:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ModelFilter() from the server but ModelFilter 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.")},"/home/runner/work/agentgraphed/agentgraphed/src/components/ModelFilter.tsx","ModelFilter")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29509:(a,b,c)=>{"use strict";c.d(b,{Ig:()=>h,QT:()=>g,RC:()=>e,du:()=>f});let d=[{key:"7d",label:"Last 7 days",days:7},{key:"30d",label:"Last 30 days",days:30},{key:"90d",label:"Last 90 days",days:90},{key:"all",label:"All time",days:null}];function e(a){let b=(a||"").toLowerCase(),c=d.find(a=>a.key===b);return c?c.key:"30d"}function f(a){let b=d.find(b=>b.key===a);return b?b.days:30}function g(a){return d.find(b=>b.key===a)?.label??"Last 30 days"}function h(a){return"all"===a?"all time":a}},30942:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,3991,23)),Promise.resolve().then(c.bind(c,70365)),Promise.resolve().then(c.bind(c,47621)),Promise.resolve().then(c.bind(c,86216)),Promise.resolve().then(c.bind(c,3276)),Promise.resolve().then(c.bind(c,94709)),Promise.resolve().then(c.bind(c,22412)),Promise.resolve().then(c.bind(c,70285))},31421:a=>{"use strict";a.exports=require("node:child_process")},33873:a=>{"use strict";a.exports=require("path")},35530:(a,b,c)=>{"use strict";c.d(b,{ShareButton:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ShareButton() from the server but ShareButton 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.")},"/home/runner/work/agentgraphed/agentgraphed/src/components/ShareButton.tsx","ShareButton")},35670:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,65169,23)),Promise.resolve().then(c.bind(c,70807)),Promise.resolve().then(c.bind(c,39115)),Promise.resolve().then(c.bind(c,28342)),Promise.resolve().then(c.bind(c,15166)),Promise.resolve().then(c.bind(c,51094)),Promise.resolve().then(c.bind(c,35530)),Promise.resolve().then(c.bind(c,47290))},37830:a=>{"use strict";a.exports=require("node:stream/web")},39115:(a,b,c)=>{"use strict";c.d(b,{FreshnessIndicator:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call FreshnessIndicator() from the server but FreshnessIndicator 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.")},"/home/runner/work/agentgraphed/agentgraphed/src/components/FreshnessIndicator.tsx","FreshnessIndicator")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43257:(a,b,c)=>{"use strict";c.d(b,{v:()=>g});var d=c(75338),e=c(46145),f=c(76846);function g({rows:a,label:b}){let c=new Map;for(let b of a){let a=(0,f.gW)(b.model),d=c.get(a);d?(d.sessions+=b.sessions,d.tokens+=b.tokens,d.cost+=b.cost):c.set(a,{sessions:b.sessions,tokens:b.tokens,cost:b.cost})}let g=[...c.entries()].map(([a,b])=>({family:a,...b})).sort((a,b)=>b.cost-a.cost),h=Math.max(...g.map(a=>a.cost),1e-6);return(0,d.jsxs)("div",{className:"card",children:[(0,d.jsxs)("div",{className:"card-header flex items-center justify-between",children:[(0,d.jsxs)("span",{children:["By Model \xb7 ",b]}),(0,d.jsx)("span",{className:"normal-case tracking-normal font-normal text-ink-mute text-[11px]",children:"cost"})]}),(0,d.jsxs)("div",{className:"p-4 space-y-2.5",children:[g.map(a=>{let b=a.cost/h*100;return(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between text-body-sm",children:[(0,d.jsx)("span",{className:"text-ink truncate pr-2",children:a.family}),(0,d.jsxs)("span",{className:"font-mono text-ink-mute tabular text-code-sm whitespace-nowrap",children:[a.sessions," ",1===a.sessions?"session":"sessions"," \xb7 ",(0,e.yj)(a.tokens)," \xb7 ",(0,d.jsx)("span",{className:"text-secondary",children:(0,e.F0)(a.cost)})]})]}),(0,d.jsx)("div",{className:"h-1 bg-surface-2 rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-secondary/70",style:{width:`${b}%`}})})]},a.family)}),0===g.length&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute text-center py-4",children:"No model usage in this range."})]})]})}},47290:(a,b,c)=>{"use strict";c.d(b,{UsageChartCard:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call UsageChartCard() from the server but UsageChartCard 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.")},"/home/runner/work/agentgraphed/agentgraphed/src/components/UsageChartCard.tsx","UsageChartCard")},47621:(a,b,c)=>{"use strict";c.d(b,{FreshnessIndicator:()=>g});var d=c(21124),e=c(38301),f=c(42378);function g({lastIngestedAt:a}){let[,b]=(0,e.useState)(0),[c,g]=(0,e.useState)(!1),[j,k]=(0,e.useTransition)(),l=(0,f.useRouter)(),m=0===a?"never scanned":`updated ${function(a){let b=Date.now()-a;return b<1e3?"just now":b<6e4?`${i(Math.round(b/1e3))}s`:b<36e5?`${i(Math.round(b/6e4))}m`:`${i(Math.round(b/36e5))}h`}(a)} ago`,n=0===a,o=c||j;return(0,d.jsxs)("button",{type:"button",onClick:function(){k(()=>l.refresh())},onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),onFocus:()=>g(!0),onBlur:()=>g(!1),disabled:n||j,title:"Re-scan local sessions and refresh",style:{width:"128px"},className:"text-[11px] font-mono tabular px-2 py-0.5 rounded transition-colors text-ink-mute hover:text-primary hover:bg-surface-2 focus-visible:text-primary focus-visible:bg-surface-2 outline-none disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-ink-mute disabled:cursor-not-allowed grid items-center",children:[(0,d.jsx)("span",{className:"col-start-1 row-start-1 transition-opacity flex items-center justify-center gap-1.5 whitespace-nowrap",style:{opacity:+!o},children:m}),(0,d.jsxs)("span",{"aria-hidden":!0,className:"col-start-1 row-start-1 transition-opacity flex items-center justify-center gap-1.5 whitespace-nowrap",style:{opacity:+!!o},children:[(0,d.jsx)(h,{spinning:j}),(0,d.jsx)("span",{children:"refresh"})]})]})}function h({spinning:a}){return(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:a?"animate-spin":"",children:[(0,d.jsx)("path",{d:"M3 12a9 9 0 0 1 15.5-6.4L21 8"}),(0,d.jsx)("path",{d:"M21 3v5h-5"}),(0,d.jsx)("path",{d:"M21 12a9 9 0 0 1-15.5 6.4L3 16"}),(0,d.jsx)("path",{d:"M3 21v-5h5"})]})}function i(a){return a<10?`0${a}`:String(a)}},48161:a=>{"use strict";a.exports=require("node:os")},51094:(a,b,c)=>{"use strict";c.d(b,{RangePicker:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call RangePicker() from the server but RangePicker 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.")},"/home/runner/work/agentgraphed/agentgraphed/src/components/RangePicker.tsx","RangePicker")},54392:(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:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,60967)),"/home/runner/work/agentgraphed/agentgraphed/src/app/page.tsx"]}]},{layout:[()=>Promise.resolve().then(c.bind(c,51472)),"/home/runner/work/agentgraphed/agentgraphed/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"]}],J=["/home/runner/work/agentgraphed/agentgraphed/src/app/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/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}}},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},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.xU)(a),l=a.input_tokens+a.output_tokens+a.cache_read_tokens+a.cache_write_tokens,m=(0,g.LQ)(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)})]})]})]})}},60967:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>z,dynamic:()=>x});var d=c(75338),e=c(65169),f=c.n(e),g=c(40753),h=c(73169),i=c(59482),j=c(47290),k=c(92490),l=c(51094),m=c(39115),n=c(35530),o=c(15166),p=c(28342),q=c(43257),r=c(70807),s=c(10944),t=c(86718),u=c(15988),v=c(46145),w=c(29509);let x="force-dynamic";function y(a,b){if(0===b)return{text:a>0?"new":"—",positive:a>0||null};let c=(a-b)/b*100,d=c>=0?"+":"";return{text:`${d}${c.toFixed(0)}% vs prev`,positive:c>=0}}async function z({searchParams:a}){var b,c;let e=await a,x=(0,w.RC)(e.range),z=(0,w.du)(x),B=(0,w.Ig)(x),C=(0,w.QT)(x).toLowerCase(),D="sessions"===(b=e.metric)||"cost"===b?b:"tokens",E="lin"===(c=e.scale)||"log"===c?c:null,F=(0,s.JQ)(),G=e.project&&F.some(a=>a.id===e.project)?e.project:null,H=(0,s.KM)(),I=e.model&&H.some(a=>a.family===e.model)?e.model:null;(0,t.N)();let J=(0,s.K6)(),K=(0,s.Qd)(z,G,I),L=(0,s.dS)(z,G,I),M=(0,s.jU)(z,8,I),N=(0,s.Cj)(z,G,I),O=(0,s.rz)(G,I),P=(0,s.zR)(8,G,I),Q=(0,s.fZ)((0,v.EL)(Date.now())),R=I?[]:(0,s.Pw)(z,G),S=(0,s.PL)("llm_provider")||"anthropic",T="anthropic"===S?!!(0,s.PL)("anthropic_api_key"):!!(0,s.PL)("openai_api_key"),U="off"===(0,s.PL)("auto_classify")&&T?(0,s.i5)():0,V=U>0?await (0,u.Ev)(U).catch(()=>null):null;if(0===J.sessions)return(0,d.jsx)(A,{});let W=null!==z,X=y(K.tokens,K.tokens_prev),Y=y(K.sessions,K.sessions_prev),Z=y(K.cost,K.cost_prev);return(0,d.jsxs)("div",{children:[(0,d.jsx)(g.z,{title:"Dashboard",subtitle:(0,v.I_)(Date.now()),titleAdornment:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(o.ProjectFilter,{projects:F.map(a=>({id:a.id,name:a.name})),current:G}),(0,d.jsx)(p.ModelFilter,{families:H,current:I})]}),right:(0,d.jsxs)("div",{className:"flex items-center gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)(l.RangePicker,{current:x}),(0,d.jsx)("span",{className:"w-px h-3.5 bg-surface-3"}),(0,d.jsx)(m.FreshnessIndicator,{lastIngestedAt:(0,t.L)()}),U>0&&V&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"w-px h-3.5 bg-surface-3"}),(0,d.jsx)(r.ClassifyChip,{count:U,estimatedUsd:V.totalUsd})]})]}),(0,d.jsx)(n.ShareButton,{imageUrl:`/api/share/dashboard?days=${null===z?"all":z}&metric=${D}${E?`&scale=${E}`:""}${G?`&project=${G}`:""}${I?`&model=${encodeURIComponent(I)}`:""}`})]})}),(0,d.jsxs)("div",{className:"p-7 space-y-7",children:[(0,d.jsxs)("div",{className:"grid grid-cols-4 gap-4",children:[(0,d.jsx)(h.f,{label:`Tokens \xb7 ${B}`,value:(0,v.yj)(K.tokens),accent:"primary",hint:W?X.text:void 0}),(0,d.jsx)(h.f,{label:`Sessions \xb7 ${B}`,value:K.sessions.toString(),hint:W?Y.text:void 0}),(0,d.jsx)(h.f,{label:`Projects \xb7 ${B}`,value:K.projects.toString(),hint:"active"}),(0,d.jsx)(h.f,{label:`Est. Cost \xb7 ${B}`,value:(0,v.F0)(K.cost),accent:"secondary",hint:W?Z.text:"retail token prices"})]}),(0,d.jsx)(j.UsageChartCard,{data:L,label:C,metric:D,scale:E}),(0,d.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,d.jsxs)("div",{className:"card col-span-2",children:[(0,d.jsxs)("div",{className:"card-header flex items-center justify-between",children:[(0,d.jsx)("span",{children:O.length>0?"Today’s Activity":"Recent Activity"}),(0,d.jsx)(f(),{href:"/timeline",className:"normal-case tracking-normal text-ink-mute hover:text-primary text-[11px]",children:"Full timeline →"})]}),(0,d.jsx)("div",{className:"p-3 space-y-1",children:(O.length>0?O:P).slice(0,8).map(a=>(0,d.jsx)(i.E,{session:a},a.id))})]}),(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"card h-fit",children:[(0,d.jsx)("div",{className:"card-header",children:"Daily Summary"}),(0,d.jsx)("div",{className:"p-4 text-body-md text-ink-dim leading-relaxed",children:Q||function(a){if(0===a.length)return"No AI coding sessions yet today.";let b=new Set(a.map(a=>a.project_name)),c=new Map;for(let b of a)b.category&&c.set(b.category,(c.get(b.category)||0)+1);let d=[...c.entries()].sort((a,b)=>b[1]-a[1]).slice(0,2).map(([a])=>a.toLowerCase()),e=[...new Map(a.map(a=>[a.project_name,a])).values()].sort((a,b)=>(b.message_count||0)-(a.message_count||0)).slice(0,2).map(a=>a.project_name).join(" and "),f=d.length?` Activity skewed toward ${d.join(" and ")}.`:"";return`You ran ${a.length} ${1===a.length?"session":"sessions"} across ${b.size} ${1===b.size?"project":"projects"}${e?`, mostly on ${e}`:""}.${f}`}(O)}),!Q&&!T&&(0,d.jsxs)("div",{className:"px-4 pb-4 text-[11px] text-ink-mute",children:["Add an ","openai"===S?"OpenAI":"Anthropic"," key in"," ",(0,d.jsx)(f(),{href:"/settings",className:"text-primary hover:underline",children:"Settings"})," ","to enable AI-written summaries."]})]}),!I&&R.length>0&&(0,d.jsx)(q.v,{rows:R,label:C})]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,d.jsxs)("div",{className:"card col-span-2",children:[(0,d.jsxs)("div",{className:"card-header flex items-center justify-between",children:[(0,d.jsxs)("span",{children:["Top Projects \xb7 ",C]}),(0,d.jsx)(f(),{href:"/projects",className:"normal-case tracking-normal text-ink-mute hover:text-primary text-[11px]",children:"See all →"})]}),(0,d.jsxs)("div",{className:"p-4 space-y-2.5",children:[M.map(a=>{let b=Math.max(...M.map(a=>a.tokens),1),c=a.tokens/b*100;return(0,d.jsxs)(f(),{href:`/projects/${a.id}`,className:"block group hover:bg-surface-2/40 -mx-2 px-2 py-1.5 rounded",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between text-body-sm mb-1",children:[(0,d.jsx)("span",{className:"text-ink group-hover:text-primary transition-colors",children:a.name}),(0,d.jsxs)("span",{className:"font-mono text-ink-mute tabular text-code-sm",children:[a.sessions," ",1===a.sessions?"session":"sessions"," \xb7 ",(0,v.yj)(a.tokens)," \xb7 ",(0,v.F0)(a.cost)]})]}),(0,d.jsx)("div",{className:"h-1 bg-surface-2 rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-primary",style:{width:`${c}%`}})})]},a.id)}),0===M.length&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute text-center py-4",children:"No project activity in the last 30 days."})]})]}),(0,d.jsxs)("div",{className:"card h-fit",children:[(0,d.jsxs)("div",{className:"card-header",children:["Work Type \xb7 ",B]}),(0,d.jsxs)("div",{className:"p-4 space-y-2",children:[N.map(a=>{let b=Math.max(...N.map(a=>a.sessions),1),c=a.sessions/b*100;return(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between text-body-sm",children:[(0,d.jsx)(k.i,{category:a.category}),(0,d.jsx)("span",{className:"font-mono tabular text-ink-mute text-code-sm",children:a.sessions})]}),(0,d.jsx)("div",{className:"h-1 bg-surface-2 rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-primary/60",style:{width:`${c}%`}})})]},a.category)}),0===N.length&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute text-center py-4",children:"No data yet."})]})]})]})]})]})}function A(){return(0,d.jsxs)("div",{children:[(0,d.jsx)(g.z,{title:"Dashboard",subtitle:"No AI coding sessions found yet"}),(0,d.jsx)("div",{className:"p-7",children:(0,d.jsxs)("div",{className:"card p-10 text-center",children:[(0,d.jsx)("div",{className:"text-headline-md text-ink mb-2",children:"No sessions to show"}),(0,d.jsxs)("div",{className:"text-body-md text-ink-mute mb-4",children:["AgentGraphed looks in ",(0,d.jsx)("span",{className:"font-mono text-ink",children:"~/.claude/projects"})," and"," ",(0,d.jsx)("span",{className:"font-mono text-ink",children:"~/.codex/sessions"}),"."]}),(0,d.jsx)("div",{className:"text-body-sm text-ink-mute",children:"Run a session with Claude Code or Codex CLI and come back. AgentGraphed picks them up automatically."})]})})]})}},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("/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/client/app-dir/link.js")},70285:(a,b,c)=>{"use strict";c.d(b,{UsageChartCard:()=>p});var d=c(21124),e=c(38301),f=c(42378),g=c(6077),h=c(12868),i=c(57495),j=c(59296),k=c(16803),l=c(11767),m=c(57188),n=c(92155);function o({data:a,metric:b="tokens",scale:c="lin"}){let e=a.map(a=>{let d=a[b];return{...a,label:a.day.slice(5),value:"log"===c&&d<=0?1:d,raw:d}}),f="cost"===b?"#00ffab":"#00f5ff";return(0,d.jsx)("div",{className:"h-64 -mx-1",children:(0,d.jsx)(g.u,{width:"100%",height:"100%",children:(0,d.jsxs)(h.Q,{data:e,margin:{top:8,right:8,bottom:0,left:-8},children:[(0,d.jsx)("defs",{children:(0,d.jsxs)("linearGradient",{id:`grad-${b}`,x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,d.jsx)("stop",{offset:"0%",stopColor:f,stopOpacity:.35}),(0,d.jsx)("stop",{offset:"100%",stopColor:f,stopOpacity:0})]})}),(0,d.jsx)(i.d,{stroke:"#262a31",strokeDasharray:"2 4",vertical:!1}),(0,d.jsx)(j.W,{dataKey:"label",tick:{fill:"#849495",fontSize:11,fontFamily:"JetBrains Mono"},axisLine:{stroke:"#262a31"},tickLine:!1,minTickGap:48}),(0,d.jsx)(k.h,{scale:"log"===c?"log":"auto",domain:"log"===c?[1,"auto"]:["auto","auto"],allowDataOverflow:!0,tick:{fill:"#849495",fontSize:11,fontFamily:"JetBrains Mono"},axisLine:!1,tickLine:!1,tickFormatter:a=>"cost"===b?`$${Math.round(a)}`:(0,n.yj)(a)}),(0,d.jsx)(l.m,{cursor:{stroke:f,strokeOpacity:.3},contentStyle:{background:"#181c22",border:`1px solid ${f}`,borderRadius:6,fontSize:12,color:"#dfe2eb"},formatter:(a,c,d)=>{let e=d?.payload?.raw??0;return"tokens"===b?[(0,n.yj)(e),"tokens"]:"sessions"===b?[e.toString(),"sessions"]:[`$${e.toFixed(2)}`,"cost"]},labelFormatter:a=>`Day ${a}`}),(0,d.jsx)(m.G,{type:"monotone",dataKey:"value",stroke:f,strokeWidth:2,fill:`url(#grad-${b})`,isAnimationActive:!1})]})})})}function p({data:a,label:b="last 30 days",metric:c,scale:g}){let h=(0,f.useRouter)(),i=(0,f.usePathname)(),j=(0,f.useSearchParams)(),k=(0,e.useMemo)(()=>!function(a,b){let c=a.map(a=>a[b]).filter(a=>a>0);if(c.length<5)return!1;let d=[...c].sort((a,b)=>a-b);return d[d.length-1]/Math.max(d[Math.max(0,Math.floor(.1*c.length)-1)],1)>50}(a,c)?"lin":"log",[a,c]),l=g??k,m=(a,b,c)=>{let d=new URLSearchParams(j.toString());null===b||b===c?d.delete(a):d.set(a,b);let e=d.toString();h.push(e?`${i}?${e}`:i,{scroll:!1})};return(0,d.jsxs)("div",{className:"card",children:[(0,d.jsxs)("div",{className:"card-header flex items-center justify-between",children:[(0,d.jsxs)("span",{children:["Usage — ",b]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 normal-case tracking-normal",children:[(0,d.jsx)("div",{className:"flex items-center gap-0.5",children:[{id:"tokens",label:"Tokens"},{id:"sessions",label:"Sessions"},{id:"cost",label:"Est. Cost"}].map(a=>(0,d.jsx)("button",{onClick:()=>m("metric",a.id,"tokens"),className:`px-2 py-0.5 text-[11px] rounded transition-colors font-mono ${c===a.id?"bg-primary/15 text-primary":"text-ink-mute hover:text-ink-dim"}`,children:a.label},a.id))}),(0,d.jsx)("div",{className:"w-px h-4 bg-surface-3"}),(0,d.jsx)("div",{className:"flex items-center gap-0.5",children:["lin","log"].map(a=>(0,d.jsxs)("button",{onClick:()=>m("scale",a,k),className:`px-1.5 py-0.5 text-[10px] rounded transition-colors font-mono uppercase relative ${l===a?"bg-secondary/15 text-secondary":"text-ink-mute hover:text-ink-dim"}`,title:"log"===a?"Logarithmic scale — better when one day dwarfs the rest":"Linear scale",children:[a,null===g&&k===a&&(0,d.jsx)("span",{className:"absolute -top-0.5 -right-0.5 w-1.5 h-1.5 rounded-full bg-secondary",title:"auto-selected based on data range"})]},a))})]})]}),(0,d.jsx)("div",{className:"p-4",children:(0,d.jsx)(o,{data:a,metric:c,scale:l})})]})}},70365:(a,b,c)=>{"use strict";c.d(b,{ClassifyChip:()=>h});var d=c(21124),e=c(38301),f=c(42378),g=c(91243);function h({count:a,estimatedUsd:b}){let c=(0,f.useRouter)(),[h,i]=(0,e.useState)("idle"),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useTransition)(),p=()=>{if("idle"===h)return void i("confirm");"confirm"===h&&o(async()=>{let a=await (0,g.v)("uncategorized");if(!a.ok){k(a.error),i("err"),setTimeout(()=>i("idle"),4e3);return}m({classified:a.classified,costUsd:a.costUsd}),i("done"),c.refresh(),setTimeout(()=>i("idle"),3e3)})};return"done"===h&&l?(0,d.jsxs)("div",{className:"text-[11px] font-mono px-2 py-0.5 rounded bg-secondary/10 text-secondary border border-secondary/30",children:["✓ classified ",l.classified," \xb7 $",l.costUsd.toFixed(4)]}):"err"===h?(0,d.jsx)("div",{className:"text-[11px] font-mono px-2 py-0.5 rounded bg-error/10 text-error border border-error/30",title:j??"",children:"✗ failed"}):"confirm"===h?(0,d.jsx)("button",{onClick:p,disabled:n,className:"text-[11px] font-mono px-2 py-0.5 rounded bg-primary/15 text-primary border border-primary/40 hover:bg-primary/25 transition-colors disabled:opacity-60",title:"Click again to confirm — sends prompts to your configured provider",children:n?"… classifying":`confirm \xb7 run for ~$${b.toFixed(4)}`}):(0,d.jsxs)("button",{onClick:p,className:"text-[11px] font-mono px-2 py-0.5 rounded text-ink-mute hover:text-primary hover:bg-surface-2 transition-colors",title:"Send their first prompts to your configured LLM to assign a title + category. ~$0.0001 per session.",children:[a," unclassified \xb7 classify"]})}},70807:(a,b,c)=>{"use strict";c.d(b,{ClassifyChip:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ClassifyChip() from the server but ClassifyChip 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.")},"/home/runner/work/agentgraphed/agentgraphed/src/components/ClassifyChip.tsx","ClassifyChip")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73169:(a,b,c)=>{"use strict";c.d(b,{f:()=>e});var d=c(75338);function e({label:a,value:b,hint:c,accent:e}){return(0,d.jsxs)("div",{className:"card p-4",children:[(0,d.jsx)("div",{className:"metric-label",children:a}),(0,d.jsx)("div",{className:`metric-value tabular mt-1 ${"primary"===e?"text-primary":"secondary"===e?"text-secondary":"text-ink"}`,children:b}),c&&(0,d.jsx)("div",{className:"text-[11px] text-ink-mute mt-1",children:c})]})}},73566:a=>{"use strict";a.exports=require("worker_threads")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},80481:a=>{"use strict";a.exports=require("node:readline")},81630:a=>{"use strict";a.exports=require("http")},86216:(a,b,c)=>{"use strict";c.d(b,{ModelFilter:()=>h});var d=c(21124),e=c(42378),f=c(38301),g=c(23312);function h({families:a,current:b}){let c=(0,e.useRouter)(),h=(0,e.usePathname)(),i=(0,e.useSearchParams)(),[j,k]=(0,f.useState)(!1),[l,m]=(0,f.useTransition)(),[n,o]=(0,f.useState)(!1),[p,q]=(0,f.useState)(null),r=(0,f.useRef)(null),s=a=>{let b=new URLSearchParams(i.toString());a?b.set("model",a):b.delete("model");let d=b.toString();k(!1),m(()=>c.push(d?`${h}?${d}`:h,{scroll:!1}))};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{ref:r,onClick:()=>{if(!j&&r.current){let a=r.current.getBoundingClientRect();q({top:a.bottom+6,left:a.left,width:Math.max(a.width,200)})}k(a=>!a)},className:`text-[11px] font-mono px-2 py-0.5 rounded transition-colors flex items-center gap-1.5 ${b?"bg-primary/15 text-primary":"text-ink-mute hover:text-ink-dim hover:bg-surface-2"} ${l?"opacity-60":""}`,title:"Filter by model",children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"4"}),(0,d.jsx)("path",{d:"M12 2v2M12 20v2M2 12h2M20 12h2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"})]}),(0,d.jsx)("span",{className:"truncate max-w-[140px]",children:b??"All models"}),(0,d.jsx)("svg",{width:"8",height:"8",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",className:`transition-transform ${j?"rotate-180":""}`,children:(0,d.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),n&&j&&p&&(0,g.createPortal)((0,d.jsxs)("div",{id:"model-filter-pop",style:{position:"fixed",top:p.top,left:p.left,minWidth:p.width,backgroundColor:"#1c2026",zIndex:100,isolation:"isolate"},className:"border border-surface-3 rounded-md shadow-xl overflow-hidden text-[12px] font-mono max-h-[60vh] overflow-y-auto",children:[(0,d.jsx)("button",{onClick:()=>s(null),className:`w-full text-left px-3 py-2 transition-colors hover:bg-surface-2 ${!b?"text-primary bg-primary/10":"text-ink-dim"}`,children:"All models"}),(0,d.jsx)("div",{className:"h-px bg-surface-3"}),a.map(a=>(0,d.jsxs)("button",{onClick:()=>s(a.family),className:`w-full text-left px-3 py-2 transition-colors hover:bg-surface-2 flex items-center justify-between gap-3 ${b===a.family?"text-primary bg-primary/10":"text-ink-dim"}`,title:a.family,children:[(0,d.jsx)("span",{className:"truncate",children:a.family}),(0,d.jsx)("span",{className:"text-ink-mute text-[10px] tabular",children:a.sessions})]},a.family)),0===a.length&&(0,d.jsx)("div",{className:"px-3 py-2 text-ink-mute",children:"No models seen yet."})]}),document.body)]})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},88035:(a,b,c)=>{"use strict";c.d(b,{v:()=>o,R:()=>n});var d=c(91488);c(27806);var e=c(91837),f=c(53223),g=c(94450),h=c(88009);let i=["Planning","Debugging","Refactor","Feature","Styling","SEO/Content","DevOps","Data","Payments","Docs","Unknown"],j=`You categorize AI coding sessions and write short, concrete titles for them.
3
+
4
+ For each session you receive a list of the user's prompts in order ("prompts": [...]).
5
+ The first prompt is the opening goal; later prompts show how the session evolved
6
+ (e.g. "let's plan this" → "now add the route" → "fix this bug"). Sessions
7
+ often span multiple kinds of work.
8
+
9
+ Return JSON only:
10
+ {
11
+ "results": [
12
+ { "id": "...", "categories": ["Primary", "Secondary?"], "title": "..." }
13
+ ]
14
+ }
15
+
16
+ Categories (pick 1–3, ordered by how much of the session they represent,
17
+ most-significant first; only include a label if it materially appears):
18
+ - Planning — brainstorming, PRDs, deciding whether to build something, product strategy
19
+ - Debugging — fixing bugs, errors, broken things, failing tests
20
+ - Refactor — restructuring or renaming existing code without behavior change
21
+ - Feature — building or adding new functionality
22
+ - Styling — UI, CSS, layout, design, theme
23
+ - SEO/Content — SEO, blog content, headlines, meta tags
24
+ - DevOps — deploy, CI/CD, env vars, infrastructure, DNS
25
+ - Data — databases, schemas, migrations, scraping, ETL
26
+ - Payments — Stripe, checkout, billing, invoices, subscriptions
27
+ - Docs — README, documentation, changelog
28
+ - Unknown — when you genuinely can't tell (prefer this over guessing)
29
+
30
+ When in doubt, prefer fewer labels. A session that's 90% Feature with a tiny
31
+ bug fix at the end is just Feature.
32
+
33
+ Title rules:
34
+ - 4-9 words, past tense ("Added", "Fixed", "Drafted")
35
+ - Capture the dominant outcome of the session, not just the opening prompt
36
+ - Concrete object ("Stripe checkout reminder" not "payments stuff")
37
+ - No quotes, no period
38
+ - Keep acronyms (PRD, API, CLI) and proper nouns (Stripe, Drizzle, Next.js) capitalized
39
+ - Never repeat a category in the title
40
+
41
+ Return the JSON only, no prose.`;async function k(a){let b=(0,g.Q)();if(!b)throw Error("No LLM provider configured");let c=(0,h.P6)(b.classifierModel),d=(0,h.nG)(c,600*a,50*a);return{totalUsd:d,perSessionUsd:0===a?0:d/a,modelId:c.id,modelLabel:c.label}}async function l(a){let b,c=(0,g.Q)();if(!c)throw Error("No LLM provider configured");let d=(0,h.P6)(c.classifierModel),e=a.batchSize??20,k=(0,f.x)(),l=k.prepare("UPDATE sessions SET heuristic_title = ?, category = ?, categories = ? WHERE id = ?"),m=0,n=0,o=0;for(let p=0;p<a.rows.length;p+=e){let q=a.rows.slice(p,p+e),r=q.map(a=>({id:a.id,prompts:function(a,b){let c=(0,f.x)().prepare("SELECT content FROM messages WHERE session_id = ? AND role = 'user' ORDER BY timestamp ASC").all(a);if(0===c.length)return[b];if(c.length<=8)return c.map(a=>a.content);let d=[c[0].content],e=(c.length-2)/7;for(let a=1;a<=6;a++)d.push(c[Math.round(a*e)].content);return d.push(c[c.length-1].content),d}(a.id,a.first_prompt)})),s=function(a){let b={sessions:a.map(a=>({id:a.id,prompts:a.prompts.map(a=>a.slice(0,400))}))};return`Sessions to classify:
42
+ ${JSON.stringify(b,null,2)}`}(r);r.reduce((a,b)=>a+b.prompts.reduce((a,b)=>a+Math.ceil(b.length/4),0),0);let t=Math.min(3e3,Math.max(800,100*q.length));try{let{text:a,inputTokens:e,outputTokens:f}=await (0,g.M)({model:c.classifierModel,systemPrompt:j,userPrompt:s,maxTokens:t,responseFormat:"json"});m+=(0,h.nG)(d,e,f);let p=function(a){let b=a.trim(),c=b.match(/```(?:json)?\s*([\s\S]*?)```/);c&&(b=c[1].trim());let d=b.indexOf("{"),e=b.lastIndexOf("}");if(-1===d||-1===e)return[];try{let a=JSON.parse(b.slice(d,e+1));if(Array.isArray(a?.results))return a.results}catch{}return[]}(a);if(0===p.length&&a.length>0){o+=1,b||(b=`Could not parse model response. First 200 chars: ${a.slice(0,200)}`);continue}k.transaction(a=>{for(let b of a){if(!b.id)continue;let a=[...new Set((b.categories??(b.category?[b.category]:[])).filter(a=>"string"==typeof a).map(a=>a.trim()).filter(a=>i.includes(a)))].slice(0,3);if(0===a.length)continue;let c=(b.title||"").trim().replace(/[.\s]+$/,"").slice(0,120);c&&(l.run(c,a[0],JSON.stringify(a),b.id),n+=1)}})(p)}catch(c){o+=1;let a=c.message;console.error("classify batch failed",a),b||(b=a)}a.onProgress?.(Math.min(p+e,a.rows.length),a.rows.length)}return{classified:n,costUsd:m,firstError:b,batchesFailed:o}}function m(a){return"all"===a?function(a){let b=(0,f.x)(),c=`SELECT id, first_prompt FROM sessions
43
+ WHERE first_prompt IS NOT NULL AND length(first_prompt) > 0
44
+ ORDER BY started_at DESC`;return b.prepare(c).all()}():function(a){let b=(0,f.x)(),c=`SELECT id, first_prompt FROM sessions
45
+ WHERE category IS NULL AND first_prompt IS NOT NULL AND length(first_prompt) > 0
46
+ ORDER BY started_at DESC`;return b.prepare(c).all()}()}async function n(a){try{if(!(0,g.Q)())return{ok:!1,error:"No API key configured."};let b=m(a),c=await k(b.length);return{ok:!0,...c,rowCount:b.length}}catch(a){return{ok:!1,error:a.message}}}async function o(a){try{if(!(0,g.Q)())return{ok:!1,error:"No API key configured."};let b=m(a);if(0===b.length)return{ok:!0,classified:0,costUsd:0};let c=await l({rows:b});if((0,e.revalidatePath)("/"),(0,e.revalidatePath)("/settings"),(0,e.revalidatePath)("/timeline"),(0,e.revalidatePath)("/sessions"),(0,e.revalidatePath)("/projects"),0===c.classified&&c.firstError)return{ok:!1,error:c.firstError};let d=c.batchesFailed>0?`${c.batchesFailed} batch${1===c.batchesFailed?"":"es"} failed: ${c.firstError??"unknown error"}`:void 0;return{ok:!0,classified:c.classified,costUsd:c.costUsd,warning:d}}catch(a){return{ok:!1,error:a.message}}}(0,c(40410).D)([n,o]),(0,d.A)(n,"4006197c7f39df910cea8635c5c22d0f12c7c42f35",null),(0,d.A)(o,"4086085619f2eb1832f13de02c11c03744ae709f78",null)},91243:(a,b,c)=>{"use strict";c.d(b,{v:()=>e});var d=c(85708);let e=(0,d.createServerReference)("4086085619f2eb1832f13de02c11c03744ae709f78",d.callServer,void 0,d.findSourceMapURL,"classifyAction")},92155:(a,b,c)=>{"use strict";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(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`}c.d(b,{F0:()=>e,c5:()=>f,yj:()=>d})},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})}},94709:(a,b,c)=>{"use strict";c.d(b,{RangePicker:()=>h});var d=c(21124),e=c(42378),f=c(38301);let g=[{key:"7d",label:"Last 7 days",days:7},{key:"30d",label:"Last 30 days",days:30},{key:"90d",label:"Last 90 days",days:90},{key:"all",label:"All time",days:null}];function h({current:a}){let b=(0,e.useRouter)(),c=(0,e.usePathname)(),h=(0,e.useSearchParams)(),[i,j]=(0,f.useTransition)();return(0,d.jsx)("div",{className:`flex items-center gap-0.5 normal-case tracking-normal transition-opacity ${i?"opacity-50":""}`,children:g.map(e=>(0,d.jsx)("button",{onClick:()=>(a=>{let d=new URLSearchParams(h.toString());"30d"===a?d.delete("range"):d.set("range",a);let e=d.toString();j(()=>{b.push(e?`${c}?${e}`:c)})})(e.key),className:`px-2 py-0.5 text-[11px] rounded transition-colors font-mono ${a===e.key?"bg-primary/15 text-primary":"text-ink-mute hover:text-ink-dim"}`,children:"all"===e.key?"All":e.key},e.key))})}}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[873,609,564,970,927,634,837,944,954,27,694,450],()=>b(b.s=54392));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/27.js","../chunks/564.js","../chunks/609.js","../chunks/634.js","../chunks/660.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/450.js","../chunks/564.js","../chunks/609.js","../chunks/634.js","../chunks/693.js","../chunks/694.js","../chunks/837.js","../chunks/873.js","../chunks/927.js","../chunks/929.js","../chunks/944.js","../chunks/954.js","../chunks/970.js","../webpack-runtime.js","page_client-reference-manifest.js"]}
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/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","997","static/chunks/997-0bc10efbbb03a5ca.js","974","static/chunks/app/page-72efdd1b71c43e03.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","997","static/chunks/997-0bc10efbbb03a5ca.js","974","static/chunks/app/page-72efdd1b71c43e03.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":[]},"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
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"11796":{"*":{"id":"67640","name":"*","chunks":[],"async":false}},"11957":{"*":{"id":"5573","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"15433":{"*":{"id":"70365","name":"*","chunks":[],"async":false}},"17834":{"*":{"id":"22412","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}},"38250":{"*":{"id":"21757","name":"*","chunks":[],"async":false}},"42158":{"*":{"id":"6365","name":"*","chunks":[],"async":false}},"44782":{"*":{"id":"28380","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"3991","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"61438":{"*":{"id":"3276","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"74050":{"*":{"id":"86216","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}},"95925":{"*":{"id":"94709","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/src/app/globals.css":{"id":13673,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","177","static/chunks/app/layout-bbab14e77aaeeb67.js"],"async":false},"/home/runner/work/agentgraphed/agentgraphed/src/components/Sidebar.tsx":{"id":82259,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","177","static/chunks/app/layout-bbab14e77aaeeb67.js"],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/client/app-dir/link.js":{"id":52619,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","997","static/chunks/997-0bc10efbbb03a5ca.js","974","static/chunks/app/page-a3c60158eb6e8a4c.js"],"async":false},"/home/runner/work/agentgraphed/agentgraphed/node_modules/next/dist/esm/client/app-dir/link.js":{"id":52619,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","997","static/chunks/997-0bc10efbbb03a5ca.js","974","static/chunks/app/page-a3c60158eb6e8a4c.js"],"async":false},"/home/runner/work/agentgraphed/agentgraphed/src/components/ShareButton.tsx":{"id":17834,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","997","static/chunks/997-0bc10efbbb03a5ca.js","974","static/chunks/app/page-a3c60158eb6e8a4c.js"],"async":false},"/home/runner/work/agentgraphed/agentgraphed/src/components/AnalyticsCharts.tsx":{"id":11796,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/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-a3c60158eb6e8a4c.js"],"async":false},"/home/runner/work/agentgraphed/agentgraphed/src/components/SessionRow.tsx":{"id":38250,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/src/components/LlmSection.tsx":{"id":11957,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/src/components/ClassifyChip.tsx":{"id":15433,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","997","static/chunks/997-0bc10efbbb03a5ca.js","974","static/chunks/app/page-a3c60158eb6e8a4c.js"],"async":false},"/home/runner/work/agentgraphed/agentgraphed/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-a3c60158eb6e8a4c.js"],"async":false},"/home/runner/work/agentgraphed/agentgraphed/src/components/ModelFilter.tsx":{"id":74050,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","997","static/chunks/997-0bc10efbbb03a5ca.js","974","static/chunks/app/page-a3c60158eb6e8a4c.js"],"async":false},"/home/runner/work/agentgraphed/agentgraphed/src/components/ProjectFilter.tsx":{"id":61438,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","997","static/chunks/997-0bc10efbbb03a5ca.js","974","static/chunks/app/page-a3c60158eb6e8a4c.js"],"async":false},"/home/runner/work/agentgraphed/agentgraphed/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-a3c60158eb6e8a4c.js"],"async":false},"/home/runner/work/agentgraphed/agentgraphed/src/components/ResumePanel.tsx":{"id":44782,"name":"*","chunks":[],"async":false},"/home/runner/work/agentgraphed/agentgraphed/src/components/SessionActions.tsx":{"id":42158,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/runner/work/agentgraphed/agentgraphed/src/":[],"/home/runner/work/agentgraphed/agentgraphed/src/app/layout":[{"inlined":false,"path":"static/css/fff107f5d96e58c9.css"}],"/home/runner/work/agentgraphed/agentgraphed/src/app/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"11796":{"*":{"id":"32192","name":"*","chunks":[],"async":false}},"11957":{"*":{"id":"15073","name":"*","chunks":[],"async":false}},"13673":{"*":{"id":"61135","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"15433":{"*":{"id":"70807","name":"*","chunks":[],"async":false}},"17834":{"*":{"id":"35530","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}},"38250":{"*":{"id":"14631","name":"*","chunks":[],"async":false}},"42158":{"*":{"id":"9998","name":"*","chunks":[],"async":false}},"44782":{"*":{"id":"63186","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"65169","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"61438":{"*":{"id":"15166","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"74050":{"*":{"id":"28342","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}},"95925":{"*":{"id":"51094","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
@@ -1,2 +1,2 @@
1
- (()=>{var a={};a.id=801,a.ids=[801],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")},18277:(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:["projects",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,84312)),"/Users/mikekuehn/devProjects/agentgraphed/oss/src/app/projects/[id]/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/projects/[id]/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/projects/[id]/page",pathname:"/projects/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/projects/[id]/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}}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},25799:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(82831),e=c(43740),f=c(29305),g=c(61981),h=c(26906),i=c(69168);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29088:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},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")},46649:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,3991,23))},47614:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getRedirectError:function(){return g},getRedirectStatusCodeFromError:function(){return l},getRedirectTypeFromError:function(){return k},getURLFromRedirectError:function(){return j},permanentRedirect:function(){return i},redirect:function(){return h}});let d=c(91203),e=c(92781),f=c(19121).actionAsyncStorage;function g(a,b,c){void 0===c&&(c=d.RedirectStatusCode.TemporaryRedirect);let f=Object.defineProperty(Error(e.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return f.digest=e.REDIRECT_ERROR_CODE+";"+b+";"+a+";"+c+";",f}function h(a,b){var c;throw null!=b||(b=(null==f||null==(c=f.getStore())?void 0:c.isAction)?e.RedirectType.push:e.RedirectType.replace),g(a,b,d.RedirectStatusCode.TemporaryRedirect)}function i(a,b){throw void 0===b&&(b=e.RedirectType.replace),g(a,b,d.RedirectStatusCode.PermanentRedirect)}function j(a){return(0,e.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function k(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function l(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},48161:a=>{"use strict";a.exports=require("node:os")},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")},64404:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return e}});let d=""+c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},64712:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(25799).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},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")},67837:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73169:(a,b,c)=>{"use strict";c.d(b,{f:()=>e});var d=c(75338);function e({label:a,value:b,hint:c,accent:e}){return(0,d.jsxs)("div",{className:"card p-4",children:[(0,d.jsx)("div",{className:"metric-label",children:a}),(0,d.jsx)("div",{className:`metric-value tabular mt-1 ${"primary"===e?"text-primary":"secondary"===e?"text-secondary":"text-ink"}`,children:b}),c&&(0,d.jsx)("div",{className:"text-[11px] text-ink-mute mt-1",children:c})]})}},76760:a=>{"use strict";a.exports=require("node:path")},82161:(a,b,c)=>{"use strict";var d=c(93045);c.o(d,"notFound")&&c.d(b,{notFound:function(){return d.notFound}})},84312:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>l,dynamic:()=>k});var d=c(75338),e=c(82161),f=c(40753),g=c(73169),h=c(59482),i=c(10944),j=c(46145);let k="force-dynamic";async function l({params:a}){let{id:b}=await a,c=(0,i.U1)(b);c||(0,e.notFound)();let k=(0,i.sW)(b,200),l=new Map;for(let a of k){let b=a.model||"unknown";l.set(b,(l.get(b)||0)+1)}let m=[...l.entries()].sort((a,b)=>b[1]-a[1]);return(0,d.jsxs)("div",{children:[(0,d.jsx)(f.z,{title:c.name,subtitle:c.root_path,right:c.git_remote?(0,d.jsx)("span",{className:"font-mono text-code-sm text-ink-mute",children:c.git_remote}):null}),(0,d.jsxs)("div",{className:"p-7 space-y-7",children:[(0,d.jsxs)("div",{className:"grid grid-cols-4 gap-4",children:[(0,d.jsx)(g.f,{label:"Sessions",value:c.sessions.toString()}),(0,d.jsx)(g.f,{label:"Tokens",value:(0,j.yj)(c.tokens)}),(0,d.jsx)(g.f,{label:"Est. Cost",value:(0,j.F0)(c.cost),accent:"secondary"}),(0,d.jsx)(g.f,{label:"Last Active",value:(0,j.Kc)(c.last_active)})]}),(0,d.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,d.jsxs)("div",{className:"card col-span-2",children:[(0,d.jsx)("div",{className:"card-header",children:"Recent Sessions"}),(0,d.jsxs)("div",{className:"p-3 space-y-1",children:[k.map(a=>(0,d.jsx)(h.E,{session:a},a.id)),0===k.length&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute p-4 text-center",children:"No sessions yet."})]})]}),(0,d.jsxs)("div",{className:"card h-fit",children:[(0,d.jsx)("div",{className:"card-header",children:"Models Used"}),(0,d.jsx)("div",{className:"p-4 space-y-2",children:m.map(([a,b])=>(0,d.jsxs)("div",{className:"flex justify-between text-body-sm",children:[(0,d.jsx)("span",{className:"font-mono text-code-sm truncate pr-2",children:a}),(0,d.jsx)("span",{className:"font-mono tabular text-ink",children:b})]},a))})]})]})]})]})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},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})}},93045:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=c(47614),e=c(92781),f=c(64404),g=c(67837),h=c(29088),i=c(64712);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[873,609,564,944,660],()=>b(b.s=18277));module.exports=c})();
1
+ (()=>{var a={};a.id=801,a.ids=[801],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")},27210:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,3991,23)),Promise.resolve().then(c.bind(c,22412))},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")},33873:a=>{"use strict";a.exports=require("path")},38288:(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:["projects",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,84312)),"/home/runner/work/agentgraphed/agentgraphed/src/app/projects/[id]/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,51472)),"/home/runner/work/agentgraphed/agentgraphed/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=["/home/runner/work/agentgraphed/agentgraphed/src/app/projects/[id]/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/projects/[id]/page",pathname:"/projects/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/projects/[id]/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}}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43257:(a,b,c)=>{"use strict";c.d(b,{v:()=>g});var d=c(75338),e=c(46145),f=c(76846);function g({rows:a,label:b}){let c=new Map;for(let b of a){let a=(0,f.gW)(b.model),d=c.get(a);d?(d.sessions+=b.sessions,d.tokens+=b.tokens,d.cost+=b.cost):c.set(a,{sessions:b.sessions,tokens:b.tokens,cost:b.cost})}let g=[...c.entries()].map(([a,b])=>({family:a,...b})).sort((a,b)=>b.cost-a.cost),h=Math.max(...g.map(a=>a.cost),1e-6);return(0,d.jsxs)("div",{className:"card",children:[(0,d.jsxs)("div",{className:"card-header flex items-center justify-between",children:[(0,d.jsxs)("span",{children:["By Model \xb7 ",b]}),(0,d.jsx)("span",{className:"normal-case tracking-normal font-normal text-ink-mute text-[11px]",children:"cost"})]}),(0,d.jsxs)("div",{className:"p-4 space-y-2.5",children:[g.map(a=>{let b=a.cost/h*100;return(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between text-body-sm",children:[(0,d.jsx)("span",{className:"text-ink truncate pr-2",children:a.family}),(0,d.jsxs)("span",{className:"font-mono text-ink-mute tabular text-code-sm whitespace-nowrap",children:[a.sessions," ",1===a.sessions?"session":"sessions"," \xb7 ",(0,e.yj)(a.tokens)," \xb7 ",(0,d.jsx)("span",{className:"text-secondary",children:(0,e.F0)(a.cost)})]})]}),(0,d.jsx)("div",{className:"h-1 bg-surface-2 rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-secondary/70",style:{width:`${b}%`}})})]},a.family)}),0===g.length&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute text-center py-4",children:"No model usage in this range."})]})]})}},48161:a=>{"use strict";a.exports=require("node:os")},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.xU)(a),l=a.input_tokens+a.output_tokens+a.cache_read_tokens+a.cache_write_tokens,m=(0,g.LQ)(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")},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")},84312:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>o,dynamic:()=>n});var d=c(75338),e=c(82161),f=c(40753),g=c(73169),h=c(59482),i=c(35530),j=c(43257),k=c(10944),l=c(46145),m=c(99044);let n="force-dynamic";async function o({params:a}){let{id:b}=await a,c=(0,k.U1)(b);c||(0,e.notFound)();let n=(0,k.sW)(b,200),o=(0,k.Pw)(null,b);return(0,d.jsxs)("div",{children:[(0,d.jsx)(f.z,{title:c.name,subtitle:(0,m.G)(c.root_path),right:(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[c.git_remote&&(0,d.jsx)("span",{className:"font-mono text-code-sm text-ink-mute",children:c.git_remote}),(0,d.jsx)(i.ShareButton,{imageUrl:`/api/share/project/${b}`})]})}),(0,d.jsxs)("div",{className:"p-7 space-y-7",children:[(0,d.jsxs)("div",{className:"grid grid-cols-4 gap-4",children:[(0,d.jsx)(g.f,{label:"Sessions",value:c.sessions.toString()}),(0,d.jsx)(g.f,{label:"Tokens",value:(0,l.yj)(c.tokens)}),(0,d.jsx)(g.f,{label:"Est. Cost",value:(0,l.F0)(c.cost),accent:"secondary"}),(0,d.jsx)(g.f,{label:"Last Active",value:(0,l.Kc)(c.last_active)})]}),(0,d.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,d.jsxs)("div",{className:"card col-span-2",children:[(0,d.jsx)("div",{className:"card-header",children:"Recent Sessions"}),(0,d.jsxs)("div",{className:"p-3 space-y-1",children:[n.map(a=>(0,d.jsx)(h.E,{session:a},a.id)),0===n.length&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute p-4 text-center",children:"No sessions yet."})]})]}),(0,d.jsx)("div",{className:"h-fit",children:(0,d.jsx)(j.v,{rows:o,label:"all time"})})]})]})]})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},92706:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,65169,23)),Promise.resolve().then(c.bind(c,35530))}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[873,609,564,944,954,903],()=>b(b.s=38288));module.exports=c})();