fleetlens 0.10.4 → 0.10.6

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 (179) hide show
  1. package/app/apps/web/.next/BUILD_ID +1 -1
  2. package/app/apps/web/.next/app-path-routes-manifest.json +1 -0
  3. package/app/apps/web/.next/build-manifest.json +6 -6
  4. package/app/apps/web/.next/prerender-manifest.json +3 -3
  5. package/app/apps/web/.next/routes-manifest.json +6 -0
  6. package/app/apps/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  7. package/app/apps/web/.next/server/app/_global-error.html +1 -1
  8. package/app/apps/web/.next/server/app/_global-error.rsc +1 -1
  9. package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/app/apps/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  15. package/app/apps/web/.next/server/app/_not-found/page.js +1 -1
  16. package/app/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/app/apps/web/.next/server/app/api/ask/route.js +3 -2
  19. package/app/apps/web/.next/server/app/api/ask/route.js.nft.json +1 -1
  20. package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js +2 -1
  21. package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js.nft.json +1 -1
  22. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js +2 -1
  23. package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js.nft.json +1 -1
  24. package/app/apps/web/.next/server/app/api/digest/month-index/route.js +2 -1
  25. package/app/apps/web/.next/server/app/api/digest/month-index/route.js.nft.json +1 -1
  26. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js +2 -1
  27. package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js.nft.json +1 -1
  28. package/app/apps/web/.next/server/app/api/digest/week-index/route.js +2 -1
  29. package/app/apps/web/.next/server/app/api/digest/week-index/route.js.nft.json +1 -1
  30. package/app/apps/web/.next/server/app/api/events/route.js +2 -1
  31. package/app/apps/web/.next/server/app/api/events/route.js.nft.json +1 -1
  32. package/app/apps/web/.next/server/app/api/jobs/route.js +2 -1
  33. package/app/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -1
  34. package/app/apps/web/.next/server/app/api/runs/[runId]/route.js +2 -1
  35. package/app/apps/web/.next/server/app/api/runs/[runId]/route.js.nft.json +1 -1
  36. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js +2 -1
  37. package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js.nft.json +1 -1
  38. package/app/apps/web/.next/server/app/api/runs/route.js +2 -1
  39. package/app/apps/web/.next/server/app/api/runs/route.js.nft.json +1 -1
  40. package/app/apps/web/.next/server/app/api/settings/route.js +3 -2
  41. package/app/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -1
  42. package/app/apps/web/.next/server/app/api/team/sync/route/app-paths-manifest.json +3 -0
  43. package/app/apps/web/.next/server/app/api/team/sync/route/build-manifest.json +9 -0
  44. package/app/apps/web/.next/server/app/api/team/sync/route/server-reference-manifest.json +4 -0
  45. package/app/apps/web/.next/server/app/api/team/sync/route.js +6 -0
  46. package/app/apps/web/.next/server/app/api/team/sync/route.js.map +5 -0
  47. package/app/apps/web/.next/server/app/api/team/sync/route.js.nft.json +1 -0
  48. package/app/apps/web/.next/server/app/api/team/sync/route_client-reference-manifest.js +3 -0
  49. package/app/apps/web/.next/server/app/changelog/page/build-manifest.json +3 -3
  50. package/app/apps/web/.next/server/app/changelog/page.js +1 -1
  51. package/app/apps/web/.next/server/app/changelog/page.js.nft.json +1 -1
  52. package/app/apps/web/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
  53. package/app/apps/web/.next/server/app/day/[date]/page/build-manifest.json +3 -3
  54. package/app/apps/web/.next/server/app/day/[date]/page.js +1 -1
  55. package/app/apps/web/.next/server/app/day/[date]/page.js.nft.json +1 -1
  56. package/app/apps/web/.next/server/app/day/[date]/page_client-reference-manifest.js +1 -1
  57. package/app/apps/web/.next/server/app/day/page/build-manifest.json +3 -3
  58. package/app/apps/web/.next/server/app/day/page.js +1 -1
  59. package/app/apps/web/.next/server/app/day/page.js.nft.json +1 -1
  60. package/app/apps/web/.next/server/app/day/page_client-reference-manifest.js +1 -1
  61. package/app/apps/web/.next/server/app/digest/[date]/page/build-manifest.json +3 -3
  62. package/app/apps/web/.next/server/app/digest/[date]/page.js +1 -1
  63. package/app/apps/web/.next/server/app/digest/[date]/page.js.nft.json +1 -1
  64. package/app/apps/web/.next/server/app/digest/[date]/page_client-reference-manifest.js +1 -1
  65. package/app/apps/web/.next/server/app/digest/page/build-manifest.json +3 -3
  66. package/app/apps/web/.next/server/app/digest/page.js +1 -1
  67. package/app/apps/web/.next/server/app/digest/page.js.nft.json +1 -1
  68. package/app/apps/web/.next/server/app/digest/page_client-reference-manifest.js +1 -1
  69. package/app/apps/web/.next/server/app/insights/[key]/page/build-manifest.json +3 -3
  70. package/app/apps/web/.next/server/app/insights/[key]/page.js +1 -1
  71. package/app/apps/web/.next/server/app/insights/[key]/page.js.nft.json +1 -1
  72. package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +1 -1
  73. package/app/apps/web/.next/server/app/insights/page/build-manifest.json +3 -3
  74. package/app/apps/web/.next/server/app/insights/page.js +1 -1
  75. package/app/apps/web/.next/server/app/insights/page.js.nft.json +1 -1
  76. package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +1 -1
  77. package/app/apps/web/.next/server/app/page/build-manifest.json +3 -3
  78. package/app/apps/web/.next/server/app/page.js +4 -3
  79. package/app/apps/web/.next/server/app/page.js.nft.json +1 -1
  80. package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  81. package/app/apps/web/.next/server/app/parallelism/page/build-manifest.json +3 -3
  82. package/app/apps/web/.next/server/app/parallelism/page.js +1 -1
  83. package/app/apps/web/.next/server/app/parallelism/page.js.nft.json +1 -1
  84. package/app/apps/web/.next/server/app/parallelism/page_client-reference-manifest.js +1 -1
  85. package/app/apps/web/.next/server/app/projects/[slug]/page/build-manifest.json +3 -3
  86. package/app/apps/web/.next/server/app/projects/[slug]/page.js +1 -1
  87. package/app/apps/web/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  88. package/app/apps/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  89. package/app/apps/web/.next/server/app/projects/page/build-manifest.json +3 -3
  90. package/app/apps/web/.next/server/app/projects/page.js +1 -1
  91. package/app/apps/web/.next/server/app/projects/page.js.nft.json +1 -1
  92. package/app/apps/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  93. package/app/apps/web/.next/server/app/runs/page/build-manifest.json +3 -3
  94. package/app/apps/web/.next/server/app/runs/page.js +1 -1
  95. package/app/apps/web/.next/server/app/runs/page.js.nft.json +1 -1
  96. package/app/apps/web/.next/server/app/runs/page_client-reference-manifest.js +1 -1
  97. package/app/apps/web/.next/server/app/sessions/[id]/page/build-manifest.json +3 -3
  98. package/app/apps/web/.next/server/app/sessions/[id]/page.js +1 -1
  99. package/app/apps/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  100. package/app/apps/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  101. package/app/apps/web/.next/server/app/sessions/page/build-manifest.json +3 -3
  102. package/app/apps/web/.next/server/app/sessions/page.js +1 -1
  103. package/app/apps/web/.next/server/app/sessions/page.js.nft.json +1 -1
  104. package/app/apps/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  105. package/app/apps/web/.next/server/app/settings/page/build-manifest.json +3 -3
  106. package/app/apps/web/.next/server/app/settings/page.js +2 -2
  107. package/app/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
  108. package/app/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  109. package/app/apps/web/.next/server/app/usage/page/build-manifest.json +3 -3
  110. package/app/apps/web/.next/server/app/usage/page.js +1 -1
  111. package/app/apps/web/.next/server/app/usage/page.js.nft.json +1 -1
  112. package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
  113. package/app/apps/web/.next/server/app-paths-manifest.json +1 -0
  114. package/app/apps/web/.next/server/chunks/[root-of-the-server]__01a7b5j._.js +3 -0
  115. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0455vu3._.js +2 -2
  116. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0op9af~._.js +3 -0
  117. package/app/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_team_sync_route_actions_05yi-i~.js +3 -0
  118. package/app/apps/web/.next/server/chunks/packages_parser_dist_04rh1zd._.js +3 -0
  119. package/app/apps/web/.next/server/chunks/packages_parser_dist_0ndsxe6._.js +3 -0
  120. package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0yv-a8z._.js → [root-of-the-server]__08l86e-._.js} +2 -2
  121. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__09yxy53._.js +3 -0
  122. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__100.ck7._.js +3 -0
  123. package/app/apps/web/.next/server/chunks/ssr/_0xu2pvc._.js +1 -1
  124. package/app/apps/web/.next/server/chunks/ssr/apps_web_0.mu7c7._.js +3 -0
  125. package/app/apps/web/.next/server/chunks/ssr/{apps_web_app_settings_ai-features-form_tsx_01p699p._.js → apps_web_app_settings_0u6z6rj._.js} +2 -2
  126. package/app/apps/web/.next/server/chunks/ssr/{apps_web_components_0xs658s._.js → apps_web_components_0c-tpft._.js} +2 -2
  127. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0txtsv5._.js +1 -1
  128. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_0af94gl._.js +3 -0
  129. package/app/apps/web/.next/server/chunks/ssr/node_modules_0yrkyef._.js +3 -0
  130. package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_12.endt._.js +1 -1
  131. package/app/apps/web/.next/server/functions-config-manifest.json +1 -0
  132. package/app/apps/web/.next/server/middleware-build-manifest.js +6 -6
  133. package/app/apps/web/.next/server/pages/500.html +1 -1
  134. package/app/apps/web/.next/server/server-reference-manifest.js +1 -1
  135. package/app/apps/web/.next/server/server-reference-manifest.json +1 -1
  136. package/app/apps/web/.next/static/chunks/0-9zfeumkln-p.js +1 -0
  137. package/app/apps/web/.next/static/chunks/0bjcz5~ugoonp.js +14 -0
  138. package/app/apps/web/.next/static/chunks/0e-wrhqh4h3r5.js +2 -0
  139. package/app/apps/web/.next/static/chunks/0h.ua.-myj.6z.js +1 -0
  140. package/app/apps/web/.next/static/chunks/0h3.-_s-k0mj3.js +31 -0
  141. package/app/apps/web/.next/static/chunks/0o5m5g1dfx4ev.css +1 -0
  142. package/app/apps/web/.next/static/chunks/{0mc8aa8z.0-5l.js → 13po66tt.68f3.js} +2 -2
  143. package/app/apps/web/.next/static/chunks/{turbopack-00w.w1u3c~d-6.js → turbopack-04ud5x25hbc_4.js} +1 -1
  144. package/app/apps/web/app/api/events/route.ts +21 -12
  145. package/app/apps/web/app/api/team/sync/route.ts +92 -0
  146. package/app/apps/web/app/layout.tsx +3 -0
  147. package/app/apps/web/app/page.tsx +6 -0
  148. package/app/apps/web/app/settings/force-sync-button.tsx +73 -0
  149. package/app/apps/web/app/settings/page.tsx +4 -0
  150. package/app/apps/web/app/settings/team-connection-section.tsx +127 -0
  151. package/app/apps/web/components/live-refresher.tsx +5 -2
  152. package/app/apps/web/components/sidebar.tsx +6 -0
  153. package/app/apps/web/components/team-chip.tsx +107 -0
  154. package/app/apps/web/components/team-welcome-banner.tsx +71 -0
  155. package/app/apps/web/lib/changelog-data.generated.ts +1 -1
  156. package/app/apps/web/lib/team-data.test.ts +116 -0
  157. package/app/apps/web/lib/team-data.ts +68 -0
  158. package/app/apps/web/lib/team-health.test.ts +24 -0
  159. package/app/apps/web/lib/team-health.ts +18 -0
  160. package/app/apps/web/lib/use-live-events.ts +11 -2
  161. package/app/apps/web/package.json +1 -1
  162. package/app/apps/web/tsconfig.tsbuildinfo +1 -1
  163. package/dist/daemon-worker.js +148 -98
  164. package/dist/index.js +205 -144
  165. package/package.json +1 -1
  166. package/app/apps/web/.next/server/chunks/[root-of-the-server]__02px2mk._.js +0 -3
  167. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0vm_41a._.js +0 -3
  168. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0.za3_3._.js +0 -3
  169. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0wwa6gh._.js +0 -3
  170. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_0m67-xi._.js +0 -3
  171. package/app/apps/web/.next/server/chunks/ssr/node_modules_0fx6-.x._.js +0 -3
  172. package/app/apps/web/.next/static/chunks/0257pdz1-imal.js +0 -2
  173. package/app/apps/web/.next/static/chunks/04a36uhu~p_z-.css +0 -1
  174. package/app/apps/web/.next/static/chunks/08nun7x9h-ro1.js +0 -14
  175. package/app/apps/web/.next/static/chunks/0kjot8367asxe.js +0 -31
  176. package/app/apps/web/.next/static/chunks/0n3-prt61k7pr.js +0 -1
  177. /package/app/apps/web/.next/static/{_8He0IMRxt70EDQL1JOFe → VquuqMXKjRSN6LfR7rRSz}/_buildManifest.js +0 -0
  178. /package/app/apps/web/.next/static/{_8He0IMRxt70EDQL1JOFe → VquuqMXKjRSN6LfR7rRSz}/_clientMiddlewareManifest.js +0 -0
  179. /package/app/apps/web/.next/static/{_8He0IMRxt70EDQL1JOFe → VquuqMXKjRSN6LfR7rRSz}/_ssgManifest.js +0 -0
@@ -1,3 +0,0 @@
1
- module.exports=[61724,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-route-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-route-turbo.runtime.prod.js"))},47909,(e,t,r)=>{t.exports=e.r(61724)},17413,(e,t,r)=>{(()=>{"use strict";let r,n,a,i,s;var o,l,u,c,d,p,f,h,g,m,y,v,_,b,S,w,x={491:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ContextAPI=void 0;let n=r(223),a=r(172),i=r(930),s="context",o=new n.NoopContextManager;class l{static getInstance(){return this._instance||(this._instance=new l),this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(s,e,i.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(s)||o}disable(){this._getContextManager().disable(),(0,a.unregisterGlobal)(s,i.DiagAPI.instance())}}t.ContextAPI=l},930:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagAPI=void 0;let n=r(56),a=r(912),i=r(957),s=r(172);class o{constructor(){function e(e){return function(...t){let r=(0,s.getGlobal)("diag");if(r)return r[e](...t)}}const t=this;t.setLogger=(e,r={logLevel:i.DiagLogLevel.INFO})=>{var n,o,l;if(e===t){let e=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return t.error(null!=(n=e.stack)?n:e.message),!1}"number"==typeof r&&(r={logLevel:r});let u=(0,s.getGlobal)("diag"),c=(0,a.createLogLevelDiagLogger)(null!=(o=r.logLevel)?o:i.DiagLogLevel.INFO,e);if(u&&!r.suppressOverrideMessage){let e=null!=(l=Error().stack)?l:"<failed to generate stacktrace>";u.warn(`Current logger will be overwritten from ${e}`),c.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,s.registerGlobal)("diag",c,t,!0)},t.disable=()=>{(0,s.unregisterGlobal)("diag",t)},t.createComponentLogger=e=>new n.DiagComponentLogger(e),t.verbose=e("verbose"),t.debug=e("debug"),t.info=e("info"),t.warn=e("warn"),t.error=e("error")}static instance(){return this._instance||(this._instance=new o),this._instance}}t.DiagAPI=o},653:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MetricsAPI=void 0;let n=r(660),a=r(172),i=r(930),s="metrics";class o{static getInstance(){return this._instance||(this._instance=new o),this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(s,e,i.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(s)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(s,i.DiagAPI.instance())}}t.MetricsAPI=o},181:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PropagationAPI=void 0;let n=r(172),a=r(874),i=r(194),s=r(277),o=r(369),l=r(930),u="propagation",c=new a.NoopTextMapPropagator;class d{constructor(){this.createBaggage=o.createBaggage,this.getBaggage=s.getBaggage,this.getActiveBaggage=s.getActiveBaggage,this.setBaggage=s.setBaggage,this.deleteBaggage=s.deleteBaggage}static getInstance(){return this._instance||(this._instance=new d),this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,l.DiagAPI.instance())}inject(e,t,r=i.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=i.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,l.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||c}}t.PropagationAPI=d},997:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TraceAPI=void 0;let n=r(172),a=r(846),i=r(139),s=r(607),o=r(930),l="trace";class u{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider,this.wrapSpanContext=i.wrapSpanContext,this.isSpanContextValid=i.isSpanContextValid,this.deleteSpan=s.deleteSpan,this.getSpan=s.getSpan,this.getActiveSpan=s.getActiveSpan,this.getSpanContext=s.getSpanContext,this.setSpan=s.setSpan,this.setSpanContext=s.setSpanContext}static getInstance(){return this._instance||(this._instance=new u),this._instance}setGlobalTracerProvider(e){let t=(0,n.registerGlobal)(l,this._proxyTracerProvider,o.DiagAPI.instance());return t&&this._proxyTracerProvider.setDelegate(e),t}getTracerProvider(){return(0,n.getGlobal)(l)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(l,o.DiagAPI.instance()),this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=u},277:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;let n=r(491),a=(0,r(780).createContextKey)("OpenTelemetry Baggage Key");function i(e){return e.getValue(a)||void 0}t.getBaggage=i,t.getActiveBaggage=function(){return i(n.ContextAPI.getInstance().active())},t.setBaggage=function(e,t){return e.setValue(a,t)},t.deleteBaggage=function(e){return e.deleteValue(a)}},993:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BaggageImpl=void 0;class r{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){let t=this._entries.get(e);if(t)return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map(([e,t])=>[e,t])}setEntry(e,t){let n=new r(this._entries);return n._entries.set(e,t),n}removeEntry(e){let t=new r(this._entries);return t._entries.delete(e),t}removeEntries(...e){let t=new r(this._entries);for(let r of e)t._entries.delete(r);return t}clear(){return new r}}t.BaggageImpl=r},830:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.baggageEntryMetadataSymbol=void 0,t.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},369:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.baggageEntryMetadataFromString=t.createBaggage=void 0;let n=r(930),a=r(993),i=r(830),s=n.DiagAPI.instance();t.createBaggage=function(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))},t.baggageEntryMetadataFromString=function(e){return"string"!=typeof e&&(s.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:i.baggageEntryMetadataSymbol,toString:()=>e}}},67:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.context=void 0,t.context=r(491).ContextAPI.getInstance()},223:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoopContextManager=void 0;let n=r(780);t.NoopContextManager=class{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}},780:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ROOT_CONTEXT=t.createContextKey=void 0,t.createContextKey=function(e){return Symbol.for(e)};class r{constructor(e){const t=this;t._currentContext=e?new Map(e):new Map,t.getValue=e=>t._currentContext.get(e),t.setValue=(e,n)=>{let a=new r(t._currentContext);return a._currentContext.set(e,n),a},t.deleteValue=e=>{let n=new r(t._currentContext);return n._currentContext.delete(e),n}}}t.ROOT_CONTEXT=new r},506:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.diag=void 0,t.diag=r(930).DiagAPI.instance()},56:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagComponentLogger=void 0;let n=r(172);function a(e,t,r){let a=(0,n.getGlobal)("diag");if(a)return r.unshift(t),a[e](...r)}t.DiagComponentLogger=class{constructor(e){this._namespace=e.namespace||"DiagComponentLogger"}debug(...e){return a("debug",this._namespace,e)}error(...e){return a("error",this._namespace,e)}info(...e){return a("info",this._namespace,e)}warn(...e){return a("warn",this._namespace,e)}verbose(...e){return a("verbose",this._namespace,e)}}},972:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagConsoleLogger=void 0;let r=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];t.DiagConsoleLogger=class{constructor(){for(let e=0;e<r.length;e++)this[r[e].n]=function(e){return function(...t){if(console){let r=console[e];if("function"!=typeof r&&(r=console.log),"function"==typeof r)return r.apply(console,t)}}}(r[e].c)}}},912:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createLogLevelDiagLogger=void 0;let n=r(957);t.createLogLevelDiagLogger=function(e,t){function r(r,n){let a=t[r];return"function"==typeof a&&e>=n?a.bind(t):function(){}}return e<n.DiagLogLevel.NONE?e=n.DiagLogLevel.NONE:e>n.DiagLogLevel.ALL&&(e=n.DiagLogLevel.ALL),t=t||{},{error:r("error",n.DiagLogLevel.ERROR),warn:r("warn",n.DiagLogLevel.WARN),info:r("info",n.DiagLogLevel.INFO),debug:r("debug",n.DiagLogLevel.DEBUG),verbose:r("verbose",n.DiagLogLevel.VERBOSE)}}},957:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.DiagLogLevel=void 0,(r=t.DiagLogLevel||(t.DiagLogLevel={}))[r.NONE=0]="NONE",r[r.ERROR=30]="ERROR",r[r.WARN=50]="WARN",r[r.INFO=60]="INFO",r[r.DEBUG=70]="DEBUG",r[r.VERBOSE=80]="VERBOSE",r[r.ALL=9999]="ALL"},172:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;let n=r(200),a=r(521),i=r(130),s=a.VERSION.split(".")[0],o=Symbol.for(`opentelemetry.js.api.${s}`),l=n._globalThis;t.registerGlobal=function(e,t,r,n=!1){var i;let s=l[o]=null!=(i=l[o])?i:{version:a.VERSION};if(!n&&s[e]){let t=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);return r.error(t.stack||t.message),!1}if(s.version!==a.VERSION){let t=Error(`@opentelemetry/api: Registration of version v${s.version} for ${e} does not match previously registered API v${a.VERSION}`);return r.error(t.stack||t.message),!1}return s[e]=t,r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`),!0},t.getGlobal=function(e){var t,r;let n=null==(t=l[o])?void 0:t.version;if(n&&(0,i.isCompatible)(n))return null==(r=l[o])?void 0:r[e]},t.unregisterGlobal=function(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);let r=l[o];r&&delete r[e]}},130:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isCompatible=t._makeCompatibilityCheck=void 0;let n=r(521),a=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function i(e){let t=new Set([e]),r=new Set,n=e.match(a);if(!n)return()=>!1;let i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(null!=i.prerelease)return function(t){return t===e};function s(e){return r.add(e),!1}return function(e){if(t.has(e))return!0;if(r.has(e))return!1;let n=e.match(a);if(!n)return s(e);let o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(null!=o.prerelease||i.major!==o.major)return s(e);if(0===i.major)return i.minor===o.minor&&i.patch<=o.patch?(t.add(e),!0):s(e);return i.minor<=o.minor?(t.add(e),!0):s(e)}}t._makeCompatibilityCheck=i,t.isCompatible=i(n.VERSION)},886:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.metrics=void 0,t.metrics=r(653).MetricsAPI.getInstance()},901:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ValueType=void 0,(r=t.ValueType||(t.ValueType={}))[r.INT=0]="INT",r[r.DOUBLE=1]="DOUBLE"},102:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createNoopMeter=t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=t.NOOP_OBSERVABLE_GAUGE_METRIC=t.NOOP_OBSERVABLE_COUNTER_METRIC=t.NOOP_UP_DOWN_COUNTER_METRIC=t.NOOP_HISTOGRAM_METRIC=t.NOOP_COUNTER_METRIC=t.NOOP_METER=t.NoopObservableUpDownCounterMetric=t.NoopObservableGaugeMetric=t.NoopObservableCounterMetric=t.NoopObservableMetric=t.NoopHistogramMetric=t.NoopUpDownCounterMetric=t.NoopCounterMetric=t.NoopMetric=t.NoopMeter=void 0;class r{createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=r;class n{}t.NoopMetric=n;class a extends n{add(e,t){}}t.NoopCounterMetric=a;class i extends n{add(e,t){}}t.NoopUpDownCounterMetric=i;class s extends n{record(e,t){}}t.NoopHistogramMetric=s;class o{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=o;class l extends o{}t.NoopObservableCounterMetric=l;class u extends o{}t.NoopObservableGaugeMetric=u;class c extends o{}t.NoopObservableUpDownCounterMetric=c,t.NOOP_METER=new r,t.NOOP_COUNTER_METRIC=new a,t.NOOP_HISTOGRAM_METRIC=new s,t.NOOP_UP_DOWN_COUNTER_METRIC=new i,t.NOOP_OBSERVABLE_COUNTER_METRIC=new l,t.NOOP_OBSERVABLE_GAUGE_METRIC=new u,t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new c,t.createNoopMeter=function(){return t.NOOP_METER}},660:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;let n=r(102);class a{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=a,t.NOOP_METER_PROVIDER=new a},200:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),a(r(46),t)},651:(t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r._globalThis=void 0,r._globalThis="object"==typeof globalThis?globalThis:e.g},46:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),a(r(651),t)},939:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.propagation=void 0,t.propagation=r(181).PropagationAPI.getInstance()},874:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoopTextMapPropagator=void 0,t.NoopTextMapPropagator=class{inject(e,t){}extract(e,t){return e}fields(){return[]}}},194:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.defaultTextMapSetter=t.defaultTextMapGetter=void 0,t.defaultTextMapGetter={get(e,t){if(null!=e)return e[t]},keys:e=>null==e?[]:Object.keys(e)},t.defaultTextMapSetter={set(e,t,r){null!=e&&(e[t]=r)}}},845:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.trace=void 0,t.trace=r(997).TraceAPI.getInstance()},403:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NonRecordingSpan=void 0;let n=r(476);t.NonRecordingSpan=class{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return!1}recordException(e,t){}}},614:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoopTracer=void 0;let n=r(491),a=r(607),i=r(403),s=r(139),o=n.ContextAPI.getInstance();t.NoopTracer=class{startSpan(e,t,r=o.active()){var n;if(null==t?void 0:t.root)return new i.NonRecordingSpan;let l=r&&(0,a.getSpanContext)(r);return"object"==typeof(n=l)&&"string"==typeof n.spanId&&"string"==typeof n.traceId&&"number"==typeof n.traceFlags&&(0,s.isSpanContextValid)(l)?new i.NonRecordingSpan(l):new i.NonRecordingSpan}startActiveSpan(e,t,r,n){let i,s,l;if(arguments.length<2)return;2==arguments.length?l=t:3==arguments.length?(i=t,l=r):(i=t,s=r,l=n);let u=null!=s?s:o.active(),c=this.startSpan(e,i,u),d=(0,a.setSpan)(u,c);return o.with(d,l,void 0,c)}}},124:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoopTracerProvider=void 0;let n=r(614);t.NoopTracerProvider=class{getTracer(e,t,r){return new n.NoopTracer}}},125:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ProxyTracer=void 0;let n=new(r(614)).NoopTracer;t.ProxyTracer=class{constructor(e,t,r,n){this._provider=e,this.name=t,this.version=r,this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){let a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate)return this._delegate;let e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):n}}},846:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ProxyTracerProvider=void 0;let n=r(125),a=new(r(124)).NoopTracerProvider;t.ProxyTracerProvider=class{getTracer(e,t,r){var a;return null!=(a=this.getDelegateTracer(e,t,r))?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return null!=(e=this._delegate)?e:a}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return null==(n=this._delegate)?void 0:n.getTracer(e,t,r)}}},996:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.SamplingDecision=void 0,(r=t.SamplingDecision||(t.SamplingDecision={}))[r.NOT_RECORD=0]="NOT_RECORD",r[r.RECORD=1]="RECORD",r[r.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"},607:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;let n=r(780),a=r(403),i=r(491),s=(0,n.createContextKey)("OpenTelemetry Context Key SPAN");function o(e){return e.getValue(s)||void 0}function l(e,t){return e.setValue(s,t)}t.getSpan=o,t.getActiveSpan=function(){return o(i.ContextAPI.getInstance().active())},t.setSpan=l,t.deleteSpan=function(e){return e.deleteValue(s)},t.setSpanContext=function(e,t){return l(e,new a.NonRecordingSpan(t))},t.getSpanContext=function(e){var t;return null==(t=o(e))?void 0:t.spanContext()}},325:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TraceStateImpl=void 0;let n=r(564);class a{constructor(e){this._internalState=new Map,e&&this._parse(e)}set(e,t){let r=this._clone();return r._internalState.has(e)&&r._internalState.delete(e),r._internalState.set(e,t),r}unset(e){let t=this._clone();return t._internalState.delete(e),t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce((e,t)=>(e.push(t+"="+this.get(t)),e),[]).join(",")}_parse(e){!(e.length>512)&&(this._internalState=e.split(",").reverse().reduce((e,t)=>{let r=t.trim(),a=r.indexOf("=");if(-1!==a){let i=r.slice(0,a),s=r.slice(a+1,t.length);(0,n.validateKey)(i)&&(0,n.validateValue)(s)&&e.set(i,s)}return e},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let e=new a;return e._internalState=new Map(this._internalState),e}}t.TraceStateImpl=a},564:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateValue=t.validateKey=void 0;let r="[_0-9a-z-*/]",n=`[a-z]${r}{0,255}`,a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`,i=RegExp(`^(?:${n}|${a})$`),s=/^[ -~]{0,255}[!-~]$/,o=/,|=/;t.validateKey=function(e){return i.test(e)},t.validateValue=function(e){return s.test(e)&&!o.test(e)}},98:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createTraceState=void 0;let n=r(325);t.createTraceState=function(e){return new n.TraceStateImpl(e)}},476:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;let n=r(475);t.INVALID_SPANID="0000000000000000",t.INVALID_TRACEID="00000000000000000000000000000000",t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},357:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.SpanKind=void 0,(r=t.SpanKind||(t.SpanKind={}))[r.INTERNAL=0]="INTERNAL",r[r.SERVER=1]="SERVER",r[r.CLIENT=2]="CLIENT",r[r.PRODUCER=3]="PRODUCER",r[r.CONSUMER=4]="CONSUMER"},139:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;let n=r(476),a=r(403),i=/^([0-9a-f]{32})$/i,s=/^[0-9a-f]{16}$/i;function o(e){return i.test(e)&&e!==n.INVALID_TRACEID}function l(e){return s.test(e)&&e!==n.INVALID_SPANID}t.isValidTraceId=o,t.isValidSpanId=l,t.isSpanContextValid=function(e){return o(e.traceId)&&l(e.spanId)},t.wrapSpanContext=function(e){return new a.NonRecordingSpan(e)}},847:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.SpanStatusCode=void 0,(r=t.SpanStatusCode||(t.SpanStatusCode={}))[r.UNSET=0]="UNSET",r[r.OK=1]="OK",r[r.ERROR=2]="ERROR"},475:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.TraceFlags=void 0,(r=t.TraceFlags||(t.TraceFlags={}))[r.NONE=0]="NONE",r[r.SAMPLED=1]="SAMPLED"},521:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,t.VERSION="1.6.0"}},R={};function T(e){var t=R[e];if(void 0!==t)return t.exports;var r=R[e]={exports:{}},n=!0;try{x[e].call(r.exports,r,r.exports,T),n=!1}finally{n&&delete R[e]}return r.exports}T.ab="/ROOT/node_modules/next/dist/compiled/@opentelemetry/api/";var E={};Object.defineProperty(E,"__esModule",{value:!0}),E.trace=E.propagation=E.metrics=E.diag=E.context=E.INVALID_SPAN_CONTEXT=E.INVALID_TRACEID=E.INVALID_SPANID=E.isValidSpanId=E.isValidTraceId=E.isSpanContextValid=E.createTraceState=E.TraceFlags=E.SpanStatusCode=E.SpanKind=E.SamplingDecision=E.ProxyTracerProvider=E.ProxyTracer=E.defaultTextMapSetter=E.defaultTextMapGetter=E.ValueType=E.createNoopMeter=E.DiagLogLevel=E.DiagConsoleLogger=E.ROOT_CONTEXT=E.createContextKey=E.baggageEntryMetadataFromString=void 0,o=T(369),Object.defineProperty(E,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return o.baggageEntryMetadataFromString}}),l=T(780),Object.defineProperty(E,"createContextKey",{enumerable:!0,get:function(){return l.createContextKey}}),Object.defineProperty(E,"ROOT_CONTEXT",{enumerable:!0,get:function(){return l.ROOT_CONTEXT}}),u=T(972),Object.defineProperty(E,"DiagConsoleLogger",{enumerable:!0,get:function(){return u.DiagConsoleLogger}}),c=T(957),Object.defineProperty(E,"DiagLogLevel",{enumerable:!0,get:function(){return c.DiagLogLevel}}),d=T(102),Object.defineProperty(E,"createNoopMeter",{enumerable:!0,get:function(){return d.createNoopMeter}}),p=T(901),Object.defineProperty(E,"ValueType",{enumerable:!0,get:function(){return p.ValueType}}),f=T(194),Object.defineProperty(E,"defaultTextMapGetter",{enumerable:!0,get:function(){return f.defaultTextMapGetter}}),Object.defineProperty(E,"defaultTextMapSetter",{enumerable:!0,get:function(){return f.defaultTextMapSetter}}),h=T(125),Object.defineProperty(E,"ProxyTracer",{enumerable:!0,get:function(){return h.ProxyTracer}}),g=T(846),Object.defineProperty(E,"ProxyTracerProvider",{enumerable:!0,get:function(){return g.ProxyTracerProvider}}),m=T(996),Object.defineProperty(E,"SamplingDecision",{enumerable:!0,get:function(){return m.SamplingDecision}}),y=T(357),Object.defineProperty(E,"SpanKind",{enumerable:!0,get:function(){return y.SpanKind}}),v=T(847),Object.defineProperty(E,"SpanStatusCode",{enumerable:!0,get:function(){return v.SpanStatusCode}}),_=T(475),Object.defineProperty(E,"TraceFlags",{enumerable:!0,get:function(){return _.TraceFlags}}),b=T(98),Object.defineProperty(E,"createTraceState",{enumerable:!0,get:function(){return b.createTraceState}}),S=T(139),Object.defineProperty(E,"isSpanContextValid",{enumerable:!0,get:function(){return S.isSpanContextValid}}),Object.defineProperty(E,"isValidTraceId",{enumerable:!0,get:function(){return S.isValidTraceId}}),Object.defineProperty(E,"isValidSpanId",{enumerable:!0,get:function(){return S.isValidSpanId}}),w=T(476),Object.defineProperty(E,"INVALID_SPANID",{enumerable:!0,get:function(){return w.INVALID_SPANID}}),Object.defineProperty(E,"INVALID_TRACEID",{enumerable:!0,get:function(){return w.INVALID_TRACEID}}),Object.defineProperty(E,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return w.INVALID_SPAN_CONTEXT}}),r=T(67),Object.defineProperty(E,"context",{enumerable:!0,get:function(){return r.context}}),n=T(506),Object.defineProperty(E,"diag",{enumerable:!0,get:function(){return n.diag}}),a=T(886),Object.defineProperty(E,"metrics",{enumerable:!0,get:function(){return a.metrics}}),i=T(939),Object.defineProperty(E,"propagation",{enumerable:!0,get:function(){return i.propagation}}),s=T(845),Object.defineProperty(E,"trace",{enumerable:!0,get:function(){return s.trace}}),E.default={context:r.context,diag:n.diag,metrics:a.metrics,propagation:i.propagation,trace:s.trace},t.exports=E})()},42315,(e,t,r)=>{"use strict";t.exports=e.r(18622)},47540,(e,t,r)=>{"use strict";t.exports=e.r(42315).vendored["react-rsc"].React},19481,(e,t,r)=>{"use strict";var n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,o={},l={RequestCookies:()=>g,ResponseCookies:()=>m,parseCookie:()=>d,parseSetCookie:()=>p,stringifyCookie:()=>c};for(var u in l)n(o,u,{get:l[u],enumerable:!0});function c(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function d(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function p(e){if(!e)return;let[[t,r],...n]=d(e),{domain:a,expires:i,httponly:s,maxage:o,path:l,samesite:u,secure:c,partitioned:p,priority:g}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var m,y,v={name:t,value:decodeURIComponent(r),domain:a,...i&&{expires:new Date(i)},...s&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...u&&{sameSite:f.includes(m=(m=u).toLowerCase())?m:void 0},...c&&{secure:!0},...g&&{priority:h.includes(y=(y=g).toLowerCase())?y:void 0},...p&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let l of i(t))s.call(e,l)||l===r||n(e,l,{get:()=>t[l],enumerable:!(o=a(t,l))||o.enumerable});return e})(n({},"__esModule",{value:!0}),o);var f=["strict","lax","none"],h=["low","medium","high"],g=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of d(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>c(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>c(t)).join("; ")),r}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(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},m=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,i,s=[],o=0;function l(){for(;o<e.length&&/\s/.test(e.charAt(o));)o+=1;return o<e.length}for(;o<e.length;){for(t=o,i=!1;l();)if(","===(r=e.charAt(o))){for(n=o,o+=1,l(),a=o;o<e.length&&"="!==(r=e.charAt(o))&&";"!==r&&","!==r;)o+=1;o<e.length&&"="===e.charAt(o)?(i=!0,o=a,s.push(e.substring(t,n)),t=o):o=n+1}else o+=1;(!i||o>=e.length)&&s.push(e.substring(t,e.length))}return s}(a)){const t=p(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=c(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,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(c).join("; ")}}},93118,(e,t,r)=>{(()=>{"use strict";"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="/ROOT/node_modules/next/dist/compiled/cookie/");var e,r,n,a,i={};i.parse=function(t,r){if("string"!=typeof t)throw TypeError("argument str must be a string");for(var a={},i=t.split(n),s=(r||{}).decode||e,o=0;o<i.length;o++){var l=i[o],u=l.indexOf("=");if(!(u<0)){var c=l.substr(0,u).trim(),d=l.substr(++u,l.length).trim();'"'==d[0]&&(d=d.slice(1,-1)),void 0==a[c]&&(a[c]=function(e,t){try{return t(e)}catch(t){return e}}(d,s))}}return a},i.serialize=function(e,t,n){var i=n||{},s=i.encode||r;if("function"!=typeof s)throw TypeError("option encode is invalid");if(!a.test(e))throw TypeError("argument name is invalid");var o=s(t);if(o&&!a.test(o))throw TypeError("argument val is invalid");var l=e+"="+o;if(null!=i.maxAge){var u=i.maxAge-0;if(isNaN(u)||!isFinite(u))throw TypeError("option maxAge is invalid");l+="; Max-Age="+Math.floor(u)}if(i.domain){if(!a.test(i.domain))throw TypeError("option domain is invalid");l+="; Domain="+i.domain}if(i.path){if(!a.test(i.path))throw TypeError("option path is invalid");l+="; Path="+i.path}if(i.expires){if("function"!=typeof i.expires.toUTCString)throw TypeError("option expires is invalid");l+="; Expires="+i.expires.toUTCString()}if(i.httpOnly&&(l+="; HttpOnly"),i.secure&&(l+="; Secure"),i.sameSite)switch("string"==typeof i.sameSite?i.sameSite.toLowerCase():i.sameSite){case!0:case"strict":l+="; SameSite=Strict";break;case"lax":l+="; SameSite=Lax";break;case"none":l+="; SameSite=None";break;default:throw TypeError("option sameSite is invalid")}return l},e=decodeURIComponent,r=encodeURIComponent,n=/; */,a=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,t.exports=i})()},74017,95169,61916,10372,220,59756,70101,87718,52474,96250,69741,74677,16795,47587,66012,74838,39587,e=>{"use strict";let t,r,n;var a,i,s,o,l,u,c,d,p,f,h,g,m,y,v,_,b,S,w,x=((b={}).PAGES="PAGES",b.PAGES_API="PAGES_API",b.APP_PAGE="APP_PAGE",b.APP_ROUTE="APP_ROUTE",b.IMAGE="IMAGE",b);e.s(["RouteKind",0,x],74017);var R=((a=R||{}).handleRequest="BaseServer.handleRequest",a.run="BaseServer.run",a.pipe="BaseServer.pipe",a.getStaticHTML="BaseServer.getStaticHTML",a.render="BaseServer.render",a.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",a.renderToResponse="BaseServer.renderToResponse",a.renderToHTML="BaseServer.renderToHTML",a.renderError="BaseServer.renderError",a.renderErrorToResponse="BaseServer.renderErrorToResponse",a.renderErrorToHTML="BaseServer.renderErrorToHTML",a.render404="BaseServer.render404",a),T=((i=T||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",i.loadComponents="LoadComponents.loadComponents",i),E=((s=E||{}).getRequestHandler="NextServer.getRequestHandler",s.getRequestHandlerWithMetadata="NextServer.getRequestHandlerWithMetadata",s.getServer="NextServer.getServer",s.getServerRequestHandler="NextServer.getServerRequestHandler",s.createServer="createServer.createServer",s),O=((o=O||{}).compression="NextNodeServer.compression",o.getBuildId="NextNodeServer.getBuildId",o.createComponentTree="NextNodeServer.createComponentTree",o.clientComponentLoading="NextNodeServer.clientComponentLoading",o.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",o.generateStaticRoutes="NextNodeServer.generateStaticRoutes",o.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",o.generatePublicRoutes="NextNodeServer.generatePublicRoutes",o.generateImageRoutes="NextNodeServer.generateImageRoutes.route",o.sendRenderResult="NextNodeServer.sendRenderResult",o.proxyRequest="NextNodeServer.proxyRequest",o.runApi="NextNodeServer.runApi",o.render="NextNodeServer.render",o.renderHTML="NextNodeServer.renderHTML",o.imageOptimizer="NextNodeServer.imageOptimizer",o.getPagePath="NextNodeServer.getPagePath",o.getRoutesManifest="NextNodeServer.getRoutesManifest",o.findPageComponents="NextNodeServer.findPageComponents",o.getFontManifest="NextNodeServer.getFontManifest",o.getServerComponentManifest="NextNodeServer.getServerComponentManifest",o.getRequestHandler="NextNodeServer.getRequestHandler",o.renderToHTML="NextNodeServer.renderToHTML",o.renderError="NextNodeServer.renderError",o.renderErrorToHTML="NextNodeServer.renderErrorToHTML",o.render404="NextNodeServer.render404",o.startResponse="NextNodeServer.startResponse",o.route="route",o.onProxyReq="onProxyReq",o.apiResolver="apiResolver",o.internalFetch="internalFetch",o),N=((l=N||{}).startServer="startServer.startServer",l),P=((u=P||{}).getServerSideProps="Render.getServerSideProps",u.getStaticProps="Render.getStaticProps",u.renderToString="Render.renderToString",u.renderDocument="Render.renderDocument",u.createBodyResult="Render.createBodyResult",u),M=((c=M||{}).renderToString="AppRender.renderToString",c.renderToReadableStream="AppRender.renderToReadableStream",c.getBodyResult="AppRender.getBodyResult",c.fetch="AppRender.fetch",c),C=((d=C||{}).executeRoute="Router.executeRoute",d),A=((p=A||{}).runHandler="Node.runHandler",p),I=((f=I||{}).runHandler="AppRouteRouteHandlers.runHandler",f),j=((h=j||{}).generateMetadata="ResolveMetadata.generateMetadata",h.generateViewport="ResolveMetadata.generateViewport",h),D=((g=D||{}).execute="Middleware.execute",g);let L=new Set(["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),k=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"]);e.s(["AppRenderSpan",0,M,"BaseServerSpan",0,R,"LogSpanAllowList",0,k,"NextNodeServerSpan",0,O,"NextVanillaSpanAllowlist",0,L],95169);let $=process.env.NEXT_OTEL_PERFORMANCE_PREFIX;try{t=e.r(70406)}catch(r){t=e.r(17413)}let{context:B,propagation:U,trace:H,SpanStatusCode:V,SpanKind:G,ROOT_CONTEXT:F}=t;class z extends Error{constructor(e,t){super(),this.bubble=e,this.result=t}}let q=(e,t)=>{"object"==typeof t&&null!==t&&t instanceof z&&t.bubble?e.setAttribute("next.bubble",!0):(t&&(e.recordException(t),e.setAttribute("error.type",t.name)),e.setStatus({code:V.ERROR,message:null==t?void 0:t.message})),e.end()},W=new Map,X=t.createContextKey("next.rootSpanId"),K=0,J={set(e,t,r){e.push({key:t,value:r})}},Y=(n=new class e{getTracerInstance(){return H.getTracer("next.js","0.0.1")}getContext(){return B}getTracePropagationData(){let e=B.active(),t=[];return U.inject(e,t,J),t}getActiveScopeSpan(){return H.getSpan(null==B?void 0:B.active())}withPropagatedContext(e,t,r,n=!1){let a=B.active();if(n){let n=U.extract(F,e,r);if(H.getSpanContext(n))return B.with(n,t);let i=U.extract(a,e,r);return B.with(i,t)}if(H.getSpanContext(a))return t();let i=U.extract(a,e,r);return B.with(i,t)}trace(...e){let[t,r,n]=e,{fn:a,options:i}="function"==typeof r?{fn:r,options:{}}:{fn:n,options:{...r}},s=i.spanName??t;if(!L.has(t)&&"1"!==process.env.NEXT_OTEL_VERBOSE||i.hideSpan)return a();let o=this.getSpanContext((null==i?void 0:i.parentSpan)??this.getActiveScopeSpan());o||(o=(null==B?void 0:B.active())??F);let l=o.getValue(X),u="number"!=typeof l||!W.has(l),c=K++;return i.attributes={"next.span_name":s,"next.span_type":t,...i.attributes},B.with(o.setValue(X,c),()=>this.getTracerInstance().startActiveSpan(s,i,e=>{let r;$&&t&&k.has(t)&&(r="performance"in globalThis&&"measure"in performance?globalThis.performance.now():void 0);let n=!1,s=()=>{!n&&(n=!0,W.delete(c),r&&performance.measure(`${$}:next-${(t.split(".").pop()||"").replace(/[A-Z]/g,e=>"-"+e.toLowerCase())}`,{start:r,end:performance.now()}))};if(u&&W.set(c,new Map(Object.entries(i.attributes??{}))),a.length>1)try{return a(e,t=>q(e,t))}catch(t){throw q(e,t),t}finally{s()}try{let t=a(e);if(null!==t&&"object"==typeof t&&"then"in t&&"function"==typeof t.then)return t.then(t=>(e.end(),t)).catch(t=>{throw q(e,t),t}).finally(s);return e.end(),s(),t}catch(t){throw q(e,t),s(),t}}))}wrap(...e){let t=this,[r,n,a]=3===e.length?e:[e[0],{},e[1]];return L.has(r)||"1"===process.env.NEXT_OTEL_VERBOSE?function(){let e=n;"function"==typeof e&&"function"==typeof a&&(e=e.apply(this,arguments));let i=arguments.length-1,s=arguments[i];if("function"!=typeof s)return t.trace(r,e,()=>a.apply(this,arguments));{let n=t.getContext().bind(B.active(),s);return t.trace(r,e,(e,t)=>(arguments[i]=function(e){return null==t||t(e),n.apply(this,arguments)},a.apply(this,arguments)))}}:a}startSpan(...e){let[t,r]=e,n=this.getSpanContext((null==r?void 0:r.parentSpan)??this.getActiveScopeSpan());return this.getTracerInstance().startSpan(t,r,n)}getSpanContext(e){return e?H.setSpan(B.active(),e):void 0}getRootSpanAttributes(){let e=B.active().getValue(X);return W.get(e)}setRootSpanAttribute(e,t){let r=B.active().getValue(X),n=W.get(r);n&&!n.has(e)&&n.set(e,t)}withSpan(e,t){let r=H.setSpan(B.active(),e);return B.with(r,t)}},()=>n);e.s(["SpanKind",0,G,"getTracer",0,Y],61916);let Z={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"};Z.reactServerComponents,Z.actionBrowser,Z.reactServerComponents,Z.actionBrowser,Z.instrument,Z.middleware,Z.apiNode,Z.apiEdge,Z.serverSideRendering,Z.appPagesBrowser,Z.reactServerComponents,Z.actionBrowser,Z.serverSideRendering,Z.appPagesBrowser,Z.shared,Z.instrument,Z.middleware,Z.reactServerComponents,Z.serverSideRendering,Z.appPagesBrowser,Z.actionBrowser,e.s(["CACHE_ONE_YEAR_SECONDS",0,31536e3,"HTML_CONTENT_TYPE_HEADER",0,"text/html; charset=utf-8","INFINITE_CACHE",0,0xfffffffe,"NEXT_CACHE_TAGS_HEADER",0,"x-next-cache-tags","NEXT_CACHE_TAG_MAX_ITEMS",0,128,"NEXT_CACHE_TAG_MAX_LENGTH",0,256],10372);var Q=e.i(47540);class ee extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest="DYNAMIC_SERVER_USAGE"}}class et extends Error{constructor(...e){super(...e),this.code="NEXT_STATIC_GEN_BAILOUT"}}var er=e.i(32319),en=e.i(56704);let ea="function"==typeof Q.default.unstable_postpone;function ei(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new et(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender-ppr":var n,a,i;return n=e.route,a=r,i=t.dynamicTracking,void(function(){if(!ea)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})}(),i&&i.dynamicAccesses.push({stack:i.isDebugDynamicAccesses?Error().stack:void 0,expression:a}),Q.default.unstable_postpone(es(n,a)));case"prerender-legacy":t.revalidate=0;let s=Object.defineProperty(new ee(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=s.stack,s}}}function es(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}if(!1===((m=es("%%%","^^^")).includes("needs to bail out of prerendering at this point because it used")&&m.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});RegExp("\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at __next_root_layout_boundary__ \\([^\\n]*\\)"),RegExp("\\n\\s+at __next_metadata_boundary__[\\n\\s]"),RegExp("\\n\\s+at __next_viewport_boundary__[\\n\\s]"),RegExp("\\n\\s+at __next_outlet_boundary__[\\n\\s]"),RegExp("\\n\\s+at __next_instant_validation_boundary__[\\n\\s]");class eo extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest="HANGING_PROMISE_REJECTION"}}let el=new WeakMap;function eu(e,t,r){if(e.aborted)return Promise.reject(new eo(t,r));{let n=new Promise((n,a)=>{let i=a.bind(null,new eo(t,r)),s=el.get(e);if(s)s.push(i);else{let t=[i];el.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e<t.length;e++)t[e]()},{once:!0})}});return n.catch(ec),n}}function ec(){}let ed=()=>{};function ep(e){if(!e.body)return[e,e];let[t,n]=e.body.tee(),a=new Response(t,{status:e.status,statusText:e.statusText,headers:e.headers});Object.defineProperty(a,"url",{value:e.url,configurable:!0,enumerable:!0,writable:!1});let i=new Response(n,{status:e.status,statusText:e.statusText,headers:e.headers});return Object.defineProperty(i,"url",{value:e.url,configurable:!0,enumerable:!0,writable:!1}),r&&(a.body&&r.register(a,new WeakRef(a.body)),i.body&&r.register(i,new WeakRef(i.body))),[a,i]}globalThis.FinalizationRegistry&&(r=new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&t.cancel("Response object has been garbage collected").then(ed)}));class ef extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}let eh=new Set(["traceparent","tracestate"]);class eg{constructor(){let e,t;this.promise=new Promise((r,n)=>{e=r,t=n}),this.resolve=e,this.reject=t}}class em{constructor(e,t,r){this.prev=null,this.next=null,this.key=e,this.data=t,this.size=r}}class ey{constructor(){this.prev=null,this.next=null}}class ev{constructor(e,t,r){this.cache=new Map,this.totalSize=0,this.maxSize=e,this.calculateSize=t,this.onEvict=r,this.head=new ey,this.tail=new ey,this.head.next=this.tail,this.tail.prev=this.head}addToHead(e){e.prev=this.head,e.next=this.head.next,this.head.next.prev=e,this.head.next=e}removeNode(e){e.prev.next=e.next,e.next.prev=e.prev}moveToHead(e){this.removeNode(e),this.addToHead(e)}removeTail(){let e=this.tail.prev;return this.removeNode(e),e}set(e,t){let r=(null==this.calculateSize?void 0:this.calculateSize.call(this,t))??1;if(r<=0)throw Object.defineProperty(Error(`LRUCache: calculateSize returned ${r}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`),"__NEXT_ERROR_CODE",{value:"E1045",enumerable:!1,configurable:!0});if(r>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let n=this.cache.get(e);if(n)n.data=t,this.totalSize=this.totalSize-n.size+r,n.size=r,this.moveToHead(n);else{let n=new em(e,t,r);this.cache.set(e,n),this.addToHead(n),this.totalSize+=r}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let e=this.removeTail();this.cache.delete(e.key),this.totalSize-=e.size,null==this.onEvict||this.onEvict.call(this,e.key,e.data)}return!0}has(e){return this.cache.has(e)}get(e){let t=this.cache.get(e);if(t)return this.moveToHead(t),t.data}*[Symbol.iterator](){let e=this.head.next;for(;e&&e!==this.tail;){let t=e;yield[t.key,t.data],e=e.next}}remove(e){let t=this.cache.get(e);t&&(this.removeNode(t),this.cache.delete(e),this.totalSize-=t.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}let{env:e_,stdout:eb}=(null==(S=globalThis)?void 0:S.process)??{},eS=e_&&!e_.NO_COLOR&&(e_.FORCE_COLOR||(null==eb?void 0:eb.isTTY)&&!e_.CI&&"dumb"!==e_.TERM),ew=(e,t,r,n)=>{let a=e.substring(0,n)+r,i=e.substring(n+t.length),s=i.indexOf(t);return~s?a+ew(i,t,r,s):a+i},ex=(e,t,r=e)=>eS?n=>{let a=""+n,i=a.indexOf(t,e.length);return~i?e+ew(a,t,r,i)+t:e+a+t}:String,eR=ex("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m");ex("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),ex("\x1b[3m","\x1b[23m"),ex("\x1b[4m","\x1b[24m"),ex("\x1b[7m","\x1b[27m"),ex("\x1b[8m","\x1b[28m"),ex("\x1b[9m","\x1b[29m"),ex("\x1b[30m","\x1b[39m");let eT=ex("\x1b[31m","\x1b[39m"),eE=ex("\x1b[32m","\x1b[39m"),eO=ex("\x1b[33m","\x1b[39m");ex("\x1b[34m","\x1b[39m");let eN=ex("\x1b[35m","\x1b[39m");ex("\x1b[38;2;173;127;168m","\x1b[39m"),ex("\x1b[36m","\x1b[39m");let eP=ex("\x1b[37m","\x1b[39m");ex("\x1b[90m","\x1b[39m"),ex("\x1b[40m","\x1b[49m"),ex("\x1b[41m","\x1b[49m"),ex("\x1b[42m","\x1b[49m"),ex("\x1b[43m","\x1b[49m"),ex("\x1b[44m","\x1b[49m"),ex("\x1b[45m","\x1b[49m"),ex("\x1b[46m","\x1b[49m"),ex("\x1b[47m","\x1b[49m"),eP(eR("○")),eT(eR("⨯")),eO(eR("⚠")),eP(eR(" ")),eE(eR("✓")),eN(eR("»")),new ev(1e4,e=>e.length),new ev(1e4,e=>e.length);var eM=((y={}).APP_PAGE="APP_PAGE",y.APP_ROUTE="APP_ROUTE",y.PAGES="PAGES",y.FETCH="FETCH",y.REDIRECT="REDIRECT",y.IMAGE="IMAGE",y),eC=((v={}).APP_PAGE="APP_PAGE",v.APP_ROUTE="APP_ROUTE",v.PAGES="PAGES",v.FETCH="FETCH",v.IMAGE="IMAGE",v);function eA(){}e.s(["CachedRouteKind",0,eM,"IncrementalCacheKind",0,eC],220);let eI=new TextEncoder;function ej(e){return new ReadableStream({start(t){t.enqueue(eI.encode(e)),t.close()}})}function eD(e){return new ReadableStream({start(t){t.enqueue(e),t.close()}})}async function eL(e,t){let r=new TextDecoder("utf-8",{fatal:!0}),n="";for await(let a of e){if(null==t?void 0:t.aborted)return n;n+=r.decode(a,{stream:!0})}return n+r.decode()}let ek=Symbol.for("NextInternalRequestMeta");function e$(e,t){let r=e[ek]||{};return"string"==typeof t?r[t]:r}function eB(e,t){return e[ek]=t,t}function eU(e){let t=new Headers;for(let[r,n]of Object.entries(e))for(let e of Array.isArray(n)?n:[n])void 0!==e&&("number"==typeof e&&(e=e.toString()),t.append(r,e));return t}function eH(e){var t,r,n,a,i,s=[],o=0;function l(){for(;o<e.length&&/\s/.test(e.charAt(o));)o+=1;return o<e.length}for(;o<e.length;){for(t=o,i=!1;l();)if(","===(r=e.charAt(o))){for(n=o,o+=1,l(),a=o;o<e.length&&"="!==(r=e.charAt(o))&&";"!==r&&","!==r;)o+=1;o<e.length&&"="===e.charAt(o)?(i=!0,o=a,s.push(e.substring(t,n)),t=o):o=n+1}else o+=1;(!i||o>=e.length)&&s.push(e.substring(t,e.length))}return s}function eV(e){let t={},r=[];if(e)for(let[n,a]of e.entries())"set-cookie"===n.toLowerCase()?(r.push(...eH(a)),t[n]=1===r.length?r[0]:r):t[n]=a;return t}function eG(e){try{return String(new URL(String(e)))}catch(t){throw Object.defineProperty(Error(`URL is malformed "${String(e)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:t}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function eF(e){return e.replace(/\/$/,"")||"/"}function ez(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r<t);return n||t>-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}function eq(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:a}=ez(e);return`${t}${r}${n}${a}`}function eW(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:a}=ez(e);return`${r}${t}${n}${a}`}function eX(e,t){if("string"!=typeof e)return!1;let{pathname:r}=ez(e);return r===t||r.startsWith(t+"/")}e.s(["NEXT_REQUEST_META",0,ek,"addRequestMeta",0,function(e,t,r){let n=e$(e);return n[t]=r,eB(e,n)},"getRequestMeta",0,e$,"setRequestMeta",0,eB],59756),e.s(["fromNodeOutgoingHttpHeaders",0,eU,"splitCookiesString",0,eH,"toNodeOutgoingHttpHeaders",0,eV,"validateURL",0,eG],70101);let eK=new WeakMap;function eJ(e,t){let r;if(!t)return{pathname:e};let n=eK.get(t);n||(n=t.map(e=>e.toLowerCase()),eK.set(t,n));let a=e.split("/",2);if(!a[1])return{pathname:e};let i=a[1].toLowerCase(),s=n.indexOf(i);return s<0?{pathname:e}:(r=t[s],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}let eY=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function eZ(e,t){let r=new URL(String(e),t&&String(t));return eY.test(r.hostname)&&(r.hostname="localhost"),r}let eQ=Symbol("NextURLInternal");class e0{constructor(e,t,r){let n,a;"object"==typeof t&&"pathname"in t||"string"==typeof t?(n=t,a=r||{}):a=r||t||{},this[eQ]={url:eZ(e,n??a.base),options:a,basePath:""},this.analyze()}analyze(){var e,t,r,n,a;let i=function(e,t){let{basePath:r,i18n:n,trailingSlash:a}=t.nextConfig??{},i={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):a};r&&eX(i.pathname,r)&&(i.pathname=function(e,t){if(!eX(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}(i.pathname,r),i.basePath=r);let s=i.pathname;if(i.pathname.startsWith("/_next/data/")&&i.pathname.endsWith(".json")){let e=i.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");i.buildId=e[0],s="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(i.pathname=s)}if(n){let e=t.i18nProvider?t.i18nProvider.analyze(i.pathname):eJ(i.pathname,n.locales);i.locale=e.detectedLocale,i.pathname=e.pathname??i.pathname,!e.detectedLocale&&i.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(s):eJ(s,n.locales)).detectedLocale&&(i.locale=e.detectedLocale)}return i}(this[eQ].url.pathname,{nextConfig:this[eQ].options.nextConfig,parseData:!0,i18nProvider:this[eQ].options.i18nProvider}),s=function(e,t){let r;if(t?.host&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}(this[eQ].url,this[eQ].options.headers);this[eQ].domainLocale=this[eQ].options.i18nProvider?this[eQ].options.i18nProvider.detectDomainLocale(s):function(e,t,r){if(e){for(let n of(r&&(r=r.toLowerCase()),e))if(t===n.domain?.split(":",1)[0].toLowerCase()||r===n.defaultLocale.toLowerCase()||n.locales?.some(e=>e.toLowerCase()===r))return n}}(null==(t=this[eQ].options.nextConfig)||null==(e=t.i18n)?void 0:e.domains,s);let o=(null==(r=this[eQ].domainLocale)?void 0:r.defaultLocale)||(null==(a=this[eQ].options.nextConfig)||null==(n=a.i18n)?void 0:n.defaultLocale);this[eQ].url.pathname=i.pathname,this[eQ].defaultLocale=o,this[eQ].basePath=i.basePath??"",this[eQ].buildId=i.buildId,this[eQ].locale=i.locale??o,this[eQ].trailingSlash=i.trailingSlash}formatPathname(){var e;let t;return t=function(e,t,r,n){if(!t||t===r)return e;let a=e.toLowerCase();return!n&&(eX(a,"/api")||eX(a,`/${t.toLowerCase()}`))?e:eq(e,`/${t}`)}((e={basePath:this[eQ].basePath,buildId:this[eQ].buildId,defaultLocale:this[eQ].options.forceLocale?void 0:this[eQ].defaultLocale,locale:this[eQ].locale,pathname:this[eQ].url.pathname,trailingSlash:this[eQ].trailingSlash}).pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix),(e.buildId||!e.trailingSlash)&&(t=eF(t)),e.buildId&&(t=eW(eq(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=eq(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:eW(t,"/"):eF(t)}formatSearch(){return this[eQ].url.search}get buildId(){return this[eQ].buildId}set buildId(e){this[eQ].buildId=e}get locale(){return this[eQ].locale??""}set locale(e){var t,r;if(!this[eQ].locale||!(null==(r=this[eQ].options.nextConfig)||null==(t=r.i18n)?void 0:t.locales.includes(e)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${e}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[eQ].locale=e}get defaultLocale(){return this[eQ].defaultLocale}get domainLocale(){return this[eQ].domainLocale}get searchParams(){return this[eQ].url.searchParams}get host(){return this[eQ].url.host}set host(e){this[eQ].url.host=e}get hostname(){return this[eQ].url.hostname}set hostname(e){this[eQ].url.hostname=e}get port(){return this[eQ].url.port}set port(e){this[eQ].url.port=e}get protocol(){return this[eQ].url.protocol}set protocol(e){this[eQ].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[eQ].url=eZ(e),this.analyze()}get origin(){return this[eQ].url.origin}get pathname(){return this[eQ].url.pathname}set pathname(e){this[eQ].url.pathname=e}get hash(){return this[eQ].url.hash}set hash(e){this[eQ].url.hash=e}get search(){return this[eQ].url.search}set search(e){this[eQ].url.search=e}get password(){return this[eQ].url.password}set password(e){this[eQ].url.password=e}get username(){return this[eQ].url.username}set username(e){this[eQ].url.username=e}get basePath(){return this[eQ].basePath}set basePath(e){this[eQ].basePath=e.startsWith("/")?e:`/${e}`}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 e0(String(this),this[eQ].options)}}class e1 extends Error{constructor(){super("The request.page has been deprecated in favour of `URLPattern`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n ")}}class e2 extends Error{constructor(){super("The request.ua has been removed in favour of `userAgent` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n ")}}var e4=e.i(19481);let e9=Symbol("internal request");class e3 extends Request{constructor(e,t={}){const r="string"!=typeof e&&"url"in e?e.url:String(e);eG(r),t.body&&"half"!==t.duplex&&(t.duplex="half"),e instanceof Request?super(e,t):super(r,t);const n=new e0(r,{headers:eV(this.headers),nextConfig:t.nextConfig});this[e9]={cookies:new e4.RequestCookies(this.headers),nextUrl:n,url:n.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[e9].cookies}get nextUrl(){return this[e9].nextUrl}get page(){throw new e1}get ua(){throw new e2}get url(){return this[e9].url}}let e7="ResponseAborted";class e6 extends Error{constructor(...e){super(...e),this.name=e7}}function e5(e){let t=new AbortController;return e.once("close",()=>{e.writableFinished||t.abort(new e6)}),t}class e8{static fromBaseNextRequest(e,t){return e8.fromNodeNextRequest(e,t)}static fromNodeNextRequest(e,t){let r,n=null;if("GET"!==e.method&&"HEAD"!==e.method&&e.body&&(n=e.body),e.url.startsWith("http"))r=new URL(e.url);else{let t=e$(e,"initURL");r=t&&t.startsWith("http")?new URL(e.url,t):new URL(e.url,"http://n")}return new e3(r,{method:e.method,headers:eU(e.headers),duplex:"half",signal:t,...t.aborted?{}:{body:n}})}static fromWebNextRequest(e){let t=null;return"GET"!==e.method&&"HEAD"!==e.method&&(t=e.body),new e3(e.url,{method:e.method,headers:eU(e.headers),duplex:"half",signal:e.request.signal,...e.request.signal.aborted?{}:{body:t}})}}e.s(["NextRequestAdapter",0,e8,"ResponseAbortedName",0,e7,"createAbortController",0,e5,"signalFromNodeResponse",0,function(e){let{errored:t,destroyed:r}=e;if(t||r)return AbortSignal.abort(t??new e6);let{signal:n}=e5(e);return n}],87718);let te=0,tt=0,tr=0;function tn(e){return(null==e?void 0:e.name)==="AbortError"||(null==e?void 0:e.name)===e7}async function ta(e,t,r){try{let{errored:n,destroyed:a}=t;if(n||a)return;let i=e5(t),s=function(e,t){let r=!1,n=new eg;function a(){n.resolve()}e.on("drain",a),e.once("close",()=>{e.off("drain",a),n.resolve()});let i=new eg;return e.once("finish",()=>{i.resolve()}),new WritableStream({write:async t=>{if(!r){if(r=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let e=function(e={}){let t=0===te?void 0:{clientComponentLoadStart:te,clientComponentLoadTimes:tt,clientComponentLoadCount:tr};return e.reset&&(te=0,tt=0,tr=0),t}();e&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:e.clientComponentLoadStart,end:e.clientComponentLoadStart+e.clientComponentLoadTimes})}e.flushHeaders(),Y().trace(O.startResponse,{spanName:"start response"},()=>void 0)}try{let r=e.write(t);"flush"in e&&"function"==typeof e.flush&&e.flush(),r||(await n.promise,n=new eg)}catch(t){throw e.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:t}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:t=>{e.writableFinished||e.destroy(t)},close:async()=>{if(t&&await t,!e.writableFinished)return e.end(),i.promise}})}(t,r);await e.pipeTo(s,{signal:i.signal})}catch(e){if(tn(e))return;throw Object.defineProperty(Error("failed to pipe response",{cause:e}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}class ti{static #e=this.EMPTY=new ti(null,{metadata:{},contentType:null});static fromStatic(e,t){return new ti(e,{metadata:{},contentType:t})}constructor(e,{contentType:t,waitUntil:r,metadata:n}){this.response=e,this.contentType=t,this.metadata=n,this.waitUntil=r}assignMetadata(e){Object.assign(this.metadata,e)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(e=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!e)throw Object.defineProperty(new ef("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return eL(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(e){e.close()}}):"string"==typeof this.response?ej(this.response):Buffer.isBuffer(this.response)?eD(this.response):Array.isArray(this.response)?function(...e){if(0===e.length)return new ReadableStream({start(e){e.close()}});if(1===e.length)return e[0];let{readable:t,writable:r}=new TransformStream,n=e[0].pipeTo(r,{preventClose:!0}),a=1;for(;a<e.length-1;a++){let t=e[a];n=n.then(()=>t.pipeTo(r,{preventClose:!0}))}let i=e[a];return(n=n.then(()=>i.pipeTo(r))).catch(eA),t}(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[ej(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[eD(this.response)]:[this.response]}pipeThrough(e){this.response=this.readable.pipeThrough(e)}unshift(e){this.response=this.coerce(),this.response.unshift(e)}push(e){this.response=this.coerce(),this.response.push(e)}async pipeTo(e){try{await this.readable.pipeTo(e,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await e.close()}catch(t){if(tn(t))return void await e.abort(t);throw t}}async pipeToNodeResponse(e){await ta(this.readable,e,this.waitUntil)}}function ts(e,t){if(!e)return t;let r=parseInt(e,10);return Number.isFinite(r)&&r>0?r:t}ts(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),ts(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),e.s([],52474);let to=Symbol.for("next-patch");function tl(e,t){e.shouldTrackFetchMetrics&&(e.fetchMetrics??=[],e.fetchMetrics.push({...t,end:performance.timeOrigin+performance.now(),idx:e.nextFetchId||0}))}async function tu(e,t,r,n,a,i){let s=await e.arrayBuffer(),o={headers:Object.fromEntries(e.headers.entries()),body:Buffer.from(s).toString("base64"),status:e.status,url:e.url};return r&&await n.set(t,{kind:eM.FETCH,data:o,revalidate:a},r),await i(),new Response(s,{headers:e.headers,status:e.status,statusText:e.statusText})}async function tc(e,t,r,n,a,i,s,o,l,u){let[c,d]=ep(t),p=c.arrayBuffer().then(async e=>{let t=Buffer.from(e),o={headers:Object.fromEntries(c.headers.entries()),body:t.toString("base64"),status:c.status,url:c.url};null==i||i.set(r,o),n&&await a.set(r,{kind:eM.FETCH,data:o,revalidate:s},n)}).catch(e=>{(null==u?void 0:u.aborted)||console.warn("Failed to set fetch cache",o,e)}).finally(l),f=`cache-set-${r}`,h=e.pendingRevalidates??={},g=Promise.resolve();return f in h&&(g=h[f]),h[f]=g.then(()=>p).finally(()=>{(null==h?void 0:h[f])&&delete h[f]}),d}let td=null;function tp(e){var t;return(t=e.split("/").reduce((e,t,r,n)=>t?"("===t[0]&&t.endsWith(")")||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`:e,"")).startsWith("/")?t:`/${t}`}e.s(["patchFetch",0,function(e){var t;let r;if(!0===globalThis[to])return;let n=(t=globalThis.fetch,r=Q.cache(e=>[]),function(e,n){let a,i;if(n&&n.signal)return t(e,n);if("string"!=typeof e||n){let r,s="string"==typeof e||e instanceof URL?new Request(e,n):e;if("GET"!==s.method&&"HEAD"!==s.method||s.keepalive)return t(e,n);r=Array.from(s.headers.entries()).filter(([e])=>!eh.has(e.toLowerCase())),i=JSON.stringify([s.method,r,s.mode,s.redirect,s.credentials,s.referrer,s.referrerPolicy,s.integrity]),a=s.url}else i='["GET",[],null,"follow",null,null,null,null]',a=e;let s=r(a);for(let e=0,t=s.length;e<t;e+=1){let[t,r]=s[e];if(t===i)return r.then(()=>{let t=s[e][2];if(!t)throw Object.defineProperty(new ef("No cached response"),"__NEXT_ERROR_CODE",{value:"E579",enumerable:!1,configurable:!0});let[r,n]=ep(t);return s[e][2]=n,r})}let o=t(e,n),l=[i,o,null];return s.push(l),o.then(e=>{let[t,r]=ep(e);return l[2]=r,t})});globalThis.fetch=function(e,{workAsyncStorage:t,workUnitAsyncStorage:r}){let n=async function(n,a){var i,s;let o;try{(o=new URL(n instanceof Request?n.url:n)).username="",o.password=""}catch{o=void 0}let l=(null==o?void 0:o.href)??"",u=(null==a||null==(i=a.method)?void 0:i.toUpperCase())||"GET",c=(null==a||null==(s=a.next)?void 0:s.internal)===!0,d="1"===process.env.NEXT_OTEL_FETCH_DISABLED,p=c?void 0:performance.timeOrigin+performance.now(),f=t.getStore(),h=r.getStore(),g=h?(0,er.getCacheSignal)(h):null;g&&g.beginRead();let m=Y().trace(c?O.internalFetch:M.fetch,{hideSpan:d,kind:G.CLIENT,spanName:["fetch",u,l].filter(Boolean).join(" "),attributes:{"http.url":l,"http.method":u,"net.peer.name":null==o?void 0:o.hostname,"net.peer.port":(null==o?void 0:o.port)||void 0}},async()=>{var t;let r,i,s,o,u,d;if(c||!f||f.isDraftMode)return e(n,a);let m=n&&"object"==typeof n&&"string"==typeof n.method,y=e=>(null==a?void 0:a[e])||(m?n[e]:null),v=e=>{var t,r,i;return void 0!==(null==a||null==(t=a.next)?void 0:t[e])?null==a||null==(r=a.next)?void 0:r[e]:m?null==(i=n.next)?void 0:i[e]:void 0},_=v("revalidate"),b=_,S=function(e,t){let r=[],n=[];for(let a=0;a<e.length;a++){let i=e[a];if("string"!=typeof i?n.push({tag:i,reason:"invalid type, must be a string"}):i.length>256?n.push({tag:i,reason:"exceeded max length of 256"}):r.push(i),r.length>128){console.warn(`Warning: exceeded max tag count for ${t}, dropped tags:`,e.slice(a).join(", "));break}}if(n.length>0)for(let{tag:e,reason:r}of(console.warn(`Warning: invalid tags passed to ${t}: `),n))console.log(`tag: "${e}" ${r}`);return r}(v("tags")||[],`fetch ${n.toString()}`);if(h)switch(h.type){case"prerender":case"prerender-runtime":case"prerender-client":case"validation-client":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":r=h}if(r&&Array.isArray(S)){let e=r.tags??(r.tags=[]);for(let t of S)e.includes(t)||e.push(t)}let w=null==h?void 0:h.implicitTags,x=f.fetchCache;h&&"unstable-cache"===h.type&&(x="force-no-store");let R=!!f.isUnstableNoStore,T=y("cache"),E="";"string"==typeof T&&void 0!==b&&("force-cache"===T&&0===b||"no-store"===T&&(b>0||!1===b))&&(i=`Specified "cache: ${T}" and "revalidate: ${b}", only one should be specified.`,T=void 0,b=void 0);let O="no-cache"===T||"no-store"===T||"force-no-store"===x||"only-no-store"===x,N=!x&&!T&&!b&&f.forceDynamic;"force-cache"===T&&void 0===b?b=!1:(O||N)&&(b=0),("no-cache"===T||"no-store"===T)&&(E=`cache: ${T}`),d=function(e,t){try{let r;if(!1===e)r=0xfffffffe;else if("number"==typeof e&&!isNaN(e)&&e>-1)r=e;else if(void 0!==e)throw Object.defineProperty(Error(`Invalid revalidate value "${e}" on "${t}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0});return r}catch(e){if(e instanceof Error&&e.message.includes("Invalid revalidate"))throw e;return}}(b,f.route);let P=y("headers"),M="function"==typeof(null==P?void 0:P.get)?P:new Headers(P||{}),C=M.get("authorization")||M.get("cookie"),A=!["get","head"].includes((null==(t=y("method"))?void 0:t.toLowerCase())||"get"),I=void 0==x&&(void 0==T||"default"===T)&&void 0==b,j=!!((C||A)&&(null==r?void 0:r.revalidate)===0),D=!1;if(!j&&I&&(f.isBuildTimePrerendering?D=!0:j=!0),I&&void 0!==h)switch(h.type){case"prerender":case"prerender-runtime":case"prerender-client":return g&&(g.endRead(),g=null),eu(h.renderSignal,f.route,"fetch()")}switch(x){case"force-no-store":E="fetchCache = force-no-store";break;case"only-no-store":if("force-cache"===T||void 0!==d&&d>0)throw Object.defineProperty(Error(`cache: 'force-cache' used on fetch for ${l} with 'export const fetchCache = 'only-no-store'`),"__NEXT_ERROR_CODE",{value:"E448",enumerable:!1,configurable:!0});E="fetchCache = only-no-store";break;case"only-cache":if("no-store"===T)throw Object.defineProperty(Error(`cache: 'no-store' used on fetch for ${l} with 'export const fetchCache = 'only-cache'`),"__NEXT_ERROR_CODE",{value:"E521",enumerable:!1,configurable:!0});break;case"force-cache":(void 0===b||0===b)&&(E="fetchCache = force-cache",d=0xfffffffe)}if(void 0===d?"default-cache"!==x||R?"default-no-store"===x?(d=0,E="fetchCache = default-no-store"):R?(d=0,E="noStore call"):j?(d=0,E="auto no cache"):(E="auto cache",d=r?r.revalidate:0xfffffffe):(d=0xfffffffe,E="fetchCache = default-cache"):E||(E=`revalidate: ${d}`),!(f.forceStatic&&0===d)&&!j&&r&&d<r.revalidate){if(0===d){if(h)switch(h.type){case"prerender":case"prerender-client":case"prerender-runtime":case"validation-client":return g&&(g.endRead(),g=null),eu(h.renderSignal,f.route,"fetch()")}ei(f,h,`revalidate: 0 fetch ${n} ${f.route}`)}r&&_===d&&(r.revalidate=d)}let L="number"==typeof d&&d>0,{incrementalCache:k}=f,$=!1;if(h)switch(h.type){case"request":case"cache":case"private-cache":$=h.isHmrRefresh??!1,o=h.serverComponentsHmrCache}if(k&&(L||o))try{s=await k.generateCacheKey(l,m?n:a)}catch(e){console.error("Failed to generate cache key for",n)}let B=f.nextFetchId??1;f.nextFetchId=B+1;let U=()=>{},H=async(t,r)=>{let u=["cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","window","duplex",...t?[]:["signal"]];if(m){let e=n,t={body:e._ogBody||e.body};for(let r of u)t[r]=e[r];n=new Request(e.url,t)}else if(a){let{_ogBody:e,body:r,signal:n,...i}=a;a={...i,body:e||r,signal:t?void 0:n}}let c={...a,next:{...null==a?void 0:a.next,fetchType:"origin",fetchIdx:B}};return e(n,c).then(async e=>{if(!t&&p&&tl(f,{start:p,url:l,cacheReason:r||E,cacheStatus:0===d||r?"skip":"miss",cacheWarning:i,status:e.status,method:c.method||"GET"}),200===e.status&&k&&s&&(L||o)){let t=d>=0xfffffffe?31536e3:d,r=L?{fetchCache:!0,fetchUrl:l,fetchIdx:B,tags:S,isImplicitBuildTimeCache:D}:void 0;switch(null==h?void 0:h.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":return tu(e,s,r,k,t,U);case"request":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":case void 0:return tc(f,e,s,r,k,o,t,n,U,y("signal"))}}return await U(),e}).catch(e=>{throw U(),e})},V=!1,G=!1;if(s&&k){let e;if($&&o&&(e=o.get(s),G=!0),L&&!e){U=await k.lock(s);let t=f.isOnDemandRevalidate?null:await k.get(s,{kind:eC.FETCH,revalidate:d,fetchUrl:l,fetchIdx:B,tags:S,softTags:null==w?void 0:w.tags});if(I&&h)switch(h.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":await (td||(td=new Promise(e=>{setTimeout(()=>{td=null,e()},0)})),td)}if(t?await U():u="cache-control: no-cache (hard refresh)",(null==t?void 0:t.value)&&t.value.kind===eM.FETCH)if(f.isStaticGeneration&&t.isStale)V=!0;else{if(t.isStale&&(f.pendingRevalidates??={},!f.pendingRevalidates[s])){let e=H(!0).then(async e=>({body:await e.arrayBuffer(),headers:e.headers,status:e.status,statusText:e.statusText})).finally(()=>{f.pendingRevalidates??={},delete f.pendingRevalidates[s||""]});e.catch(console.error),f.pendingRevalidates[s]=e}e=t.value.data}}if(e){p&&tl(f,{start:p,url:l,cacheReason:E,cacheStatus:G?"hmr":"hit",cacheWarning:i,status:e.status||200,method:(null==a?void 0:a.method)||"GET"});let t=new Response(Buffer.from(e.body,"base64"),{headers:e.headers,status:e.status});return Object.defineProperty(t,"url",{value:e.url}),t}}if(f.isStaticGeneration&&a&&"object"==typeof a){let{cache:e}=a;if("no-store"===e){if(h)switch(h.type){case"prerender":case"prerender-client":case"prerender-runtime":case"validation-client":return g&&(g.endRead(),g=null),eu(h.renderSignal,f.route,"fetch()")}ei(f,h,`no-store fetch ${n} ${f.route}`)}let t="next"in a,{next:i={}}=a;if("number"==typeof i.revalidate&&r&&i.revalidate<r.revalidate){if(0===i.revalidate){if(h)switch(h.type){case"prerender":case"prerender-client":case"prerender-runtime":case"validation-client":return eu(h.renderSignal,f.route,"fetch()")}ei(f,h,`revalidate: 0 fetch ${n} ${f.route}`)}f.forceStatic&&0===i.revalidate||(r.revalidate=i.revalidate)}t&&delete a.next}if(!s||!V)return H(!1,u);{let e=s;f.pendingRevalidates??={};let t=f.pendingRevalidates[e];if(t){let e=await t;return new Response(e.body,{headers:e.headers,status:e.status,statusText:e.statusText})}let r=H(!0,u).then(ep);return(t=r.then(async e=>{let t=e[0];return{body:await t.arrayBuffer(),headers:t.headers,status:t.status,statusText:t.statusText}}).finally(()=>{var t;(null==(t=f.pendingRevalidates)?void 0:t[e])&&delete f.pendingRevalidates[e]})).catch(()=>{}),f.pendingRevalidates[e]=t,r.then(e=>e[1])}});if(g)try{return await m}finally{g&&g.endRead()}return m};return n.__nextPatched=!0,n.__nextGetStaticStore=()=>t,n._nextOriginalFetch=e,globalThis[to]=!0,Object.defineProperty(n,"name",{value:"fetch",writable:!1}),n}(n,e)}],96250),e.s(["normalizeAppPath",0,tp],69741);let tf=Symbol.for("next.server.manifests"),th=globalThis;e.s(["setManifestsSingleton",0,function({page:e,clientReferenceManifest:t,serverActionsManifest:r}){let n=th[tf],a={encryptionKey:r.encryptionKey,node:Object.assign(Object.create(null),r.node),edge:Object.assign(Object.create(null),r.edge)};if(n)n.clientReferenceManifestsPerRoute.set(tp(e),t),n.serverActionsManifest=a;else{let r,n=new Map([[tp(e),t]]),i=(r=new Map,new Proxy({},{get(e,t){let a=en.workAsyncStorage.getStore();switch(t){case"moduleLoading":case"entryCSSFiles":case"entryJSFiles":{if(!a)throw Object.defineProperty(new ef(`Cannot access "${t}" without a work store.`),"__NEXT_ERROR_CODE",{value:"E952",enumerable:!1,configurable:!0});let e=n.get(a.route);if(!e)throw Object.defineProperty(new ef(`The client reference manifest for route "${a.route}" does not exist.`),"__NEXT_ERROR_CODE",{value:"E951",enumerable:!1,configurable:!0});return e[t]}case"clientModules":case"rscModuleMapping":case"edgeRscModuleMapping":case"ssrModuleMapping":case"edgeSSRModuleMapping":{let e=r.get(t);!e&&(e=new Proxy({},{get(e,r){let a=en.workAsyncStorage.getStore();if(a){let e=n.get(a.route);if(null==e?void 0:e[t][r])return e[t][r]}else for(let e of n.values()){let n=e[t][r];if(void 0!==n)return n}}}),r.set(t,e));return e}default:throw Object.defineProperty(new ef(`This is a proxied client reference manifest. The property "${String(t)}" is not handled.`),"__NEXT_ERROR_CODE",{value:"E953",enumerable:!1,configurable:!0})}}}));th[tf]={clientReferenceManifestsPerRoute:n,proxiedClientReferenceManifest:i,serverActionsManifest:a,serverModuleMap:new Proxy({},{get:(e,t)=>{var r,n,a;let i,s=null==(n=function(){let e=th[tf];if(!e)throw Object.defineProperty(new ef("The manifests singleton was not initialized."),"__NEXT_ERROR_CODE",{value:"E950",enumerable:!1,configurable:!0});return e}().serverActionsManifest.node)||null==(r=n[t])?void 0:r.workers;if(!s)return;let o=en.workAsyncStorage.getStore();if(!(i=o?s[eX(a=o.page,"app")?a:"app"+a]:Object.values(s).at(0)))return;let{moduleId:l,async:u}=i;return{id:l,name:t,chunks:[],async:u}}})}}}],74677),Symbol("__next_preview_data");let tg=Symbol("__prerender_bypass");var tm=((_={})[_.SeeOther=303]="SeeOther",_[_.TemporaryRedirect=307]="TemporaryRedirect",_[_.PermanentRedirect=308]="PermanentRedirect",_);class ty{constructor(e,t,r){this.method=e,this.url=t,this.body=r}get cookies(){var t;return this._cookies?this._cookies:this._cookies=(t=this.headers,function(){let{cookie:r}=t;if(!r)return{};let{parse:n}=e.r(93118);return n(Array.isArray(r)?r.join("; "):r)})()}}class tv{constructor(e){this.destination=e}redirect(e,t){return this.setHeader("Location",e),this.statusCode=t,t===tm.PermanentRedirect&&this.setHeader("Refresh",`0;url=${e}`),this}}class t_ extends ty{static #e=w=ek;constructor(e){var t;super(e.method.toUpperCase(),e.url,e),this._req=e,this.headers=this._req.headers,this.fetchMetrics=null==(t=this._req)?void 0:t.fetchMetrics,this[w]=this._req[ek]||{},this.streaming=!1}get originalRequest(){return this._req[ek]=this[ek],this._req.url=this.url,this._req.cookies=this.cookies,this._req}set originalRequest(e){this._req=e}stream(){if(this.streaming)throw Object.defineProperty(Error("Invariant: NodeNextRequest.stream() can only be called once"),"__NEXT_ERROR_CODE",{value:"E467",enumerable:!1,configurable:!0});return this.streaming=!0,new ReadableStream({start:e=>{this._req.on("data",t=>{e.enqueue(new Uint8Array(t))}),this._req.on("end",()=>{e.close()}),this._req.on("error",t=>{e.error(t)})}})}}async function tb(e,t,r,n){{var a;t.statusCode=r.status,t.statusMessage=r.statusText;let i=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(a=r.headers)||a.forEach((e,r)=>{if("x-middleware-set-cookie"!==r.toLowerCase())if("set-cookie"===r.toLowerCase())for(let n of eH(e))t.appendHeader(r,n);else{let n=void 0!==t.getHeader(r);(i.includes(r.toLowerCase())||!n)&&t.appendHeader(r,e)}});let{originalResponse:s}=t;r.body&&"HEAD"!==e.method?await ta(r.body,s,n):s.end()}}e.s(["NodeNextRequest",0,t_,"NodeNextResponse",0,class extends tv{get originalResponse(){return tg in this&&(this._res[tg]=this[tg]),this._res}constructor(e){super(e),this._res=e,this.textBody=void 0}get sent(){return this._res.finished||this._res.headersSent}get statusCode(){return this._res.statusCode}set statusCode(e){this._res.statusCode=e}get statusMessage(){return this._res.statusMessage}set statusMessage(e){this._res.statusMessage=e}setHeader(e,t){return this._res.setHeader(e,t),this}removeHeader(e){return this._res.removeHeader(e),this}getHeaderValues(e){let t=this._res.getHeader(e);if(void 0!==t)return(Array.isArray(t)?t:[t]).map(e=>e.toString())}hasHeader(e){return this._res.hasHeader(e)}getHeader(e){let t=this.getHeaderValues(e);return Array.isArray(t)?t.join(","):void 0}getHeaders(){return this._res.getHeaders()}appendHeader(e,t){let r=this.getHeaderValues(e)??[];return r.includes(t)||this._res.setHeader(e,[...r,t]),this}body(e){return this.textBody=e,this}send(){this._res.end(this.textBody)}onClose(e){this.originalResponse.on("close",e)}}],16795),e.s(["getRevalidateReason",0,function(e){return e.isOnDemandRevalidate?"on-demand":e.isStaticGeneration?"stale":void 0}],47587),e.s(["sendResponse",0,tb],66012),e.s(["getCacheControlHeader",0,function({revalidate:e,expire:t}){let r="number"==typeof e&&void 0!==t&&e<t?`, stale-while-revalidate=${t-e}`:"";return 0===e?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof e?`s-maxage=${e}${r}`:`s-maxage=31536000${r}`}],74838);let tS={kind:"claude-code",displayName:"Claude Code",shortLabel:"Claude",accentColor:"var(--af-accent)",iconChar:"✦"},tw={kind:"codex",displayName:"Codex (OpenAI)",shortLabel:"Codex",accentColor:"rgb(16, 163, 127)",iconChar:"◆"},tx={kind:"gemini",displayName:"Gemini CLI",shortLabel:"Gemini",accentColor:"rgb(124, 92, 246)",iconChar:"✺"},tR=[tS,tw,tx];tR.map(e=>e.kind),e.s(["CLAUDE_CODE_METADATA",0,tS,"CODEX_METADATA",0,tw,"GEMINI_METADATA",0,tx,"agentMetadata",0,tR],39587)},20629,36521,e=>{"use strict";var t=e.i(2157),r=e.i(60526),n=e.i(50227);let a=[/<system_instruction\b[^>]*>[\s\S]*?<\/system_instruction>\s*/gi],i=["<command-name>","<local-command-stdout>","<local-command-caveat>","<task-notification>","Base directory for this skill:"];function s(e){if(!e)return e;let t=e;for(let e of a)t=t.replace(e,"");return t.trim()}function o(e){if(!e)return!1;let t=s(e);if(!t)return!0;for(let e of i)if(t.startsWith(e))return!0;return!1}e.s(["isFrameworkInjectedUserInput",0,o,"stripFrameworkBoilerplate",0,s],36521);let l={input:0,output:0,cacheRead:0,cacheWrite:0};function u(e,t=200){let r=e.replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim();return r.length>t?r.slice(0,t-1)+"…":r}let c=/^\s*<teammate-message\s+teammate_id="([^"]+)"[^>]*>([\s\S]*?)<\/teammate-message>/;function d(e){let t=e.match(c);if(!t)return;let r=t[1],n=t[2].trim(),a="message";if(n.startsWith("{"))try{let e=JSON.parse(n);"idle_notification"===e.type?a="idle-notification":"shutdown_request"===e.type?a="shutdown-request":"shutdown_approved"===e.type?a="shutdown-approved":"task_assignment"===e.type?a="task-assignment":"teammate_terminated"===e.type&&(a="teammate-terminated")}catch{}return{teammateId:r,body:n,kind:a}}function p(e){if(!e||"object"!=typeof e)return;let t=e=>"number"==typeof e?e:0;return{input:t(e.input_tokens),output:t(e.output_tokens),cacheRead:t(e.cache_read_input_tokens),cacheWrite:t(e.cache_creation_input_tokens)}}function f(e){let t,r,n,a,i,c,f,h,g,m=[];for(let t=0;t<e.length;t++){let r=function(e,t){if(!e||"object"!=typeof e)return null;let r=String(e.type??""),n=e.uuid,a=e.parentUuid??null,i=e.timestamp;if("assistant"===r){let s,o,l,c=e.message??{},d=c.content??[],f=p(c.usage),h=c.model,g=e.requestId,m=c.id,y=c.stop_reason,v=d[0],_="agent";return v?.type==="thinking"?(_="agent-thinking",s="[thinking] "+u(v.thinking,140)):v?.type==="tool_use"?(_="tool-call",o=v.name,l=v.id,s=`${v.name} `+u(JSON.stringify(v.input??{}),100)):s=v?.type==="text"?u(v.text,200):`<assistant:${v?.type??"empty"}>`,{index:t,uuid:n,parentUuid:a,timestamp:i,role:_,rawType:r,preview:s,blocks:d,usage:f,model:h,requestId:g,messageId:m,stopReason:y,toolName:o,toolUseId:l,raw:e}}if("user"===r){let o=(e.message??{}).content;if("string"==typeof o){let l=s(o),c=d(l);return{index:t,uuid:n,parentUuid:a,timestamp:i,role:"user",rawType:r,preview:u(l,200),blocks:l?[{type:"text",text:l}]:[],raw:e,teammateMessage:c}}if(Array.isArray(o)){let l=o[0];if(l?.type==="tool_result")return{index:t,uuid:n,parentUuid:a,timestamp:i,role:"tool-result",rawType:r,preview:u("string"==typeof l.content?l.content:JSON.stringify(l.content),200),blocks:o,toolUseId:l.tool_use_id,toolResult:e.toolUseResult,raw:e};let c=o.find(e=>e?.type==="text"),p=c?s(c.text):"",f=c?o.map(e=>e===c?{type:"text",text:p}:e):o,h=p?d(p):void 0;return{index:t,uuid:n,parentUuid:a,timestamp:i,role:"user",rawType:r,preview:p?u(p,200):u(JSON.stringify(o),200),blocks:f,raw:e,teammateMessage:h}}}if("attachment"===r){let s=e.attachment??{},o=String(s.type??"attachment"),l=`<attachment: ${o}>`;return"string"==typeof s.content&&s.content.length>0?l=`[${o}] `+u(s.content,140):Array.isArray(s.addedNames)&&(l=`[${o}] +${s.addedNames.length} names`),{index:t,uuid:n,parentUuid:a,timestamp:i,role:"system",rawType:r,preview:l,blocks:[{type:"text",text:JSON.stringify(s,null,2)}],attachmentType:o,raw:e}}return{index:t,uuid:n,parentUuid:a,timestamp:i,role:"meta",rawType:r||"unknown",preview:`${r}: ${u(JSON.stringify(e),140)}`,blocks:[{type:"text",text:JSON.stringify(e,null,2)}],raw:e}}(e[t],t);r&&m.push(r)}let y=m.map(e=>e.timestamp?Date.parse(e.timestamp):void 0).filter(e=>"number"==typeof e&&!Number.isNaN(e)),v=y.length?Math.min(...y):void 0,_=y.length?Math.max(...y):void 0,b=void 0!==v?new Date(v).toISOString():void 0,S=void 0!==_?new Date(_).toISOString():void 0;for(let e of m){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);Number.isNaN(t)||void 0!==v&&(e.tOffsetMs=Math.max(0,t-v))}let w=m.filter(e=>{let t;return e.timestamp&&("user"===(t=e.role)||"agent"===t||"agent-thinking"===t||"tool-call"===t||"tool-result"===t)}).map(e=>({e,ms:Date.parse(e.timestamp)})).filter(e=>!Number.isNaN(e.ms)).sort((e,t)=>e.ms-t.ms);for(let e=1;e<w.length;e++)w[e].e.gapMs=Math.max(0,w[e].ms-w[e-1].ms);let x=m.filter(e=>e.timestamp).map(e=>Date.parse(e.timestamp)).filter(e=>!Number.isNaN(e)).sort((e,t)=>e-t),R=[],T=0;if(x.length>0){let e=x[0],t=x[0];for(let r=1;r<x.length;r++){let n=x[r],a=n-t;a>18e4?(R.push({startMs:e,endMs:t}),e=n):a>0&&(T+=a),t=n}R.push({startMs:e,endMs:t})}let E=new Map,O=[];for(let e of m){if(!e.timestamp)continue;let t=Date.parse(e.timestamp);if(!Number.isNaN(t)){if("assistant"===e.rawType&&e.usage&&e.messageId){let r=E.get(e.messageId);r?(r.siblings.push(e),t<r.ms&&(r.rep=e,r.ms=t)):E.set(e.messageId,{rep:e,ms:t,siblings:[e]})}else if("system"===e.rawType){let r=e.raw;if(r?.subtype!=="compact_boundary")continue;let n=r.compactMetadata??{};O.push({ms:t,trigger:"manual"===n.trigger?"manual":"auto",preTokens:"number"==typeof n.preTokens?n.preTokens:0})}}}let N=[...E.values()].sort((e,t)=>e.ms-t.ms);O.sort((e,t)=>e.ms-t.ms);let P=0,M=0,C=(e,t)=>{for(let r of e.siblings)r.coldResume=t;P++,M+=t.writeTokens},A=new Set;for(let e of O){let t,r=N.find(t=>t.ms>e.ms&&(t.rep.usage?.cacheWrite??0)>=1e3);if(!r)continue;for(let r=N.length-1;r>=0;r--)if(N[r].ms<=e.ms){t=N[r].ms;break}let n=r.rep.usage,a=n.cacheWrite+n.cacheRead;C(r,{trigger:"compact",gapMs:void 0!==t?r.ms-t:0,writeTokens:n.cacheWrite,writeRatio:a>0?n.cacheWrite/a:0,compact:{trigger:e.trigger,preTokens:e.preTokens}}),A.add(r.rep.messageId)}for(let e=1;e<N.length;e++){let t=N[e-1],r=N[e];if(A.has(r.rep.messageId))continue;let n=r.rep.usage,a=n.cacheWrite+n.cacheRead,i=a>0?n.cacheWrite/a:0,s=r.ms-t.ms;s>3e5&&n.cacheWrite>=1e3&&i>=.3&&C(r,{trigger:"idle",gapMs:s,writeTokens:n.cacheWrite,writeRatio:i})}let I={...l},j=new Set,D="",L=!1,k=!1,$=0,B=0,U=0,H=0,V=new Set;for(let e of m){if("tool-call"===e.role){$++;let t=e.blocks.find(e=>e&&"tool_use"===e.type);if(t){let e=t.input??{};if("TeamCreate"===t.name&&(L=!0),"SendMessage"===t.name){let t="string"==typeof e.to?e.to:"";t&&"team-lead"!==t&&(k=!0)}let r="string"==typeof e.file_path?e.file_path:void 0;if("Edit"===t.name&&r){V.add(r);let t="string"==typeof e.old_string?e.old_string:"",n="string"==typeof e.new_string?e.new_string:"",a=t?t.split("\n").length:0,i=n?n.split("\n").length:0;U+=Math.max(0,i-a),H+=Math.max(0,a-i)}else if("Write"===t.name&&r){V.add(r);let t="string"==typeof e.content?e.content:"";U+=t?t.split("\n").length:0}}}if("user"===e.role){let t=o(function(e){let t=e?.content;if("string"==typeof t)return t;if(Array.isArray(t)){for(let e of t)if(e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text)return e.text}return""}(e.raw?.message)),r=void 0!==e.teammateMessage&&!c;t||r||(f||(f=e.teammateMessage?e.teammateMessage.body:e.preview),B++,g=e.preview)}"agent"===e.role&&(h=e.preview)}for(let s of e)if(s&&"object"==typeof s&&("string"!=typeof s.sessionId||D||(D=s.sessionId),"string"!=typeof s.cwd||r||(r=s.cwd),"string"!=typeof s.gitBranch||n||(n=s.gitBranch),"string"!=typeof s.entrypoint||a||(a=s.entrypoint),"string"!=typeof s.teamName||i||(i=s.teamName),"string"!=typeof s.agentName||c||(c=s.agentName),"assistant"===s.type)){let e=s.message;if(e){"string"!=typeof e.model||t||(t=e.model);let r="string"==typeof e.id?e.id:void 0,n="string"==typeof s.requestId?s.requestId:void 0,a=null!=r?`${r}:${n??""}`:void 0;if(a&&j.has(a))continue;a&&j.add(a);let i=p(e.usage);i&&(I.input+=i.input,I.output+=i.output,I.cacheRead+=i.cacheRead,I.cacheWrite+=i.cacheWrite)}}return{events:m,meta:{sessionId:D,firstTimestamp:b,lastTimestamp:S,durationMs:void 0!==v&&void 0!==_?_-v:void 0,eventCount:m.length,model:t,cwd:r,gitBranch:n,entrypoint:a,totalUsage:I,status:"idle",firstUserPreview:f,lastUserPreview:g,lastAgentPreview:h,toolCallCount:$,turnCount:B,airTimeMs:T,activeSegments:R,linesAdded:U,linesRemoved:H,filesEdited:V.size,coldResumeCount:P,cacheRebuildTokens:M,teamName:i,agentName:c,isTeamLead:void 0!==i&&void 0===c&&(L||k)}}}var h=e.i(39587);let g=n.default.join(r.default.homedir(),".claude","projects");function m(e){return e.startsWith("-")?"/"+e.slice(1).replace(/-/g,"/"):e}let y=n.default.join(r.default.homedir(),".cclens","runtime").replace(/[/.]/g,"-");async function v(e){let r=await t.promises.readFile(e,"utf8"),n=[];for(let e of r.split("\n")){let t=e.trim();if(t)try{n.push(JSON.parse(t))}catch{}}return n}function _(e){return e.replace(/\.jsonl$/i,"")}let b=new Map,S=new Map,w=new Map,x=null;async function R(e=g){let r;if(x&&x.root===e&&Date.now()-x.capturedAtMs<1e3)return x.files;try{r=await t.promises.readdir(e,{withFileTypes:!0})}catch{return[]}let a=r.filter(e=>e.isDirectory()&&e.name!==y).map(e=>e.name),i=(await Promise.all(a.map(async r=>{let a,i=n.default.join(e,r);try{a=await t.promises.readdir(i)}catch{return[]}let s=a.filter(e=>e.endsWith(".jsonl"));return(await Promise.all(s.map(async e=>{let a=n.default.join(i,e);try{let n=await t.promises.stat(a);return{projectDir:r,fileName:e,fullPath:a,mtimeMs:n.mtimeMs,sizeBytes:n.size}}catch{return null}}))).filter(e=>null!==e)}))).flat();return x={files:i,capturedAtMs:Date.now(),root:e},i}let T={input:0,output:0,cacheRead:0,cacheWrite:0};function E(e,t,r){for(let n of e){if(!n||"object"!=typeof n||"assistant"!==n.type)continue;let e=n.message;if(!e)continue;let a="string"==typeof e.id?e.id:void 0,i="string"==typeof n.requestId?n.requestId:void 0,s=null!=a&&null!=i?`${a}:${i}`:void 0;if(s&&t.has(s))continue;s&&t.add(s);let o=e.usage;if(o){let e=e=>"number"==typeof e?e:0;r.input+=e(o.input_tokens),r.output+=e(o.output_tokens),r.cacheRead+=e(o.cache_read_input_tokens),r.cacheWrite+=e(o.cache_creation_input_tokens)}}}async function O(e,r,a){let i,s={...T},o=new Set;E(e,o,s);let l=n.default.join(r,a,"subagents");try{i=await t.promises.readdir(l)}catch{return s}let u=i.filter(e=>e.endsWith(".jsonl"));return 0===u.length||await Promise.all(u.map(async e=>{try{let t=await v(n.default.join(l,e));E(t,o,s)}catch{}})),s}async function N(e){let t=b.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.meta;try{let t=await v(e.fullPath),{meta:r}=f(t),a=_(e.fileName),i=n.default.dirname(e.fullPath);r.totalUsage=await O(t,i,a);let s={...r,id:a,filePath:e.fullPath,projectDir:e.projectDir,projectName:r.cwd??m(e.projectDir)};return b.set(e.fullPath,{meta:s,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),s}catch{return null}}async function P(e){let t=S.get(e.fullPath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes)return t.detail;try{let t=await v(e.fullPath),{meta:r,events:n}=f(t),a={...r,id:_(e.fileName),filePath:e.fullPath,projectDir:e.projectDir,projectName:r.cwd??m(e.projectDir),events:n};S.set(e.fullPath,{detail:a,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});let i={...a};return delete i.events,b.set(e.fullPath,{meta:i,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),a}catch{return null}}async function M(e={}){let{root:t=g,limit:r=500,projectDir:n}=e,a=await R(t);n&&(a=a.filter(e=>e.projectDir===n)),a.sort((e,t)=>t.mtimeMs-e.mtimeMs);let i=a.slice(0,r);return(await Promise.all(i.map(e=>N(e)))).filter(e=>null!==e)}async function C(e,t={}){let{root:r=g}=t,a=(await R(r)).find(t=>_(t.fileName)===e);if(!a)return null;let i=await P(a);if(!i)return i;let s=i.firstTimestamp?Date.parse(i.firstTimestamp):void 0,o=n.default.join(n.default.dirname(a.fullPath),_(a.fileName),"subagents"),l=await A(o,s,i.events);return{...i,subagents:l}}async function A(e,r,a){let i;try{i=await t.promises.readdir(e)}catch{return[]}let s=new Map,o=[];for(let e of a)if("tool-call"===e.role&&"Agent"===e.toolName)for(let t of e.blocks){if(t?.type!=="tool_use"||"Agent"!==t.name)continue;let r=t.input??{},n="string"==typeof r.description?r.description:void 0,a=e.timestamp?Date.parse(e.timestamp):void 0,i={toolUseId:t.id,parentUuid:e.uuid??"",runInBackground:!0===r.run_in_background,prompt:"string"==typeof r.prompt?r.prompt:void 0,tsMs:a};n&&s.set(n,i),void 0!==a&&o.push(i)}o.sort((e,t)=>(e.tsMs??0)-(t.tsMs??0));let l=i.filter(e=>e.startsWith("agent-")&&e.endsWith(".jsonl"));return(await Promise.all(l.map(async a=>{let i,l=a.replace(/^agent-/,"").replace(/\.jsonl$/,""),u=n.default.join(e,a),c=n.default.join(e,`agent-${l}.meta.json`),d={};try{let e=await t.promises.readFile(c,"utf8");d=JSON.parse(e)}catch{}try{i=await v(u)}catch{return null}let p=function(e){let t,r,n,a,i,s={...T},o=new Set,l=0,u=0,c=0,d=new Map;for(let p of e){if(!p||"object"!=typeof p)continue;l++;let e="string"==typeof p.timestamp?Date.parse(p.timestamp):NaN;if(!Number.isNaN(e)&&((void 0===t||e<t)&&(t=e),(void 0===r||e>r)&&(r=e)),void 0===i&&"user"===p.type&&(null===p.parentUuid||void 0===p.parentUuid)){let e=p.message,t=e?.content;if("string"==typeof t)i=t;else if(Array.isArray(t)){let e=t.find(e=>e&&"object"==typeof e&&"text"===e.type);e?.text&&(i=e.text)}}if("assistant"===p.type){let e=p.message;if(!e)continue;a||"string"!=typeof e.model||(a=e.model);let t="string"==typeof e.id?e.id:void 0,r="string"==typeof p.requestId?p.requestId:void 0,i=null!=t&&null!=r?`${t}:${r}`:void 0,l=!i||!o.has(i);if(i&&l&&o.add(i),l){u++;let t=e.usage;if(t){let e=e=>"number"==typeof e?e:0;s.input+=e(t.input_tokens),s.output+=e(t.output_tokens),s.cacheRead+=e(t.cache_read_input_tokens),s.cacheWrite+=e(t.cache_creation_input_tokens)}}let f=e.content;if(Array.isArray(f))for(let e of f)e&&"object"==typeof e&&("text"===e.type&&"string"==typeof e.text?n=e.text:"tool_use"===e.type&&"string"==typeof e.name&&(c++,d.set(e.name,(d.get(e.name)??0)+1)))}}let p=Array.from(d.entries()).map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count);return{startMs:t,endMs:r,totalUsage:s,eventCount:l,finalPreview:void 0!==n?n.replace(/\s+/g," ").trim().slice(0,240):void 0,finalText:n,model:a,toolCalls:p,toolCallCount:c,assistantMessageCount:u,initialPrompt:i}}(i),f=d.description&&d.description.trim().length>0?d.description:void 0,h=f?s.get(f):function(e){let t;if(void 0===e)return;let r=1/0;for(let n of o){if(void 0===n.tsMs)continue;let a=Math.abs(e-n.tsMs);a<r&&a<=2e3&&(t=n,r=a)}return t}(p.startMs),g=f??(p.initialPrompt?p.initialPrompt.replace(/\s+/g," ").trim().slice(0,80):"(no description)"),m=h?.prompt??p.initialPrompt,y=void 0!==r&&void 0!==p.startMs?Math.max(0,p.startMs-r):void 0,_=void 0!==r&&void 0!==p.endMs?Math.max(0,p.endMs-r):void 0,b=void 0!==p.startMs&&void 0!==p.endMs?p.endMs-p.startMs:void 0;return{agentId:l,agentType:d.agentType??"unknown",description:g,startMs:p.startMs,endMs:p.endMs,durationMs:b,startTOffsetMs:y,endTOffsetMs:_,eventCount:p.eventCount,totalUsage:p.totalUsage,parentUuid:h?.parentUuid,parentToolUseId:h?.toolUseId,runInBackground:h?.runInBackground,prompt:m,finalPreview:p.finalPreview,finalText:p.finalText,model:p.model,toolCalls:p.toolCalls,toolCallCount:p.toolCallCount,assistantMessageCount:p.assistantMessageCount}}))).filter(e=>null!==e).sort((e,t)=>(e.startMs??0)-(t.startMs??0))}let I={...h.CLAUDE_CODE_METADATA,defaultRoot:g,async listSessions(e){let t=await M(e);for(let e of t)e.agent||(e.agent="claude-code");return t},async getSession(e,t){let r=await C(e,t);return r&&!r.agent&&(r.agent="claude-code"),r}};e.s(["DEFAULT_ROOT",0,g,"claudeCodeSource",0,I,"getSession",0,C,"invalidateClaudeCodeFile",0,function(e){b.delete(e),S.delete(e),w.delete(e),x=null},"listSessions",0,M],20629)},79357,e=>{"use strict";let t=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],r=/\/conductor\/workspaces\/[^/]+\/([^/]+)(?:\/|$)/;e.s(["canonicalProjectName",0,function(e){let n=e.replace(/\/{2,}/g,"/"),a=function(e){for(let r of t){let t=e.lastIndexOf(r);if(t>=0)return{idx:t,marker:r}}return null}(n);if(a)return n.slice(0,a.idx);let i=function(e){let t=r.exec(e);if(!t)return null;let n=t[1],a=+!!t[0].endsWith("/");return{canonicalEndIdx:t.index+t[0].length-n.length-1-a,workspaceName:n}}(n);return i?n.slice(0,i.canonicalEndIdx):n},"computeBurstsFromSessions",0,function(e,t={}){let r=[];for(let t of e)t.activeSegments&&0!==t.activeSegments.length&&r.push({id:t.id,projectDir:t.projectDir,segments:t.activeSegments});return function(e,t){let r=t.minDurationMs??6e4,n=t.mergeGapMs??6e5,a=t.minActive??2,i=[];for(let t of e)for(let e of t.segments)e.endMs<=e.startMs||(i.push({ms:e.startMs,delta:1,sessionId:t.id}),i.push({ms:e.endMs,delta:-1,sessionId:t.id}));i.sort((e,t)=>e.ms-t.ms||t.delta-e.delta);let s=new Map,o=[],l=null;for(let e of i){if(1===e.delta)s.set(e.sessionId,(s.get(e.sessionId)??0)+1);else{let t=(s.get(e.sessionId)??0)-1;t<=0?s.delete(e.sessionId):s.set(e.sessionId,t)}let t=s.size;if(t>=a)if(l)for(let r of(l.endMs=e.ms,t>l.peak&&(l.peak=t),s.keys()))l.sessionIds.add(r);else l={startMs:e.ms,endMs:e.ms,peak:t,sessionIds:new Set(s.keys())};else l&&(l.endMs=e.ms,o.push(l),l=null)}l&&o.push(l);let u=o.filter(e=>e.endMs-e.startMs>=r),c=[];for(let e of u){let t=c[c.length-1];if(t&&e.startMs-t.endMs<=n)for(let r of(t.endMs=e.endMs,e.peak>t.peak&&(t.peak=e.peak),e.sessionIds))t.sessionIds.add(r);else c.push({startMs:e.startMs,endMs:e.endMs,peak:e.peak,sessionIds:new Set(e.sessionIds)})}let d=new Map;for(let t of e)d.set(t.id,t.projectDir);return c.map(e=>{let t=Array.from(new Set(Array.from(e.sessionIds).map(e=>d.get(e)).filter(e=>!!e)));return{startMs:e.startMs,endMs:e.endMs,peak:e.peak,sessionIds:Array.from(e.sessionIds),projectDirs:t,crossProject:t.length>1}})}(r,t)},"toLocalDay",0,function(e){let t=new Date(e),r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0");return`${r}-${n}-${a}`}])},43427,e=>{"use strict";var t=e.i(2157),r=e.i(60526),n=e.i(50227),a=e.i(39587),i=e.i(20629),s=e.i(79357),o=e.i(36521);let l=n.default.join(r.default.homedir(),".codex","sessions"),u=/^rollout-(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2})-([0-9a-f-]+)\.jsonl$/;async function c(e){return t.promises.readdir(e).catch(()=>[])}async function d(e){let r=[];for(let a of(await c(e))){if(!/^\d{4}$/.test(a))continue;let i=n.default.join(e,a);for(let e of(await c(i))){if(!/^\d{2}$/.test(e))continue;let a=n.default.join(i,e);for(let e of(await c(a))){if(!/^\d{2}$/.test(e))continue;let i=n.default.join(a,e);for(let e of(await c(i))){let a=u.exec(e);if(!a)continue;let s=n.default.join(i,e),o=await t.promises.stat(s).catch(()=>null);o&&r.push({filePath:s,sessionId:a[2],mtimeMs:o.mtimeMs,sizeBytes:o.size})}}}}return r}async function p(e){let r=await t.promises.readFile(e,"utf8"),n=[];for(let e of r.split("\n")){let t=e.trim();if(t)try{n.push(JSON.parse(t))}catch{}}return n}function f(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function h(e,t){let r,n,a,i,l,u,c,d=[],p={input:0,output:0,cacheRead:0,cacheWrite:0},h=0,m=0,y=[],v=0;for(let e of t){if("object"!=typeof e||null===e)continue;let t="string"==typeof e.timestamp?e.timestamp:void 0;if(t){r||(r=t),n=t;let e=Date.parse(t);Number.isFinite(e)&&y.push(e)}let s="string"==typeof e.type?e.type:"",b=e.payload??{},S="string"==typeof b.type?b.type:"";if("session_meta"===s){"string"==typeof b.cwd&&(a=b.cwd);continue}if("turn_context"===s){"string"==typeof b.cwd&&(a=b.cwd),"string"==typeof b.model&&(i=b.model);continue}if("event_msg"===s&&"token_count"===S){let e=b.info??null,t=e?.total_token_usage??null;t&&(p.input=g(t.input_tokens)??p.input,p.output=g(t.output_tokens)??p.output,p.cacheRead=g(t.cached_input_tokens)??p.cacheRead);continue}if("event_msg"===s&&"user_message"===S){let r="string"==typeof b.message?b.message:"",n=f(r),a=(0,o.isFrameworkInjectedUserInput)(r);r&&!a&&(l||(l=n),u=n,m+=1),d.push({index:v++,timestamp:t,role:"user",rawType:"event_msg/user_message",preview:n,blocks:r?[{type:"text",text:r}]:[],raw:e});continue}if("event_msg"===s&&"agent_message"===S){let r="string"==typeof b.message?b.message:"",n=f(r);r&&(c=n),d.push({index:v++,timestamp:t,role:"agent",rawType:"event_msg/agent_message",preview:n,blocks:r?[{type:"text",text:r}]:[],model:i,raw:e});continue}if("response_item"===s&&"reasoning"===S){let r=(b.summary??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim();d.push({index:v++,timestamp:t,role:"agent-thinking",rawType:"response_item/reasoning",preview:f(r),blocks:r?[{type:"thinking",thinking:r}]:[],model:i,raw:e});continue}if("response_item"===s&&"message"===S&&"assistant"===b.role){let r=(b.content??[]).map(e=>"string"==typeof e.text?e.text:"").join("\n").trim(),n=f(r);r&&(c=n),d.push({index:v++,timestamp:t,role:"agent",rawType:"response_item/message",preview:n,blocks:r?[{type:"text",text:r}]:[],model:i,raw:e});continue}if("response_item"===s&&"function_call"===S){var _;let r="string"==typeof b.name?b.name:"(unknown)",n="string"==typeof b.call_id?b.call_id:void 0,a="string"==typeof b.arguments?b.arguments:"",s=function(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}(a);h+=1,d.push({index:v++,timestamp:t,role:"tool-call",rawType:"response_item/function_call",preview:`${r}(${(_=a).length<=80?_:_.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:n??`codex-${v}`,name:r,input:s}],toolName:r,toolUseId:n,model:i,raw:e});continue}if("response_item"===s&&"function_call_output"===S){let r="string"==typeof b.call_id?b.call_id:void 0,n="string"==typeof b.output?b.output:"",a=/process exited with code [1-9]/i.test(n);d.push({index:v++,timestamp:t,role:"tool-result",rawType:"response_item/function_call_output",preview:f(n),blocks:[{type:"tool_result",tool_use_id:r??"",content:n,is_error:a}],toolUseId:r,toolResult:n,raw:e});continue}d.push({index:v++,timestamp:t,role:"meta",rawType:S?`${s}/${S}`:s,preview:"",blocks:[],raw:e})}if(p.input>0||p.output>0){let t=-1;for(let e=d.length-1;e>=0;e--){let r=d[e].role;if("agent"===r||"agent-thinking"===r||"tool-call"===r){t=e;break}}if(t>=0){let r=d[t];r.messageId=`codex-${e.sessionId}-total`,r.usage={input:p.input,output:p.output,cacheRead:p.cacheRead,cacheWrite:0}}}let b=r?Date.parse(r):void 0;if(void 0!==b&&Number.isFinite(b)){let e;for(let t of d){if(!t.timestamp)continue;let r=Date.parse(t.timestamp);Number.isFinite(r)&&(t.tOffsetMs=Math.max(0,r-b),void 0!==e&&(t.gapMs=Math.max(0,r-e)),e=r)}}let S=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),r=[],n=t[0],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(r.push({startMs:n,endMs:a}),n=t[e]),a=t[e];return r.push({startMs:n,endMs:a}),r}(y),w=S.reduce((e,t)=>e+(t.endMs-t.startMs),0),x=r&&n?Date.parse(n)-Date.parse(r):void 0,R=a?(0,s.canonicalProjectName)(a):"(unknown)",T=a?a.replace(/^\//,"-").replace(/\//g,"-"):"(unknown)";return{meta:{agent:"codex",id:e.sessionId,filePath:e.filePath,projectName:R,projectDir:T,sessionId:e.sessionId,firstTimestamp:r,lastTimestamp:n,durationMs:x&&Number.isFinite(x)?x:void 0,eventCount:d.length,model:i,cwd:a,totalUsage:p,status:"idle",firstUserPreview:l,lastUserPreview:u,lastAgentPreview:c,toolCallCount:h,turnCount:m,airTimeMs:w,activeSegments:S},events:d}}function g(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}let m=new Map,y=new Map;async function v(e={}){let t=e.root??l,r=await d(t),n=[];for(let e of r){let t=m.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){n.push(t.meta);continue}try{let t=await p(e.filePath),{meta:r}=h(e,t);m.set(e.filePath,{meta:r,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),n.push(r)}catch{}}return(n.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?n.slice(0,e.limit):n}async function _(e,t={}){let r=t.root??l,n=(await d(r)).find(t=>t.sessionId===e);if(!n)return null;let a=y.get(n.filePath);if(a&&a.mtimeMs===n.mtimeMs&&a.sizeBytes===n.sizeBytes)return a.detail;let i=await p(n.filePath),{meta:s,events:o}=h(n,i),u={...s,events:o};return y.set(n.filePath,{detail:u,mtimeMs:n.mtimeMs,sizeBytes:n.sizeBytes}),u}async function b(e={}){let t=e.root??l,r=await d(t);if(0===r.length)return null;for(let e of(r.sort((e,t)=>t.mtimeMs-e.mtimeMs),r)){let t=await p(e.filePath);for(let r=t.length-1;r>=0;r--){let n=t[r];if("object"!=typeof n||null===n||"event_msg"!==n.type)continue;let a=n.payload??{};if("token_count"!==a.type)continue;let i=a.rate_limits??null;if(!i)continue;let s=i.primary??null,o=i.secondary??null,l=g(s?.used_percent),u=g(o?.used_percent),c=g(s?.resets_at),d=g(o?.resets_at),p="string"==typeof i.plan_type?i.plan_type:null;return{five_hour:{utilization:l??null,resets_at:void 0!==c?new Date(1e3*c).toISOString():null},seven_day:{utilization:u??null,resets_at:void 0!==d?new Date(1e3*d).toISOString():null},plan_type:p,source_path:e.filePath}}}return null}let S=n.default.join(r.default.homedir(),".gemini","tmp"),w=n.default.join(r.default.homedir(),".gemini","projects.json"),x=/^session-.+\.(jsonl|json)$/;async function R(e){return t.promises.readdir(e).catch(()=>[])}async function T(e){let r=[];for(let a of(await R(e))){let i=n.default.join(e,a,"chats");for(let e of(await R(i))){if(!x.test(e))continue;let s=n.default.join(i,e),o=await t.promises.stat(s).catch(()=>null);if(!o||!o.isFile())continue;let l=e.replace(/\.(jsonl|json)$/,"").split("-").pop()??e;r.push({filePath:s,slug:a,filenameId:l,format:e.endsWith(".jsonl")?"jsonl":"legacy-json",mtimeMs:o.mtimeMs,sizeBytes:o.size})}}return r}let E=null;async function O(){let e,r=await t.promises.stat(w).catch(()=>null);if(!r)return new Map;if(E&&E.mtimeMs===r.mtimeMs)return E.slugToCwd;let n=await t.promises.readFile(w,"utf8").catch(()=>"");try{e=JSON.parse(n)}catch{e={}}let a=new Map;for(let[t,r]of Object.entries(e.projects??{}))"string"==typeof r&&a.set(r,t);return E={mtimeMs:r.mtimeMs,slugToCwd:a},a}function N(e){return!!e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.type}async function P(e){let r=await t.promises.readFile(e.filePath,"utf8");if("legacy-json"===e.format){let e;try{e=JSON.parse(r)}catch{return{meta:{},messages:[]}}return{meta:{sessionId:"string"==typeof e.sessionId?e.sessionId:void 0,projectHash:"string"==typeof e.projectHash?e.projectHash:void 0,startTime:"string"==typeof e.startTime?e.startTime:void 0,lastUpdated:"string"==typeof e.lastUpdated?e.lastUpdated:void 0,summary:"string"==typeof e.summary?e.summary:void 0},messages:(Array.isArray(e.messages)?e.messages:[]).filter(N)}}let n={},a=new Map,i=[];for(let e of r.split("\n")){let t,r=e.trim();if(r){var s,o;try{t=JSON.parse(r)}catch{continue}if((s=t)&&"object"==typeof s&&"$rewindTo"in s){let e=t.$rewindTo,r=i.indexOf(e);if(r>=0){for(let e of i.slice(r))a.delete(e);i.length=r}continue}if((o=t)&&"object"==typeof o&&"$set"in o){Object.assign(n,t.$set);continue}if(N(t)){a.has(t.id)||i.push(t.id),a.set(t.id,t);continue}if("object"==typeof t&&null!==t){let e=t;"string"!=typeof e.sessionId||n.sessionId||(n.sessionId=e.sessionId,"string"==typeof e.projectHash&&(n.projectHash=e.projectHash),"string"==typeof e.startTime&&(n.startTime=e.startTime),"string"==typeof e.lastUpdated&&(n.lastUpdated=e.lastUpdated),"string"==typeof e.summary&&(n.summary=e.summary))}}}let l=[];for(let e of i){let t=a.get(e);t&&l.push(t)}return{meta:n,messages:l}}function M(e){return e.replace(/\s+/g," ").trim().slice(0,200)}function C(e){if(!e)return"";if("string"==typeof e)return e;let t=Array.isArray(e)?e:[e],r=[];for(let e of t){if(!e||"object"!=typeof e)continue;if("string"==typeof e.text){r.push(e.text);continue}let t=e.functionResponse;if(t){let e=t.response;"string"==typeof e?r.push(e):e&&"object"==typeof e&&("string"==typeof e.output?r.push(e.output):"string"==typeof e.error?r.push(`error: ${e.error}`):r.push(JSON.stringify(e)))}}return r.join("\n")}async function A(e){let t,r,n,a,i,l,{meta:u,messages:c}=await P(e),d=(await O()).get(e.slug),p=[],f={input:0,output:0,cacheRead:0,cacheWrite:0},h=0,g=0,m=[],y=0;function v(e){if(p.push(e),e.timestamp&&"meta"!==e.role){t||(t=e.timestamp),r=e.timestamp;let n=Date.parse(e.timestamp);Number.isFinite(n)&&m.push(n)}}for(let e of c){let t=e.timestamp;if("user"===e.type){let r=C(e.displayContent??e.content),n=M(r),s=(0,o.isFrameworkInjectedUserInput)(r);r&&!s&&(a||(a=n),i=n,g+=1),v({index:y++,timestamp:t,role:"user",rawType:"gemini/user",preview:n,blocks:r?[{type:"text",text:r}]:[],messageId:e.id,raw:e});continue}if("gemini"===e.type){let r;"string"==typeof e.model&&(n=e.model);let a=C(e.content),i=M(a);if(a&&(l=i),e.tokens){let t=e.tokens,n={input:t.input??0,output:t.output??0,cacheRead:t.cached??0,cacheWrite:0};r=n,f.input+=n.input,f.output+=n.output,f.cacheRead+=n.cacheRead}for(let r of e.thoughts??[]){let e=[r.subject,r.description].filter(Boolean).join(": ");e&&v({index:y++,timestamp:r.timestamp??t,role:"agent-thinking",rawType:"gemini/thought",preview:M(e),blocks:[{type:"thinking",thinking:e}],model:n,raw:r})}for(let s of(a?v({index:y++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:i,blocks:[{type:"text",text:a}],messageId:e.id,model:n,usage:r,raw:e}):r&&v({index:y++,timestamp:t,role:"agent",rawType:"gemini/agent",preview:"",blocks:[],messageId:e.id,model:n,usage:r,raw:e}),e.toolCalls??[])){h+=1;let e=s.args?JSON.stringify(s.args):"";v({index:y++,timestamp:s.timestamp??t,role:"tool-call",rawType:"gemini/tool_call",preview:`${s.name}(${e.length<=80?e:e.slice(0,79)+"…"})`,blocks:[{type:"tool_use",id:s.id,name:s.name,input:s.args??{}}],toolName:s.name,toolUseId:s.id,model:n,raw:s});let r=(s.status??"").toLowerCase();if("success"===r||"error"===r||"cancelled"===r){let e=C(s.result);v({index:y++,timestamp:s.timestamp??t,role:"tool-result",rawType:"gemini/tool_result",preview:M(e),blocks:[{type:"tool_result",tool_use_id:s.id,content:e,is_error:"error"===r||"cancelled"===r}],toolUseId:s.id,toolResult:e,raw:s})}}continue}if("info"===e.type||"warning"===e.type||"error"===e.type){let r=C(e.content);v({index:y++,timestamp:t,role:"meta",rawType:`gemini/${e.type}`,preview:M(r),blocks:r?[{type:"text",text:r}]:[],raw:e});continue}}let _=t?Date.parse(t):void 0;if(void 0!==_&&Number.isFinite(_)){let e;for(let t of p){if(!t.timestamp)continue;let r=Date.parse(t.timestamp);Number.isFinite(r)&&(t.tOffsetMs=Math.max(0,r-_),void 0!==e&&(t.gapMs=Math.max(0,r-e)),e=r)}}let b=function(e){if(0===e.length)return[];let t=[...e].sort((e,t)=>e-t),r=[],n=t[0],a=t[0];for(let e=1;e<t.length;e++)t[e]-a>18e4&&(r.push({startMs:n,endMs:a}),n=t[e]),a=t[e];return r.push({startMs:n,endMs:a}),r}(m),S=b.reduce((e,t)=>e+(t.endMs-t.startMs),0),w=t&&r?Date.parse(r)-Date.parse(t):void 0,x=u.sessionId??e.filenameId,R=d?(0,s.canonicalProjectName)(d):e.slug,T=d?d.replace(/^\//,"-").replace(/\//g,"-"):e.slug;return{meta:{agent:"gemini",id:x,filePath:e.filePath,projectName:R,projectDir:T,sessionId:x,firstTimestamp:t,lastTimestamp:r,durationMs:w&&Number.isFinite(w)?w:void 0,eventCount:p.length,model:n,cwd:d,totalUsage:f,status:"idle",firstUserPreview:a,lastUserPreview:i,lastAgentPreview:l,toolCallCount:h,turnCount:g,airTimeMs:S,activeSegments:b},events:p}}let I=new Map,j=new Map;async function D(e={}){let t=e.root??S,r=await T(t),n=[];for(let e of r){let t=I.get(e.filePath);if(t&&t.mtimeMs===e.mtimeMs&&t.sizeBytes===e.sizeBytes){n.push(t.meta);continue}try{let{meta:t}=await A(e);I.set(e.filePath,{meta:t,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes}),n.push(t)}catch{}}return(n.sort((e,t)=>(t.firstTimestamp??"").localeCompare(e.firstTimestamp??"")),void 0!==e.limit)?n.slice(0,e.limit):n}async function L(e,t={}){let r,n=t.root??S,a=await T(n);for(let t of a)if(t.filenameId===e||e.startsWith(t.filenameId)){r=t;break}if(!r)for(let t of a){let{meta:n}=await A(t).catch(()=>({meta:{id:""}}));if(n.id===e){r=t;break}}if(!r)return null;let i=j.get(r.filePath);if(i&&i.mtimeMs===r.mtimeMs&&i.sizeBytes===r.sizeBytes)return i.detail;let{meta:s,events:o}=await A(r),l={...s,events:o};return j.set(r.filePath,{detail:l,mtimeMs:r.mtimeMs,sizeBytes:r.sizeBytes}),l}function k(){return process.env.CCLENS_HOME||n.default.join(r.default.homedir(),".cclens")}let $={...a.CODEX_METADATA,defaultRoot:l,listSessions:async e=>v(e),getSession:async e=>_(e),async usagePoller(){let e=await b();return e?{captured_at:new Date().toISOString(),agent:"codex",five_hour:e.five_hour,seven_day:e.seven_day}:null}},B={...a.GEMINI_METADATA,defaultRoot:S,listSessions:async e=>D(e),getSession:async e=>L(e)},U=[i.claudeCodeSource,$,B];async function H(e){for(let t of U){let r=await t.getSession(e);if(r)return r}return null}e.s(["cclensHome",0,k,"cclensPath",0,function(...e){return n.default.join(k(),...e)},"getAnySession",0,H,"invalidateFile",0,function(e){(0,i.invalidateClaudeCodeFile)(e)}],43427)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0vm_41a._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},2591,a=>{"use strict";var b=a.i(72131);a.s(["usePersistentBoolean",0,function(a,c){let[d,e]=(0,b.useState)(c),[f,g]=(0,b.useState)(!1);return(0,b.useEffect)(()=>{try{let b=window.localStorage.getItem(a);"1"===b?e(!0):"0"===b&&e(!1)}catch{}g(!0)},[a]),(0,b.useEffect)(()=>{let b=b=>{let c=b.detail;c?.key===a&&"boolean"==typeof c.value&&e(c.value)},c=b=>{b.key===a&&("1"===b.newValue?e(!0):"0"===b.newValue&&e(!1))};return window.addEventListener("cclens:persistent-boolean",b),window.addEventListener("storage",c),()=>{window.removeEventListener("cclens:persistent-boolean",b),window.removeEventListener("storage",c)}},[a]),[d,(0,b.useCallback)(b=>{e(b);try{window.localStorage.setItem(a,b?"1":"0")}catch{}window.dispatchEvent(new CustomEvent("cclens:persistent-boolean",{detail:{key:a,value:b}}))},[a]),f]}])},99309,a=>{"use strict";var b=a.i(87924);a.i(99417);var c=a.i(69176);a.s(["AgentBadge",0,function({agent:a}){if(!a||"claude-code"===a)return null;let d=(0,c.getAgentMetadata)(a);return d?(0,b.jsx)("span",{style:{display:"inline-flex",alignItems:"center",borderRadius:4,padding:"2px 6px",fontSize:10,letterSpacing:"0.04em",textTransform:"uppercase",whiteSpace:"nowrap",fontWeight:600,color:d.accentColor,background:`color-mix(in srgb, ${d.accentColor} 12%, transparent)`,border:`1px solid color-mix(in srgb, ${d.accentColor} 30%, transparent)`},title:`Source: ${d.displayName}`,children:d.shortLabel}):null}])},33441,a=>{"use strict";let b=(0,a.i(70106).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",0,b],33441)},55555,a=>{"use strict";function b(a){return a<-15?{tone:"danger",label:"may exhaust early"}:a>15?{tone:"warning",label:"below pace"}:{tone:"success",label:"on pace"}}a.s(["paceLabel",0,b,"paceToneForCycle",0,function(a,c,d,e=Date.now()){return b(100*Math.max(0,Math.min(1,(e-(c-d))/d))-a).tone},"toneVar",0,function(a){switch(a){case"success":return"var(--af-success)";case"warning":return"#b58400";case"danger":return"var(--af-danger)"}}])},87532,a=>{"use strict";let b=(0,a.i(70106).default)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);a.s(["Search",0,b],87532)},76285,a=>{"use strict";var b=a.i(87924),c=a.i(38246);let d={display:"inline-flex",alignItems:"center",borderRadius:4,padding:"2px 6px",fontSize:10,letterSpacing:"0.04em",textTransform:"uppercase",whiteSpace:"nowrap"};a.s(["TeamBadge",0,function({session:a,linkable:e=!0}){if(!a.teamName)return null;let f=!0===a.isTeamLead,g=void 0!==a.agentName;return f||g?f&&e?(0,b.jsx)(c.default,{href:`/sessions/${a.id}`,style:{...d,fontWeight:600,background:"var(--af-warning-subtle)",color:"var(--af-warning)",border:"1px solid var(--af-warning-subtle)",textDecoration:"none"},title:`Team lead — ${a.teamName}`,children:"Team Lead"}):f?(0,b.jsx)("span",{style:{...d,fontWeight:600,background:"var(--af-warning-subtle)",color:"var(--af-warning)",border:"1px solid var(--af-warning-subtle)"},title:`Team lead — ${a.teamName}`,children:"Team Lead"}):(0,b.jsx)("span",{style:{...d,fontWeight:500,background:"var(--af-surface-hover)",color:"var(--af-text-tertiary)",border:"1px solid var(--af-border-subtle)"},title:`Team member — ${a.teamName} \xb7 ${a.agentName}`,children:"Team Member"}):null}])},99417,69176,a=>{"use strict";let b=[{kind:"claude-code",displayName:"Claude Code",shortLabel:"Claude",accentColor:"var(--af-accent)",iconChar:"✦"},{kind:"codex",displayName:"Codex (OpenAI)",shortLabel:"Codex",accentColor:"rgb(16, 163, 127)",iconChar:"◆"},{kind:"gemini",displayName:"Gemini CLI",shortLabel:"Gemini",accentColor:"rgb(124, 92, 246)",iconChar:"✺"}],c=new Set(b.map(a=>a.kind));a.s(["getAgentMetadata",0,function(a){return b.find(b=>b.kind===a)},"isAgentKind",0,function(a){return"string"==typeof a&&c.has(a)}],69176),a.s([],99417)},44220,2405,a=>{"use strict";var b=a.i(87924),c=a.i(38246);a.i(99417);var d=a.i(69176);function e({agent:a,size:c=11,title:f}){if(!a)return null;let g=(0,d.getAgentMetadata)(a);return g?(0,b.jsx)("span",{"aria-hidden":!0,title:f??g.displayName,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:c+2,height:c+2,fontSize:c,lineHeight:1,color:g.accentColor},children:g.iconChar}):null}a.s(["AgentIcon",0,e],2405);let f={shipped:{bg:"rgba(72, 187, 120, 0.12)",fg:"#48bb78",label:"Shipped",icon:"🚀"},partial:{bg:"rgba(66, 153, 225, 0.12)",fg:"#4299e1",label:"Partial",icon:"🔨"},blocked:{bg:"rgba(245, 101, 101, 0.12)",fg:"#f56565",label:"Blocked",icon:"🚧"},exploratory:{bg:"rgba(160, 174, 192, 0.12)",fg:"#a0aec0",label:"Exploratory",icon:"🧭"},trivial:{bg:"rgba(203, 213, 224, 0.12)",fg:"#a0aec0",label:"Warmup",icon:"💤"},idle:{bg:"rgba(203, 213, 224, 0.12)",fg:"#a0aec0",label:"Idle",icon:"—"}},g={sm:{fontSize:9,padding:"1px 6px",iconGap:3,borderRadius:99},md:{fontSize:10,padding:"2px 8px",iconGap:4,borderRadius:99},lg:{fontSize:11,padding:"3px 10px",iconGap:5,borderRadius:99}},h={shipped:6,partial:5,blocked:4,exploratory:3,trivial:2,idle:1};a.s(["OUTCOME_STYLES",0,f,"OutcomePill",0,function(a){let d=g[a.size??"md"],h=d.fontSize+1;if("pending"in a&&a.pending){let f={display:"inline-flex",alignItems:"center",gap:d.iconGap,padding:d.padding,borderRadius:d.borderRadius,fontSize:d.fontSize,fontWeight:600,background:"rgba(160, 174, 192, 0.08)",color:"var(--af-text-tertiary)",border:"1px dashed var(--af-border-subtle)",textDecoration:"none",whiteSpace:"nowrap"};return(0,b.jsxs)(c.default,{href:`/digest/${a.localDay}`,style:f,title:`Generate ${a.localDay} digest →`,children:[a.agent&&(0,b.jsx)(e,{agent:a.agent,size:h}),(0,b.jsx)("span",{"aria-hidden":!0,style:{lineHeight:1},children:"⋯"}),(0,b.jsx)("span",{children:"pending"})]})}let i=f[a.outcome],j=a.label??"both",k={display:"inline-flex",alignItems:"center",gap:d.iconGap,padding:d.padding,borderRadius:d.borderRadius,fontSize:d.fontSize,fontWeight:600,background:i.bg,color:i.fg,whiteSpace:"nowrap"};return(0,b.jsxs)("span",{style:k,title:i.label,children:[a.agent&&(0,b.jsx)(e,{agent:a.agent,size:h}),("icon"===j||"both"===j)&&(0,b.jsx)("span",{"aria-hidden":!0,style:{lineHeight:1},children:i.icon}),("text"===j||"both"===j)&&(0,b.jsx)("span",{children:i.label})]})},"outcomePriority",0,function(a){return a?h[a]:0}],44220)},3444,a=>{"use strict";let b={input:1,output:5,cacheRead:.1,cacheWrite:1.25},c={input:3,output:15,cacheRead:.3,cacheWrite:3.75},d={input:5,output:25,cacheRead:.5,cacheWrite:6.25};a.s(["estimateCost",0,function(a,e){let f=function(a){if(!a)return d;let e=a.toLowerCase();return e.includes("haiku")?b:e.includes("sonnet")?c:d}(e);return a.input/1e6*f.input+a.output/1e6*f.output+a.cacheRead/1e6*f.cacheRead+a.cacheWrite/1e6*f.cacheWrite},"formatCost",0,function(a){return a<.01?"<$0.01":a<1||a<100?`$${a.toFixed(2)}`:a<1e3?`$${a.toFixed(1)}`:`$${a.toLocaleString(void 0,{maximumFractionDigits:0})}`},"formatDuration",0,function(a){if(void 0===a)return"—";if(a<1e3)return`${a}ms`;let b=Math.round(a/1e3);if(b<60)return`${b}s`;let c=Math.floor(b/60),d=b%60;if(c<60)return d?`${c}m ${d}s`:`${c}m`;let e=Math.floor(c/60),f=c%60;return f?`${e}h ${f}m`:`${e}h`},"formatGap",0,function(a){if(a<1e3)return`${a}ms`;let b=a/1e3;if(b<60)return`${b.toFixed(1)}s`;let c=Math.floor(b/60);if(c<60){let a=Math.round(b%60);return`${c}m ${a}s`}let d=Math.floor(c/60),e=c%60;if(d<24)return e?`${d}h ${e}m`:`${d}h`;let f=Math.floor(d/24),g=d%24;return g?`${f}d ${g}h`:`${f}d`},"formatOffset",0,function(a){if(void 0===a||a<0)return"—";let b=Math.floor(a/1e3),c=Math.floor(b/3600),d=String(Math.floor(b%3600/60)).padStart(2,"0"),e=String(b%60).padStart(2,"0");return`${c}:${d}:${e}`},"formatRelative",0,function(a){let b=Date.parse(a);if(Number.isNaN(b))return a;let c=Math.round((Date.now()-b)/1e3);if(c<60)return`${c}s ago`;let d=Math.round(c/60);if(d<60)return`${d}m ago`;let e=Math.round(d/60);if(e<24)return`${e}h ago`;let f=Math.round(e/24);return`${f}d ago`},"formatTokens",0,function(a){return a<1e3?String(a):a<1e4?(a/1e3).toFixed(1)+"k":a<1e6?Math.round(a/1e3)+"k":a<1e7?(a/1e6).toFixed(2)+"M":(a/1e6).toFixed(1)+"M"},"prettyProjectName",0,function(a,b=35){let c=a.split("/").filter(Boolean),d=c.lastIndexOf(".worktrees");if(d>0&&d<c.length-1){let a=c[d-1],e=c[d+1],f=`${a}/${e}`;return f.length<=b?f:"…"+f.slice(f.length-b+1)}let e=c.length>=2?`${c[c.length-2]}/${c[c.length-1]}`:c[c.length-1]??a;return e.length<=b?e:"…"+e.slice(e.length-b+1)},"shortId",0,function(a){return a.length<=10?a:a.slice(0,6)+"…"+a.slice(-4)}])},41710,a=>{"use strict";let b=(0,a.i(70106).default)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);a.s(["Clock",0,b],41710)},69439,71727,a=>{"use strict";var b=a.i(70106);let c=(0,b.default)("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);a.s(["Lightbulb",0,c],69439);let d=(0,b.default)("Radio",[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]]);a.s(["Radio",0,d],71727)},96221,a=>{"use strict";let b=(0,a.i(70106).default)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",0,b],96221)},2913,a=>{"use strict";let b=/^##\s+\[([^\]]+)\](?:\s+[—\-–]\s+(\S+))?\s*$/,c=/^###\s+(.+?)\s*$/,d=/^[-*]\s+(.+?)\s*$/,e=function(a){let e=a.split(/\r?\n/),f=[],g=null,h=null,i=[];function j(){h&&i.length>0&&(h.bullets.push(i.join(" ").trim()),i=[])}for(let a of e){let e=b.exec(a);if(e){j(),h=null,g={version:e[1].trim(),date:e[2]?.trim()??null,sections:[]},f.push(g);continue}if(!g)continue;let k=c.exec(a);if(k){j(),h={kind:k[1].trim(),bullets:[]},g.sections.push(h);continue}let l=d.exec(a);if(l){j(),i=[l[1]];continue}i.length>0&&a.trim().length>0&&i.push(a.trim())}return j(),f}('# Changelog\n\nAll notable user-facing changes to the Fleetlens CLI (`fleetlens` on npm) are\nrecorded here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).\nThe team-server has its own log at `packages/team-server/CHANGELOG.md`.\n\n## [0.10.4] — 2026-05-21\n\n### Fixed\n- **Fleetlens\'s own LLM runs no longer show up in the dashboard.** The tmux-driven runner records its enrichment / digest / `/ask` calls as real Claude Code transcripts under `~/.claude/projects/` (cwd `~/.cclens/runtime`), since tailing that transcript is how it reads the model\'s reply. Those self-generated sessions were surfacing as a `.cclens/runtime` project and inflating session, project, and token-calibration rollups. The tmux runner now deletes each transcript once the response is captured (kill-session before unlink so claude can\'t rewrite it, gated by `FLEETLENS_TMUX_KEEP_WRAPPER`), and the parser excludes the runtime project dir at the scan chokepoint as a safety net for any transcript that outlives cleanup.\n\n## [0.10.3] — 2026-05-16\n\n### Added\n- **Daemon auto-update every 6 hours.** The local daemon now hourly-checks `registry.npmjs.org/fleetlens/latest` and spawns a detached `fleetlens update` child when a newer version exists. Timestamp persisted in `~/.cclens/daemon-update.json` so closing the laptop lid for days and reopening triggers an immediate catch-up check instead of waiting out the interval. Opt-out via `FLEETLENS_DAEMON_AUTO_UPDATE=0`.\n\n### Changed\n- **Unified team sync.** `runTeamSync` now drives history backfill, daily activity, live utilization, queue drain, and tier propagation through a single path. `team join` and the daemon\'s 5-min tick both call the same function — so a user disconnected from the team server for days will autonomously catch up on next sync, no manual `team backfill` needed.\n- New `lastSyncedUsageSnapshotAt` high-water mark in `~/.cclens/team.json` means incremental syncs only ship eligible new snapshots. Cold-start full backfill is bypass-able via `fleetlens team backfill --force` (and still runs unconditionally on first pair).\n- Team sync cadence is now independent of Claude OAuth polling, so an expired Claude token can no longer turn team sync into a 5-second retry storm.\n\n### Fixed\n- `lastSyncedDay` no longer advances past a failed day on partial outage — previously a transient mid-stream 5xx left a permanent hole in the team-server\'s daily-activity coverage.\n- Both `/api/ingest/metrics` and `/api/ingest/usage-history` POSTs now have a 15-second `AbortSignal.timeout` to bound hangs on network stalls.\n\n## [0.10.2] — 2026-05-15\n\n### Fixed\n- **Session-detail minimap no longer paints subagent runtime as idle.** Long agent runs that dispatched many subagents were reading as wall-to-wall "Session idle" stripes because the parent\'s tool_use → tool_result gap (the subagent\'s actual runtime) was classified as in-turn idle. `rawIdleBands` now carves subagent run spans out of every candidate gap; for in-turn gaps that overlap any subagent run the entire gap is dropped, and between-turn gaps with background subagent activity keep only the genuinely-unwatched residue.\n- **First-response thinking stops registering as idle.** Anchors now include every timestamped event (agent-thinking, meta, etc.), and the loop tracks an "awaiting first response" phase across intermediate thinking anchors. A `user → thinking → thinking → agent` sequence where the model takes a while to compose its first reply is now treated as response latency rather than painted as a stripe.\n- **Turn duration no longer shows `0ms` for single-row turns.** `buildMegaRows` now anchors a turn\'s `tOffsetMs` and `durationMs` at the originating user message rather than at the first agent row. Single-row turns show the actual user → agent latency, and the visual span of the turn rectangle on the minimap covers the whole arc.\n- **Single `Session idle` divider per band.** A user row and the turn-collapsed row that follows it now share a `tOffsetMs`, so the body\'s `IdleDivider` emitter dedupes per band to stop two consecutive identical idle markers around the same boundary.\n\n### Changed\n- Minimap idle threshold raised from 10s to 30s. Ordinary tool latency (slow Bash, big-file Read, between-anchor model thinking) no longer registers as idle.\n\n## [0.10.1] — 2026-05-14\n\n### Added\n- **Alternative claude runtime via tmux.** When `tmux` is on PATH, both the LLM pipeline (digest synth, entry enrichment, top-session perception) and the `/ask` feature now drive `claude` through a detached tmux session instead of `claude -p`. Sessions produced this way carry `entrypoint: cli` in their JSONL, which is also extracted by the parser and surfaced as a small badge on `/sessions/<id>` next to the model chip — green for `cli` / `claude-desktop`, amber for `sdk-*`. The path falls back to `claude -p` whenever tmux is unavailable or the run errors; set `FLEETLENS_FORCE_PRINT_MODE=1` to disable the tmux path entirely.\n- **`CCLENS_HOME` env override.** All `~/.cclens/` state (pid file, daemon log, perception state, usage snapshot log, llm-runs traces) is now reached through a shared `cclensHome()` helper that honors `CCLENS_HOME`. Lets multiple installs / workspaces run side-by-side without stomping on each other\'s state.\n\n### Fixed\n- `/api/runs` rendered every successful tmux-driven run as `status=error`. Tmux runs have no subprocess exit code (the session is killed by cleanup), and the runs viewer was treating a missing code as failure. End records now stamp `exit_code: 0` on success and the active-process filter no longer requires the literal `claude -p` flag, so tmux-driven processes also show up in the "active" panel while they\'re running.\n- `JobQueueWidget`\'s `/api/jobs` polling effect listed `jobs` in its deps, so each tick re-armed the effect on the freshly-set state ref — effective cadence collapsed to a 1–4 ms refetch loop. Now tracks `hasActive` in a closure-local var and runs the effect once on mount.\n\n### Conductor\n- New `conductor.json` + `scripts/conductor-{setup,run,archive}.sh` so each Conductor workspace allocates its own 3-port band (web / team-server / postgres) and boots its own `fleetlens-<workspace>` Compose stack against `.harness/cclens-state`. Replaces ~30 hard-coded `join(homedir(), ".cclens", …)` call sites with the shared `cclensHome()/cclensPath()` helper so a second workspace can boot without colliding with the user\'s primary install.\n\n## [0.10.0] — 2026-05-08\n\n### Changed\n- **Plan utilization reframed.** High utilization is now "getting plan value" (green); low utilization is "paying for unused headroom" (red). Mirrors how an operator actually looks at the dashboard: the wasteful outcome is paying for a plan and barely touching it, not running near the cap. Applied across `/usage` burndown, gauges, sidebar, and previous-cycles strip.\n- **In-progress cycles colored by pace, not peak.** A 50% peak halfway through a 7-day cycle reads on-pace green, not amber — the chart no longer cries wolf on a fresh cycle that just hasn\'t burnt yet. Completed cycles still use peak tone.\n- **Pace label ±15pp band.** "On pace" now covers a ±15pp window around ideal; outside that, label is "below pace" (under-burning) or "may exhaust early" (over-burning). The previous +5/-50 thresholds flipped amber every time the user took a night off.\n- **Pace label collapses to three states.** "May exhaust early" / "below pace" / "on pace" — same color tones, one fewer qualifier to read.\n- **Wording softened across the utilization views** to describe the pattern rather than judge the user. "Behind schedule" → "below pace"; "on track (+x%)" → "on pace (+xpp vs ideal)".\n\n### Added\n- **Conductor multi-agent workspace support.** Sessions inside Conductor\'s worktree-style agent workspaces (`~/conductor/workspaces/<repo>/<agent>/...`) now group correctly under their parent project, with each agent shown as a separate worktree. Mirrors the existing `.worktrees/` handling.\n\n### Fixed\n- Hydration mismatch on `/usage` when pace labels rendered before client mount.\n\n### Notes for operators\n- The CLI\'s team push now ships **only Claude Code usage snapshots** to the team server. Codex snapshots stay local until `plan_utilization` gets a per-agent partition — without one, the team-server\'s "latest snapshot" pick flips between agents and miscolors the in-progress cycle. Existing rows in `plan_utilization` stay; new pushes are claude-code only.\n\n## [0.9.0] — 2026-05-07\n\n### Added\n- **Gemini CLI** as the third agent source. Sessions written to `~/.gemini/tmp/<slug>/chats/session-*.jsonl` are now read, parsed, and rendered alongside Claude Code and Codex. Tool calls (`read_file`, `list_directory`, `glob`, `run_shell_command`, `update_topic`, …) and their results show in the session timeline; thinking blocks, multi-write status replay, `$set` / `$rewindTo` semantics, and the legacy single-JSON file shape all handled. Slug → cwd inversion via `~/.gemini/projects.json`. `✺` glyph + purple accent in the UI.\n\n### Changed\n- Session detail timeline drops in-turn idle hatching. Within a turn, every wait — model loading, tool execution, network — is the agent\'s active time. Only between-turn idle (user reading + composing the next message) renders as hatched.\n- Gemini parser anchors `firstTimestamp`, `lastTimestamp`, and `activeSegments` on conversational events only. Login/OAuth `info` records and `metadata.startTime` (file-creation moment) no longer stretch the session bar back to before the first user message.\n\n## [0.7.1] — 2026-05-07\n\n### Fixed\n- Cycle-peaks trend no longer renders two bars labeled the same day. When Anthropic\'s rolling 7-day window slid its anchor between consecutive polls, the daemon\'s bucketer (hour-rounded) recorded both reset boundaries as distinct cycles. They\'re now merged within a 12 h tolerance — same fix in `apps/web/lib/cycle-peaks.ts` (used by `/usage`) and in `packages/cli/src/team/sync.ts` (the daemon\'s team-server push), so both the personal `/usage` chart and the team-server\'s plan-utilization view stay consistent. 5-hour cycles keep no merge tolerance (their anchor is stable; merging would collapse legitimate distinct cycles).\n\n## [0.6.4] — 2026-05-04\n\n### Fixed\n- Cached calibration events per-file so `/usage` warm renders complete in well under a second on large session histories.\n\n## [0.6.3] — 2026-05-04\n\n### Fixed\n- Dropped poisoned auto-week locks left behind by interrupted runs; backfill now gates on the live pipeline lock instead.\n\n## [0.6.2] — 2026-05-04\n\n### Added\n- Last week\'s digest auto-generates on launch when AI features are on. Disable in Settings → AI features.\n\n## [0.6.1] — 2026-05-04\n\n### Changed\n- Smaller install size — published bundle no longer drags in unused workspace metadata.\n\n## [0.6.0] — 2026-04-30\n\n### Added\n- V2 perception layer. Daily, weekly, and monthly digests synthesized from per-session entries via a strict hierarchical pipeline (entry → day → week → month). Past-period digests are immutable on disk; current-period digests use a 10-min in-memory TTL.\n- `/insights` route with on-demand week and month digest generation, picker history, and force-regen.\n- `fleetlens digest day | week | month [--json]` — CLI surface that reproduces the same digests served at `/insights`.\n- `fleetlens entries [--day | --session | --all] [--json]` — inspect the per-session entry primitive.\n\n### Changed\n- Renamed "active time" to "agent time" across the dashboard and CLI for clarity.\n\n## [0.4.1] — 2026-04-23\n\n### Added\n- Concurrency view on `/parallelism` page. Bursts colored teal for same-project and purple for cross-project (the genuinely interesting fleet-work signal).\n- Plan utilization sparkline on the sidebar, fed by the usage daemon\'s 5-min snapshots.\n\n### Fixed\n- Auto-update no longer leaves a zombie web server on the old binary; both server and daemon are torn down before re-exec.\n\n## [0.4.0] — 2026-04-18\n\n### Added\n- Usage daemon (`fleetlens daemon …`) polls `/api/oauth/usage` every 5 min and appends snapshots to `~/.cclens/usage.jsonl`. `fleetlens start` and `fleetlens stop` manage server + daemon together.\n- `fleetlens usage --history` for inspecting past plan utilization.\n\n## [0.3.0] — 2026-04-10\n\n### Added\n- Project rollups with worktree aggregation. Sessions inside `<project>/.worktrees/<name>` roll up under their parent canonical project with a `+N wt` badge.\n- Pinned projects in the sidebar (per-browser via localStorage).\n\n## [0.2.0] — 2026-04-01\n\n### Changed\n- Active-segment computation now uses all timestamped events (system + summary + sidechain + conversational) instead of conversational-only. Earlier filter undercounted by up to 100x on tool-heavy sessions.\n\n## [0.1.0] — 2026-03-15\n\n### Added\n- Initial release. Local-only dashboard for Claude Code sessions: timeline, projects, daily activity bucketing, parallelism detection, per-model cost estimation. Reads JSONL transcripts from `~/.claude/projects/`.\n');e[0]?.version,a.s(["STORAGE_KEY",0,"cclens:changelog-last-seen"],2913)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0.za3_3._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},29884,a=>{"use strict";a.s(["AiFeaturesForm",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AiFeaturesForm() from the server but AiFeaturesForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/app/settings/ai-features-form.tsx <module evaluation>","AiFeaturesForm")},32669,a=>{"use strict";a.s(["AiFeaturesForm",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AiFeaturesForm() from the server but AiFeaturesForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/web/app/settings/ai-features-form.tsx","AiFeaturesForm")},60496,a=>{"use strict";a.i(29884);var b=a.i(32669);a.n(b)},50910,a=>{"use strict";var b=a.i(7997);a.i(37075);var c=a.i(68787),d=a.i(60496);a.s(["default",0,function(){let a=(0,c.readSettings)();return(0,b.jsxs)("main",{className:"mx-auto max-w-2xl p-6 space-y-8",children:[(0,b.jsx)("h1",{className:"text-2xl font-semibold",children:"Fleetlens Settings"}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:"text-lg font-medium mb-2",children:"AI Features"}),(0,b.jsxs)("p",{className:"text-sm text-gray-500 mb-4",children:["When enabled, Fleetlens synthesizes daily digests and per-entry narratives by spawning your local ",(0,b.jsx)("code",{children:"claude"})," CLI (uses your existing Claude Code auth — no API key required)."]}),(0,b.jsx)(d.AiFeaturesForm,{initial:{enabled:a.ai_features.enabled,autoBackfillLastWeek:a.ai_features.autoBackfillLastWeek,autoBackfillYesterday:a.ai_features.autoBackfillYesterday}})]})]})}])},58019,a=>{a.n(a.i(50910))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0wwa6gh._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[70709,a=>{"use strict";var b=a.i(717),c=a.i(2157),d=a.i(23895);let e=(0,b.cache)(()=>{let a=process.env.CCLENS_USAGE_LOG||(0,d.cclensPath)("usage.jsonl");if(!(0,c.existsSync)(a))return[];let b=(0,c.readFileSync)(a,"utf8"),e=[];for(let a of b.split("\n"))if(a.trim())try{e.push(JSON.parse(a))}catch{}return e}),f=(0,b.cache)(()=>{let a=e().filter(a=>(a.agent??"claude-code")==="claude-code");return a.length>0?a[a.length-1]:null}),g=(0,b.cache)(a=>{let b=e().filter(b=>(b.agent??"claude-code")===a);return b.length>0?b[b.length-1]:null}),h=(0,b.cache)(a=>e().filter(b=>(b.agent??"claude-code")===a)),i=(0,b.cache)(()=>{let a=process.env.CCLENS_PROFILE_CACHE||(0,d.cclensPath)("profile.json");if(!(0,c.existsSync)(a))return null;try{let b=JSON.parse((0,c.readFileSync)(a,"utf8"));if(!b.profile?.planTier)return null;return{planTier:b.profile.planTier,rateLimitTier:b.profile.rateLimitTier??null,organizationType:b.profile.organizationType??null,fetchedAtMs:"number"==typeof b.fetchedAtMs?b.fetchedAtMs:0}}catch{return null}});a.s(["PLAN_TIER_LABELS",0,{pro:{label:"Claude Pro",monthlyPriceUsd:20},"pro-max":{label:"Claude Pro Max",monthlyPriceUsd:100},"pro-max-20x":{label:"Claude Pro Max 20x",monthlyPriceUsd:200},custom:{label:"Custom plan",monthlyPriceUsd:0}},"latestUsageSnapshot",0,f,"latestUsageSnapshotByAgent",0,g,"readCachedPlanTier",0,i,"readUsageSnapshots",0,e,"readUsageSnapshotsByAgent",0,h])},40095,a=>{"use strict";let b=/^##\s+\[([^\]]+)\](?:\s+[—\-–]\s+(\S+))?\s*$/,c=/^###\s+(.+?)\s*$/,d=/^[-*]\s+(.+?)\s*$/,e=function(a){let e=a.split(/\r?\n/),f=[],g=null,h=null,i=[];function j(){h&&i.length>0&&(h.bullets.push(i.join(" ").trim()),i=[])}for(let a of e){let e=b.exec(a);if(e){j(),h=null,g={version:e[1].trim(),date:e[2]?.trim()??null,sections:[]},f.push(g);continue}if(!g)continue;let k=c.exec(a);if(k){j(),h={kind:k[1].trim(),bullets:[]},g.sections.push(h);continue}let l=d.exec(a);if(l){j(),i=[l[1]];continue}i.length>0&&a.trim().length>0&&i.push(a.trim())}return j(),f}('# Changelog\n\nAll notable user-facing changes to the Fleetlens CLI (`fleetlens` on npm) are\nrecorded here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).\nThe team-server has its own log at `packages/team-server/CHANGELOG.md`.\n\n## [0.10.4] — 2026-05-21\n\n### Fixed\n- **Fleetlens\'s own LLM runs no longer show up in the dashboard.** The tmux-driven runner records its enrichment / digest / `/ask` calls as real Claude Code transcripts under `~/.claude/projects/` (cwd `~/.cclens/runtime`), since tailing that transcript is how it reads the model\'s reply. Those self-generated sessions were surfacing as a `.cclens/runtime` project and inflating session, project, and token-calibration rollups. The tmux runner now deletes each transcript once the response is captured (kill-session before unlink so claude can\'t rewrite it, gated by `FLEETLENS_TMUX_KEEP_WRAPPER`), and the parser excludes the runtime project dir at the scan chokepoint as a safety net for any transcript that outlives cleanup.\n\n## [0.10.3] — 2026-05-16\n\n### Added\n- **Daemon auto-update every 6 hours.** The local daemon now hourly-checks `registry.npmjs.org/fleetlens/latest` and spawns a detached `fleetlens update` child when a newer version exists. Timestamp persisted in `~/.cclens/daemon-update.json` so closing the laptop lid for days and reopening triggers an immediate catch-up check instead of waiting out the interval. Opt-out via `FLEETLENS_DAEMON_AUTO_UPDATE=0`.\n\n### Changed\n- **Unified team sync.** `runTeamSync` now drives history backfill, daily activity, live utilization, queue drain, and tier propagation through a single path. `team join` and the daemon\'s 5-min tick both call the same function — so a user disconnected from the team server for days will autonomously catch up on next sync, no manual `team backfill` needed.\n- New `lastSyncedUsageSnapshotAt` high-water mark in `~/.cclens/team.json` means incremental syncs only ship eligible new snapshots. Cold-start full backfill is bypass-able via `fleetlens team backfill --force` (and still runs unconditionally on first pair).\n- Team sync cadence is now independent of Claude OAuth polling, so an expired Claude token can no longer turn team sync into a 5-second retry storm.\n\n### Fixed\n- `lastSyncedDay` no longer advances past a failed day on partial outage — previously a transient mid-stream 5xx left a permanent hole in the team-server\'s daily-activity coverage.\n- Both `/api/ingest/metrics` and `/api/ingest/usage-history` POSTs now have a 15-second `AbortSignal.timeout` to bound hangs on network stalls.\n\n## [0.10.2] — 2026-05-15\n\n### Fixed\n- **Session-detail minimap no longer paints subagent runtime as idle.** Long agent runs that dispatched many subagents were reading as wall-to-wall "Session idle" stripes because the parent\'s tool_use → tool_result gap (the subagent\'s actual runtime) was classified as in-turn idle. `rawIdleBands` now carves subagent run spans out of every candidate gap; for in-turn gaps that overlap any subagent run the entire gap is dropped, and between-turn gaps with background subagent activity keep only the genuinely-unwatched residue.\n- **First-response thinking stops registering as idle.** Anchors now include every timestamped event (agent-thinking, meta, etc.), and the loop tracks an "awaiting first response" phase across intermediate thinking anchors. A `user → thinking → thinking → agent` sequence where the model takes a while to compose its first reply is now treated as response latency rather than painted as a stripe.\n- **Turn duration no longer shows `0ms` for single-row turns.** `buildMegaRows` now anchors a turn\'s `tOffsetMs` and `durationMs` at the originating user message rather than at the first agent row. Single-row turns show the actual user → agent latency, and the visual span of the turn rectangle on the minimap covers the whole arc.\n- **Single `Session idle` divider per band.** A user row and the turn-collapsed row that follows it now share a `tOffsetMs`, so the body\'s `IdleDivider` emitter dedupes per band to stop two consecutive identical idle markers around the same boundary.\n\n### Changed\n- Minimap idle threshold raised from 10s to 30s. Ordinary tool latency (slow Bash, big-file Read, between-anchor model thinking) no longer registers as idle.\n\n## [0.10.1] — 2026-05-14\n\n### Added\n- **Alternative claude runtime via tmux.** When `tmux` is on PATH, both the LLM pipeline (digest synth, entry enrichment, top-session perception) and the `/ask` feature now drive `claude` through a detached tmux session instead of `claude -p`. Sessions produced this way carry `entrypoint: cli` in their JSONL, which is also extracted by the parser and surfaced as a small badge on `/sessions/<id>` next to the model chip — green for `cli` / `claude-desktop`, amber for `sdk-*`. The path falls back to `claude -p` whenever tmux is unavailable or the run errors; set `FLEETLENS_FORCE_PRINT_MODE=1` to disable the tmux path entirely.\n- **`CCLENS_HOME` env override.** All `~/.cclens/` state (pid file, daemon log, perception state, usage snapshot log, llm-runs traces) is now reached through a shared `cclensHome()` helper that honors `CCLENS_HOME`. Lets multiple installs / workspaces run side-by-side without stomping on each other\'s state.\n\n### Fixed\n- `/api/runs` rendered every successful tmux-driven run as `status=error`. Tmux runs have no subprocess exit code (the session is killed by cleanup), and the runs viewer was treating a missing code as failure. End records now stamp `exit_code: 0` on success and the active-process filter no longer requires the literal `claude -p` flag, so tmux-driven processes also show up in the "active" panel while they\'re running.\n- `JobQueueWidget`\'s `/api/jobs` polling effect listed `jobs` in its deps, so each tick re-armed the effect on the freshly-set state ref — effective cadence collapsed to a 1–4 ms refetch loop. Now tracks `hasActive` in a closure-local var and runs the effect once on mount.\n\n### Conductor\n- New `conductor.json` + `scripts/conductor-{setup,run,archive}.sh` so each Conductor workspace allocates its own 3-port band (web / team-server / postgres) and boots its own `fleetlens-<workspace>` Compose stack against `.harness/cclens-state`. Replaces ~30 hard-coded `join(homedir(), ".cclens", …)` call sites with the shared `cclensHome()/cclensPath()` helper so a second workspace can boot without colliding with the user\'s primary install.\n\n## [0.10.0] — 2026-05-08\n\n### Changed\n- **Plan utilization reframed.** High utilization is now "getting plan value" (green); low utilization is "paying for unused headroom" (red). Mirrors how an operator actually looks at the dashboard: the wasteful outcome is paying for a plan and barely touching it, not running near the cap. Applied across `/usage` burndown, gauges, sidebar, and previous-cycles strip.\n- **In-progress cycles colored by pace, not peak.** A 50% peak halfway through a 7-day cycle reads on-pace green, not amber — the chart no longer cries wolf on a fresh cycle that just hasn\'t burnt yet. Completed cycles still use peak tone.\n- **Pace label ±15pp band.** "On pace" now covers a ±15pp window around ideal; outside that, label is "below pace" (under-burning) or "may exhaust early" (over-burning). The previous +5/-50 thresholds flipped amber every time the user took a night off.\n- **Pace label collapses to three states.** "May exhaust early" / "below pace" / "on pace" — same color tones, one fewer qualifier to read.\n- **Wording softened across the utilization views** to describe the pattern rather than judge the user. "Behind schedule" → "below pace"; "on track (+x%)" → "on pace (+xpp vs ideal)".\n\n### Added\n- **Conductor multi-agent workspace support.** Sessions inside Conductor\'s worktree-style agent workspaces (`~/conductor/workspaces/<repo>/<agent>/...`) now group correctly under their parent project, with each agent shown as a separate worktree. Mirrors the existing `.worktrees/` handling.\n\n### Fixed\n- Hydration mismatch on `/usage` when pace labels rendered before client mount.\n\n### Notes for operators\n- The CLI\'s team push now ships **only Claude Code usage snapshots** to the team server. Codex snapshots stay local until `plan_utilization` gets a per-agent partition — without one, the team-server\'s "latest snapshot" pick flips between agents and miscolors the in-progress cycle. Existing rows in `plan_utilization` stay; new pushes are claude-code only.\n\n## [0.9.0] — 2026-05-07\n\n### Added\n- **Gemini CLI** as the third agent source. Sessions written to `~/.gemini/tmp/<slug>/chats/session-*.jsonl` are now read, parsed, and rendered alongside Claude Code and Codex. Tool calls (`read_file`, `list_directory`, `glob`, `run_shell_command`, `update_topic`, …) and their results show in the session timeline; thinking blocks, multi-write status replay, `$set` / `$rewindTo` semantics, and the legacy single-JSON file shape all handled. Slug → cwd inversion via `~/.gemini/projects.json`. `✺` glyph + purple accent in the UI.\n\n### Changed\n- Session detail timeline drops in-turn idle hatching. Within a turn, every wait — model loading, tool execution, network — is the agent\'s active time. Only between-turn idle (user reading + composing the next message) renders as hatched.\n- Gemini parser anchors `firstTimestamp`, `lastTimestamp`, and `activeSegments` on conversational events only. Login/OAuth `info` records and `metadata.startTime` (file-creation moment) no longer stretch the session bar back to before the first user message.\n\n## [0.7.1] — 2026-05-07\n\n### Fixed\n- Cycle-peaks trend no longer renders two bars labeled the same day. When Anthropic\'s rolling 7-day window slid its anchor between consecutive polls, the daemon\'s bucketer (hour-rounded) recorded both reset boundaries as distinct cycles. They\'re now merged within a 12 h tolerance — same fix in `apps/web/lib/cycle-peaks.ts` (used by `/usage`) and in `packages/cli/src/team/sync.ts` (the daemon\'s team-server push), so both the personal `/usage` chart and the team-server\'s plan-utilization view stay consistent. 5-hour cycles keep no merge tolerance (their anchor is stable; merging would collapse legitimate distinct cycles).\n\n## [0.6.4] — 2026-05-04\n\n### Fixed\n- Cached calibration events per-file so `/usage` warm renders complete in well under a second on large session histories.\n\n## [0.6.3] — 2026-05-04\n\n### Fixed\n- Dropped poisoned auto-week locks left behind by interrupted runs; backfill now gates on the live pipeline lock instead.\n\n## [0.6.2] — 2026-05-04\n\n### Added\n- Last week\'s digest auto-generates on launch when AI features are on. Disable in Settings → AI features.\n\n## [0.6.1] — 2026-05-04\n\n### Changed\n- Smaller install size — published bundle no longer drags in unused workspace metadata.\n\n## [0.6.0] — 2026-04-30\n\n### Added\n- V2 perception layer. Daily, weekly, and monthly digests synthesized from per-session entries via a strict hierarchical pipeline (entry → day → week → month). Past-period digests are immutable on disk; current-period digests use a 10-min in-memory TTL.\n- `/insights` route with on-demand week and month digest generation, picker history, and force-regen.\n- `fleetlens digest day | week | month [--json]` — CLI surface that reproduces the same digests served at `/insights`.\n- `fleetlens entries [--day | --session | --all] [--json]` — inspect the per-session entry primitive.\n\n### Changed\n- Renamed "active time" to "agent time" across the dashboard and CLI for clarity.\n\n## [0.4.1] — 2026-04-23\n\n### Added\n- Concurrency view on `/parallelism` page. Bursts colored teal for same-project and purple for cross-project (the genuinely interesting fleet-work signal).\n- Plan utilization sparkline on the sidebar, fed by the usage daemon\'s 5-min snapshots.\n\n### Fixed\n- Auto-update no longer leaves a zombie web server on the old binary; both server and daemon are torn down before re-exec.\n\n## [0.4.0] — 2026-04-18\n\n### Added\n- Usage daemon (`fleetlens daemon …`) polls `/api/oauth/usage` every 5 min and appends snapshots to `~/.cclens/usage.jsonl`. `fleetlens start` and `fleetlens stop` manage server + daemon together.\n- `fleetlens usage --history` for inspecting past plan utilization.\n\n## [0.3.0] — 2026-04-10\n\n### Added\n- Project rollups with worktree aggregation. Sessions inside `<project>/.worktrees/<name>` roll up under their parent canonical project with a `+N wt` badge.\n- Pinned projects in the sidebar (per-browser via localStorage).\n\n## [0.2.0] — 2026-04-01\n\n### Changed\n- Active-segment computation now uses all timestamped events (system + summary + sidechain + conversational) instead of conversational-only. Earlier filter undercounted by up to 100x on tool-heavy sessions.\n\n## [0.1.0] — 2026-03-15\n\n### Added\n- Initial release. Local-only dashboard for Claude Code sessions: timeline, projects, daily activity bucketing, parallelism detection, per-model cost estimation. Reads JSONL transcripts from `~/.claude/projects/`.\n'),f=e[0]?.version??null;a.s(["ENTRIES",0,e,"LATEST_VERSION",0,f],40095)}];
2
-
3
- //# sourceMappingURL=apps_web_lib_0m67-xi._.js.map