@tasselx/pi-web 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +12 -10
  3. package/.next/build-manifest.json +4 -4
  4. package/.next/prerender-manifest.json +1 -157
  5. package/.next/react-loadable-manifest.json +2 -2
  6. package/.next/required-server-files.js +6 -6
  7. package/.next/required-server-files.json +6 -6
  8. package/.next/routes-manifest.json +12 -0
  9. package/.next/server/app/_global-error/page.js +2 -2
  10. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/_global-error.html +1 -1
  12. package/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page.js +1 -1
  17. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/_not-found.html +1 -1
  19. package/.next/server/app/_not-found.rsc +4 -4
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
  23. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  24. package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  26. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  27. package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/agent/[id]/lease/route.js +1 -1
  29. package/.next/server/app/api/agent/[id]/lease/route.js.nft.json +1 -1
  30. package/.next/server/app/api/agent/[id]/lease/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/agent/[id]/route.js +1 -1
  32. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
  33. package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/agent/debug/route.js +3 -0
  35. package/.next/server/app/api/agent/debug/route.js.nft.json +1 -0
  36. package/.next/server/app/api/agent/debug/route_client-reference-manifest.js +1 -0
  37. package/.next/server/app/api/agent/new/route.js +1 -1
  38. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  39. package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/agent/running/route.js +1 -1
  41. package/.next/server/app/api/agent/running/route.js.nft.json +1 -1
  42. package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/app-update/route.js +1 -1
  44. package/.next/server/app/api/app-update/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  46. package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  48. package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  50. package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/auth/providers/route.js +1 -1
  52. package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/cache-miss-notices/route.js +1 -1
  54. package/.next/server/app/api/cache-miss-notices/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/cwd/browse/route.js +1 -1
  56. package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/cwd/pick/route.js +1 -1
  58. package/.next/server/app/api/cwd/pick/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/cwd/validate/route.js +1 -1
  60. package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/default-cwd/route.js +1 -1
  62. package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/file-index/route.js +1 -1
  64. package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/files/[...path]/route.js +3 -3
  66. package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/git/diff/route.js +2 -2
  68. package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/git/status/route.js +2 -2
  70. package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/home/route.js +1 -1
  72. package/.next/server/app/api/home/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/mcp/route.js +2 -2
  74. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  75. package/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/mcp/sign-in/[flowId]/route.js +1 -1
  77. package/.next/server/app/api/mcp/sign-in/[flowId]/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/mcp/sign-in/route.js +1 -1
  79. package/.next/server/app/api/mcp/sign-in/route.js.nft.json +1 -1
  80. package/.next/server/app/api/mcp/sign-in/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/mcp/test/route.js +1 -1
  82. package/.next/server/app/api/mcp/test/route.js.nft.json +1 -1
  83. package/.next/server/app/api/mcp/test/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/models/default/route.js +1 -1
  85. package/.next/server/app/api/models/default/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/models/enabled/route.js +1 -1
  87. package/.next/server/app/api/models/enabled/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/models/refresh/route.js +1 -1
  89. package/.next/server/app/api/models/refresh/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/models/route.js +1 -1
  91. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  93. package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/models-config/discover/route.js +1 -1
  95. package/.next/server/app/api/models-config/discover/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/models-config/route.js +1 -1
  97. package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/models-config/test/route.js +1 -1
  99. package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/open-in-explorer/route.js +1 -1
  101. package/.next/server/app/api/open-in-explorer/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/plugins/check/route.js +1 -1
  103. package/.next/server/app/api/plugins/check/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/plugins/route.js +1 -1
  105. package/.next/server/app/api/plugins/route.js.nft.json +1 -1
  106. package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/project-trust/route.js +1 -1
  108. package/.next/server/app/api/project-trust/route.js.nft.json +1 -1
  109. package/.next/server/app/api/project-trust/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/provider-usage/query/route.js +1 -1
  111. package/.next/server/app/api/provider-usage/query/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/push/config/route.js +1 -1
  113. package/.next/server/app/api/push/config/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/push/subscribe/route.js +1 -1
  115. package/.next/server/app/api/push/subscribe/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/sessions/[id]/auto-name/route.js +2 -2
  117. package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
  118. package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  120. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
  121. package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
  123. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js +1 -1
  125. package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/sessions/[id]/export/route.js +2 -2
  127. package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
  129. package/.next/server/app/api/sessions/[id]/fork/route.js.nft.json +1 -1
  130. package/.next/server/app/api/sessions/[id]/fork/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  132. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  133. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  135. package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
  136. package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/sessions/delete/route.js +1 -1
  138. package/.next/server/app/api/sessions/delete/route.js.nft.json +1 -1
  139. package/.next/server/app/api/sessions/delete/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/sessions/route.js +1 -1
  141. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  142. package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/sessions/search/route.js +1 -1
  144. package/.next/server/app/api/sessions/search/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/sessions/stats/route.js +1 -1
  146. package/.next/server/app/api/sessions/stats/route.js.nft.json +1 -1
  147. package/.next/server/app/api/sessions/stats/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/sessions/ui-state/route.js +1 -1
  149. package/.next/server/app/api/sessions/ui-state/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/skills/check/route.js +1 -1
  151. package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/skills/content/route.js +1 -1
  153. package/.next/server/app/api/skills/content/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/skills/install/route.js +1 -1
  155. package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/skills/route.js +2 -2
  157. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/skills/search/route.js +1 -1
  159. package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/skills/update/route.js +1 -1
  161. package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/sleep-inhibit/route.js +1 -0
  163. package/.next/server/app/api/sleep-inhibit/route.js.nft.json +1 -0
  164. package/.next/server/app/api/sleep-inhibit/route_client-reference-manifest.js +1 -0
  165. package/.next/server/app/api/subagents/[id]/route.js +1 -1
  166. package/.next/server/app/api/subagents/[id]/route.js.nft.json +1 -1
  167. package/.next/server/app/api/subagents/[id]/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/subagents/profiles/route.js +1 -1
  169. package/.next/server/app/api/subagents/profiles/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/subagents/settings/route.js +1 -1
  171. package/.next/server/app/api/subagents/settings/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/terminal/[id]/events/route.js +3 -3
  173. package/.next/server/app/api/terminal/[id]/events/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/terminal/[id]/route.js +1 -1
  175. package/.next/server/app/api/terminal/[id]/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/terminal/route.js +1 -1
  177. package/.next/server/app/api/terminal/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/tools/settings/route.js +1 -1
  179. package/.next/server/app/api/tools/settings/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/web-auth/route.js +1 -1
  181. package/.next/server/app/api/web-auth/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/route.js +1 -1
  183. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/favicon.ico/route.js +1 -1
  185. package/.next/server/app/index.html +1 -1
  186. package/.next/server/app/index.rsc +9 -9
  187. package/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -9
  188. package/.next/server/app/index.segments/_full.segment.rsc +9 -9
  189. package/.next/server/app/index.segments/_tree.segment.rsc +3 -3
  190. package/.next/server/app/login/page.js +1 -1
  191. package/.next/server/app/login/page.js.nft.json +1 -1
  192. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  193. package/.next/server/app/login.html +1 -1
  194. package/.next/server/app/login.rsc +6 -6
  195. package/.next/server/app/login.segments/_full.segment.rsc +6 -6
  196. package/.next/server/app/login.segments/_tree.segment.rsc +3 -3
  197. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
  198. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  199. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/page.js +933 -88
  201. package/.next/server/app/page.js.nft.json +1 -1
  202. package/.next/server/app/page_client-reference-manifest.js +1 -1
  203. package/.next/server/app-paths-manifest.json +12 -10
  204. package/.next/server/chunks/1906.js +1 -1
  205. package/.next/server/chunks/2243.js +1 -1
  206. package/.next/server/chunks/2430.js +3 -3
  207. package/.next/server/chunks/2650.js +1 -0
  208. package/.next/server/chunks/27.js +1 -1
  209. package/.next/server/chunks/2970.js +1 -1
  210. package/.next/server/chunks/3371.js +1 -0
  211. package/.next/server/chunks/3379.js +1 -1
  212. package/.next/server/chunks/3757.js +1 -1
  213. package/.next/server/chunks/3824.js +1 -1
  214. package/.next/server/chunks/4315.js +2 -2
  215. package/.next/server/chunks/5582.js +3 -3
  216. package/.next/server/chunks/6216.js +6 -0
  217. package/.next/server/chunks/6429.js +9 -10
  218. package/.next/server/chunks/8947.js +1 -0
  219. package/.next/server/functions-config-manifest.json +1 -0
  220. package/.next/server/instrumentation.js +1 -1
  221. package/.next/server/instrumentation.js.nft.json +1 -1
  222. package/.next/server/middleware-build-manifest.js +1 -1
  223. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  224. package/.next/server/middleware.js +4 -4
  225. package/.next/server/next-font-manifest.js +1 -1
  226. package/.next/server/next-font-manifest.json +1 -1
  227. package/.next/server/pages/404.html +1 -1
  228. package/.next/server/pages/500.html +1 -1
  229. package/.next/server/preview-props.json +3 -3
  230. package/.next/server/server-reference-manifest.json +1 -1
  231. package/.next/static/SZGRKeK7Rp-GLXlZwXVpN/_buildManifest.js +1 -0
  232. package/.next/static/chunks/1278-7900e52add02a581.js +1 -0
  233. package/.next/static/chunks/{9932-ad7f7fe74cc1f50a.js → 4908-f430833122ebb4b2.js} +2 -2
  234. package/.next/static/chunks/7379.078f0917cc6a0349.js +3 -0
  235. package/.next/static/chunks/app/_global-error/page-ff5f37ea6085322e.js +1 -0
  236. package/.next/static/chunks/app/_not-found/{page-35dee0d93253f38c.js → page-d4722b111eb204ad.js} +1 -1
  237. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-ff5f37ea6085322e.js +1 -0
  238. package/.next/static/chunks/app/api/agent/[id]/events/route-ff5f37ea6085322e.js +1 -0
  239. package/.next/static/chunks/app/api/agent/[id]/lease/route-ff5f37ea6085322e.js +1 -0
  240. package/.next/static/chunks/app/api/agent/[id]/route-ff5f37ea6085322e.js +1 -0
  241. package/.next/static/chunks/app/api/agent/debug/route-ff5f37ea6085322e.js +1 -0
  242. package/.next/static/chunks/app/api/agent/new/route-ff5f37ea6085322e.js +1 -0
  243. package/.next/static/chunks/app/api/agent/running/route-ff5f37ea6085322e.js +1 -0
  244. package/.next/static/chunks/app/api/app-update/route-ff5f37ea6085322e.js +1 -0
  245. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-ff5f37ea6085322e.js +1 -0
  246. package/.next/static/chunks/app/api/auth/login/[provider]/route-ff5f37ea6085322e.js +1 -0
  247. package/.next/static/chunks/app/api/auth/logout/[provider]/route-ff5f37ea6085322e.js +1 -0
  248. package/.next/static/chunks/app/api/auth/providers/route-ff5f37ea6085322e.js +1 -0
  249. package/.next/static/chunks/app/api/cache-miss-notices/route-ff5f37ea6085322e.js +1 -0
  250. package/.next/static/chunks/app/api/cwd/browse/route-ff5f37ea6085322e.js +1 -0
  251. package/.next/static/chunks/app/api/cwd/pick/route-ff5f37ea6085322e.js +1 -0
  252. package/.next/static/chunks/app/api/cwd/validate/route-ff5f37ea6085322e.js +1 -0
  253. package/.next/static/chunks/app/api/default-cwd/route-ff5f37ea6085322e.js +1 -0
  254. package/.next/static/chunks/app/api/file-index/route-ff5f37ea6085322e.js +1 -0
  255. package/.next/static/chunks/app/api/files/[...path]/route-ff5f37ea6085322e.js +1 -0
  256. package/.next/static/chunks/app/api/git/diff/route-ff5f37ea6085322e.js +1 -0
  257. package/.next/static/chunks/app/api/git/status/route-ff5f37ea6085322e.js +1 -0
  258. package/.next/static/chunks/app/api/home/route-ff5f37ea6085322e.js +1 -0
  259. package/.next/static/chunks/app/api/mcp/route-ff5f37ea6085322e.js +1 -0
  260. package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-ff5f37ea6085322e.js +1 -0
  261. package/.next/static/chunks/app/api/mcp/sign-in/route-ff5f37ea6085322e.js +1 -0
  262. package/.next/static/chunks/app/api/mcp/test/route-ff5f37ea6085322e.js +1 -0
  263. package/.next/static/chunks/app/api/models/default/route-ff5f37ea6085322e.js +1 -0
  264. package/.next/static/chunks/app/api/models/enabled/route-ff5f37ea6085322e.js +1 -0
  265. package/.next/static/chunks/app/api/models/refresh/route-ff5f37ea6085322e.js +1 -0
  266. package/.next/static/chunks/app/api/models/route-ff5f37ea6085322e.js +1 -0
  267. package/.next/static/chunks/app/api/models-config/catalog/route-ff5f37ea6085322e.js +1 -0
  268. package/.next/static/chunks/app/api/models-config/discover/route-ff5f37ea6085322e.js +1 -0
  269. package/.next/static/chunks/app/api/models-config/route-ff5f37ea6085322e.js +1 -0
  270. package/.next/static/chunks/app/api/models-config/test/route-ff5f37ea6085322e.js +1 -0
  271. package/.next/static/chunks/app/api/open-in-explorer/route-ff5f37ea6085322e.js +1 -0
  272. package/.next/static/chunks/app/api/plugins/check/route-ff5f37ea6085322e.js +1 -0
  273. package/.next/static/chunks/app/api/plugins/route-ff5f37ea6085322e.js +1 -0
  274. package/.next/static/chunks/app/api/project-trust/route-ff5f37ea6085322e.js +1 -0
  275. package/.next/static/chunks/app/api/provider-usage/query/route-ff5f37ea6085322e.js +1 -0
  276. package/.next/static/chunks/app/api/push/config/route-ff5f37ea6085322e.js +1 -0
  277. package/.next/static/chunks/app/api/push/subscribe/route-ff5f37ea6085322e.js +1 -0
  278. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-ff5f37ea6085322e.js +1 -0
  279. package/.next/static/chunks/app/api/sessions/[id]/context/route-ff5f37ea6085322e.js +1 -0
  280. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-ff5f37ea6085322e.js +1 -0
  281. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-ff5f37ea6085322e.js +1 -0
  282. package/.next/static/chunks/app/api/sessions/[id]/export/route-ff5f37ea6085322e.js +1 -0
  283. package/.next/static/chunks/app/api/sessions/[id]/fork/route-ff5f37ea6085322e.js +1 -0
  284. package/.next/static/chunks/app/api/sessions/[id]/route-ff5f37ea6085322e.js +1 -0
  285. package/.next/static/chunks/app/api/sessions/[id]/state/route-ff5f37ea6085322e.js +1 -0
  286. package/.next/static/chunks/app/api/sessions/delete/route-ff5f37ea6085322e.js +1 -0
  287. package/.next/static/chunks/app/api/sessions/route-ff5f37ea6085322e.js +1 -0
  288. package/.next/static/chunks/app/api/sessions/search/route-ff5f37ea6085322e.js +1 -0
  289. package/.next/static/chunks/app/api/sessions/stats/route-ff5f37ea6085322e.js +1 -0
  290. package/.next/static/chunks/app/api/sessions/ui-state/route-ff5f37ea6085322e.js +1 -0
  291. package/.next/static/chunks/app/api/skills/check/route-ff5f37ea6085322e.js +1 -0
  292. package/.next/static/chunks/app/api/skills/content/route-ff5f37ea6085322e.js +1 -0
  293. package/.next/static/chunks/app/api/skills/install/route-ff5f37ea6085322e.js +1 -0
  294. package/.next/static/chunks/app/api/skills/route-ff5f37ea6085322e.js +1 -0
  295. package/.next/static/chunks/app/api/skills/search/route-ff5f37ea6085322e.js +1 -0
  296. package/.next/static/chunks/app/api/skills/update/route-ff5f37ea6085322e.js +1 -0
  297. package/.next/static/chunks/app/api/sleep-inhibit/route-ff5f37ea6085322e.js +1 -0
  298. package/.next/static/chunks/app/api/subagents/[id]/route-ff5f37ea6085322e.js +1 -0
  299. package/.next/static/chunks/app/api/subagents/profiles/route-ff5f37ea6085322e.js +1 -0
  300. package/.next/static/chunks/app/api/subagents/settings/route-ff5f37ea6085322e.js +1 -0
  301. package/.next/static/chunks/app/api/terminal/[id]/events/route-ff5f37ea6085322e.js +1 -0
  302. package/.next/static/chunks/app/api/terminal/[id]/route-ff5f37ea6085322e.js +1 -0
  303. package/.next/static/chunks/app/api/terminal/route-ff5f37ea6085322e.js +1 -0
  304. package/.next/static/chunks/app/api/tools/settings/route-ff5f37ea6085322e.js +1 -0
  305. package/.next/static/chunks/app/api/web-auth/route-ff5f37ea6085322e.js +1 -0
  306. package/.next/static/chunks/app/api/worktrees/route-ff5f37ea6085322e.js +1 -0
  307. package/.next/static/chunks/app/{layout-e538e5d308a97d51.js → layout-fd5067066c05f1c1.js} +1 -1
  308. package/.next/static/chunks/app/login/{page-7d17aa0961f2fcbe.js → page-699dd04274c6737c.js} +1 -1
  309. package/.next/static/chunks/app/manifest.webmanifest/route-ff5f37ea6085322e.js +1 -0
  310. package/.next/static/chunks/app/page-e2c75ffccae708f8.js +1131 -0
  311. package/.next/static/chunks/{main-app-4b56fc85be3f7823.js → main-app-03bab309386a7cee.js} +1 -1
  312. package/.next/static/chunks/next/dist/client/components/builtin/app-error-ff5f37ea6085322e.js +1 -0
  313. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ff5f37ea6085322e.js +1 -0
  314. package/.next/static/chunks/next/dist/client/components/builtin/global-error-7b03c800e367b0e2.js +1 -0
  315. package/.next/static/chunks/next/dist/client/components/builtin/not-found-ff5f37ea6085322e.js +1 -0
  316. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ff5f37ea6085322e.js +1 -0
  317. package/.next/static/chunks/{webpack-b3e6fd1801874f85.js → webpack-95292085cd40fbc6.js} +1 -1
  318. package/.next/static/css/{bf49b4e87f26e436.css → 600a486e13adbe4a.css} +1 -1
  319. package/.next/static/css/dc78b381ecea7676.css +1 -0
  320. package/.next/static/css/f38e4e9c1d25d157.css +1 -0
  321. package/.next/trace +181 -58
  322. package/.next/trace-build +1 -1
  323. package/.next/types/app/api/agent/[id]/bash-output/route.ts +1 -1
  324. package/.next/types/app/api/agent/[id]/events/route.ts +1 -1
  325. package/.next/types/app/api/agent/[id]/lease/route.ts +1 -1
  326. package/.next/types/app/api/agent/[id]/route.ts +1 -1
  327. package/.next/types/app/api/agent/debug/route.ts +355 -0
  328. package/.next/types/app/api/agent/new/route.ts +1 -1
  329. package/.next/types/app/api/agent/running/route.ts +1 -1
  330. package/.next/types/app/api/app-update/route.ts +1 -1
  331. package/.next/types/app/api/auth/api-key/[provider]/route.ts +1 -1
  332. package/.next/types/app/api/auth/login/[provider]/route.ts +1 -1
  333. package/.next/types/app/api/auth/logout/[provider]/route.ts +1 -1
  334. package/.next/types/app/api/auth/providers/route.ts +1 -1
  335. package/.next/types/app/api/cache-miss-notices/route.ts +1 -1
  336. package/.next/types/app/api/cwd/browse/route.ts +1 -1
  337. package/.next/types/app/api/cwd/pick/route.ts +1 -1
  338. package/.next/types/app/api/cwd/validate/route.ts +1 -1
  339. package/.next/types/app/api/default-cwd/route.ts +1 -1
  340. package/.next/types/app/api/file-index/route.ts +1 -1
  341. package/.next/types/app/api/files/[...path]/route.ts +1 -1
  342. package/.next/types/app/api/git/diff/route.ts +1 -1
  343. package/.next/types/app/api/git/status/route.ts +1 -1
  344. package/.next/types/app/api/home/route.ts +1 -1
  345. package/.next/types/app/api/mcp/route.ts +1 -1
  346. package/.next/types/app/api/mcp/sign-in/[flowId]/route.ts +1 -1
  347. package/.next/types/app/api/mcp/sign-in/route.ts +1 -1
  348. package/.next/types/app/api/mcp/test/route.ts +1 -1
  349. package/.next/types/app/api/models/default/route.ts +1 -1
  350. package/.next/types/app/api/models/enabled/route.ts +1 -1
  351. package/.next/types/app/api/models/refresh/route.ts +1 -1
  352. package/.next/types/app/api/models/route.ts +1 -1
  353. package/.next/types/app/api/models-config/catalog/route.ts +1 -1
  354. package/.next/types/app/api/models-config/discover/route.ts +1 -1
  355. package/.next/types/app/api/models-config/route.ts +1 -1
  356. package/.next/types/app/api/models-config/test/route.ts +1 -1
  357. package/.next/types/app/api/open-in-explorer/route.ts +1 -1
  358. package/.next/types/app/api/plugins/check/route.ts +1 -1
  359. package/.next/types/app/api/plugins/route.ts +1 -1
  360. package/.next/types/app/api/project-trust/route.ts +1 -1
  361. package/.next/types/app/api/provider-usage/query/route.ts +1 -1
  362. package/.next/types/app/api/push/config/route.ts +1 -1
  363. package/.next/types/app/api/push/subscribe/route.ts +1 -1
  364. package/.next/types/app/api/sessions/[id]/auto-name/route.ts +1 -1
  365. package/.next/types/app/api/sessions/[id]/context/route.ts +1 -1
  366. package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +1 -1
  367. package/.next/types/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.ts +1 -1
  368. package/.next/types/app/api/sessions/[id]/export/route.ts +1 -1
  369. package/.next/types/app/api/sessions/[id]/fork/route.ts +1 -1
  370. package/.next/types/app/api/sessions/[id]/route.ts +1 -1
  371. package/.next/types/app/api/sessions/[id]/state/route.ts +1 -1
  372. package/.next/types/app/api/sessions/delete/route.ts +1 -1
  373. package/.next/types/app/api/sessions/route.ts +1 -1
  374. package/.next/types/app/api/sessions/search/route.ts +1 -1
  375. package/.next/types/app/api/sessions/stats/route.ts +1 -1
  376. package/.next/types/app/api/sessions/ui-state/route.ts +1 -1
  377. package/.next/types/app/api/skills/check/route.ts +1 -1
  378. package/.next/types/app/api/skills/content/route.ts +1 -1
  379. package/.next/types/app/api/skills/install/route.ts +1 -1
  380. package/.next/types/app/api/skills/route.ts +1 -1
  381. package/.next/types/app/api/skills/search/route.ts +1 -1
  382. package/.next/types/app/api/skills/update/route.ts +1 -1
  383. package/.next/types/app/api/sleep-inhibit/route.ts +355 -0
  384. package/.next/types/app/api/subagents/[id]/route.ts +1 -1
  385. package/.next/types/app/api/subagents/profiles/route.ts +1 -1
  386. package/.next/types/app/api/subagents/settings/route.ts +1 -1
  387. package/.next/types/app/api/terminal/[id]/events/route.ts +1 -1
  388. package/.next/types/app/api/terminal/[id]/route.ts +1 -1
  389. package/.next/types/app/api/terminal/route.ts +1 -1
  390. package/.next/types/app/api/tools/settings/route.ts +1 -1
  391. package/.next/types/app/api/web-auth/route.ts +1 -1
  392. package/.next/types/app/api/worktrees/route.ts +1 -1
  393. package/.next/types/app/layout.ts +1 -1
  394. package/.next/types/app/login/page.ts +1 -1
  395. package/.next/types/app/page.ts +1 -1
  396. package/.next/types/routes.d.ts +3 -1
  397. package/.next/types/validator.ts +20 -0
  398. package/README.md +2 -1
  399. package/bin/browser-opener.js +44 -1
  400. package/bin/network-addresses.js +62 -0
  401. package/bin/pi-web.js +10 -2
  402. package/package.json +1 -1
  403. package/.next/server/chunks/4698.js +0 -1
  404. package/.next/server/chunks/5924.js +0 -1
  405. package/.next/server/chunks/7979.js +0 -1
  406. package/.next/static/-g1KUgp8qZzNmZ5_sTyxp/_buildManifest.js +0 -1
  407. package/.next/static/chunks/1278-d56768cd20f66ed4.js +0 -1
  408. package/.next/static/chunks/7379.49eae68e886f95ce.js +0 -3
  409. package/.next/static/chunks/app/_global-error/page-5d60af35a4bb1818.js +0 -1
  410. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-5d60af35a4bb1818.js +0 -1
  411. package/.next/static/chunks/app/api/agent/[id]/events/route-5d60af35a4bb1818.js +0 -1
  412. package/.next/static/chunks/app/api/agent/[id]/lease/route-5d60af35a4bb1818.js +0 -1
  413. package/.next/static/chunks/app/api/agent/[id]/route-5d60af35a4bb1818.js +0 -1
  414. package/.next/static/chunks/app/api/agent/new/route-5d60af35a4bb1818.js +0 -1
  415. package/.next/static/chunks/app/api/agent/running/route-5d60af35a4bb1818.js +0 -1
  416. package/.next/static/chunks/app/api/app-update/route-5d60af35a4bb1818.js +0 -1
  417. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-5d60af35a4bb1818.js +0 -1
  418. package/.next/static/chunks/app/api/auth/login/[provider]/route-5d60af35a4bb1818.js +0 -1
  419. package/.next/static/chunks/app/api/auth/logout/[provider]/route-5d60af35a4bb1818.js +0 -1
  420. package/.next/static/chunks/app/api/auth/providers/route-5d60af35a4bb1818.js +0 -1
  421. package/.next/static/chunks/app/api/cache-miss-notices/route-5d60af35a4bb1818.js +0 -1
  422. package/.next/static/chunks/app/api/cwd/browse/route-5d60af35a4bb1818.js +0 -1
  423. package/.next/static/chunks/app/api/cwd/pick/route-5d60af35a4bb1818.js +0 -1
  424. package/.next/static/chunks/app/api/cwd/validate/route-5d60af35a4bb1818.js +0 -1
  425. package/.next/static/chunks/app/api/default-cwd/route-5d60af35a4bb1818.js +0 -1
  426. package/.next/static/chunks/app/api/file-index/route-5d60af35a4bb1818.js +0 -1
  427. package/.next/static/chunks/app/api/files/[...path]/route-5d60af35a4bb1818.js +0 -1
  428. package/.next/static/chunks/app/api/git/diff/route-5d60af35a4bb1818.js +0 -1
  429. package/.next/static/chunks/app/api/git/status/route-5d60af35a4bb1818.js +0 -1
  430. package/.next/static/chunks/app/api/home/route-5d60af35a4bb1818.js +0 -1
  431. package/.next/static/chunks/app/api/mcp/route-5d60af35a4bb1818.js +0 -1
  432. package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-5d60af35a4bb1818.js +0 -1
  433. package/.next/static/chunks/app/api/mcp/sign-in/route-5d60af35a4bb1818.js +0 -1
  434. package/.next/static/chunks/app/api/mcp/test/route-5d60af35a4bb1818.js +0 -1
  435. package/.next/static/chunks/app/api/models/default/route-5d60af35a4bb1818.js +0 -1
  436. package/.next/static/chunks/app/api/models/enabled/route-5d60af35a4bb1818.js +0 -1
  437. package/.next/static/chunks/app/api/models/refresh/route-5d60af35a4bb1818.js +0 -1
  438. package/.next/static/chunks/app/api/models/route-5d60af35a4bb1818.js +0 -1
  439. package/.next/static/chunks/app/api/models-config/catalog/route-5d60af35a4bb1818.js +0 -1
  440. package/.next/static/chunks/app/api/models-config/discover/route-5d60af35a4bb1818.js +0 -1
  441. package/.next/static/chunks/app/api/models-config/route-5d60af35a4bb1818.js +0 -1
  442. package/.next/static/chunks/app/api/models-config/test/route-5d60af35a4bb1818.js +0 -1
  443. package/.next/static/chunks/app/api/open-in-explorer/route-5d60af35a4bb1818.js +0 -1
  444. package/.next/static/chunks/app/api/plugins/check/route-5d60af35a4bb1818.js +0 -1
  445. package/.next/static/chunks/app/api/plugins/route-5d60af35a4bb1818.js +0 -1
  446. package/.next/static/chunks/app/api/project-trust/route-5d60af35a4bb1818.js +0 -1
  447. package/.next/static/chunks/app/api/provider-usage/query/route-5d60af35a4bb1818.js +0 -1
  448. package/.next/static/chunks/app/api/push/config/route-5d60af35a4bb1818.js +0 -1
  449. package/.next/static/chunks/app/api/push/subscribe/route-5d60af35a4bb1818.js +0 -1
  450. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-5d60af35a4bb1818.js +0 -1
  451. package/.next/static/chunks/app/api/sessions/[id]/context/route-5d60af35a4bb1818.js +0 -1
  452. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-5d60af35a4bb1818.js +0 -1
  453. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-5d60af35a4bb1818.js +0 -1
  454. package/.next/static/chunks/app/api/sessions/[id]/export/route-5d60af35a4bb1818.js +0 -1
  455. package/.next/static/chunks/app/api/sessions/[id]/fork/route-5d60af35a4bb1818.js +0 -1
  456. package/.next/static/chunks/app/api/sessions/[id]/route-5d60af35a4bb1818.js +0 -1
  457. package/.next/static/chunks/app/api/sessions/[id]/state/route-5d60af35a4bb1818.js +0 -1
  458. package/.next/static/chunks/app/api/sessions/delete/route-5d60af35a4bb1818.js +0 -1
  459. package/.next/static/chunks/app/api/sessions/route-5d60af35a4bb1818.js +0 -1
  460. package/.next/static/chunks/app/api/sessions/search/route-5d60af35a4bb1818.js +0 -1
  461. package/.next/static/chunks/app/api/sessions/stats/route-5d60af35a4bb1818.js +0 -1
  462. package/.next/static/chunks/app/api/sessions/ui-state/route-5d60af35a4bb1818.js +0 -1
  463. package/.next/static/chunks/app/api/skills/check/route-5d60af35a4bb1818.js +0 -1
  464. package/.next/static/chunks/app/api/skills/content/route-5d60af35a4bb1818.js +0 -1
  465. package/.next/static/chunks/app/api/skills/install/route-5d60af35a4bb1818.js +0 -1
  466. package/.next/static/chunks/app/api/skills/route-5d60af35a4bb1818.js +0 -1
  467. package/.next/static/chunks/app/api/skills/search/route-5d60af35a4bb1818.js +0 -1
  468. package/.next/static/chunks/app/api/skills/update/route-5d60af35a4bb1818.js +0 -1
  469. package/.next/static/chunks/app/api/subagents/[id]/route-5d60af35a4bb1818.js +0 -1
  470. package/.next/static/chunks/app/api/subagents/profiles/route-5d60af35a4bb1818.js +0 -1
  471. package/.next/static/chunks/app/api/subagents/settings/route-5d60af35a4bb1818.js +0 -1
  472. package/.next/static/chunks/app/api/terminal/[id]/events/route-5d60af35a4bb1818.js +0 -1
  473. package/.next/static/chunks/app/api/terminal/[id]/route-5d60af35a4bb1818.js +0 -1
  474. package/.next/static/chunks/app/api/terminal/route-5d60af35a4bb1818.js +0 -1
  475. package/.next/static/chunks/app/api/tools/settings/route-5d60af35a4bb1818.js +0 -1
  476. package/.next/static/chunks/app/api/web-auth/route-5d60af35a4bb1818.js +0 -1
  477. package/.next/static/chunks/app/api/worktrees/route-5d60af35a4bb1818.js +0 -1
  478. package/.next/static/chunks/app/manifest.webmanifest/route-5d60af35a4bb1818.js +0 -1
  479. package/.next/static/chunks/app/page-ae6a7d3a5517d7e9.js +0 -286
  480. package/.next/static/chunks/next/dist/client/components/builtin/app-error-5d60af35a4bb1818.js +0 -1
  481. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-5d60af35a4bb1818.js +0 -1
  482. package/.next/static/chunks/next/dist/client/components/builtin/global-error-064e367d6001dbac.js +0 -1
  483. package/.next/static/chunks/next/dist/client/components/builtin/not-found-5d60af35a4bb1818.js +0 -1
  484. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-5d60af35a4bb1818.js +0 -1
  485. package/.next/static/css/992381f1f993c50d.css +0 -1
  486. package/.next/static/css/e423cf64c3a31a65.css +0 -1
  487. /package/.next/static/{-g1KUgp8qZzNmZ5_sTyxp → SZGRKeK7Rp-GLXlZwXVpN}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=3757,exports.ids=[3757],exports.modules={3140:(a,b,c)=>{c.d(b,{DA:()=>M,Iq:()=>G,Q6:()=>d,TB:()=>P,Wy:()=>H,Yh:()=>C,eh:()=>l,oF:()=>L,yP:()=>B,yQ:()=>u});let d="•••",e=new Set(["key","apikey","token","secret","password","passwd","passphrase","pwd","pass","credential","credentials","authorization","bearer","jwt","cookie","signature","pat"]),f=new Set([...e,"auth","sig","code","pw"]),g=["token","secret","password","passwd","apikey"],h=new Set(["file","path","dir","url","uri","endpoint","id","name","type","header","env","var","length","ttl","expiry","expires","timeout","mode","format"]),i=new Set(["-k"]);function j(a){return a.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)}function k(a,b){let c=j(a);return!(c.length>1&&h.has(c[c.length-1]))&&c.some(a=>b.has(a)||g.some(b=>a.length>b.length&&a.endsWith(b)))}function l(a){return k(a,e)}let m=RegExp("^(?:sk-[A-Za-z0-9_-]{16,}|(?:sk|pk|rk)_(?:live|test)_[A-Za-z0-9]{16,}|gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|glpat-[A-Za-z0-9_-]{16,}|xox[abposr]-[A-Za-z0-9-]{10,}|(?:AKIA|ASIA)[0-9A-Z]{16}|AIza[0-9A-Za-z_-]{30,}|ya29\\.[0-9A-Za-z_-]{20,}|npm_[A-Za-z0-9]{30,}|hf_[A-Za-z0-9]{30,}|shp(?:at|ss|ca|pa)_[A-Fa-f0-9]{20,}|dop_v1_[a-f0-9]{40,}|lin_api_[A-Za-z0-9]{20,})"),n=/^eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]*$/,o=/^[A-Za-z0-9_\-+/=.~]+$/;function p(a){return!(/\s/.test(a)||u(a))&&(!!(m.test(a)||n.test(a))||!(a.length<24||!o.test(a)||/^[./~]/.test(a)||/\.[A-Za-z][A-Za-z0-9]{0,4}$/.test(a)||a.split("/").length>2)&&!!/\d/.test(a)&&!!/[A-Za-z]/.test(a)&&(/[a-z]/.test(a)&&/[A-Z]/.test(a)||/^[0-9a-f]+$/i.test(a)||!/[-_.]/.test(a))&&function(a){let b=new Map;for(let c of a)b.set(c,(b.get(c)??0)+1);let c=0;for(let d of b.values()){let b=d/a.length;c-=b*Math.log2(b)}return c}(a)>=3.5)}let q=/\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$[A-Za-z_][A-Za-z0-9_]*/,r=RegExp(q.source,"g"),s=/^(?:bearer|basic|token)\s+/i;function t(a,b,c){let d=a.replace(s,"");return b.test(d)&&/^[^A-Za-z0-9]*$/.test(d.replace(c,""))}function u(a){return t(a.replace(/\$[$!]/g,"_x"),q,r)}let v=/\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$[A-Z_][A-Z0-9_]*(?![A-Za-z0-9_])/,w=RegExp(v.source,"g");function x(a){return t(a,v,w)}function y(a,b){if(!a||""===b)return;a.push(b);let c=D(b);c!==b&&a.push(c)}let z=/^([A-Za-z][A-Za-z0-9+.-]*:\/\/)([^/?#]*)/;function A(a,b,c){let e=!1,g=a,h="",i=z.exec(a);if(i){let[f,j,k]=i,l=k.lastIndexOf("@");if(l>=0&&!b(D(k.slice(0,l)))){h=`${j}${d}${k.slice(l)}`,e=!0;let a=k.slice(0,l);y(c,a);let b=a.indexOf(":");b>=0&&y(c,a.slice(b+1))}else h=f;g=a.slice(f.length)}let j=g.search(/[?#]/),l=j<0?g:g.slice(0,j),m=j<0?"":g.slice(j),n=l.split("/").map(a=>p(D(a))?(e=!0,y(c,a),d):a).join("/");return m=m.replace(/([?&#;])([^&#;]*)/g,(a,g,h)=>{let i=h.indexOf("=");if(i<0){let f=D(h);return!p(f)||b(f)?a:(e=!0,y(c,h),`${g}${d}`)}let j=h.slice(0,i),l=D(h.slice(i+1));return""===l||b(l)||!function(a){let b=a;try{b=decodeURIComponent(a)}catch{}return k(b,f)}(j)&&!p(l)?a:(e=!0,y(c,h.slice(i+1)),`${g}${j}=${d}`)}),{value:`${h}${n}${m}`,masked:e}}function B(a){return A(a,x)}function C(a){let b=[];return A(a,x,b),[...new Set(b)]}function D(a){try{return decodeURIComponent(a)}catch{return a}}let E=/^(\s*[A-Za-z][A-Za-z0-9 _.-]*=)([\s\S]*)$/;function F(a,b,c){let e=/^([A-Za-z0-9_-]+):(\s*)([\s\S]*)$/.exec(a);if(e&&""!==e[3]&&!e[3].startsWith("//")&&l(e[1])){let[,f,g,h]=e;return b(h)?{value:a,masked:!1}:(y(c,h.trim()),{value:`${f}:${g}${d}`,masked:!0})}let f=a.includes(";")?function(a,b,c){let e=a.split(";");if(e.length<2||!e.every(a=>""===a.trim()||E.test(a)))return;let f=!1;return{value:e.map(a=>{let e=E.exec(a);if(!e)return a;let[,g,h]=e;if(""===h.trim()||b(h))return a;if(l(g.slice(0,-1).trim()))return f=!0,y(c,h.trim()),`${g}${d}`;let i=F(h,b,c);return f||=i.masked,`${g}${i.value}`}).join(";"),masked:f}}(a,b,c):void 0;if(f)return f;let g=/^([A-Za-z_][A-Za-z0-9_]*)=([\s\S]*)$/.exec(a);if(g&&""!==g[2]&&l(g[1]))return b(g[2])?{value:a,masked:!1}:(y(c,g[2]),{value:`${g[1]}=${d}`,masked:!0});if(/\s/.test(a)){var h,i,j;let d,e;return h=a,i=b,j=c,e=K((d=h.split(/(\s+)/)).filter((a,b)=>b%2==0),i,!0,j),{value:d.map((a,b)=>b%2==0?e.values[b/2]:a).join(""),masked:e.masked}}if(/^[A-Za-z][A-Za-z0-9+.-]*:\/\//.test(a))return A(a,b,c);if(g&&""!==g[2]){let a=F(g[2],b,c);return{value:`${g[1]}=${a.value}`,masked:a.masked}}return p(a)&&!b(a)?(y(c,a),{value:d,masked:!0}):{value:a,masked:!1}}function G(a){return F(a,x)}function H(a){let b=[];return F(a,x,b),[...new Set(b)]}function I(a){if(i.has(a))return!0;if(!/^--?[A-Za-z]/.test(a))return!1;let b=a.replace(/^-+/,"");return l(b)||"auth"===j(b).at(-1)}let J=/^(?:bearer|basic|token)$/i;function K(a,b,c,e){let f=!1,g=!1;return{values:a.map(a=>{if(""===a)return a;if(g){if(c&&J.test(a))return a;if(g=!1,!/^-[A-Za-z-]/.test(a))return b(a)?a:(f=!0,y(e,a),d)}let h=/^(--?[A-Za-z][A-Za-z0-9_.-]*)=([\s\S]*)$/.exec(a);if(h){let[,a,c]=h;if(""!==c&&I(a)&&!b(c))return f=!0,y(e,c),`${a}=${d}`;let g=F(c,b,e);return f||=g.masked,`${a}=${g.value}`}if(/^--?[A-Za-z][A-Za-z0-9_.-]*$/.test(a))return g=I(a),a;if(c){let b=/^([A-Za-z0-9_-]+):$/.exec(a);if(J.test(a)||b&&l(b[1]))return g=!0,a}let i=F(a,b,e);return f||=i.masked,i.value}),masked:f}}function L(a){let{values:b,masked:c}=K(a,x,!1);return{args:b,masked:c}}function M(a){let b=[];return K(a,x,!1,b),[...new Set(b)]}function N(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function O(a){return!a.startsWith("!")&&!u(a)}function P(a){if(!N(a))return[];let b=[];for(let c of["env","headers"]){let d=a[c];if(N(d))for(let[a,e]of Object.entries(d))"string"==typeof e&&O(e)&&""!==e&&(l(a)||/^(?:bearer|basic|token)\s+\S/i.test(e)||F(e,u).masked)&&b.push({kind:"env"===c?"env":"header",name:a})}let c=N(a.oauth)?a.oauth.clientSecret:void 0;return"string"==typeof c&&""!==c&&O(c)&&b.push({kind:"oauth-client-secret"}),"string"==typeof a.url&&B(a.url).masked&&b.push({kind:"url"}),"string"==typeof a.command&&G(a.command).masked&&b.push({kind:"command"}),Array.isArray(a.args)&&L(a.args.filter(a=>"string"==typeof a)).masked&&b.push({kind:"args"}),b}},9993:(a,b,c)=>{function d(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function e(a){if(d(a)&&"url"in a&&"string"==typeof a.url&&!a.auth)return(d(a.headers)?Object.keys(a.headers):[]).some(a=>"authorization"===a.toLowerCase())?void 0:a.url}function f(a,b){let c=String(new URL(b));return{key:`mcp__${a.replace(/-/g,"_")}|${c}`,legacyKey:c}}function g(a,b){return f(a,b).key}c.d(b,{Hi:()=>n,P0:()=>e,U$:()=>g,X9:()=>h,ZB:()=>o,bV:()=>l,n_:()=>f,we:()=>m});class h extends Error{constructor(){super("The server was signed out of while this connection was under way, so it stores nothing more"),this.name="McpSignedOutError"}}let i=Symbol.for("pi-web:mcp-sign-outs"),j=Symbol.for("pi-web:mcp-sign-in");function k(){let a=globalThis,b=a[j];return a[i]??=b?.signOuts??new Map}function l(a){return k().get(a)??0}function m(a){let b=k();b.set(a,(b.get(a)??0)+1)}function n(a,b){let c=g(a,b),d=l(c);return()=>{if(l(c)!==d)throw new h}}function o(a,b){class c extends a.McpOAuthCredentialStore{forServer(a,c){let d=super.forServer(a,c);return{load:()=>d.load(),save:a=>(b(),d.save(a)),withRefreshLock:a=>d.withRefreshLock(a)}}}return new c}},18904:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{IR:()=>l,py:()=>j,uw:()=>k});var e=c(75430),f=a([e]);e=(f.then?(await f)():f)[0];let m=new Set(["off","minimal","low","medium","high","xhigh","max"]);function g(a,b){return a.provider===b.provider&&a.id===b.modelId}function h(a){return a.includes("*")||a.includes("?")||a.includes("[")}function i(a,b){let c=a.toLowerCase(),d=b.filter(a=>`${a.provider}/${a.id}`.toLowerCase()===c);return d.length>0?d:b.filter(a=>a.id.toLowerCase()===c)}async function j(a,b){let c=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===c.length)return{visible:await a.getAvailable(),scopedModels:[],thinkingLevelPins:{},warnings:[]};let d=await a.getAvailable();for(let a of c){if(h(a))continue;let b=i(a,d);if(0===b.length){let c=a.lastIndexOf(":"),e=c>=0?a.slice(c+1):"";m.has(e)&&(b=i(a.slice(0,c),d))}if(b.length>1){let c=b.map(a=>`${a.provider}/${a.id}`).sort().join(", ");throw Error(`Ambiguous enabledModels entry "${a}" matches multiple models: ${c}. Use provider/modelId.`)}}let{scopedModels:f,diagnostics:g}=await (0,e.resolveModelScopeWithDiagnostics)(c,{getAvailable:async()=>d}),j=g.filter(a=>"no-match"!==a.code||0===f.length||!function(a){if(!h(a))return!1;let b=a.lastIndexOf(":");return b<0||m.has(a.slice(b+1))}(a.pattern)).map(a=>a.message);if(0===f.length)return{visible:d,scopedModels:[],thinkingLevelPins:{},warnings:j};let k={};for(let a of f)a.thinkingLevel&&(k[`${a.model.provider}/${a.model.id}`]=a.thinkingLevel);return{visible:f.map(a=>a.model),scopedModels:f,thinkingLevelPins:k,warnings:j}}function k(a){return a.scopedModels.length>0?[...a.visible]:[...a.visible].sort((a,b)=>a.provider.localeCompare(b.provider))}function l(a,b={}){let c=b.requestedModel,d=b.defaultModel,e=c?a.visible.find(a=>g(a,c)):void 0;if(c&&!e)throw Error(`Model is not available in the enabled scope: ${c.provider}/${c.modelId}`);let f=e?a.scopedModels.find(a=>a.model===e||g(a.model,{provider:e.provider,modelId:e.id})):void 0,h=!e&&d?a.scopedModels.find(a=>g(a.model,d)):void 0,i=e?void 0:h??a.scopedModels[0],j=e||i||!d?void 0:a.visible.find(a=>g(a,d)),k=e??i?.model??j,m=f??i,n=b.thinkingLevel??m?.thinkingLevel;return{...k?{model:k}:{},...n?{thinkingLevel:n}:{},scopedModels:[...a.scopedModels]}}d()}catch(a){d(a)}})},23757:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{IW:()=>A,KO:()=>r,Sg:()=>z,XA:()=>v,fR:()=>t,lL:()=>p,lt:()=>y,pt:()=>w,r5:()=>u,zE:()=>q});var e=c(75430),f=c(3140),g=c(9993),h=c(66479),i=c(43084),j=c(60268),k=a([e,i,j]);[e,i,j]=k.then?(await k)():k;let A=2e4,B="from shell command: ",C=new Set(["codemode","deferred","direct","hidden"]);function l(a){let b;return{promise:new Promise(c=>{b=setTimeout(c,a),b.unref?.()}),cancel:()=>clearTimeout(b)}}function m(a){return a.aborted?Promise.resolve():new Promise(b=>a.addEventListener("abort",()=>b(),{once:!0}))}function n(a,b,c){var d;return d=b(a.slice(0,65536)),d.length>c?`${d.slice(0,c-1)}…`:d}function o(a,b,c){return b(a.slice(-65536)).slice(-c)}function p(a,b){return n(a,b,2e3)}function q(a,b){return o(a,b,2e3)}function r(a,b){return(0,i.xW)(a).some(({value:a})=>b.isCommandConfigValue(a))}let D=/^(?:bearer|basic|token)$/i;function s(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function t(a,b,c,d=[]){let e=new Map,g=(a,b,c)=>{let d=e.get(a);d&&(!d.word||c)||e.set(a,{raw:a,shown:b,word:c})},h=a=>{if(void 0===a)return;let b=a.trim();for(let a of(b.length>=6&&g(b,f.Q6,!1),b.split(/\s+/)))a!==b&&a.length>=6&&!D.test(a)&&g(a,f.Q6,!0)},j=(a,b)=>{b.masked&&a.length>=6&&g(a,b.value,!1)};for(let{value:b}of(0,i.xW)(a))if(c.isCommandConfigValue(b)){let a=b.slice(1);a.trim()&&g(`${B}${a}`,`${B}${f.Q6}`,!1),a.trim().length>=6&&g(a.trim(),f.Q6,!0)}else(0,f.yQ)(b)||h(b);let k=b.map(a=>a.options??{});if("url"in a){for(let a of k)for(let b of Object.values(a.headers??{}))h(b);j(a.url,(0,f.yP)(a.url));try{let b=new URL(a.url).href;b!==a.url&&j(b,(0,f.yP)(b))}catch{}for(let b of(0,f.Yh)(a.url))h(b)}else{for(let b of k)for(let c of Object.keys(a.env??{}))h(b.env?.[c]);for(let b of(j(a.command,(0,f.Iq)(a.command)),(0,f.Wy)(a.command)))h(b);let b=a.args??[],c=(0,f.oF)(b).args;for(let a of(b.forEach((a,b)=>j(a,{value:c[b]??f.Q6,masked:c[b]!==a})),(0,f.DA)(b)))h(a)}for(let a of d)h(a);let l=[...e.values()].sort((a,b)=>b.raw.length-a.raw.length).map(({raw:a,shown:b,word:c})=>({shown:b,pattern:RegExp(c?`(?<![A-Za-z0-9_])${s(a)}(?![A-Za-z0-9_])`:s(a),"g")}));return a=>l.reduce((a,{pattern:b,shown:c})=>a.replace(b,()=>c),a)}function u(a,b,c={}){let d,f=c.requestTimeoutMs??15e3,{config:g}=a,h=Math.min(g.timeout??60,f/1e3),k={name:a.name,config:{...g,timeout:h},source:a.sourcePath,scope:a.scope},l=[],m=(0,i.Pn)(b);return{connection:new b.McpServerConnection({entry:k,cwd:a.cwd,createTransport:(...a)=>{let b=m(...a);return l.push(b),b},credentials:c.credentials??new b.McpOAuthCredentialStore,providerToken:c.providerToken??(async a=>{try{return d??=(0,j.OH)().then(a=>new e.ModelRegistry(a)),await (await d).getApiKeyForProvider(a)}catch{return}}),onTools:()=>{}}),transports:l}}async function v({connection:a,transports:b},c=2e3){let d=[a.close(),...b.map(a=>a.close())].map(a=>a.catch(()=>void 0)),e=l(c);await Promise.race([Promise.all(d),e.promise]),e.cancel()}async function w({connection:a,transports:b},c,d,e,f={}){var g,h;let{config:i}=c,j=f.attempt??(()=>a.getClient()),k=Date.now(),l=e.aborted?{aborted:!0}:await Promise.race([j().then(a=>({client:a}),a=>({error:a})),m(e).then(()=>({aborted:!0}))]),p=Date.now()-k,q=b.filter(a=>a instanceof d.StdioTransport),r=q[q.length-1],s=t(i,b,d,f.resolvedSecrets),u="url"in i?{}:{cwd:r?.options.cwd??c.cwd};if("aborted"in l){let a=r?.stderr.trim();return{state:"failed",timedOut:!0,tools:[],toolCount:0,durationMs:p,...u,...a?{stderr:o(a,s,2e3)}:{}}}let v="connected"===a.state?"connected":"needs-auth"===a.state?"needs-auth":"failed",x="connected"===v?a.tools:[],y="client"in l?l.client:void 0,z={state:v,tools:x.slice(0,500).map(a=>{var b;let c,e,f,g;return c="object"==typeof a.annotations&&null!==a.annotations?a.annotations:{},e=([a.description,a.title,c.title].find(a=>"string"==typeof a)??"").split(/\r?\n/).map(a=>a.trim()).find(Boolean),{name:n(a.name,s,300),...e?{description:n(e,s,300)}:{},readOnly:!0===c.readOnlyHint,exposure:(b=a.name,f=Object.assign(Object.create(null),i.toolExposure),"string"==typeof(g=d.getMcpToolExposure({...i,toolExposure:f},b))&&C.has(g)?g:i.exposure??"codemode")}}),toolCount:x.length,durationMs:p,...u,..."connected"===v&&a.hasResources?{resources:!0}:{},...y?.serverInfo?{serverInfo:(g=y.serverInfo,{name:n(String(g.name??""),s,300),version:n(String(g.version??""),s,300),..."string"==typeof g.title&&g.title?{title:n(g.title,s,300)}:{}})}:{}};if("failed"===v){let{error:b,stderr:c}=function(a,b){let c=b?.stderr.trim()??"";if(!c)return{error:a};for(let b=a.indexOf("\n");b>=0;b=a.indexOf("\n",b+1)){let d=a.slice(b+1);if(d&&c.includes(d))return{error:a.slice(0,b),stderr:c}}return{error:a,stderr:c}}(a.error??("error"in l?(h=l.error)instanceof Error?h.message:String(h):"The connection failed"),r);z.error=n(b,s,2e3),c&&(z.stderr=o(c,s,2e3))}return z}async function x(a,b,c,d={}){let e=u(a,b,{...void 0!==d.requestTimeoutMs?{requestTimeoutMs:d.requestTimeoutMs}:{},...d.guard?{credentials:(0,g.ZB)(b,d.guard)}:{}});try{return await w(e,a,b,c)}finally{await v(e,d.closeWaitMs??2e3)}}let E=Symbol.for("pi-web:mcp-test-flights"),F=Symbol.for("pi-web:mcp-test-command-queue"),G="cancelled";async function y(a,b){let c,d,e=(d=globalThis,d[F]??={tail:Promise.resolve()}),f=e.tail,g=new Promise(a=>{c=a});e.tail=f.then(()=>g);let h=l(b),i=await Promise.race([f.then(()=>"turn"),h.promise.then(()=>"timeout"),m(a).then(()=>"aborted")]);return h.cancel(),"turn"!==i&&c(),{release:c,turn:"turn"===i,timedOut:"timeout"===i}}function z(a,b,c={}){var d,e,f,i;let j,k,n,o,p,q,s,t,u,v,w=[a.scope,a.sourcePath,a.name,a.configKey,a.cwd,function(a){let b=(0,g.P0)(a.config);if(void 0===b)return 0;try{return(0,g.bV)((0,g.U$)(a.name,b))}catch{return 0}}(a)].join("\0"),B=(v=globalThis,v[E]??=new Map),C=B.get(w);if(C)return C.join(c.signal),C;let D=(d=a,e=b,f=c,i=()=>{B.get(w)===D&&B.delete(w)},j=f.deadlineMs??A,k=f.closeWaitMs??2e3,n=function(a){let b=(0,g.P0)(a.config);if(void 0!==b)try{return(0,g.Hi)(a.name,b)}catch{return}}(d),o=f.connect??((a,b)=>x(a,e,b,{requestTimeoutMs:f.requestTimeoutMs,closeWaitMs:k,guard:n})),p=new AbortController,q=0,s=!1,t=[],u=async()=>{await Promise.resolve();let a=Date.now(),b=r(d.config,e),c=b?await y(p.signal,j):void 0,f=b?Date.now()-a:0,g=(a,b)=>{let c={...a,testedAt:Date.now(),...f>0?{queuedMs:f}:{}};return b&&!(()=>{try{return n?.(),!1}catch{return!0}})()&&(0,h.kY)(d,d.configKey,{...c,origin:"test"}),c},i=a=>({state:"failed",tools:[],toolCount:0,durationMs:0,...a});if(c&&!c.turn)return g(i(c.timedOut?{queueTimedOut:!0}:{}),!1);let q=setTimeout(()=>p.abort("deadline"),j);q.unref?.();let s=Date.now();try{let a=m(p.signal).then(()=>l(k+500).promise).then(()=>i({timedOut:!0,durationMs:Date.now()-s})),b=await Promise.race([o(d,p.signal),a]),c=p.signal.reason===G&&!0===b.timedOut;return g(b,!c)}finally{clearTimeout(q),c?.release()}},Object.assign((async()=>{try{return await u()}finally{for(let[a,b]of t)a.removeEventListener("abort",b)}})(),{join:a=>{if(!a){s=!0;return}q+=1;let b=()=>{0!=(q-=1)||s||p.signal.aborted||(p.abort(G),i())};a.aborted?b():(a.addEventListener("abort",b,{once:!0}),t.push([a,b]))}}));return B.set(w,D),D.finally(()=>{B.get(w)===D&&B.delete(w)}).catch(()=>void 0),D.join(c.signal),D}d()}catch(a){d(a)}})},28967:(a,b,c)=>{function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){return b?{...a,modelError:b}:a}function g(a){return{...a,modelError:"Model list is temporarily unavailable. Check your configuration and try again."}}function h(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=32;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{Fw:()=>g,Mx:()=>f,kn:()=>e,rC:()=>h})},28994:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{S9:()=>l,TH:()=>k,je:()=>m,vd:()=>i});var e=c(28967),f=c(18904),g=a([f]);function h(){return globalThis.__piWebProviderModelCatalog??=new Map,globalThis.__piWebProviderModelCatalog}async function i(a){let b=new Map;for(let c of(await a.getAvailable()))b.set(c.provider,[...b.get(c.provider)??[],c]);let c=[...b.keys()].some(a=>!h().has(a));for(let[a,c]of b)h().set(a,c);c&&(0,e.kn)()}function j(a){let b=new Set(a.getModels().map(a=>a.provider));return[...h()].flatMap(([a,c])=>b.has(a)?[]:c)}function k(a){return new Proxy(a,{get(a,b,c){if("getAvailable"===b)return async(...b)=>{let[c]=b,d=j(a).filter(a=>!c||a.provider===c);return[...await a.getAvailable(...b),...d]};let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}})}function l(a,b,c){return j(a).find(a=>a.provider===b&&a.id===c)}async function m(a,b,c){let d;if(0===j(a).length)return;try{d=(0,f.IR)(await (0,f.py)(k(a),b),c)}catch{return}let e=d.model&&l(a,d.model.provider,d.model.id);return e?{model:e,...d.thinkingLevel?{thinkingLevelPin:d.thinkingLevel}:{}}:void 0}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},43084:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Pn:()=>h,aS:()=>e.aS,tF:()=>e.tF,xW:()=>e.xW});var e=c(54218),f=c(53303),g=a([f]);function h(a,b={}){let c=b.platform??process.platform;return(d,g,h)=>{var i;let j,k=(i=d.config,(j=(0,e.tF)(i,a))&&("oauth-client-secret"===j.kind?"oauth.clientSecret":`${j.kind} "${j.name}"`));if(k)throw Error(`MCP server "${d.name}" ${k} references ${e.aS}, which Pi Web does not pass to MCP servers`);let l=a.createDefaultTransport(d,g,h);if("url"in d.config)return l;if(!(l instanceof a.StdioTransport))throw Error(`MCP server "${d.name}": the SDK did not create a stdio transport`);let{env:m={},...n}=l.options,o=new Set(Object.keys(d.config.env??{})),p=Object.keys(m).find(a=>!o.has(a));if(void 0!==p)throw Error(`MCP server "${d.name}": the SDK set environment variable ${p}, which its config does not declare`);return new a.StdioTransport({...n,env:function(a,b,c){let d={};for(let[b,e]of Object.entries((0,f.$9)(a,c)))void 0!==e&&(d[b]=e);for(let[a,e]of Object.entries(b)){if("win32"===c)for(let b of Object.keys(d))b.toUpperCase()===a.toUpperCase()&&delete d[b];d[a]=e}return d}(b.baseEnvironment??process.env,m,c),inheritEnv:!1})}}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},53303:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$9:()=>h,Ds:()=>k,J1:()=>i,eD:()=>j});var e=c(75430),f=c(76760),g=a([e]);e=(g.then?(await g)():g)[0];let l="pi-web-project-command-environment",m=`<inline:${l}>`;function h(a,b=process.platform){let c={...a};for(let a of Object.keys(c))(function(a,b){let c="win32"===b?a.toUpperCase():a;return"PORT"===c||"NODE_ENV"===c||c.startsWith("NEXT_")||"PI_WEB_PASSWORD"===c})(a,b)&&delete c[a];return c}function i(a={}){let{abortSettleGraceMs:b=1e3,agentBinDir:c=(0,f.join)((0,e.getAgentDir)(),"bin"),baseEnvironment:d=process.env,localOperations:g=(0,e.createLocalBashOperations)({shellPath:a.shellPath}),platform:j=process.platform}=a;return{exec(a,e,f){var i;let k,l,m,n=(i=h(f.env??d,j),k="win32"===j?Object.keys(i).find(a=>"PATH"===a.toUpperCase())??"PATH":"PATH",l="win32"===j?";":":",(m=i[k]??"").split(l).filter(Boolean).includes(c)||(i[k]=[c,m].filter(Boolean).join(l)),i),{onData:o,signal:p,timeout:q}=f,r=!1,s=g.exec(a,e,{...f,env:n,onData:a=>{r||o(a)}}),t="number"==typeof q&&Number.isFinite(q)&&q>0?1e3*q:void 0;return p||void 0!==t?new Promise((a,c)=>{let d=[],e=()=>{for(let a of(r=!0,d))clearTimeout(a);p?.removeEventListener("abort",g)},f=(a,b)=>{d.push(setTimeout(()=>{e(),c(b)},Math.min(a,0x7fffffff)))},g=()=>f(b,Error("aborted"));void 0!==t&&f(t+b,Error(`timeout:${q}`)),s.then(b=>{e(),a(b)},a=>{e(),c(a)}),p?.aborted?g():p?.addEventListener("abort",g,{once:!0})}):s}}}function j(a){return{name:l,hidden:!0,factory:b=>{let c=(0,e.createBashToolDefinition)(a.cwd);b.registerTool({...c,defaultActive:!1,execute:(b,c,d,f,g)=>(0,e.createBashToolDefinition)(a.cwd,{commandPrefix:a.settings.getShellCommandPrefix(),operations:i({shellPath:a.settings.getShellPath()})}).execute(b,c,d,f,g)})}}}function k(a){let b=a.extensions.findIndex(a=>a.path===m);if(b<0)return a;let c=a.extensions.slice(0,b).find(a=>a.tools.has("bash"));return c?{...a,extensions:a.extensions.filter((a,c)=>c!==b),errors:a.errors.filter(a=>a.path!==m||a.error!==`Tool "bash" conflicts with ${c.path}`)}:a}d()}catch(a){d(a)}})},54218:(a,b,c)=>{c.d(b,{aS:()=>d,tF:()=>h,xW:()=>g});let d="PI_WEB_PASSWORD";function e(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function f(a){return e(a)?Object.entries(a).filter(a=>"string"==typeof a[1]):[]}function g(a){if(!e(a))return[];if(!("url"in a))return f(a.env).map(([a,b])=>({kind:"env",name:a,value:b}));let b=f(a.headers).map(([a,b])=>({kind:"header",name:a,value:b})),c=e(a.oauth)?a.oauth.clientSecret:void 0;return"string"==typeof c&&b.push({kind:"oauth-client-secret",value:c}),b}function h(a,b){for(let{value:c,...e}of g(a))if(b.isCommandConfigValue(c)?c.toUpperCase().includes(d):b.getConfigValueEnvVarNames(c).some(a=>a.toUpperCase()===d))return e}},60268:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{OH:()=>k,O_:()=>j,nx:()=>l});var e=c(75430),f=c(77598),g=c(28994),h=c(63108),i=a([e,g]);async function j(){let a=(0,e.getAgentDir)(),b=await (0,e.createAgentSessionServices)({cwd:a,agentDir:a});return await (0,g.vd)(b.modelRuntime),b.modelRuntime}[e,g]=i.then?(await i)():i;let m=Symbol.for("pi-web:shared-model-runtime-refresh");async function k(){var a;let b,c=(0,e.getAgentDir)(),d=globalThis.__piWebSharedModelRuntime;(!d||d.agentDir!==c||d.expiresAt<=Date.now())&&((b={agentDir:a=c,runtime:j(),queueKey:`${a}\0${(0,f.randomUUID)()}`,expiresAt:1/0}).runtime.then(()=>{b.expiresAt=Date.now()+6e5},()=>{globalThis.__piWebSharedModelRuntime===b&&(globalThis.__piWebSharedModelRuntime=void 0)}),d=b,globalThis.__piWebSharedModelRuntime=d);let i=await d.runtime;return(0,h.T)(m,d.queueKey,async()=>(await i.refresh({allowNetwork:!1}),await (0,g.vd)(i),i))}function l(){globalThis.__piWebSharedModelRuntime=void 0}d()}catch(a){d(a)}})},66479:(a,b,c)=>{c.d(b,{My:()=>k,Te:()=>p,Tx:()=>i,Ul:()=>r,Wu:()=>j,jQ:()=>q,kY:()=>h,mj:()=>m,vU:()=>l,wf:()=>g});var d=c(58864);let e=Symbol.for("pi-web:mcp-status:by-config");function f(){let a=globalThis;return a[e]??=new Map}function g(a){return`${a.scope}\0${a.sourcePath}\0${a.name}`}function h(a,b,c){let d=f(),e=g(a),h=d.get(e)??new Map;d.delete(e),h.delete(b),h.set(b,c),d.set(e,h);for(let a=function(a){let b=0;for(let c of a.values())b+=c.size;return b}(d);a>500;a--){let[a,b]=d.entries().next().value;b.delete(b.keys().next().value),0===b.size&&d.delete(a)}}function i(a,b){let c=f(),d=new Set(a.map(g)),e=new Set(b.map(a=>`${a.scope}\0${a.path}\0`));for(let a of[...c.keys()]){let b=a.slice(0,a.lastIndexOf("\0")+1);e.has(b)&&!d.has(a)&&c.delete(a)}return a.map(a=>{let b=function(a,b){let c=f(),d=g(a),e=c.get(d);if(!e)return;let h=e.get(b);for(let a of[...e.keys()])a!==b&&e.delete(a);return 0===e.size&&c.delete(d),h}(a,a.configKey);return b?{...a,status:b}:a})}function j(a,b,c){return f().get(g(a))?.get(b)===c}function k(a,b,c){if(!j(a,b,c))return!1;let d=f(),e=g(a),h=d.get(e);return h?.delete(b),h?.size===0&&d.delete(e),!0}function l(a,b,c,d){return!!j(a,b,c)&&(h(a,b,d),!0)}function m(a){f().delete(g(a))}let n=Symbol.for("pi-web:mcp-inactive-hosts");function o(){let a=globalThis;return a[n]??=new Map}function p(a,b){let c=o();for(c.delete(a),c.set(a,b);c.size>100;)c.delete(c.keys().next().value)}function q(a,b){let c=o();(void 0===b||c.get(a)===b)&&c.delete(a)}function r(a){let b=[...o().values()].sort((a,b)=>b.updatedAt-a.updatedAt);return(void 0===a?void 0:b.find(b=>(0,d.Eb)(b.cwd,a)))??b[0]}}};
1
+ "use strict";exports.id=3757,exports.ids=[3757],exports.modules={3140:(a,b,c)=>{c.d(b,{DA:()=>M,Iq:()=>G,Q6:()=>d,TB:()=>P,Wy:()=>H,Yh:()=>C,eh:()=>l,oF:()=>L,yP:()=>B,yQ:()=>u});let d="•••",e=new Set(["key","apikey","token","secret","password","passwd","passphrase","pwd","pass","credential","credentials","authorization","bearer","jwt","cookie","signature","pat"]),f=new Set([...e,"auth","sig","code","pw"]),g=["token","secret","password","passwd","apikey"],h=new Set(["file","path","dir","url","uri","endpoint","id","name","type","header","env","var","length","ttl","expiry","expires","timeout","mode","format"]),i=new Set(["-k"]);function j(a){return a.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)}function k(a,b){let c=j(a);return!(c.length>1&&h.has(c[c.length-1]))&&c.some(a=>b.has(a)||g.some(b=>a.length>b.length&&a.endsWith(b)))}function l(a){return k(a,e)}let m=RegExp("^(?:sk-[A-Za-z0-9_-]{16,}|(?:sk|pk|rk)_(?:live|test)_[A-Za-z0-9]{16,}|gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|glpat-[A-Za-z0-9_-]{16,}|xox[abposr]-[A-Za-z0-9-]{10,}|(?:AKIA|ASIA)[0-9A-Z]{16}|AIza[0-9A-Za-z_-]{30,}|ya29\\.[0-9A-Za-z_-]{20,}|npm_[A-Za-z0-9]{30,}|hf_[A-Za-z0-9]{30,}|shp(?:at|ss|ca|pa)_[A-Fa-f0-9]{20,}|dop_v1_[a-f0-9]{40,}|lin_api_[A-Za-z0-9]{20,})"),n=/^eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]*$/,o=/^[A-Za-z0-9_\-+/=.~]+$/;function p(a){return!(/\s/.test(a)||u(a))&&(!!(m.test(a)||n.test(a))||!(a.length<24||!o.test(a)||/^[./~]/.test(a)||/\.[A-Za-z][A-Za-z0-9]{0,4}$/.test(a)||a.split("/").length>2)&&!!/\d/.test(a)&&!!/[A-Za-z]/.test(a)&&(/[a-z]/.test(a)&&/[A-Z]/.test(a)||/^[0-9a-f]+$/i.test(a)||!/[-_.]/.test(a))&&function(a){let b=new Map;for(let c of a)b.set(c,(b.get(c)??0)+1);let c=0;for(let d of b.values()){let b=d/a.length;c-=b*Math.log2(b)}return c}(a)>=3.5)}let q=/\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$[A-Za-z_][A-Za-z0-9_]*/,r=RegExp(q.source,"g"),s=/^(?:bearer|basic|token)\s+/i;function t(a,b,c){let d=a.replace(s,"");return b.test(d)&&/^[^A-Za-z0-9]*$/.test(d.replace(c,""))}function u(a){return t(a.replace(/\$[$!]/g,"_x"),q,r)}let v=/\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$[A-Z_][A-Z0-9_]*(?![A-Za-z0-9_])/,w=RegExp(v.source,"g");function x(a){return t(a,v,w)}function y(a,b){if(!a||""===b)return;a.push(b);let c=D(b);c!==b&&a.push(c)}let z=/^([A-Za-z][A-Za-z0-9+.-]*:\/\/)([^/?#]*)/;function A(a,b,c){let e=!1,g=a,h="",i=z.exec(a);if(i){let[f,j,k]=i,l=k.lastIndexOf("@");if(l>=0&&!b(D(k.slice(0,l)))){h=`${j}${d}${k.slice(l)}`,e=!0;let a=k.slice(0,l);y(c,a);let b=a.indexOf(":");b>=0&&y(c,a.slice(b+1))}else h=f;g=a.slice(f.length)}let j=g.search(/[?#]/),l=j<0?g:g.slice(0,j),m=j<0?"":g.slice(j),n=l.split("/").map(a=>p(D(a))?(e=!0,y(c,a),d):a).join("/");return m=m.replace(/([?&#;])([^&#;]*)/g,(a,g,h)=>{let i=h.indexOf("=");if(i<0){let f=D(h);return!p(f)||b(f)?a:(e=!0,y(c,h),`${g}${d}`)}let j=h.slice(0,i),l=D(h.slice(i+1));return""===l||b(l)||!function(a){let b=a;try{b=decodeURIComponent(a)}catch{}return k(b,f)}(j)&&!p(l)?a:(e=!0,y(c,h.slice(i+1)),`${g}${j}=${d}`)}),{value:`${h}${n}${m}`,masked:e}}function B(a){return A(a,x)}function C(a){let b=[];return A(a,x,b),[...new Set(b)]}function D(a){try{return decodeURIComponent(a)}catch{return a}}let E=/^(\s*[A-Za-z][A-Za-z0-9 _.-]*=)([\s\S]*)$/;function F(a,b,c){let e=/^([A-Za-z0-9_-]+):(\s*)([\s\S]*)$/.exec(a);if(e&&""!==e[3]&&!e[3].startsWith("//")&&l(e[1])){let[,f,g,h]=e;return b(h)?{value:a,masked:!1}:(y(c,h.trim()),{value:`${f}:${g}${d}`,masked:!0})}let f=a.includes(";")?function(a,b,c){let e=a.split(";");if(e.length<2||!e.every(a=>""===a.trim()||E.test(a)))return;let f=!1;return{value:e.map(a=>{let e=E.exec(a);if(!e)return a;let[,g,h]=e;if(""===h.trim()||b(h))return a;if(l(g.slice(0,-1).trim()))return f=!0,y(c,h.trim()),`${g}${d}`;let i=F(h,b,c);return f||=i.masked,`${g}${i.value}`}).join(";"),masked:f}}(a,b,c):void 0;if(f)return f;let g=/^([A-Za-z_][A-Za-z0-9_]*)=([\s\S]*)$/.exec(a);if(g&&""!==g[2]&&l(g[1]))return b(g[2])?{value:a,masked:!1}:(y(c,g[2]),{value:`${g[1]}=${d}`,masked:!0});if(/\s/.test(a)){var h,i,j;let d,e;return h=a,i=b,j=c,e=K((d=h.split(/(\s+)/)).filter((a,b)=>b%2==0),i,!0,j),{value:d.map((a,b)=>b%2==0?e.values[b/2]:a).join(""),masked:e.masked}}if(/^[A-Za-z][A-Za-z0-9+.-]*:\/\//.test(a))return A(a,b,c);if(g&&""!==g[2]){let a=F(g[2],b,c);return{value:`${g[1]}=${a.value}`,masked:a.masked}}return p(a)&&!b(a)?(y(c,a),{value:d,masked:!0}):{value:a,masked:!1}}function G(a){return F(a,x)}function H(a){let b=[];return F(a,x,b),[...new Set(b)]}function I(a){if(i.has(a))return!0;if(!/^--?[A-Za-z]/.test(a))return!1;let b=a.replace(/^-+/,"");return l(b)||"auth"===j(b).at(-1)}let J=/^(?:bearer|basic|token)$/i;function K(a,b,c,e){let f=!1,g=!1;return{values:a.map(a=>{if(""===a)return a;if(g){if(c&&J.test(a))return a;if(g=!1,!/^-[A-Za-z-]/.test(a))return b(a)?a:(f=!0,y(e,a),d)}let h=/^(--?[A-Za-z][A-Za-z0-9_.-]*)=([\s\S]*)$/.exec(a);if(h){let[,a,c]=h;if(""!==c&&I(a)&&!b(c))return f=!0,y(e,c),`${a}=${d}`;let g=F(c,b,e);return f||=g.masked,`${a}=${g.value}`}if(/^--?[A-Za-z][A-Za-z0-9_.-]*$/.test(a))return g=I(a),a;if(c){let b=/^([A-Za-z0-9_-]+):$/.exec(a);if(J.test(a)||b&&l(b[1]))return g=!0,a}let i=F(a,b,e);return f||=i.masked,i.value}),masked:f}}function L(a){let{values:b,masked:c}=K(a,x,!1);return{args:b,masked:c}}function M(a){let b=[];return K(a,x,!1,b),[...new Set(b)]}function N(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function O(a){return!a.startsWith("!")&&!u(a)}function P(a){if(!N(a))return[];let b=[];for(let c of["env","headers"]){let d=a[c];if(N(d))for(let[a,e]of Object.entries(d))"string"==typeof e&&O(e)&&""!==e&&(l(a)||/^(?:bearer|basic|token)\s+\S/i.test(e)||F(e,u).masked)&&b.push({kind:"env"===c?"env":"header",name:a})}let c=N(a.oauth)?a.oauth.clientSecret:void 0;return"string"==typeof c&&""!==c&&O(c)&&b.push({kind:"oauth-client-secret"}),"string"==typeof a.url&&B(a.url).masked&&b.push({kind:"url"}),"string"==typeof a.command&&G(a.command).masked&&b.push({kind:"command"}),Array.isArray(a.args)&&L(a.args.filter(a=>"string"==typeof a)).masked&&b.push({kind:"args"}),b}},9993:(a,b,c)=>{function d(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function e(a){if(d(a)&&"url"in a&&"string"==typeof a.url&&!a.auth)return(d(a.headers)?Object.keys(a.headers):[]).some(a=>"authorization"===a.toLowerCase())?void 0:a.url}function f(a,b){let c=String(new URL(b));return{key:`mcp__${a.replace(/-/g,"_")}|${c}`,legacyKey:c}}function g(a,b){return f(a,b).key}c.d(b,{Hi:()=>n,P0:()=>e,U$:()=>g,X9:()=>h,ZB:()=>o,bV:()=>l,n_:()=>f,we:()=>m});class h extends Error{constructor(){super("The server was signed out of while this connection was under way, so it stores nothing more"),this.name="McpSignedOutError"}}let i=Symbol.for("pi-web:mcp-sign-outs"),j=Symbol.for("pi-web:mcp-sign-in");function k(){let a=globalThis,b=a[j];return a[i]??=b?.signOuts??new Map}function l(a){return k().get(a)??0}function m(a){let b=k();b.set(a,(b.get(a)??0)+1)}function n(a,b){let c=g(a,b),d=l(c);return()=>{if(l(c)!==d)throw new h}}function o(a,b){class c extends a.McpOAuthCredentialStore{forServer(a,c){let d=super.forServer(a,c);return{load:()=>d.load(),save:a=>(b(),d.save(a)),withRefreshLock:a=>d.withRefreshLock(a)}}}return new c}},18904:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{IR:()=>j,py:()=>h,uw:()=>i});var e=c(75430),f=a([e]);e=(f.then?(await f)():f)[0];let k=new Set(["off","minimal","low","medium","high","xhigh","max"]);function g(a,b){return a.provider===b.provider&&a.id===b.modelId}async function h(a,b){let c=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===c.length)return{visible:await a.getAvailable(),scopedModels:[],thinkingLevelPins:{},warnings:[]};let d=await a.getAvailable(),{scopedModels:f,diagnostics:g}=await (0,e.resolveModelScopeWithDiagnostics)(c,{getAvailable:async()=>d}),h=g.filter(a=>"no-match"!==a.code||0===f.length||!function(a){if(!(a.includes("*")||a.includes("?")||a.includes("[")))return!1;let b=a.lastIndexOf(":");return b<0||k.has(a.slice(b+1))}(a.pattern)).map(a=>a.message);if(0===f.length)return{visible:d,scopedModels:[],thinkingLevelPins:{},warnings:h};let i={};for(let a of f)a.thinkingLevel&&(i[`${a.model.provider}/${a.model.id}`]=a.thinkingLevel);return{visible:f.map(a=>a.model),scopedModels:f,thinkingLevelPins:i,warnings:h}}function i(a){return a.scopedModels.length>0?[...a.visible]:[...a.visible].sort((a,b)=>a.provider.localeCompare(b.provider))}function j(a,b={}){let c=b.requestedModel,d=b.defaultModel,e=c?a.visible.find(a=>g(a,c)):void 0;if(c&&!e)throw Error(`Model is not available in the enabled scope: ${c.provider}/${c.modelId}`);let f=e?a.scopedModels.find(a=>a.model===e||g(a.model,{provider:e.provider,modelId:e.id})):void 0,h=!e&&d?a.scopedModels.find(a=>g(a.model,d)):void 0,i=e?void 0:h??a.scopedModels[0],k=e||i||!d?void 0:a.visible.find(a=>g(a,d)),l=e??i?.model??k,m=f??i,n=b.thinkingLevel??m?.thinkingLevel;return{...l?{model:l}:{},...n?{thinkingLevel:n}:{},scopedModels:[...a.scopedModels]}}d()}catch(a){d(a)}})},23757:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{IW:()=>A,KO:()=>r,Sg:()=>z,XA:()=>v,fR:()=>t,lL:()=>p,lt:()=>y,pt:()=>w,r5:()=>u,zE:()=>q});var e=c(75430),f=c(3140),g=c(9993),h=c(66479),i=c(43084),j=c(60268),k=a([e,i,j]);[e,i,j]=k.then?(await k)():k;let A=2e4,B="from shell command: ",C=new Set(["codemode","deferred","direct","hidden"]);function l(a){let b;return{promise:new Promise(c=>{b=setTimeout(c,a),b.unref?.()}),cancel:()=>clearTimeout(b)}}function m(a){return a.aborted?Promise.resolve():new Promise(b=>a.addEventListener("abort",()=>b(),{once:!0}))}function n(a,b,c){var d;return d=b(a.slice(0,65536)),d.length>c?`${d.slice(0,c-1)}…`:d}function o(a,b,c){return b(a.slice(-65536)).slice(-c)}function p(a,b){return n(a,b,2e3)}function q(a,b){return o(a,b,2e3)}function r(a,b){return(0,i.xW)(a).some(({value:a})=>b.isCommandConfigValue(a))}let D=/^(?:bearer|basic|token)$/i;function s(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function t(a,b,c,d=[]){let e=new Map,g=(a,b,c)=>{let d=e.get(a);d&&(!d.word||c)||e.set(a,{raw:a,shown:b,word:c})},h=a=>{if(void 0===a)return;let b=a.trim();for(let a of(b.length>=6&&g(b,f.Q6,!1),b.split(/\s+/)))a!==b&&a.length>=6&&!D.test(a)&&g(a,f.Q6,!0)},j=(a,b)=>{b.masked&&a.length>=6&&g(a,b.value,!1)};for(let{value:b}of(0,i.xW)(a))if(c.isCommandConfigValue(b)){let a=b.slice(1);a.trim()&&g(`${B}${a}`,`${B}${f.Q6}`,!1),a.trim().length>=6&&g(a.trim(),f.Q6,!0)}else(0,f.yQ)(b)||h(b);let k=b.map(a=>a.options??{});if("url"in a){for(let a of k)for(let b of Object.values(a.headers??{}))h(b);j(a.url,(0,f.yP)(a.url));try{let b=new URL(a.url).href;b!==a.url&&j(b,(0,f.yP)(b))}catch{}for(let b of(0,f.Yh)(a.url))h(b)}else{for(let b of k)for(let c of Object.keys(a.env??{}))h(b.env?.[c]);for(let b of(j(a.command,(0,f.Iq)(a.command)),(0,f.Wy)(a.command)))h(b);let b=a.args??[],c=(0,f.oF)(b).args;for(let a of(b.forEach((a,b)=>j(a,{value:c[b]??f.Q6,masked:c[b]!==a})),(0,f.DA)(b)))h(a)}for(let a of d)h(a);let l=[...e.values()].sort((a,b)=>b.raw.length-a.raw.length).map(({raw:a,shown:b,word:c})=>({shown:b,pattern:RegExp(c?`(?<![A-Za-z0-9_])${s(a)}(?![A-Za-z0-9_])`:s(a),"g")}));return a=>l.reduce((a,{pattern:b,shown:c})=>a.replace(b,()=>c),a)}function u(a,b,c={}){let d,f=c.requestTimeoutMs??15e3,{config:g}=a,h=Math.min(g.timeout??60,f/1e3),k={name:a.name,config:{...g,timeout:h},source:a.sourcePath,scope:a.scope},l=[],m=(0,i.Pn)(b);return{connection:new b.McpServerConnection({entry:k,cwd:a.cwd,createTransport:(...a)=>{let b=m(...a);return l.push(b),b},credentials:c.credentials??new b.McpOAuthCredentialStore,providerToken:c.providerToken??(async a=>{try{return d??=(0,j.OH)().then(a=>new e.ModelRegistry(a)),await (await d).getApiKeyForProvider(a)}catch{return}}),onTools:()=>{}}),transports:l}}async function v({connection:a,transports:b},c=2e3){let d=[a.close(),...b.map(a=>a.close())].map(a=>a.catch(()=>void 0)),e=l(c);await Promise.race([Promise.all(d),e.promise]),e.cancel()}async function w({connection:a,transports:b},c,d,e,f={}){var g,h;let{config:i}=c,j=f.attempt??(()=>a.getClient()),k=Date.now(),l=e.aborted?{aborted:!0}:await Promise.race([j().then(a=>({client:a}),a=>({error:a})),m(e).then(()=>({aborted:!0}))]),p=Date.now()-k,q=b.filter(a=>a instanceof d.StdioTransport),r=q[q.length-1],s=t(i,b,d,f.resolvedSecrets),u="url"in i?{}:{cwd:r?.options.cwd??c.cwd};if("aborted"in l){let a=r?.stderr.trim();return{state:"failed",timedOut:!0,tools:[],toolCount:0,durationMs:p,...u,...a?{stderr:o(a,s,2e3)}:{}}}let v="connected"===a.state?"connected":"needs-auth"===a.state?"needs-auth":"failed",x="connected"===v?a.tools:[],y="client"in l?l.client:void 0,z={state:v,tools:x.slice(0,500).map(a=>{var b;let c,e,f,g;return c="object"==typeof a.annotations&&null!==a.annotations?a.annotations:{},e=([a.description,a.title,c.title].find(a=>"string"==typeof a)??"").split(/\r?\n/).map(a=>a.trim()).find(Boolean),{name:n(a.name,s,300),...e?{description:n(e,s,300)}:{},readOnly:!0===c.readOnlyHint,exposure:(b=a.name,f=Object.assign(Object.create(null),i.toolExposure),"string"==typeof(g=d.getMcpToolExposure({...i,toolExposure:f},b))&&C.has(g)?g:i.exposure??"codemode")}}),toolCount:x.length,durationMs:p,...u,..."connected"===v&&a.hasResources?{resources:!0}:{},...y?.serverInfo?{serverInfo:(g=y.serverInfo,{name:n(String(g.name??""),s,300),version:n(String(g.version??""),s,300),..."string"==typeof g.title&&g.title?{title:n(g.title,s,300)}:{}})}:{}};if("failed"===v){let{error:b,stderr:c}=function(a,b){let c=b?.stderr.trim()??"";if(!c)return{error:a};for(let b=a.indexOf("\n");b>=0;b=a.indexOf("\n",b+1)){let d=a.slice(b+1);if(d&&c.includes(d))return{error:a.slice(0,b),stderr:c}}return{error:a,stderr:c}}(a.error??("error"in l?(h=l.error)instanceof Error?h.message:String(h):"The connection failed"),r);z.error=n(b,s,2e3),c&&(z.stderr=o(c,s,2e3))}return z}async function x(a,b,c,d={}){let e=u(a,b,{...void 0!==d.requestTimeoutMs?{requestTimeoutMs:d.requestTimeoutMs}:{},...d.guard?{credentials:(0,g.ZB)(b,d.guard)}:{}});try{return await w(e,a,b,c)}finally{await v(e,d.closeWaitMs??2e3)}}let E=Symbol.for("pi-web:mcp-test-flights"),F=Symbol.for("pi-web:mcp-test-command-queue"),G="cancelled";async function y(a,b){let c,d,e=(d=globalThis,d[F]??={tail:Promise.resolve()}),f=e.tail,g=new Promise(a=>{c=a});e.tail=f.then(()=>g);let h=l(b),i=await Promise.race([f.then(()=>"turn"),h.promise.then(()=>"timeout"),m(a).then(()=>"aborted")]);return h.cancel(),"turn"!==i&&c(),{release:c,turn:"turn"===i,timedOut:"timeout"===i}}function z(a,b,c={}){var d,e,f,i;let j,k,n,o,p,q,s,t,u,v,w=[a.scope,a.sourcePath,a.name,a.configKey,a.cwd,function(a){let b=(0,g.P0)(a.config);if(void 0===b)return 0;try{return(0,g.bV)((0,g.U$)(a.name,b))}catch{return 0}}(a)].join("\0"),B=(v=globalThis,v[E]??=new Map),C=B.get(w);if(C)return C.join(c.signal),C;let D=(d=a,e=b,f=c,i=()=>{B.get(w)===D&&B.delete(w)},j=f.deadlineMs??A,k=f.closeWaitMs??2e3,n=function(a){let b=(0,g.P0)(a.config);if(void 0!==b)try{return(0,g.Hi)(a.name,b)}catch{return}}(d),o=f.connect??((a,b)=>x(a,e,b,{requestTimeoutMs:f.requestTimeoutMs,closeWaitMs:k,guard:n})),p=new AbortController,q=0,s=!1,t=[],u=async()=>{await Promise.resolve();let a=Date.now(),b=r(d.config,e),c=b?await y(p.signal,j):void 0,f=b?Date.now()-a:0,g=(a,b)=>{let c={...a,testedAt:Date.now(),...f>0?{queuedMs:f}:{}};return b&&!(()=>{try{return n?.(),!1}catch{return!0}})()&&(0,h.kY)(d,d.configKey,{...c,origin:"test"}),c},i=a=>({state:"failed",tools:[],toolCount:0,durationMs:0,...a});if(c&&!c.turn)return g(i(c.timedOut?{queueTimedOut:!0}:{}),!1);let q=setTimeout(()=>p.abort("deadline"),j);q.unref?.();let s=Date.now();try{let a=m(p.signal).then(()=>l(k+500).promise).then(()=>i({timedOut:!0,durationMs:Date.now()-s})),b=await Promise.race([o(d,p.signal),a]),c=p.signal.reason===G&&!0===b.timedOut;return g(b,!c)}finally{clearTimeout(q),c?.release()}},Object.assign((async()=>{try{return await u()}finally{for(let[a,b]of t)a.removeEventListener("abort",b)}})(),{join:a=>{if(!a){s=!0;return}q+=1;let b=()=>{0!=(q-=1)||s||p.signal.aborted||(p.abort(G),i())};a.aborted?b():(a.addEventListener("abort",b,{once:!0}),t.push([a,b]))}}));return B.set(w,D),D.finally(()=>{B.get(w)===D&&B.delete(w)}).catch(()=>void 0),D.join(c.signal),D}d()}catch(a){d(a)}})},28967:(a,b,c)=>{function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){return b?{...a,modelError:b}:a}function g(a){return{...a,modelError:"Model list is temporarily unavailable. Check your configuration and try again."}}function h(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=32;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{Fw:()=>g,Mx:()=>f,kn:()=>e,rC:()=>h})},28994:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{S9:()=>l,TH:()=>k,je:()=>m,vd:()=>i});var e=c(28967),f=c(18904),g=a([f]);function h(){return globalThis.__piWebProviderModelCatalog??=new Map,globalThis.__piWebProviderModelCatalog}async function i(a){let b=new Set(a.getRegisteredProviderIds()),c=new Map;for(let d of(await a.getAvailable()))!b.has(d.provider)&&(!a.getModel(d.provider,d.id)||a.getPhysicalModel(d.provider,d.id))||c.set(d.provider,[...c.get(d.provider)??[],d]);let d=[...c.keys()].some(a=>!h().has(a));for(let[a,b]of c)h().set(a,b);d&&(0,e.kn)()}function j(a){let b=new Set(a.getModels().map(a=>a.provider));return[...h()].flatMap(([a,c])=>b.has(a)?[]:c)}function k(a){return new Proxy(a,{get(a,b,c){if("getAvailable"===b)return async(...b)=>{let[c]=b,d=j(a).filter(a=>!c||a.provider===c);return[...await a.getAvailable(...b),...d]};let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}})}function l(a,b,c){return j(a).find(a=>a.provider===b&&a.id===c)}async function m(a,b,c){let d;if(0===j(a).length)return;try{d=(0,f.IR)(await (0,f.py)(k(a),b),c)}catch{return}let e=d.model&&l(a,d.model.provider,d.model.id);return e?{model:e,...d.thinkingLevel?{thinkingLevelPin:d.thinkingLevel}:{}}:void 0}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},43084:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Pn:()=>h,aS:()=>e.aS,tF:()=>e.tF,xW:()=>e.xW});var e=c(54218),f=c(53303),g=a([f]);function h(a,b={}){let c=b.platform??process.platform;return(d,g,h)=>{var i;let j,k=(i=d.config,(j=(0,e.tF)(i,a))&&("oauth-client-secret"===j.kind?"oauth.clientSecret":`${j.kind} "${j.name}"`));if(k)throw Error(`MCP server "${d.name}" ${k} references ${e.aS}, which Pi Web does not pass to MCP servers`);let l=a.createDefaultTransport(d,g,h);if("url"in d.config)return l;if(!(l instanceof a.StdioTransport))throw Error(`MCP server "${d.name}": the SDK did not create a stdio transport`);let{env:m={},...n}=l.options,o=new Set(Object.keys(d.config.env??{})),p=Object.keys(m).find(a=>!o.has(a));if(void 0!==p)throw Error(`MCP server "${d.name}": the SDK set environment variable ${p}, which its config does not declare`);return new a.StdioTransport({...n,env:function(a,b,c){let d={};for(let[b,e]of Object.entries((0,f.$9)(a,c)))void 0!==e&&(d[b]=e);for(let[a,e]of Object.entries(b)){if("win32"===c)for(let b of Object.keys(d))b.toUpperCase()===a.toUpperCase()&&delete d[b];d[a]=e}return d}(b.baseEnvironment??process.env,m,c),inheritEnv:!1})}}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},53303:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$9:()=>h,Ds:()=>k,J1:()=>i,eD:()=>j});var e=c(75430),f=c(76760),g=a([e]);e=(g.then?(await g)():g)[0];let l="pi-web-project-command-environment",m=`<inline:${l}>`;function h(a,b=process.platform){let c={...a};for(let a of Object.keys(c))(function(a,b){let c="win32"===b?a.toUpperCase():a;return"PORT"===c||"NODE_ENV"===c||c.startsWith("NEXT_")||"PI_WEB_PASSWORD"===c})(a,b)&&delete c[a];return c}function i(a={}){let{abortSettleGraceMs:b=1e3,agentBinDir:c=(0,f.join)((0,e.getAgentDir)(),"bin"),baseEnvironment:d=process.env,localOperations:g=(0,e.createLocalBashOperations)({shellPath:a.shellPath}),platform:j=process.platform}=a;return{exec(a,e,f){var i;let k,l,m,n=(i=h(f.env??d,j),k="win32"===j?Object.keys(i).find(a=>"PATH"===a.toUpperCase())??"PATH":"PATH",l="win32"===j?";":":",(m=i[k]??"").split(l).filter(Boolean).includes(c)||(i[k]=[c,m].filter(Boolean).join(l)),i),{onData:o,signal:p,timeout:q}=f,r=!1,s=g.exec(a,e,{...f,env:n,onData:a=>{r||o(a)}}),t="number"==typeof q&&Number.isFinite(q)&&q>0?1e3*q:void 0;return p||void 0!==t?new Promise((a,c)=>{let d=[],e=()=>{for(let a of(r=!0,d))clearTimeout(a);p?.removeEventListener("abort",g)},f=(a,b)=>{d.push(setTimeout(()=>{e(),c(b)},Math.min(a,0x7fffffff)))},g=()=>f(b,Error("aborted"));void 0!==t&&f(t+b,Error(`timeout:${q}`)),s.then(b=>{e(),a(b)},a=>{e(),c(a)}),p?.aborted?g():p?.addEventListener("abort",g,{once:!0})}):s}}}function j(a){return{name:l,hidden:!0,factory:b=>{let c=(0,e.createBashToolDefinition)(a.cwd);b.registerTool({...c,defaultActive:!1,execute:(b,c,d,f,g)=>(0,e.createBashToolDefinition)(a.cwd,{commandPrefix:a.settings.getShellCommandPrefix(),operations:i({shellPath:a.settings.getShellPath()})}).execute(b,c,d,f,g)})}}}function k(a){let b=a.extensions.findIndex(a=>a.path===m);if(b<0)return a;let c=a.extensions.slice(0,b).find(a=>a.tools.has("bash"));return c?{...a,extensions:a.extensions.filter((a,c)=>c!==b),errors:a.errors.filter(a=>a.path!==m||a.error!==`Tool "bash" conflicts with ${c.path}`)}:a}d()}catch(a){d(a)}})},54218:(a,b,c)=>{c.d(b,{aS:()=>d,tF:()=>h,xW:()=>g});let d="PI_WEB_PASSWORD";function e(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function f(a){return e(a)?Object.entries(a).filter(a=>"string"==typeof a[1]):[]}function g(a){if(!e(a))return[];if(!("url"in a))return f(a.env).map(([a,b])=>({kind:"env",name:a,value:b}));let b=f(a.headers).map(([a,b])=>({kind:"header",name:a,value:b})),c=e(a.oauth)?a.oauth.clientSecret:void 0;return"string"==typeof c&&b.push({kind:"oauth-client-secret",value:c}),b}function h(a,b){for(let{value:c,...e}of g(a))if(b.isCommandConfigValue(c)?c.toUpperCase().includes(d):b.getConfigValueEnvVarNames(c).some(a=>a.toUpperCase()===d))return e}},60268:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{OH:()=>k,O_:()=>j,nx:()=>l});var e=c(75430),f=c(77598),g=c(28994),h=c(63108),i=a([e,g]);async function j(){let a=(0,e.getAgentDir)(),b=await (0,e.createAgentSessionServices)({cwd:a,agentDir:a});return await (0,g.vd)(b.modelRuntime),b.modelRuntime}[e,g]=i.then?(await i)():i;let m=Symbol.for("pi-web:shared-model-runtime-refresh");async function k(){var a;let b,c=(0,e.getAgentDir)(),d=globalThis.__piWebSharedModelRuntime;(!d||d.agentDir!==c||d.expiresAt<=Date.now())&&((b={agentDir:a=c,runtime:j(),queueKey:`${a}\0${(0,f.randomUUID)()}`,expiresAt:1/0}).runtime.then(()=>{b.expiresAt=Date.now()+6e5},()=>{globalThis.__piWebSharedModelRuntime===b&&(globalThis.__piWebSharedModelRuntime=void 0)}),d=b,globalThis.__piWebSharedModelRuntime=d);let i=await d.runtime;return(0,h.T)(m,d.queueKey,async()=>(await i.refresh({allowNetwork:!1}),await (0,g.vd)(i),i))}function l(){globalThis.__piWebSharedModelRuntime=void 0}d()}catch(a){d(a)}})},66479:(a,b,c)=>{c.d(b,{My:()=>k,Te:()=>p,Tx:()=>i,Ul:()=>r,Wu:()=>j,jQ:()=>q,kY:()=>h,mj:()=>m,vU:()=>l,wf:()=>g});var d=c(58864);let e=Symbol.for("pi-web:mcp-status:by-config");function f(){let a=globalThis;return a[e]??=new Map}function g(a){return`${a.scope}\0${a.sourcePath}\0${a.name}`}function h(a,b,c){let d=f(),e=g(a),h=d.get(e)??new Map;d.delete(e),h.delete(b),h.set(b,c),d.set(e,h);for(let a=function(a){let b=0;for(let c of a.values())b+=c.size;return b}(d);a>500;a--){let[a,b]=d.entries().next().value;b.delete(b.keys().next().value),0===b.size&&d.delete(a)}}function i(a,b){let c=f(),d=new Set(a.map(g)),e=new Set(b.map(a=>`${a.scope}\0${a.path}\0`));for(let a of[...c.keys()]){let b=a.slice(0,a.lastIndexOf("\0")+1);e.has(b)&&!d.has(a)&&c.delete(a)}return a.map(a=>{let b=function(a,b){let c=f(),d=g(a),e=c.get(d);if(!e)return;let h=e.get(b);for(let a of[...e.keys()])a!==b&&e.delete(a);return 0===e.size&&c.delete(d),h}(a,a.configKey);return b?{...a,status:b}:a})}function j(a,b,c){return f().get(g(a))?.get(b)===c}function k(a,b,c){if(!j(a,b,c))return!1;let d=f(),e=g(a),h=d.get(e);return h?.delete(b),h?.size===0&&d.delete(e),!0}function l(a,b,c,d){return!!j(a,b,c)&&(h(a,b,d),!0)}function m(a){f().delete(g(a))}let n=Symbol.for("pi-web:mcp-inactive-hosts");function o(){let a=globalThis;return a[n]??=new Map}function p(a,b){let c=o();for(c.delete(a),c.set(a,b);c.size>100;)c.delete(c.keys().next().value)}function q(a,b){let c=o();(void 0===b||c.get(a)===b)&&c.delete(a)}function r(a){let b=[...o().values()].sort((a,b)=>b.updatedAt-a.updatedAt);return(void 0===a?void 0:b.find(b=>(0,d.Eb)(b.cwd,a)))??b[0]}}};
@@ -1 +1 @@
1
- exports.id=3824,exports.ids=[3824],exports.modules={18904:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{IR:()=>l,py:()=>j,uw:()=>k});var e=c(75430),f=a([e]);e=(f.then?(await f)():f)[0];let m=new Set(["off","minimal","low","medium","high","xhigh","max"]);function g(a,b){return a.provider===b.provider&&a.id===b.modelId}function h(a){return a.includes("*")||a.includes("?")||a.includes("[")}function i(a,b){let c=a.toLowerCase(),d=b.filter(a=>`${a.provider}/${a.id}`.toLowerCase()===c);return d.length>0?d:b.filter(a=>a.id.toLowerCase()===c)}async function j(a,b){let c=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===c.length)return{visible:await a.getAvailable(),scopedModels:[],thinkingLevelPins:{},warnings:[]};let d=await a.getAvailable();for(let a of c){if(h(a))continue;let b=i(a,d);if(0===b.length){let c=a.lastIndexOf(":"),e=c>=0?a.slice(c+1):"";m.has(e)&&(b=i(a.slice(0,c),d))}if(b.length>1){let c=b.map(a=>`${a.provider}/${a.id}`).sort().join(", ");throw Error(`Ambiguous enabledModels entry "${a}" matches multiple models: ${c}. Use provider/modelId.`)}}let{scopedModels:f,diagnostics:g}=await (0,e.resolveModelScopeWithDiagnostics)(c,{getAvailable:async()=>d}),j=g.filter(a=>"no-match"!==a.code||0===f.length||!function(a){if(!h(a))return!1;let b=a.lastIndexOf(":");return b<0||m.has(a.slice(b+1))}(a.pattern)).map(a=>a.message);if(0===f.length)return{visible:d,scopedModels:[],thinkingLevelPins:{},warnings:j};let k={};for(let a of f)a.thinkingLevel&&(k[`${a.model.provider}/${a.model.id}`]=a.thinkingLevel);return{visible:f.map(a=>a.model),scopedModels:f,thinkingLevelPins:k,warnings:j}}function k(a){return a.scopedModels.length>0?[...a.visible]:[...a.visible].sort((a,b)=>a.provider.localeCompare(b.provider))}function l(a,b={}){let c=b.requestedModel,d=b.defaultModel,e=c?a.visible.find(a=>g(a,c)):void 0;if(c&&!e)throw Error(`Model is not available in the enabled scope: ${c.provider}/${c.modelId}`);let f=e?a.scopedModels.find(a=>a.model===e||g(a.model,{provider:e.provider,modelId:e.id})):void 0,h=!e&&d?a.scopedModels.find(a=>g(a.model,d)):void 0,i=e?void 0:h??a.scopedModels[0],j=e||i||!d?void 0:a.visible.find(a=>g(a,d)),k=e??i?.model??j,m=f??i,n=b.thinkingLevel??m?.thinkingLevel;return{...k?{model:k}:{},...n?{thinkingLevel:n}:{},scopedModels:[...a.scopedModels]}}d()}catch(a){d(a)}})},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){return b?{...a,modelError:b}:a}function g(a){return{...a,modelError:"Model list is temporarily unavailable. Check your configuration and try again."}}function h(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=32;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{Fw:()=>g,Mx:()=>f,kn:()=>e,rC:()=>h})},28994:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{S9:()=>l,TH:()=>k,je:()=>m,vd:()=>i});var e=c(28967),f=c(18904),g=a([f]);function h(){return globalThis.__piWebProviderModelCatalog??=new Map,globalThis.__piWebProviderModelCatalog}async function i(a){let b=new Map;for(let c of(await a.getAvailable()))b.set(c.provider,[...b.get(c.provider)??[],c]);let c=[...b.keys()].some(a=>!h().has(a));for(let[a,c]of b)h().set(a,c);c&&(0,e.kn)()}function j(a){let b=new Set(a.getModels().map(a=>a.provider));return[...h()].flatMap(([a,c])=>b.has(a)?[]:c)}function k(a){return new Proxy(a,{get(a,b,c){if("getAvailable"===b)return async(...b)=>{let[c]=b,d=j(a).filter(a=>!c||a.provider===c);return[...await a.getAvailable(...b),...d]};let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}})}function l(a,b,c){return j(a).find(a=>a.provider===b&&a.id===c)}async function m(a,b,c){let d;if(0===j(a).length)return;try{d=(0,f.IR)(await (0,f.py)(k(a),b),c)}catch{return}let e=d.model&&l(a,d.model.provider,d.model.id);return e?{model:e,...d.thinkingLevel?{thinkingLevelPin:d.thinkingLevel}:{}}:void 0}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},60268:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{OH:()=>k,O_:()=>j,nx:()=>l});var e=c(75430),f=c(77598),g=c(28994),h=c(63108),i=a([e,g]);async function j(){let a=(0,e.getAgentDir)(),b=await (0,e.createAgentSessionServices)({cwd:a,agentDir:a});return await (0,g.vd)(b.modelRuntime),b.modelRuntime}[e,g]=i.then?(await i)():i;let m=Symbol.for("pi-web:shared-model-runtime-refresh");async function k(){var a;let b,c=(0,e.getAgentDir)(),d=globalThis.__piWebSharedModelRuntime;(!d||d.agentDir!==c||d.expiresAt<=Date.now())&&((b={agentDir:a=c,runtime:j(),queueKey:`${a}\0${(0,f.randomUUID)()}`,expiresAt:1/0}).runtime.then(()=>{b.expiresAt=Date.now()+6e5},()=>{globalThis.__piWebSharedModelRuntime===b&&(globalThis.__piWebSharedModelRuntime=void 0)}),d=b,globalThis.__piWebSharedModelRuntime=d);let i=await d.runtime;return(0,h.T)(m,d.queueKey,async()=>(await i.refresh({allowNetwork:!1}),await (0,g.vd)(i),i))}function l(){globalThis.__piWebSharedModelRuntime=void 0}d()}catch(a){d(a)}})},63108:(a,b,c)=>{"use strict";function d(a,b,c){let d=globalThis,e=d[a]??=new Map,f=(e.get(b)??Promise.resolve()).then(c),g=f.then(()=>void 0,()=>void 0);return e.set(b,g),g.then(()=>{e.get(b)===g&&e.delete(b)}),f}c.d(b,{T:()=>d})},69429:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{C:()=>n,Q:()=>m});var e=c(73024),f=c(76760),g=c(75430),h=c(80974),i=c.n(h),j=a([g]);g=(j.then?(await j)():j)[0];let o={encoding:"utf-8",mode:384};function k(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}async function l(a,b){let c,d;d=(0,f.dirname)(a),(0,e.existsSync)(d)||(0,e.mkdirSync)(d,{recursive:!0,mode:448}),(0,e.existsSync)(a)||((0,e.writeFileSync)(a,"{}",o),(0,e.chmodSync)(a,384));let g=await i().lock(a,{retries:{retries:10,factor:2,minTimeout:100,maxTimeout:1e4,randomize:!0},stale:3e4,onCompromised:a=>{c=a}}),h=()=>{if(c)throw c};try{h();let c=JSON.parse((0,e.readFileSync)(a,"utf-8"));if(!k(c))throw Error("Invalid auth.json: expected an object");let{result:d,changed:f}=b(c);return f&&(h(),(0,e.writeFileSync)(a,JSON.stringify(c,null,2),o),(0,e.chmodSync)(a,384),h()),d}finally{try{await g()}catch{}}}function m(a,b,c=(0,f.join)((0,g.getAgentDir)(),"auth.json")){return l(c,c=>(c[a]=b,{result:void 0,changed:!0}))}async function n(a,b,c=(0,f.join)((0,g.getAgentDir)(),"auth.json")){return l(c,c=>{if(!Object.hasOwn(c,a))return{result:{status:"not_found"},changed:!1};let d=c[a],e=k(d)&&"string"==typeof d.type?d.type:"unknown";return e!==b?{result:{status:"type_mismatch",storedType:e},changed:!1}:(delete c[a],{result:{status:"removed"},changed:!0})})}d()}catch(a){d(a)}})},78335:()=>{},96487:()=>{}};
1
+ exports.id=3824,exports.ids=[3824],exports.modules={18904:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{IR:()=>j,py:()=>h,uw:()=>i});var e=c(75430),f=a([e]);e=(f.then?(await f)():f)[0];let k=new Set(["off","minimal","low","medium","high","xhigh","max"]);function g(a,b){return a.provider===b.provider&&a.id===b.modelId}async function h(a,b){let c=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===c.length)return{visible:await a.getAvailable(),scopedModels:[],thinkingLevelPins:{},warnings:[]};let d=await a.getAvailable(),{scopedModels:f,diagnostics:g}=await (0,e.resolveModelScopeWithDiagnostics)(c,{getAvailable:async()=>d}),h=g.filter(a=>"no-match"!==a.code||0===f.length||!function(a){if(!(a.includes("*")||a.includes("?")||a.includes("[")))return!1;let b=a.lastIndexOf(":");return b<0||k.has(a.slice(b+1))}(a.pattern)).map(a=>a.message);if(0===f.length)return{visible:d,scopedModels:[],thinkingLevelPins:{},warnings:h};let i={};for(let a of f)a.thinkingLevel&&(i[`${a.model.provider}/${a.model.id}`]=a.thinkingLevel);return{visible:f.map(a=>a.model),scopedModels:f,thinkingLevelPins:i,warnings:h}}function i(a){return a.scopedModels.length>0?[...a.visible]:[...a.visible].sort((a,b)=>a.provider.localeCompare(b.provider))}function j(a,b={}){let c=b.requestedModel,d=b.defaultModel,e=c?a.visible.find(a=>g(a,c)):void 0;if(c&&!e)throw Error(`Model is not available in the enabled scope: ${c.provider}/${c.modelId}`);let f=e?a.scopedModels.find(a=>a.model===e||g(a.model,{provider:e.provider,modelId:e.id})):void 0,h=!e&&d?a.scopedModels.find(a=>g(a.model,d)):void 0,i=e?void 0:h??a.scopedModels[0],k=e||i||!d?void 0:a.visible.find(a=>g(a,d)),l=e??i?.model??k,m=f??i,n=b.thinkingLevel??m?.thinkingLevel;return{...l?{model:l}:{},...n?{thinkingLevel:n}:{},scopedModels:[...a.scopedModels]}}d()}catch(a){d(a)}})},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){return b?{...a,modelError:b}:a}function g(a){return{...a,modelError:"Model list is temporarily unavailable. Check your configuration and try again."}}function h(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=32;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{Fw:()=>g,Mx:()=>f,kn:()=>e,rC:()=>h})},28994:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{S9:()=>l,TH:()=>k,je:()=>m,vd:()=>i});var e=c(28967),f=c(18904),g=a([f]);function h(){return globalThis.__piWebProviderModelCatalog??=new Map,globalThis.__piWebProviderModelCatalog}async function i(a){let b=new Set(a.getRegisteredProviderIds()),c=new Map;for(let d of(await a.getAvailable()))!b.has(d.provider)&&(!a.getModel(d.provider,d.id)||a.getPhysicalModel(d.provider,d.id))||c.set(d.provider,[...c.get(d.provider)??[],d]);let d=[...c.keys()].some(a=>!h().has(a));for(let[a,b]of c)h().set(a,b);d&&(0,e.kn)()}function j(a){let b=new Set(a.getModels().map(a=>a.provider));return[...h()].flatMap(([a,c])=>b.has(a)?[]:c)}function k(a){return new Proxy(a,{get(a,b,c){if("getAvailable"===b)return async(...b)=>{let[c]=b,d=j(a).filter(a=>!c||a.provider===c);return[...await a.getAvailable(...b),...d]};let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}})}function l(a,b,c){return j(a).find(a=>a.provider===b&&a.id===c)}async function m(a,b,c){let d;if(0===j(a).length)return;try{d=(0,f.IR)(await (0,f.py)(k(a),b),c)}catch{return}let e=d.model&&l(a,d.model.provider,d.model.id);return e?{model:e,...d.thinkingLevel?{thinkingLevelPin:d.thinkingLevel}:{}}:void 0}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},60268:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{OH:()=>k,O_:()=>j,nx:()=>l});var e=c(75430),f=c(77598),g=c(28994),h=c(63108),i=a([e,g]);async function j(){let a=(0,e.getAgentDir)(),b=await (0,e.createAgentSessionServices)({cwd:a,agentDir:a});return await (0,g.vd)(b.modelRuntime),b.modelRuntime}[e,g]=i.then?(await i)():i;let m=Symbol.for("pi-web:shared-model-runtime-refresh");async function k(){var a;let b,c=(0,e.getAgentDir)(),d=globalThis.__piWebSharedModelRuntime;(!d||d.agentDir!==c||d.expiresAt<=Date.now())&&((b={agentDir:a=c,runtime:j(),queueKey:`${a}\0${(0,f.randomUUID)()}`,expiresAt:1/0}).runtime.then(()=>{b.expiresAt=Date.now()+6e5},()=>{globalThis.__piWebSharedModelRuntime===b&&(globalThis.__piWebSharedModelRuntime=void 0)}),d=b,globalThis.__piWebSharedModelRuntime=d);let i=await d.runtime;return(0,h.T)(m,d.queueKey,async()=>(await i.refresh({allowNetwork:!1}),await (0,g.vd)(i),i))}function l(){globalThis.__piWebSharedModelRuntime=void 0}d()}catch(a){d(a)}})},63108:(a,b,c)=>{"use strict";function d(a,b,c){let d=globalThis,e=d[a]??=new Map,f=(e.get(b)??Promise.resolve()).then(c),g=f.then(()=>void 0,()=>void 0);return e.set(b,g),g.then(()=>{e.get(b)===g&&e.delete(b)}),f}c.d(b,{T:()=>d})},69429:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{C:()=>n,Q:()=>m});var e=c(73024),f=c(76760),g=c(75430),h=c(80974),i=c.n(h),j=a([g]);g=(j.then?(await j)():j)[0];let o={encoding:"utf-8",mode:384};function k(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}async function l(a,b){let c,d;d=(0,f.dirname)(a),(0,e.existsSync)(d)||(0,e.mkdirSync)(d,{recursive:!0,mode:448}),(0,e.existsSync)(a)||((0,e.writeFileSync)(a,"{}",o),(0,e.chmodSync)(a,384));let g=await i().lock(a,{retries:{retries:10,factor:2,minTimeout:100,maxTimeout:1e4,randomize:!0},stale:3e4,onCompromised:a=>{c=a}}),h=()=>{if(c)throw c};try{h();let c=JSON.parse((0,e.readFileSync)(a,"utf-8"));if(!k(c))throw Error("Invalid auth.json: expected an object");let{result:d,changed:f}=b(c);return f&&(h(),(0,e.writeFileSync)(a,JSON.stringify(c,null,2),o),(0,e.chmodSync)(a,384),h()),d}finally{try{await g()}catch{}}}function m(a,b,c=(0,f.join)((0,g.getAgentDir)(),"auth.json")){return l(c,c=>(c[a]=b,{result:void 0,changed:!0}))}async function n(a,b,c=(0,f.join)((0,g.getAgentDir)(),"auth.json")){return l(c,c=>{if(!Object.hasOwn(c,a))return{result:{status:"not_found"},changed:!1};let d=c[a],e=k(d)&&"string"==typeof d.type?d.type:"unknown";return e!==b?{result:{status:"type_mismatch",storedType:e},changed:!1}:(delete c[a],{result:{status:"removed"},changed:!0})})}d()}catch(a){d(a)}})},78335:()=>{},96487:()=>{}};
@@ -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:()=>ae});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){return`${a.cell.recordId}|${a.collapsedSummaryKind??""}`}let p={pin:null,extendUp:0};function q(a,b,c){return a(`summary.${b}.${1===c?"one":"other"}`,{count:c})}class r{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 s(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 t(a){return a.reduce((a,b)=>Math.min(a,b),1/0)}function u(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?[]:[s(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:t(b.map(a=>a.start))})}return{start:t(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(s(e,{start:a,end:a+1}))}}return 0===b.length?null:{start:0,end:b.length,spans:b,turnBoundaries:c}}(a)}var v=c(15398),w=c(39868),x=c(52038),y=c.n(x);let z=["summary","preview","raw"],A={summary:"tab.summary",preview:"tab.preview",raw:"tab.raw"},B={user:"kind.user",context:"kind.context",compacted:"kind.compacted",message:"kind.assistant",tool:"kind.tool"};function C(a,b){return a.length>b?{text:a.slice(0,b),total:a.length,truncated:!0}:{text:a,total:a.length,truncated:!1}}function D(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}
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(30767),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"}}};