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
@@ -0,0 +1 @@
1
+ exports.id=693,exports.ids=[693],exports.modules={8947:(a,b,c)=>{if(!globalThis.DOMException)try{let{MessageChannel:a}=c(73566),b=new a().port1,d=new ArrayBuffer;b.postMessage(d,[d,d])}catch(a){"DOMException"===a.constructor.name&&(globalThis.DOMException=a.constructor)}a.exports=globalThis.DOMException},48693:(a,b,c)=>{"use strict";c.d(b,{fileFromPath:()=>n});var d,e,f=c(29021),g=c(33873),h=c(8947),i=c(95574);let j=function(a){if("object"!==Object.prototype.toString.call(a).slice(8,-1).toLowerCase())return!1;let b=Object.getPrototypeOf(a);return null==b||(b.constructor&&b.constructor.toString())===Object.toString()};c(96962);var k=function(a,b,c,d,e){if("m"===d)throw TypeError("Private method is not writable");if("a"===d&&!e)throw TypeError("Private accessor was defined without a setter");if("function"==typeof b?a!==b||!e:!b.has(a))throw TypeError("Cannot write private member to an object whose class did not declare it");return"a"===d?e.call(a,c):e?e.value=c:b.set(a,c),c},l=function(a,b,c,d){if("a"===c&&!d)throw TypeError("Private accessor was defined without a getter");if("function"==typeof b?a!==b||!d:!b.has(a))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===c?d:"a"===c?d.call(a):d?d.value:b.get(a)};class m{constructor(a){d.set(this,void 0),e.set(this,void 0),k(this,d,a.path,"f"),k(this,e,a.start||0,"f"),this.name=(0,g.basename)(l(this,d,"f")),this.size=a.size,this.lastModified=a.lastModified}slice(a,b){return new m({path:l(this,d,"f"),lastModified:this.lastModified,size:b-a,start:a})}async *stream(){let{mtimeMs:a}=await f.promises.stat(l(this,d,"f"));if(a>this.lastModified)throw new h("The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.","NotReadableError");this.size&&(yield*(0,f.createReadStream)(l(this,d,"f"),{start:l(this,e,"f"),end:l(this,e,"f")+this.size-1}))}get[(d=new WeakMap,e=new WeakMap,Symbol.toStringTag)](){return"File"}}async function n(a,b,c){let d=await f.promises.stat(a);return function(a,{mtimeMs:b,size:c},d,e={}){let f;j(d)?[e,f]=[d,void 0]:f=d;let g=new m({path:a,size:c,lastModified:b});return f||(f=g.name),new i.Z([g],f,{...e,lastModified:g.lastModified})}(a,d,b,c)}}};
@@ -0,0 +1,43 @@
1
+ "use strict";exports.id=694,exports.ids=[694],exports.modules={15988:(a,b,c)=>{c.d(b,{Ev:()=>i,Kv:()=>k,N6:()=>j});var d=c(22446),e=c(71277),f=c(92568);let g=["Planning","Debugging","Refactor","Feature","Styling","SEO/Content","DevOps","Data","Payments","Docs","Unknown"],h=`You categorize AI coding sessions and write short, concrete titles for them.
2
+
3
+ For each session you receive a list of the user's prompts in order ("prompts": [...]).
4
+ The first prompt is the opening goal; later prompts show how the session evolved
5
+ (e.g. "let's plan this" → "now add the route" → "fix this bug"). Sessions
6
+ often span multiple kinds of work.
7
+
8
+ Return JSON only:
9
+ {
10
+ "results": [
11
+ { "id": "...", "categories": ["Primary", "Secondary?"], "title": "..." }
12
+ ]
13
+ }
14
+
15
+ Categories (pick 1–3, ordered by how much of the session they represent,
16
+ most-significant first; only include a label if it materially appears):
17
+ - Planning — brainstorming, PRDs, deciding whether to build something, product strategy
18
+ - Debugging — fixing bugs, errors, broken things, failing tests
19
+ - Refactor — restructuring or renaming existing code without behavior change
20
+ - Feature — building or adding new functionality
21
+ - Styling — UI, CSS, layout, design, theme
22
+ - SEO/Content — SEO, blog content, headlines, meta tags
23
+ - DevOps — deploy, CI/CD, env vars, infrastructure, DNS
24
+ - Data — databases, schemas, migrations, scraping, ETL
25
+ - Payments — Stripe, checkout, billing, invoices, subscriptions
26
+ - Docs — README, documentation, changelog
27
+ - Unknown — when you genuinely can't tell (prefer this over guessing)
28
+
29
+ When in doubt, prefer fewer labels. A session that's 90% Feature with a tiny
30
+ bug fix at the end is just Feature.
31
+
32
+ Title rules:
33
+ - 4-9 words, past tense ("Added", "Fixed", "Drafted")
34
+ - Capture the dominant outcome of the session, not just the opening prompt
35
+ - Concrete object ("Stripe checkout reminder" not "payments stuff")
36
+ - No quotes, no period
37
+ - Keep acronyms (PRD, API, CLI) and proper nouns (Stripe, Drizzle, Next.js) capitalized
38
+ - Never repeat a category in the title
39
+
40
+ Return the JSON only, no prose.`;async function i(a){let b=(0,e.Q)();if(!b)throw Error("No LLM provider configured");let c=(0,f.P6)(b.classifierModel),d=(0,f.nG)(c,600*a,50*a);return{totalUsd:d,perSessionUsd:0===a?0:d/a,modelId:c.id,modelLabel:c.label}}async function j(a){let b,c=(0,e.Q)();if(!c)throw Error("No LLM provider configured");let i=(0,f.P6)(c.classifierModel),j=a.batchSize??20,k=(0,d.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+=j){let q=a.rows.slice(p,p+j),r=q.map(a=>({id:a.id,prompts:function(a,b){let c=(0,d.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 e=[c[0].content],f=(c.length-2)/7;for(let a=1;a<=6;a++)e.push(c[Math.round(a*f)].content);return e.push(c[c.length-1].content),e}(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:
41
+ ${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:d,outputTokens:j}=await (0,e.M)({model:c.classifierModel,systemPrompt:h,userPrompt:s,maxTokens:t,responseFormat:"json"});m+=(0,f.nG)(i,d,j);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=>g.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+j,a.rows.length),a.rows.length)}return{classified:n,costUsd:m,firstError:b,batchesFailed:o}}function k(a){let b=(0,d.x)(),c=`SELECT id, first_prompt FROM sessions
42
+ WHERE category IS NULL AND first_prompt IS NOT NULL AND length(first_prompt) > 0
43
+ ORDER BY started_at DESC${a?` LIMIT ${a}`:""}`;return b.prepare(c).all()}},40753:(a,b,c)=>{c.d(b,{z:()=>e});var d=c(75338);function e({title:a,subtitle:b,right:c,titleAdornment:e}){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.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("h1",{className:"text-headline-md text-ink font-semibold",children:a}),e]}),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})]})}},71277:(a,b,c)=>{c.d(b,{M:()=>i,Q:()=>h});var d=c(19283),e=c(9244),f=c(10944),g=c(92568);function h(){let a=(0,f.PL)("llm_provider")||"anthropic",b="openai"===a?"openai_api_key":"anthropic_api_key",c=(0,f.PL)(b)||process.env["openai"===a?"OPENAI_API_KEY":"ANTHROPIC_API_KEY"]||"";if(!c)return null;let d=(0,f.PL)("classifier_model")||(0,g.$I)(a),e=(0,f.PL)("summarizer_model")||(0,g.$I)(a);return{provider:a,apiKey:c,classifierModel:d,summarizerModel:e}}async function i(a){let b=h();if(!b)throw Error("No LLM provider configured");let c=(0,g.P6)(a.model)??(0,g.P6)(b.classifierModel);if(!c)throw Error(`Unknown model: ${a.model}`);if("anthropic"===c.provider){let e=new d.Ay({apiKey:b.apiKey}),f=await e.messages.create({model:c.id,max_tokens:a.maxTokens??1024,system:a.systemPrompt,messages:[{role:"user",content:a.userPrompt}]});return{text:f.content.map(a=>"text"in a?a.text:"").join("").trim(),inputTokens:f.usage.input_tokens,outputTokens:f.usage.output_tokens}}{let d=new e.Ay({apiKey:b.apiKey}),f=/^gpt-5/i.test(c.id)||/^o\d/i.test(c.id),g=await d.chat.completions.create({model:c.id,messages:[...a.systemPrompt?[{role:"system",content:a.systemPrompt}]:[],{role:"user",content:a.userPrompt}],max_completion_tokens:a.maxTokens??1024,...f?{reasoning_effort:"minimal"}:{},..."json"===a.responseFormat?{response_format:{type:"json_object"}}:{}}),h=g.choices[0]?.message?.content?.trim()||"",i=g.usage?.completion_tokens_details?.reasoning_tokens??0,j=g.choices[0]?.finish_reason;if(!h)throw Error("length"===j&&i>0?`model used all ${i} output tokens on reasoning before producing any visible content; raise the token budget or use a non-reasoning model`:`model returned empty content (finish_reason=${j})`);return{text:h,inputTokens:g.usage?.prompt_tokens??0,outputTokens:g.usage?.completion_tokens??0}}}},86718:(a,b,c)=>{c.d(b,{L:()=>l,N:()=>function a(){let b=globalThis;if(b[j]||(b[j]=setInterval(()=>{a()},3e5),"function"==typeof b[j]?.unref&&b[j].unref()),i)return;let c=(0,e.PL)("dashboard_last_auto_ingest_ms"),g=c?parseInt(c,10):0;Date.now()-g<1e4||((0,e.ZC)("dashboard_last_auto_ingest_ms",String(Date.now())),i=(async()=>{try{let a=await (0,d.U)();(a.claude.filesIngested>0||a.codex.filesIngested>0)&&(0,f.e)(),await k()}catch{}finally{i=null}})())}});var d=c(90027),e=c(10944),f=c(25742),g=c(15988),h=c(71277);let i=null,j=Symbol.for("agentgraphed.periodic-ingest");async function k(){try{if("off"===(0,e.PL)("auto_classify")||!(0,h.Q)())return;let a=(0,g.Kv)();if(a.length<5)return;(await (0,g.N6)({rows:a})).classified>0&&(0,f.e)()}catch{}}function l(){let a=(0,e.PL)("dashboard_last_auto_ingest_ms");return a?parseInt(a,10):0}},92568:(a,b,c)=>{c.d(b,{$I:()=>f,P6:()=>e,nG:()=>g});let d=[{id:"claude-haiku-4-5",label:"Claude Haiku 4.5 (cheapest)",provider:"anthropic",input:1,output:5},{id:"claude-sonnet-4-6",label:"Claude Sonnet 4.6 (smarter)",provider:"anthropic",input:3,output:15},{id:"gpt-5-mini",label:"GPT-5 Mini (cheapest)",provider:"openai",input:.5,output:2},{id:"gpt-4o-mini",label:"GPT-4o Mini (very cheap)",provider:"openai",input:.15,output:.6},{id:"gpt-5",label:"GPT-5 (smarter)",provider:"openai",input:2.5,output:10}];function e(a){return d.find(b=>b.id===a)}function f(a){return"openai"===a?"gpt-5-mini":"claude-haiku-4-5"}function g(a,b,c){return(b*a.input+c*a.output)/1e6}}};
@@ -0,0 +1,12 @@
1
+ exports.id=837,exports.ids=[837],exports.modules={157:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"pathHasPrefix",{enumerable:!0,get:function(){return e}});let d=c(2213);function e(a,b){if("string"!=typeof a)return!1;let{pathname:c}=(0,d.parsePath)(a);return c===b||c.startsWith(b+"/")}},2213:(a,b)=>{"use strict";function c(a){let b=a.indexOf("#"),c=a.indexOf("?"),d=c>-1&&(b<0||c<b);return d||b>-1?{pathname:a.substring(0,d?c:b),query:d?a.substring(c,b>-1?b:void 0):"",hash:b>-1?a.slice(b):""}:{pathname:a,query:"",hash:""}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parsePath",{enumerable:!0,get:function(){return c}})},3017:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Batcher",{enumerable:!0,get:function(){return e}});let d=c(42474);class e{constructor(a,b=a=>a()){this.cacheKeyFn=a,this.schedulerFn=b,this.pending=new Map}static create(a){return new e(null==a?void 0:a.cacheKeyFn,null==a?void 0:a.schedulerFn)}async batch(a,b){let c=this.cacheKeyFn?await this.cacheKeyFn(a):a;if(null===c)return b(c,Promise.resolve);let e=this.pending.get(c);if(e)return e;let{promise:f,resolve:g,reject:h}=new d.DetachedPromise;return this.pending.set(c,f),this.schedulerFn(async()=>{try{let a=await b(c,g);g(a)}catch(a){h(a)}finally{this.pending.delete(c)}}),f}}},6946:(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,{revalidatePath:function(){return n},revalidateTag:function(){return k},unstable_expirePath:function(){return l},unstable_expireTag:function(){return m}});let d=c(90151),e=c(30598),f=c(73443),g=c(29294),h=c(63033),i=c(52577),j=c(58871);function k(a){return o([a],`revalidateTag ${a}`)}function l(a,b){if(a.length>f.NEXT_CACHE_SOFT_TAG_MAX_LENGTH)return void console.warn(`Warning: expirePath received "${a}" which exceeded max length of ${f.NEXT_CACHE_SOFT_TAG_MAX_LENGTH}. See more info here https://nextjs.org/docs/app/api-reference/functions/unstable_expirePath`);let c=`${f.NEXT_CACHE_IMPLICIT_TAG_ID}${a}`;return b?c+=`${c.endsWith("/")?"":"/"}${b}`:(0,e.isDynamicRoute)(a)&&console.warn(`Warning: a dynamic page path "${a}" was passed to "expirePath", but the "type" parameter is missing. This has no effect by default, see more info here https://nextjs.org/docs/app/api-reference/functions/unstable_expirePath`),o([c],`unstable_expirePath ${a}`)}function m(...a){return o(a,`unstable_expireTag ${a.join(", ")}`)}function n(a,b){if(a.length>f.NEXT_CACHE_SOFT_TAG_MAX_LENGTH)return void console.warn(`Warning: revalidatePath received "${a}" which exceeded max length of ${f.NEXT_CACHE_SOFT_TAG_MAX_LENGTH}. See more info here https://nextjs.org/docs/app/api-reference/functions/revalidatePath`);let c=`${f.NEXT_CACHE_IMPLICIT_TAG_ID}${a}`;return b?c+=`${c.endsWith("/")?"":"/"}${b}`:(0,e.isDynamicRoute)(a)&&console.warn(`Warning: a dynamic page path "${a}" was passed to "revalidatePath", but the "type" parameter is missing. This has no effect by default, see more info here https://nextjs.org/docs/app/api-reference/functions/revalidatePath`),o([c],`revalidatePath ${a}`)}function o(a,b){let c=g.workAsyncStorage.getStore();if(!c||!c.incrementalCache)throw Object.defineProperty(Error(`Invariant: static generation store missing in ${b}`),"__NEXT_ERROR_CODE",{value:"E263",enumerable:!1,configurable:!0});let e=h.workUnitAsyncStorage.getStore();if(e){if("render"===e.phase)throw Object.defineProperty(Error(`Route ${c.route} used "${b}" during render which is unsupported. To ensure revalidation is performed consistently it must always happen outside of renders and cached functions. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E7",enumerable:!1,configurable:!0});switch(e.type){case"cache":case"private-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${b}" inside a "use cache" which is unsupported. To ensure revalidation is performed consistently it must always happen outside of renders and cached functions. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E181",enumerable:!1,configurable:!0});case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${b}" inside a function cached with "unstable_cache(...)" which is unsupported. To ensure revalidation is performed consistently it must always happen outside of renders and cached functions. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E306",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":let a=Object.defineProperty(Error(`Route ${c.route} used ${b} without first calling \`await connection()\`.`),"__NEXT_ERROR_CODE",{value:"E406",enumerable:!1,configurable:!0});return(0,d.abortAndThrowOnSynchronousRequestDataAccess)(c.route,b,a,e);case"prerender-client":throw Object.defineProperty(new j.InvariantError(`${b} must not be used within a client component. Next.js should be preventing ${b} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E693",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,d.postponeWithTracking)(c.route,b,e.dynamicTracking);case"prerender-legacy":e.revalidate=0;let f=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${b}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=b,c.dynamicUsageStack=f.stack,f}}for(let b of(c.pendingRevalidatedTags||(c.pendingRevalidatedTags=[]),a))c.pendingRevalidatedTags.includes(b)||c.pendingRevalidatedTags.push(b);c.pathWasRevalidated=!0}},7265:a=>{"use strict";var b=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,e=Object.prototype.hasOwnProperty,f={};function g(a){var b;let c=["path"in a&&a.path&&`Path=${a.path}`,"expires"in a&&(a.expires||0===a.expires)&&`Expires=${("number"==typeof a.expires?new Date(a.expires):a.expires).toUTCString()}`,"maxAge"in a&&"number"==typeof a.maxAge&&`Max-Age=${a.maxAge}`,"domain"in a&&a.domain&&`Domain=${a.domain}`,"secure"in a&&a.secure&&"Secure","httpOnly"in a&&a.httpOnly&&"HttpOnly","sameSite"in a&&a.sameSite&&`SameSite=${a.sameSite}`,"partitioned"in a&&a.partitioned&&"Partitioned","priority"in a&&a.priority&&`Priority=${a.priority}`].filter(Boolean),d=`${a.name}=${encodeURIComponent(null!=(b=a.value)?b:"")}`;return 0===c.length?d:`${d}; ${c.join("; ")}`}function h(a){let b=new Map;for(let c of a.split(/; */)){if(!c)continue;let a=c.indexOf("=");if(-1===a){b.set(c,"true");continue}let[d,e]=[c.slice(0,a),c.slice(a+1)];try{b.set(d,decodeURIComponent(null!=e?e:"true"))}catch{}}return b}function i(a){if(!a)return;let[[b,c],...d]=h(a),{domain:e,expires:f,httponly:g,maxage:i,path:l,samesite:m,secure:n,partitioned:o,priority:p}=Object.fromEntries(d.map(([a,b])=>[a.toLowerCase().replace(/-/g,""),b]));{var q,r,s={name:b,value:decodeURIComponent(c),domain:e,...f&&{expires:new Date(f)},...g&&{httpOnly:!0},..."string"==typeof i&&{maxAge:Number(i)},path:l,...m&&{sameSite:j.includes(q=(q=m).toLowerCase())?q:void 0},...n&&{secure:!0},...p&&{priority:k.includes(r=(r=p).toLowerCase())?r:void 0},...o&&{partitioned:!0}};let a={};for(let b in s)s[b]&&(a[b]=s[b]);return a}}((a,c)=>{for(var d in c)b(a,d,{get:c[d],enumerable:!0})})(f,{RequestCookies:()=>l,ResponseCookies:()=>m,parseCookie:()=>h,parseSetCookie:()=>i,stringifyCookie:()=>g}),a.exports=((a,f,g,h)=>{if(f&&"object"==typeof f||"function"==typeof f)for(let g of d(f))e.call(a,g)||void 0===g||b(a,g,{get:()=>f[g],enumerable:!(h=c(f,g))||h.enumerable});return a})(b({},"__esModule",{value:!0}),f);var j=["strict","lax","none"],k=["low","medium","high"],l=class{constructor(a){this._parsed=new Map,this._headers=a;let b=a.get("cookie");if(b)for(let[a,c]of h(b))this._parsed.set(a,{name:a,value:c})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed);if(!a.length)return c.map(([a,b])=>b);let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(([a])=>a===d).map(([a,b])=>b)}has(a){return this._parsed.has(a)}set(...a){let[b,c]=1===a.length?[a[0].name,a[0].value]:a,d=this._parsed;return d.set(b,{name:b,value:c}),this._headers.set("cookie",Array.from(d).map(([a,b])=>g(b)).join("; ")),this}delete(a){let b=this._parsed,c=Array.isArray(a)?a.map(a=>b.delete(a)):b.delete(a);return this._headers.set("cookie",Array.from(b).map(([a,b])=>g(b)).join("; ")),c}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(a=>`${a.name}=${encodeURIComponent(a.value)}`).join("; ")}},m=class{constructor(a){var b,c,d;this._parsed=new Map,this._headers=a;let e=null!=(d=null!=(c=null==(b=a.getSetCookie)?void 0:b.call(a))?c:a.get("set-cookie"))?d:[];for(let a of Array.isArray(e)?e:function(a){if(!a)return[];var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}(e)){let b=i(a);b&&this._parsed.set(b.name,b)}}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed.values());if(!a.length)return c;let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(a=>a.name===d)}has(a){return this._parsed.has(a)}set(...a){let[b,c,d]=1===a.length?[a[0].name,a[0].value,a[0]]:a,e=this._parsed;return e.set(b,function(a={name:"",value:""}){return"number"==typeof a.expires&&(a.expires=new Date(a.expires)),a.maxAge&&(a.expires=new Date(Date.now()+1e3*a.maxAge)),(null===a.path||void 0===a.path)&&(a.path="/"),a}({name:b,value:c,...d})),function(a,b){for(let[,c]of(b.delete("set-cookie"),a)){let a=g(c);b.append("set-cookie",a)}}(e,this._headers),this}delete(...a){let[b,c]="string"==typeof a[0]?[a[0]]:[a[0].name,a[0]];return this.set({...c,name:b,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(g).join("; ")}}},7757:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"formatNextPathnameInfo",{enumerable:!0,get:function(){return h}});let d=c(65303),e=c(31910),f=c(52237),g=c(68734);function h(a){let b=(0,g.addLocale)(a.pathname,a.locale,a.buildId?void 0:a.defaultLocale,a.ignorePrefix);return(a.buildId||!a.trailingSlash)&&(b=(0,d.removeTrailingSlash)(b)),a.buildId&&(b=(0,f.addPathSuffix)((0,e.addPathPrefix)(b,"/_next/data/"+a.buildId),"/"===a.pathname?"index.json":".json")),b=(0,e.addPathPrefix)(b,a.basePath),!a.buildId&&a.trailingSlash?b.endsWith("/")?b:(0,f.addPathSuffix)(b,"/"):(0,d.removeTrailingSlash)(b)}},9027:(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,{bootstrap:function(){return i},error:function(){return k},event:function(){return o},info:function(){return n},prefixes:function(){return f},ready:function(){return m},trace:function(){return p},wait:function(){return j},warn:function(){return l},warnOnce:function(){return r}});let d=c(33311),e=c(31730),f={wait:(0,d.white)((0,d.bold)("○")),error:(0,d.red)((0,d.bold)("⨯")),warn:(0,d.yellow)((0,d.bold)("⚠")),ready:"▲",info:(0,d.white)((0,d.bold)(" ")),event:(0,d.green)((0,d.bold)("✓")),trace:(0,d.magenta)((0,d.bold)("\xbb"))},g={log:"log",warn:"warn",error:"error"};function h(a,...b){(""===b[0]||void 0===b[0])&&1===b.length&&b.shift();let c=a in g?g[a]:"log",d=f[a];0===b.length?console[c](""):1===b.length&&"string"==typeof b[0]?console[c](" "+d+" "+b[0]):console[c](" "+d,...b)}function i(...a){console.log(" "+a.join(" "))}function j(...a){h("wait",...a)}function k(...a){h("error",...a)}function l(...a){h("warn",...a)}function m(...a){h("ready",...a)}function n(...a){h("info",...a)}function o(...a){h("event",...a)}function p(...a){h("trace",...a)}let q=new e.LRUCache(1e4,a=>a.length);function r(...a){let b=a.join(" ");q.has(b)||(q.set(b,b),l(...a))}},12690:(a,b)=>{"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,{getClientComponentLoaderMetrics:function(){return g},wrapClientComponentLoader:function(){return f}});let c=0,d=0,e=0;function f(a){return"performance"in globalThis?{require:(...b)=>{let f=performance.now();0===c&&(c=f);try{return e+=1,a.__next_app__.require(...b)}finally{d+=performance.now()-f}},loadChunk:(...b)=>{let c=performance.now(),e=a.__next_app__.loadChunk(...b);return e.finally(()=>{d+=performance.now()-c}),e}}:a.__next_app__}function g(a={}){let b=0===c?void 0:{clientComponentLoadStart:c,clientComponentLoadTimes:d,clientComponentLoadCount:e};return a.reset&&(c=0,d=0,e=0),b}},14884:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("cacheTag() is only available with the experimental.useCache config."),"__NEXT_ERROR_CODE",{value:"E628",enumerable:!1,configurable:!0})}Object.defineProperty(b,"z",{enumerable:!0,get:function(){return d}}),c(63033),c(43709)},26082:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RouteKind",{enumerable:!0,get:function(){return c}});var c=function(a){return a.PAGES="PAGES",a.PAGES_API="PAGES_API",a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.IMAGE="IMAGE",a}({})},30598:(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,{getSortedRouteObjects:function(){return d.getSortedRouteObjects},getSortedRoutes:function(){return d.getSortedRoutes},isDynamicRoute:function(){return e.isDynamicRoute}});let d=c(34476),e=c(81626)},31730:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"LRUCache",{enumerable:!0,get:function(){return e}});class c{constructor(a,b,c){this.prev=null,this.next=null,this.key=a,this.data=b,this.size=c}}class d{constructor(){this.prev=null,this.next=null}}class e{constructor(a,b,c){this.cache=new Map,this.totalSize=0,this.maxSize=a,this.calculateSize=b,this.onEvict=c,this.head=new d,this.tail=new d,this.head.next=this.tail,this.tail.prev=this.head}addToHead(a){a.prev=this.head,a.next=this.head.next,this.head.next.prev=a,this.head.next=a}removeNode(a){a.prev.next=a.next,a.next.prev=a.prev}moveToHead(a){this.removeNode(a),this.addToHead(a)}removeTail(){let a=this.tail.prev;return this.removeNode(a),a}set(a,b){let d=(null==this.calculateSize?void 0:this.calculateSize.call(this,b))??1;if(d<=0)throw Object.defineProperty(Error(`LRUCache: calculateSize returned ${d}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});if(d>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let e=this.cache.get(a);if(e)e.data=b,this.totalSize=this.totalSize-e.size+d,e.size=d,this.moveToHead(e);else{let e=new c(a,b,d);this.cache.set(a,e),this.addToHead(e),this.totalSize+=d}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let a=this.removeTail();this.cache.delete(a.key),this.totalSize-=a.size,null==this.onEvict||this.onEvict.call(this,a.key,a.data)}return!0}has(a){return this.cache.has(a)}get(a){let b=this.cache.get(a);if(b)return this.moveToHead(b),b.data}*[Symbol.iterator](){let a=this.head.next;for(;a&&a!==this.tail;){let b=a;yield[b.key,b.data],a=a.next}}remove(a){let b=this.cache.get(a);b&&(this.removeNode(b),this.cache.delete(a),this.totalSize-=b.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}},31910:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathPrefix",{enumerable:!0,get:function(){return e}});let d=c(2213);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return""+b+c+e+f}},32198:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return g}});let d=c(50931),e=c(97857),f=c(58871);class g{static #a=this.EMPTY=new g(null,{metadata:{},contentType:null});static fromStatic(a,b){return new g(a,{metadata:{},contentType:b})}constructor(a,{contentType:b,waitUntil:c,metadata:d}){this.response=a,this.contentType=b,this.metadata=d,this.waitUntil=c}assignMetadata(a){Object.assign(this.metadata,a)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(a=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!a)throw Object.defineProperty(new f.InvariantError("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return(0,d.streamToString)(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(a){a.close()}}):"string"==typeof this.response?(0,d.streamFromString)(this.response):Buffer.isBuffer(this.response)?(0,d.streamFromBuffer)(this.response):Array.isArray(this.response)?(0,d.chainStreams)(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[(0,d.streamFromString)(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[(0,d.streamFromBuffer)(this.response)]:[this.response]}unshift(a){this.response=this.coerce(),this.response.unshift(a)}push(a){this.response=this.coerce(),this.response.push(a)}async pipeTo(a){try{await this.readable.pipeTo(a,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await a.close()}catch(b){if((0,e.isAbortError)(b))return void await a.abort(b);throw b}}async pipeToNodeResponse(a){await (0,e.pipeToNodeResponse)(this.readable,a,this.waitUntil)}}},33311:(a,b)=>{"use strict";var c;Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{bgBlack:function(){return A},bgBlue:function(){return E},bgCyan:function(){return G},bgGreen:function(){return C},bgMagenta:function(){return F},bgRed:function(){return B},bgWhite:function(){return H},bgYellow:function(){return D},black:function(){return q},blue:function(){return u},bold:function(){return j},cyan:function(){return x},dim:function(){return k},gray:function(){return z},green:function(){return s},hidden:function(){return o},inverse:function(){return n},italic:function(){return l},magenta:function(){return v},purple:function(){return w},red:function(){return r},reset:function(){return i},strikethrough:function(){return p},underline:function(){return m},white:function(){return y},yellow:function(){return t}});let{env:d,stdout:e}=(null==(c=globalThis)?void 0:c.process)??{},f=d&&!d.NO_COLOR&&(d.FORCE_COLOR||(null==e?void 0:e.isTTY)&&!d.CI&&"dumb"!==d.TERM),g=(a,b,c,d)=>{let e=a.substring(0,d)+c,f=a.substring(d+b.length),h=f.indexOf(b);return~h?e+g(f,b,c,h):e+f},h=(a,b,c=a)=>f?d=>{let e=""+d,f=e.indexOf(b,a.length);return~f?a+g(e,b,c,f)+b:a+e+b}:String,i=f?a=>`\x1b[0m${a}\x1b[0m`:String,j=h("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m"),k=h("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),l=h("\x1b[3m","\x1b[23m"),m=h("\x1b[4m","\x1b[24m"),n=h("\x1b[7m","\x1b[27m"),o=h("\x1b[8m","\x1b[28m"),p=h("\x1b[9m","\x1b[29m"),q=h("\x1b[30m","\x1b[39m"),r=h("\x1b[31m","\x1b[39m"),s=h("\x1b[32m","\x1b[39m"),t=h("\x1b[33m","\x1b[39m"),u=h("\x1b[34m","\x1b[39m"),v=h("\x1b[35m","\x1b[39m"),w=h("\x1b[38;2;173;127;168m","\x1b[39m"),x=h("\x1b[36m","\x1b[39m"),y=h("\x1b[37m","\x1b[39m"),z=h("\x1b[90m","\x1b[39m"),A=h("\x1b[40m","\x1b[49m"),B=h("\x1b[41m","\x1b[49m"),C=h("\x1b[42m","\x1b[49m"),D=h("\x1b[43m","\x1b[49m"),E=h("\x1b[44m","\x1b[49m"),F=h("\x1b[45m","\x1b[49m"),G=h("\x1b[46m","\x1b[49m"),H=h("\x1b[47m","\x1b[49m")},34476:(a,b)=>{"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,{getSortedRouteObjects:function(){return e},getSortedRoutes:function(){return d}});class c{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a){void 0===a&&(a="/");let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(""+a+b+"/")).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(a+"["+this.slugName+"]/")),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error('You cannot define a route with the same specificity as a optional catch-all route ("'+b+'" and "'+b+"[[..."+this.optionalRestSlugName+']]").'),"__NEXT_ERROR_CODE",{value:"E458",enumerable:!1,configurable:!0});c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(a+"[..."+this.restSlugName+"]/")),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(a+"[[..."+this.optionalRestSlugName+"]]/")),c}_insert(a,b,d){if(0===a.length){this.placeholder=!1;return}if(d)throw Object.defineProperty(Error("Catch-all must be the last part of the URL."),"__NEXT_ERROR_CODE",{value:"E392",enumerable:!1,configurable:!0});let e=a[0];if(e.startsWith("[")&&e.endsWith("]")){let c=e.slice(1,-1),g=!1;if(c.startsWith("[")&&c.endsWith("]")&&(c=c.slice(1,-1),g=!0),c.startsWith("…"))throw Object.defineProperty(Error("Detected a three-dot character ('…') at ('"+c+"'). Did you mean ('...')?"),"__NEXT_ERROR_CODE",{value:"E147",enumerable:!1,configurable:!0});if(c.startsWith("...")&&(c=c.substring(3),d=!0),c.startsWith("[")||c.endsWith("]"))throw Object.defineProperty(Error("Segment names may not start or end with extra brackets ('"+c+"')."),"__NEXT_ERROR_CODE",{value:"E421",enumerable:!1,configurable:!0});if(c.startsWith("."))throw Object.defineProperty(Error("Segment names may not start with erroneous periods ('"+c+"')."),"__NEXT_ERROR_CODE",{value:"E288",enumerable:!1,configurable:!0});function f(a,c){if(null!==a&&a!==c)throw Object.defineProperty(Error("You cannot use different slug names for the same dynamic path ('"+a+"' !== '"+c+"')."),"__NEXT_ERROR_CODE",{value:"E337",enumerable:!1,configurable:!0});b.forEach(a=>{if(a===c)throw Object.defineProperty(Error('You cannot have the same slug name "'+c+'" repeat within a single dynamic path'),"__NEXT_ERROR_CODE",{value:"E247",enumerable:!1,configurable:!0});if(a.replace(/\W/g,"")===e.replace(/\W/g,""))throw Object.defineProperty(Error('You cannot have the slug names "'+a+'" and "'+c+'" differ only by non-word symbols within a single dynamic path'),"__NEXT_ERROR_CODE",{value:"E499",enumerable:!1,configurable:!0})}),b.push(c)}if(d)if(g){if(null!=this.restSlugName)throw Object.defineProperty(Error('You cannot use both an required and optional catch-all route at the same level ("[...'+this.restSlugName+']" and "'+a[0]+'" ).'),"__NEXT_ERROR_CODE",{value:"E299",enumerable:!1,configurable:!0});f(this.optionalRestSlugName,c),this.optionalRestSlugName=c,e="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error('You cannot use both an optional and required catch-all route at the same level ("[[...'+this.optionalRestSlugName+']]" and "'+a[0]+'").'),"__NEXT_ERROR_CODE",{value:"E300",enumerable:!1,configurable:!0});f(this.restSlugName,c),this.restSlugName=c,e="[...]"}else{if(g)throw Object.defineProperty(Error('Optional route parameters are not yet supported ("'+a[0]+'").'),"__NEXT_ERROR_CODE",{value:"E435",enumerable:!1,configurable:!0});f(this.slugName,c),this.slugName=c,e="[]"}}this.children.has(e)||this.children.set(e,new c),this.children.get(e)._insert(a.slice(1),b,d)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function d(a){let b=new c;return a.forEach(a=>b.insert(a)),b.smoosh()}function e(a,b){let c={},e=[];for(let d=0;d<a.length;d++){let f=b(a[d]);c[f]=d,e[d]=f}return d(e).map(b=>a[c[b]])}},37425:(a,b,c)=>{"use strict";Object.defineProperty(b,"M",{enumerable:!0,get:function(){return g}});let d=c(29294),e=c(63033),f=c(90151);function g(){let a=d.workAsyncStorage.getStore(),b=e.workUnitAsyncStorage.getStore();if(a){if(!a.forceStatic){if(a.isUnstableNoStore=!0,b)switch(b.type){case"prerender":case"prerender-client":case"prerender-runtime":return}(0,f.markCurrentScopeAsDynamic)(a,b,"unstable_noStore()")}}}},38526:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getNextPathnameInfo",{enumerable:!0,get:function(){return g}});let d=c(58999),e=c(78795),f=c(157);function g(a,b){var c,g;let{basePath:h,i18n:i,trailingSlash:j}=null!=(c=b.nextConfig)?c:{},k={pathname:a,trailingSlash:"/"!==a?a.endsWith("/"):j};h&&(0,f.pathHasPrefix)(k.pathname,h)&&(k.pathname=(0,e.removePathPrefix)(k.pathname,h),k.basePath=h);let l=k.pathname;if(k.pathname.startsWith("/_next/data/")&&k.pathname.endsWith(".json")){let a=k.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");k.buildId=a[0],l="index"!==a[1]?"/"+a.slice(1).join("/"):"/",!0===b.parseData&&(k.pathname=l)}if(i){let a=b.i18nProvider?b.i18nProvider.analyze(k.pathname):(0,d.normalizeLocalePath)(k.pathname,i.locales);k.locale=a.detectedLocale,k.pathname=null!=(g=a.pathname)?g:k.pathname,!a.detectedLocale&&k.buildId&&(a=b.i18nProvider?b.i18nProvider.analyze(l):(0,d.normalizeLocalePath)(l,i.locales)).detectedLocale&&(k.locale=a.detectedLocale)}return k}},43709:(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,{NEXT_PATCH_SYMBOL:function(){return n},createPatchedFetcher:function(){return t},patchFetch:function(){return u},validateRevalidate:function(){return o},validateTags:function(){return p}});let d=c(45441),e=c(36821),f=c(73443),g=c(90151),h=c(85384),i=c(75522),j=c(63033),k=c(56557),l=c(86331),m=c(84125),n=Symbol.for("next-patch");function o(a,b){try{let c;if(!1===a)c=f.INFINITE_CACHE;else if("number"==typeof a&&!isNaN(a)&&a>-1)c=a;else if(void 0!==a)throw Object.defineProperty(Error(`Invalid revalidate value "${a}" on "${b}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0});return c}catch(a){if(a instanceof Error&&a.message.includes("Invalid revalidate"))throw a;return}}function p(a,b){let c=[],d=[];for(let e=0;e<a.length;e++){let g=a[e];if("string"!=typeof g?d.push({tag:g,reason:"invalid type, must be a string"}):g.length>f.NEXT_CACHE_TAG_MAX_LENGTH?d.push({tag:g,reason:`exceeded max length of ${f.NEXT_CACHE_TAG_MAX_LENGTH}`}):c.push(g),c.length>f.NEXT_CACHE_TAG_MAX_ITEMS){console.warn(`Warning: exceeded max tag count for ${b}, dropped tags:`,a.slice(e).join(", "));break}}if(d.length>0)for(let{tag:a,reason:c}of(console.warn(`Warning: invalid tags passed to ${b}: `),d))console.log(`tag: "${a}" ${c}`);return c}function q(a,b){a.shouldTrackFetchMetrics&&(a.fetchMetrics??=[],a.fetchMetrics.push({...b,end:performance.timeOrigin+performance.now(),idx:a.nextFetchId||0}))}async function r(a,b,c,d,e,f){let g=await a.arrayBuffer(),h={headers:Object.fromEntries(a.headers.entries()),body:Buffer.from(g).toString("base64"),status:a.status,url:a.url};return c&&await d.set(b,{kind:k.CachedRouteKind.FETCH,data:h,revalidate:e},c),await f(),new Response(g,{headers:a.headers,status:a.status,statusText:a.statusText})}async function s(a,b,c,d,e,f,g,h,i){let[j,l]=(0,m.cloneResponse)(b),n=j.arrayBuffer().then(async a=>{let b=Buffer.from(a),h={headers:Object.fromEntries(j.headers.entries()),body:b.toString("base64"),status:j.status,url:j.url};null==f||f.set(c,h),d&&await e.set(c,{kind:k.CachedRouteKind.FETCH,data:h,revalidate:g},d)}).catch(a=>console.warn("Failed to set fetch cache",h,a)).finally(i),o=`cache-set-${c}`;return a.pendingRevalidates??={},o in a.pendingRevalidates&&await a.pendingRevalidates[o],a.pendingRevalidates[o]=n.finally(()=>{var b;(null==(b=a.pendingRevalidates)?void 0:b[o])&&delete a.pendingRevalidates[o]}),l}function t(a,{workAsyncStorage:b,workUnitAsyncStorage:c}){let i=async function(i,n){var t,u;let v;try{(v=new URL(i instanceof Request?i.url:i)).username="",v.password=""}catch{v=void 0}let w=(null==v?void 0:v.href)??"",x=(null==n||null==(t=n.method)?void 0:t.toUpperCase())||"GET",y=(null==n||null==(u=n.next)?void 0:u.internal)===!0,z="1"===process.env.NEXT_OTEL_FETCH_DISABLED,A=y?void 0:performance.timeOrigin+performance.now(),B=b.getStore(),C=c.getStore(),D=C?(0,j.getCacheSignal)(C):null;D&&D.beginRead();let E=(0,e.getTracer)().trace(y?d.NextNodeServerSpan.internalFetch:d.AppRenderSpan.fetch,{hideSpan:z,kind:e.SpanKind.CLIENT,spanName:["fetch",x,w].filter(Boolean).join(" "),attributes:{"http.url":w,"http.method":x,"net.peer.name":null==v?void 0:v.hostname,"net.peer.port":(null==v?void 0:v.port)||void 0}},async()=>{var b;let c,d,e,j,t,u;if(y||!B||B.isDraftMode)return a(i,n);let v=i&&"object"==typeof i&&"string"==typeof i.method,x=a=>(null==n?void 0:n[a])||(v?i[a]:null),z=a=>{var b,c,d;return void 0!==(null==n||null==(b=n.next)?void 0:b[a])?null==n||null==(c=n.next)?void 0:c[a]:v?null==(d=i.next)?void 0:d[a]:void 0},E=z("revalidate"),F=E,G=p(z("tags")||[],`fetch ${i.toString()}`);if(C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":c=C}if(c&&Array.isArray(G)){let a=c.tags??(c.tags=[]);for(let b of G)a.includes(b)||a.push(b)}let H=null==C?void 0:C.implicitTags,I=B.fetchCache;C&&"unstable-cache"===C.type&&(I="force-no-store");let J=!!B.isUnstableNoStore,K=x("cache"),L="";"string"==typeof K&&void 0!==F&&("force-cache"===K&&0===F||"no-store"===K&&(F>0||!1===F))&&(d=`Specified "cache: ${K}" and "revalidate: ${F}", only one should be specified.`,K=void 0,F=void 0);let M="no-cache"===K||"no-store"===K||"force-no-store"===I||"only-no-store"===I,N=!I&&!K&&!F&&B.forceDynamic;"force-cache"===K&&void 0===F?F=!1:(M||N)&&(F=0),("no-cache"===K||"no-store"===K)&&(L=`cache: ${K}`),u=o(F,B.route);let O=x("headers"),P="function"==typeof(null==O?void 0:O.get)?O:new Headers(O||{}),Q=P.get("authorization")||P.get("cookie"),R=!["get","head"].includes((null==(b=x("method"))?void 0:b.toLowerCase())||"get"),S=void 0==I&&(void 0==K||"default"===K)&&void 0==F,T=!!((Q||R)&&(null==c?void 0:c.revalidate)===0),U=!1;if(!T&&S&&(B.isBuildTimePrerendering?U=!0:T=!0),S&&void 0!==C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":return D&&(D.endRead(),D=null),(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}switch(I){case"force-no-store":L="fetchCache = force-no-store";break;case"only-no-store":if("force-cache"===K||void 0!==u&&u>0)throw Object.defineProperty(Error(`cache: 'force-cache' used on fetch for ${w} with 'export const fetchCache = 'only-no-store'`),"__NEXT_ERROR_CODE",{value:"E448",enumerable:!1,configurable:!0});L="fetchCache = only-no-store";break;case"only-cache":if("no-store"===K)throw Object.defineProperty(Error(`cache: 'no-store' used on fetch for ${w} with 'export const fetchCache = 'only-cache'`),"__NEXT_ERROR_CODE",{value:"E521",enumerable:!1,configurable:!0});break;case"force-cache":(void 0===F||0===F)&&(L="fetchCache = force-cache",u=f.INFINITE_CACHE)}if(void 0===u?"default-cache"!==I||J?"default-no-store"===I?(u=0,L="fetchCache = default-no-store"):J?(u=0,L="noStore call"):T?(u=0,L="auto no cache"):(L="auto cache",u=c?c.revalidate:f.INFINITE_CACHE):(u=f.INFINITE_CACHE,L="fetchCache = default-cache"):L||(L=`revalidate: ${u}`),!(B.forceStatic&&0===u)&&!T&&c&&u<c.revalidate){if(0===u){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return D&&(D.endRead(),D=null),(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,g.markCurrentScopeAsDynamic)(B,C,`revalidate: 0 fetch ${i} ${B.route}`)}c&&E===u&&(c.revalidate=u)}let V="number"==typeof u&&u>0,{incrementalCache:W}=B,X=!1;if(C)switch(C.type){case"request":case"cache":case"private-cache":X=C.isHmrRefresh??!1,j=C.serverComponentsHmrCache}if(W&&(V||j))try{e=await W.generateCacheKey(w,v?i:n)}catch(a){console.error("Failed to generate cache key for",i)}let Y=B.nextFetchId??1;B.nextFetchId=Y+1;let Z=()=>{},$=async(b,c)=>{let g=["cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","window","duplex",...b?[]:["signal"]];if(v){let a=i,b={body:a._ogBody||a.body};for(let c of g)b[c]=a[c];i=new Request(a.url,b)}else if(n){let{_ogBody:a,body:c,signal:d,...e}=n;n={...e,body:a||c,signal:b?void 0:d}}let h={...n,next:{...null==n?void 0:n.next,fetchType:"origin",fetchIdx:Y}};return a(i,h).then(async a=>{if(!b&&A&&q(B,{start:A,url:w,cacheReason:c||L,cacheStatus:0===u||c?"skip":"miss",cacheWarning:d,status:a.status,method:h.method||"GET"}),200===a.status&&W&&e&&(V||j)){let b=u>=f.INFINITE_CACHE?f.CACHE_ONE_YEAR:u,c=V?{fetchCache:!0,fetchUrl:w,fetchIdx:Y,tags:G,isImplicitBuildTimeCache:U}:void 0;switch(null==C?void 0:C.type){case"prerender":case"prerender-client":case"prerender-runtime":return r(a,e,c,W,b,Z);case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case void 0:return s(B,a,e,c,W,j,b,i,Z)}}return await Z(),a}).catch(a=>{throw Z(),a})},_=!1,aa=!1;if(e&&W){let a;if(X&&j&&(a=j.get(e),aa=!0),V&&!a){Z=await W.lock(e);let b=B.isOnDemandRevalidate?null:await W.get(e,{kind:k.IncrementalCacheKind.FETCH,revalidate:u,fetchUrl:w,fetchIdx:Y,tags:G,softTags:null==H?void 0:H.tags});if(S&&C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":await (0,l.waitAtLeastOneReactRenderTask)()}if(b?await Z():t="cache-control: no-cache (hard refresh)",(null==b?void 0:b.value)&&b.value.kind===k.CachedRouteKind.FETCH)if(B.isRevalidate&&b.isStale)_=!0;else{if(b.isStale&&(B.pendingRevalidates??={},!B.pendingRevalidates[e])){let a=$(!0).then(async a=>({body:await a.arrayBuffer(),headers:a.headers,status:a.status,statusText:a.statusText})).finally(()=>{B.pendingRevalidates??={},delete B.pendingRevalidates[e||""]});a.catch(console.error),B.pendingRevalidates[e]=a}a=b.value.data}}if(a){A&&q(B,{start:A,url:w,cacheReason:L,cacheStatus:aa?"hmr":"hit",cacheWarning:d,status:a.status||200,method:(null==n?void 0:n.method)||"GET"});let b=new Response(Buffer.from(a.body,"base64"),{headers:a.headers,status:a.status});return Object.defineProperty(b,"url",{value:a.url}),b}}if(B.isStaticGeneration&&n&&"object"==typeof n){let{cache:a}=n;if("no-store"===a){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return D&&(D.endRead(),D=null),(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,g.markCurrentScopeAsDynamic)(B,C,`no-store fetch ${i} ${B.route}`)}let b="next"in n,{next:d={}}=n;if("number"==typeof d.revalidate&&c&&d.revalidate<c.revalidate){if(0===d.revalidate){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,g.markCurrentScopeAsDynamic)(B,C,`revalidate: 0 fetch ${i} ${B.route}`)}B.forceStatic&&0===d.revalidate||(c.revalidate=d.revalidate)}b&&delete n.next}if(!e||!_)return $(!1,t);{let a=e;B.pendingRevalidates??={};let b=B.pendingRevalidates[a];if(b){let a=await b;return new Response(a.body,{headers:a.headers,status:a.status,statusText:a.statusText})}let c=$(!0,t).then(m.cloneResponse);return(b=c.then(async a=>{let b=a[0];return{body:await b.arrayBuffer(),headers:b.headers,status:b.status,statusText:b.statusText}}).finally(()=>{var b;(null==(b=B.pendingRevalidates)?void 0:b[a])&&delete B.pendingRevalidates[a]})).catch(()=>{}),B.pendingRevalidates[a]=b,c.then(a=>a[1])}});if(D)try{return await E}finally{D&&D.endRead()}return E};return i.__nextPatched=!0,i.__nextGetStaticStore=()=>b,i._nextOriginalFetch=a,globalThis[n]=!0,Object.defineProperty(i,"name",{value:"fetch",writable:!1}),i}function u(a){if(!0===globalThis[n])return;let b=(0,i.createDedupeFetch)(globalThis.fetch);globalThis.fetch=t(b,a)}},44500:(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,{RequestCookies:function(){return d.RequestCookies},ResponseCookies:function(){return d.ResponseCookies},stringifyCookie:function(){return d.stringifyCookie}});let d=c(7265)},47390:(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,{INTERNALS:function(){return h},NextRequest:function(){return i}});let d=c(69942),e=c(66568),f=c(91209),g=c(44500),h=Symbol("internal request");class i extends Request{constructor(a,b={}){let c="string"!=typeof a&&"url"in a?a.url:String(a);(0,e.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);let f=new d.NextURL(c,{headers:(0,e.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[h]={cookies:new g.RequestCookies(this.headers),nextUrl:f,url:f.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[h].cookies}get nextUrl(){return this[h].nextUrl}get page(){throw new f.RemovedPageError}get ua(){throw new f.RemovedUAError}get url(){return this[h].url}}},52237:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathSuffix",{enumerable:!0,get:function(){return e}});let d=c(2213);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return""+c+b+e+f}},56557:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return n}});let d=c(3017),e=c(31730),f=c(9027),g=c(86331),h=c(90914);function i(a,b){if(!a)return b;let c=parseInt(a,10);return Number.isFinite(c)&&c>0?c:b}!function(a,b){Object.keys(a).forEach(function(c){"default"===c||Object.prototype.hasOwnProperty.call(b,c)||Object.defineProperty(b,c,{enumerable:!0,get:function(){return a[c]}})})}(c(94062),b);let j=i(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),k=i(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),l="__ttl_sentinel__";function m(a,b){return`${a}\0${b??l}`}class n{constructor(a,b=k,c=j){this.batcher=d.Batcher.create({cacheKeyFn:({key:a,isOnDemandRevalidate:b})=>`${a}-${b?"1":"0"}`,schedulerFn:g.scheduleOnNextTick}),this.revalidateBatcher=d.Batcher.create({schedulerFn:g.scheduleOnNextTick}),this.evictedInvocationIDs=new Set,this.minimal_mode=a,this.maxSize=b,this.ttl=c,this.cache=new e.LRUCache(b,void 0,a=>{let b=function(a){let b=a.lastIndexOf("\0");if(-1===b)return;let c=a.slice(b+1);return c===l?void 0:c}(a);if(b){if(this.evictedInvocationIDs.size>=100){let a=this.evictedInvocationIDs.values().next().value;a&&this.evictedInvocationIDs.delete(a)}this.evictedInvocationIDs.add(b)}})}async get(a,b,c){if(!a)return b({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let b=m(a,c.invocationID),d=this.cache.get(b);if(d){if(void 0!==c.invocationID)return(0,h.toResponseCacheEntry)(d.entry);let a=Date.now();if(d.expiresAt>a)return(0,h.toResponseCacheEntry)(d.entry);this.cache.remove(b)}c.invocationID&&this.evictedInvocationIDs.has(c.invocationID)&&(0,f.warnOnce)(`Response cache entry was evicted for invocation ${c.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:d,isOnDemandRevalidate:e=!1,isFallback:g=!1,isRoutePPREnabled:i=!1,isPrefetch:j=!1,waitUntil:k,routeKind:l,invocationID:n}=c,o=await this.batcher.batch({key:a,isOnDemandRevalidate:e},(c,f)=>{let h=this.handleGet(a,b,{incrementalCache:d,isOnDemandRevalidate:e,isFallback:g,isRoutePPREnabled:i,isPrefetch:j,routeKind:l,invocationID:n},f);return k&&k(h),h});return(0,h.toResponseCacheEntry)(o)}async handleGet(a,b,c,d){let e=null,f=!1;try{if((e=this.minimal_mode?null:await c.incrementalCache.get(a,{kind:(0,h.routeKindToIncrementalCacheKind)(c.routeKind),isRoutePPREnabled:c.isRoutePPREnabled,isFallback:c.isFallback}))&&!c.isOnDemandRevalidate&&(d(e),f=!0,!e.isStale||c.isPrefetch))return e;let g=await this.revalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,null!==e&&!c.isOnDemandRevalidate,void 0,c.invocationID);if(!g){if(this.minimal_mode){let b=m(a,c.invocationID);this.cache.remove(b)}return null}return c.isOnDemandRevalidate,g}catch(a){if(f)return console.error(a),null;throw a}}async revalidate(a,b,c,d,e,f,g,h,i){return this.revalidateBatcher.batch(a,()=>{let j=this.handleRevalidate(a,b,c,d,e,f,g,i);return h&&h(j),j})}async handleRevalidate(a,b,c,d,e,f,g,i){try{let j=await e({hasResolved:g,previousCacheEntry:f,isRevalidating:!0});if(!j)return null;let k=await (0,h.fromResponseCacheEntry)({...j,isMiss:!f});if(k.cacheControl)if(this.minimal_mode){let b=m(a,i);this.cache.set(b,{entry:k,expiresAt:Date.now()+this.ttl})}else await b.set(a,k.value,{cacheControl:k.cacheControl,isRoutePPREnabled:c,isFallback:d});return k}catch(e){if(null==f?void 0:f.cacheControl){let e=Math.min(Math.max(f.cacheControl.revalidate||3,3),30),g=void 0===f.cacheControl.expire?void 0:Math.max(e+3,f.cacheControl.expire);await b.set(a,f.value,{cacheControl:{revalidate:e,expire:g},isRoutePPREnabled:c,isFallback:d})}throw e}}}},57100:(a,b)=>{"use strict";function c(a,b){let c;if((null==b?void 0:b.host)&&!Array.isArray(b.host))c=b.host.toString().split(":",1)[0];else{if(!a.hostname)return;c=a.hostname}return c.toLowerCase()}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getHostname",{enumerable:!0,get:function(){return c}})},58999:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"normalizeLocalePath",{enumerable:!0,get:function(){return d}});let c=new WeakMap;function d(a,b){let d;if(!b)return{pathname:a};let e=c.get(b);e||(e=b.map(a=>a.toLowerCase()),c.set(b,e));let f=a.split("/",2);if(!f[1])return{pathname:a};let g=f[1].toLowerCase(),h=e.indexOf(g);return h<0?{pathname:a}:(d=b[h],{pathname:a=a.slice(d.length+1)||"/",detectedLocale:d})}},65303:(a,b)=>{"use strict";function c(a){return a.replace(/\/$/,"")||"/"}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removeTrailingSlash",{enumerable:!0,get:function(){return c}})},66568:(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,{fromNodeOutgoingHttpHeaders:function(){return e},normalizeNextQueryParam:function(){return i},splitCookiesString:function(){return f},toNodeOutgoingHttpHeaders:function(){return g},validateURL:function(){return h}});let d=c(73443);function e(a){let b=new Headers;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:[d])void 0!==a&&("number"==typeof a&&(a=a.toString()),b.append(c,a));return b}function f(a){var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}function g(a){let b={},c=[];if(a)for(let[d,e]of a.entries())"set-cookie"===d.toLowerCase()?(c.push(...f(e)),b[d]=1===c.length?c[0]:c):b[d]=e;return b}function h(a){try{return String(new URL(String(a)))}catch(b){throw Object.defineProperty(Error(`URL is malformed "${String(a)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:b}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function i(a){for(let b of[d.NEXT_QUERY_PARAM_PREFIX,d.NEXT_INTERCEPTION_MARKER_PREFIX])if(a!==b&&a.startsWith(b))return a.substring(b.length);return null}},68734:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addLocale",{enumerable:!0,get:function(){return f}});let d=c(31910),e=c(157);function f(a,b,c,f){if(!b||b===c)return a;let g=a.toLowerCase();return!f&&((0,e.pathHasPrefix)(g,"/api")||(0,e.pathHasPrefix)(g,"/"+b.toLowerCase()))?a:(0,d.addPathPrefix)(a,"/"+b)}},69942:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextURL",{enumerable:!0,get:function(){return k}});let d=c(71136),e=c(7757),f=c(57100),g=c(38526),h=/(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/;function i(a,b){return new URL(String(a).replace(h,"localhost"),b&&String(b).replace(h,"localhost"))}let j=Symbol("NextURLInternal");class k{constructor(a,b,c){let d,e;"object"==typeof b&&"pathname"in b||"string"==typeof b?(d=b,e=c||{}):e=c||b||{},this[j]={url:i(a,d??e.base),options:e,basePath:""},this.analyze()}analyze(){var a,b,c,e,h;let i=(0,g.getNextPathnameInfo)(this[j].url.pathname,{nextConfig:this[j].options.nextConfig,parseData:!0,i18nProvider:this[j].options.i18nProvider}),k=(0,f.getHostname)(this[j].url,this[j].options.headers);this[j].domainLocale=this[j].options.i18nProvider?this[j].options.i18nProvider.detectDomainLocale(k):(0,d.detectDomainLocale)(null==(b=this[j].options.nextConfig)||null==(a=b.i18n)?void 0:a.domains,k);let l=(null==(c=this[j].domainLocale)?void 0:c.defaultLocale)||(null==(h=this[j].options.nextConfig)||null==(e=h.i18n)?void 0:e.defaultLocale);this[j].url.pathname=i.pathname,this[j].defaultLocale=l,this[j].basePath=i.basePath??"",this[j].buildId=i.buildId,this[j].locale=i.locale??l,this[j].trailingSlash=i.trailingSlash}formatPathname(){return(0,e.formatNextPathnameInfo)({basePath:this[j].basePath,buildId:this[j].buildId,defaultLocale:this[j].options.forceLocale?void 0:this[j].defaultLocale,locale:this[j].locale,pathname:this[j].url.pathname,trailingSlash:this[j].trailingSlash})}formatSearch(){return this[j].url.search}get buildId(){return this[j].buildId}set buildId(a){this[j].buildId=a}get locale(){return this[j].locale??""}set locale(a){var b,c;if(!this[j].locale||!(null==(c=this[j].options.nextConfig)||null==(b=c.i18n)?void 0:b.locales.includes(a)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${a}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[j].locale=a}get defaultLocale(){return this[j].defaultLocale}get domainLocale(){return this[j].domainLocale}get searchParams(){return this[j].url.searchParams}get host(){return this[j].url.host}set host(a){this[j].url.host=a}get hostname(){return this[j].url.hostname}set hostname(a){this[j].url.hostname=a}get port(){return this[j].url.port}set port(a){this[j].url.port=a}get protocol(){return this[j].url.protocol}set protocol(a){this[j].url.protocol=a}get href(){let a=this.formatPathname(),b=this.formatSearch();return`${this.protocol}//${this.host}${a}${b}${this.hash}`}set href(a){this[j].url=i(a),this.analyze()}get origin(){return this[j].url.origin}get pathname(){return this[j].url.pathname}set pathname(a){this[j].url.pathname=a}get hash(){return this[j].url.hash}set hash(a){this[j].url.hash=a}get search(){return this[j].url.search}set search(a){this[j].url.search=a}get password(){return this[j].url.password}set password(a){this[j].url.password=a}get username(){return this[j].url.username}set username(a){this[j].url.username=a}get basePath(){return this[j].basePath}set basePath(a){this[j].basePath=a.startsWith("/")?a:`/${a}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new k(String(this),this[j].options)}}},71136:(a,b)=>{"use strict";function c(a,b,c){if(a)for(let f of(c&&(c=c.toLowerCase()),a)){var d,e;if(b===(null==(d=f.domain)?void 0:d.split(":",1)[0].toLowerCase())||c===f.defaultLocale.toLowerCase()||(null==(e=f.locales)?void 0:e.some(a=>a.toLowerCase()===c)))return f}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"detectDomainLocale",{enumerable:!0,get:function(){return c}})},73443:(a,b)=>{"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,{ACTION_SUFFIX:function(){return o},APP_DIR_ALIAS:function(){return I},CACHE_ONE_YEAR:function(){return A},DOT_NEXT_ALIAS:function(){return G},ESLINT_DEFAULT_DIRS:function(){return aa},GSP_NO_RETURNED_VALUE:function(){return W},GSSP_COMPONENT_MEMBER_ERROR:function(){return Z},GSSP_NO_RETURNED_VALUE:function(){return X},HTML_CONTENT_TYPE_HEADER:function(){return d},INFINITE_CACHE:function(){return B},INSTRUMENTATION_HOOK_FILENAME:function(){return E},JSON_CONTENT_TYPE_HEADER:function(){return e},MATCHED_PATH_HEADER:function(){return h},MIDDLEWARE_FILENAME:function(){return C},MIDDLEWARE_LOCATION_REGEXP:function(){return D},NEXT_BODY_SUFFIX:function(){return r},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return z},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return t},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return u},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return y},NEXT_CACHE_TAGS_HEADER:function(){return s},NEXT_CACHE_TAG_MAX_ITEMS:function(){return w},NEXT_CACHE_TAG_MAX_LENGTH:function(){return x},NEXT_DATA_SUFFIX:function(){return p},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return g},NEXT_META_SUFFIX:function(){return q},NEXT_QUERY_PARAM_PREFIX:function(){return f},NEXT_RESUME_HEADER:function(){return v},NON_STANDARD_NODE_ENV:function(){return $},PAGES_DIR_ALIAS:function(){return F},PRERENDER_REVALIDATE_HEADER:function(){return i},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return j},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return Q},ROOT_DIR_ALIAS:function(){return H},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return P},RSC_ACTION_ENCRYPTION_ALIAS:function(){return O},RSC_ACTION_PROXY_ALIAS:function(){return L},RSC_ACTION_VALIDATE_ALIAS:function(){return K},RSC_CACHE_WRAPPER_ALIAS:function(){return M},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return N},RSC_MOD_REF_PROXY_ALIAS:function(){return J},RSC_PREFETCH_SUFFIX:function(){return k},RSC_SEGMENTS_DIR_SUFFIX:function(){return l},RSC_SEGMENT_SUFFIX:function(){return m},RSC_SUFFIX:function(){return n},SERVER_PROPS_EXPORT_ERROR:function(){return V},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return S},SERVER_PROPS_SSG_CONFLICT:function(){return T},SERVER_RUNTIME:function(){return ab},SSG_FALLBACK_EXPORT_ERROR:function(){return _},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return R},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return U},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return c},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return Y},WEBPACK_LAYERS:function(){return ad},WEBPACK_RESOURCE_QUERIES:function(){return ae}});let c="text/plain",d="text/html; charset=utf-8",e="application/json; charset=utf-8",f="nxtP",g="nxtI",h="x-matched-path",i="x-prerender-revalidate",j="x-prerender-revalidate-if-generated",k=".prefetch.rsc",l=".segments",m=".segment.rsc",n=".rsc",o=".action",p=".json",q=".meta",r=".body",s="x-next-cache-tags",t="x-next-revalidated-tags",u="x-next-revalidate-tag-token",v="next-resume",w=128,x=256,y=1024,z="_N_T_",A=31536e3,B=0xfffffffe,C="middleware",D=`(?:src/)?${C}`,E="instrumentation",F="private-next-pages",G="private-dot-next",H="private-next-root-dir",I="private-next-app-dir",J="next/dist/build/webpack/loaders/next-flight-loader/module-proxy",K="private-next-rsc-action-validate",L="private-next-rsc-server-reference",M="private-next-rsc-cache-wrapper",N="private-next-rsc-track-dynamic-import",O="private-next-rsc-action-encryption",P="private-next-rsc-action-client-wrapper",Q="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",R="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",S="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",T="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",U="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",V="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",W="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",X="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",Y="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",Z="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",$='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',_="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",aa=["app","pages","components","lib","src"],ab={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ac={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ad={...ac,GROUP:{builtinReact:[ac.reactServerComponents,ac.actionBrowser],serverOnly:[ac.reactServerComponents,ac.actionBrowser,ac.instrument,ac.middleware],neutralTarget:[ac.apiNode,ac.apiEdge],clientOnly:[ac.serverSideRendering,ac.appPagesBrowser],bundled:[ac.reactServerComponents,ac.actionBrowser,ac.serverSideRendering,ac.appPagesBrowser,ac.shared,ac.instrument,ac.middleware],appPages:[ac.reactServerComponents,ac.serverSideRendering,ac.appPagesBrowser,ac.actionBrowser]}},ae={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},75522:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupeFetch",{enumerable:!0,get:function(){return h}});let d=function(a,b){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=g(b);if(c&&c.has(a))return c.get(a);var d={__proto__:null},e=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var h=e?Object.getOwnPropertyDescriptor(a,f):null;h&&(h.get||h.set)?Object.defineProperty(d,f,h):d[f]=a[f]}return d.default=a,c&&c.set(a,d),d}(c(46204)),e=c(84125),f=c(58871);function g(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(g=function(a){return a?c:b})(a)}function h(a){let b=d.cache(a=>[]);return function(c,d){let g,h;if(d&&d.signal)return a(c,d);if("string"!=typeof c||d){let b="string"==typeof c||c instanceof URL?new Request(c,d):c;if("GET"!==b.method&&"HEAD"!==b.method||b.keepalive)return a(c,d);h=JSON.stringify([b.method,Array.from(b.headers.entries()),b.mode,b.redirect,b.credentials,b.referrer,b.referrerPolicy,b.integrity]),g=b.url}else h='["GET",[],null,"follow",null,null,null,null]',g=c;let i=b(g);for(let a=0,b=i.length;a<b;a+=1){let[b,c]=i[a];if(b===h)return c.then(()=>{let b=i[a][2];if(!b)throw Object.defineProperty(new f.InvariantError("No cached response"),"__NEXT_ERROR_CODE",{value:"E579",enumerable:!1,configurable:!0});let[c,d]=(0,e.cloneResponse)(b);return i[a][2]=d,c})}let j=a(c,d),k=[h,j,null];return i.push(k),j.then(a=>{let[b,c]=(0,e.cloneResponse)(a);return k[2]=c,b})}}},78697:(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,{INTERCEPTION_ROUTE_MARKERS:function(){return e},extractInterceptionRouteInformation:function(){return g},isInterceptionRouteAppPath:function(){return f}});let d=c(17916),e=["(..)(..)","(.)","(..)","(...)"];function f(a){return void 0!==a.split("/").find(a=>e.find(b=>a.startsWith(b)))}function g(a){let b,c,f;for(let d of a.split("/"))if(c=e.find(a=>d.startsWith(a))){[b,f]=a.split(c,2);break}if(!b||!c||!f)throw Object.defineProperty(Error("Invalid interception route: "+a+". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>"),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(b=(0,d.normalizeAppPath)(b),c){case"(.)":f="/"===b?"/"+f:b+"/"+f;break;case"(..)":if("/"===b)throw Object.defineProperty(Error("Invalid interception route: "+a+". Cannot use (..) marker at the root level, use (.) instead."),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});f=b.split("/").slice(0,-1).concat(f).join("/");break;case"(...)":f="/"+f;break;case"(..)(..)":let g=b.split("/");if(g.length<=2)throw Object.defineProperty(Error("Invalid interception route: "+a+". Cannot use (..)(..) marker at the root level or one level up."),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});f=g.slice(0,-2).concat(f).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:b,interceptedRoute:f}}},78795:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removePathPrefix",{enumerable:!0,get:function(){return e}});let d=c(157);function e(a,b){if(!(0,d.pathHasPrefix)(a,b))return a;let c=a.slice(b.length);return c.startsWith("/")?c:"/"+c}},81626:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isDynamicRoute",{enumerable:!0,get:function(){return g}});let d=c(78697),e=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,f=/\/\[[^/]+\](?=\/|$)/;function g(a,b){return(void 0===b&&(b=!0),(0,d.isInterceptionRouteAppPath)(a)&&(a=(0,d.extractInterceptionRouteInformation)(a).interceptedRoute),b)?f.test(a):e.test(a)}},84125:(a,b)=>{"use strict";let c;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"cloneResponse",{enumerable:!0,get:function(){return e}});let d=()=>{};function e(a){if(!a.body)return[a,a];let[b,d]=a.body.tee(),e=new Response(b,{status:a.status,statusText:a.statusText,headers:a.headers});Object.defineProperty(e,"url",{value:a.url,configurable:!0,enumerable:!0,writable:!1}),c&&e.body&&c.register(e,new WeakRef(e.body));let f=new Response(d,{status:a.status,statusText:a.statusText,headers:a.headers});return Object.defineProperty(f,"url",{value:a.url,configurable:!0,enumerable:!0,writable:!1}),[e,f]}globalThis.FinalizationRegistry&&(c=new FinalizationRegistry(a=>{let b=a.deref();b&&!b.locked&&b.cancel("Response object has been garbage collected").then(d)}))},88002:(a,b,c)=>{"use strict";function d(a){throw Object.defineProperty(Error("cacheLife() is only available with the experimental.useCache config."),"__NEXT_ERROR_CODE",{value:"E627",enumerable:!1,configurable:!0})}Object.defineProperty(b,"F",{enumerable:!0,get:function(){return d}}),c(29294),c(63033)},90475:(a,b)=>{"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,{NEXT_REQUEST_META:function(){return c},addRequestMeta:function(){return f},getRequestMeta:function(){return d},removeRequestMeta:function(){return g},setRequestMeta:function(){return e}});let c=Symbol.for("NextInternalRequestMeta");function d(a,b){let d=a[c]||{};return"string"==typeof b?d[b]:d}function e(a,b){return a[c]=b,b}function f(a,b,c){let f=d(a);return f[b]=c,e(a,f)}function g(a,b){let c=d(a);return delete c[b],e(a,c)}},90914:(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,{fromResponseCacheEntry:function(){return h},routeKindToIncrementalCacheKind:function(){return j},toResponseCacheEntry:function(){return i}});let d=c(94062),e=function(a){return a&&a.__esModule?a:{default:a}}(c(32198)),f=c(26082),g=c(73443);async function h(a){var b,c;return{...a,value:(null==(b=a.value)?void 0:b.kind)===d.CachedRouteKind.PAGES?{kind:d.CachedRouteKind.PAGES,html:await a.value.html.toUnchunkedString(!0),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===d.CachedRouteKind.APP_PAGE?{kind:d.CachedRouteKind.APP_PAGE,html:await a.value.html.toUnchunkedString(!0),postponed:a.value.postponed,rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,segmentData:a.value.segmentData}:a.value}}async function i(a){var b,c;return a?{isMiss:a.isMiss,isStale:a.isStale,cacheControl:a.cacheControl,value:(null==(b=a.value)?void 0:b.kind)===d.CachedRouteKind.PAGES?{kind:d.CachedRouteKind.PAGES,html:e.default.fromStatic(a.value.html,g.HTML_CONTENT_TYPE_HEADER),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===d.CachedRouteKind.APP_PAGE?{kind:d.CachedRouteKind.APP_PAGE,html:e.default.fromStatic(a.value.html,g.HTML_CONTENT_TYPE_HEADER),rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,postponed:a.value.postponed,segmentData:a.value.segmentData}:a.value}:null}function j(a){switch(a){case f.RouteKind.PAGES:return d.IncrementalCacheKind.PAGES;case f.RouteKind.APP_PAGE:return d.IncrementalCacheKind.APP_PAGE;case f.RouteKind.IMAGE:return d.IncrementalCacheKind.IMAGE;case f.RouteKind.APP_ROUTE:return d.IncrementalCacheKind.APP_ROUTE;case f.RouteKind.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${a}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return a}}},91209:(a,b)=>{"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,{PageSignatureError:function(){return c},RemovedPageError:function(){return d},RemovedUAError:function(){return e}});class c extends Error{constructor({page:a}){super(`The middleware "${a}" accepts an async API directly with the form:
2
+
3
+ export function middleware(request, event) {
4
+ return NextResponse.redirect('/new-location')
5
+ }
6
+
7
+ Read more: https://nextjs.org/docs/messages/middleware-new-signature
8
+ `)}}class d extends Error{constructor(){super(`The request.page has been deprecated in favour of \`URLPattern\`.
9
+ Read more: https://nextjs.org/docs/messages/middleware-request-page
10
+ `)}}class e extends Error{constructor(){super(`The request.ua has been removed in favour of \`userAgent\` function.
11
+ Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent
12
+ `)}}},91837:(a,b,c)=>{let d={unstable_cache:c(96822).e,revalidateTag:c(6946).revalidateTag,revalidatePath:c(6946).revalidatePath,unstable_expireTag:c(6946).unstable_expireTag,unstable_expirePath:c(6946).unstable_expirePath,unstable_noStore:c(37425).M,unstable_cacheLife:c(88002).F,unstable_cacheTag:c(14884).z};a.exports=d,b.unstable_cache=d.unstable_cache,b.revalidatePath=d.revalidatePath,b.revalidateTag=d.revalidateTag,b.unstable_expireTag=d.unstable_expireTag,b.unstable_expirePath=d.unstable_expirePath,b.unstable_noStore=d.unstable_noStore,b.unstable_cacheLife=d.unstable_cacheLife,b.unstable_cacheTag=d.unstable_cacheTag},94062:(a,b)=>{"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,{CachedRouteKind:function(){return c},IncrementalCacheKind:function(){return d}});var c=function(a){return a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.PAGES="PAGES",a.FETCH="FETCH",a.REDIRECT="REDIRECT",a.IMAGE="IMAGE",a}({}),d=function(a){return a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.PAGES="PAGES",a.FETCH="FETCH",a.IMAGE="IMAGE",a}({})},96822:(a,b,c)=>{"use strict";Object.defineProperty(b,"e",{enumerable:!0,get:function(){return k}});let d=c(73443),e=c(43709),f=c(29294),g=c(63033),h=c(56557),i=0;async function j(a,b,c,e,f,g,i){await b.set(c,{kind:h.CachedRouteKind.FETCH,data:{headers:{},body:JSON.stringify(a),status:200,url:""},revalidate:"number"!=typeof f?d.CACHE_ONE_YEAR:f},{fetchCache:!0,tags:e,fetchIdx:g,fetchUrl:i})}function k(a,b,c={}){if(0===c.revalidate)throw Object.defineProperty(Error(`Invariant revalidate: 0 can not be passed to unstable_cache(), must be "false" or "> 0" ${a.toString()}`),"__NEXT_ERROR_CODE",{value:"E57",enumerable:!1,configurable:!0});let d=c.tags?(0,e.validateTags)(c.tags,`unstable_cache ${a.toString()}`):[];(0,e.validateRevalidate)(c.revalidate,`unstable_cache ${a.name||a.toString()}`);let l=`${a.toString()}-${Array.isArray(b)&&b.join(",")}`;return async(...b)=>{let e=f.workAsyncStorage.getStore(),k=g.workUnitAsyncStorage.getStore(),m=(null==e?void 0:e.incrementalCache)||globalThis.__incrementalCache;if(!m)throw Object.defineProperty(Error(`Invariant: incrementalCache missing in unstable_cache ${a.toString()}`),"__NEXT_ERROR_CODE",{value:"E469",enumerable:!1,configurable:!0});let n=k?(0,g.getCacheSignal)(k):null;n&&n.beginRead();try{let f=e&&k?function(a,b){switch(b.type){case"request":let c=b.url.pathname,d=new URLSearchParams(b.url.search),e=[...d.keys()].sort((a,b)=>a.localeCompare(b)).map(a=>`${a}=${d.get(a)}`).join("&");return`${c}${e.length?"?":""}${e}`;case"prerender":case"prerender-client":case"prerender-runtime":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return a.route;default:return b}}(e,k):"",n=`${l}-${JSON.stringify(b)}`,o=await m.generateCacheKey(n),p=`unstable_cache ${f} ${a.name?` ${a.name}`:o}`,q=(e?e.nextFetchId:i)??1,r=null==k?void 0:k.implicitTags,s={type:"unstable-cache",phase:"render",implicitTags:r,draftMode:k&&e&&(0,g.getDraftModeProviderForCacheScope)(e,k)};if(e){e.nextFetchId=q+1;let f=!1;if(k)switch(k.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-legacy":"number"==typeof c.revalidate&&(k.revalidate<c.revalidate||(k.revalidate=c.revalidate));let i=k.tags;if(null===i)k.tags=d.slice();else for(let a of d)i.includes(a)||i.push(a);break;case"unstable-cache":f=!0}if(!f&&"force-no-store"!==e.fetchCache&&!e.isOnDemandRevalidate&&!m.isOnDemandRevalidate&&!e.isDraftMode){let f=await m.get(o,{kind:h.IncrementalCacheKind.FETCH,revalidate:c.revalidate,tags:d,softTags:null==r?void 0:r.tags,fetchIdx:q,fetchUrl:p});if(f&&f.value)if(f.value.kind!==h.CachedRouteKind.FETCH)console.error(`Invariant invalid cacheEntry returned for ${n}`);else{let h=void 0!==f.value.data.body?JSON.parse(f.value.data.body):void 0;if(f.isStale){if(e.pendingRevalidates||(e.pendingRevalidates={}),!e.pendingRevalidates[n]){let f=g.workUnitAsyncStorage.run(s,a,...b).then(async a=>(await j(a,m,o,d,c.revalidate,q,p),a)).catch(a=>(console.error(`revalidating cache with key: ${n}`,a),h));e.isRevalidate&&f.catch(()=>{}),e.pendingRevalidates[n]=f}if(e.isRevalidate)return e.pendingRevalidates[n]}return h}}let l=await g.workUnitAsyncStorage.run(s,a,...b);return e.isDraftMode||(e.pendingRevalidates||(e.pendingRevalidates={}),e.pendingRevalidates[n]=j(l,m,o,d,c.revalidate,q,p)),l}{if(i+=1,!m.isOnDemandRevalidate){let a=await m.get(o,{kind:h.IncrementalCacheKind.FETCH,revalidate:c.revalidate,tags:d,fetchIdx:q,fetchUrl:p,softTags:null==r?void 0:r.tags});if(a&&a.value){if(a.value.kind!==h.CachedRouteKind.FETCH)console.error(`Invariant invalid cacheEntry returned for ${n}`);else if(!a.isStale)return void 0!==a.value.data.body?JSON.parse(a.value.data.body):void 0}}let e=await g.workUnitAsyncStorage.run(s,a,...b);return await j(e,m,o,d,c.revalidate,q,p),e}}finally{n&&n.endRead()}}}},96865:(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,{NextRequestAdapter:function(){return l},ResponseAborted:function(){return i},ResponseAbortedName:function(){return h},createAbortController:function(){return j},signalFromNodeResponse:function(){return k}});let d=c(90475),e=c(66568),f=c(47390),g=c(97610),h="ResponseAborted";class i extends Error{constructor(...a){super(...a),this.name=h}}function j(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new i)}),b}function k(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new i);let{signal:d}=j(a);return d}class l{static fromBaseNextRequest(a,b){if((0,g.isNodeNextRequest)(a))return l.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,g=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(g=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,d.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new f.NextRequest(c,{method:a.method,headers:(0,e.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:g}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new f.NextRequest(a.url,{method:a.method,headers:(0,e.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},97610:(a,b)=>{"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,{isNodeNextRequest:function(){return e},isNodeNextResponse:function(){return f},isWebNextRequest:function(){return c},isWebNextResponse:function(){return d}});let c=a=>!1,d=a=>!1,e=a=>!0,f=a=>!0},97857:(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,{isAbortError:function(){return i},pipeToNodeResponse:function(){return j}});let d=c(96865),e=c(42474),f=c(36821),g=c(45441),h=c(12690);function i(a){return(null==a?void 0:a.name)==="AbortError"||(null==a?void 0:a.name)===d.ResponseAbortedName}async function j(a,b,c){try{let{errored:i,destroyed:j}=b;if(i||j)return;let k=(0,d.createAbortController)(b),l=function(a,b){let c=!1,d=new e.DetachedPromise;function i(){d.resolve()}a.on("drain",i),a.once("close",()=>{a.off("drain",i),d.resolve()});let j=new e.DetachedPromise;return a.once("finish",()=>{j.resolve()}),new WritableStream({write:async b=>{if(!c){if(c=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let a=(0,h.getClientComponentLoaderMetrics)();a&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:a.clientComponentLoadStart,end:a.clientComponentLoadStart+a.clientComponentLoadTimes})}a.flushHeaders(),(0,f.getTracer)().trace(g.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}try{let c=a.write(b);"flush"in a&&"function"==typeof a.flush&&a.flush(),c||(await d.promise,d=new e.DetachedPromise)}catch(b){throw a.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:b}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:b=>{a.writableFinished||a.destroy(b)},close:async()=>{if(b&&await b,!a.writableFinished)return a.end(),j.promise}})}(b,c);await a.pipeTo(l,{signal:k.signal})}catch(a){if(i(a))return;throw Object.defineProperty(Error("failed to pipe response",{cause:a}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}}};
@@ -0,0 +1 @@
1
+ exports.id=903,exports.ids=[903],exports.modules={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"})})}},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)},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)},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")},40753:(a,b,c)=>{"use strict";c.d(b,{z:()=>e});var d=c(75338);function e({title:a,subtitle:b,right:c,titleAdornment:e}){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.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("h1",{className:"text-headline-md text-ink font-semibold",children:a}),e]}),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})]})}},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)},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("/home/runner/work/agentgraphed/agentgraphed/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)},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})]})}},82161:(a,b,c)=>{"use strict";var d=c(93045);c.o(d,"notFound")&&c.d(b,{notFound:function(){return d.notFound}})},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)},99044:(a,b,c)=>{"use strict";c.d(b,{G:()=>e});var d=c(48161);function e(a){if(!a)return a;let b=process.env.AGENTGRAPHED_DEMO_HOME;if(!b)return a;let c=(0,d.homedir)();return a.startsWith(c)?b+a.slice(c.length):a.replace(/^(\/Users|\/home)\/[^/]+/,b)}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=944,exports.ids=[944],exports.modules={10944:(a,b,c)=>{c.d(b,{Cj:()=>z,Dq:()=>s,Ht:()=>q,JQ:()=>n,K6:()=>w,LQ:()=>j,PL:()=>D,Pw:()=>v,Qd:()=>A,TN:()=>u,U1:()=>o,ZC:()=>C,dS:()=>t,fZ:()=>B,jU:()=>y,k$:()=>m,lS:()=>r,rz:()=>k,sW:()=>p,zR:()=>x});var d=c(22446),e=c(46145),f=c(76846),g=c(97064),h=c(25742);let i=`
1
+ "use strict";exports.id=944,exports.ids=[944],exports.modules={10944:(a,b,c)=>{c.d(b,{Cj:()=>A,Dq:()=>t,Ht:()=>q,JQ:()=>n,K6:()=>x,KM:()=>D,LQ:()=>j,PL:()=>H,Pw:()=>w,Qd:()=>B,TN:()=>v,U1:()=>o,ZC:()=>G,cL:()=>r,dS:()=>u,fZ:()=>C,i5:()=>F,jU:()=>z,k$:()=>m,lS:()=>s,rz:()=>k,sW:()=>p,zR:()=>y});var d=c(22446),e=c(46145),f=c(76846),g=c(97064),h=c(25742);let i=`
2
2
  s.id, s.provider, s.project_id, p.name AS project_name, s.cwd,
3
3
  s.started_at, s.ended_at, s.duration_ms, s.model,
4
4
  s.message_count, s.user_message_count,
@@ -6,8 +6,8 @@
6
6
  s.est_cost_usd, s.first_prompt, s.summary,
7
7
  s.heuristic_title, s.category, s.categories, s.keywords,
8
8
  s.git_branch
9
- `,j=g.L;function k(){let{start:a,end:b}=function(){let a=new Date,b=new Date(a.getFullYear(),a.getMonth(),a.getDate()).getTime();return{start:b,end:b+864e5}}();return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id
10
- WHERE s.started_at < ? AND s.ended_at >= ? ORDER BY s.started_at DESC`).all(b,a)}function l(a){let b=new Date(a);return new Date(b.getFullYear(),b.getMonth(),b.getDate()).getTime()}function m(a={}){let b=a.limit??60,c=a.before??Date.now()+1,f=["s.started_at < ?"],g=[c];if(a.projectId&&(f.push("s.project_id = ?"),g.push(a.projectId)),a.provider&&(f.push("s.provider = ?"),g.push(a.provider)),a.search){f.push("(s.first_prompt LIKE ? OR s.summary LIKE ?)");let b=`%${a.search}%`;g.push(b,b)}let h=(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id
9
+ `,j=g.LQ;function k(a,b){let{start:c,end:e}=function(){let a=new Date,b=new Date(a.getFullYear(),a.getMonth(),a.getDate()).getTime();return{start:b,end:b+864e5}}(),f=a?" AND s.project_id = ?":"",g=E(b??null,"s");return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id
10
+ WHERE s.started_at < ? AND s.ended_at >= ?${f}${g.sql} ORDER BY s.started_at DESC`).all(e,c,...a?[a]:[],...g.params)}function l(a){let b=new Date(a);return new Date(b.getFullYear(),b.getMonth(),b.getDate()).getTime()}function m(a={}){let b=a.limit??60,c=a.before??Date.now()+1,f=["s.started_at < ?"],g=[c];if(a.projectId&&(f.push("s.project_id = ?"),g.push(a.projectId)),a.provider&&(f.push("s.provider = ?"),g.push(a.provider)),a.search){f.push("(s.first_prompt LIKE ? OR s.summary LIKE ?)");let b=`%${a.search}%`;g.push(b,b)}let h=(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id
11
11
  WHERE ${f.join(" AND ")}
12
12
  ORDER BY s.started_at DESC LIMIT ?`).all(...g,b),j=new Map,k=a=>{let b=(0,e.EL)(a),c=j.get(b);return c||(c={day:b,dayMs:a,entries:[],totalTokens:0,totalCost:0,providers:{}},j.set(b,c)),c};for(let a of h){let b=l(a.started_at),c=l(a.ended_at),d=Math.max(1,Math.round((c-b)/864e5)+1),e=a.input_tokens+a.output_tokens+a.cache_read_tokens+a.cache_write_tokens;if(b===c){let c=k(b);c.entries.push({session:a,role:"single",spanDays:1}),c.totalTokens+=e,c.totalCost+=a.est_cost_usd,c.providers[a.provider]=(c.providers[a.provider]||0)+1;continue}for(let f=b;f<=c;f+=864e5){let g=k(f),h=f===b?"started":f===c?"closed":"continued";g.entries.push({session:a,role:h,spanDays:d}),"closed"===h&&(g.totalTokens+=e,g.totalCost+=a.est_cost_usd,g.providers[a.provider]=(g.providers[a.provider]||0)+1)}}for(let a of j.values())a.entries.sort((a,b)=>b.session.started_at-a.session.started_at);return[...j.values()].sort((a,b)=>b.dayMs-a.dayMs)}function n(){return(0,h.n)("getProjects",5e3,()=>(0,d.x)().prepare(`SELECT p.id, p.name, p.root_path, p.git_remote, p.first_seen, p.last_active,
13
13
  COUNT(s.id) AS sessions,
@@ -20,17 +20,22 @@
20
20
  COALESCE(SUM(s.est_cost_usd), 0) AS cost
21
21
  FROM projects p LEFT JOIN sessions s ON s.project_id = p.id
22
22
  WHERE p.id = ? GROUP BY p.id`).get(a)??null}function p(a,b=100){return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id
23
- WHERE s.project_id = ? ORDER BY s.started_at DESC LIMIT ?`).all(a,b)}function q(a){return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id WHERE s.id = ?`).get(a)??null}function r(a){return(0,d.x)().prepare("SELECT id, role, content, timestamp, model FROM messages WHERE session_id = ? ORDER BY timestamp ASC LIMIT 200").all(a)}function s(a={}){let b=a.limit??200,c=a.offset??0,e=[],f=[];a.provider&&(e.push("s.provider = ?"),f.push(a.provider)),a.projectId&&(e.push("s.project_id = ?"),f.push(a.projectId));let g=e.length?`WHERE ${e.join(" AND ")}`:"";return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id ${g}
24
- ORDER BY s.started_at DESC LIMIT ? OFFSET ?`).all(...f,b,c)}function t(a=30){return(0,h.n)(`getDailySeries:${a}`,5e3,()=>(function(a){let b,c,f=(0,d.x)();if(null===a){let a=f.prepare("SELECT MIN(started_at) AS min FROM sessions").get();if(!a.min)return[];b=a.min,c=Math.max(1,Math.ceil((Date.now()-b)/864e5)+1)}else b=Date.now()-864e5*a,c=a;let g=f.prepare(`SELECT started_at, input_tokens, output_tokens, cache_read_tokens, cache_write_tokens, est_cost_usd
25
- FROM sessions WHERE started_at >= ?`).all(b),h=new Map;for(let a=0;a<c;a++){let b=new Date;b.setDate(b.getDate()-a),b.setHours(0,0,0,0);let c=(0,e.EL)(b.getTime());h.set(c,{day:c,sessions:0,tokens:0,cost:0})}for(let a of g){let b=(0,e.EL)(a.started_at),c=h.get(b);c&&(c.sessions+=1,c.tokens+=a.input_tokens+a.output_tokens+a.cache_read_tokens+a.cache_write_tokens,c.cost+=a.est_cost_usd)}return[...h.values()].sort((a,b)=>a.day.localeCompare(b.day))})(a))}function u(){return(0,h.n)("getProviderBreakdown",5e3,()=>(0,d.x)().prepare(`SELECT provider,
23
+ WHERE s.project_id = ? ORDER BY s.started_at DESC LIMIT ?`).all(a,b)}function q(a){return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id WHERE s.id = ?`).get(a)??null}function r(a){let b=(0,d.x)().prepare(`SELECT COALESCE(model, '') AS model, COUNT(*) AS n
24
+ FROM messages WHERE session_id = ? AND role = 'assistant' GROUP BY model`).all(a),c=new Map;for(let a of b){if(!a.model)continue;let b=(0,f.gW)(a.model);c.set(b,(c.get(b)||0)+a.n)}return c.size<=1?[]:[...c.entries()].map(([a,b])=>({family:a,messages:b})).sort((a,b)=>b.messages-a.messages)}function s(a){return(0,d.x)().prepare("SELECT id, role, content, timestamp, model FROM messages WHERE session_id = ? ORDER BY timestamp ASC LIMIT 200").all(a)}function t(a={}){let b=a.limit??200,c=a.offset??0,e=[],f=[];a.provider&&(e.push("s.provider = ?"),f.push(a.provider)),a.projectId&&(e.push("s.project_id = ?"),f.push(a.projectId));let g=e.length?`WHERE ${e.join(" AND ")}`:"";return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id ${g}
25
+ ORDER BY s.started_at DESC LIMIT ? OFFSET ?`).all(...f,b,c)}function u(a=30,b,c){return(0,h.n)(`getDailySeries:${a}:${b??""}:${c??""}`,5e3,()=>(function(a,b,c){let f,g,h=(0,d.x)(),i=b?" AND s.project_id = ?":"",j=b?[b]:[],k=E(c,"s");if(null===a){let a=h.prepare(`SELECT MIN(m.timestamp) AS min FROM messages m
26
+ JOIN sessions s ON s.id = m.session_id WHERE 1=1${i}${k.sql}`).get(...j,...k.params);if(!a.min)return[];f=a.min,g=Math.max(1,Math.ceil((Date.now()-f)/864e5)+1)}else f=Date.now()-864e5*a,g=a;let l=h.prepare(`SELECT m.timestamp, m.session_id,
27
+ m.input_tokens, m.output_tokens, m.cache_read_tokens, m.cache_write_tokens, m.est_cost_usd
28
+ FROM messages m JOIN sessions s ON s.id = m.session_id
29
+ WHERE m.timestamp >= ?${i}${k.sql}`).all(f,...j,...k.params),m=new Map,n=new Map;for(let a=0;a<g;a++){let b=new Date;b.setDate(b.getDate()-a),b.setHours(0,0,0,0);let c=(0,e.EL)(b.getTime());m.set(c,{day:c,sessions:0,tokens:0,cost:0}),n.set(c,new Set)}for(let a of l){let b=(0,e.EL)(a.timestamp),c=m.get(b);c&&(c.tokens+=a.input_tokens+a.output_tokens+a.cache_read_tokens+a.cache_write_tokens,c.cost+=a.est_cost_usd,n.get(b).add(a.session_id))}for(let[a,b]of n){let c=m.get(a);c&&(c.sessions=b.size)}return[...m.values()].sort((a,b)=>a.day.localeCompare(b.day))})(a,b??null,c??null))}function v(){return(0,h.n)("getProviderBreakdown",5e3,()=>(0,d.x)().prepare(`SELECT provider,
26
30
  COUNT(*) AS sessions,
27
31
  SUM(input_tokens + output_tokens + cache_read_tokens + cache_write_tokens) AS tokens,
28
32
  SUM(est_cost_usd) AS cost
29
- FROM sessions GROUP BY provider ORDER BY tokens DESC`).all())}function v(){return(0,h.n)("getModelBreakdown",5e3,()=>(function(){let a=(0,d.x)().prepare(`SELECT COALESCE(model, 'unknown') AS model,
30
- COUNT(*) AS sessions,
31
- SUM(input_tokens + output_tokens + cache_read_tokens + cache_write_tokens) AS tokens,
32
- SUM(est_cost_usd) AS cost
33
- FROM sessions GROUP BY model`).all(),b=new Map;for(let c of a){let a=(0,f.gW)(c.model),d=b.get(a);d?(d.sessions+=c.sessions,d.tokens+=c.tokens,d.cost+=c.cost):b.set(a,{model:a,sessions:c.sessions,tokens:c.tokens,cost:c.cost})}return[...b.values()].sort((a,b)=>b.tokens-a.tokens).slice(0,12)})())}function w(){return(0,h.n)("getOverview",5e3,()=>(0,d.x)().prepare(`SELECT
33
+ FROM sessions GROUP BY provider ORDER BY tokens DESC`).all())}function w(a=null,b){return(0,h.n)(`getModelBreakdown:${a??"all"}:${b??""}`,5e3,()=>(function(a,b){let c=["m.input_tokens + m.output_tokens + m.cache_read_tokens + m.cache_write_tokens > 0"],e=[];null!==a&&(c.push("m.timestamp >= ?"),e.push(Date.now()-864e5*a)),b&&(c.push("s.project_id = ?"),e.push(b));let g=`WHERE ${c.join(" AND ")}`,h=(0,d.x)().prepare(`SELECT COALESCE(m.model, s.model, 'unknown') AS model,
34
+ COUNT(DISTINCT m.session_id) AS sessions,
35
+ SUM(m.input_tokens + m.output_tokens + m.cache_read_tokens + m.cache_write_tokens) AS tokens,
36
+ SUM(m.est_cost_usd) AS cost
37
+ FROM messages m JOIN sessions s ON s.id = m.session_id
38
+ ${g} GROUP BY COALESCE(m.model, s.model, 'unknown')`).all(...e),i=new Map;for(let a of h){let b=(0,f.gW)(a.model),c=i.get(b);c?(c.sessions+=a.sessions,c.tokens+=a.tokens,c.cost+=a.cost):i.set(b,{model:b,sessions:a.sessions,tokens:a.tokens,cost:a.cost})}return[...i.values()].sort((a,b)=>b.tokens-a.tokens).slice(0,12)})(a,b??null))}function x(){return(0,h.n)("getOverview",5e3,()=>(0,d.x)().prepare(`SELECT
34
39
  COUNT(*) AS sessions,
35
40
  COUNT(DISTINCT project_id) AS projects,
36
41
  COALESCE(SUM(input_tokens + output_tokens + cache_read_tokens + cache_write_tokens), 0) AS tokens,
@@ -38,25 +43,31 @@
38
43
  COUNT(DISTINCT strftime('%Y-%m', started_at/1000, 'unixepoch')) AS active_months,
39
44
  MIN(started_at) AS first_session,
40
45
  MAX(started_at) AS last_session
41
- FROM sessions`).get())}function x(a=12){return(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id
42
- ORDER BY s.started_at DESC LIMIT ?`).all(a)}function y(a=30,b=6){return(0,h.n)(`getProjectBreakdown:${a}:${b}`,5e3,()=>(function(a,b){let c=null===a?0:Date.now()-864e5*a;return(0,d.x)().prepare(`SELECT p.id, p.name, p.last_active,
43
- COUNT(s.id) AS sessions,
44
- COALESCE(SUM(s.input_tokens + s.output_tokens + s.cache_read_tokens + s.cache_write_tokens), 0) AS tokens,
45
- COALESCE(SUM(s.est_cost_usd), 0) AS cost
46
- FROM projects p JOIN sessions s ON s.project_id = p.id
47
- WHERE s.started_at >= ?
48
- GROUP BY p.id ORDER BY tokens DESC LIMIT ?`).all(c,b)})(a,b))}function z(a=30){return(0,h.n)(`getCategoryBreakdown:${a}`,5e3,()=>(function(a){let b=null===a?0:Date.now()-864e5*a,c=(0,d.x)().prepare(`SELECT category, categories,
49
- (input_tokens + output_tokens + cache_read_tokens + cache_write_tokens) AS tokens
50
- FROM sessions WHERE started_at >= ?`).all(b),e=new Map;for(let a of c){let b=(0,g.L)(a);for(let c of b.length?b:["Unknown"]){let b=e.get(c)??{sessions:0,tokens:0};b.sessions+=1,b.tokens+=a.tokens,e.set(c,b)}}return[...e.entries()].map(([a,b])=>({category:a,...b})).sort((a,b)=>b.sessions-a.sessions)})(a))}function A(a=30){return(0,h.n)(`getRangeSummary:${a}`,5e3,()=>(function(a){let b=(0,d.x)(),c=Date.now(),e=null===a?0:c-864e5*a,f=null===a?0:e-864e5*a,g=b.prepare(`SELECT COUNT(*) AS sessions,
51
- COUNT(DISTINCT project_id) AS projects,
52
- COALESCE(SUM(input_tokens + output_tokens + cache_read_tokens + cache_write_tokens), 0) AS tokens,
53
- COALESCE(SUM(est_cost_usd), 0) AS cost,
54
- COUNT(DISTINCT strftime('%Y-%m', started_at/1000, 'unixepoch')) AS active_months
55
- FROM sessions WHERE started_at >= ?`).get(e);if(null===a)return{...g,sessions_prev:0,tokens_prev:0,cost_prev:0,active_months_prev:0};let h=b.prepare(`SELECT COUNT(*) AS sessions,
56
- COALESCE(SUM(input_tokens + output_tokens + cache_read_tokens + cache_write_tokens), 0) AS tokens,
57
- COALESCE(SUM(est_cost_usd), 0) AS cost,
58
- COUNT(DISTINCT strftime('%Y-%m', started_at/1000, 'unixepoch')) AS active_months
59
- FROM sessions WHERE started_at >= ? AND started_at < ?`).get(f,e);return{...g,sessions_prev:h.sessions,tokens_prev:h.tokens,cost_prev:h.cost,active_months_prev:h.active_months}})(a))}function B(a){let b=(0,d.x)().prepare("SELECT summary FROM day_summaries WHERE day = ?").get(a);return b?.summary??null}function C(a,b){(0,d.x)().prepare("INSERT OR REPLACE INTO settings (key, value) VALUES (?, ?)").run(a,b)}function D(a){let b=(0,d.x)().prepare("SELECT value FROM settings WHERE key = ?").get(a);return b?.value??null}},22446:(a,b,c)=>{c.d(b,{L:()=>w,x:()=>x});var d={};c.r(d),c.d(d,{daySummaries:()=>s,ingestState:()=>q,messages:()=>p,projectSummaries:()=>t,projects:()=>n,sessions:()=>o,settings:()=>r});var e=c(87550),f=c.n(e),g=c(65127),h=c(48211),i=c(95417),j=c(58040),k=c(20377),l=c(4035),m=c(19643);let n=(0,i.D)("projects",{id:(0,j.Qq)("id").primaryKey(),name:(0,j.Qq)("name").notNull(),rootPath:(0,j.Qq)("root_path").notNull(),gitRemote:(0,j.Qq)("git_remote"),firstSeen:(0,k.nd)("first_seen").notNull(),lastActive:(0,k.nd)("last_active").notNull()},a=>({rootIdx:(0,l.GL)("projects_root_idx").on(a.rootPath)})),o=(0,i.D)("sessions",{id:(0,j.Qq)("id").primaryKey(),provider:(0,j.Qq)("provider").notNull(),projectId:(0,j.Qq)("project_id").notNull(),cwd:(0,j.Qq)("cwd").notNull(),startedAt:(0,k.nd)("started_at").notNull(),endedAt:(0,k.nd)("ended_at").notNull(),durationMs:(0,k.nd)("duration_ms").notNull(),model:(0,j.Qq)("model"),messageCount:(0,k.nd)("message_count").notNull().default(0),userMessageCount:(0,k.nd)("user_message_count").notNull().default(0),inputTokens:(0,k.nd)("input_tokens").notNull().default(0),outputTokens:(0,k.nd)("output_tokens").notNull().default(0),cacheReadTokens:(0,k.nd)("cache_read_tokens").notNull().default(0),cacheWriteTokens:(0,k.nd)("cache_write_tokens").notNull().default(0),estCostUsd:(0,m.x)("est_cost_usd").notNull().default(0),firstPrompt:(0,j.Qq)("first_prompt"),summary:(0,j.Qq)("summary"),summaryGenerated:(0,k.nd)("summary_generated").notNull().default(0),heuristicTitle:(0,j.Qq)("heuristic_title"),category:(0,j.Qq)("category"),keywords:(0,j.Qq)("keywords"),gitBranch:(0,j.Qq)("git_branch"),sourcePath:(0,j.Qq)("source_path").notNull()},a=>({projectIdx:(0,l.Pe)("sessions_project_idx").on(a.projectId),startedIdx:(0,l.Pe)("sessions_started_idx").on(a.startedAt),providerIdx:(0,l.Pe)("sessions_provider_idx").on(a.provider),modelIdx:(0,l.Pe)("sessions_model_idx").on(a.model)})),p=(0,i.D)("messages",{id:(0,j.Qq)("id").primaryKey(),sessionId:(0,j.Qq)("session_id").notNull(),role:(0,j.Qq)("role").notNull(),content:(0,j.Qq)("content").notNull(),timestamp:(0,k.nd)("timestamp").notNull(),model:(0,j.Qq)("model")},a=>({sessionIdx:(0,l.Pe)("messages_session_idx").on(a.sessionId),timestampIdx:(0,l.Pe)("messages_timestamp_idx").on(a.timestamp)})),q=(0,i.D)("ingest_state",{sourcePath:(0,j.Qq)("source_path").primaryKey(),mtime:(0,k.nd)("mtime").notNull(),size:(0,k.nd)("size").notNull(),sessionId:(0,j.Qq)("session_id").notNull(),ingestedAt:(0,k.nd)("ingested_at").notNull()}),r=(0,i.D)("settings",{key:(0,j.Qq)("key").primaryKey(),value:(0,j.Qq)("value").notNull()}),s=(0,i.D)("day_summaries",{day:(0,j.Qq)("day").primaryKey(),summary:(0,j.Qq)("summary").notNull(),generatedAt:(0,k.nd)("generated_at").notNull()}),t=(0,i.D)("project_summaries",{projectId:(0,j.Qq)("project_id").primaryKey(),summary:(0,j.Qq)("summary").notNull(),generatedAt:(0,k.nd)("generated_at").notNull()}),u=null,v=null;function w(){return u||((v=new(f())((0,h.W)())).pragma("journal_mode = WAL"),v.pragma("synchronous = NORMAL"),function(a){a.exec(`
46
+ FROM sessions`).get())}function y(a=12,b,c){let e=[],f=[];b&&(e.push("s.project_id = ?"),f.push(b));let g=E(c??null,"s"),h=e.length>0?` WHERE ${e.join(" AND ")}${g.sql}`:g.sql?` WHERE 1=1${g.sql}`:"";return f.push(...g.params,a),(0,d.x)().prepare(`SELECT ${i} FROM sessions s JOIN projects p ON p.id = s.project_id
47
+ ${h} ORDER BY s.started_at DESC LIMIT ?`).all(...f)}function z(a=30,b=6,c){return(0,h.n)(`getProjectBreakdown:${a}:${b}:${c??""}`,5e3,()=>(function(a,b,c){let e=null===a?0:Date.now()-864e5*a,f=E(c,"s");return(0,d.x)().prepare(`SELECT p.id, p.name, p.last_active,
48
+ COUNT(DISTINCT s.id) AS sessions,
49
+ COALESCE(SUM(m.input_tokens + m.output_tokens + m.cache_read_tokens + m.cache_write_tokens), 0) AS tokens,
50
+ COALESCE(SUM(m.est_cost_usd), 0) AS cost
51
+ FROM projects p
52
+ JOIN sessions s ON s.project_id = p.id
53
+ JOIN messages m ON m.session_id = s.id
54
+ WHERE m.timestamp >= ?${f.sql}
55
+ GROUP BY p.id ORDER BY tokens DESC LIMIT ?`).all(e,...f.params,b)})(a,b,c??null))}function A(a=30,b,c){return(0,h.n)(`getCategoryBreakdown:${a}:${b??""}:${c??""}`,5e3,()=>(function(a,b,c){let e=null===a?0:Date.now()-864e5*a,f=b?" AND s.project_id = ?":"",h=E(c,"s"),i=(0,d.x)().prepare(`SELECT s.category, s.categories,
56
+ COALESCE(SUM(m.input_tokens + m.output_tokens + m.cache_read_tokens + m.cache_write_tokens), 0) AS tokens
57
+ FROM messages m JOIN sessions s ON s.id = m.session_id
58
+ WHERE m.timestamp >= ?${f}${h.sql}
59
+ GROUP BY s.id`).all(e,...b?[b]:[],...h.params),j=new Map;for(let a of i){let b=(0,g.LQ)(a);for(let c of b.length?b:["Unknown"]){let b=j.get(c)??{sessions:0,tokens:0};b.sessions+=1,b.tokens+=a.tokens,j.set(c,b)}}return[...j.entries()].map(([a,b])=>({category:a,...b})).sort((a,b)=>b.sessions-a.sessions)})(a,b??null,c??null))}function B(a=30,b,c){return(0,h.n)(`getRangeSummary:${a}:${b??""}:${c??""}`,5e3,()=>(function(a,b,c){let e=(0,d.x)(),f=Date.now(),g=null===a?0:f-864e5*a,h=null===a?0:g-864e5*a,i=b?" AND s.project_id = ?":"",j=b?[b]:[],k=E(c,"s"),l=(a,b)=>`
60
+ SELECT
61
+ COUNT(DISTINCT m.session_id) AS sessions,
62
+ COUNT(DISTINCT s.project_id) AS projects,
63
+ COALESCE(SUM(m.input_tokens + m.output_tokens + m.cache_read_tokens + m.cache_write_tokens), 0) AS tokens,
64
+ COALESCE(SUM(m.est_cost_usd), 0) AS cost,
65
+ COUNT(DISTINCT strftime('%Y-%m', m.timestamp/1000, 'unixepoch')) AS active_months
66
+ FROM messages m JOIN sessions s ON s.id = m.session_id
67
+ WHERE m.timestamp >= ?${b?" AND m.timestamp < ?":""}${i}${k.sql}
68
+ `,m=e.prepare(l("m.timestamp >= ?",null)).get(g,...j,...k.params);if(null===a)return{...m,sessions_prev:0,tokens_prev:0,cost_prev:0,active_months_prev:0};let n=e.prepare(l("m.timestamp >= ?","m.timestamp < ?")).get(h,g,...j,...k.params);return{...m,sessions_prev:n.sessions,tokens_prev:n.tokens,cost_prev:n.cost,active_months_prev:n.active_months}})(a,b??null,c??null))}function C(a){let b=(0,d.x)().prepare("SELECT summary FROM day_summaries WHERE day = ?").get(a);return b?.summary??null}function D(){return(0,h.n)("getModelFamilies",5e3,()=>(function(){let a=(0,d.x)().prepare(`SELECT COALESCE(model, 'unknown') AS model, COUNT(*) AS sessions
69
+ FROM sessions GROUP BY model`).all(),b=new Map;for(let c of a){let a=(0,f.gW)(c.model);b.set(a,(b.get(a)||0)+c.sessions)}return[...b.entries()].map(([a,b])=>({family:a,sessions:b})).sort((a,b)=>b.sessions-a.sessions)})())}function E(a,b=""){if(!a)return{sql:"",params:[]};let c=(0,d.x)().prepare("SELECT DISTINCT model FROM sessions WHERE model IS NOT NULL").all().filter(b=>(0,f.gW)(b.model)===a).map(a=>a.model);if(0===c.length)return{sql:" AND 1=0",params:[]};let e=c.map(()=>"?").join(","),g=b?`${b}.model`:"model";return{sql:` AND ${g} IN (${e})`,params:c}}function F(){return(0,d.x)().prepare(`SELECT COUNT(*) AS n FROM sessions
70
+ WHERE category IS NULL AND first_prompt IS NOT NULL AND length(first_prompt) > 0`).get().n}function G(a,b){(0,d.x)().prepare("INSERT OR REPLACE INTO settings (key, value) VALUES (?, ?)").run(a,b)}function H(a){let b=(0,d.x)().prepare("SELECT value FROM settings WHERE key = ?").get(a);return b?.value??null}},22446:(a,b,c)=>{c.d(b,{L:()=>w,x:()=>x});var d={};c.r(d),c.d(d,{daySummaries:()=>s,ingestState:()=>q,messages:()=>p,projectSummaries:()=>t,projects:()=>n,sessions:()=>o,settings:()=>r});var e=c(87550),f=c.n(e),g=c(65127),h=c(48211),i=c(95417),j=c(58040),k=c(20377),l=c(4035),m=c(19643);let n=(0,i.D)("projects",{id:(0,j.Qq)("id").primaryKey(),name:(0,j.Qq)("name").notNull(),rootPath:(0,j.Qq)("root_path").notNull(),gitRemote:(0,j.Qq)("git_remote"),firstSeen:(0,k.nd)("first_seen").notNull(),lastActive:(0,k.nd)("last_active").notNull()},a=>({rootIdx:(0,l.GL)("projects_root_idx").on(a.rootPath)})),o=(0,i.D)("sessions",{id:(0,j.Qq)("id").primaryKey(),provider:(0,j.Qq)("provider").notNull(),projectId:(0,j.Qq)("project_id").notNull(),cwd:(0,j.Qq)("cwd").notNull(),startedAt:(0,k.nd)("started_at").notNull(),endedAt:(0,k.nd)("ended_at").notNull(),durationMs:(0,k.nd)("duration_ms").notNull(),model:(0,j.Qq)("model"),messageCount:(0,k.nd)("message_count").notNull().default(0),userMessageCount:(0,k.nd)("user_message_count").notNull().default(0),inputTokens:(0,k.nd)("input_tokens").notNull().default(0),outputTokens:(0,k.nd)("output_tokens").notNull().default(0),cacheReadTokens:(0,k.nd)("cache_read_tokens").notNull().default(0),cacheWriteTokens:(0,k.nd)("cache_write_tokens").notNull().default(0),estCostUsd:(0,m.x)("est_cost_usd").notNull().default(0),firstPrompt:(0,j.Qq)("first_prompt"),summary:(0,j.Qq)("summary"),summaryGenerated:(0,k.nd)("summary_generated").notNull().default(0),heuristicTitle:(0,j.Qq)("heuristic_title"),category:(0,j.Qq)("category"),keywords:(0,j.Qq)("keywords"),gitBranch:(0,j.Qq)("git_branch"),sourcePath:(0,j.Qq)("source_path").notNull()},a=>({projectIdx:(0,l.Pe)("sessions_project_idx").on(a.projectId),startedIdx:(0,l.Pe)("sessions_started_idx").on(a.startedAt),providerIdx:(0,l.Pe)("sessions_provider_idx").on(a.provider),modelIdx:(0,l.Pe)("sessions_model_idx").on(a.model)})),p=(0,i.D)("messages",{id:(0,j.Qq)("id").primaryKey(),sessionId:(0,j.Qq)("session_id").notNull(),role:(0,j.Qq)("role").notNull(),content:(0,j.Qq)("content").notNull(),timestamp:(0,k.nd)("timestamp").notNull(),model:(0,j.Qq)("model")},a=>({sessionIdx:(0,l.Pe)("messages_session_idx").on(a.sessionId),timestampIdx:(0,l.Pe)("messages_timestamp_idx").on(a.timestamp)})),q=(0,i.D)("ingest_state",{sourcePath:(0,j.Qq)("source_path").primaryKey(),mtime:(0,k.nd)("mtime").notNull(),size:(0,k.nd)("size").notNull(),sessionId:(0,j.Qq)("session_id").notNull(),ingestedAt:(0,k.nd)("ingested_at").notNull()}),r=(0,i.D)("settings",{key:(0,j.Qq)("key").primaryKey(),value:(0,j.Qq)("value").notNull()}),s=(0,i.D)("day_summaries",{day:(0,j.Qq)("day").primaryKey(),summary:(0,j.Qq)("summary").notNull(),generatedAt:(0,k.nd)("generated_at").notNull()}),t=(0,i.D)("project_summaries",{projectId:(0,j.Qq)("project_id").primaryKey(),summary:(0,j.Qq)("summary").notNull(),generatedAt:(0,k.nd)("generated_at").notNull()}),u=null,v=null;function w(){return u||((v=new(f())((0,h.W)())).pragma("journal_mode = WAL"),v.pragma("synchronous = NORMAL"),function(a){a.exec(`
60
71
  CREATE TABLE IF NOT EXISTS projects (
61
72
  id TEXT PRIMARY KEY,
62
73
  name TEXT NOT NULL,
@@ -164,4 +175,32 @@
164
175
  CREATE INDEX IF NOT EXISTS claude_limit_events_session_idx ON claude_limit_events(session_id);
165
176
  `);let b=new Set(a.prepare("PRAGMA table_info(sessions)").all().map(a=>a.name));b.has("heuristic_title")||a.exec("ALTER TABLE sessions ADD COLUMN heuristic_title TEXT"),b.has("category")||a.exec("ALTER TABLE sessions ADD COLUMN category TEXT"),b.has("keywords")||a.exec("ALTER TABLE sessions ADD COLUMN keywords TEXT"),a.exec("CREATE INDEX IF NOT EXISTS sessions_category_idx ON sessions(category)"),b.has("categories")||(a.exec("ALTER TABLE sessions ADD COLUMN categories TEXT"),a.exec(`UPDATE sessions
166
177
  SET categories = json_array(category)
167
- WHERE category IS NOT NULL AND categories IS NULL`))}(v),u=(0,g.f)(v,{schema:d}))}function x(){return v||w(),v}},25742:(a,b,c)=>{c.d(b,{e:()=>f,n:()=>e});let d=new Map;function e(a,b,c){let e=d.get(a),f=Date.now();if(e&&e.expires>f)return e.value;let g=c();if(d.set(a,{value:g,expires:f+b}),d.size>64)for(let[a,b]of d)b.expires<=f&&d.delete(a);return g}function f(){d.clear()}},46145:(a,b,c)=>{function d(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}k`:a.toString()}function e(a){return a>=1e3?`$${a.toFixed(0)}`:`$${a.toFixed(2)}`}function f(a){let b=Math.floor((Date.now()-a)/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);if(d<30)return`${d}d ago`;let e=Math.floor(d/30);return`${e}mo ago`}function g(a){return new Date(a).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1})}function h(a){let b=Math.floor(a/1e3);if(b<60)return`${b}s`;let c=Math.floor(b/60);if(c<60)return`${c}m`;let d=Math.floor(c/60);return`${d}h ${c%60}m`}function i(a){return new Date(a).toLocaleDateString(void 0,{weekday:"long",month:"long",day:"numeric"})}function j(a){let b=new Date(a),c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0");return`${c}-${d}-${e}`}c.d(b,{EL:()=>j,F0:()=>e,I_:()=>i,Kc:()=>f,ME:()=>g,c5:()=>h,yj:()=>d})},48211:(a,b,c)=>{c.d(b,{K:()=>g,W:()=>h});var d=c(48161),e=c(76760),f=c(73024);function g(){let a=process.env.AGENTGRAPHED_DATA_DIR||(0,e.join)((0,d.homedir)(),".agentgraphed");return(0,f.existsSync)(a)||(0,f.mkdirSync)(a,{recursive:!0}),a}function h(){return(0,e.join)(g(),"agentgraphed.sqlite")}},76846:(a,b,c)=>{let d;c.d(b,{QJ:()=>j,a3:()=>l,gW:()=>m});var e=c(73024),f=c(76760);c(73136);let g={input:3,output:15},h={"claude-opus-4-7":{input:5,output:25,cacheRead:.5,cacheWrite:6.25},"claude-opus-4-6":{input:5,output:25,cacheRead:.5,cacheWrite:6.25},"claude-opus-4-5":{input:5,output:25,cacheRead:.5,cacheWrite:6.25},"claude-opus-4":{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},"claude-sonnet-4-6":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"claude-sonnet-4-5":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"claude-haiku-4-5":{input:1,output:5,cacheRead:.1,cacheWrite:1.25},"claude-3-5-sonnet":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"gpt-5.1":{input:1.25,output:10,cacheRead:.125},"gpt-5":{input:1.25,output:10,cacheRead:.125},"gpt-5-mini":{input:.25,output:2,cacheRead:.025},"gpt-4o":{input:2.5,output:10},"gpt-4o-mini":{input:.15,output:.6}},i=null,j=function(){let a=function(){if(void 0!==d)return d;try{let a=__dirname,b=(0,f.join)(a,"pricing-data","litellm.meta.json");d=(0,e.existsSync)(b)?JSON.parse((0,e.readFileSync)(b,"utf8")):null}catch{d=null}return d}();return a?.fetchedAt?a.fetchedAt.slice(0,10):"2026-06-05"}();function k(a){let b=a.input_cost_per_token,c=a.output_cost_per_token;return null==b||null==c?null:{input:1e6*b,output:1e6*c,cacheRead:null!=a.cache_read_input_token_cost?1e6*a.cache_read_input_token_cost:void 0,cacheWrite:null!=a.cache_creation_input_token_cost?1e6*a.cache_creation_input_token_cost:void 0}}function l(a){let b=function(a){if(!a)return g;let b=null!==i?i:i=function(){try{let a=__dirname;for(let b of[(0,f.join)(a,"pricing-data","litellm.json"),(0,f.join)(process.cwd(),"src","lib","pricing-data","litellm.json")])if((0,e.existsSync)(b))return JSON.parse((0,e.readFileSync)(b,"utf8"))}catch{}return{}}(),c=b[a];if(c){let a=k(c);if(a)return a}let d=a.replace(/-(\d{8})$/,"");if(d!==a&&b[d]){let a=k(b[d]);if(a)return a}if(h[a])return h[a];let j=Object.keys(h).find(b=>a.startsWith(b));if(j)return h[j];let l=Object.keys(b).find(b=>a.startsWith(b));if(l){let a=k(b[l]);if(a)return a}return g}(a.model),c=a.cacheReadTokens??0,d=a.cacheWriteTokens??0;return a.inputTokens*b.input/1e6+a.outputTokens*b.output/1e6+c*(b.cacheRead??b.input)/1e6+d*(b.cacheWrite??b.input)/1e6}function m(a){if(!a)return"Unknown";let b=a.toLowerCase(),c=b.match(/^claude-(?:(\d+(?:-\d+)?)-)?(opus|sonnet|haiku)-?(\d+)?/);if(c){let a=c[2].charAt(0).toUpperCase()+c[2].slice(1);if(c[1]){let b=c[1].replace("-",".");return`Claude ${a} ${b}`}return c[3]?`Claude ${a} ${c[3]}`:`Claude ${a}`}if(b.startsWith("gpt-4o"))return b.includes("mini")?"GPT-4o Mini":"GPT-4o";let d=b.match(/^gpt-(\d+(?:\.\d+)?)(?:-(mini|nano|turbo))?/);if(d){let a=`GPT-${d[1]}`;return d[2]?`${a} ${d[2].charAt(0).toUpperCase()+d[2].slice(1)}`:a}return a}},97064:(a,b,c)=>{function d(a){if(a.categories)try{let b=JSON.parse(a.categories);if(Array.isArray(b))return b.filter(a=>"string"==typeof a)}catch{}return a.category?[a.category]:[]}function e(a){if(a.summary)return a.summary.split("\n")[0].trim();if(a.heuristic_title)return a.heuristic_title;if(a.first_prompt){let b=(a.first_prompt.trim().split("\n").find(a=>a.trim().length>0)??"").replace(/\s+/g," ").trim();if(b.length<=100)return b;let c=b.lastIndexOf(" ",100);return(c>60?b.slice(0,c):b.slice(0,100))+"…"}return"(untitled session)"}c.d(b,{L:()=>d,x:()=>e})}};
178
+ WHERE category IS NOT NULL AND categories IS NULL`));let c=new Set(a.prepare("PRAGMA table_info(messages)").all().map(a=>a.name));c.has("input_tokens")||a.exec("ALTER TABLE messages ADD COLUMN input_tokens INTEGER NOT NULL DEFAULT 0"),c.has("output_tokens")||a.exec("ALTER TABLE messages ADD COLUMN output_tokens INTEGER NOT NULL DEFAULT 0"),c.has("cache_read_tokens")||a.exec("ALTER TABLE messages ADD COLUMN cache_read_tokens INTEGER NOT NULL DEFAULT 0"),c.has("cache_write_tokens")||a.exec("ALTER TABLE messages ADD COLUMN cache_write_tokens INTEGER NOT NULL DEFAULT 0"),c.has("est_cost_usd")||a.exec("ALTER TABLE messages ADD COLUMN est_cost_usd REAL NOT NULL DEFAULT 0");let d=a.prepare("SELECT value FROM settings WHERE key = ?").get("schema_version");d?.value!=="3"&&(a.exec("DELETE FROM ingest_state"),a.exec("DELETE FROM messages"),a.prepare("INSERT OR REPLACE INTO settings (key, value) VALUES (?, ?)").run("schema_version","3")),function(a){let b=a.prepare(`SELECT s.id, s.started_at, s.model,
179
+ s.input_tokens, s.output_tokens, s.cache_read_tokens, s.cache_write_tokens, s.est_cost_usd
180
+ FROM sessions s LEFT JOIN messages m ON m.session_id = s.id
181
+ WHERE m.id IS NULL
182
+ AND (s.input_tokens + s.output_tokens + s.cache_read_tokens + s.cache_write_tokens) > 0
183
+ GROUP BY s.id`).all();if(b.length>0){let c=a.prepare(`INSERT INTO messages (
184
+ id, session_id, role, content, timestamp, model,
185
+ input_tokens, output_tokens, cache_read_tokens, cache_write_tokens, est_cost_usd
186
+ ) VALUES (?, ?, 'assistant', '', ?, ?, ?, ?, ?, ?, ?)`);a.transaction(()=>{for(let a of b)c.run(`${a.id}-orphan`,a.id,a.started_at,a.model,a.input_tokens,a.output_tokens,a.cache_read_tokens,a.cache_write_tokens,a.est_cost_usd)})()}let c=a.prepare(`SELECT s.id,
187
+ s.input_tokens AS s_in, s.output_tokens AS s_out,
188
+ s.cache_read_tokens AS s_cr, s.cache_write_tokens AS s_cw,
189
+ s.est_cost_usd AS s_cost,
190
+ COALESCE(SUM(m.input_tokens), 0) AS m_in,
191
+ COALESCE(SUM(m.output_tokens), 0) AS m_out,
192
+ COALESCE(SUM(m.cache_read_tokens), 0) AS m_cr,
193
+ COALESCE(SUM(m.cache_write_tokens), 0) AS m_cw,
194
+ COALESCE(SUM(m.est_cost_usd), 0) AS m_cost,
195
+ COUNT(CASE WHEN m.role = 'assistant' THEN 1 END) AS asst_count
196
+ FROM sessions s LEFT JOIN messages m ON m.session_id = s.id
197
+ GROUP BY s.id
198
+ HAVING ((s_in + s_out + s_cr + s_cw) > (m_in + m_out + m_cr + m_cw)
199
+ OR s_cost > m_cost + 0.001)
200
+ AND asst_count > 0`).all();if(0===c.length)return;let d=a.prepare("SELECT id FROM messages WHERE session_id = ? AND role = 'assistant' ORDER BY timestamp"),e=a.prepare(`UPDATE messages SET
201
+ input_tokens = input_tokens + ?,
202
+ output_tokens = output_tokens + ?,
203
+ cache_read_tokens = cache_read_tokens + ?,
204
+ cache_write_tokens = cache_write_tokens + ?,
205
+ est_cost_usd = est_cost_usd + ?
206
+ WHERE id = ?`);a.transaction(()=>{for(let a of c){let b=d.all(a.id);if(0===b.length)continue;let c=b.length,f=Math.max(0,a.s_in-a.m_in),g=Math.max(0,a.s_out-a.m_out),h=Math.max(0,a.s_cr-a.m_cr),i=Math.max(0,a.s_cw-a.m_cw),j=Math.max(0,a.s_cost-a.m_cost),k=Math.floor(f/c),l=Math.floor(g/c),m=Math.floor(h/c),n=Math.floor(i/c),o=j/c,p=f-k*c,q=g-l*c,r=h-m*c,s=i-n*c;for(let a=0;a<c;a++){let d=a===c-1;e.run(k+(d?p:0),l+(d?q:0),m+(d?r:0),n+(d?s:0),o,b[a].id)}}})()}(a)}(v),u=(0,g.f)(v,{schema:d}))}function x(){return v||w(),v}},25742:(a,b,c)=>{c.d(b,{e:()=>f,n:()=>e});let d=new Map;function e(a,b,c){let e=d.get(a),f=Date.now();if(e&&e.expires>f)return e.value;let g=c();if(d.set(a,{value:g,expires:f+b}),d.size>64)for(let[a,b]of d)b.expires<=f&&d.delete(a);return g}function f(){d.clear()}},46145:(a,b,c)=>{function d(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}k`:a.toString()}function e(a){return a>=1e3?`$${a.toFixed(0)}`:`$${a.toFixed(2)}`}function f(a){let b=Math.floor((Date.now()-a)/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);if(d<30)return`${d}d ago`;let e=Math.floor(d/30);return`${e}mo ago`}function g(a){return new Date(a).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1})}function h(a){let b=Math.floor(a/1e3);if(b<60)return`${b}s`;let c=Math.floor(b/60);if(c<60)return`${c}m`;let d=Math.floor(c/60);return`${d}h ${c%60}m`}function i(a){return new Date(a).toLocaleDateString(void 0,{weekday:"long",month:"long",day:"numeric"})}function j(a){let b=new Date(a),c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0");return`${c}-${d}-${e}`}c.d(b,{EL:()=>j,F0:()=>e,I_:()=>i,Kc:()=>f,ME:()=>g,c5:()=>h,yj:()=>d})},48211:(a,b,c)=>{c.d(b,{K:()=>g,W:()=>h});var d=c(48161),e=c(76760),f=c(73024);function g(){let a=process.env.AGENTGRAPHED_DATA_DIR||(0,e.join)((0,d.homedir)(),".agentgraphed");return(0,f.existsSync)(a)||(0,f.mkdirSync)(a,{recursive:!0}),a}function h(){return(0,e.join)(g(),"agentgraphed.sqlite")}},76846:(a,b,c)=>{let d;c.d(b,{QJ:()=>j,a3:()=>l,gW:()=>m});var e=c(73024),f=c(76760);c(73136);let g={input:3,output:15},h={"claude-opus-4-7":{input:5,output:25,cacheRead:.5,cacheWrite:6.25},"claude-opus-4-6":{input:5,output:25,cacheRead:.5,cacheWrite:6.25},"claude-opus-4-5":{input:5,output:25,cacheRead:.5,cacheWrite:6.25},"claude-opus-4":{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},"claude-sonnet-4-6":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"claude-sonnet-4-5":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"claude-haiku-4-5":{input:1,output:5,cacheRead:.1,cacheWrite:1.25},"claude-3-5-sonnet":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"gpt-5.1":{input:1.25,output:10,cacheRead:.125},"gpt-5":{input:1.25,output:10,cacheRead:.125},"gpt-5-mini":{input:.25,output:2,cacheRead:.025},"gpt-4o":{input:2.5,output:10},"gpt-4o-mini":{input:.15,output:.6}},i=null,j=function(){let a=function(){if(void 0!==d)return d;try{let a=__dirname,b=(0,f.join)(a,"pricing-data","litellm.meta.json");d=(0,e.existsSync)(b)?JSON.parse((0,e.readFileSync)(b,"utf8")):null}catch{d=null}return d}();return a?.fetchedAt?a.fetchedAt.slice(0,10):"2026-06-05"}();function k(a){let b=a.input_cost_per_token,c=a.output_cost_per_token;return null==b||null==c?null:{input:1e6*b,output:1e6*c,cacheRead:null!=a.cache_read_input_token_cost?1e6*a.cache_read_input_token_cost:void 0,cacheWrite:null!=a.cache_creation_input_token_cost?1e6*a.cache_creation_input_token_cost:void 0}}function l(a){let b=function(a){if(!a)return g;let b=null!==i?i:i=function(){try{let a=__dirname;for(let b of[(0,f.join)(a,"pricing-data","litellm.json"),(0,f.join)(process.cwd(),"src","lib","pricing-data","litellm.json")])if((0,e.existsSync)(b))return JSON.parse((0,e.readFileSync)(b,"utf8"))}catch{}return{}}(),c=b[a];if(c){let a=k(c);if(a)return a}let d=a.replace(/-(\d{8})$/,"");if(d!==a&&b[d]){let a=k(b[d]);if(a)return a}if(h[a])return h[a];let j=Object.keys(h).find(b=>a.startsWith(b));if(j)return h[j];let l=Object.keys(b).find(b=>a.startsWith(b));if(l){let a=k(b[l]);if(a)return a}return g}(a.model),c=a.cacheReadTokens??0,d=a.cacheWriteTokens??0;return a.inputTokens*b.input/1e6+a.outputTokens*b.output/1e6+c*(b.cacheRead??b.input)/1e6+d*(b.cacheWrite??b.input)/1e6}function m(a){if(!a)return"Unknown";let b=a.toLowerCase(),c=b.match(/^claude-(?:(\d+(?:-\d+)?)-)?(opus|sonnet|haiku)-?(\d+)?/);if(c){let a=c[2].charAt(0).toUpperCase()+c[2].slice(1);if(c[1]){let b=c[1].replace("-",".");return`Claude ${a} ${b}`}return c[3]?`Claude ${a} ${c[3]}`:`Claude ${a}`}if(b.startsWith("gpt-4o"))return b.includes("mini")?"GPT-4o Mini":"GPT-4o";let d=b.match(/^gpt-(\d+(?:\.\d+)?)(?:-(mini|nano|turbo))?/);if(d){let a=`GPT-${d[1]}`;return d[2]?`${a} ${d[2].charAt(0).toUpperCase()+d[2].slice(1)}`:a}return a}},97064:(a,b,c)=>{function d(a){if(a.categories)try{let b=JSON.parse(a.categories);if(Array.isArray(b))return b.filter(a=>"string"==typeof a)}catch{}return a.category?[a.category]:[]}function e(a){return a.summary?a.summary.split("\n")[0].trim():a.heuristic_title?a.heuristic_title:a.first_prompt?function(a){let b=a.trim(),c=(b=(b=(b=(b=(b=(b=(b=b.replace(/<[^>]+>/g," ")).replace(/^\/[a-z][a-z0-9-]*(\s|$)/i,"")).replace(/```[a-z]*\n?/gi," ").replace(/```/g," ").replace(/`/g,"")).replace(/\[([^\]]+)\]\([^)]*\)/g,"$1")).replace(/https?:\/\/\S+/g,"")).replace(/(^|\s)(\/|~\/)[\w./~-]+/g," ")).replace(/\s+/g," ").trim()).search(/[.!?](\s|$)/);if(c>8&&c<90&&(b=b.slice(0,c).trim()),0===b.length)return"(untitled session)";if((b=b.charAt(0).toUpperCase()+b.slice(1)).length<=90)return b;let d=b.lastIndexOf(" ",90);return(d>50?b.slice(0,d):b.slice(0,90))+"…"}(a.first_prompt):"(untitled session)"}c.d(b,{LQ:()=>d,xU:()=>e})}};
@@ -0,0 +1 @@
1
+ exports.id=954,exports.ids=[954],exports.modules={25035:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},49272:(a,b,c)=>{Promise.resolve().then(c.bind(c,65610))},51472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g,metadata:()=>f});var d=c(75338);c(61135);var e=c(87907);let f={title:"AgentGraphed",description:"Local-first analytics for AI-assisted development"};function g({children:a}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsx)("body",{children:(0,d.jsxs)("div",{className:"flex min-h-screen",children:[(0,d.jsx)(e.Sidebar,{}),(0,d.jsx)("main",{className:"flex-1 min-w-0",children:a})]})})})}},61135:()=>{},64787:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},64952:(a,b,c)=>{Promise.resolve().then(c.bind(c,87907))},65610:(a,b,c)=>{"use strict";c.d(b,{Sidebar:()=>s});var d=c(21124),e=c(3991),f=c.n(e),g=c(42378),h=c(43249),i=c(38301),j=c(23312);function k(a){if(!a||!a.ok)return null;let b=a.primary?.pct??null,c=a.secondary?.pct??null;return null===b&&null===c?null:Math.max(b??0,c??0)}function l(a){let b=a-Date.now();if(b<=0&&b>-12e4)return"<1m";if(b<=0)return"resetting";let c=Math.round(b/6e4);if(c<1)return"<1m";if(c<60)return`${c}m`;let d=Math.floor(c/60),e=c%60;return 0===e?`${d}h`:`${d}h${e}m`}function m(){let[a,b]=(0,i.useState)({claude:null,codex:null,fetchedAt:0,loading:!1}),[c,e]=(0,i.useState)(!1),[f,g]=(0,i.useState)(null),h=(0,i.useRef)(null),m=(0,i.useRef)(null),o=(0,i.useCallback)(async()=>{b(a=>({...a,loading:!0}));let[a,c]=await Promise.all([fetch("/api/quota-probe?provider=claude",{method:"POST"}).then(a=>a.json()).catch(a=>({ok:!1,error:a.message})),fetch("/api/quota-probe?provider=codex",{method:"POST"}).then(a=>a.json()).catch(a=>({ok:!1,error:a.message}))]);b({claude:q("claude",a),codex:q("codex",c),fetchedAt:Date.now(),loading:!1})},[]);function p(){m.current&&clearTimeout(m.current),e(!0),Date.now()-a.fetchedAt>6e4&&!a.loading&&o()}function r(){m.current&&clearTimeout(m.current),m.current=setTimeout(()=>e(!1),120)}return(0,d.jsxs)("div",{ref:h,className:"relative px-3 py-2 border-b border-surface-2",onMouseEnter:p,onMouseLeave:r,onFocus:p,onBlur:r,children:[(0,d.jsxs)("button",{type:"button",onClick:o,className:"w-full flex items-center gap-2 text-[12px] text-ink-dim hover:text-ink","aria-haspopup":"dialog","aria-expanded":c,children:[(0,d.jsx)("span",{className:`w-1.5 h-1.5 rounded-full ${function(a){if(0===a.fetchedAt)return"bg-ink-mute";let b=Math.max(k(a.claude)??0,k(a.codex)??0);return b>=95?"bg-error":b>=80?"bg-secondary":"bg-primary"}(a)} ${a.loading?"animate-pulse":""}`}),(0,d.jsx)("span",{className:"font-mono tabular truncate",children:a.loading&&0===a.fetchedAt?"Probing…":function(a){if(0===a.fetchedAt)return"Live quota";let b=k(a.claude);return null!==b&&a.claude?.primary?`Claude ${Math.round(b)}% \xb7 ${l(a.claude.primary.resetsAt)}`:"Live quota"}(a)})]}),c&&f&&"undefined"!=typeof document&&(0,j.createPortal)((0,d.jsx)(n,{state:a,loading:a.loading,anchorRect:f,onEnter:p,onLeave:r}),document.body)]})}function n({state:a,loading:b,anchorRect:c,onEnter:e,onLeave:f}){let g={position:"fixed",left:c.right+8,top:c.top,backgroundColor:"#1c2026",isolation:"isolate"};return(0,d.jsx)("div",{role:"dialog",onMouseEnter:e,onMouseLeave:f,className:"w-72 z-[9999] rounded-lg border border-surface-3 p-4 space-y-4 shadow-[0_20px_60px_-10px_rgba(0,0,0,0.8)]",style:g,children:b&&0===a.fetchedAt?(0,d.jsx)("div",{className:"text-body-sm text-ink-mute",children:"Probing Anthropic & OpenAI…"}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(o,{kpi:a.claude}),(0,d.jsx)("div",{className:"border-t border-surface-2"}),(0,d.jsx)(o,{kpi:a.codex}),(0,d.jsx)("div",{className:"text-[10px] text-ink-mute font-mono tabular pt-1 border-t border-surface-2",children:0===a.fetchedAt?"never probed":`updated ${function(a){let b=Date.now()-a;return b<1e3?"just now":b<6e4?`${Math.round(b/1e3)}s ago`:`${Math.round(b/6e4)}m ago`}(a.fetchedAt)} \xb7 hover again after 60s to refresh`})]})})}function o({kpi:a}){if(!a)return(0,d.jsx)("div",{className:"text-body-sm text-ink-mute",children:"No data."});let b="claude"===a.provider?"Claude":"Codex";return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,d.jsx)("span",{className:"text-label-caps text-ink-dim",children:b}),a.ok&&a.planType&&(0,d.jsx)("span",{className:"text-[10px] text-ink-mute font-mono uppercase tracking-wide",children:a.planType})]}),a.ok?(0,d.jsxs)(d.Fragment,{children:[a.primary&&(0,d.jsx)(p,{label:a.primary.label,pct:a.primary.pct,resetsAt:a.primary.resetsAt,accent:"primary"}),a.secondary&&(0,d.jsx)(p,{label:a.secondary.label,pct:a.secondary.pct,resetsAt:a.secondary.resetsAt,accent:"secondary"}),!a.primary&&!a.secondary&&(0,d.jsx)("div",{className:"text-body-sm text-ink-mute",children:"No rate-limit headers returned."})]}):(0,d.jsx)("div",{className:"text-[11px] text-ink-mute leading-relaxed",children:a.error})]})}function p({label:a,pct:b,resetsAt:c,accent:e}){return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between text-body-sm",children:[(0,d.jsx)("span",{className:"text-ink font-mono uppercase tracking-wider text-[10px]",children:a}),(0,d.jsxs)("span",{className:"font-mono tabular text-ink",children:[Math.round(b),"%"]})]}),(0,d.jsx)("div",{className:"h-1 bg-surface-2 rounded-full overflow-hidden mt-1",children:(0,d.jsx)("div",{className:`h-full ${"primary"===e?"bg-primary":"bg-secondary"}`,style:{width:`${Math.min(100,Math.max(0,b))}%`}})}),(0,d.jsxs)("div",{className:"text-[10px] text-ink-mute font-mono tabular mt-0.5",children:["resets in ",l(c)]})]})}function q(a,b){if(!b||!("ok"in b))return{provider:a,ok:!1,observedAt:Date.now(),planType:null,primary:null,secondary:null,error:"unexpected response"};if(!b.ok)return{provider:a,ok:!1,observedAt:Date.now(),planType:null,primary:null,secondary:null,error:b.error};let c=b.snapshot;return{provider:a,ok:!0,observedAt:c.observedAt,planType:c.planType,primary:c.primary?{pct:c.primary.pct,resetsAt:c.primary.resetsAt,label:"claude"===a?"5h":"1m"}:null,secondary:c.secondary?{pct:c.secondary.pct,resetsAt:c.secondary.resetsAt,label:"7d"}:null}}let r=[{href:"/",label:"Dashboard",icon:"◧"},{href:"/timeline",label:"Timeline",icon:"☰"},{href:"/projects",label:"Projects",icon:"▦"},{href:"/sessions",label:"Sessions",icon:"⌘"},{href:"/analytics",label:"Analytics",icon:"⌁"}];function s(){let a=(0,g.usePathname)();return(0,d.jsxs)("aside",{className:"w-56 shrink-0 border-r border-surface-2 bg-surface-0 flex flex-col sticky top-0 h-screen self-start",children:[(0,d.jsxs)("div",{className:"px-5 border-b border-surface-2 h-[72px] flex flex-col justify-center",children:[(0,d.jsxs)("div",{className:"flex items-baseline gap-1.5 leading-none",children:[(0,d.jsx)("span",{className:"text-primary text-base",children:"◧"}),(0,d.jsxs)("span",{className:"text-lg font-bold tracking-tight",children:[(0,d.jsx)("span",{className:"text-ink-dim",children:"Agent"}),(0,d.jsx)("span",{className:"text-primary",children:"Graphed"})]})]}),(0,d.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-ink-mute mt-1.5",children:"See your AI work"})]}),(0,d.jsx)(m,{}),(0,d.jsx)("nav",{className:"px-2 py-3 flex-1 flex flex-col gap-0.5",children:r.map(b=>{let c="/"===b.href?"/"===a:a.startsWith(b.href);return(0,d.jsxs)(f(),{href:b.href,className:(0,h.A)("flex items-center gap-3 px-3 py-2 rounded text-[13px] transition-colors",c?"bg-surface-2 text-primary border-l-2 border-primary -ml-px":"text-ink-dim hover:text-ink hover:bg-surface-1"),children:[(0,d.jsx)("span",{className:"text-base w-4 text-center opacity-80",children:b.icon}),(0,d.jsx)("span",{children:b.label})]},b.href)})}),(0,d.jsx)("div",{className:"px-2 py-3 border-t border-surface-2",children:(0,d.jsxs)(f(),{href:"/settings",className:(0,h.A)("flex items-center gap-3 px-3 py-2 rounded text-[13px] transition-colors",a.startsWith("/settings")?"bg-surface-2 text-primary border-l-2 border-primary -ml-px":"text-ink-dim hover:text-ink hover:bg-surface-1"),children:[(0,d.jsx)("span",{className:"text-base w-4 text-center opacity-80",children:"⚙"}),(0,d.jsx)("span",{children:"Settings"})]})})]})}},87907:(a,b,c)=>{"use strict";c.d(b,{Sidebar:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agentgraphed/agentgraphed/src/components/Sidebar.tsx","Sidebar")}};