@tasselx/pi-web 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +14 -12
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +1 -1
- package/.next/react-loadable-manifest.json +2 -2
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +12 -0
- package/.next/server/app/_global-error/page.js +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +4 -4
- package/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/lease/route.js +1 -1
- package/.next/server/app/api/agent/[id]/lease/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/running/route.js +1 -1
- package/.next/server/app/api/agent/running/route.js.nft.json +1 -1
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/cache-miss-notices/route.js +1 -1
- package/.next/server/app/api/cwd/browse/route.js +1 -1
- package/.next/server/app/api/cwd/pick/route.js +1 -0
- package/.next/server/app/api/cwd/pick/route.js.nft.json +1 -0
- package/.next/server/app/api/cwd/pick/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/validate/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/file-index/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +1 -1
- package/.next/server/app/api/git/diff/route.js +2 -2
- package/.next/server/app/api/git/status/route.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/mcp/route.js +2 -2
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/sign-in/[flowId]/route.js +1 -1
- package/.next/server/app/api/mcp/sign-in/route.js +1 -1
- package/.next/server/app/api/mcp/sign-in/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test/route.js +1 -1
- package/.next/server/app/api/mcp/test/route.js.nft.json +1 -1
- package/.next/server/app/api/models/default/route.js +1 -1
- package/.next/server/app/api/models/enabled/route.js +1 -1
- package/.next/server/app/api/models/refresh/route.js +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models-config/catalog/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/open-in-explorer/route.js +1 -1
- package/.next/server/app/api/plugins/check/route.js +1 -1
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/plugins/route.js.nft.json +1 -1
- package/.next/server/app/api/project-trust/route.js +1 -1
- package/.next/server/app/api/project-trust/route.js.nft.json +1 -1
- package/.next/server/app/api/provider-usage/query/route.js +1 -1
- package/.next/server/app/api/push/config/route.js +1 -1
- package/.next/server/app/api/push/subscribe/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/fork/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/delete/route.js +1 -1
- package/.next/server/app/api/sessions/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/search/route.js +1 -1
- package/.next/server/app/api/sessions/stats/route.js +1 -1
- package/.next/server/app/api/sessions/stats/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/ui-state/route.js +1 -1
- package/.next/server/app/api/skills/check/route.js +1 -1
- package/.next/server/app/api/skills/content/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/update/route.js +1 -1
- package/.next/server/app/api/sleep-inhibit/route.js +1 -0
- package/.next/server/app/api/sleep-inhibit/route.js.nft.json +1 -0
- package/.next/server/app/api/sleep-inhibit/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/subagents/[id]/route.js +1 -1
- package/.next/server/app/api/subagents/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/subagents/profiles/route.js +1 -1
- package/.next/server/app/api/subagents/settings/route.js +1 -1
- package/.next/server/app/api/terminal/[id]/events/route.js +2 -2
- package/.next/server/app/api/terminal/[id]/route.js +1 -1
- package/.next/server/app/api/terminal/route.js +1 -1
- package/.next/server/app/api/tools/settings/route.js +1 -1
- package/.next/server/app/api/web-auth/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +9 -9
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -9
- package/.next/server/app/index.segments/_full.segment.rsc +9 -9
- package/.next/server/app/index.segments/_tree.segment.rsc +4 -4
- package/.next/server/app/login/page.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +5 -5
- package/.next/server/app/login.segments/_full.segment.rsc +5 -5
- package/.next/server/app/login.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
- package/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/.next/server/app/page.js +134 -82
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +14 -12
- package/.next/server/chunks/2243.js +1 -1
- package/.next/server/chunks/2650.js +1 -0
- package/.next/server/chunks/4315.js +2 -2
- package/.next/server/chunks/6216.js +6 -0
- package/.next/server/chunks/6429.js +2 -2
- package/.next/server/chunks/7979.js +1 -1
- package/.next/server/chunks/9165.js +1 -1
- package/.next/server/functions-config-manifest.json +1 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/1278-acbd0cb712f7f8f0.js +1 -0
- package/.next/static/chunks/7379.f16ffe41e8afa0ef.js +3 -0
- package/.next/static/chunks/app/_global-error/page-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/lease/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/app-update/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/cache-miss-notices/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/cwd/pick/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/home/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/mcp/sign-in/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/mcp/test/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/models/default/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/models/enabled/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/models/refresh/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/models/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/open-in-explorer/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/plugins/check/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/provider-usage/query/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/push/config/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/push/subscribe/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/fork/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/delete/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/stats/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sessions/ui-state/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/skills/content/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/skills/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/sleep-inhibit/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/subagents/[id]/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/subagents/profiles/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/subagents/settings/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/events/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/terminal/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/tools/settings/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/web-auth/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/{layout-4fac0a406b05e28e.js → layout-fba9ec844c19ded5.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/app/page-020b7792f47e61a6.js +338 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a509ce75fed6d8b0.js +1 -0
- package/.next/static/chunks/{webpack-b3e6fd1801874f85.js → webpack-10ae3428600991e0.js} +1 -1
- package/.next/static/css/{ad96e794a9954323.css → bf4305e2891fcef1.css} +1 -1
- package/.next/static/css/{2c3ed27b408ff881.css → dac4513c1f26d498.css} +1 -1
- package/.next/static/css/dc78b381ecea7676.css +1 -0
- package/.next/static/css/e423cf64c3a31a65.css +1 -0
- package/.next/static/d8QChh2wYaULqtNavrBMx/_buildManifest.js +1 -0
- package/.next/trace +59 -178
- package/.next/trace-build +1 -1
- package/.next/types/app/api/cwd/pick/route.ts +355 -0
- package/.next/types/app/api/sleep-inhibit/route.ts +355 -0
- package/.next/types/routes.d.ts +3 -1
- package/.next/types/validator.ts +20 -0
- package/README.md +1 -0
- package/package.json +1 -1
- package/.next/server/chunks/4698.js +0 -1
- package/.next/static/chunks/1278-04df33c86a8cedbb.js +0 -1
- package/.next/static/chunks/7379.49eae68e886f95ce.js +0 -3
- package/.next/static/chunks/app/_global-error/page-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/events/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/lease/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/agent/running/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/app-update/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/cache-miss-notices/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/cwd/browse/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/cwd/validate/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/file-index/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/home/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/mcp/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/mcp/sign-in/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/mcp/test/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models/default/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models/enabled/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models/refresh/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models-config/catalog/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models-config/discover/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/open-in-explorer/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/plugins/check/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/plugins/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/project-trust/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/provider-usage/query/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/push/config/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/push/subscribe/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/export/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/fork/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/state/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/delete/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/search/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/stats/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/ui-state/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/skills/check/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/skills/content/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/skills/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/skills/update/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/subagents/[id]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/subagents/profiles/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/subagents/settings/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/events/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/terminal/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/tools/settings/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/web-auth/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/page-55d6c63b3fad59ba.js +0 -286
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-cbe4231fb889bdce.js +0 -1
- package/.next/static/css/2e00ddf94db0ac93.css +0 -1
- package/.next/static/css/992381f1f993c50d.css +0 -1
- package/.next/static/kGHKpcRcJUSY2DuTSILsx/_buildManifest.js +0 -1
- /package/.next/static/{kGHKpcRcJUSY2DuTSILsx → d8QChh2wYaULqtNavrBMx}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=2650,exports.ids=[2650],exports.modules={2650:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{B6:()=>C,Db:()=>z,Lx:()=>G,M7:()=>A,Vq:()=>w,W3:()=>s,cu:()=>m,kE:()=>t,n7:()=>B,t1:()=>q});var e=c(76760),f=c(75430),g=c(99999),h=c(43084),i=c(49507),j=c(72498),k=c(37431),l=a([f,g,h,i,j]);[f,g,h,i,j]=l.then?(await l)():l;let C="PI_WEB_DISABLE_MCP";function m(a=process.env){let b=a[C]?.trim().toLowerCase();return void 0!==b&&""!==b&&"0"!==b&&"false"!==b}async function n(){let a;if(await (0,f.createCodemodeExtension)({models:!1})({registerTool:b=>{a=b},getSettings:()=>({}),getAllTools:()=>[],appendEntry:()=>{}}),!a)throw Error("the codemode extension registered no tool");return a}async function o(a={}){let b,c=a.timeoutMs??1e4,d=new AbortController,e=new Promise((a,e)=>{b=setTimeout(()=>{d.abort(),e(Error(`the sandbox did not answer within ${c} ms`))},c),b.unref?.()});try{let b=(async()=>{let b=await (a.createDefinition??n)();return await b.execute("pi-web-self-test",{code:"return 6 * 7"},d.signal,void 0,void 0)})();b.catch(()=>{});let c=await Promise.race([b,e]),f=(c.content??[]).flatMap(a=>"text"===a.type&&void 0!==a.text?[a.text]:[]);if(c.isError)return{available:!1,reason:`the self-test script failed: ${f.join(" ").trim()||"no output"}`};if(!f.some(a=>"42"===a.trim()))return{available:!1,reason:`the self-test script returned ${JSON.stringify(f.join(" ").trim())}`};return{available:!0}}catch(a){return{available:!1,reason:a instanceof Error?a.message:String(a)}}finally{clearTimeout(b)}}let D=Symbol.for("pi-web.codemodeSandbox");function p(){let a=globalThis;return a[D]??=o().then(a=>(a.available||console.warn(`[pi-web] Code mode is off: ${a.reason}`),a))}let E=Symbol("not settled");async function q(){let a=globalThis[D];if(!a)return{checked:!1};let b=await Promise.race([a,Promise.resolve(E)]);return b===E?{checked:!1}:{checked:!0,...b}}let F=Symbol.for("pi-web.mcpOffWarned");async function r(){let a=function(a,b=process.env){return m(b)?{available:!1,reason:`${C} is set`}:a.ok?{available:!0,internals:a}:{available:!1,reason:a.reason}}(await (0,i.U)()),b=globalThis;return a.available||m()||b[F]===a.reason||(b[F]=a.reason,console.warn(`[pi-web] MCP is off: ${a.reason}`)),a}let G=["codemode","tool-search","mcp"];function s(a){return"string"==typeof a&&G.includes(a)}function t(a,b,c){let d=`builtin:${b}`;return[...a.filter(a=>(/^[!+-]/.test(a)?a.slice(1):a)!==d),`${c?"+":"-"}${d}`]}function u(a,b){let c,d=(0,k.y)(a,b);if(void 0===d)return;try{c=JSON.parse(65279===d.charCodeAt(0)?d.slice(1):d)}catch{return}let e="object"==typeof c&&null!==c?c.extensions:void 0;return Array.isArray(e)?e.filter(a=>"string"==typeof a):void 0}async function v(a,b,c){let{agentDir:d,cwd:e,projectTrusted:g}=a,h=new f.DefaultPackageManager({cwd:e,agentDir:d,settingsManager:f.SettingsManager.fromStorage({withLock:(a,c)=>{let d=b[a];c(d?JSON.stringify({extensions:d}):void 0)}},{projectTrusted:g}),builtinExtensions:[...G]}),i=await h.resolve(async()=>"skip"),j={};for(let a of G){let b=i.extensions.find(b=>b.path===`builtin:${a}`),d=b?.enabled??!0;j[a]=d?{enabled:d}:{enabled:d,settingsPath:b?.metadata.scope==="project"?c.project:c.global}}return j}async function w(a){let{agentDir:b}=a,c=void 0!==a.cwd&&a.projectTrusted,d=a.cwd??b,g={global:(0,e.join)(b,"settings.json"),project:(0,e.join)(d,f.CONFIG_DIR_NAME,"settings.json")},h=u(g.global),i=c?u(g.project,k.T):void 0,j=await v({agentDir:b,cwd:d,projectTrusted:c},{global:h,project:i},g);if(void 0===i)return j;let l=await v({agentDir:b,cwd:d,projectTrusted:!1},{global:h},g);for(let a of G)j[a].global=l[a];return j}let H=()=>{};function x(a,b){return{name:a,factory:b,replaceable:!0,builtin:!0}}function y(a,b){let c=b.gate??((a,b)=>b),d=a.available?new g.nx({...b.mcpHost,agentDir:b.agentDir,internals:a.internals,codemodeAvailable:b.codemodeAvailable}):void 0,e=[x("tool-search",c("tool-search",(0,f.createToolSearchExtension)())),x("mcp",c("mcp",a.available&&d?(0,f.createMcpExtension)({loadConfig:function(a,b,c=a=>(0,j.n)(a,b)){return d=>{let e;try{e=a.loadMcpConfig({agentDir:b,cwd:d.cwd,projectTrusted:c(d.cwd)}).autoEnableCodemode}catch{}return{servers:[],errors:[],...void 0===e?{}:{autoEnableCodemode:e}}}}(a.internals,b.agentDir),createTransport:d.wrapTransportFactory((0,h.Pn)(a.internals)),startupWaitMs:0,openUrl:()=>{}}):H))];return d&&e.push(d.extension()),{extensions:e,mcpHost:d}}async function z(a){let b=await p();if(!b.available)throw Error(`Code mode is unavailable: ${b.reason}`);let c=(0,f.createCodemodeExtension)();return{name:"codemode",replaceable:!0,factory:async b=>{(await w({agentDir:a.agentDir,cwd:a.cwd,projectTrusted:a.projectTrusted()})).codemode.enabled&&await c(b)}}}async function A(a){return y(await r(),{agentDir:a.agentDir,codemodeAvailable:()=>a.codemode,...a.mcpHost?{mcpHost:a.mcpHost}:{},gate:(b,c)=>async d=>{(await w({agentDir:a.agentDir,cwd:a.cwd,projectTrusted:a.projectTrusted()}))[b].enabled&&await c(d)}})}async function B(a){let[b,c]=await Promise.all([p(),r()]),{extensions:d,mcpHost:e}=y(c,{agentDir:a.agentDir,codemodeAvailable:()=>b.available,...a.mcpHost?{mcpHost:a.mcpHost}:{}});return{extensions:[x("codemode",b.available?(0,f.createCodemodeExtension)():H),...d],mcpHost:e}}d()}catch(a){d(a)}})},11784:(a,b,c)=>{c.d(b,{Y:()=>e,y:()=>g});let d=/^Unexpected token '([\s\S])', ([\s\S]*) is not valid JSON$/;function e(a,b){let c,e,f,g=a instanceof Error?a.message:String(a);if(!g.includes('"'))return g;let h=d.exec(g);if(!h)return"Not valid JSON";let[,i,j]=h,k=i.charCodeAt(0),l=/[\p{L}\p{N}]/u.test(i)?"":/[\p{P}\p{S}]/u.test(i)?` '${i}'`:` U+${k.toString(16).toUpperCase().padStart(4,"0")}`,m=function(a,b,c){let d,e=c.startsWith('..."'),f=c.endsWith('"...'),g=c.slice(3*!!e,f?-3:void 0);if(g.length<2||!g.startsWith('"')||!g.endsWith('"')||!e&&!f)return;let h=g.slice(1,-1);if(e)if(f){for(d=a.indexOf(h);d>=0&&a[d+10]!==b;)d=a.indexOf(h,d+1);if(d<0)return;d+=10}else{if(!a.endsWith(h))return;d=a.length-h.length+10}else{if(!a.startsWith(h))return;d=h.length-10}return a[d]===b?d:void 0}(b,i,j);return`Unexpected token${l} in JSON${void 0===m?"":` ${e=(c=b.slice(0,m)).split("\n").length,f=m-c.lastIndexOf("\n"),`at position ${m} (line ${e} column ${f})`}`}`}let f=/is not valid JSON$/;function g(a,b){let c=b.map(a=>`${a}: `).find(b=>a.startsWith(b))??"",d=a.slice(c.length);return f.test(d)?`${c}${e(d,"")}`:a}},37431:(a,b,c)=>{c.d(b,{T:()=>f,y:()=>g});var d=c(73024);let e=d.constants.O_RDONLY|(d.constants.O_NONBLOCK||0),f=1048576;function g(a,b){let c;try{c=(0,d.openSync)(a,e)}catch(b){let a;if("ENOENT"===(a=b?.code)||"ENOTDIR"===a)return;throw b}try{let e=(0,d.fstatSync)(c);if(!e.isFile())throw Error(`${a} is not a regular file`);if(void 0===b)return(0,d.readFileSync)(c,"utf8");if(e.size>b)throw Error(`${a} is larger than ${b} bytes`);let f=b+1,g=[],h=0;for(;h<f;){let a=Buffer.alloc(Math.min(f-h,65536)),b=(0,d.readSync)(c,a,0,a.length,null);if(0===b)break;g.push(a.subarray(0,b)),h+=b}if(h>b)throw Error(`${a} is larger than ${b} bytes`);return Buffer.concat(g,h).toString("utf8")}finally{(0,d.closeSync)(c)}}},44088:(a,b,c)=>{c.d(b,{Ai:()=>g,Ll:()=>e,pM:()=>d,zT:()=>f});let d="builtin:mcp";function e(a){return"mcp"===a.name&&a.sourceInfo?.path===d}function f(a){return"prompt"!==a.source&&("mcp"===a.name||/^mcp:\d+$/.test(a.name))}function g(a,b){if(!a.startsWith("/"))return"wait";let c=a.indexOf(" "),d=-1===c?a.slice(1):a.slice(1,c),f=b.find(a=>a.name===d);return f?e(f)?"register":"none":"wait"}},49507:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{U:()=>p});var e=c(75430),f=c(73024),g=c(98995),h=c(76760),i=c(73136),j=a([e]);e=(j.then?(await j)():j)[0];let q="@earendil-works/pi-coding-agent",r="@earendil-works/pi-mcp",s={mcpExtension:"dist/extensions/mcp/index.js",mcpRuntime:"dist/extensions/mcp/runtime.js",mcpConfig:"dist/extensions/mcp/config.js",mcpOAuth:"dist/extensions/mcp/oauth.js",mcpServers:"dist/core/mcp-servers.js",configValues:"dist/core/resolve-config-value.js"},t={McpServerConnection:{module:"mcpRuntime",kind:"class"},createDefaultTransport:{module:"mcpRuntime",kind:"function"},StdioTransport:{module:"mcpClient",kind:"class"},loadMcpConfig:{module:"mcpConfig",kind:"function"},addMcpServerConfig:{module:"mcpConfig",kind:"function"},updateMcpServerConfig:{module:"mcpConfig",kind:"function"},removeMcpServerConfig:{module:"mcpConfig",kind:"function"},validateMcpServerConfig:{module:"mcpServers",kind:"function"},getMcpToolExposure:{module:"mcpServers",kind:"function"},signInMcpServer:{module:"mcpOAuth",kind:"function"},McpOAuthCredentialStore:{module:"mcpOAuth",kind:"class"},McpSignInCancelledError:{module:"mcpOAuth",kind:"class"},resolveConfigValueOrThrow:{module:"configValues",kind:"function"},resolveHeadersOrThrow:{module:"configValues",kind:"function"},getConfigValueEnvVarNames:{module:"configValues",kind:"function"},isCommandConfigValue:{module:"configValues",kind:"function"}};function k(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function l(a){return a instanceof Error?a.message:String(a)}async function m(a){return await import((0,i.pathToFileURL)(a).href)}let u=new Set(["node","import","module-sync","node-addons","default"]);async function n(a){let b=Object.fromEntries(Object.entries(s).map(([b,c])=>[b,(0,h.join)(a,c)]));try{b.mcpClient=function(a){let b=(0,i.pathToFileURL)((0,h.join)(a,s.mcpRuntime)).href,c=(0,g.findPackageJSON)(r,b);if(!c)throw Error(`cannot resolve ${r}`);let d=function(a){if(!k(a))return;let{exports:b}=a;return void 0===b?"string"==typeof a.main?a.main:"index.js":function a(b){if("string"==typeof b||null===b)return b;for(let c of Array.isArray(b)?b:k(b)?Object.entries(b).filter(([a])=>u.has(a)).map(([,a])=>a):[]){let b=a(c);if(void 0!==b)return b}}(k(b)&&"."in b?b["."]:b)??void 0}(JSON.parse((0,f.readFileSync)(c,"utf8")));if(!d)throw Error(`${c} declares no import entry`);return(0,h.join)(c,"..",d)}(a)}catch(a){return`${r}: ${l(a)}`}let c={};for(let[a,d]of Object.entries(b))try{c[a]=await m(d)}catch(a){return`cannot load ${d}: ${l(a)}`}return c}async function o(a={}){var b;let c,{environment:d=process.env,cwd:j=process.cwd()}=a;if(d.PI_PACKAGE_DIR)return{ok:!1,reason:`PI_PACKAGE_DIR is set; MCP support loads only from the ${q} that Pi Web runs`};try{c=(0,f.realpathSync)((0,e.getPackageDir)());let a=function(a){let b=(0,g.findPackageJSON)(q,(0,i.pathToFileURL)((0,h.join)(a,"package.json")).href);if(!b)throw Error(`cannot resolve ${q} from ${a}`);return(0,f.realpathSync)((0,h.join)(b,".."))}(j);if(b=c,"win32"===process.platform?b.toLowerCase()!==a.toLowerCase():b!==a)return{ok:!1,reason:`${q} at ${c} is not the package Pi Web resolves (${a})`}}catch(a){return{ok:!1,reason:`cannot locate ${q}: ${l(a)}`}}let k=await n(c);if("string"==typeof k)return{ok:!1,reason:k};if(k.mcpExtension.createMcpExtension!==e.createMcpExtension)return{ok:!1,reason:`${s.mcpExtension} loaded as a second copy of ${q}`};let m=function(a){let b={};for(let[c,{module:d,kind:e}]of Object.entries(t)){let f=a[d][c];if("class"===e?!("function"==typeof f&&/^class[\s{]/.test(Function.prototype.toString.call(f))):"function"!=typeof f){let a="mcpClient"===d?r:s[d];return`${a} does not export ${c} as a ${e}`}b[c]=f}return b}(k);if("string"==typeof m)return{ok:!1,reason:m};let p={packageDir:c,...m};try{if(!(p.createDefaultTransport({name:"pi-web-probe",config:{command:"pi-web-probe"},source:"pi-web"},p.packageDir,void 0)instanceof p.StdioTransport))return{ok:!1,reason:`${r} resolved to another copy than ${s.mcpRuntime} uses`}}catch(a){return{ok:!1,reason:`${s.mcpRuntime}: ${l(a)}`}}return{ok:!0,...p}}let v=Symbol.for("pi-web.piSdkInternals");function p(){let a=globalThis;return a[v]??=o().catch(a=>({ok:!1,reason:l(a)}))}d()}catch(a){d(a)}})},76609:(a,b,c)=>{c.d(b,{U2:()=>i,dj:()=>f,qu:()=>h});var d=c(77598);function e(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function f(a,b=0){return Array.isArray(a)||e(a)?b>=64?"<too deep>":Array.isArray(a)?`[${a.map(a=>f(a,b+1)).join(",")}]`:`{${Object.keys(a).sort().map(c=>`${JSON.stringify(c)}:${f(a[c],b+1)}`).join(",")}}`:JSON.stringify(a)??"null"}let g=Symbol.for("pi-web:mcp-config-key-secret");function h(a){let b=globalThis,c=b[g]??=(0,d.randomBytes)(32);return(0,d.createHmac)("sha256",c).update(f(a)).digest("base64url")}function i(a,b){return h(e(b)?b:a)}},85825:(a,b,c)=>{c.d(b,{lW:()=>d,vN:()=>e,vR:()=>f});let d=["enabled","exposure","toolExposure"];function e(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)&&void 0===a.command&&void 0===a.url&&void 0===a.type}function f(a,b,c){return c?Object.keys(b).some(a=>!d.includes(a))?`server "${a}": an override can only set ${d.join(", ")}`:void 0:`server "${a}" needs "command" or "url", or a global server to override`}},99999:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{nx:()=>D});var e=c(73024),f=c(76760),g=c(75430),h=c(44088),i=c(76609),j=c(11784),k=c(85825),l=c(66479),m=c(23757),n=c(82536),o=c(72498),p=a([g,m,o]);[g,m,o]=p.then?(await p)():p;let w=new Set(["tools/list"]);function q(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function r(a){return a instanceof Error?a.message:String(a)}let x=Symbol.for("pi-web:mcp-config-errors-logged");function s(a){let b=globalThis,c=b[x]??=new Set;c.has(a)||(c.size>=200&&c.delete(c.values().next().value),c.add(a),console.warn(`[pi-web] MCP config: ${a}`))}let y=e.constants.O_RDONLY|(e.constants.O_NONBLOCK||0)|(e.constants.O_NOFOLLOW||0);function t(a){return a instanceof Error?a.name:void 0}let z={connecting:"connecting",ready:"connected",failed:"failed","needs-auth":"needs-auth",disconnected:"disconnected"};class A{constructor(a,b,c,d){this.configKey=a,this.scope=b,this.target=c,this.started=!1,this.settled=!1,this.waited=!1,this.released=!1,this.state="connecting",this.startedListeners=new Set,this.settledListeners=new Set,this.declaresTools=(d.exposure??"codemode")==="direct"||Object.values(d.toolExposure??{}).includes("direct")}markStarted(){if(!this.started){for(let a of(this.started=!0,this.startedListeners))a();this.startedListeners.clear()}}update(a,b={}){if(this.state=a,this.error=b.error,this.stderr=b.stderr,"connecting"!==a&&!this.settled){for(let a of(this.settled=!0,this.markStarted(),this.settledListeners))a();this.settledListeners.clear()}}whenStarted(){return this.started?Promise.resolve():new Promise(a=>this.startedListeners.add(a))}whenSettled(){return this.settled?Promise.resolve():new Promise(a=>this.settledListeners.add(a))}}let B=/is already registered by extension "(.+)"$/;function u(a){try{return a.sessionManager?.getSessionId()??""}catch{return""}}function v(a){let b;return{promise:new Promise(c=>{b=setTimeout(c,a),b.unref?.()}),cancel:()=>clearTimeout(b)}}class C{constructor(a,b){this.pi=a,this.options=b,this.active=!1,this.disposed=!1,this.attempts=new Map,this.abandoned=new Map,this.problems=new Map,this.problemReports=new Map,this.queue=Promise.resolve(),this.runActive=!1,this.preparing=0,this.isCommandValue=a=>this.options.internals.isCommandConfigValue?.(a)??a.startsWith("!"),a.on("session_start",(b,c)=>{if(this.disposed)return;this.ctx=c;let d=a.getCommands().filter(h.zT);this.active=d.some(h.Ll),this.reportActivity(c,this.active?void 0:d[0]?.sourceInfo?.path)}),a.on("before_agent_start",()=>{this.clearIdle(),this.sync()}),a.on("agent_start",()=>{this.runActive=!0,this.clearIdle()}),a.on("agent_end",()=>{this.runActive=!1,this.armIdle()}),a.on("session_shutdown",()=>{this.dispose()})}attemptFor(a){let b=this.attempts.get(a.name);return b&&!b.released&&b.configKey===(0,i.dj)(a.config)?b:void 0}refuseAbandoned(a){let b=`${a.name}\0${(0,i.dj)(a.config)}`,c=this.abandoned.get(b);return!!c&&(c>1?this.abandoned.set(b,c-1):this.abandoned.delete(b),console.warn(`[pi-web] MCP server "${a.name}" was unregistered before its connection opened; its transport is refused`),!0)}transportFailed(a,b,c){a.current=void 0;let d=(0,m.fR)(b.config,[],{isCommandConfigValue:this.isCommandValue});this.update(a,"failed",{error:(0,m.lL)(r(c),d)})}watch(a,b,c,d){let e;a.markStarted(),a.current=c,this.update(a,"connecting");let f=a=>(e??=(0,m.fR)(b.config,[c],{isCommandConfigValue:this.isCommandValue}))(a),g=a=>void 0===a?{}:{stderr:(0,m.zE)(a,f)};!function(a,b,c){var d;let e,f,g,h,i,j,k,l,m,n,o=!1,p=!1,r=!1,s=a=>{let c;"McpOAuthAuthorizationRequiredError"===(c=t(a))||b&&"McpAuthRequiredError"===c?p=!0:void 0===m&&"McpConnectionClosedError"!==t(a)&&(m=a)},u=()=>{let b="string"==typeof a.stderr?a.stderr.trim():"";return b?{stderr:b}:{}};if(d=a=>{"ready"===a?(o=!0,c({type:"ready"})):c({type:"failed",authRequired:p,...void 0===m?{}:{error:m},...u()})},f=!1,g=!1,h=0,i=new Set,j=a=>{f||(f=!0,d(a))},k=()=>{setImmediate(()=>{f||!g||void 0===e||i.size>0||e&&0===h||j("ready")})},l=a.send.bind(a),a.send=a=>(q(a)&&"string"==typeof a.method&&(void 0!==a.id&&w.has(a.method)?(i.add(a.id),h+=1):void 0===a.id&&"notifications/initialized"===a.method&&(g=!0,k())),l(a)),a.onMessage(a=>{if(q(a)&&void 0===a.method&&void 0!==a.id){if(void 0===e&&q(a.result)&&q(a.result.capabilities)){let{capabilities:b}=a.result;e=!!b.tools,k();return}i.delete(a.id)&&k()}}),a.onClose(()=>j("closed")),"function"==typeof a.start){let b=a.start;a.start=()=>b.call(a).catch(a=>{throw s(a),a})}let v=a.send;if(a.send=b=>(q(b)&&"initialize"===b.method&&void 0!==b.id&&(n=b.id),v.call(a,b).catch(a=>{throw s(a),a})),"function"==typeof a.close){let b=a.close;a.close=()=>(r=!0,b.call(a))}a.onMessage(a=>{void 0===m&&void 0!==n&&q(a)&&a.id===n&&q(a.error)&&"string"==typeof a.error.message&&(m=a.error.message)}),a.onClose(()=>{o&&c({type:"closed",dropped:!r,authRequired:p,...u()})})}(c,d,b=>{if(a.current===c)if("ready"===b.type)this.update(a,"ready");else if("failed"===b.type)if(b.authRequired)this.update(a,"needs-auth");else{let c=void 0===b.error?"The connection closed before the server was ready":r(b.error);this.update(a,"failed",{error:(0,m.lL)(c,f),...g(b.stderr)})}else b.authRequired?this.update(a,"needs-auth"):b.dropped&&this.update(a,"disconnected",g(b.stderr))})}sync(){let a=this.enqueue(async()=>{if(!this.active||!this.ctx)return;let a=this.desiredServers(this.ctx);for(let[b,c]of[...this.attempts]){let d=a.get(b);d&&(0,i.dj)(d.config)===c.configKey||await this.unregister(b)}for(let[b,c]of a)this.attempts.has(b)||this.register(b,c);this.reportProblems()});return a.then(()=>this.armIdle()),a}async prepareForPrompt(a,b){this.clearIdle(),this.runActive=!1,this.preparing+=1;try{await this.waitForServers(a,b)}finally{this.preparing-=1,this.armIdle()}}async waitForServers(a,b){let c=a.aborted?Promise.resolve():new Promise(b=>a.addEventListener("abort",()=>b(),{once:!0}));if(await Promise.race([this.sync(),c]),a.aborted||!b)return;let d=[...this.attempts.values()].filter(a=>a.declaresTools&&!a.settled&&!a.waited);if(0===d.length)return;let e=v(this.options.promptWaitMs),f=await Promise.race([Promise.all(d.map(a=>a.whenSettled())).then(()=>!1),e.promise.then(()=>!0),c.then(()=>!1)]);if(e.cancel(),f)for(let a of d)a.waited=!0}serverStates(){let a=[...this.problems.values()].map(a=>a.status);for(let[b,c]of this.attempts)a.push({name:b,scope:c.scope,state:c.state,...c.error?{error:c.error}:{},...c.stderr?{stderr:c.stderr}:{}});return a.sort((a,b)=>a.name.localeCompare(b.name)||a.scope.localeCompare(b.scope))}release(){return this.enqueue(async()=>{for(let a of[...this.attempts.keys()])await this.unregister(a)})}dispose(){this.disposed=!0,this.active=!1,this.clearIdle(),this.letGoOfAll(),this.reportActivity(void 0,void 0)}entryConfigKey(a,b){return(0,i.U2)(b,this.options.internals.validateMcpServerConfig?.(a,b))}projectEntryConfigKey(a,b,c){return q(b)&&(0,k.vN)(b)&&void 0===(0,k.vR)(a,b,void 0!==c)?this.entryConfigKey(a,{...c,...b}):this.entryConfigKey(a,b)}write(a,b){let c=this.ctx;if(!c)return;let d={origin:"session",state:b.state,sessionId:u(c),cwd:c.cwd,updatedAt:Date.now(),...b.error?{error:b.error}:{},...b.stderr?{stderr:b.stderr}:{},...b.conflict?{conflict:b.conflict}:{}};return(0,l.kY)(a,a.configKey,d),d}update(a,b,c={}){a.update(b,c),a.released||(a.recorded=this.write(a.target,{state:z[b],...c}))}letGo(a){a.released=!0;let{target:b,recorded:c}=a;c&&("connecting"===a.state?(0,l.My)(b,b.configKey,c):"ready"===a.state&&(0,l.vU)(b,b.configKey,c,{...c,closedAt:Date.now()}))}letGoOfAll(){for(let a of this.attempts.values())this.letGo(a);for(let{target:a,status:b}of this.problemReports.values())(0,l.My)(a,a.configKey,b);this.problemReports.clear()}reportProblems(){let a=new Set;for(let{target:b,report:c}of this.problems.values()){let d=(0,l.wf)(b);a.add(d);let e=[b.configKey,c.state,c.conflict??"",c.error??""].join("\0"),f=this.problemReports.get(d);if(f?.signature===e&&(0,l.Wu)(b,b.configKey,f.status))continue;let g=this.write(b,c);g&&this.problemReports.set(d,{signature:e,target:b,status:g})}for(let b of[...this.problemReports.keys()])a.has(b)||this.problemReports.delete(b)}reportActivity(a,b){if(this.inactiveReport&&(0,l.jQ)(this.inactiveReport.sessionId,this.inactiveReport.info),this.inactiveReport=void 0,!a)return;let c=u(a);if(!b)return void(0,l.jQ)(c);let d={owner:b,cwd:a.cwd,updatedAt:Date.now()};(0,l.Te)(c,d),this.inactiveReport={sessionId:c,info:d}}enqueue(a){let b=this.queue.then(a);return this.queue=b.catch(a=>{console.error("[pi-web] MCP host operation failed:",r(a))}),this.queue}desiredServers(a){let b;this.problems=new Map;let c=new Map,d=this.options.mayReadProjectConfig(a.cwd);try{b=this.options.internals.loadMcpConfig({agentDir:this.options.agentDir,cwd:a.cwd,projectTrusted:d})}catch(a){s(`cannot read mcp.json: ${r(a)}`)}let h=(0,f.join)(a.cwd,g.CONFIG_DIR_NAME,"mcp.json");if(!d){let c=function(a){let b,c=(0,f.join)(a,g.CONFIG_DIR_NAME,"mcp.json");try{if((0,n.TU)(c))return[];let d=(0,e.realpathSync)(c);if(!(0,n.o4)(d,(0,n.qy)(new Set([a]))))return[];b=(0,e.openSync)(d,y);let f=(0,e.fstatSync)(b);if(!f.isFile()||f.size>1048576)return[];let g=Buffer.alloc(f.size+1),h=0;for(;h<g.length;){let a=(0,e.readSync)(b,g,h,g.length-h,null);if(0===a)break;h+=a}if(h>f.size)return[];let i=JSON.parse(g.toString("utf8",0,h));return q(i)&&q(i.mcpServers)?Object.entries(i.mcpServers):[]}catch{return[]}finally{void 0!==b&&(0,e.closeSync)(b)}}(a.cwd),d=new Map((b?.servers??[]).map(a=>[a.name,a.config]));for(let[a,b]of c.slice(0,100))try{this.problems.set(`project\0${a}`,{status:{name:a,scope:"project",state:"not-trusted"},target:{scope:"project",sourcePath:h,name:a,configKey:this.projectEntryConfigKey(a,b,d.get(a))},report:{state:"not-trusted"}})}catch(b){s(`${h}: server "${a}" is not reported: ${r(b)}`)}c.length>100&&s(`${h}: ${c.length-100} more servers of this untrusted project are not reported`)}if(!b)return c;let k=[(0,f.join)(this.options.agentDir,"mcp.json"),h];for(let a of b.errors.slice(0,20))s((0,j.y)(a,k));for(let a of(b.errors.length>20&&s(`${b.errors.length-20} more errors in mcp.json are not logged`),b.servers)){if(!1===a.config.enabled)continue;let b=a.override,d="project"===a.scope||void 0!==b?"project":"global";try{c.set(a.name,{config:function(a,b){if(b)return a;let c=a=>"codemode"===a?"deferred":a,d=a.toolExposure?Object.fromEntries(Object.entries(a.toolExposure).map(([a,b])=>[a,c(b)])):void 0;return{...a,exposure:c(a.exposure??"codemode"),...d?{toolExposure:d}:{}}}(a.config,this.options.codemodeAvailable()),scope:d,target:{scope:d,sourcePath:b??a.source,name:a.name,configKey:(0,i.qu)(a.config)}})}catch(b){s(`${a.source}: server "${a.name}" is not connected: ${r(b)}`)}}return c}register(a,b){let{config:c,scope:d,target:e}=b,f=new A((0,i.dj)(c),d,e,c);this.attempts.set(a,f);try{this.pi.registerMcpServer(a,c)}catch(h){this.attempts.delete(a);let b=r(h),f=this.registeredOwner(a)??B.exec(b)?.[1],g=(0,m.fR)(c,[],{isCommandConfigValue:this.isCommandValue});this.problems.set(`${d}\0${a}`,{status:{name:a,scope:d,state:"not-registered",error:b,...f?{conflict:f}:{}},target:e,report:f?{state:"conflict",conflict:f}:{state:"failed",error:(0,m.lL)(b,g)}})}}registeredOwner(a){try{return this.pi.getMcpServers?.().find(b=>b.name===a)?.extensionPath}catch{return}}async unregister(a){let b=this.attempts.get(a);if(b&&!b.started){let a=v(this.options.replaceWaitMs);await Promise.race([b.whenStarted(),a.promise]),a.cancel()}if(this.attempts.delete(a),b&&!b.started){let c=`${a}\0${b.configKey}`;this.abandoned.set(c,(this.abandoned.get(c)??0)+1)}b&&this.letGo(b);try{this.pi.unregisterMcpServer(a)}catch(b){console.error(`[pi-web] cannot unregister MCP server "${a}":`,r(b))}}clearIdle(){clearTimeout(this.idleTimer),this.idleTimer=void 0}armIdle(){this.clearIdle(),this.runActive||this.preparing>0||this.options.idleMs<=0||0===this.attempts.size||(this.idleTimer=setTimeout(()=>{this.idleTimer=void 0,(!this.ctx||this.ctx.isIdle())&&this.release()},this.options.idleMs),this.idleTimer.unref?.())}}class D{constructor(a){this.options={idleMs:function(a=process.env.PI_WEB_MCP_IDLE_MS){if(void 0!==a&&""!==a.trim()){let b=Number(a);if(Number.isFinite(b)&&b>=0&&b<=0x7fffffff)return b;console.warn(`[pi-web] invalid PI_WEB_MCP_IDLE_MS "${a}", falling back to 10 minutes`)}return 6e5}(),promptWaitMs:1e4,replaceWaitMs:5e3,...a,mayReadProjectConfig:a.mayReadProjectConfig??(b=>(0,o.n)(b,a.agentDir))}}extension(){return{name:"pi-web-mcp-host",hidden:!0,factory:a=>{this.current?.dispose(),this.current=new C(a,this.options)}}}wrapTransportFactory(a){return(b,c,d)=>{let e,f=this.current,g=f?.attemptFor(b);if(!g&&f?.refuseAbandoned(b))throw Error(`MCP server "${b.name}" was removed before it connected, so Pi Web did not start it`);try{e=a(b,c,d)}catch(a){throw f&&g&&f.transportFailed(g,b,a),a}return f&&g&&f.watch(g,b,e,void 0!==d),e}}dispose(){this.current?.dispose()}prepareForPrompt(a,b={}){return this.current?.prepareForPrompt(a,b.wait??!0)??Promise.resolve()}serverStates(){return this.current?.serverStates()??[]}release(){return this.current?.release()??Promise.resolve()}}d()}catch(a){d(a)}})}};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
exports.id=4315,exports.ids=[4315],exports.modules={8870:a=>{a.exports={view:"TrajectoryView_view__GUrf7",header:"TrajectoryView_header__fec2G",spacer:"TrajectoryView_spacer__O1rIG",button:"TrajectoryView_button__hR_6b",live:"TrajectoryView_live__MwfxG",pulse:"TrajectoryView_pulse__N03Mu",stats:"TrajectoryView_stats__LaEhx",warn:"TrajectoryView_warn__C7mMJ",split:"TrajectoryView_split__dr18O",state:"TrajectoryView_state__jI1lk"}},40334:a=>{a.exports={ledger:"TrajectoryLedger_ledger__c6sFy",historyRow:"TrajectoryLedger_historyRow__QRjRS",empty:"TrajectoryLedger_empty__VHI1G",historyButton:"TrajectoryLedger_historyButton__5Xe1Y",turnHeader:"TrajectoryLedger_turnHeader__Gv5JQ",turnTitle:"TrajectoryLedger_turnTitle__yat2h",turnColumns:"TrajectoryLedger_turnColumns__0h3EA",groupHeader:"TrajectoryLedger_groupHeader__dSHhW",groupTitle:"TrajectoryLedger_groupTitle__QHUw8",groupDescription:"TrajectoryLedger_groupDescription__Nd2__",row:"TrajectoryLedger_row__nVjw3",index:"TrajectoryLedger_index__4kQmg",tagSlot:"TrajectoryLedger_tagSlot__HlXF6",tag:"TrajectoryLedger_tag____K6x",text:"TrajectoryLedger_text__OpIxh",callsToggle:"TrajectoryLedger_callsToggle__3Aa_r",placeholder:"TrajectoryLedger_placeholder__T4Wxk",metric:"TrajectoryLedger_metric__PsEz3",time:"TrajectoryLedger_time__wFMwY",pending:"TrajectoryLedger_pending__WWvN5","pending-pulse":"TrajectoryLedger_pending-pulse__KHEEX",summaryRow:"TrajectoryLedger_summaryRow__V_IUZ",summaryChevron:"TrajectoryLedger_summaryChevron__eMAsf",summaryText:"TrajectoryLedger_summaryText__qdsQs"}},46968:a=>{a.exports={root:"TrajectoryToolbar_root__GtOTS",inner:"TrajectoryToolbar_inner__lM7zw",actions:"TrajectoryToolbar_actions__Bf9cC",toggle:"TrajectoryToolbar_toggle__RmBq3",action:"TrajectoryToolbar_action__unX2V",toggleIcon:"TrajectoryToolbar_toggleIcon__sAf6W",actionIcon:"TrajectoryToolbar_actionIcon__j36ej",search:"TrajectoryToolbar_search__ZfMAe",searchIcon:"TrajectoryToolbar_searchIcon__76knz",searchInput:"TrajectoryToolbar_searchInput__kdush"}},52038:a=>{a.exports={root:"TrajectoryInspector_root__nnBir",header:"TrajectoryInspector_header__AmJeG",title:"TrajectoryInspector_title__5cFIe",titleText:"TrajectoryInspector_titleText__evidv",kind:"TrajectoryInspector_kind__3kvfu",close:"TrajectoryInspector_close__OWN7X",tab:"TrajectoryInspector_tab__p7kVy",tabs:"TrajectoryInspector_tabs__6JW_U",body:"TrajectoryInspector_body___0nOv",summary:"TrajectoryInspector_summary__Qj6Kn",preview:"TrajectoryInspector_preview__LxPJy",rawPane:"TrajectoryInspector_rawPane__AFehi",section:"TrajectoryInspector_section__kcUNP",heading:"TrajectoryInspector_heading__7_DUn",rows:"TrajectoryInspector_rows__qzhqN",row:"TrajectoryInspector_row__x_4xz",label:"TrajectoryInspector_label__hSMOY",value:"TrajectoryInspector_value__poTjm",status:"TrajectoryInspector_status__A6rZc",disclosure:"TrajectoryInspector_disclosure__k9M2Q",markdown:"TrajectoryInspector_markdown__JxsEC",note:"TrajectoryInspector_note___Z4eF",rawBar:"TrajectoryInspector_rawBar___0mqI",smallButton:"TrajectoryInspector_smallButton__aCkW_",raw:"TrajectoryInspector_raw__3uHNJ"}},64315:(a,b,c)=>{"use strict";c.r(b),c.d(b,{TrajectoryView:()=>
|
|
1
|
+
exports.id=4315,exports.ids=[4315],exports.modules={8870:a=>{a.exports={view:"TrajectoryView_view__GUrf7",header:"TrajectoryView_header__fec2G",spacer:"TrajectoryView_spacer__O1rIG",button:"TrajectoryView_button__hR_6b",live:"TrajectoryView_live__MwfxG",pulse:"TrajectoryView_pulse__N03Mu",stats:"TrajectoryView_stats__LaEhx",warn:"TrajectoryView_warn__C7mMJ",split:"TrajectoryView_split__dr18O",state:"TrajectoryView_state__jI1lk"}},40334:a=>{a.exports={ledger:"TrajectoryLedger_ledger__c6sFy",historyRow:"TrajectoryLedger_historyRow__QRjRS",empty:"TrajectoryLedger_empty__VHI1G",historyButton:"TrajectoryLedger_historyButton__5Xe1Y",turnHeader:"TrajectoryLedger_turnHeader__Gv5JQ",turnTitle:"TrajectoryLedger_turnTitle__yat2h",turnColumns:"TrajectoryLedger_turnColumns__0h3EA",groupHeader:"TrajectoryLedger_groupHeader__dSHhW",groupTitle:"TrajectoryLedger_groupTitle__QHUw8",groupDescription:"TrajectoryLedger_groupDescription__Nd2__",row:"TrajectoryLedger_row__nVjw3",index:"TrajectoryLedger_index__4kQmg",tagSlot:"TrajectoryLedger_tagSlot__HlXF6",tag:"TrajectoryLedger_tag____K6x",text:"TrajectoryLedger_text__OpIxh",callsToggle:"TrajectoryLedger_callsToggle__3Aa_r",placeholder:"TrajectoryLedger_placeholder__T4Wxk",metric:"TrajectoryLedger_metric__PsEz3",time:"TrajectoryLedger_time__wFMwY",pending:"TrajectoryLedger_pending__WWvN5","pending-pulse":"TrajectoryLedger_pending-pulse__KHEEX",summaryRow:"TrajectoryLedger_summaryRow__V_IUZ",summaryChevron:"TrajectoryLedger_summaryChevron__eMAsf",summaryText:"TrajectoryLedger_summaryText__qdsQs"}},46968:a=>{a.exports={root:"TrajectoryToolbar_root__GtOTS",inner:"TrajectoryToolbar_inner__lM7zw",actions:"TrajectoryToolbar_actions__Bf9cC",toggle:"TrajectoryToolbar_toggle__RmBq3",action:"TrajectoryToolbar_action__unX2V",toggleIcon:"TrajectoryToolbar_toggleIcon__sAf6W",actionIcon:"TrajectoryToolbar_actionIcon__j36ej",search:"TrajectoryToolbar_search__ZfMAe",searchIcon:"TrajectoryToolbar_searchIcon__76knz",searchInput:"TrajectoryToolbar_searchInput__kdush"}},52038:a=>{a.exports={root:"TrajectoryInspector_root__nnBir",header:"TrajectoryInspector_header__AmJeG",title:"TrajectoryInspector_title__5cFIe",titleText:"TrajectoryInspector_titleText__evidv",kind:"TrajectoryInspector_kind__3kvfu",close:"TrajectoryInspector_close__OWN7X",tab:"TrajectoryInspector_tab__p7kVy",tabs:"TrajectoryInspector_tabs__6JW_U",body:"TrajectoryInspector_body___0nOv",summary:"TrajectoryInspector_summary__Qj6Kn",preview:"TrajectoryInspector_preview__LxPJy",rawPane:"TrajectoryInspector_rawPane__AFehi",section:"TrajectoryInspector_section__kcUNP",heading:"TrajectoryInspector_heading__7_DUn",rows:"TrajectoryInspector_rows__qzhqN",row:"TrajectoryInspector_row__x_4xz",label:"TrajectoryInspector_label__hSMOY",value:"TrajectoryInspector_value__poTjm",status:"TrajectoryInspector_status__A6rZc",disclosure:"TrajectoryInspector_disclosure__k9M2Q",markdown:"TrajectoryInspector_markdown__JxsEC",note:"TrajectoryInspector_note___Z4eF",rawBar:"TrajectoryInspector_rawBar___0mqI",smallButton:"TrajectoryInspector_smallButton__aCkW_",raw:"TrajectoryInspector_raw__3uHNJ"}},64315:(a,b,c)=>{"use strict";c.r(b),c.d(b,{TrajectoryView:()=>af});var d=c(48249),e=c(67484),f=c(93080),g=c(71413);function h(a){if(null==a||!Number.isFinite(a))return"—";let b=Math.max(0,a);if(b<1e3)return`${Math.round(b)} ms`;if(b<1e4)return`${(b/1e3).toFixed(2)} s`;if(b<6e4)return`${(b/1e3).toFixed(1)} s`;let c=Math.round(b/1e3);return`${Math.floor(c/60)}m ${String(c%60).padStart(2,"0")}s`}function i(a){return h(null==a?null:1e3*a)}let j=["command","path","file_path","filePath","pattern","query","url","description","prompt","task","name"];function k(a){return"number"==typeof a&&Number.isFinite(a)?a:null}function l(a){if("string"==typeof a)return a;if(!Array.isArray(a))return"";let b=[];for(let c of a)c?.type==="text"&&"string"==typeof c.text?b.push(c.text):c?.type==="image"&&b.push("[image]");return b.join("\n")}function m(a,b){let c=[];for(let d of a.content??[])"text"===d.type&&"text"===b?c.push(d.text):"thinking"===d.type&&"thinking"===b&&c.push(d.thinking);return c.join("\n\n").trim()}function n(a){let b=a.slice(0,2e3).trim().replace(/\s+/g," ");return b.length>200||a.length>2e3?`${b.slice(0,200)}…`:b}function o(a){if(!a)return"";for(let b of j){let c=a[b];if("string"==typeof c&&c.trim())return c}for(let b of Object.values(a))if("string"==typeof b&&b.trim())return b;return Object.keys(a).length>0?JSON.stringify(a):""}function p(a){return`${a.cell.recordId}|${a.collapsedSummaryKind??""}`}let q={pin:null,extendUp:0};function r(a,b,c){return a(`summary.${b}.${1===c?"one":"other"}`,{count:c})}class s{update(a){if(this.turns===a)return!1;this.turns=a;let b=new Set;for(let d of a)for(let a of d.groups)for(let e of a.cells){var c;let f=(c=d.turn,[null===c?"between turns":`turn ${c}`,a.title,e.kind,"message"===e.kind?"assistant":"",e.text,e.inputDetail??"",e.outputDetail??"",e.thinkingDetail??"",e.toolName??"",e.callId??"",e.model??""]),g=this.entries.get(e.recordId),h=void 0!==g&&function(a,b){return a.length===b.length&&a.every((a,c)=>a===b[c])}(g.sources,f)?g:{sources:f,text:f.join("\n").toLocaleLowerCase()};this.entries.set(e.recordId,h),b.add(e.recordId)}for(let a of this.entries.keys())b.has(a)||this.entries.delete(a);return!0}search(a){let b=a.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);if(0===b.length)return null;let c=new Set;for(let[a,d]of this.entries)b.every(a=>d.text.includes(a))&&c.add(a);return c}constructor(){this.entries=new Map}}function t(a,b){var c;return{...b,index:a.index,isError:!0===a.isError,kind:a.kind,label:a.text,lane:"tool"===(c=a.kind)?2:+("message"===c||"compacted"===c)}}function u(a){return a.reduce((a,b)=>Math.min(a,b),1/0)}function v(a,b="sequence"){return"duration"===b?function(a){let b=a.flatMap(a=>{let b=a.groups.flatMap(a=>a.cells.flatMap(a=>{let b,c="number"==typeof(b=a.startedAt)&&Number.isFinite(b)?{start:b,end:b+("number"==typeof a.timeSeconds&&Number.isFinite(a.timeSeconds)?Math.max(0,1e3*a.timeSeconds):0)}:null;return null===c?[]:[t(a,c)]}));return 0===b.length?[]:[{turn:a.turn,rawSpans:b}]}),c=b.flatMap(a=>a.rawSpans);if(0===c.length)return null;let d=new Map,e=0,f=null;for(let a of[...c].sort((a,b)=>a.start-b.start||a.end-b.end))null!==f&&a.start>f&&(e+=a.start-f),d.set(a,e),f=null===f?a.end:Math.max(f,a.end);let g=[],h=[];for(let a of b){let b=a.rawSpans.map(a=>{let b=d.get(a)??0;return{...a,start:a.start-b,end:a.end-b}});g.push(...b),null!==a.turn&&h.push({turn:a.turn,time:u(b.map(a=>a.start))})}return{start:u(g.map(a=>a.start)),end:g.map(a=>a.end).reduce((a,b)=>Math.max(a,b),-1/0),spans:g,turnBoundaries:h}}(a):function(a){let b=[],c=[];for(let d of a){let a=d.groups.flatMap(a=>a.cells);if(0!==a.length)for(let e of(null!==d.turn&&c.push({turn:d.turn,time:b.length}),a)){let a=b.length;b.push(t(e,{start:a,end:a+1}))}}return 0===b.length?null:{start:0,end:b.length,spans:b,turnBoundaries:c}}(a)}var w=c(15398),x=c(39868),y=c(52038),z=c.n(y);let A=["summary","preview","raw"],B={summary:"tab.summary",preview:"tab.preview",raw:"tab.raw"},C={user:"kind.user",context:"kind.context",compacted:"kind.compacted",message:"kind.assistant",tool:"kind.tool"};function D(a,b){return a.length>b?{text:a.slice(0,b),total:a.length,truncated:!0}:{text:a,total:a.length,truncated:!1}}function E(a,b=""){let c=(a.match(/`+/g)??[]).reduce((a,b)=>Math.max(a,b.length),0),d="`".repeat(Math.max(3,c+1));return`${d}${b}
|
|
2
2
|
${a}
|
|
3
|
-
${d}`}function E(a){try{return JSON.stringify(a,null,2)??""}catch{return String(a)}}function F({label:a,hint:b,children:c}){return(0,d.jsxs)("div",{className:y().row,children:[(0,d.jsx)("dt",{className:y().label,title:b,children:a}),(0,d.jsx)("dd",{className:y().value,children:c})]})}function G({clipped:a,t:b}){return a.truncated?(0,d.jsx)("p",{className:y().note,children:b("record.truncated",{shown:a.text.length.toLocaleString(),total:a.total.toLocaleString()})}):null}function H({cell:a,t:b}){let[c,f]=(0,e.useState)(!0),g="message"===a.kind,h=a.isError?"error":a.running?"pending":a.interrupted?"interrupted":"done",j=b(`status.${h}`),k=g&&(void 0!==a.input||void 0!==a.output),l=g&&void 0!==a.output&&null!==a.timeSeconds&&a.timeSeconds>0?a.output/a.timeSeconds:null,m="compacted"===a.kind?a.raw?.details?.tokensBefore:void 0,n=(0,e.useMemo)(()=>C(a.thinkingDetail??"",2e4),[a.thinkingDetail]);return(0,d.jsxs)("div",{className:y().summary,children:[(0,d.jsxs)("dl",{className:y().rows,children:[(0,d.jsx)(F,{label:b("details.source"),children:function(a,b){switch(a.kind){case"message":return a.provider?`${a.provider} / ${a.model??""}`:b("kind.assistant");case"tool":return a.toolName??b("kind.tool");case"context":{let c=a.raw?.customType;return"string"==typeof c?c:b("kind.context")}default:return b(B[a.kind])}}(a,b)}),(0,d.jsx)(F,{label:b("details.status"),children:(0,d.jsx)("span",{className:y().status,"data-state":h,children:j})}),a.stopReason&&(0,d.jsx)(F,{label:b("details.stopReason"),children:a.stopReason}),"number"==typeof m&&(0,d.jsx)(F,{label:b("details.tokensBefore"),children:m.toLocaleString()})]}),k&&(0,d.jsxs)("section",{className:y().section,children:[(0,d.jsx)("h4",{className:y().heading,children:b("usage.tokens")}),(0,d.jsxs)("dl",{className:y().rows,children:[void 0!==a.input&&(0,d.jsx)(F,{label:b("usage.input"),children:a.input.toLocaleString()}),void 0!==a.cacheRead&&(0,d.jsx)(F,{label:b("usage.cached"),children:a.cacheRead.toLocaleString()}),void 0!==a.cacheWrite&&(0,d.jsx)(F,{label:b("usage.cacheCreated"),children:a.cacheWrite.toLocaleString()}),void 0!==a.output&&(0,d.jsx)(F,{label:b("usage.output"),children:a.output.toLocaleString()}),void 0!==a.cost&&(0,d.jsx)(F,{label:b("usage.cost"),children:`$${a.cost.toFixed(4)}`})]})]}),("number"==typeof a.startedAt||null!==a.timeSeconds)&&(0,d.jsxs)("section",{className:y().section,children:[(0,d.jsx)("h4",{className:y().heading,children:b("timing.request")}),(0,d.jsxs)("dl",{className:y().rows,children:["number"==typeof a.startedAt&&(0,d.jsx)(F,{label:b("timing.started"),children:new Date(a.startedAt).toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3})}),null!==a.timeSeconds&&(0,d.jsx)(F,{label:b("timing.totalDuration"),children:i(a.timeSeconds)}),null!==l&&(0,d.jsx)(F,{label:b("timing.avgSpeed"),hint:b("timing.avgSpeedHint"),children:b("unit.tokensPerSecond",{value:l.toFixed(1)})})]})]}),n.total>0&&(0,d.jsxs)("section",{className:y().section,children:[(0,d.jsxs)("button",{type:"button",className:y().disclosure,"aria-expanded":c,onClick:()=>{f(a=>!a)},children:[(0,d.jsx)("span",{"aria-hidden":"true",children:c?"▾":"▸"}),b("record.thinking")]}),c&&(0,d.jsxs)("div",{className:y().markdown,children:[(0,d.jsx)(v.m,{children:n.text}),(0,d.jsx)(G,{clipped:n,t:b})]})]})]})}function I({cell:a,t:b}){let c=(0,e.useMemo)(()=>{let c=[];if("tool"===a.kind){let d=a.raw?.call,e=d?E(d.input):a.inputDetail??"";return e&&c.push({title:b("record.parameters"),clipped:C(D(e,d?"json":""),2e4)}),c.push({title:b("record.result"),clipped:C(a.outputDetail?D(a.outputDetail):"",2e4)}),c}let d="message"===a.kind?a.outputDetail??"":a.inputDetail??"";return c.push({clipped:C(d,2e4)}),c},[a,b]);return(0,d.jsx)("div",{className:y().preview,children:c.map((c,e)=>(0,d.jsxs)("section",{className:y().section,children:[c.title&&(0,d.jsx)("h4",{className:y().heading,children:c.title}),0===c.clipped.total?(0,d.jsx)("p",{className:y().note,children:b("tool"===a.kind?"record.noResult":"record.noContent")}):(0,d.jsxs)("div",{className:y().markdown,children:[(0,d.jsx)(v.m,{children:c.clipped.text}),(0,d.jsx)(G,{clipped:c.clipped,t:b})]})]},e))})}function J({cell:a,t:b}){let[c,f]=(0,e.useState)(!0),g=(0,e.useMemo)(()=>E(a.raw),[a.raw]),h=(0,e.useMemo)(()=>C(g,2e5),[g]);return(0,d.jsxs)("div",{className:y().rawPane,children:[(0,d.jsxs)("div",{className:y().rawBar,children:[(0,d.jsx)("button",{type:"button",className:y().smallButton,"aria-pressed":c,onClick:()=>{f(a=>!a)},children:b("record.wrapLines")}),(0,d.jsx)("button",{type:"button",className:y().smallButton,onClick:()=>{(0,w.D)(g)},children:b("record.copy")})]}),(0,d.jsx)("pre",{className:y().raw,"data-wrap":c||void 0,children:h.text}),(0,d.jsx)(G,{clipped:h,t:b})]})}function K({t:a,cell:b,title:c,onClose:f}){let[g,h]=(0,e.useState)("summary");return(0,d.jsxs)("aside",{className:y().root,"aria-label":a("details.event"),children:[(0,d.jsxs)("header",{className:y().header,children:[(0,d.jsxs)("span",{className:y().title,children:[(0,d.jsx)("span",{className:y().titleText,children:c}),(0,d.jsx)("span",{className:y().kind,"data-kind":b.kind,children:a(B[b.kind])})]}),(0,d.jsx)("button",{type:"button",className:y().close,"aria-label":a("details.close"),title:a("details.close"),onClick:f,children:"\xd7"})]}),(0,d.jsx)("div",{className:y().tabs,role:"tablist",children:z.map(b=>(0,d.jsx)("button",{type:"button",role:"tab","aria-selected":g===b,className:y().tab,"data-active":g===b||void 0,onClick:()=>{h(b)},children:a(A[b])},b))}),(0,d.jsxs)("div",{className:y().body,children:["summary"===g&&(0,d.jsx)(H,{cell:b,t:a}),"preview"===g&&(0,d.jsx)(I,{cell:b,t:a}),"raw"===g&&(0,d.jsx)(J,{cell:b,t:a})]},b.recordId)]})}var L=c(40334),M=c.n(L);let N={user:"kind.user",context:"kind.context",compacted:"kind.compacted",message:"kind.assistant",tool:"kind.tool"};function O(a){return void 0===a?"":a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(a>=1e4?0:1)}k`:String(a)}let P=(0,e.memo)(function({t:a,record:b,selected:c,dimmed:e,hasCalls:f,callsCollapsed:g,onSelect:h,onToggleTurn:j,onToggleAssistant:k}){let{cell:l}=b;if(void 0!==b.collapsedSummary){let c="turn"===b.collapsedSummaryKind&&null!==b.turn;return(0,d.jsxs)("button",{type:"button",className:M().summaryRow,"data-summary-kind":b.collapsedSummaryKind,onClick:a=>{a.stopPropagation(),c&&null!==b.turn?j(b.turn):k(l.recordId)},title:a(c?"ledger.expandTurn":"ledger.expandCalls"),children:[(0,d.jsx)("span",{className:M().summaryChevron,"aria-hidden":"true",children:"▸"}),(0,d.jsx)("span",{className:M().summaryText,children:b.collapsedSummary})]})}let m="message"===l.kind,n="message"===l.kind&&""===l.text?a(f?"record.toolCallOnly":"record.noContent"):null;return(0,d.jsxs)("div",{role:"option","aria-selected":c,className:M().row,"data-kind":l.kind,"data-selected":c||void 0,"data-error":l.isError||void 0,"data-dimmed":e||void 0,"data-record-index":l.index,"data-record-id":l.recordId,onClick:a=>{window.getSelection()?.toString()||(a.stopPropagation(),h(l.recordId))},children:[(0,d.jsxs)("span",{className:M().index,children:["#",l.index]}),(0,d.jsx)("span",{className:M().tagSlot,children:(0,d.jsx)("span",{className:M().tag,"data-kind":l.kind,children:a(N[l.kind]??"kind.tool")})}),(0,d.jsxs)("span",{className:M().text,title:l.text||void 0,children:[f&&(0,d.jsx)("button",{type:"button",className:M().callsToggle,"aria-expanded":!g,"aria-label":a(g?"ledger.expandCalls":"ledger.collapseCalls"),title:a(g?"ledger.expandCalls":"ledger.collapseCalls"),onClick:a=>{a.stopPropagation(),k(l.recordId)},children:g?"▸":"▾"}),null===n?l.text:(0,d.jsx)("span",{className:M().placeholder,children:n})]}),(0,d.jsx)("span",{className:M().metric,children:m?O(l.input):""}),(0,d.jsx)("span",{className:M().metric,children:m?O(l.output):""}),(0,d.jsx)("span",{className:M().metric,children:m?O(l.cacheRead):""}),(0,d.jsx)("span",{className:M().time,children:l.running?(0,d.jsx)("span",{className:M().pending,role:"img","aria-label":a("status.pending"),title:a("status.pending")}):null===l.timeSeconds?"":i(l.timeSeconds)})]})});function Q({t:a,records:b,selectedId:c,focusIndexes:f,collapsedAssistants:g,collapsibleAssistants:h,hasEarlier:i,onLoadEarlier:j,scrollRequest:k,onSelect:l,onToggleTurn:m,onToggleAssistant:n,sectionLabel:q}){let r=(0,e.useRef)(null),s=(0,e.useRef)(!0),t=(0,e.useRef)(null),[u,v]=(0,e.useState)(!1),w=(0,e.useRef)(null);(0,e.useRef)(k);let[x,y]=(0,e.useState)(p),z=function(a,b){if(null!==b.pin){let c=a.findLastIndex(a=>o(a)===b.pin);if(c>=0)return{start:Math.max(0,c-b.extendUp),pinIndex:c,window:b}}let c=Math.max(0,a.length-120),d=a[c];return void 0===d?{start:c,pinIndex:c,window:b}:{start:c,pinIndex:c,window:{pin:o(d),extendUp:0}}}(b,x);z.window!==x&&y(z.window);let{start:A,pinIndex:B}=z,C=(0,e.useCallback)(a=>{y(b=>a>b.extendUp?{...b,extendUp:a}:b)},[]),D=(0,e.useCallback)(()=>{let a=r.current;null!==a&&(t.current=a.scrollHeight-a.scrollTop,C(x.extendUp+200))},[C,x.extendUp]),E=(0,e.useCallback)(()=>{let a=r.current;null!==a&&(s.current=a.scrollHeight-a.scrollTop-a.clientHeight<48,A>0&&a.scrollTop<400&&D())},[D,A]),F=(0,e.useCallback)((a,c)=>{let d=r.current;if(null===d)return;let e=d.querySelector(`[data-record-index="${a}"]`);if(null!==e)return void e.scrollIntoView({block:c});let f=b.findIndex(b=>void 0===b.collapsedSummary&&b.cell.index===a);f<0||f>=A||(w.current={index:a,block:c},C(B-f+100))},[C,B,b,A]),G=(0,e.useCallback)(()=>{let a=r.current;if(null!==a&&!u){if(A>0)return void D();t.current=a.scrollHeight-a.scrollTop,C(B+200),v(!0),j().then(a=>{a||(t.current=null)}).finally(()=>{v(!1)})}},[C,u,j,B,D,A]);return(0,d.jsxs)("div",{ref:r,className:M().ledger,role:"listbox","aria-label":a("ledger.aria"),tabIndex:0,onScroll:E,onKeyDown:a=>{if("Escape"===a.key){if(null===c)return;a.preventDefault(),l(null);return}if(!["ArrowDown","ArrowUp","Home","End"].includes(a.key))return;a.preventDefault();let d=b.filter(a=>void 0===a.collapsedSummary);if(0===d.length)return;let e=d.findIndex(a=>a.cell.recordId===c),f="Home"===a.key?0:"End"===a.key?d.length-1:"ArrowDown"===a.key?Math.min(d.length-1,e+1):Math.max(0,-1===e?d.length-1:e-1),g=d[f];void 0!==g&&(l(g.cell.recordId),F(g.cell.index,"nearest"))},onClick:()=>{l(null)},children:[(A>0||i)&&(0,d.jsx)("div",{className:M().historyRow,children:(0,d.jsx)("button",{type:"button",className:M().historyButton,disabled:u,onClick:G,children:u?a("history.loadingEarlier"):a("history.loadEarlier")})}),0===b.length&&(0,d.jsx)("p",{className:M().empty,children:a("ledger.noMatches")}),b.slice(A).map((b,i)=>{let{cell:j}=b,k=A>0&&0===i;return(0,d.jsxs)(e.Fragment,{children:[(b.turnStart||k)&&(0,d.jsxs)("div",{className:M().turnHeader,children:[(0,d.jsx)("button",{type:"button",className:M().turnTitle,disabled:null===b.turn,onClick:a=>{a.stopPropagation(),null!==b.turn&&m(b.turn)},children:q(b.turn)}),(0,d.jsxs)("span",{className:M().turnColumns,"aria-hidden":"true",children:[(0,d.jsx)("span",{children:a("column.input")}),(0,d.jsx)("span",{children:a("column.output")}),(0,d.jsx)("span",{children:a("column.cache")}),(0,d.jsx)("span",{children:a("column.time")})]})]}),b.groupStart&&("message"===j.kind||"compacted"===j.kind)&&void 0===b.collapsedSummary&&(0,d.jsxs)("div",{className:M().groupHeader,children:[(0,d.jsx)("span",{className:M().groupTitle,children:b.group}),b.groupDescription&&(0,d.jsx)("span",{className:M().groupDescription,children:b.groupDescription})]}),(0,d.jsx)(P,{t:a,record:b,selected:j.recordId===c&&void 0===b.collapsedSummary,dimmed:null!==f&&!f.has(j.index),hasCalls:"message"===j.kind&&h.has(j.recordId),callsCollapsed:g.has(j.recordId),onSelect:l,onToggleTurn:m,onToggleAssistant:n})]},o(b))})]})}var R=c(75808),S=c.n(R);function T(a){return new Date(a).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3})}function U(a,b){return a<=b?{start:a,end:b}:{start:b,end:a}}function V(a){return Math.min(1,Math.max(0,a))}function W(a,b,c,d,e){let f=U(Math.min(e,Math.max(d,a.start)),Math.min(e,Math.max(d,a.end)));return{start:(f.start-b)/c,end:(f.end-b)/c}}function X({t:a}){return(0,d.jsxs)("div",{className:S().labels,"aria-hidden":"true",children:[(0,d.jsx)("span",{children:a("column.input")}),(0,d.jsx)("span",{children:a("column.model")}),(0,d.jsx)("span",{children:a("column.tools")})]})}function Y({loading:a,onHover:b,onLoad:c,t:e}){return(0,d.jsx)("button",{type:"button",className:S().earlierHistory,"data-earlier-history":!0,"data-loading":a||void 0,title:e(a?"history.loadingEarlier":"history.clickToLoadEarlier"),"aria-label":e(a?"history.loadingEarlierAria":"history.loadEarlier"),"aria-disabled":a||void 0===c,onClick:c,onPointerEnter:a=>{a.stopPropagation(),b()},onPointerMove:a=>{a.stopPropagation()},onPointerDown:a=>{a.stopPropagation()},children:"…"})}let Z=(0,e.memo)(function({t:a,turns:b,mode:c,range:f,hasEarlierRecords:g=!1,onLoadEarlier:i,selectedIndex:j=null,searchMatchIndexes:k=null,onRangeChange:l,onRecordSelect:m,onRecordFocus:n}){let o=(0,e.useMemo)(()=>u(b,c),[c,b]),p=(0,e.useMemo)(()=>new Map(b.flatMap(a=>a.groups.flatMap(a=>a.cells.map(a=>{let b,c;return[a.index,(b=null!==a.timeSeconds&&Number.isFinite(a.timeSeconds)?Math.max(0,1e3*a.timeSeconds):void 0,c=null!==a.startedAt&&void 0!==a.startedAt&&Number.isFinite(a.startedAt)?a.startedAt:void 0,{...void 0===b?{}:{durationMs:b},...void 0===c?{}:{startedAt:c}})]})))),[b]),q=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useRef)(null),t=(0,e.useRef)(null),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(!1),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(!1);(0,e.useEffect)(()=>{null!==o&&null!==f&&(f.end<o.start||f.start>o.end)&&l(null)},[o,l,f]),(0,e.useEffect)(()=>{null!==o&&(G(!1),E(a=>null!==a&&(a.end<o.start||a.start>o.end)?null:a))},[o]),(0,e.useEffect)(()=>{if(null===o||null===j)return;let a=o.spans.find(a=>a.index===j);void 0!==a&&(G(!0),E(b=>{if(null===b||a.end>b.start&&a.start<b.end)return b;let c=Math.max(1,b.end-b.start),d=Math.min(Math.max(a.end<=b.start?a.start:a.end-c,o.start),Math.max(o.start,o.end-c));return d===b.start?b:{start:d,end:d+c}}))},[o,j]);let H=Math.max(1,(o?.end??0)-(o?.start??0)),I=Math.min(H,Math.max(1,(D?.end??0)-(D?.start??0))),J=null===o||null===D?o?.start??0:Math.min(Math.max(D.start,o.start),o.end-I),K=null===D?H:I,L=null===D?o?.start??0:J,M=g&&null!==o&&L===o.start,N=void 0===i||z?void 0:()=>{A(!0),i().finally(()=>{A(!1)})},O=null===o?void 0:{"--trajectory-domain-left":`${-(L-o.start)/K*100}%`,"--trajectory-domain-width":`${H/K*100}%`},P=null===o||null===f?null:W(f,L,K,o.start,o.end),Q=(null===o||null===v?null:W(v,L,K,o.start,o.end))??P,R=v??f;if((0,e.useEffect)(()=>{let a=s.current;if(null===a)return;let b=a=>{a.preventDefault();let b=t.current;if(null===b||null===o)return;G(!1);let d=b.getBoundingClientRect(),e=V((a.clientX-d.left)/Math.max(1,d.width)),f=Math.min(H,Math.max(Math.min("sequence"===c?4:20,H),K*Math.exp(.0015*a.deltaY)));if(f>=.999*H)return void E(null);let g=Math.min(Math.max(L+e*K-e*f,o.start),o.end-f);E({start:g,end:g+f})};return a.addEventListener("wheel",b,{passive:!1}),()=>{a.removeEventListener("wheel",b)}},[K,L,H,c,o]),null===o)return(0,d.jsx)("section",{ref:s,className:S().root,"aria-label":a("timeline.aria"),children:(0,d.jsxs)("div",{className:S().plot,children:[(0,d.jsx)(X,{t:a}),(0,d.jsxs)("div",{className:S().track,children:[(0,d.jsx)("span",{className:S().empty,children:a("timeline.noTimingData")}),g&&(0,d.jsx)(Y,{loading:z,onHover:()=>{y(null)},onLoad:N,t:a})]})]})});let Z=Math.min(K,H/o.spans.length),$=a=>{let b=a.currentTarget.getBoundingClientRect();return V((a.clientX-b.left)/Math.max(1,b.width))},_=a=>{let b=a.target instanceof HTMLElement?a.target:null,c=b?.closest("[data-timeline-record-index]")?.dataset.timelineRecordIndex;if(void 0===c)return null;let d=Number(c);return Number.isFinite(d)?d:null};return(0,d.jsx)("section",{ref:s,className:S().root,"aria-label":a("timeline.aria"),children:(0,d.jsxs)("div",{className:S().plot,children:[(0,d.jsx)(X,{t:a}),(0,d.jsxs)("div",{ref:t,className:S().track,"data-panning":B||void 0,"aria-label":a("timeline.overviewAria"),tabIndex:0,onKeyDown:a=>{"Escape"===a.key&&null!==f&&(a.preventDefault(),l(null))},onPointerDown:a=>{if(2===a.button){r.current={anchorClientX:a.clientX,anchorStart:L,moved:!1,pannable:null!==D,pointerId:a.pointerId},null!==D&&G(!1),C(!0),"function"==typeof a.currentTarget.setPointerCapture&&a.currentTarget.setPointerCapture(a.pointerId);return}if(0!==a.button)return;let b=$(a),c=L+b*K,d=_(a);y({fraction:b,recordIndex:d}),q.current={pointerId:a.pointerId,anchorTime:c,anchorClientX:a.clientX,recordIndex:d},"function"==typeof a.currentTarget.setPointerCapture&&a.currentTarget.setPointerCapture(a.pointerId),w({start:c,end:c})},onPointerMove:a=>{let b=a.currentTarget.getBoundingClientRect(),c=$(a);y({fraction:c,recordIndex:_(a)});let d=r.current;if(null!==d&&d.pointerId===a.pointerId){if(Math.abs(a.clientX-d.anchorClientX)>=3&&(d.moved=!0),!d.pannable)return;let c=(a.clientX-d.anchorClientX)/Math.max(1,b.width),e=Math.min(Math.max(d.anchorStart-c*K,o.start),o.end-K);E({start:e,end:e+K});return}let e=q.current;if(null===e||e.pointerId!==a.pointerId)return;let f=L;if(null!==D){let c=a.clientX-b.left,d=Math.min(32,Math.max(1,.08*b.width)),e=c<d?-1:+(c>b.width-d);if(0!==e){let a=V((e<0?d-c:c-(b.width-d))/d);(f=Math.min(Math.max(L+e*K*.025*Math.max(.2,a),o.start),o.end-K))!==L&&(G(!1),E({start:f,end:f+K}))}}let g=f+c*K;w(U(e.anchorTime,g))},onPointerUp:a=>{var b,c,d;let e,f,g=r.current;if(null!==g&&g.pointerId===a.pointerId){let b=g.moved||Math.abs(a.clientX-g.anchorClientX)>=3;r.current=null,C(!1),b||l(null);return}let h=q.current;if(null===h||h.pointerId!==a.pointerId)return;let i=$(a),j=L+i*K,k=U(h.anchorTime,j);y({fraction:i,recordIndex:_(a)}),q.current=null,w(null);let p=3>Math.abs(a.clientX-h.anchorClientX),s=p&&null!==h.recordIndex?o.spans.find(a=>a.index===h.recordIndex):void 0;if(void 0!==s){l(null),m?.(s.index);return}if(l(k.end-k.start<Z?(b=p?k.start:(k.start+k.end)/2,c=o.start,{start:f=Math.min(Math.max(b-(e=Math.min((d=o.end)-c,Math.max(0,Z)))/2,c),d-e),end:f+e}):k),p){let a=k.start,b=o.spans.reduce((b,c)=>{let d=a<b.start?b.start-a:a>b.end?a-b.end:0;return(a<c.start?c.start-a:a>c.end?a-c.end:0)<d?c:b});n?.(b.index)}},onPointerCancel:()=>{q.current=null,r.current=null,w(null),y(null),C(!1)},onPointerLeave:()=>{null===q.current&&null===r.current&&y(null)},onDoubleClick:a=>{a.preventDefault(),l(null)},onContextMenu:a=>{a.preventDefault()},children:[M&&(0,d.jsx)(Y,{loading:z,onHover:()=>{y(null)},onLoad:N,t:a}),null!==x&&null===x.recordIndex&&null===v&&(0,d.jsx)("div",{className:S().hoverLine,"aria-hidden":"true",style:{"--trajectory-hover-left":`${100*x.fraction}%`}}),null!==Q&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:S().selection,"data-dragging":null===v?void 0:"true","aria-hidden":"true",style:{"--trajectory-selection-left":`${100*Q.start}%`,"--trajectory-selection-width":`${(Q.end-Q.start)*100}%`}}),(0,d.jsx)("div",{className:S().selectionEdges,"data-dragging":null===v?void 0:"true","aria-hidden":"true",style:{"--trajectory-selection-left":`${100*Q.start}%`,"--trajectory-selection-width":`${(Q.end-Q.start)*100}%`}})]}),(0,d.jsx)("div",{className:S().turnBoundaries,"data-animate-viewport":F||void 0,"aria-hidden":"true",style:O,children:o.turnBoundaries.filter(a=>a.time>o.start&&a.time>=L&&a.time<=L+K).map(a=>(0,d.jsx)("span",{className:S().turnBoundary,style:{"--trajectory-turn-left":`${(a.time-o.start)/H*100}%`}},a.turn))}),(0,d.jsx)("div",{className:S().lanes,"data-animate-viewport":F||void 0,style:O,children:o.spans.filter(a=>a.index===j||a.end>=L&&a.start<=L+K).map(b=>{let e=(b.start-o.start)/H,f=(b.end-b.start)/H*100,g=x?.recordIndex===b.index;return(0,d.jsx)("span",{"aria-hidden":"true",className:S().span,"data-timeline-span":b.kind,"data-timeline-record-index":b.index,"data-error":b.isError||void 0,"data-equal-duration":"sequence"===c||void 0,"data-current":b.index===j||void 0,"data-hovered":g||void 0,"data-search-match":null===k?void 0:k.has(b.index)?"true":"false","data-selected":null===R?void 0:b.start<=R.end&&b.end>=R.start?"true":"false",title:g?function(a,b,c){let d=function(a,b){switch(a){case"user":return b("kind.user");case"context":return b("kind.context");case"compacted":return b("kind.compacted");case"message":return b("kind.assistant");case"tool":return b("kind.tool")}}(a,c);if(void 0===b)return d;let e=void 0===b.durationMs?null:c("timeline.total",{duration:h(b.durationMs)});return[d,void 0===b.startedAt?null:void 0===b.durationMs?c("timeline.started",{time:T(b.startedAt)}):`${T(b.startedAt)} → ${T(b.startedAt+b.durationMs)}`,e].filter(a=>null!==a&&""!==a).join("\n")}(b.kind,p.get(b.index),a):void 0,style:{"--trajectory-span-left":`${100*e}%`,"--trajectory-span-width":`${f}%`,"--trajectory-span-gap":`min(${.08*f}%, 1px)`,"--trajectory-span-lane":b.lane}},b.index)})})]})]})})});var $=c(46968),_=c.n($);function aa({actualDuration:a,onActualDurationChange:b,allTurnsCollapsed:c,onToggleAllTurns:e,allAssistantsCollapsed:f,onToggleAllAssistants:g,searchQuery:h,onSearchQueryChange:i,t:j}){return(0,d.jsx)("div",{className:_().root,role:"toolbar","aria-label":j("toolbar.aria"),children:(0,d.jsxs)("div",{className:_().inner,children:[(0,d.jsxs)("div",{className:_().actions,children:[(0,d.jsxs)("button",{type:"button",className:_().toggle,"aria-label":j("toolbar.useActualDuration"),"aria-pressed":a,title:j(a?"toolbar.useEqualWidth":"toolbar.useActualDuration"),onClick:()=>{b(!a)},children:[(0,d.jsxs)("svg",{className:_().toggleIcon,viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"5.25"}),(0,d.jsx)("path",{d:"M8 4.75V8l2.25 1.5"})]}),j("toolbar.duration")]}),(0,d.jsxs)("button",{type:"button",className:_().action,"aria-label":j(c?"toolbar.expandTurns":"toolbar.collapseTurns"),"aria-pressed":c,title:j(c?"toolbar.expandTurns":"toolbar.collapseTurns"),onClick:e,children:[(0,d.jsx)("span",{className:_().actionIcon,"aria-hidden":"true",children:c?"⊞":"⊟"}),j("toolbar.turns")]}),(0,d.jsxs)("button",{type:"button",className:_().action,"aria-label":j(f?"toolbar.expandCalls":"toolbar.collapseCalls"),"aria-pressed":f,title:j(f?"toolbar.expandCalls":"toolbar.collapseCalls"),onClick:g,children:[(0,d.jsx)("span",{className:_().actionIcon,"aria-hidden":"true",children:f?"⊞":"⊟"}),j("toolbar.calls")]})]}),(0,d.jsxs)("div",{className:_().search,children:[(0,d.jsxs)("svg",{className:_().searchIcon,width:"11",height:"11",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"7",cy:"7",r:"4.75",stroke:"currentColor",strokeWidth:"1.5"}),(0,d.jsx)("path",{d:"M10.6 10.6 14 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),(0,d.jsx)("input",{type:"search",className:_().searchInput,"aria-label":j("toolbar.search"),placeholder:j("toolbar.searchPlaceholder"),value:h,onChange:a=>{i(a.currentTarget.value)}})]})]})})}var ab=c(8870),ac=c.n(ab);function ad(a,b){let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c}let ae=(0,e.memo)(function({sessionId:a,running:b}){let c,{t:i}=(0,f.s)(),o=(0,e.useMemo)(()=>(a,b)=>i(`trajectory.${a}`,b),[i]),p=(0,g.p)(a,b),{transcript:s,status:t,loadEarlier:v}=p,[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)(""),[C,D]=(0,e.useState)(()=>new Set),[E,F]=(0,e.useState)(()=>new Set),[G,H]=(0,e.useState)(null),[I,J]=(0,e.useState)(null),L=(0,e.useMemo)(()=>{var a,c;let d,e,f,g,i,p,q,r,t,u,v,w;return a=s.messages,c=s.entryIds,d=new Set,e=new Map,a.forEach((a,b)=>{if("assistant"===a.role)for(let b of a.content??[])"toolCall"===b.type&&d.add(b.toolCallId);else"toolResult"===a.role&&e.set(a.toolCallId,{message:a,entryId:c[b]??`#${b}`})}),f=o("group.message"),g=[],i={current:null},p=0,q=0,r=0,t=0,u=a=>({...a,index:++t}),v=()=>{p+=1,q=0;let a={turn:p,groups:[]};return g.push(a),i.current=a,a},w=a=>{let b=i.current;if(null===b){let a=g.at(-1);a&&null===a.turn&&(b=a)}if(null===b)return void g.push({turn:null,groups:[{title:f,cells:[a]}]});let c=b.groups.at(-1);c&&c.title===f?c.cells.push(a):b.groups.push({title:f,cells:[a]})},a.forEach((h,p)=>{let s=c[p]??`#${p}`;switch(h.role){case"user":let t;v().groups.push({title:f,cells:[u({recordId:s,kind:"user",text:n(t=l(h.content)),inputDetail:t,raw:h,timeSeconds:null,startedAt:k(h.timestamp)})]});break;case"custom":{let b;if("compaction"!==h.customType){let a;w(u((a=l(h.content),{recordId:s,kind:"context",text:`${h.customType} \xb7 ${n(a)}`,inputDetail:a,raw:h,timeSeconds:null,startedAt:k(h.timestamp)})));break}let c={title:o("group.compaction",{seq:r+=1}),cells:[u({recordId:s,kind:"compacted",text:n(b=l(h.content)),inputDetail:b,raw:h,timeSeconds:null,startedAt:k(h.timestamp)})]},d=a[p+1];i.current&&(d?.role==="assistant"||d?.role==="toolResult")?i.current.groups.push(c):(g.push({turn:null,groups:[c]}),i.current=null);break}case"bashExecution":let x;w(u((x=!0===h.cancelled||void 0!==h.exitCode&&0!==h.exitCode,{recordId:s,kind:"tool",text:`bash \xb7 ${n(h.command)}`,toolName:"bash",inputDetail:h.command,outputDetail:h.output,raw:h,...x?{isError:!0}:{},timeSeconds:null,startedAt:k(h.timestamp)})));break;case"assistant":{let a,c,d,f,g,p=i.current??v();q+=1;let r=[u((a=m(h,"text"),c=m(h,"thinking"),d="error"===h.stopReason||"aborted"===h.stopReason,f=k(h.durationMs),g=h.usage,{recordId:s,kind:"message",text:n(a||(d?h.errorMessage??"":"")),...a?{outputDetail:a}:{},...c?{thinkingDetail:c}:{},raw:h,...d?{isError:!0}:{},timeSeconds:null===f?null:f/1e3,startedAt:k(h.timestamp),...g?{input:g.input,output:g.output,cacheRead:g.cacheRead,cacheWrite:g.cacheWrite,...null===k(g.cost?.total)?{}:{cost:g.cost.total}}:{},...h.model?{model:h.model}:{},...h.provider?{provider:h.provider}:{},...h.stopReason?{stopReason:h.stopReason}:{}}))];for(let a of h.content??[])"toolCall"===a.type&&r.push(u(function(a,b,c,d){let e=b?.message,f=k(e?.durationMs),g=k(e?.timestamp),h=function(a){if(!a)return"";for(let b of j){let c=a[b];if("string"==typeof c&&c.trim())return n(c)}for(let b of Object.values(a))if("string"==typeof b&&b.trim())return n(b);return Object.keys(a).length>0?n(JSON.stringify(a)):""}(a.input);return{recordId:`${c}:${a.toolCallId}`,kind:"tool",text:h?`${a.toolName} \xb7 ${h}`:a.toolName,toolName:a.toolName,callId:a.toolCallId,...e?{outputDetail:l(e.content)}:d?{running:!0}:{interrupted:!0},raw:{call:a,result:e},...e?.isError?{isError:!0}:{},timeSeconds:null===f?null:f/1e3,startedAt:null!==f&&null!==g?g-f:null}}(a,e.get(a.toolCallId),s,b)));p.groups.push({title:o("group.step",{step:q}),cells:r});break}case"toolResult":let y,z;if(d.has(h.toolCallId))break;w(u((y=k(h.durationMs),z=k(h.timestamp),{recordId:s,kind:"tool",text:h.toolName??"tool",...h.toolName?{toolName:h.toolName}:{},callId:h.toolCallId,outputDetail:l(h.content),raw:{result:h},...h.isError?{isError:!0}:{},timeSeconds:null===y?null:y/1e3,startedAt:null!==y&&null!==z?z-y:null})))}}),g.map(a=>({turn:a.turn,groups:a.groups.map(a=>{let b=function(a){let b=1/0,c=-1/0,d=0,e=new Map;for(let f of a)"tool"===f.kind&&f.toolName&&e.set(f.toolName,(e.get(f.toolName)??0)+1),"number"==typeof f.startedAt&&(d+=1,b=Math.min(b,f.startedAt),c=Math.max(c,f.startedAt+(f.timeSeconds??0)*1e3));let f=[];for(let[a,g]of(d>0&&c>b&&f.push(h(c-b)),e))f.push(g>1?`${a}\xd7${g}`:a);return f.length>0?f.join(" "):void 0}(a.cells);return{title:a.title,...b?{description:b}:{},cells:a.cells}})}))},[s.messages,s.entryIds,o,b]),M=(0,e.useMemo)(()=>L.flatMap((a,b)=>{let c=!0,d=a.groups.flatMap(d=>d.cells.map((e,f)=>{let g=c&&("compacted"!==e.kind||null===a.turn);return g&&(c=!1),{turn:a.turn,section:b,group:d.title,...d.description?{groupDescription:d.description}:{},groupStart:0===f,turnStart:g,turnEnd:!1,cell:e}})),e=d.at(-1);return e&&(e.turnEnd=!0),d}),[L]),N=w?"duration":"sequence",O=(0,e.useMemo)(()=>new r,[]),P=(0,e.useMemo)(()=>{if(""===A.trim())return null;O.update(L);let a=O.search(A);if(null===a)return null;let b=new Set;for(let c of M)a.has(c.cell.recordId)&&b.add(c.cell.index);return b},[M,O,A,L]),R=(0,e.useMemo)(()=>null===y?null:function(a,b,c="sequence"){let d=u(a,c);return new Set(d?.spans.filter(a=>a.start<=b.end&&a.end>=b.start).map(a=>a.index))}(L,y,N),[N,y,L]),S=(0,e.useMemo)(()=>{if(null!==P){let a,b;return a=M.filter(a=>P.has(a.cell.index)).map(a=>({...a,groupStart:!1,turnStart:!1,turnEnd:!1})),b=new Set,a.forEach((c,d)=>{let e=a[d-1],f=a[d+1];c.groupStart=void 0===e||e.section!==c.section||e.group!==c.group,c.turnStart=!b.has(c.section)&&("compacted"!==c.cell.kind||null===c.turn),c.turnStart&&b.add(c.section),c.turnEnd=void 0===f||f.section!==c.section}),a}let a=0===C.size?M:function(a,b,c){let d=new Map;for(let b of a){if(null===b.turn)continue;let a=d.get(b.turn)??[];a.push(b),d.set(b.turn,a)}return a.flatMap(a=>{var e;let f,g;if(null===a.turn||!b.has(a.turn))return[a];let h=d.get(a.turn)??[a];return h.length<=1?[a]:a.cell.index!==h[0]?.cell.index?[]:[{...a,turnEnd:!1},{...a,groupStart:!1,turnStart:!1,turnEnd:!0,collapsedSummary:(e=h.slice(1),f=new Set(e.filter(a=>"message"===a.cell.kind).map(a=>a.group)).size,g=e.filter(a=>"tool"===a.cell.kind).length,[q(c,"steps",f),q(c,"toolCalls",g)].join(" \xb7 ")),collapsedSummaryKind:"turn"}]})}(M,C,o);return 0===E.size?a:function(a,b,c){let d=[];for(let e=0;e<a.length;e++){let f=a[e];if(void 0===f||(d.push(f),"message"!==f.cell.kind||!b.has(f.cell.recordId)))continue;let g=[];for(let b=e+1;b<a.length;b++){let c=a[b];if(void 0===c||void 0!==c.collapsedSummary||"tool"!==c.cell.kind)break;g.push(c)}0!==g.length&&(d[d.length-1]={...f,turnEnd:!1},d.push({...f,groupStart:!1,turnStart:!1,turnEnd:g.at(-1)?.turnEnd??!1,collapsedSummary:function(a,b){let c=[...new Set(a.map(a=>a.cell.toolName??"").filter(Boolean))],d=q(b,"toolCalls",a.length);return c.length>0?`${d} \xb7 ${c.join(", ")}`:d}(g,c),collapsedSummaryKind:"assistant"}),e+=g.length)}return d}(a,E,o)},[M,E,C,P,o]),T=(0,e.useMemo)(()=>L.flatMap(a=>null===a.turn?[]:a.groups.reduce((a,b)=>a+b.cells.length,0)>1?[a.turn]:[]),[L]),U=(0,e.useMemo)(()=>(function(a){let b=[];for(let c of a)for(let a of c.groups)a.cells.forEach((c,d)=>{"message"===c.kind&&a.cells[d+1]?.kind==="tool"&&b.push(c.recordId)});return b})(L),[L]),V=(0,e.useMemo)(()=>new Set(U),[U]),W=T.length>0&&T.every(a=>C.has(a)),X=U.length>0&&U.every(a=>E.has(a)),Y=(0,e.useMemo)(()=>null===G?null:M.find(a=>a.cell.recordId===G)??null,[M,G]),$=(0,e.useCallback)(a=>null===a?o("section.betweenTurns"):o("turn.label",{turn:a}),[o]),_=(0,e.useRef)(S);_.current=S,(0,e.useEffect)(()=>{if(null===R||0===R.size)return;let a=_.current.find(a=>void 0===a.collapsedSummary&&R.has(a.cell.index));a&&J({index:a.cell.index})},[R]);let ab=(0,e.useCallback)(a=>{if(H(a),null===a||null===R)return;let b=M.find(b=>b.cell.recordId===a);b&&!R.has(b.cell.index)&&z(null)},[M,R]),ae=(0,e.useCallback)(a=>{z(null);let b=M.find(b=>b.cell.index===a);if(b){H(b.cell.recordId);let{turn:a}=b;null!==a&&D(b=>{if(!b.has(a))return b;let c=new Set(b);return c.delete(a),c}),F(a=>{let c=[...a].find(a=>b.cell.recordId.startsWith(`${a}:`));if(void 0===c)return a;let d=new Set(a);return d.delete(c),d})}J({index:a})},[M]),af=(0,e.useCallback)(a=>{J({index:a})},[]),ag=(0,e.useCallback)(a=>{D(b=>ad(b,a))},[]),ah=(0,e.useCallback)(a=>{F(b=>ad(b,a))},[]),ai=(0,e.useCallback)(()=>{D(W?new Set:new Set(T))},[W,T]),aj=(0,e.useCallback)(()=>{F(X?new Set:new Set(U))},[X,U]),ak=(0,e.useCallback)(a=>{x(a),z(null)},[]),al=(0,e.useMemo)(()=>{let a=0,b=1/0,c=-1/0;for(let d of M){let{cell:e}=d;"tool"===e.kind&&(a+=1),"number"==typeof e.startedAt&&(b=Math.min(b,e.startedAt),c=Math.max(c,e.startedAt+(e.timeSeconds??0)*1e3))}return{calls:a,turns:L.filter(a=>null!==a.turn).length,duration:c>b?h(c-b):null}},[M,L]);return c="loading"===t?(0,d.jsx)("p",{className:ac().state,children:o("state.loading")}):"notFound"===t?(0,d.jsx)("p",{className:ac().state,children:o("state.notFound")}):"error"===t?(0,d.jsxs)("div",{className:ac().state,children:[(0,d.jsx)("p",{children:o("state.error",{message:p.error??""})}),(0,d.jsx)("button",{type:"button",className:ac().button,onClick:p.retry,children:o("state.retry")})]}):0===M.length?(0,d.jsx)("p",{className:ac().state,children:o("state.empty")}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(aa,{t:o,actualDuration:w,onActualDurationChange:ak,allTurnsCollapsed:W,onToggleAllTurns:ai,allAssistantsCollapsed:X,onToggleAllAssistants:aj,searchQuery:A,onSearchQueryChange:B}),(0,d.jsx)(Z,{t:o,turns:L,mode:N,range:y,hasEarlierRecords:s.hasMore,onLoadEarlier:v,selectedIndex:Y?.cell.index??null,searchMatchIndexes:P,onRangeChange:z,onRecordSelect:ae,onRecordFocus:af}),(0,d.jsxs)("div",{className:ac().split,children:[(0,d.jsx)(Q,{t:o,records:S,selectedId:Y?.cell.recordId??null,focusIndexes:R,collapsedAssistants:E,collapsibleAssistants:V,hasEarlier:s.hasMore,onLoadEarlier:v,scrollRequest:I,onSelect:ab,onToggleTurn:ag,onToggleAssistant:ah,sectionLabel:$},null===P?"all":"matches"),Y&&(0,d.jsx)(K,{t:o,cell:Y.cell,title:`${$(Y.turn)} \xb7 ${Y.group}`,onClose:()=>{H(null)}})]})]}),(0,d.jsxs)("div",{className:ac().view,children:[(0,d.jsxs)("header",{className:ac().header,children:[b&&(0,d.jsx)("span",{className:ac().live,children:o("header.running")}),"ready"===t&&M.length>0&&(0,d.jsxs)("span",{className:ac().stats,title:s.hasMore?o("stats.loadedOnly"):void 0,children:[al.duration&&(0,d.jsxs)("span",{children:[o("stats.duration")," ",al.duration]}),(0,d.jsxs)("span",{children:[o("stats.turns")," ",al.turns]}),(0,d.jsxs)("span",{children:[o("stats.calls")," ",al.calls]})]}),(0,d.jsx)("span",{className:ac().spacer}),p.error&&"ready"===t&&(0,d.jsx)("span",{className:ac().warn,title:p.error,children:o("state.refreshFailed")})]}),c]})})},75808:a=>{a.exports={root:"TrajectoryTimeline_root__EbHj_",plot:"TrajectoryTimeline_plot__nE8gm",labels:"TrajectoryTimeline_labels__4F8HP",track:"TrajectoryTimeline_track__yr1K9",earlierHistory:"TrajectoryTimeline_earlierHistory__2vEX5",empty:"TrajectoryTimeline_empty__JKbeY",lanes:"TrajectoryTimeline_lanes__oKhPm",turnBoundaries:"TrajectoryTimeline_turnBoundaries__GyoNV",turnBoundary:"TrajectoryTimeline_turnBoundary__sc2YG",span:"TrajectoryTimeline_span__8p1pf",selection:"TrajectoryTimeline_selection__PXIAN",selectionEdges:"TrajectoryTimeline_selectionEdges__QTyLF",hoverLine:"TrajectoryTimeline_hoverLine__rogkc"}}};
|
|
3
|
+
${d}`}function F(a){try{return JSON.stringify(a,null,2)??""}catch{return String(a)}}function G({label:a,hint:b,children:c}){return(0,d.jsxs)("div",{className:z().row,children:[(0,d.jsx)("dt",{className:z().label,title:b,children:a}),(0,d.jsx)("dd",{className:z().value,children:c})]})}function H({clipped:a,t:b}){return a.truncated?(0,d.jsx)("p",{className:z().note,children:b("record.truncated",{shown:a.text.length.toLocaleString(),total:a.total.toLocaleString()})}):null}function I({cell:a,t:b}){let[c,f]=(0,e.useState)(!0),g="message"===a.kind,h=a.isError?"error":a.running?"pending":a.interrupted?"interrupted":"done",j=b(`status.${h}`),k=g&&(void 0!==a.input||void 0!==a.output),l=g&&void 0!==a.output&&null!==a.timeSeconds&&a.timeSeconds>0?a.output/a.timeSeconds:null,m="compacted"===a.kind?a.raw?.details?.tokensBefore:void 0,n=(0,e.useMemo)(()=>D(a.thinkingDetail??"",2e4),[a.thinkingDetail]);return(0,d.jsxs)("div",{className:z().summary,children:[(0,d.jsxs)("dl",{className:z().rows,children:[(0,d.jsx)(G,{label:b("details.source"),children:function(a,b){switch(a.kind){case"message":return a.provider?`${a.provider} / ${a.model??""}`:b("kind.assistant");case"tool":return a.toolName??b("kind.tool");case"context":{let c=a.raw?.customType;return"string"==typeof c?c:b("kind.context")}default:return b(C[a.kind])}}(a,b)}),(0,d.jsx)(G,{label:b("details.status"),children:(0,d.jsx)("span",{className:z().status,"data-state":h,children:j})}),a.stopReason&&(0,d.jsx)(G,{label:b("details.stopReason"),children:a.stopReason}),"number"==typeof m&&(0,d.jsx)(G,{label:b("details.tokensBefore"),children:m.toLocaleString()})]}),k&&(0,d.jsxs)("section",{className:z().section,children:[(0,d.jsx)("h4",{className:z().heading,children:b("usage.tokens")}),(0,d.jsxs)("dl",{className:z().rows,children:[void 0!==a.input&&(0,d.jsx)(G,{label:b("usage.input"),children:a.input.toLocaleString()}),void 0!==a.cacheRead&&(0,d.jsx)(G,{label:b("usage.cached"),children:a.cacheRead.toLocaleString()}),void 0!==a.cacheWrite&&(0,d.jsx)(G,{label:b("usage.cacheCreated"),children:a.cacheWrite.toLocaleString()}),void 0!==a.output&&(0,d.jsx)(G,{label:b("usage.output"),children:a.output.toLocaleString()}),void 0!==a.cost&&(0,d.jsx)(G,{label:b("usage.cost"),children:`$${a.cost.toFixed(4)}`})]})]}),("number"==typeof a.startedAt||null!==a.timeSeconds)&&(0,d.jsxs)("section",{className:z().section,children:[(0,d.jsx)("h4",{className:z().heading,children:b("timing.request")}),(0,d.jsxs)("dl",{className:z().rows,children:["number"==typeof a.startedAt&&(0,d.jsx)(G,{label:b("timing.started"),children:new Date(a.startedAt).toLocaleString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3})}),null!==a.timeSeconds&&(0,d.jsx)(G,{label:b("timing.totalDuration"),children:i(a.timeSeconds)}),null!==l&&(0,d.jsx)(G,{label:b("timing.avgSpeed"),hint:b("timing.avgSpeedHint"),children:b("unit.tokensPerSecond",{value:l.toFixed(1)})})]})]}),n.total>0&&(0,d.jsxs)("section",{className:z().section,children:[(0,d.jsxs)("button",{type:"button",className:z().disclosure,"aria-expanded":c,onClick:()=>{f(a=>!a)},children:[(0,d.jsx)("span",{"aria-hidden":"true",children:c?"▾":"▸"}),b("record.thinking")]}),c&&(0,d.jsxs)("div",{className:z().markdown,children:[(0,d.jsx)(w.m,{children:n.text}),(0,d.jsx)(H,{clipped:n,t:b})]})]})]})}function J({cell:a,t:b}){let c=(0,e.useMemo)(()=>{let c=[];if("tool"===a.kind){let d=a.raw?.call,e=d?F(d.input):a.inputDetail??"";return e&&c.push({title:b("record.parameters"),clipped:D(E(e,d?"json":""),2e4)}),c.push({title:b("record.result"),clipped:D(a.outputDetail?E(a.outputDetail):"",2e4)}),c}let d="message"===a.kind?a.outputDetail??"":a.inputDetail??"";return c.push({clipped:D(d,2e4)}),c},[a,b]);return(0,d.jsx)("div",{className:z().preview,children:c.map((c,e)=>(0,d.jsxs)("section",{className:z().section,children:[c.title&&(0,d.jsx)("h4",{className:z().heading,children:c.title}),0===c.clipped.total?(0,d.jsx)("p",{className:z().note,children:b("tool"===a.kind?"record.noResult":"record.noContent")}):(0,d.jsxs)("div",{className:z().markdown,children:[(0,d.jsx)(w.m,{children:c.clipped.text}),(0,d.jsx)(H,{clipped:c.clipped,t:b})]})]},e))})}function K({cell:a,t:b}){let[c,f]=(0,e.useState)(!0),g=(0,e.useMemo)(()=>F(a.raw),[a.raw]),h=(0,e.useMemo)(()=>D(g,2e5),[g]);return(0,d.jsxs)("div",{className:z().rawPane,children:[(0,d.jsxs)("div",{className:z().rawBar,children:[(0,d.jsx)("button",{type:"button",className:z().smallButton,"aria-pressed":c,onClick:()=>{f(a=>!a)},children:b("record.wrapLines")}),(0,d.jsx)("button",{type:"button",className:z().smallButton,onClick:()=>{(0,x.D)(g)},children:b("record.copy")})]}),(0,d.jsx)("pre",{className:z().raw,"data-wrap":c||void 0,children:h.text}),(0,d.jsx)(H,{clipped:h,t:b})]})}function L({t:a,cell:b,title:c,onClose:f}){let[g,h]=(0,e.useState)("summary");return(0,d.jsxs)("aside",{className:z().root,"aria-label":a("details.event"),children:[(0,d.jsxs)("header",{className:z().header,children:[(0,d.jsxs)("span",{className:z().title,children:[(0,d.jsx)("span",{className:z().titleText,children:c}),(0,d.jsx)("span",{className:z().kind,"data-kind":b.kind,children:a(C[b.kind])})]}),(0,d.jsx)("button",{type:"button",className:z().close,"aria-label":a("details.close"),title:a("details.close"),onClick:f,children:"\xd7"})]}),(0,d.jsx)("div",{className:z().tabs,role:"tablist",children:A.map(b=>(0,d.jsx)("button",{type:"button",role:"tab","aria-selected":g===b,className:z().tab,"data-active":g===b||void 0,onClick:()=>{h(b)},children:a(B[b])},b))}),(0,d.jsxs)("div",{className:z().body,children:["summary"===g&&(0,d.jsx)(I,{cell:b,t:a}),"preview"===g&&(0,d.jsx)(J,{cell:b,t:a}),"raw"===g&&(0,d.jsx)(K,{cell:b,t:a})]},b.recordId)]})}var M=c(40334),N=c.n(M);let O={user:"kind.user",context:"kind.context",compacted:"kind.compacted",message:"kind.assistant",tool:"kind.tool"};function P(a){return void 0===a?"":a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(a>=1e4?0:1)}k`:String(a)}let Q=(0,e.memo)(function({t:a,record:b,selected:c,dimmed:e,hasCalls:f,callsCollapsed:g,onSelect:h,onToggleTurn:j,onToggleAssistant:k}){let{cell:l}=b;if(void 0!==b.collapsedSummary){let c="turn"===b.collapsedSummaryKind&&null!==b.turn;return(0,d.jsxs)("button",{type:"button",className:N().summaryRow,"data-summary-kind":b.collapsedSummaryKind,onClick:a=>{a.stopPropagation(),c&&null!==b.turn?j(b.turn):k(l.recordId)},title:a(c?"ledger.expandTurn":"ledger.expandCalls"),children:[(0,d.jsx)("span",{className:N().summaryChevron,"aria-hidden":"true",children:"▸"}),(0,d.jsx)("span",{className:N().summaryText,children:b.collapsedSummary})]})}let m="message"===l.kind,n="message"===l.kind&&""===l.text?a(f?"record.toolCallOnly":"record.noContent"):null;return(0,d.jsxs)("div",{role:"option","aria-selected":c,className:N().row,"data-kind":l.kind,"data-selected":c||void 0,"data-error":l.isError||void 0,"data-dimmed":e||void 0,"data-record-index":l.index,"data-record-id":l.recordId,onClick:a=>{window.getSelection()?.toString()||(a.stopPropagation(),h(l.recordId))},children:[(0,d.jsxs)("span",{className:N().index,children:["#",l.index]}),(0,d.jsx)("span",{className:N().tagSlot,children:(0,d.jsx)("span",{className:N().tag,"data-kind":l.kind,children:a(O[l.kind]??"kind.tool")})}),(0,d.jsxs)("span",{className:N().text,title:function(a){if(!a.text.endsWith("…"))return a.text;switch(a.kind){case"user":case"compacted":return a.inputDetail??a.text;case"context":{let b=a.raw?.customType;return"string"==typeof b&&void 0!==a.inputDetail?`${b} \xb7 ${a.inputDetail}`:a.text}case"message":{if(void 0!==a.outputDetail)return a.outputDetail;let b=a.raw?.errorMessage;return"string"==typeof b?b:a.text}case"tool":{let b=a.raw?.call;if(b){let a=o(b.input);return a?`${b.toolName} \xb7 ${a}`:b.toolName}return void 0!==a.inputDetail?`${a.toolName??"bash"} \xb7 ${a.inputDetail}`:a.text}}}(l)||void 0,children:[f&&(0,d.jsx)("button",{type:"button",className:N().callsToggle,"aria-expanded":!g,"aria-label":a(g?"ledger.expandCalls":"ledger.collapseCalls"),title:a(g?"ledger.expandCalls":"ledger.collapseCalls"),onClick:a=>{a.stopPropagation(),k(l.recordId)},children:g?"▸":"▾"}),null===n?l.text:(0,d.jsx)("span",{className:N().placeholder,children:n})]}),(0,d.jsx)("span",{className:N().metric,children:m?P(l.input):""}),(0,d.jsx)("span",{className:N().metric,children:m?P(l.output):""}),(0,d.jsx)("span",{className:N().metric,children:m?P(l.cacheRead):""}),(0,d.jsx)("span",{className:N().time,children:l.running?(0,d.jsx)("span",{className:N().pending,role:"img","aria-label":a("status.pending"),title:a("status.pending")}):null===l.timeSeconds?"":i(l.timeSeconds)})]})});function R({t:a,records:b,selectedId:c,focusIndexes:f,collapsedAssistants:g,collapsibleAssistants:h,hasEarlier:i,onLoadEarlier:j,scrollRequest:k,onSelect:l,onToggleTurn:m,onToggleAssistant:n,sectionLabel:o}){let r=(0,e.useRef)(null),s=(0,e.useRef)(!0),t=(0,e.useRef)(null),[u,v]=(0,e.useState)(!1),w=(0,e.useRef)(null);(0,e.useRef)(k);let[x,y]=(0,e.useState)(q),z=function(a,b){if(null!==b.pin){let c=a.findLastIndex(a=>p(a)===b.pin);if(c>=0)return{start:Math.max(0,c-b.extendUp),pinIndex:c,window:b}}let c=Math.max(0,a.length-120),d=a[c];return void 0===d?{start:c,pinIndex:c,window:b}:{start:c,pinIndex:c,window:{pin:p(d),extendUp:0}}}(b,x);z.window!==x&&y(z.window);let{start:A,pinIndex:B}=z,C=(0,e.useCallback)(a=>{y(b=>a>b.extendUp?{...b,extendUp:a}:b)},[]),D=(0,e.useCallback)(()=>{let a=r.current;null!==a&&(t.current=a.scrollHeight-a.scrollTop,C(x.extendUp+200))},[C,x.extendUp]),E=(0,e.useCallback)(()=>{let a=r.current;null!==a&&(s.current=a.scrollHeight-a.scrollTop-a.clientHeight<48,A>0&&a.scrollTop<400&&D())},[D,A]),F=(0,e.useCallback)((a,c)=>{let d=r.current;if(null===d)return;let e=d.querySelector(`[data-record-index="${a}"]`);if(null!==e)return void e.scrollIntoView({block:c});let f=b.findIndex(b=>void 0===b.collapsedSummary&&b.cell.index===a);f<0||f>=A||(w.current={index:a,block:c},C(B-f+100))},[C,B,b,A]),G=(0,e.useCallback)(()=>{let a=r.current;if(null!==a&&!u){if(A>0)return void D();t.current=a.scrollHeight-a.scrollTop,C(B+200),v(!0),j().then(a=>{a||(t.current=null)}).finally(()=>{v(!1)})}},[C,u,j,B,D,A]);return(0,d.jsxs)("div",{ref:r,className:N().ledger,role:"listbox","aria-label":a("ledger.aria"),tabIndex:0,onScroll:E,onKeyDown:a=>{if("Escape"===a.key){if(null===c)return;a.preventDefault(),l(null);return}if(!["ArrowDown","ArrowUp","Home","End"].includes(a.key))return;a.preventDefault();let d=b.filter(a=>void 0===a.collapsedSummary);if(0===d.length)return;let e=d.findIndex(a=>a.cell.recordId===c),f="Home"===a.key?0:"End"===a.key?d.length-1:"ArrowDown"===a.key?Math.min(d.length-1,e+1):Math.max(0,-1===e?d.length-1:e-1),g=d[f];void 0!==g&&(l(g.cell.recordId),F(g.cell.index,"nearest"))},onClick:()=>{l(null)},children:[(A>0||i)&&(0,d.jsx)("div",{className:N().historyRow,children:(0,d.jsx)("button",{type:"button",className:N().historyButton,disabled:u,onClick:G,children:u?a("history.loadingEarlier"):a("history.loadEarlier")})}),0===b.length&&(0,d.jsx)("p",{className:N().empty,children:a("ledger.noMatches")}),b.slice(A).map((b,i)=>{let{cell:j}=b,k=A>0&&0===i;return(0,d.jsxs)(e.Fragment,{children:[(b.turnStart||k)&&(0,d.jsxs)("div",{className:N().turnHeader,children:[(0,d.jsx)("button",{type:"button",className:N().turnTitle,disabled:null===b.turn,onClick:a=>{a.stopPropagation(),null!==b.turn&&m(b.turn)},children:o(b.turn)}),(0,d.jsxs)("span",{className:N().turnColumns,"aria-hidden":"true",children:[(0,d.jsx)("span",{children:a("column.input")}),(0,d.jsx)("span",{children:a("column.output")}),(0,d.jsx)("span",{children:a("column.cache")}),(0,d.jsx)("span",{children:a("column.time")})]})]}),b.groupStart&&("message"===j.kind||"compacted"===j.kind)&&void 0===b.collapsedSummary&&(0,d.jsxs)("div",{className:N().groupHeader,children:[(0,d.jsx)("span",{className:N().groupTitle,children:b.group}),b.groupDescription&&(0,d.jsx)("span",{className:N().groupDescription,children:b.groupDescription})]}),(0,d.jsx)(Q,{t:a,record:b,selected:j.recordId===c&&void 0===b.collapsedSummary,dimmed:null!==f&&!f.has(j.index),hasCalls:"message"===j.kind&&h.has(j.recordId),callsCollapsed:g.has(j.recordId),onSelect:l,onToggleTurn:m,onToggleAssistant:n})]},p(b))})]})}var S=c(75808),T=c.n(S);function U(a){return new Date(a).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3})}function V(a,b){return a<=b?{start:a,end:b}:{start:b,end:a}}function W(a){return Math.min(1,Math.max(0,a))}function X(a,b,c,d,e){let f=V(Math.min(e,Math.max(d,a.start)),Math.min(e,Math.max(d,a.end)));return{start:(f.start-b)/c,end:(f.end-b)/c}}function Y({t:a}){return(0,d.jsxs)("div",{className:T().labels,"aria-hidden":"true",children:[(0,d.jsx)("span",{children:a("column.input")}),(0,d.jsx)("span",{children:a("column.model")}),(0,d.jsx)("span",{children:a("column.tools")})]})}function Z({loading:a,onHover:b,onLoad:c,t:e}){return(0,d.jsx)("button",{type:"button",className:T().earlierHistory,"data-earlier-history":!0,"data-loading":a||void 0,title:e(a?"history.loadingEarlier":"history.clickToLoadEarlier"),"aria-label":e(a?"history.loadingEarlierAria":"history.loadEarlier"),"aria-disabled":a||void 0===c,onClick:c,onPointerEnter:a=>{a.stopPropagation(),b()},onPointerMove:a=>{a.stopPropagation()},onPointerDown:a=>{a.stopPropagation()},children:"…"})}let $=(0,e.memo)(function({t:a,turns:b,mode:c,range:f,hasEarlierRecords:g=!1,onLoadEarlier:i,selectedIndex:j=null,searchMatchIndexes:k=null,onRangeChange:l,onRecordSelect:m,onRecordFocus:n}){let o=(0,e.useMemo)(()=>v(b,c),[c,b]),p=(0,e.useMemo)(()=>new Map(b.flatMap(a=>a.groups.flatMap(a=>a.cells.map(a=>{let b,c;return[a.index,(b=null!==a.timeSeconds&&Number.isFinite(a.timeSeconds)?Math.max(0,1e3*a.timeSeconds):void 0,c=null!==a.startedAt&&void 0!==a.startedAt&&Number.isFinite(a.startedAt)?a.startedAt:void 0,{...void 0===b?{}:{durationMs:b},...void 0===c?{}:{startedAt:c}})]})))),[b]),q=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useRef)(null),t=(0,e.useRef)(null),[u,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(!1),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(!1);(0,e.useEffect)(()=>{null!==o&&null!==f&&(f.end<o.start||f.start>o.end)&&l(null)},[o,l,f]),(0,e.useEffect)(()=>{null!==o&&(G(!1),E(a=>null!==a&&(a.end<o.start||a.start>o.end)?null:a))},[o]),(0,e.useEffect)(()=>{if(null===o||null===j)return;let a=o.spans.find(a=>a.index===j);void 0!==a&&(G(!0),E(b=>{if(null===b||a.end>b.start&&a.start<b.end)return b;let c=Math.max(1,b.end-b.start),d=Math.min(Math.max(a.end<=b.start?a.start:a.end-c,o.start),Math.max(o.start,o.end-c));return d===b.start?b:{start:d,end:d+c}}))},[o,j]);let H=Math.max(1,(o?.end??0)-(o?.start??0)),I=Math.min(H,Math.max(1,(D?.end??0)-(D?.start??0))),J=null===o||null===D?o?.start??0:Math.min(Math.max(D.start,o.start),o.end-I),K=null===D?H:I,L=null===D?o?.start??0:J,M=g&&null!==o&&L===o.start,N=void 0===i||z?void 0:()=>{A(!0),i().finally(()=>{A(!1)})},O=null===o?void 0:{"--trajectory-domain-left":`${-(L-o.start)/K*100}%`,"--trajectory-domain-width":`${H/K*100}%`},P=null===o||null===f?null:X(f,L,K,o.start,o.end),Q=(null===o||null===u?null:X(u,L,K,o.start,o.end))??P,R=u??f;if((0,e.useEffect)(()=>{let a=s.current;if(null===a)return;let b=a=>{a.preventDefault();let b=t.current;if(null===b||null===o)return;G(!1);let d=b.getBoundingClientRect(),e=W((a.clientX-d.left)/Math.max(1,d.width)),f=Math.min(H,Math.max(Math.min("sequence"===c?4:20,H),K*Math.exp(.0015*a.deltaY)));if(f>=.999*H)return void E(null);let g=Math.min(Math.max(L+e*K-e*f,o.start),o.end-f);E({start:g,end:g+f})};return a.addEventListener("wheel",b,{passive:!1}),()=>{a.removeEventListener("wheel",b)}},[K,L,H,c,o]),null===o)return(0,d.jsx)("section",{ref:s,className:T().root,"aria-label":a("timeline.aria"),children:(0,d.jsxs)("div",{className:T().plot,children:[(0,d.jsx)(Y,{t:a}),(0,d.jsxs)("div",{className:T().track,children:[(0,d.jsx)("span",{className:T().empty,children:a("timeline.noTimingData")}),g&&(0,d.jsx)(Z,{loading:z,onHover:()=>{y(null)},onLoad:N,t:a})]})]})});let S=Math.min(K,H/o.spans.length),$=a=>{let b=a.currentTarget.getBoundingClientRect();return W((a.clientX-b.left)/Math.max(1,b.width))},_=a=>{let b=a.target instanceof HTMLElement?a.target:null,c=b?.closest("[data-timeline-record-index]")?.dataset.timelineRecordIndex;if(void 0===c)return null;let d=Number(c);return Number.isFinite(d)?d:null};return(0,d.jsx)("section",{ref:s,className:T().root,"aria-label":a("timeline.aria"),children:(0,d.jsxs)("div",{className:T().plot,children:[(0,d.jsx)(Y,{t:a}),(0,d.jsxs)("div",{ref:t,className:T().track,"data-panning":B||void 0,"aria-label":a("timeline.overviewAria"),tabIndex:0,onKeyDown:a=>{"Escape"===a.key&&null!==f&&(a.preventDefault(),l(null))},onPointerDown:a=>{if(2===a.button){r.current={anchorClientX:a.clientX,anchorStart:L,moved:!1,pannable:null!==D,pointerId:a.pointerId},null!==D&&G(!1),C(!0),"function"==typeof a.currentTarget.setPointerCapture&&a.currentTarget.setPointerCapture(a.pointerId);return}if(0!==a.button)return;let b=$(a),c=L+b*K,d=_(a);y({fraction:b,recordIndex:d}),q.current={pointerId:a.pointerId,anchorTime:c,anchorClientX:a.clientX,recordIndex:d},"function"==typeof a.currentTarget.setPointerCapture&&a.currentTarget.setPointerCapture(a.pointerId),w({start:c,end:c})},onPointerMove:a=>{let b=a.currentTarget.getBoundingClientRect(),c=$(a);y({fraction:c,recordIndex:_(a)});let d=r.current;if(null!==d&&d.pointerId===a.pointerId){if(Math.abs(a.clientX-d.anchorClientX)>=3&&(d.moved=!0),!d.pannable)return;let c=(a.clientX-d.anchorClientX)/Math.max(1,b.width),e=Math.min(Math.max(d.anchorStart-c*K,o.start),o.end-K);E({start:e,end:e+K});return}let e=q.current;if(null===e||e.pointerId!==a.pointerId)return;let f=L;if(null!==D){let c=a.clientX-b.left,d=Math.min(32,Math.max(1,.08*b.width)),e=c<d?-1:+(c>b.width-d);if(0!==e){let a=W((e<0?d-c:c-(b.width-d))/d);(f=Math.min(Math.max(L+e*K*.025*Math.max(.2,a),o.start),o.end-K))!==L&&(G(!1),E({start:f,end:f+K}))}}let g=f+c*K;w(V(e.anchorTime,g))},onPointerUp:a=>{var b,c,d;let e,f,g=r.current;if(null!==g&&g.pointerId===a.pointerId){let b=g.moved||Math.abs(a.clientX-g.anchorClientX)>=3;r.current=null,C(!1),b||l(null);return}let h=q.current;if(null===h||h.pointerId!==a.pointerId)return;let i=$(a),j=L+i*K,k=V(h.anchorTime,j);y({fraction:i,recordIndex:_(a)}),q.current=null,w(null);let p=3>Math.abs(a.clientX-h.anchorClientX),s=p&&null!==h.recordIndex?o.spans.find(a=>a.index===h.recordIndex):void 0;if(void 0!==s){l(null),m?.(s.index);return}if(l(k.end-k.start<S?(b=p?k.start:(k.start+k.end)/2,c=o.start,{start:f=Math.min(Math.max(b-(e=Math.min((d=o.end)-c,Math.max(0,S)))/2,c),d-e),end:f+e}):k),p){let a=k.start,b=o.spans.reduce((b,c)=>{let d=a<b.start?b.start-a:a>b.end?a-b.end:0;return(a<c.start?c.start-a:a>c.end?a-c.end:0)<d?c:b});n?.(b.index)}},onPointerCancel:()=>{q.current=null,r.current=null,w(null),y(null),C(!1)},onPointerLeave:()=>{null===q.current&&null===r.current&&y(null)},onDoubleClick:a=>{a.preventDefault(),l(null)},onContextMenu:a=>{a.preventDefault()},children:[M&&(0,d.jsx)(Z,{loading:z,onHover:()=>{y(null)},onLoad:N,t:a}),null!==x&&null===x.recordIndex&&null===u&&(0,d.jsx)("div",{className:T().hoverLine,"aria-hidden":"true",style:{"--trajectory-hover-left":`${100*x.fraction}%`}}),null!==Q&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:T().selection,"data-dragging":null===u?void 0:"true","aria-hidden":"true",style:{"--trajectory-selection-left":`${100*Q.start}%`,"--trajectory-selection-width":`${(Q.end-Q.start)*100}%`}}),(0,d.jsx)("div",{className:T().selectionEdges,"data-dragging":null===u?void 0:"true","aria-hidden":"true",style:{"--trajectory-selection-left":`${100*Q.start}%`,"--trajectory-selection-width":`${(Q.end-Q.start)*100}%`}})]}),(0,d.jsx)("div",{className:T().turnBoundaries,"data-animate-viewport":F||void 0,"aria-hidden":"true",style:O,children:o.turnBoundaries.filter(a=>a.time>o.start&&a.time>=L&&a.time<=L+K).map(a=>(0,d.jsx)("span",{className:T().turnBoundary,style:{"--trajectory-turn-left":`${(a.time-o.start)/H*100}%`}},a.turn))}),(0,d.jsx)("div",{className:T().lanes,"data-animate-viewport":F||void 0,style:O,children:o.spans.filter(a=>a.index===j||a.end>=L&&a.start<=L+K).map(b=>{let e=(b.start-o.start)/H,f=(b.end-b.start)/H*100,g=x?.recordIndex===b.index;return(0,d.jsx)("span",{"aria-hidden":"true",className:T().span,"data-timeline-span":b.kind,"data-timeline-record-index":b.index,"data-error":b.isError||void 0,"data-equal-duration":"sequence"===c||void 0,"data-current":b.index===j||void 0,"data-hovered":g||void 0,"data-search-match":null===k?void 0:k.has(b.index)?"true":"false","data-selected":null===R?void 0:b.start<=R.end&&b.end>=R.start?"true":"false",title:g?function(a,b,c){let d=function(a,b){switch(a){case"user":return b("kind.user");case"context":return b("kind.context");case"compacted":return b("kind.compacted");case"message":return b("kind.assistant");case"tool":return b("kind.tool")}}(a,c);if(void 0===b)return d;let e=void 0===b.durationMs?null:c("timeline.total",{duration:h(b.durationMs)});return[d,void 0===b.startedAt?null:void 0===b.durationMs?c("timeline.started",{time:U(b.startedAt)}):`${U(b.startedAt)} → ${U(b.startedAt+b.durationMs)}`,e].filter(a=>null!==a&&""!==a).join("\n")}(b.kind,p.get(b.index),a):void 0,style:{"--trajectory-span-left":`${100*e}%`,"--trajectory-span-width":`${f}%`,"--trajectory-span-gap":`min(${.08*f}%, 1px)`,"--trajectory-span-lane":b.lane}},b.index)})})]})]})})});var _=c(46968),aa=c.n(_);function ab({actualDuration:a,onActualDurationChange:b,allTurnsCollapsed:c,onToggleAllTurns:e,allAssistantsCollapsed:f,onToggleAllAssistants:g,searchQuery:h,onSearchQueryChange:i,t:j}){return(0,d.jsx)("div",{className:aa().root,role:"toolbar","aria-label":j("toolbar.aria"),children:(0,d.jsxs)("div",{className:aa().inner,children:[(0,d.jsxs)("div",{className:aa().actions,children:[(0,d.jsxs)("button",{type:"button",className:aa().toggle,"aria-label":j("toolbar.useActualDuration"),"aria-pressed":a,title:j(a?"toolbar.useEqualWidth":"toolbar.useActualDuration"),onClick:()=>{b(!a)},children:[(0,d.jsxs)("svg",{className:aa().toggleIcon,viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"5.25"}),(0,d.jsx)("path",{d:"M8 4.75V8l2.25 1.5"})]}),j("toolbar.duration")]}),(0,d.jsxs)("button",{type:"button",className:aa().action,"aria-label":j(c?"toolbar.expandTurns":"toolbar.collapseTurns"),"aria-pressed":c,title:j(c?"toolbar.expandTurns":"toolbar.collapseTurns"),onClick:e,children:[(0,d.jsx)("span",{className:aa().actionIcon,"aria-hidden":"true",children:c?"⊞":"⊟"}),j("toolbar.turns")]}),(0,d.jsxs)("button",{type:"button",className:aa().action,"aria-label":j(f?"toolbar.expandCalls":"toolbar.collapseCalls"),"aria-pressed":f,title:j(f?"toolbar.expandCalls":"toolbar.collapseCalls"),onClick:g,children:[(0,d.jsx)("span",{className:aa().actionIcon,"aria-hidden":"true",children:f?"⊞":"⊟"}),j("toolbar.calls")]})]}),(0,d.jsxs)("div",{className:aa().search,children:[(0,d.jsxs)("svg",{className:aa().searchIcon,width:"11",height:"11",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"7",cy:"7",r:"4.75",stroke:"currentColor",strokeWidth:"1.5"}),(0,d.jsx)("path",{d:"M10.6 10.6 14 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),(0,d.jsx)("input",{type:"search",className:aa().searchInput,"aria-label":j("toolbar.search"),placeholder:j("toolbar.searchPlaceholder"),value:h,onChange:a=>{i(a.currentTarget.value)}})]})]})})}var ac=c(8870),ad=c.n(ac);function ae(a,b){let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c}let af=(0,e.memo)(function({sessionId:a,running:b}){let c,{t:i}=(0,f.s)(),j=(0,e.useMemo)(()=>(a,b)=>i(`trajectory.${a}`,b),[i]),p=(0,g.p)(a,b),{transcript:q,status:t,loadEarlier:u}=p,[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)(""),[C,D]=(0,e.useState)(()=>new Set),[E,F]=(0,e.useState)(()=>new Set),[G,H]=(0,e.useState)(null),[I,J]=(0,e.useState)(null),K=(0,e.useMemo)(()=>{var a,c;let d,e,f,g,i,p,r,s,t,u,v,w;return a=q.messages,c=q.entryIds,d=new Set,e=new Map,a.forEach((a,b)=>{if("assistant"===a.role)for(let b of a.content??[])"toolCall"===b.type&&d.add(b.toolCallId);else"toolResult"===a.role&&e.set(a.toolCallId,{message:a,entryId:c[b]??`#${b}`})}),f=j("group.message"),g=[],i={current:null},p=0,r=0,s=0,t=0,u=a=>({...a,index:++t}),v=()=>{p+=1,r=0;let a={turn:p,groups:[]};return g.push(a),i.current=a,a},w=a=>{let b=i.current;if(null===b){let a=g.at(-1);a&&null===a.turn&&(b=a)}if(null===b)return void g.push({turn:null,groups:[{title:f,cells:[a]}]});let c=b.groups.at(-1);c&&c.title===f?c.cells.push(a):b.groups.push({title:f,cells:[a]})},a.forEach((h,p)=>{let q=c[p]??`#${p}`;switch(h.role){case"user":let t;v().groups.push({title:f,cells:[u({recordId:q,kind:"user",text:n(t=l(h.content)),inputDetail:t,raw:h,timeSeconds:null,startedAt:k(h.timestamp)})]});break;case"custom":{let b;if("compaction"!==h.customType){let a;w(u((a=l(h.content),{recordId:q,kind:"context",text:`${h.customType} \xb7 ${n(a)}`,inputDetail:a,raw:h,timeSeconds:null,startedAt:k(h.timestamp)})));break}let c={title:j("group.compaction",{seq:s+=1}),cells:[u({recordId:q,kind:"compacted",text:n(b=l(h.content)),inputDetail:b,raw:h,timeSeconds:null,startedAt:k(h.timestamp)})]},d=a[p+1];i.current&&(d?.role==="assistant"||d?.role==="toolResult")?i.current.groups.push(c):(g.push({turn:null,groups:[c]}),i.current=null);break}case"bashExecution":let x;w(u((x=!0===h.cancelled||void 0!==h.exitCode&&0!==h.exitCode,{recordId:q,kind:"tool",text:`bash \xb7 ${n(h.command)}`,toolName:"bash",inputDetail:h.command,outputDetail:h.output,raw:h,...x?{isError:!0}:{},timeSeconds:null,startedAt:k(h.timestamp)})));break;case"assistant":{let a,c,d,f,g,p=i.current??v();r+=1;let s=[u((a=m(h,"text"),c=m(h,"thinking"),d="error"===h.stopReason||"aborted"===h.stopReason,f=k(h.durationMs),g=h.usage,{recordId:q,kind:"message",text:n(a||(d?h.errorMessage??"":"")),...a?{outputDetail:a}:{},...c?{thinkingDetail:c}:{},raw:h,...d?{isError:!0}:{},timeSeconds:null===f?null:f/1e3,startedAt:k(h.timestamp),...g?{input:g.input,output:g.output,cacheRead:g.cacheRead,cacheWrite:g.cacheWrite,...null===k(g.cost?.total)?{}:{cost:g.cost.total}}:{},...h.model?{model:h.model}:{},...h.provider?{provider:h.provider}:{},...h.stopReason?{stopReason:h.stopReason}:{}}))];for(let a of h.content??[])"toolCall"===a.type&&s.push(u(function(a,b,c,d){let e=b?.message,f=k(e?.durationMs),g=k(e?.timestamp),h=n(o(a.input));return{recordId:`${c}:${a.toolCallId}`,kind:"tool",text:h?`${a.toolName} \xb7 ${h}`:a.toolName,toolName:a.toolName,callId:a.toolCallId,...e?{outputDetail:l(e.content)}:d?{running:!0}:{interrupted:!0},raw:{call:a,result:e},...e?.isError?{isError:!0}:{},timeSeconds:null===f?null:f/1e3,startedAt:null!==f&&null!==g?g-f:null}}(a,e.get(a.toolCallId),q,b)));p.groups.push({title:j("group.step",{step:r}),cells:s});break}case"toolResult":let y,z;if(d.has(h.toolCallId))break;w(u((y=k(h.durationMs),z=k(h.timestamp),{recordId:q,kind:"tool",text:h.toolName??"tool",...h.toolName?{toolName:h.toolName}:{},callId:h.toolCallId,outputDetail:l(h.content),raw:{result:h},...h.isError?{isError:!0}:{},timeSeconds:null===y?null:y/1e3,startedAt:null!==y&&null!==z?z-y:null})))}}),g.map(a=>({turn:a.turn,groups:a.groups.map(a=>{let b=function(a){let b=1/0,c=-1/0,d=0,e=new Map;for(let f of a)"tool"===f.kind&&f.toolName&&e.set(f.toolName,(e.get(f.toolName)??0)+1),"number"==typeof f.startedAt&&(d+=1,b=Math.min(b,f.startedAt),c=Math.max(c,f.startedAt+(f.timeSeconds??0)*1e3));let f=[];for(let[a,g]of(d>0&&c>b&&f.push(h(c-b)),e))f.push(g>1?`${a}\xd7${g}`:a);return f.length>0?f.join(" "):void 0}(a.cells);return{title:a.title,...b?{description:b}:{},cells:a.cells}})}))},[q.messages,q.entryIds,j,b]),M=(0,e.useMemo)(()=>K.flatMap((a,b)=>{let c=!0,d=a.groups.flatMap(d=>d.cells.map((e,f)=>{let g=c&&("compacted"!==e.kind||null===a.turn);return g&&(c=!1),{turn:a.turn,section:b,group:d.title,...d.description?{groupDescription:d.description}:{},groupStart:0===f,turnStart:g,turnEnd:!1,cell:e}})),e=d.at(-1);return e&&(e.turnEnd=!0),d}),[K]),N=w?"duration":"sequence",O=(0,e.useMemo)(()=>new s,[]),P=(0,e.useMemo)(()=>{if(""===A.trim())return null;O.update(K);let a=O.search(A);if(null===a)return null;let b=new Set;for(let c of M)a.has(c.cell.recordId)&&b.add(c.cell.index);return b},[M,O,A,K]),Q=(0,e.useMemo)(()=>null===y?null:function(a,b,c="sequence"){let d=v(a,c);return new Set(d?.spans.filter(a=>a.start<=b.end&&a.end>=b.start).map(a=>a.index))}(K,y,N),[N,y,K]),S=(0,e.useMemo)(()=>{if(null!==P){let a,b;return a=M.filter(a=>P.has(a.cell.index)).map(a=>({...a,groupStart:!1,turnStart:!1,turnEnd:!1})),b=new Set,a.forEach((c,d)=>{let e=a[d-1],f=a[d+1];c.groupStart=void 0===e||e.section!==c.section||e.group!==c.group,c.turnStart=!b.has(c.section)&&("compacted"!==c.cell.kind||null===c.turn),c.turnStart&&b.add(c.section),c.turnEnd=void 0===f||f.section!==c.section}),a}let a=0===C.size?M:function(a,b,c){let d=new Map;for(let b of a){if(null===b.turn)continue;let a=d.get(b.turn)??[];a.push(b),d.set(b.turn,a)}return a.flatMap(a=>{var e;let f,g;if(null===a.turn||!b.has(a.turn))return[a];let h=d.get(a.turn)??[a];return h.length<=1?[a]:a.cell.index!==h[0]?.cell.index?[]:[{...a,turnEnd:!1},{...a,groupStart:!1,turnStart:!1,turnEnd:!0,collapsedSummary:(e=h.slice(1),f=new Set(e.filter(a=>"message"===a.cell.kind).map(a=>a.group)).size,g=e.filter(a=>"tool"===a.cell.kind).length,[r(c,"steps",f),r(c,"toolCalls",g)].join(" \xb7 ")),collapsedSummaryKind:"turn"}]})}(M,C,j);return 0===E.size?a:function(a,b,c){let d=[];for(let e=0;e<a.length;e++){let f=a[e];if(void 0===f||(d.push(f),"message"!==f.cell.kind||!b.has(f.cell.recordId)))continue;let g=[];for(let b=e+1;b<a.length;b++){let c=a[b];if(void 0===c||void 0!==c.collapsedSummary||"tool"!==c.cell.kind)break;g.push(c)}0!==g.length&&(d[d.length-1]={...f,turnEnd:!1},d.push({...f,groupStart:!1,turnStart:!1,turnEnd:g.at(-1)?.turnEnd??!1,collapsedSummary:function(a,b){let c=[...new Set(a.map(a=>a.cell.toolName??"").filter(Boolean))],d=r(b,"toolCalls",a.length);return c.length>0?`${d} \xb7 ${c.join(", ")}`:d}(g,c),collapsedSummaryKind:"assistant"}),e+=g.length)}return d}(a,E,j)},[M,E,C,P,j]),T=(0,e.useMemo)(()=>K.flatMap(a=>null===a.turn?[]:a.groups.reduce((a,b)=>a+b.cells.length,0)>1?[a.turn]:[]),[K]),U=(0,e.useMemo)(()=>(function(a){let b=[];for(let c of a)for(let a of c.groups)a.cells.forEach((c,d)=>{"message"===c.kind&&a.cells[d+1]?.kind==="tool"&&b.push(c.recordId)});return b})(K),[K]),V=(0,e.useMemo)(()=>new Set(U),[U]),W=T.length>0&&T.every(a=>C.has(a)),X=U.length>0&&U.every(a=>E.has(a)),Y=(0,e.useMemo)(()=>null===G?null:M.find(a=>a.cell.recordId===G)??null,[M,G]),Z=(0,e.useCallback)(a=>null===a?j("section.betweenTurns"):j("turn.label",{turn:a}),[j]),_=(0,e.useRef)(S);_.current=S,(0,e.useEffect)(()=>{if(null===Q||0===Q.size)return;let a=_.current.find(a=>void 0===a.collapsedSummary&&Q.has(a.cell.index));a&&J({index:a.cell.index})},[Q]);let aa=(0,e.useCallback)(a=>{if(H(a),null===a||null===Q)return;let b=M.find(b=>b.cell.recordId===a);b&&!Q.has(b.cell.index)&&z(null)},[M,Q]),ac=(0,e.useCallback)(a=>{z(null);let b=M.find(b=>b.cell.index===a);if(b){H(b.cell.recordId);let{turn:a}=b;null!==a&&D(b=>{if(!b.has(a))return b;let c=new Set(b);return c.delete(a),c}),F(a=>{let c=[...a].find(a=>b.cell.recordId.startsWith(`${a}:`));if(void 0===c)return a;let d=new Set(a);return d.delete(c),d})}J({index:a})},[M]),af=(0,e.useCallback)(a=>{J({index:a})},[]),ag=(0,e.useCallback)(a=>{D(b=>ae(b,a))},[]),ah=(0,e.useCallback)(a=>{F(b=>ae(b,a))},[]),ai=(0,e.useCallback)(()=>{D(W?new Set:new Set(T))},[W,T]),aj=(0,e.useCallback)(()=>{F(X?new Set:new Set(U))},[X,U]),ak=(0,e.useCallback)(a=>{x(a),z(null)},[]),al=(0,e.useMemo)(()=>{let a=0,b=1/0,c=-1/0;for(let d of M){let{cell:e}=d;"tool"===e.kind&&(a+=1),"number"==typeof e.startedAt&&(b=Math.min(b,e.startedAt),c=Math.max(c,e.startedAt+(e.timeSeconds??0)*1e3))}return{calls:a,turns:K.filter(a=>null!==a.turn).length,duration:c>b?h(c-b):null}},[M,K]);return c="loading"===t?(0,d.jsx)("p",{className:ad().state,children:j("state.loading")}):"notFound"===t?(0,d.jsx)("p",{className:ad().state,children:j("state.notFound")}):"error"===t?(0,d.jsxs)("div",{className:ad().state,children:[(0,d.jsx)("p",{children:j("state.error",{message:p.error??""})}),(0,d.jsx)("button",{type:"button",className:ad().button,onClick:p.retry,children:j("state.retry")})]}):0===M.length?(0,d.jsx)("p",{className:ad().state,children:j("state.empty")}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(ab,{t:j,actualDuration:w,onActualDurationChange:ak,allTurnsCollapsed:W,onToggleAllTurns:ai,allAssistantsCollapsed:X,onToggleAllAssistants:aj,searchQuery:A,onSearchQueryChange:B}),(0,d.jsx)($,{t:j,turns:K,mode:N,range:y,hasEarlierRecords:q.hasMore,onLoadEarlier:u,selectedIndex:Y?.cell.index??null,searchMatchIndexes:P,onRangeChange:z,onRecordSelect:ac,onRecordFocus:af}),(0,d.jsxs)("div",{className:ad().split,children:[(0,d.jsx)(R,{t:j,records:S,selectedId:Y?.cell.recordId??null,focusIndexes:Q,collapsedAssistants:E,collapsibleAssistants:V,hasEarlier:q.hasMore,onLoadEarlier:u,scrollRequest:I,onSelect:aa,onToggleTurn:ag,onToggleAssistant:ah,sectionLabel:Z},null===P?"all":"matches"),Y&&(0,d.jsx)(L,{t:j,cell:Y.cell,title:`${Z(Y.turn)} \xb7 ${Y.group}`,onClose:()=>{H(null)}})]})]}),(0,d.jsxs)("div",{className:ad().view,children:[(0,d.jsxs)("header",{className:ad().header,children:[b&&(0,d.jsx)("span",{className:ad().live,children:j("header.running")}),"ready"===t&&M.length>0&&(0,d.jsxs)("span",{className:ad().stats,title:q.hasMore?j("stats.loadedOnly"):void 0,children:[al.duration&&(0,d.jsxs)("span",{children:[j("stats.duration")," ",al.duration]}),(0,d.jsxs)("span",{children:[j("stats.turns")," ",al.turns]}),(0,d.jsxs)("span",{children:[j("stats.calls")," ",al.calls]})]}),(0,d.jsx)("span",{className:ad().spacer}),p.error&&"ready"===t&&(0,d.jsx)("span",{className:ad().warn,title:p.error,children:j("state.refreshFailed")})]}),c]})})},75808:a=>{a.exports={root:"TrajectoryTimeline_root__EbHj_",plot:"TrajectoryTimeline_plot__nE8gm",labels:"TrajectoryTimeline_labels__4F8HP",track:"TrajectoryTimeline_track__yr1K9",earlierHistory:"TrajectoryTimeline_earlierHistory__2vEX5",empty:"TrajectoryTimeline_empty__JKbeY",lanes:"TrajectoryTimeline_lanes__oKhPm",turnBoundaries:"TrajectoryTimeline_turnBoundaries__GyoNV",turnBoundary:"TrajectoryTimeline_turnBoundary__sc2YG",span:"TrajectoryTimeline_span__8p1pf",selection:"TrajectoryTimeline_selection__PXIAN",selectionEdges:"TrajectoryTimeline_selectionEdges__QTyLF",hoverLine:"TrajectoryTimeline_hoverLine__rogkc"}}};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";exports.id=6216,exports.ids=[6216],exports.modules={10674:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AC:()=>o,WD:()=>k,cj:()=>m,lz:()=>n});var e=c(73024),f=c(76760),g=c(75430),h=c(80974),i=c.n(h),j=a([g]);function k(a=(0,g.getAgentDir)()){return(0,f.join)(a,"settings.json")}function l(a){if(!(0,e.existsSync)(a))return{};let b=JSON.parse((0,e.readFileSync)(a,"utf8"));if(!("object"==typeof b&&null!==b&&!Array.isArray(b)))throw Error("Invalid settings.json: expected an object");return b}function m(a){if(void 0!==a.defaultTools){if(!Array.isArray(a.defaultTools)||a.defaultTools.some(a=>"string"!=typeof a))throw Error("Invalid settings.json: defaultTools must be an array of strings");return[...a.defaultTools]}}async function n(a,b){if(!(0,e.existsSync)(a))return b({});let c=await i().lock(a,{realpath:!1,retries:10});try{return b(l(a))}finally{await c()}}async function o(a,b){(0,e.mkdirSync)((0,f.dirname)(a),{recursive:!0});try{(0,e.writeFileSync)(a,"{}",{flag:"wx",mode:384})}catch(a){if("EEXIST"!==a.code)throw a}let c=await i().lock(a,{realpath:!1,retries:10});try{let c=l(a),d=b(c);return(0,e.writeFileSync)(a,JSON.stringify(c,null,2),"utf8"),(0,e.chmodSync)(a,384),d}finally{await c()}}g=(j.then?(await j)():j)[0],d()}catch(a){d(a)}})},16216:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{O_:()=>k,f:()=>l});var e=c(31421),f=c(80214),g=c(48571),h=a([g]);function i(a){return a instanceof Error?a.message:String(a)}g=(h.then?(await h)():h)[0];class m{constructor(a){this.deps=a,this.enabled=!1,this.loaded=!1,this.loading=null,this.disposed=!1,this.state="idle",this.child=null,this.epoch=0,this.failedThisRun=!1,this.watchdog=null,this.pending=new Set}status(){let{plan:a}=this.deps;return{enabled:this.enabled,supported:a.supported,...a.supported?{}:{unsupportedReason:a.reason},active:"held"===this.state,...this.failure?{failure:this.failure}:{}}}async ready(){this.loaded||this.startLoading(),await this.loading}refresh(){this.disposed||(this.loaded?(this.enabled||"idle"!==this.state)&&this.sync():this.startLoading())}async setEnabled(a){return this.loaded=!0,this.enabled=a,this.failedThisRun=!1,this.failure=void 0,this.sync(),await this.settled(),this.status()}dispose(){this.disposed=!0,this.epoch+=1,this.state="idle",this.failedThisRun=!1,this.armWatchdog();let a=this.child;if(this.child=null,a)try{a.stdin?.destroy(),a.kill()}catch{}}startLoading(){this.loading||(this.loading=Promise.resolve().then(()=>this.deps.loadEnabled()).then(a=>{this.loaded||(this.enabled=a)},a=>this.deps.log(`could not read the setting, leaving it off: ${i(a)}`)).then(()=>{this.loaded=!0,this.loading=null,this.sync()}))}sync(){if(!this.disposed)try{let a=this.enabled||"idle"!==this.state?this.deps.countRunning():0;0===a&&(this.failedThisRun=!1),this.enabled&&this.deps.plan.supported&&a>0&&!this.failedThisRun?"idle"===this.state&&this.acquire():"idle"!==this.state&&this.release(),this.armWatchdog()}catch(a){this.deps.log(`could not update the sleep hold: ${i(a)}`)}}acquire(){let{plan:a}=this.deps;if(!a.supported)return;let b=++this.epoch;this.state="acquiring";let c=a=>{let b=this.child;this.child=null,b&&this.terminate(b),this.state="idle",this.failedThisRun=!0,this.failure=a,this.deps.log(`could not prevent system sleep (${a})`),this.armWatchdog()};this.track((async()=>{let d=[];for(let c of a.holders){let a=await this.start(c,b);if(b!==this.epoch)return;if(a.ok){this.state="held",this.failure=void 0;return}d.push(`${c.label}: ${a.error}`)}c(d.join("; "))})().catch(a=>{b===this.epoch&&c(i(a))}))}start(a,b){return new Promise(c=>{let d;try{d=this.deps.spawn(a.command,a.args,{stdio:["pipe","pipe","pipe"],windowsHide:!0,env:(0,f.G0)(this.deps.env)})}catch(a){c({ok:!1,error:i(a)});return}this.child=d;let e=!1,g=!1,h="",j="",k=a=>{g||(g=!0,clearTimeout(l),c(a))},l=setTimeout(()=>{this.terminate(d),k({ok:!1,error:`it did not report ready within ${Math.round(this.deps.readyTimeoutMs/1e3)} s`})},this.deps.readyTimeoutMs);l.unref?.(),d.stdin?.on("error",()=>{}),d.stdout?.setEncoding("utf8"),d.stdout?.on("data",a=>{!e&&(h+=a).split(/\r?\n/).includes(f.KJ)&&(e=!0,k({ok:!0}))}),d.stderr?.setEncoding("utf8"),d.stderr?.on("data",a=>{j=(j+a).slice(-2e3)}),d.once("error",a=>{this.child===d&&(this.child=null),k({ok:!1,error:i(a)})}),d.once("exit",(c,f)=>{let g=f??`code ${c}`;e||k({ok:!1,error:j.trim()||`it exited (${g}) before it held the lock`}),this.child!==d||(this.child=null,"held"===this.state&&b===this.epoch&&(this.state="idle",this.failedThisRun=!0,this.failure=`${a.label} stopped unexpectedly (${g})${j.trim()?`: ${j.trim()}`:""}`,this.deps.log(`the sleep hold ended early (${this.failure})`),this.armWatchdog()))})})}release(){this.epoch+=1;let a=this.child;this.child=null,this.state="idle",a&&this.terminate(a)}terminate(a){this.track(new Promise(b=>{if(null!==a.exitCode||null!==a.signalCode)return void b();let c=setTimeout(()=>{try{a.kill("SIGKILL")}catch{}},this.deps.graceMs);c.unref?.();let d=()=>{clearTimeout(c),b()};a.once("exit",d),a.once("error",d)}));try{a.stdin?.destroy(),a.kill()}catch{}}track(a){this.pending.add(a);let b=()=>this.pending.delete(a);return a.then(b,b),a}async settled(){let a,b=new Promise(b=>{a=setTimeout(b,this.deps.readyTimeoutMs+this.deps.graceMs+1e3),a.unref?.()}),c=(async()=>{for(;this.pending.size>0;)await Promise.allSettled([...this.pending])})();await Promise.race([c,b]),clearTimeout(a)}armWatchdog(){if("idle"===this.state&&!this.failedThisRun){this.watchdog&&clearInterval(this.watchdog),this.watchdog=null;return}this.watchdog||(this.watchdog=setInterval(()=>this.sync(),this.deps.watchdogMs),this.watchdog.unref?.())}}function j(){let a=0;for(let b of globalThis.__piSessions?.values()??[])b.isRunning()&&(a+=1);return a}function k(){if(!globalThis.__piSleepInhibitor){let a=function(a={}){return new m({plan:(0,f.t)(),countRunning:j,loadEnabled:()=>(0,g.e2)(),spawn:e.spawn,env:process.env,readyTimeoutMs:1e4,graceMs:2e3,watchdogMs:3e4,log:a=>console.warn(`[pi-web] sleep inhibitor: ${a}`),...a})}();globalThis.__piSleepInhibitor=a,process.once("exit",()=>a.dispose())}return globalThis.__piSleepInhibitor}function l(){try{k().refresh()}catch(a){console.warn(`[pi-web] sleep inhibitor: ${i(a)}`)}}d()}catch(a){d(a)}})},48571:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{PN:()=>i,e2:()=>h});var e=c(73024),f=c(10674),g=a([f]);f=(g.then?(await g)():g)[0];let j="piWebPreventSleep";function h(a=(0,f.WD)()){return(0,f.lz)(a,a=>!0===a[j])}async function i(a,b=(0,f.WD)()){(a||(0,e.existsSync)(b))&&await (0,f.AC)(b,b=>{a?b[j]=!0:delete b[j]})}d()}catch(a){d(a)}})},80214:(a,b,c)=>{c.d(b,{G0:()=>k,KJ:()=>f,t:()=>j});var d=c(73024),e=c(76760);let f="ready",g="Pi Web is running a task",h=`echo ${f}; exec cat >/dev/null`,i=`$ErrorActionPreference = 'Stop'
|
|
2
|
+
Add-Type -Namespace PiWeb -Name Power -MemberDefinition '[System.Runtime.InteropServices.DllImport("kernel32.dll")] public static extern uint SetThreadExecutionState(uint esFlags);'
|
|
3
|
+
[void][PiWeb.Power]::SetThreadExecutionState(2147483649)
|
|
4
|
+
[Console]::Out.WriteLine('${f}')
|
|
5
|
+
[Console]::Out.Flush()
|
|
6
|
+
[void][Console]::In.ReadToEnd()`;function j(a={platform:process.platform,env:process.env,hasCommand:a=>{for(let b of(process.env.PATH??process.env.Path??"").split(e.delimiter))if(b)try{return(0,d.accessSync)((0,e.join)(b,a),d.constants.X_OK),!0}catch{}return!1},fileExists:d.existsSync}){switch(a.platform){case"darwin":return function({fileExists:a}){let b="/usr/bin/caffeinate";return a(b)?{supported:!0,holders:[{label:"caffeinate",command:b,args:["-i","/bin/sh","-c",h]}]}:{supported:!1,reason:`caffeinate was not found at ${b}.`}}(a);case"linux":return function({env:a,hasCommand:b}){let c=[];/(^|:)GNOME($|:)/i.test(a.XDG_CURRENT_DESKTOP??"")&&b("gnome-session-inhibit")&&c.push({label:"gnome-session-inhibit",command:"gnome-session-inhibit",args:["--app-id","pi-web","--reason",g,"--inhibit","suspend","/bin/sh","-c",h]});let d=["systemd-inhibit","elogind-inhibit"].find(a=>b(a));return(d&&c.push({label:d,command:d,args:["--what=idle","--who=Pi Web",`--why=${g}`,"--mode=block","/bin/sh","-c",h]}),0===c.length)?{supported:!1,reason:"No sleep inhibitor was found. Install systemd (systemd-inhibit), elogind (elogind-inhibit) or, on GNOME, gnome-session-inhibit."}:{supported:!0,holders:c}}(a);case"win32":return function({env:a,hasCommand:b,fileExists:c}){let d=e.win32.join(a.SystemRoot??a.windir??"C:\\Windows","System32","WindowsPowerShell","v1.0","powershell.exe"),f=c(d)?d:b("powershell.exe")?"powershell.exe":null;return f?{supported:!0,holders:[{label:"powershell",command:f,args:["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand",Buffer.from(i,"utf16le").toString("base64")]}]}:{supported:!1,reason:"Windows PowerShell was not found."}}(a);default:return{supported:!1,reason:`Preventing system sleep is not supported on ${a.platform}.`}}}function k(a){let b={...a};for(let a of Object.keys(b))"PI_WEB_PASSWORD"===a.toUpperCase()&&delete b[a];return b}}};
|