fleetlens 0.13.0 → 0.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/apps/web/.next/BUILD_ID +1 -1
- package/app/apps/web/.next/build-manifest.json +8 -8
- package/app/apps/web/.next/prerender-manifest.json +3 -3
- package/app/apps/web/.next/server/app/_global-error/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/_global-error.html +1 -1
- package/app/apps/web/.next/server/app/_global-error.rsc +7 -7
- package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_not-found/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/_not-found/page.js +1 -1
- package/app/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/api/ask/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js +1 -1
- package/app/apps/web/.next/server/app/api/digest/day/[date]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js +1 -1
- package/app/apps/web/.next/server/app/api/digest/month/[yearMonth]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/month-index/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js +1 -1
- package/app/apps/web/.next/server/app/api/digest/week/[startDate]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/digest/week-index/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/events/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/pdf/[key]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/runs/[runId]/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/runs/[runId]/stream/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/runs/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/team-config/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/api/workflow-agent/route.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/changelog/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/changelog/page.js +1 -1
- package/app/apps/web/.next/server/app/changelog/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/day/[date]/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/day/[date]/page.js +1 -1
- package/app/apps/web/.next/server/app/day/[date]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/day/[date]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/day/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/day/page.js +1 -1
- package/app/apps/web/.next/server/app/day/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/day/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/digest/[date]/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/digest/[date]/page.js +1 -1
- package/app/apps/web/.next/server/app/digest/[date]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/digest/[date]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/digest/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/digest/page.js +1 -1
- package/app/apps/web/.next/server/app/digest/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/digest/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/insights/[key]/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/insights/[key]/page.js +1 -1
- package/app/apps/web/.next/server/app/insights/[key]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/insights/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/insights/page.js +3 -2
- package/app/apps/web/.next/server/app/insights/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/page.js +1 -1
- package/app/apps/web/.next/server/app/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/parallelism/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/parallelism/page.js +1 -1
- package/app/apps/web/.next/server/app/parallelism/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/parallelism/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/print/[key]/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/print/[key]/page.js +1 -1
- package/app/apps/web/.next/server/app/print/[key]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/print/[key]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/projects/[slug]/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/projects/[slug]/page.js +1 -1
- package/app/apps/web/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/projects/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/projects/page.js +1 -1
- package/app/apps/web/.next/server/app/projects/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/runs/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/runs/page.js +1 -1
- package/app/apps/web/.next/server/app/runs/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/runs/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/sessions/[id]/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/sessions/[id]/page.js +1 -1
- package/app/apps/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/sessions/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/sessions/page.js +1 -1
- package/app/apps/web/.next/server/app/sessions/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/settings/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/settings/page.js +1 -1
- package/app/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/team/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/team/page.js +1 -1
- package/app/apps/web/.next/server/app/team/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/team/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/usage/page/build-manifest.json +5 -5
- package/app/apps/web/.next/server/app/usage/page.js +1 -1
- package/app/apps/web/.next/server/app/usage/page.js.nft.json +1 -1
- package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0gril0u._.js +9 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0n79hpm._.js +9 -0
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0~utv~v._.js +9 -0
- package/app/apps/web/.next/server/chunks/packages_parser_dist_06d9se1._.js +1 -1
- package/app/apps/web/.next/server/chunks/packages_parser_dist_10ihc3~._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0exckd4._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0-1_njm._.js → [root-of-the-server]__0k1x-c9._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0lhwp-k._.js +8 -0
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0n-ax-5._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~.f_3z._.js +3 -3
- package/app/apps/web/.next/server/chunks/ssr/_0kajk31._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/_0s3n5mz._.js +8 -0
- package/app/apps/web/.next/server/chunks/ssr/_0xu2pvc._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/{_0jw2sm7._.js → _12mbgs5._.js} +2 -2
- package/app/apps/web/.next/server/chunks/ssr/apps_web_app_day_[date]_day-view_tsx_0wjoe1u._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_app_insights_page_tsx_071kwyw._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web_app_sessions_sessions-grid_tsx_0bri5x.._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0l6hsch._.js +6 -0
- package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0n7_p1d._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0nb5_-s._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0cepfi8._.js +3 -0
- package/app/apps/web/.next/server/chunks/ssr/packages_entries_dist_node_0_271yr.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_0mx_509._.js +1 -1
- package/app/apps/web/.next/server/middleware-build-manifest.js +8 -8
- package/app/apps/web/.next/server/middleware-manifest.json +5 -5
- package/app/apps/web/.next/server/pages/500.html +1 -1
- package/app/apps/web/.next/server/server-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/server-reference-manifest.json +1 -1
- package/app/apps/web/.next/static/chunks/02xxpexzk3rf-.js +1 -0
- package/app/apps/web/.next/static/chunks/{07lbm-sdh9c2j.js → 0389wb_f0j78j.js} +1 -1
- package/app/apps/web/.next/static/chunks/03gy1evbn94qu.js +6 -0
- package/app/apps/web/.next/static/chunks/03rd.3cc_t~yf.js +4 -0
- package/app/apps/web/.next/static/chunks/{0l4e3as18eexy.js → 0g223u9amib0q.js} +1 -1
- package/app/apps/web/.next/static/chunks/{0h3.-_s-k0mj3.js → 0i.hc~2bj0_3d.js} +1 -1
- package/app/apps/web/.next/static/chunks/0m7dd-2zd9vl2.js +4 -0
- package/app/apps/web/.next/static/chunks/0nqklmbs5s3ax.js +6 -0
- package/app/apps/web/.next/static/chunks/{073081qv4uyn8.js → 0p--hzrway8~3.js} +1 -1
- package/app/apps/web/.next/static/chunks/{0gblp_v.kiu-..js → 0qv-gw888_5nu.js} +1 -1
- package/app/apps/web/.next/static/chunks/{14bjditmmrn7l.js → 0tirv_vo6q8uc.js} +1 -1
- package/app/apps/web/.next/static/chunks/0uyctl-m8iydb.js +1 -0
- package/app/apps/web/.next/static/chunks/0~qdw1b2uz._5.js +10 -0
- package/app/apps/web/.next/static/chunks/{0n0n.0279ot6c.js → 14vx702c32kn6.js} +1 -1
- package/app/apps/web/.next/static/chunks/{turbopack-0lb9w090w5ezx.js → turbopack-0mxu3~9vk.brh.js} +1 -1
- package/app/apps/web/app/api/digest/_shared/digest-route-helpers.ts +178 -0
- package/app/apps/web/app/api/digest/day/[date]/route.ts +34 -128
- package/app/apps/web/app/api/digest/month/[yearMonth]/route.ts +36 -121
- package/app/apps/web/app/api/digest/week/[startDate]/route.ts +36 -123
- package/app/apps/web/app/insights/page.tsx +20 -5
- package/app/apps/web/app/parallelism/burst-detail-modal.tsx +637 -0
- package/app/apps/web/app/parallelism/concurrency-info-modal.tsx +228 -0
- package/app/apps/web/app/parallelism/gantt-chart-utils.ts +49 -0
- package/app/apps/web/app/parallelism/gantt-chart.tsx +24 -903
- package/app/apps/web/app/sessions/[id]/session-view/colors.ts +31 -0
- package/app/apps/web/app/sessions/[id]/session-view/debug-list.tsx +78 -0
- package/app/apps/web/app/sessions/[id]/session-view/drawer.tsx +414 -0
- package/app/apps/web/app/sessions/[id]/session-view/entry-day-strip.tsx +124 -0
- package/app/apps/web/app/sessions/[id]/session-view/header-stats.tsx +217 -0
- package/app/apps/web/app/sessions/[id]/session-view/helpers.ts +135 -0
- package/app/apps/web/app/sessions/[id]/session-view/minimap.tsx +1587 -0
- package/app/apps/web/app/sessions/[id]/session-view/subagent-drawer.tsx +339 -0
- package/app/apps/web/app/sessions/[id]/session-view/token-stats.tsx +111 -0
- package/app/apps/web/app/sessions/[id]/session-view/tooltip.tsx +63 -0
- package/app/apps/web/app/sessions/[id]/session-view/types.ts +46 -0
- package/app/apps/web/app/sessions/[id]/session-view/workflows-panel.tsx +944 -0
- package/app/apps/web/app/sessions/[id]/session-view/workflows-shared.tsx +104 -0
- package/app/apps/web/app/sessions/[id]/session-view.tsx +1513 -5018
- package/app/apps/web/app/sessions/[id]/team-tab/minimap-hover-card.tsx +201 -0
- package/app/apps/web/app/sessions/[id]/team-tab/minimap-idle-band.tsx +53 -0
- package/app/apps/web/app/sessions/[id]/team-tab/minimap-shared.ts +20 -0
- package/app/apps/web/app/sessions/[id]/team-tab/team-minimap.tsx +10 -265
- package/app/apps/web/app/sessions/sessions-grid.tsx +10 -10
- package/app/apps/web/components/digest-actions.tsx +103 -0
- package/app/apps/web/components/job-queue-widget.tsx +1 -1
- package/app/apps/web/components/month-digest-view.tsx +19 -64
- package/app/apps/web/components/searchable-select.tsx +215 -0
- package/app/apps/web/components/tail-mode.tsx +46 -9
- package/app/apps/web/components/week-digest-view.tsx +16 -71
- package/app/apps/web/lib/changelog-data.generated.ts +1 -1
- package/app/apps/web/lib/entries-index.ts +7 -8
- package/app/apps/web/lib/entries.ts +0 -9
- package/app/apps/web/lib/format.test.ts +221 -0
- package/app/apps/web/lib/format.ts +17 -0
- package/app/apps/web/lib/utilization-tone.test.ts +56 -0
- package/app/apps/web/package.json +1 -1
- package/app/apps/web/tsconfig.tsbuildinfo +1 -1
- package/dist/daemon-worker.js +35 -43
- package/dist/index.js +37 -49
- package/package.json +1 -1
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__04j3tng._.js +0 -9
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0cnh3k4._.js +0 -9
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__132eosx._.js +0 -9
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__136-0me._.js +0 -8
- package/app/apps/web/.next/server/chunks/ssr/_0w.cv64._.js +0 -8
- package/app/apps/web/.next/server/chunks/ssr/apps_web_components_01d-iwx._.js +0 -6
- package/app/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0-lmm4p._.js +0 -3
- package/app/apps/web/.next/static/chunks/05k84gif3ucxm.js +0 -6
- package/app/apps/web/.next/static/chunks/0nnjldasalwdu.js +0 -4
- package/app/apps/web/.next/static/chunks/0okg13phslr1..js +0 -4
- package/app/apps/web/.next/static/chunks/0pzt9vemtzct8.js +0 -10
- package/app/apps/web/.next/static/chunks/0qmh5da6gfm56.js +0 -1
- package/app/apps/web/.next/static/chunks/0rnay-a.-jr8-.js +0 -1
- package/app/apps/web/.next/static/chunks/0snv3-2ux2xvv.js +0 -6
- /package/app/apps/web/.next/static/{rbp9x3iPbzrz-wxS-DAU5 → bZs5UyzsYBqC6MFY5n-M_}/_buildManifest.js +0 -0
- /package/app/apps/web/.next/static/{rbp9x3iPbzrz-wxS-DAU5 → bZs5UyzsYBqC6MFY5n-M_}/_clientMiddlewareManifest.js +0 -0
- /package/app/apps/web/.next/static/{rbp9x3iPbzrz-wxS-DAU5 → bZs5UyzsYBqC6MFY5n-M_}/_ssgManifest.js +0 -0
package/dist/daemon-worker.js
CHANGED
|
@@ -264,23 +264,28 @@ function detectParallelRuns(sessions, minActive = 2) {
|
|
|
264
264
|
const points = computeParallelism(sessions);
|
|
265
265
|
const runs = [];
|
|
266
266
|
let cur = null;
|
|
267
|
+
let curIds = null;
|
|
267
268
|
for (const p of points) {
|
|
268
269
|
if (p.active >= minActive) {
|
|
269
270
|
if (!cur) {
|
|
270
|
-
|
|
271
|
+
curIds = new Set(p.sessions);
|
|
272
|
+
cur = { startMs: p.atMs, endMs: p.atMs, peak: p.active, sessions: Array.from(curIds) };
|
|
271
273
|
} else {
|
|
272
274
|
cur.endMs = p.atMs;
|
|
273
275
|
if (p.active > cur.peak)
|
|
274
276
|
cur.peak = p.active;
|
|
275
277
|
for (const sid of p.sessions) {
|
|
276
|
-
if (!
|
|
278
|
+
if (!curIds.has(sid)) {
|
|
279
|
+
curIds.add(sid);
|
|
277
280
|
cur.sessions.push(sid);
|
|
281
|
+
}
|
|
278
282
|
}
|
|
279
283
|
}
|
|
280
284
|
} else if (cur) {
|
|
281
285
|
cur.endMs = p.atMs;
|
|
282
286
|
runs.push(cur);
|
|
283
287
|
cur = null;
|
|
288
|
+
curIds = null;
|
|
284
289
|
}
|
|
285
290
|
}
|
|
286
291
|
if (cur)
|
|
@@ -690,23 +695,6 @@ function eventDollars(ev) {
|
|
|
690
695
|
const p = PRICES[ev.family];
|
|
691
696
|
return (ev.input * p.input + ev.output * p.output + ev.cacheRead * p.cacheRead + ev.cache_1h * p.cache_1h + ev.cache_5m * p.cache_5m) / 1e6;
|
|
692
697
|
}
|
|
693
|
-
function dollarsInWindow(events, startMs, endMs) {
|
|
694
|
-
let total = 0;
|
|
695
|
-
for (const ev of events) {
|
|
696
|
-
const t = Date.parse(ev.ts);
|
|
697
|
-
if (t < startMs)
|
|
698
|
-
continue;
|
|
699
|
-
if (t >= endMs)
|
|
700
|
-
break;
|
|
701
|
-
total += eventDollars(ev);
|
|
702
|
-
}
|
|
703
|
-
return total;
|
|
704
|
-
}
|
|
705
|
-
function predictUtilization(events, startMs, endMs, ratePerPct) {
|
|
706
|
-
if (ratePerPct <= 0)
|
|
707
|
-
return 0;
|
|
708
|
-
return dollarsInWindow(events, startMs, endMs) / ratePerPct;
|
|
709
|
-
}
|
|
710
698
|
function buildSpendIndex(events) {
|
|
711
699
|
const sorted = events.map((e) => ({ e, t: Date.parse(e.ts) })).filter((x) => !Number.isNaN(x.t)).sort((a, b) => a.t - b.t);
|
|
712
700
|
const ts = new Float64Array(sorted.length);
|
|
@@ -1113,9 +1101,19 @@ function parseTranscript(rawLines) {
|
|
|
1113
1101
|
if (ev)
|
|
1114
1102
|
events.push(ev);
|
|
1115
1103
|
}
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
const
|
|
1104
|
+
let startMs;
|
|
1105
|
+
let endMs;
|
|
1106
|
+
for (const e of events) {
|
|
1107
|
+
if (!e.timestamp)
|
|
1108
|
+
continue;
|
|
1109
|
+
const ms = Date.parse(e.timestamp);
|
|
1110
|
+
if (Number.isNaN(ms))
|
|
1111
|
+
continue;
|
|
1112
|
+
if (startMs === void 0 || ms < startMs)
|
|
1113
|
+
startMs = ms;
|
|
1114
|
+
if (endMs === void 0 || ms > endMs)
|
|
1115
|
+
endMs = ms;
|
|
1116
|
+
}
|
|
1119
1117
|
const firstTs = startMs !== void 0 ? new Date(startMs).toISOString() : void 0;
|
|
1120
1118
|
const lastTs = endMs !== void 0 ? new Date(endMs).toISOString() : void 0;
|
|
1121
1119
|
for (const ev of events) {
|
|
@@ -1349,12 +1347,10 @@ function parseTranscript(rawLines) {
|
|
|
1349
1347
|
if (typeof m.model === "string" && !model)
|
|
1350
1348
|
model = m.model;
|
|
1351
1349
|
const mid = typeof m.id === "string" ? m.id : void 0;
|
|
1352
|
-
|
|
1353
|
-
const dedupKey = mid != null ? `${mid}:${rid ?? ""}` : void 0;
|
|
1354
|
-
if (dedupKey && seenMessageIds.has(dedupKey))
|
|
1350
|
+
if (mid && seenMessageIds.has(mid))
|
|
1355
1351
|
continue;
|
|
1356
|
-
if (
|
|
1357
|
-
seenMessageIds.add(
|
|
1352
|
+
if (mid)
|
|
1353
|
+
seenMessageIds.add(mid);
|
|
1358
1354
|
const u = extractUsage(m.usage);
|
|
1359
1355
|
if (u) {
|
|
1360
1356
|
totalUsage.input += u.input;
|
|
@@ -3576,7 +3572,8 @@ async function parseSession2(file) {
|
|
|
3576
3572
|
} catch {
|
|
3577
3573
|
}
|
|
3578
3574
|
}
|
|
3579
|
-
for (const
|
|
3575
|
+
for (const rawObj of parsedObjects) {
|
|
3576
|
+
const eventObj = rawObj;
|
|
3580
3577
|
const ts = eventObj.created_at || eventObj.timestamp;
|
|
3581
3578
|
if (eventObj.type === "USER_INPUT") {
|
|
3582
3579
|
if (typeof eventObj.content === "string") {
|
|
@@ -4055,12 +4052,6 @@ async function getCoworkSession(id, opts = {}) {
|
|
|
4055
4052
|
detailCache5.set(file.auditPath, { detail, key });
|
|
4056
4053
|
return detail;
|
|
4057
4054
|
}
|
|
4058
|
-
function coworkSessionLocalDay(meta) {
|
|
4059
|
-
if (!meta.firstTimestamp)
|
|
4060
|
-
return void 0;
|
|
4061
|
-
const ms = Date.parse(meta.firstTimestamp);
|
|
4062
|
-
return Number.isFinite(ms) ? toLocalDay(ms) : void 0;
|
|
4063
|
-
}
|
|
4064
4055
|
var DEFAULT_COWORK_ROOT, SESSION_ID_RE, spacesCache, metaCache5, detailCache5;
|
|
4065
4056
|
var init_cowork = __esm({
|
|
4066
4057
|
"../parser/dist/cowork.js"() {
|
|
@@ -4134,7 +4125,6 @@ __export(fs_exports, {
|
|
|
4134
4125
|
clearCaches: () => clearCaches,
|
|
4135
4126
|
clearTeamConfig: () => clearTeamConfig,
|
|
4136
4127
|
codexSessionLocalDay: () => codexSessionLocalDay,
|
|
4137
|
-
coworkSessionLocalDay: () => coworkSessionLocalDay,
|
|
4138
4128
|
decodeProjectName: () => decodeProjectName,
|
|
4139
4129
|
findTeamLead: () => findTeamLead,
|
|
4140
4130
|
geminiSessionLocalDay: () => geminiSessionLocalDay,
|
|
@@ -4239,7 +4229,7 @@ async function loadUsageByDay(start, end) {
|
|
|
4239
4229
|
if (ms < startMs)
|
|
4240
4230
|
continue;
|
|
4241
4231
|
if (ms > endMs)
|
|
4242
|
-
|
|
4232
|
+
continue;
|
|
4243
4233
|
const key = toLocalDay(ms);
|
|
4244
4234
|
const util2 = snap.five_hour?.utilization ?? 0;
|
|
4245
4235
|
const cur2 = byDay.get(key) ?? 0;
|
|
@@ -4935,7 +4925,6 @@ __export(dist_exports, {
|
|
|
4935
4925
|
detectParallelRuns: () => detectParallelRuns,
|
|
4936
4926
|
detectPrMarkers: () => detectPrMarkers,
|
|
4937
4927
|
dollarsInRange: () => dollarsInRange,
|
|
4938
|
-
dollarsInWindow: () => dollarsInWindow,
|
|
4939
4928
|
eventDollars: () => eventDollars,
|
|
4940
4929
|
getAgentMetadata: () => getAgentMetadata,
|
|
4941
4930
|
groupByProject: () => groupByProject,
|
|
@@ -4948,7 +4937,6 @@ __export(dist_exports, {
|
|
|
4948
4937
|
modelFamily: () => modelFamily,
|
|
4949
4938
|
parseTranscript: () => parseTranscript,
|
|
4950
4939
|
predictAnchored: () => predictAnchored,
|
|
4951
|
-
predictUtilization: () => predictUtilization,
|
|
4952
4940
|
priorCalendarMonth: () => priorCalendarMonth,
|
|
4953
4941
|
priorCalendarWeek: () => priorCalendarWeek,
|
|
4954
4942
|
projectRepoName: () => projectRepoName,
|
|
@@ -5803,7 +5791,7 @@ function buildIngestPayload(inputs) {
|
|
|
5803
5791
|
return {
|
|
5804
5792
|
ingestId: randomUUID(),
|
|
5805
5793
|
observedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
5806
|
-
cliVersion: "0.13.
|
|
5794
|
+
cliVersion: "0.13.2",
|
|
5807
5795
|
...richRollup || inputs.enrichedExtras || inputs.artifactSignals ? { schemaVersion: RICH_ROLLUP_SCHEMA_VERSION } : {},
|
|
5808
5796
|
...inputs.rollup ? { dailyRollup: inputs.rollup } : {},
|
|
5809
5797
|
...richRollup ? { richRollup } : {},
|
|
@@ -6546,6 +6534,7 @@ var INSTRUCTION_RE = /\b(?:can you|please|let's|let us|i need|could you|would yo
|
|
|
6546
6534
|
function extractUserInstructions(text) {
|
|
6547
6535
|
if (!text)
|
|
6548
6536
|
return [];
|
|
6537
|
+
INSTRUCTION_RE.lastIndex = 0;
|
|
6549
6538
|
const out = [];
|
|
6550
6539
|
const seen = /* @__PURE__ */ new Set();
|
|
6551
6540
|
let m;
|
|
@@ -15204,14 +15193,14 @@ async function getUpdateAvailability() {
|
|
|
15204
15193
|
if (isDevMode()) return null;
|
|
15205
15194
|
const latest = await fetchLatestVersion();
|
|
15206
15195
|
if (latest === null) return {
|
|
15207
|
-
current: "0.13.
|
|
15196
|
+
current: "0.13.2",
|
|
15208
15197
|
latest: null,
|
|
15209
15198
|
updateAvailable: false
|
|
15210
15199
|
};
|
|
15211
15200
|
return {
|
|
15212
|
-
current: "0.13.
|
|
15201
|
+
current: "0.13.2",
|
|
15213
15202
|
latest,
|
|
15214
|
-
updateAvailable: shouldUpdate("0.13.
|
|
15203
|
+
updateAvailable: shouldUpdate("0.13.2", latest)
|
|
15215
15204
|
};
|
|
15216
15205
|
}
|
|
15217
15206
|
|
|
@@ -15290,7 +15279,10 @@ async function runDaemonUpdateCheck() {
|
|
|
15290
15279
|
nextUpdateCheckAtMs = Date.now() + AUTO_UPDATE_INTERVAL_MS;
|
|
15291
15280
|
return;
|
|
15292
15281
|
}
|
|
15293
|
-
if (updateCheckInFlight)
|
|
15282
|
+
if (updateCheckInFlight) {
|
|
15283
|
+
nextUpdateCheckAtMs = Date.now() + AUTO_UPDATE_INTERVAL_MS;
|
|
15284
|
+
return;
|
|
15285
|
+
}
|
|
15294
15286
|
updateCheckInFlight = true;
|
|
15295
15287
|
const checkedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
15296
15288
|
try {
|
package/dist/index.js
CHANGED
|
@@ -289,23 +289,28 @@ function detectParallelRuns(sessions, minActive = 2) {
|
|
|
289
289
|
const points = computeParallelism(sessions);
|
|
290
290
|
const runs2 = [];
|
|
291
291
|
let cur = null;
|
|
292
|
+
let curIds = null;
|
|
292
293
|
for (const p of points) {
|
|
293
294
|
if (p.active >= minActive) {
|
|
294
295
|
if (!cur) {
|
|
295
|
-
|
|
296
|
+
curIds = new Set(p.sessions);
|
|
297
|
+
cur = { startMs: p.atMs, endMs: p.atMs, peak: p.active, sessions: Array.from(curIds) };
|
|
296
298
|
} else {
|
|
297
299
|
cur.endMs = p.atMs;
|
|
298
300
|
if (p.active > cur.peak)
|
|
299
301
|
cur.peak = p.active;
|
|
300
302
|
for (const sid of p.sessions) {
|
|
301
|
-
if (!
|
|
303
|
+
if (!curIds.has(sid)) {
|
|
304
|
+
curIds.add(sid);
|
|
302
305
|
cur.sessions.push(sid);
|
|
306
|
+
}
|
|
303
307
|
}
|
|
304
308
|
}
|
|
305
309
|
} else if (cur) {
|
|
306
310
|
cur.endMs = p.atMs;
|
|
307
311
|
runs2.push(cur);
|
|
308
312
|
cur = null;
|
|
313
|
+
curIds = null;
|
|
309
314
|
}
|
|
310
315
|
}
|
|
311
316
|
if (cur)
|
|
@@ -715,23 +720,6 @@ function eventDollars(ev) {
|
|
|
715
720
|
const p = PRICES[ev.family];
|
|
716
721
|
return (ev.input * p.input + ev.output * p.output + ev.cacheRead * p.cacheRead + ev.cache_1h * p.cache_1h + ev.cache_5m * p.cache_5m) / 1e6;
|
|
717
722
|
}
|
|
718
|
-
function dollarsInWindow(events, startMs, endMs) {
|
|
719
|
-
let total = 0;
|
|
720
|
-
for (const ev of events) {
|
|
721
|
-
const t = Date.parse(ev.ts);
|
|
722
|
-
if (t < startMs)
|
|
723
|
-
continue;
|
|
724
|
-
if (t >= endMs)
|
|
725
|
-
break;
|
|
726
|
-
total += eventDollars(ev);
|
|
727
|
-
}
|
|
728
|
-
return total;
|
|
729
|
-
}
|
|
730
|
-
function predictUtilization(events, startMs, endMs, ratePerPct) {
|
|
731
|
-
if (ratePerPct <= 0)
|
|
732
|
-
return 0;
|
|
733
|
-
return dollarsInWindow(events, startMs, endMs) / ratePerPct;
|
|
734
|
-
}
|
|
735
723
|
function buildSpendIndex(events) {
|
|
736
724
|
const sorted = events.map((e) => ({ e, t: Date.parse(e.ts) })).filter((x) => !Number.isNaN(x.t)).sort((a, b) => a.t - b.t);
|
|
737
725
|
const ts = new Float64Array(sorted.length);
|
|
@@ -1138,9 +1126,19 @@ function parseTranscript(rawLines) {
|
|
|
1138
1126
|
if (ev)
|
|
1139
1127
|
events.push(ev);
|
|
1140
1128
|
}
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
const
|
|
1129
|
+
let startMs;
|
|
1130
|
+
let endMs;
|
|
1131
|
+
for (const e of events) {
|
|
1132
|
+
if (!e.timestamp)
|
|
1133
|
+
continue;
|
|
1134
|
+
const ms = Date.parse(e.timestamp);
|
|
1135
|
+
if (Number.isNaN(ms))
|
|
1136
|
+
continue;
|
|
1137
|
+
if (startMs === void 0 || ms < startMs)
|
|
1138
|
+
startMs = ms;
|
|
1139
|
+
if (endMs === void 0 || ms > endMs)
|
|
1140
|
+
endMs = ms;
|
|
1141
|
+
}
|
|
1144
1142
|
const firstTs = startMs !== void 0 ? new Date(startMs).toISOString() : void 0;
|
|
1145
1143
|
const lastTs = endMs !== void 0 ? new Date(endMs).toISOString() : void 0;
|
|
1146
1144
|
for (const ev of events) {
|
|
@@ -1374,12 +1372,10 @@ function parseTranscript(rawLines) {
|
|
|
1374
1372
|
if (typeof m.model === "string" && !model)
|
|
1375
1373
|
model = m.model;
|
|
1376
1374
|
const mid = typeof m.id === "string" ? m.id : void 0;
|
|
1377
|
-
|
|
1378
|
-
const dedupKey = mid != null ? `${mid}:${rid ?? ""}` : void 0;
|
|
1379
|
-
if (dedupKey && seenMessageIds.has(dedupKey))
|
|
1375
|
+
if (mid && seenMessageIds.has(mid))
|
|
1380
1376
|
continue;
|
|
1381
|
-
if (
|
|
1382
|
-
seenMessageIds.add(
|
|
1377
|
+
if (mid)
|
|
1378
|
+
seenMessageIds.add(mid);
|
|
1383
1379
|
const u = extractUsage(m.usage);
|
|
1384
1380
|
if (u) {
|
|
1385
1381
|
totalUsage.input += u.input;
|
|
@@ -3601,7 +3597,8 @@ async function parseSession2(file) {
|
|
|
3601
3597
|
} catch {
|
|
3602
3598
|
}
|
|
3603
3599
|
}
|
|
3604
|
-
for (const
|
|
3600
|
+
for (const rawObj of parsedObjects) {
|
|
3601
|
+
const eventObj = rawObj;
|
|
3605
3602
|
const ts = eventObj.created_at || eventObj.timestamp;
|
|
3606
3603
|
if (eventObj.type === "USER_INPUT") {
|
|
3607
3604
|
if (typeof eventObj.content === "string") {
|
|
@@ -4080,12 +4077,6 @@ async function getCoworkSession(id, opts = {}) {
|
|
|
4080
4077
|
detailCache5.set(file.auditPath, { detail, key });
|
|
4081
4078
|
return detail;
|
|
4082
4079
|
}
|
|
4083
|
-
function coworkSessionLocalDay(meta) {
|
|
4084
|
-
if (!meta.firstTimestamp)
|
|
4085
|
-
return void 0;
|
|
4086
|
-
const ms = Date.parse(meta.firstTimestamp);
|
|
4087
|
-
return Number.isFinite(ms) ? toLocalDay(ms) : void 0;
|
|
4088
|
-
}
|
|
4089
4080
|
var DEFAULT_COWORK_ROOT, SESSION_ID_RE, spacesCache, metaCache5, detailCache5;
|
|
4090
4081
|
var init_cowork = __esm({
|
|
4091
4082
|
"../parser/dist/cowork.js"() {
|
|
@@ -4159,7 +4150,6 @@ __export(fs_exports, {
|
|
|
4159
4150
|
clearCaches: () => clearCaches,
|
|
4160
4151
|
clearTeamConfig: () => clearTeamConfig,
|
|
4161
4152
|
codexSessionLocalDay: () => codexSessionLocalDay,
|
|
4162
|
-
coworkSessionLocalDay: () => coworkSessionLocalDay,
|
|
4163
4153
|
decodeProjectName: () => decodeProjectName,
|
|
4164
4154
|
findTeamLead: () => findTeamLead,
|
|
4165
4155
|
geminiSessionLocalDay: () => geminiSessionLocalDay,
|
|
@@ -4264,7 +4254,7 @@ async function loadUsageByDay(start2, end) {
|
|
|
4264
4254
|
if (ms < startMs)
|
|
4265
4255
|
continue;
|
|
4266
4256
|
if (ms > endMs)
|
|
4267
|
-
|
|
4257
|
+
continue;
|
|
4268
4258
|
const key = toLocalDay(ms);
|
|
4269
4259
|
const util2 = snap.five_hour?.utilization ?? 0;
|
|
4270
4260
|
const cur2 = byDay.get(key) ?? 0;
|
|
@@ -4552,7 +4542,7 @@ function getServerStatus() {
|
|
|
4552
4542
|
return { running: false };
|
|
4553
4543
|
}
|
|
4554
4544
|
function isServerStale(status2) {
|
|
4555
|
-
return status2.running === true && status2.version !== "0.13.
|
|
4545
|
+
return status2.running === true && status2.version !== "0.13.2";
|
|
4556
4546
|
}
|
|
4557
4547
|
async function ensureCurrentServer(opts = {}) {
|
|
4558
4548
|
const status2 = getServerStatus();
|
|
@@ -4608,7 +4598,7 @@ async function startServer(opts = {}) {
|
|
|
4608
4598
|
});
|
|
4609
4599
|
child.unref();
|
|
4610
4600
|
const pid = child.pid;
|
|
4611
|
-
writePid(PID_FILE, pid, port, "0.13.
|
|
4601
|
+
writePid(PID_FILE, pid, port, "0.13.2");
|
|
4612
4602
|
await waitForHealth(`http://localhost:${port}`, 1e4);
|
|
4613
4603
|
return { pid, port };
|
|
4614
4604
|
}
|
|
@@ -4968,9 +4958,9 @@ Installed: ${PACKAGE_NAME}@${verify.installedVersion} at ${verify.installedPath
|
|
|
4968
4958
|
console.warn(
|
|
4969
4959
|
` \u2022 reinstall in the correct Node env: 'npm install -g ${PACKAGE_NAME}@latest'`
|
|
4970
4960
|
);
|
|
4971
|
-
} else if (verify.installedVersion !== "0.13.
|
|
4961
|
+
} else if (verify.installedVersion !== "0.13.2") {
|
|
4972
4962
|
console.log(
|
|
4973
|
-
` \u2192 This process is still running ${"0.13.
|
|
4963
|
+
` \u2192 This process is still running ${"0.13.2"}. Next invocation will use ${verify.installedVersion}.`
|
|
4974
4964
|
);
|
|
4975
4965
|
}
|
|
4976
4966
|
}
|
|
@@ -5005,14 +4995,14 @@ async function getUpdateAvailability() {
|
|
|
5005
4995
|
if (isDevMode()) return null;
|
|
5006
4996
|
const latest = await fetchLatestVersion();
|
|
5007
4997
|
if (latest === null) return {
|
|
5008
|
-
current: "0.13.
|
|
4998
|
+
current: "0.13.2",
|
|
5009
4999
|
latest: null,
|
|
5010
5000
|
updateAvailable: false
|
|
5011
5001
|
};
|
|
5012
5002
|
return {
|
|
5013
|
-
current: "0.13.
|
|
5003
|
+
current: "0.13.2",
|
|
5014
5004
|
latest,
|
|
5015
|
-
updateAvailable: shouldUpdate("0.13.
|
|
5005
|
+
updateAvailable: shouldUpdate("0.13.2", latest)
|
|
5016
5006
|
};
|
|
5017
5007
|
}
|
|
5018
5008
|
async function checkForUpdate() {
|
|
@@ -5102,7 +5092,7 @@ async function restartServices(state) {
|
|
|
5102
5092
|
}
|
|
5103
5093
|
async function forceUpdate() {
|
|
5104
5094
|
const latest = await fetchLatestVersion();
|
|
5105
|
-
const current = "0.13.
|
|
5095
|
+
const current = "0.13.2";
|
|
5106
5096
|
if (latest === null) {
|
|
5107
5097
|
console.error("Could not reach npm registry. Check your network.");
|
|
5108
5098
|
process.exit(1);
|
|
@@ -5460,7 +5450,7 @@ async function status() {
|
|
|
5460
5450
|
console.log(`Server: running on ${url} (PID ${server.pid}, v${ver})`);
|
|
5461
5451
|
if (isServerStale(server)) {
|
|
5462
5452
|
console.log(
|
|
5463
|
-
` \u26A0 serving stale ${ver} (CLI is ${"0.13.
|
|
5453
|
+
` \u26A0 serving stale ${ver} (CLI is ${"0.13.2"}) \u2014 run 'fleetlens start' to restart on the current version`
|
|
5464
5454
|
);
|
|
5465
5455
|
}
|
|
5466
5456
|
} else {
|
|
@@ -6544,7 +6534,6 @@ __export(dist_exports, {
|
|
|
6544
6534
|
detectParallelRuns: () => detectParallelRuns,
|
|
6545
6535
|
detectPrMarkers: () => detectPrMarkers,
|
|
6546
6536
|
dollarsInRange: () => dollarsInRange,
|
|
6547
|
-
dollarsInWindow: () => dollarsInWindow,
|
|
6548
6537
|
eventDollars: () => eventDollars,
|
|
6549
6538
|
getAgentMetadata: () => getAgentMetadata,
|
|
6550
6539
|
groupByProject: () => groupByProject,
|
|
@@ -6557,7 +6546,6 @@ __export(dist_exports, {
|
|
|
6557
6546
|
modelFamily: () => modelFamily,
|
|
6558
6547
|
parseTranscript: () => parseTranscript,
|
|
6559
6548
|
predictAnchored: () => predictAnchored,
|
|
6560
|
-
predictUtilization: () => predictUtilization,
|
|
6561
6549
|
priorCalendarMonth: () => priorCalendarMonth,
|
|
6562
6550
|
priorCalendarWeek: () => priorCalendarWeek,
|
|
6563
6551
|
projectRepoName: () => projectRepoName,
|
|
@@ -16321,7 +16309,7 @@ function buildIngestPayload(inputs) {
|
|
|
16321
16309
|
return {
|
|
16322
16310
|
ingestId: randomUUID2(),
|
|
16323
16311
|
observedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
16324
|
-
cliVersion: "0.13.
|
|
16312
|
+
cliVersion: "0.13.2",
|
|
16325
16313
|
...richRollup || inputs.enrichedExtras || inputs.artifactSignals ? { schemaVersion: RICH_ROLLUP_SCHEMA_VERSION } : {},
|
|
16326
16314
|
...inputs.rollup ? { dailyRollup: inputs.rollup } : {},
|
|
16327
16315
|
...richRollup ? { richRollup } : {},
|
|
@@ -17959,7 +17947,7 @@ async function main() {
|
|
|
17959
17947
|
case "version":
|
|
17960
17948
|
case "--version":
|
|
17961
17949
|
case "-v":
|
|
17962
|
-
console.log(`fleetlens ${"0.13.
|
|
17950
|
+
console.log(`fleetlens ${"0.13.2"}`);
|
|
17963
17951
|
break;
|
|
17964
17952
|
case "help":
|
|
17965
17953
|
case "--help":
|
package/package.json
CHANGED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
module.exports=[93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.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,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},55459,e=>{"use strict";var t=e.i(2157),r=e.i(43427);function a(){return process.env.CCLENS_JOBS_FILE??(0,r.cclensPath)("jobs.jsonl")}function n(){let e=(0,r.cclensHome)();(0,t.existsSync)(e)||(0,t.mkdirSync)(e,{recursive:!0})}let s=null;function i(){n();let e=a();if(!(0,t.existsSync)(e))return new Map;let r=(0,t.statSync)(e).mtimeMs;if(s&&s.mtimeMs===r)return new Map(s.map);let i=new Map;for(let r of(0,t.readFileSync)(e,"utf8").split("\n"))if(r.trim())try{let e=JSON.parse(r);i.set(e.id,e)}catch{}return s={mtimeMs:r,map:new Map(i)},i}function o(e){n(),(0,t.appendFileSync)(a(),JSON.stringify(e)+"\n","utf8"),s=null}function l(e,t){let r=i().get(e);r&&o({...r,...t})}e.s(["completeJob",0,function(e,t=null){l(e,{status:"done",completedAt:new Date().toISOString(),resultUrl:t,progress:null})},"failJob",0,function(e,t){l(e,{status:"error",completedAt:new Date().toISOString(),error:t,progress:null})},"listRecentJobs",0,function(e=30){let t=i(),r=Date.now();for(let[e,a]of t)("running"===a.status||"queued"===a.status)&&r-Date.parse(a.startedAt)>18e5&&t.set(e,{...a,status:"error",error:"interrupted (server restart)"});let a=Array.from(t.values());return a.sort((e,t)=>{let r="queued"===e.status||"running"===e.status,a="queued"===t.status||"running"===t.status;if(r!==a)return r?-1:1;let n=r?Date.parse(e.startedAt):Date.parse(e.completedAt??e.startedAt);return(a?Date.parse(t.startedAt):Date.parse(t.completedAt??t.startedAt))-n}),a.slice(0,e)},"registerJob",0,function(e){let t=e.id??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;return o({id:t,kind:e.kind,label:e.label,target:e.target,status:"queued",startedAt:new Date().toISOString(),completedAt:null,progress:null,resultUrl:null,error:null,caller:e.caller}),t},"updateJob",0,l])},75169,e=>{"use strict";function t(e){let t=new Date(e),r=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0");return`${r}-${a}-${n}`}function r(e=Date.now()){return t(e)}e.i(5737);let a=/^\d{4}-\d{2}-\d{2}$/;function n(e){return a.test(e)}let s=/^\d{4}-\d{2}$/;e.s(["asMonday",0,function(e){return n(e)&&1===new Date(`${e}T00:00:00`).getDay()?e:null},"currentWeekMonday",0,function(e=Date.now()){var a;let n,s;return a=r(e),s=(n=new Date(`${a}T00:00:00`)).getDay(),n.setDate(n.getDate()+(0===s?-6:1-s)),t(n.getTime())},"currentYearMonth",0,function(e=Date.now()){return r(e).slice(0,7)},"isValidDate",0,n,"isValidYearMonth",0,function(e){return s.test(e)},"todayLocal",0,r])},15246,e=>{"use strict";class t{map=new Map;async run(e,t){let r=this.map.get(e);if(r)return r;let a=t();this.map.set(e,a);try{return await a}finally{this.map.delete(e)}}inflight(e){return this.map.has(e)}}e.s(["InflightCoalescer",0,t])},57105,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),g=e.i(70101),f=e.i(74838),h=e.i(10372),y=e.i(93695);e.i(52474);var m=e.i(220);e.i(82111);var w=e.i(20441),x=e.i(56614),v=e.i(76956);e.i(5737);var R=e.i(15246),S=e.i(75169),b=e.i(55459);let D=new R.InflightCoalescer;async function C(e,t){let{date:r}=await t.params;if(!(0,S.isValidDate)(r))return new Response(JSON.stringify({error:"invalid date"}),{status:400,headers:{"content-type":"application/json"}});if(r>(0,S.todayLocal)())return new Response(JSON.stringify({error:"future date"}),{status:400,headers:{"content-type":"application/json"}});if(r===(0,S.todayLocal)()){let e=(0,v.getTodayDigestFromCache)(r,Date.now());return e?new Response(JSON.stringify(e),{status:200,headers:{"content-type":"application/json"}}):new Response(JSON.stringify({pending:!0,today:!0}),{status:200,headers:{"content-type":"application/json"}})}let a=(0,v.readDayDigest)(r);return a?new Response(JSON.stringify(a),{status:200,headers:{"content-type":"application/json"}}):new Response(JSON.stringify({pending:!0}),{status:200,headers:{"content-type":"application/json"}})}async function E(e,t){let{date:r}=await t.params;if(!(0,S.isValidDate)(r))return new Response(JSON.stringify({error:"invalid date"}),{status:400});if(r>(0,S.todayLocal)())return new Response(JSON.stringify({error:"future date"}),{status:400});let a="1"===new URL(e.url).searchParams.get("force"),n=`day|${r}|${+!!a}`,s=new TextEncoder,i=(0,x.readSettings)(),o=new ReadableStream({async start(e){let t=!1;function o(r){if(!t)try{e.enqueue(s.encode(`event: ${r.type}
|
|
2
|
-
data: ${JSON.stringify(r)}
|
|
3
|
-
|
|
4
|
-
`))}catch{t=!0}}let l=D.inflight(n),u=null;try{if(await D.run(n,async()=>{if(!l){for await(let t of(u=(0,b.registerJob)({kind:"digest.day",label:`Day digest \xb7 ${r}`,target:r,caller:"user"}),(0,b.updateJob)(u,{status:"running"}),(0,w.runDayDigestPipeline)(r,{settings:i.ai_features,force:a,todayLocalDay:(0,S.todayLocal)()}))){var e;o(t),u&&(e=u,"status"===t.type?(0,b.updateJob)(e,{progress:{phase:t.phase,text:t.text}}):"entry"===t.type?(0,b.updateJob)(e,{progress:{phase:"enrich",index:t.index,total:t.total}}):"progress"===t.type&&(0,b.updateJob)(e,{progress:{phase:t.phase,bytes:t.bytes}}))}u&&(0,b.completeJob)(u,`/day/${r}`)}}),l){let e=(0,v.readDayDigest)(r)??(0,v.getTodayDigestFromCache)(r,Date.now());e&&o({type:"digest",digest:e}),o({type:"status",phase:"persist",text:"coalesced with in-flight request"})}}catch(e){o({type:"error",message:e.message}),u&&(0,b.failJob)(u,e.message)}finally{try{e.enqueue(s.encode(`event: done
|
|
5
|
-
data: {}
|
|
6
|
-
|
|
7
|
-
`))}catch{}if(!t){try{e.close()}catch{}t=!0}}}});return new Response(o,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["GET",0,C,"POST",0,E,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],14127);var A=e.i(14127);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/digest/day/[date]/route",pathname:"/api/digest/day/[date]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/digest/day/[date]/route.ts",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:O,workUnitAsyncStorage:q,serverHooks:T}=N;async function M(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/digest/day/[date]/route";w=w.replace(/\/index$/,"")||"/";let x=await N.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:S,parsedUrl:b,isDraftMode:D,prerenderManifest:C,routerServerContext:E,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,resolvedPathname:q,clientReferenceManifest:T,serverActionsManifest:M}=x,P=(0,o.normalizeAppPath)(w),_=!!(C.dynamicRoutes[P]||C.routes[q]),k=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,b,!1):t.end("This page could not be found"),null);if(_&&!D){let e=!!C.routes[q],t=C.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(S.adapterPath)return await k();throw new y.NoFallbackError}}let j=null;!_||N.isDev||D||(j="/index"===(j=q)?"/":j);let J=!0===N.isDev||!_,$=_&&!J;M&&T&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:T,serverActionsManifest:M});let I=e.method||"GET",H=(0,s.getTracer)(),U=H.getActiveScopeSpan(),F=!!(null==E?void 0:E.isWrappedByNextServer),L=!!(0,n.getRequestMeta)(e,"minimalMode"),B=(0,n.getRequestMeta)(e,"incrementalCache")||await N.getIncrementalCache(e,S,C,L);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let K={params:R,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:J,incrementalCache:B,cacheLifeProfiles:S.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>N.onRequestError(e,t,a,n,E)},sharedContext:{buildId:v}},V=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>N.handle(W,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${I} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${I} ${w}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&A&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let o=K.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=K.renderOpts.collectedTags;if(!_)return await (0,c.sendResponse)(V,G,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:A})},!1,E),t}},u=await N.handleResponse({req:e,nextConfig:S,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!_)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),D&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&_||d.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(V,G,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};F&&U?await o(U):(n=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(d.BaseServerSpan.handleRequest,{spanName:`${I} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},o),void 0,!F))}catch(t){if(t instanceof y.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:A})},!1,E),_)throw t;return await (0,c.sendResponse)(V,G,new Response(null,{status:500})),null}}e.s(["handler",0,M,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:q})},"routeModule",0,N,"serverHooks",0,T,"workAsyncStorage",0,O,"workUnitAsyncStorage",0,q],57105)}];
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__04j3tng._.js.map
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
module.exports=[93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.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,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},55459,e=>{"use strict";var t=e.i(2157),r=e.i(43427);function n(){return process.env.CCLENS_JOBS_FILE??(0,r.cclensPath)("jobs.jsonl")}function a(){let e=(0,r.cclensHome)();(0,t.existsSync)(e)||(0,t.mkdirSync)(e,{recursive:!0})}let s=null;function i(){a();let e=n();if(!(0,t.existsSync)(e))return new Map;let r=(0,t.statSync)(e).mtimeMs;if(s&&s.mtimeMs===r)return new Map(s.map);let i=new Map;for(let r of(0,t.readFileSync)(e,"utf8").split("\n"))if(r.trim())try{let e=JSON.parse(r);i.set(e.id,e)}catch{}return s={mtimeMs:r,map:new Map(i)},i}function o(e){a(),(0,t.appendFileSync)(n(),JSON.stringify(e)+"\n","utf8"),s=null}function l(e,t){let r=i().get(e);r&&o({...r,...t})}e.s(["completeJob",0,function(e,t=null){l(e,{status:"done",completedAt:new Date().toISOString(),resultUrl:t,progress:null})},"failJob",0,function(e,t){l(e,{status:"error",completedAt:new Date().toISOString(),error:t,progress:null})},"listRecentJobs",0,function(e=30){let t=i(),r=Date.now();for(let[e,n]of t)("running"===n.status||"queued"===n.status)&&r-Date.parse(n.startedAt)>18e5&&t.set(e,{...n,status:"error",error:"interrupted (server restart)"});let n=Array.from(t.values());return n.sort((e,t)=>{let r="queued"===e.status||"running"===e.status,n="queued"===t.status||"running"===t.status;if(r!==n)return r?-1:1;let a=r?Date.parse(e.startedAt):Date.parse(e.completedAt??e.startedAt);return(n?Date.parse(t.startedAt):Date.parse(t.completedAt??t.startedAt))-a}),n.slice(0,e)},"registerJob",0,function(e){let t=e.id??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;return o({id:t,kind:e.kind,label:e.label,target:e.target,status:"queued",startedAt:new Date().toISOString(),completedAt:null,progress:null,resultUrl:null,error:null,caller:e.caller}),t},"updateJob",0,l])},75169,e=>{"use strict";function t(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}`}function r(e=Date.now()){return t(e)}e.i(5737);let n=/^\d{4}-\d{2}-\d{2}$/;function a(e){return n.test(e)}let s=/^\d{4}-\d{2}$/;e.s(["asMonday",0,function(e){return a(e)&&1===new Date(`${e}T00:00:00`).getDay()?e:null},"currentWeekMonday",0,function(e=Date.now()){var n;let a,s;return n=r(e),s=(a=new Date(`${n}T00:00:00`)).getDay(),a.setDate(a.getDate()+(0===s?-6:1-s)),t(a.getTime())},"currentYearMonth",0,function(e=Date.now()){return r(e).slice(0,7)},"isValidDate",0,a,"isValidYearMonth",0,function(e){return s.test(e)},"todayLocal",0,r])},15246,e=>{"use strict";class t{map=new Map;async run(e,t){let r=this.map.get(e);if(r)return r;let n=t();this.map.set(e,n);try{return await n}finally{this.map.delete(e)}}inflight(e){return this.map.has(e)}}e.s(["InflightCoalescer",0,t])},83071,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),g=e.i(70101),h=e.i(74838),f=e.i(10372),y=e.i(93695);e.i(52474);var w=e.i(220);e.i(82111);var m=e.i(77242),x=e.i(56614),v=e.i(76956),R=e.i(15246),S=e.i(75169),b=e.i(55459);let C=new R.InflightCoalescer;async function D(e,t){let{startDate:r}=await t.params,n=(0,S.asMonday)(r);if(!n)return new Response(JSON.stringify({error:"invalid Monday date"}),{status:400,headers:{"content-type":"application/json"}});if(n>(0,S.todayLocal)())return new Response(JSON.stringify({error:"future date"}),{status:400});if(n===(0,S.currentWeekMonday)()){let e=(0,v.getCurrentWeekDigestFromCache)(n,Date.now())??(0,v.readWeekDigest)(n);return e?new Response(JSON.stringify(e),{status:200,headers:{"content-type":"application/json"}}):new Response(JSON.stringify({pending:!0,current:!0}),{status:200,headers:{"content-type":"application/json"}})}let a=(0,v.readWeekDigest)(n);return a?new Response(JSON.stringify(a),{status:200,headers:{"content-type":"application/json"}}):new Response(JSON.stringify({pending:!0}),{status:200,headers:{"content-type":"application/json"}})}async function E(e,t){let{startDate:r}=await t.params,n=(0,S.asMonday)(r);if(!n)return new Response(JSON.stringify({error:"invalid Monday date"}),{status:400});if(n>(0,S.todayLocal)())return new Response(JSON.stringify({error:"future date"}),{status:400});let a="1"===new URL(e.url).searchParams.get("force"),s=`week|${n}|${+!!a}`,i=new TextEncoder,o=(0,x.readSettings)(),l=new ReadableStream({async start(e){let t=!1;function r(r){if(!t)try{e.enqueue(i.encode(`event: ${r.type}
|
|
2
|
-
data: ${JSON.stringify(r)}
|
|
3
|
-
|
|
4
|
-
`))}catch{t=!0}}let l=C.inflight(s),u=null;try{if(await C.run(s,async()=>{if(!l){for await(let t of(u=(0,b.registerJob)({kind:"weekly.synth",label:`Week digest \xb7 ${n}`,target:n,caller:"user"}),(0,b.updateJob)(u,{status:"running"}),(0,m.runWeekDigestPipeline)(n,{settings:o.ai_features,force:a,currentWeekMonday:(0,S.currentWeekMonday)(),todayLocalDay:(0,S.todayLocal)()}))){var e;r(t),u&&(e=u,"status"===t.type?(0,b.updateJob)(e,{progress:{phase:t.phase,text:t.text}}):"entry"===t.type?(0,b.updateJob)(e,{progress:{phase:"enrich",index:t.index,total:t.total}}):"progress"===t.type&&(0,b.updateJob)(e,{progress:{phase:t.phase,bytes:t.bytes}}))}u&&(0,b.completeJob)(u,`/insights/week-${n}`)}}),l){let e=(0,v.readWeekDigest)(n)??(0,v.getCurrentWeekDigestFromCache)(n,Date.now());e&&r({type:"digest",digest:e}),r({type:"status",phase:"persist",text:"coalesced with in-flight request"})}}catch(e){r({type:"error",message:e.message}),u&&(0,b.failJob)(u,e.message)}finally{try{e.enqueue(i.encode(`event: done
|
|
5
|
-
data: {}
|
|
6
|
-
|
|
7
|
-
`))}catch{}if(!t){try{e.close()}catch{}t=!0}}}});return new Response(l,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["GET",0,D,"POST",0,E,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],7474);var A=e.i(7474);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/digest/week/[startDate]/route",pathname:"/api/digest/week/[startDate]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/digest/week/[startDate]/route.ts",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:O,serverHooks:M}=k;async function q(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),k.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/digest/week/[startDate]/route";m=m.replace(/\/index$/,"")||"/";let x=await k.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:S,parsedUrl:b,isDraftMode:C,prerenderManifest:D,routerServerContext:E,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:M,serverActionsManifest:q}=x,T=(0,o.normalizeAppPath)(m),P=!!(D.dynamicRoutes[T]||D.routes[O]),_=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,b,!1):t.end("This page could not be found"),null);if(P&&!C){let e=!!D.routes[O],t=D.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(S.adapterPath)return await _();throw new y.NoFallbackError}}let J=null;!P||k.isDev||C||(J="/index"===(J=O)?"/":J);let $=!0===k.isDev||!P,j=P&&!$;q&&M&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:M,serverActionsManifest:q});let I=e.method||"GET",H=(0,s.getTracer)(),U=H.getActiveScopeSpan(),F=!!(null==E?void 0:E.isWrappedByNextServer),W=!!(0,a.getRequestMeta)(e,"minimalMode"),L=(0,a.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,S,D,W);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let B={params:R,previewProps:D.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:$,incrementalCache:L,cacheLifeProfiles:S.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>k.onRequestError(e,t,n,a,E)},sharedContext:{buildId:v}},K=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let a,i=async e=>k.handle(G,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${I} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",n),a.updateName(t))}else e.updateName(`${I} ${m}`)}),o=async a=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!W&&A&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(a);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let l=B.renderOpts.collectedTags;if(!P)return await (0,c.sendResponse)(K,V,s,B.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,n=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:A})},!1,E),t}},u=await k.handleResponse({req:e,nextConfig:S,cacheKey:J,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:D,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:W});if(!P)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return W&&P||d.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(K,V,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};F&&U?await o(U):(a=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(d.BaseServerSpan.handleRequest,{spanName:`${I} ${m}`,kind:s.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},o),void 0,!F))}catch(t){if(t instanceof y.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:A})},!1,E),P)throw t;return await (0,c.sendResponse)(K,V,new Response(null,{status:500})),null}}e.s(["handler",0,q,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:O})},"routeModule",0,k,"serverHooks",0,M,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,O],83071)}];
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0cnh3k4._.js.map
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
module.exports=[93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.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,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},55459,e=>{"use strict";var t=e.i(2157),r=e.i(43427);function n(){return process.env.CCLENS_JOBS_FILE??(0,r.cclensPath)("jobs.jsonl")}function a(){let e=(0,r.cclensHome)();(0,t.existsSync)(e)||(0,t.mkdirSync)(e,{recursive:!0})}let s=null;function o(){a();let e=n();if(!(0,t.existsSync)(e))return new Map;let r=(0,t.statSync)(e).mtimeMs;if(s&&s.mtimeMs===r)return new Map(s.map);let o=new Map;for(let r of(0,t.readFileSync)(e,"utf8").split("\n"))if(r.trim())try{let e=JSON.parse(r);o.set(e.id,e)}catch{}return s={mtimeMs:r,map:new Map(o)},o}function i(e){a(),(0,t.appendFileSync)(n(),JSON.stringify(e)+"\n","utf8"),s=null}function l(e,t){let r=o().get(e);r&&i({...r,...t})}e.s(["completeJob",0,function(e,t=null){l(e,{status:"done",completedAt:new Date().toISOString(),resultUrl:t,progress:null})},"failJob",0,function(e,t){l(e,{status:"error",completedAt:new Date().toISOString(),error:t,progress:null})},"listRecentJobs",0,function(e=30){let t=o(),r=Date.now();for(let[e,n]of t)("running"===n.status||"queued"===n.status)&&r-Date.parse(n.startedAt)>18e5&&t.set(e,{...n,status:"error",error:"interrupted (server restart)"});let n=Array.from(t.values());return n.sort((e,t)=>{let r="queued"===e.status||"running"===e.status,n="queued"===t.status||"running"===t.status;if(r!==n)return r?-1:1;let a=r?Date.parse(e.startedAt):Date.parse(e.completedAt??e.startedAt);return(n?Date.parse(t.startedAt):Date.parse(t.completedAt??t.startedAt))-a}),n.slice(0,e)},"registerJob",0,function(e){let t=e.id??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;return i({id:t,kind:e.kind,label:e.label,target:e.target,status:"queued",startedAt:new Date().toISOString(),completedAt:null,progress:null,resultUrl:null,error:null,caller:e.caller}),t},"updateJob",0,l])},75169,e=>{"use strict";function t(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}`}function r(e=Date.now()){return t(e)}e.i(5737);let n=/^\d{4}-\d{2}-\d{2}$/;function a(e){return n.test(e)}let s=/^\d{4}-\d{2}$/;e.s(["asMonday",0,function(e){return a(e)&&1===new Date(`${e}T00:00:00`).getDay()?e:null},"currentWeekMonday",0,function(e=Date.now()){var n;let a,s;return n=r(e),s=(a=new Date(`${n}T00:00:00`)).getDay(),a.setDate(a.getDate()+(0===s?-6:1-s)),t(a.getTime())},"currentYearMonth",0,function(e=Date.now()){return r(e).slice(0,7)},"isValidDate",0,a,"isValidYearMonth",0,function(e){return s.test(e)},"todayLocal",0,r])},15246,e=>{"use strict";class t{map=new Map;async run(e,t){let r=this.map.get(e);if(r)return r;let n=t();this.map.set(e,n);try{return await n}finally{this.map.delete(e)}}inflight(e){return this.map.has(e)}}e.s(["InflightCoalescer",0,t])},93161,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),g=e.i(74838),f=e.i(10372),y=e.i(93695);e.i(52474);var m=e.i(220);e.i(82111);var w=e.i(21628),x=e.i(56614),v=e.i(76956),R=e.i(15246),S=e.i(75169),b=e.i(55459);let C=new R.InflightCoalescer;async function M(e,t){let{yearMonth:r}=await t.params;if(!(0,S.isValidYearMonth)(r))return new Response(JSON.stringify({error:"invalid year-month"}),{status:400,headers:{"content-type":"application/json"}});if(r>(0,S.currentYearMonth)())return new Response(JSON.stringify({error:"future month"}),{status:400});if(r===(0,S.currentYearMonth)()){let e=(0,v.getCurrentMonthDigestFromCache)(r,Date.now());return e?new Response(JSON.stringify(e),{status:200,headers:{"content-type":"application/json"}}):new Response(JSON.stringify({pending:!0,current:!0}),{status:200,headers:{"content-type":"application/json"}})}let n=(0,v.readMonthDigest)(r);return n?new Response(JSON.stringify(n),{status:200,headers:{"content-type":"application/json"}}):new Response(JSON.stringify({pending:!0}),{status:200,headers:{"content-type":"application/json"}})}async function E(e,t){let{yearMonth:r}=await t.params;if(!(0,S.isValidYearMonth)(r))return new Response(JSON.stringify({error:"invalid year-month"}),{status:400});if(r>(0,S.currentYearMonth)())return new Response(JSON.stringify({error:"future month"}),{status:400});let n="1"===new URL(e.url).searchParams.get("force"),a=`month|${r}|${+!!n}`,s=new TextEncoder,o=(0,x.readSettings)(),i=new ReadableStream({async start(e){let t=!1;function i(r){if(!t)try{e.enqueue(s.encode(`event: ${r.type}
|
|
2
|
-
data: ${JSON.stringify(r)}
|
|
3
|
-
|
|
4
|
-
`))}catch{t=!0}}let l=C.inflight(a),u=null;try{if(await C.run(a,async()=>{if(!l){for await(let t of(u=(0,b.registerJob)({kind:"monthly.synth",label:`Month digest \xb7 ${r}`,target:r,caller:"user"}),(0,b.updateJob)(u,{status:"running"}),(0,w.runMonthDigestPipeline)(r,{settings:o.ai_features,force:n,currentYearMonth:(0,S.currentYearMonth)(),currentWeekMonday:(0,S.currentWeekMonday)(),todayLocalDay:(0,S.todayLocal)()}))){var e;i(t),u&&(e=u,"status"===t.type?(0,b.updateJob)(e,{progress:{phase:t.phase,text:t.text}}):"entry"===t.type?(0,b.updateJob)(e,{progress:{phase:"enrich",index:t.index,total:t.total}}):"progress"===t.type&&(0,b.updateJob)(e,{progress:{phase:t.phase,bytes:t.bytes}}))}u&&(0,b.completeJob)(u,`/insights/month-${r}`)}}),l){let e=(0,v.readMonthDigest)(r)??(0,v.getCurrentMonthDigestFromCache)(r,Date.now());e&&i({type:"digest",digest:e}),i({type:"status",phase:"persist",text:"coalesced with in-flight request"})}}catch(e){i({type:"error",message:e.message}),u&&(0,b.failJob)(u,e.message)}finally{try{e.enqueue(s.encode(`event: done
|
|
5
|
-
data: {}
|
|
6
|
-
|
|
7
|
-
`))}catch{}if(!t){try{e.close()}catch{}t=!0}}}});return new Response(i,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["GET",0,M,"POST",0,E,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],9941);var A=e.i(9941);let D=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/digest/month/[yearMonth]/route",pathname:"/api/digest/month/[yearMonth]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/digest/month/[yearMonth]/route.ts",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:O,serverHooks:q}=D;async function T(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),D.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/digest/month/[yearMonth]/route";w=w.replace(/\/index$/,"")||"/";let x=await D.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:S,parsedUrl:b,isDraftMode:C,prerenderManifest:M,routerServerContext:E,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:T}=x,P=(0,i.normalizeAppPath)(w),k=!!(M.dynamicRoutes[P]||M.routes[O]),_=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,b,!1):t.end("This page could not be found"),null);if(k&&!C){let e=!!M.routes[O],t=M.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(S.adapterPath)return await _();throw new y.NoFallbackError}}let J=null;!k||D.isDev||C||(J="/index"===(J=O)?"/":J);let $=!0===D.isDev||!k,j=k&&!$;T&&q&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:q,serverActionsManifest:T});let I=e.method||"GET",H=(0,s.getTracer)(),U=H.getActiveScopeSpan(),F=!!(null==E?void 0:E.isWrappedByNextServer),L=!!(0,a.getRequestMeta)(e,"minimalMode"),Y=(0,a.getRequestMeta)(e,"incrementalCache")||await D.getIncrementalCache(e,S,M,L);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let B={params:R,previewProps:M.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:$,incrementalCache:Y,cacheLifeProfiles:S.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>D.onRequestError(e,t,n,a,E)},sharedContext:{buildId:v}},K=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let a,o=async e=>D.handle(W,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${I} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",n),a.updateName(t))}else e.updateName(`${I} ${w}`)}),i=async a=>{var s,i;let l=async({previousCacheEntry:r})=>{try{if(!L&&A&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(a);e.fetchMetrics=B.renderOpts.fetchMetrics;let i=B.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let l=B.renderOpts.collectedTags;if(!k)return await (0,c.sendResponse)(K,V,s,B.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,n=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await D.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:A})},!1,E),t}},u=await D.handleResponse({req:e,nextConfig:S,cacheKey:J,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:M,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:L});if(!k)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(i=u.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&k||d.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(K,V,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};F&&U?await i(U):(a=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(d.BaseServerSpan.handleRequest,{spanName:`${I} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},i),void 0,!F))}catch(t){if(t instanceof y.NoFallbackError||await D.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:A})},!1,E),k)throw t;return await (0,c.sendResponse)(K,V,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:O})},"routeModule",0,D,"serverHooks",0,q,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,O],93161)}];
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__132eosx._.js.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},20555,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["LiveBadge",0,function({mtimeIso:a,activityMs:d,size:e="sm"}){let[f,g]=(0,c.useState)(()=>Date.now());(0,c.useEffect)(()=>{let a=setInterval(()=>g(Date.now()),1e4);return()=>clearInterval(a)},[]);let h=a?Date.parse(a):NaN,i=Math.max(Number.isNaN(h)?0:h,d&&Number.isFinite(d)?d:0);if(i<=0||f-i>45e3)return null;let j="md"===e?8:6;return(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:"md"===e?10:9,fontWeight:700,letterSpacing:"0.04em",padding:"md"===e?"3px 9px":"2px 7px",borderRadius:100,background:"rgba(239, 68, 68, 0.12)",color:"#ef4444",textTransform:"uppercase"},title:`Last updated ${new Date(i).toLocaleTimeString()}`,children:[(0,b.jsx)("span",{style:{display:"inline-block",width:j,height:j,borderRadius:"50%",background:"#ef4444",animation:"cs-live-pulse 1.6s ease-in-out infinite"}}),"LIVE",(0,b.jsx)("style",{children:`
|
|
2
|
-
@keyframes cs-live-pulse {
|
|
3
|
-
0%, 100% { opacity: 1; transform: scale(1); }
|
|
4
|
-
50% { opacity: 0.4; transform: scale(0.85); }
|
|
5
|
-
}
|
|
6
|
-
`})]})}])},50522,a=>{"use strict";let b=(0,a.i(70106).default)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",0,b],50522)},33508,a=>{"use strict";let b=(0,a.i(70106).default)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);a.s(["X",0,b],33508)},5151,a=>{"use strict";let b=(0,a.i(70106).default)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);a.s(["Copy",0,b],5151)},13749,a=>{"use strict";let b=(0,a.i(70106).default)("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);a.s(["ChevronLeft",0,b],13749)},59639,(a,b,c)=>{b.exports=a.x("node:process",()=>require("node:process"))},85668,a=>{"use strict";let b=(0,a.i(70106).default)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);a.s(["ArrowDown",0,b],85668)},6807,a=>{"use strict";let b=(0,a.i(70106).default)("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);a.s(["Workflow",0,b],6807)},79808,a=>{"use strict";let b=(0,a.i(70106).default)("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);a.s(["Wrench",0,b],79808)},5784,a=>{"use strict";let b=(0,a.i(70106).default)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",0,b],5784)},12544,a=>{"use strict";let b=["/.claude/worktrees/","/.worktrees/","/claude/worktrees/"],c=/\/conductor\/workspaces\/[^/]+\/([^/]+)(?:\/|$)/,d="/.superset/worktrees/",e=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,f=/gh\s+pr\s+create\b/i,g=/#(\d+)/,h=/--title\s+["']([^"']+)["']/;a.s(["canonicalProjectName",0,function(a){let f=a.replace(/\/{2,}/g,"/"),g=function(a){for(let c of b){let b=a.lastIndexOf(c);if(b>=0)return{idx:b,marker:c}}return null}(f);if(g)return f.slice(0,g.idx);let h=function(a){let b=c.exec(a);if(!b)return null;let d=b[1],e=+!!b[0].endsWith("/");return{canonicalEndIdx:b.index+b[0].length-d.length-1-e,workspaceName:d}}(f);if(h)return f.slice(0,h.canonicalEndIdx);let i=function(a){let b=a.indexOf(d);if(b<0)return null;let c=a.slice(b+d.length).split("/").filter(Boolean);if(0===c.length)return null;let f=e.test(c[0])?c[1]??c[0]:c[0];return{canonical:a.slice(0,b)+d+f,workspaceName:f}}(f);return i?i.canonical:f},"detectPrMarkers",0,function(a){let b=[],c=a.durationMs??0;for(let d of a.events){if("tool-call"!==d.role||"Bash"!==d.toolName)continue;let e=d.blocks.find(a=>a&&"type"in a&&"tool_use"===a.type);if(!e||"tool_use"!==e.type)continue;let i=e.input,j="string"==typeof i?.command?i.command:"";if(!f.test(j))continue;let k=j.match(h),l=j.match(g);b.push({sessionId:a.id,timestamp:d.timestamp??a.firstTimestamp??"",tOffsetMs:d.tOffsetMs,positionInSession:c>0&&void 0!==d.tOffsetMs?Math.min(1,Math.max(0,d.tOffsetMs/c)):void 0,command:j.slice(0,300),prNumber:l?Number(l[1]):void 0,title:k?.[1]})}return b}])}];
|
|
7
|
-
|
|
8
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__136-0me._.js.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
module.exports=[20555,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["LiveBadge",0,function({mtimeIso:a,activityMs:d,size:e="sm"}){let[f,g]=(0,c.useState)(()=>Date.now());(0,c.useEffect)(()=>{let a=setInterval(()=>g(Date.now()),1e4);return()=>clearInterval(a)},[]);let h=a?Date.parse(a):NaN,i=Math.max(Number.isNaN(h)?0:h,d&&Number.isFinite(d)?d:0);if(i<=0||f-i>45e3)return null;let j="md"===e?8:6;return(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:"md"===e?10:9,fontWeight:700,letterSpacing:"0.04em",padding:"md"===e?"3px 9px":"2px 7px",borderRadius:100,background:"rgba(239, 68, 68, 0.12)",color:"#ef4444",textTransform:"uppercase"},title:`Last updated ${new Date(i).toLocaleTimeString()}`,children:[(0,b.jsx)("span",{style:{display:"inline-block",width:j,height:j,borderRadius:"50%",background:"#ef4444",animation:"cs-live-pulse 1.6s ease-in-out infinite"}}),"LIVE",(0,b.jsx)("style",{children:`
|
|
2
|
-
@keyframes cs-live-pulse {
|
|
3
|
-
0%, 100% { opacity: 1; transform: scale(1); }
|
|
4
|
-
50% { opacity: 0.4; transform: scale(0.85); }
|
|
5
|
-
}
|
|
6
|
-
`})]})}])},85668,a=>{"use strict";let b=(0,a.i(70106).default)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);a.s(["ArrowDown",0,b],85668)},79808,a=>{"use strict";let b=(0,a.i(70106).default)("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);a.s(["Wrench",0,b],79808)},6807,a=>{"use strict";let b=(0,a.i(70106).default)("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);a.s(["Workflow",0,b],6807)},75235,12958,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(70106);let e=(0,d.default)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var f=a.i(85668);let g=(0,d.default)("ArrowUpDown",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);a.s(["DataTable",0,function({rows:a,columns:d,getRowKey:h,onRowClick:i,defaultSortKey:j,defaultSortDir:k="desc"}){let[l,m]=(0,c.useState)(j??null),[n,o]=(0,c.useState)(k),p=(0,c.useMemo)(()=>{if(!l)return a;let b=d.find(a=>a.key===l);if(!b||!b.sortValue)return a;let c="asc"===n?1:-1;return[...a].sort((a,d)=>{let e=b.sortValue(a),f=b.sortValue(d);return"number"==typeof e&&"number"==typeof f?(e-f)*c:String(e).localeCompare(String(f))*c})},[a,d,l,n]);return(0,b.jsx)("div",{style:{overflowX:"auto",border:"1px solid var(--af-border-subtle)",borderRadius:8,background:"var(--af-surface)"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12,color:"var(--af-text)"},children:[(0,b.jsx)("thead",{children:(0,b.jsx)("tr",{children:d.map(a=>{let c=l===a.key,d=!1!==a.sortable&&!!a.sortValue;return(0,b.jsx)("th",{onClick:()=>{!1!==a.sortable&&a.sortValue&&(l===a.key?o(a=>"asc"===a?"desc":"asc"):(m(a.key),o("desc")))},style:{textAlign:a.align??"left",fontSize:10,fontWeight:600,color:c?"var(--af-accent)":"var(--af-text-tertiary)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"10px 12px",borderBottom:"1px solid var(--af-border-subtle)",cursor:d?"pointer":"default",userSelect:"none",whiteSpace:"nowrap",width:a.width,background:"var(--af-surface)",position:"sticky",top:0},children:(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,verticalAlign:"middle"},children:[a.header,d&&(0,b.jsx)("span",{style:{display:"inline-flex",opacity:c?1:.35},children:c?"asc"===n?(0,b.jsx)(e,{size:10}):(0,b.jsx)(f.ArrowDown,{size:10}):(0,b.jsx)(g,{size:10})})]})},a.key)})})}),(0,b.jsxs)("tbody",{children:[p.map(a=>(0,b.jsx)("tr",{onClick:()=>i?.(a),style:{cursor:i?"pointer":"default",borderBottom:"1px solid var(--af-border-subtle)",transition:"background 0.1s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--af-surface-hover)"},onMouseLeave:a=>{a.currentTarget.style.background=""},children:d.map(c=>(0,b.jsx)("td",{style:{padding:"10px 12px",textAlign:c.align??"left",whiteSpace:"right"===c.align?"nowrap":void 0,verticalAlign:"top"},children:c.render(a)},c.key))},h(a))),0===p.length&&(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:d.length,style:{padding:"32px 16px",textAlign:"center",fontSize:12,color:"var(--af-text-tertiary)"},children:"No rows to display."})})]})]})})}],75235);let h=(0,d.default)("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),i=(0,d.default)("Table",[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]]);var j=a.i(2591);function k({active:a,onClick:c,label:d,icon:e,rightEdge:f}){return(0,b.jsxs)("button",{type:"button",onClick:c,style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",fontSize:11,fontWeight:500,background:a?"var(--af-accent-subtle)":"transparent",color:a?"var(--af-accent)":"var(--af-text-secondary)",border:"none",borderRight:f?"none":"1px solid var(--af-border-subtle)",cursor:"pointer",letterSpacing:"0.02em"},children:[e,d]})}a.s(["useViewToggle",0,function(a,c="cards"){let[d,e,f]=(0,j.usePersistentBoolean)(a,"table"===c);return{mode:d?"table":"cards",toggle:(0,b.jsxs)("div",{style:{display:"inline-flex",border:"1px solid var(--af-border-subtle)",borderRadius:6,overflow:"hidden"},children:[(0,b.jsx)(k,{active:!d,onClick:()=>e(!1),label:"Cards",icon:(0,b.jsx)(h,{size:12})}),(0,b.jsx)(k,{active:d,onClick:()=>e(!0),label:"Table",icon:(0,b.jsx)(i,{size:12}),rightEdge:!0})]}),hydrated:f}}],12958)},23426,a=>{"use strict";var b=a.i(87924),c=a.i(38246),d=a.i(72131),e=a.i(50944);a.i(99417);var f=a.i(69176),g=a.i(3444),h=a.i(87532),i=a.i(79808);let j=(0,a.i(70106).default)("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);var k=a.i(41710),l=a.i(6807),m=a.i(20555),n=a.i(76285),o=a.i(99309),p=a.i(75235),q=a.i(12958),r=a.i(44220);let s=["newest","longest","most-tokens","outcome"],t=[{key:"outcome",header:"Outcome",sortValue:a=>(0,r.outcomePriority)(a.outcome),render:a=>(0,b.jsx)(u,{row:a})},{key:"project",header:"Project",sortValue:a=>a.session.projectName,render:a=>(0,b.jsxs)("div",{style:{maxWidth:180,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.session.projectName,children:[(0,b.jsxs)("div",{style:{fontWeight:500,display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:(0,g.prettyProjectName)(a.session.projectName)}),(0,b.jsx)(n.TeamBadge,{session:a.session}),(0,b.jsx)(o.AgentBadge,{agent:a.session.agent})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:(0,g.shortId)(a.session.id)})]})},{key:"preview",header:"Summary",sortable:!1,render:a=>{let c=a.briefSummary??a.session.firstUserPreview??"",d=!a.briefSummary;return(0,b.jsx)("div",{style:{maxWidth:360,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:d?"var(--af-text-tertiary)":"var(--af-text-secondary)",fontStyle:d?"italic":"normal"},title:d?`(raw user message) ${c}`:c,children:c||"—"})}},{key:"created",header:"Created",sortValue:a=>a.session.firstTimestamp?Date.parse(a.session.firstTimestamp):0,align:"right",render:a=>(0,b.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.session.firstTimestamp?(0,g.formatRelative)(a.session.firstTimestamp):"—"})},{key:"lastActive",header:"Last active",sortValue:a=>a.session.lastTimestamp?Date.parse(a.session.lastTimestamp):0,align:"right",render:a=>(0,b.jsx)("span",{suppressHydrationWarning:!0,style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.session.lastTimestamp?(0,g.formatRelative)(a.session.lastTimestamp):"—"})},{key:"airtime",header:"Agent time",sortValue:a=>a.session.airTimeMs??a.session.durationMs??0,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,g.formatDuration)(a.session.airTimeMs??a.session.durationMs??0)})},{key:"turns",header:"Turns",sortValue:a=>a.session.turnCount??0,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(a.session.turnCount??0).toLocaleString()})},{key:"tools",header:"Tool calls",sortValue:a=>a.session.toolCallCount??0,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(a.session.toolCallCount??0).toLocaleString()})},{key:"tokens",header:"Tokens",sortValue:a=>a.session.totalUsage.input+a.session.totalUsage.output+a.session.totalUsage.cacheRead+a.session.totalUsage.cacheWrite,align:"right",render:a=>(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:(0,g.formatTokens)(a.session.totalUsage.input+a.session.totalUsage.output+a.session.totalUsage.cacheRead+a.session.totalUsage.cacheWrite)})},{key:"status",header:"Status",sortValue:a=>+("running"===a.session.status),align:"center",render:a=>"running"===a.session.status?(0,b.jsx)(m.LiveBadge,{}):(0,b.jsx)("span",{style:{opacity:.4},children:"—"})}];function u({row:a}){return a.outcome?(0,b.jsx)(r.OutcomePill,{outcome:a.outcome,size:"sm",label:"text",agent:a.session.agent}):a.enrichmentStatus&&a.latestLocalDay&&"skipped_trivial"!==a.enrichmentStatus?(0,b.jsx)(r.OutcomePill,{outcome:null,pending:!0,sessionId:a.session.id,localDay:a.latestLocalDay,size:"sm",agent:a.session.agent}):(0,b.jsx)("span",{style:{color:"var(--af-text-tertiary)",fontSize:10},children:"—"})}function v({row:a}){let d=(0,e.useRouter)(),{session:f,briefSummary:h,outcome:p,latestLocalDay:q,enrichmentStatus:s}=a,t=f.totalUsage.input+f.totalUsage.output+f.totalUsage.cacheRead+f.totalUsage.cacheWrite,u=!p&&s&&"skipped_trivial"!==s&&q,x=h??f.firstUserPreview??"",y=!h;return(0,b.jsxs)(c.default,{href:`/sessions/${f.id}`,className:"af-card",style:{display:"flex",flexDirection:"column",gap:10,padding:"14px 16px"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,b.jsxs)("div",{style:{fontSize:11,color:"var(--af-text-tertiary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:6,minWidth:0},title:f.projectName,children:[(0,b.jsx)(m.LiveBadge,{mtimeIso:f.lastTimestamp,activityMs:f.lastActivityMs}),(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,g.prettyProjectName)(f.projectName)}),(0,b.jsx)(n.TeamBadge,{session:f,linkable:!1}),(0,b.jsx)(o.AgentBadge,{agent:f.agent})]}),(0,b.jsx)("div",{style:{fontSize:10,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)",flexShrink:0},suppressHydrationWarning:!0,children:f.firstTimestamp?(0,g.formatRelative)(f.firstTimestamp):"—"})]}),(p||u)&&(0,b.jsx)("div",{onClick:a=>a.stopPropagation(),children:p?(0,b.jsx)(r.OutcomePill,{outcome:p,size:"md",agent:f.agent}):u?(0,b.jsx)("span",{role:"link",tabIndex:0,title:`Generate ${q} digest →`,onClick:a=>{a.preventDefault(),a.stopPropagation(),d.push(`/digest/${q}`)},onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),a.stopPropagation(),d.push(`/digest/${q}`))},style:{cursor:"pointer",display:"inline-flex"},children:(0,b.jsx)(r.OutcomePill,{outcome:null,pending:!0,sessionId:f.id,localDay:q,size:"md",agent:f.agent,noLink:!0})}):null}),(0,b.jsx)("div",{style:{fontSize:13,color:y?"var(--af-text-secondary)":"var(--af-text)",fontStyle:y?"italic":"normal",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",minHeight:36,lineHeight:1.4},title:y?`(raw user message) ${x}`:x,children:x||(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"(no user message)"})}),y&&(0,b.jsx)("div",{style:{fontSize:11.5,color:"var(--af-text-secondary)",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",lineHeight:1.4,paddingLeft:10,borderLeft:"2px solid var(--af-accent-subtle)"},title:f.lastAgentPreview,children:f.lastAgentPreview||(0,b.jsx)("em",{style:{color:"var(--af-text-tertiary)"},children:"—"})}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,fontSize:10.5,color:"var(--af-text-tertiary)",paddingTop:8,borderTop:"1px solid var(--af-border-subtle)",fontFamily:"var(--font-mono)"},children:[(0,b.jsx)(w,{icon:(0,b.jsx)(j,{size:11}),label:`${f.turnCount??0} turn${1===f.turnCount?"":"s"}`}),(0,b.jsx)(w,{icon:(0,b.jsx)(i.Wrench,{size:11}),label:`${f.toolCallCount??0} tools`}),(f.spawnedAgentCount??0)>0&&(0,b.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"#EA580C",fontWeight:600},title:`${f.workflowCount} workflow${1===f.workflowCount?"":"s"} spawned ${f.spawnedAgentCount} agents`,children:[(0,b.jsx)(l.Workflow,{size:11}),f.spawnedAgentCount," agents"]}),(0,b.jsx)(w,{icon:(0,b.jsx)(k.Clock,{size:11}),label:(0,g.formatDuration)(f.airTimeMs??f.durationMs)}),(0,b.jsx)("span",{style:{marginLeft:"auto"},children:(0,g.formatTokens)(t)})]})]})}function w({icon:a,label:c}){return(0,b.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[a,c]})}a.s(["SessionsGrid",0,function({rows:a}){var c;let i=(0,e.useRouter)(),j=(0,e.usePathname)(),k=(0,e.useSearchParams)(),l=k.get("q")??"",m=k.get("project")??"all",n=k.get("agent"),o=(0,f.isAgentKind)(n)?n:"all",u=null!=(c=k.get("sort"))&&s.includes(c)?k.get("sort"):"newest",{mode:w,toggle:x}=(0,q.useViewToggle)("cclens:sessions:view"),y=(0,d.useCallback)((a,b,c)=>{let d=new URLSearchParams(k.toString());b&&b!==c?d.set(a,b):d.delete(a);let e=d.toString();i.replace(e?`${j}?${e}`:j,{scroll:!1})},[j,i,k]),z=(0,d.useMemo)(()=>["all",...Array.from(new Set(a.map(a=>a.session.projectName))).sort()],[a]),A=(0,d.useMemo)(()=>{let b=new Map;for(let c of a){let a=c.session.agent??"claude-code";b.set(a,(b.get(a)??0)+1)}return Array.from(b.entries()).sort((a,b)=>b[1]-a[1])},[a]),B=(0,d.useMemo)(()=>{let b=a.slice();if("all"!==m&&(b=b.filter(a=>a.session.projectName===m)),"all"!==o&&(b=b.filter(a=>(a.session.agent??"claude-code")===o)),l){let a=l.toLowerCase();b=b.filter(({session:b,briefSummary:c})=>b.id.toLowerCase().includes(a)||(c??"").toLowerCase().includes(a)||(b.firstUserPreview??"").toLowerCase().includes(a)||(b.lastAgentPreview??"").toLowerCase().includes(a)||b.projectName.toLowerCase().includes(a))}return"newest"===u?b.sort((a,b)=>(b.session.firstTimestamp?Date.parse(b.session.firstTimestamp):0)-(a.session.firstTimestamp?Date.parse(a.session.firstTimestamp):0)):"longest"===u?b.sort((a,b)=>(b.session.airTimeMs??b.session.durationMs??0)-(a.session.airTimeMs??a.session.durationMs??0)):"most-tokens"===u?b.sort((a,b)=>b.session.totalUsage.input+b.session.totalUsage.output+b.session.totalUsage.cacheRead-(a.session.totalUsage.input+a.session.totalUsage.output+a.session.totalUsage.cacheRead)):"outcome"===u&&b.sort((a,b)=>(0,r.outcomePriority)(b.outcome)-(0,r.outcomePriority)(a.outcome)),b},[a,m,o,l,u]);return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{display:"flex",gap:10,marginBottom:16,flexWrap:"wrap",alignItems:"center"},children:[(0,b.jsxs)("div",{style:{position:"relative",flex:1,minWidth:260,maxWidth:480},children:[(0,b.jsx)(h.Search,{size:13,color:"var(--af-text-tertiary)",style:{position:"absolute",left:12,top:"50%",transform:"translateY(-50%)"}}),(0,b.jsx)("input",{type:"text",placeholder:"Search by message, project, or ID",value:l,onChange:a=>y("q",a.target.value,""),style:{width:"100%",paddingLeft:32}})]}),(0,b.jsx)("select",{value:m,onChange:a=>y("project",a.target.value,"all"),style:{maxWidth:260},children:z.map(a=>(0,b.jsx)("option",{value:a,children:"all"===a?"All projects":(0,g.prettyProjectName)(a)},a))}),A.length>1&&(0,b.jsxs)("select",{value:o,onChange:a=>y("agent",a.target.value,"all"),title:"Filter by source agent",children:[(0,b.jsx)("option",{value:"all",children:"All agents"}),A.map(([a,c])=>{var d;return(0,b.jsxs)("option",{value:a,children:[(d=a,(0,f.getAgentMetadata)(d)?.displayName??d)," (",c,")"]},a)})]}),(0,b.jsxs)("select",{value:u,onChange:a=>y("sort",a.target.value,"newest"),children:[(0,b.jsx)("option",{value:"newest",children:"Newest"}),(0,b.jsx)("option",{value:"longest",children:"Longest"}),(0,b.jsx)("option",{value:"most-tokens",children:"Most tokens"}),(0,b.jsx)("option",{value:"outcome",children:"Outcome"})]}),(0,b.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--af-text-tertiary)",fontFamily:"var(--font-mono)"},children:B.length}),x]}),0===B.length?(0,b.jsx)("div",{className:"af-empty",children:"No sessions found."}):"table"===w?(0,b.jsx)(p.DataTable,{rows:B,getRowKey:a=>`${a.session.projectDir}/${a.session.id}`,onRowClick:a=>i.push(`/sessions/${a.session.id}`),defaultSortKey:"lastActive",defaultSortDir:"desc",columns:t}):(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(360px, 1fr))",gap:14},children:B.map(a=>(0,b.jsx)(v,{row:a},`${a.session.projectDir}/${a.session.id}`))})]})}],23426)}];
|
|
7
|
-
|
|
8
|
-
//# sourceMappingURL=_0w.cv64._.js.map
|