agent-tower 0.7.2-beta.6 → 0.7.2-beta.8

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 (555) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +4 -1
  3. package/dist/app.js.map +1 -1
  4. package/dist/app.test.js +80 -1
  5. package/dist/app.test.js.map +1 -1
  6. package/dist/cli.js +4 -10
  7. package/dist/cli.js.map +1 -1
  8. package/dist/core/container.d.ts +8 -0
  9. package/dist/core/container.d.ts.map +1 -1
  10. package/dist/core/container.js +42 -0
  11. package/dist/core/container.js.map +1 -1
  12. package/dist/core/event-bus.d.ts +2 -0
  13. package/dist/core/event-bus.d.ts.map +1 -1
  14. package/dist/core/event-bus.js.map +1 -1
  15. package/dist/executors/__tests__/image-utils.test.d.ts +2 -0
  16. package/dist/executors/__tests__/image-utils.test.d.ts.map +1 -0
  17. package/dist/executors/__tests__/image-utils.test.js +25 -0
  18. package/dist/executors/__tests__/image-utils.test.js.map +1 -0
  19. package/dist/executors/base.executor.d.ts +2 -0
  20. package/dist/executors/base.executor.d.ts.map +1 -1
  21. package/dist/executors/base.executor.js +6 -0
  22. package/dist/executors/base.executor.js.map +1 -1
  23. package/dist/executors/image-utils.d.ts.map +1 -1
  24. package/dist/executors/image-utils.js +10 -8
  25. package/dist/executors/image-utils.js.map +1 -1
  26. package/dist/git/git-cli.d.ts +2 -0
  27. package/dist/git/git-cli.d.ts.map +1 -1
  28. package/dist/git/git-cli.js +2 -0
  29. package/dist/git/git-cli.js.map +1 -1
  30. package/dist/git/worktree.manager.d.ts +2 -1
  31. package/dist/git/worktree.manager.d.ts.map +1 -1
  32. package/dist/git/worktree.manager.js +18 -12
  33. package/dist/git/worktree.manager.js.map +1 -1
  34. package/dist/index.js +16 -31
  35. package/dist/index.js.map +1 -1
  36. package/dist/mcp/http-client.d.ts +1 -0
  37. package/dist/mcp/http-client.d.ts.map +1 -1
  38. package/dist/mcp/http-client.js +3 -0
  39. package/dist/mcp/http-client.js.map +1 -1
  40. package/dist/mcp/server.d.ts.map +1 -1
  41. package/dist/mcp/server.js +15 -0
  42. package/dist/mcp/server.js.map +1 -1
  43. package/dist/mcp/tools/sessions.js +2 -2
  44. package/dist/mcp/tools/sessions.js.map +1 -1
  45. package/dist/mcp/tools/workspaces.d.ts.map +1 -1
  46. package/dist/mcp/tools/workspaces.js +2 -1
  47. package/dist/mcp/tools/workspaces.js.map +1 -1
  48. package/dist/middleware/access-auth.d.ts +1 -0
  49. package/dist/middleware/access-auth.d.ts.map +1 -1
  50. package/dist/middleware/access-auth.js +1 -1
  51. package/dist/middleware/access-auth.js.map +1 -1
  52. package/dist/output/__tests__/text-block-lifecycle.test.d.ts +2 -0
  53. package/dist/output/__tests__/text-block-lifecycle.test.d.ts.map +1 -0
  54. package/dist/output/__tests__/text-block-lifecycle.test.js +241 -0
  55. package/dist/output/__tests__/text-block-lifecycle.test.js.map +1 -0
  56. package/dist/output/claude-code-parser.d.ts +3 -0
  57. package/dist/output/claude-code-parser.d.ts.map +1 -1
  58. package/dist/output/claude-code-parser.js +58 -7
  59. package/dist/output/claude-code-parser.js.map +1 -1
  60. package/dist/output/codex-parser.d.ts.map +1 -1
  61. package/dist/output/codex-parser.js +4 -6
  62. package/dist/output/codex-parser.js.map +1 -1
  63. package/dist/output/cursor-agent-parser.d.ts.map +1 -1
  64. package/dist/output/cursor-agent-parser.js +4 -0
  65. package/dist/output/cursor-agent-parser.js.map +1 -1
  66. package/dist/output/gemini-parser.d.ts +18 -0
  67. package/dist/output/gemini-parser.d.ts.map +1 -0
  68. package/dist/output/gemini-parser.js +91 -0
  69. package/dist/output/gemini-parser.js.map +1 -0
  70. package/dist/output/msg-store.d.ts +6 -0
  71. package/dist/output/msg-store.d.ts.map +1 -1
  72. package/dist/output/msg-store.js +17 -0
  73. package/dist/output/msg-store.js.map +1 -1
  74. package/dist/output/text-block-tracker.d.ts +29 -0
  75. package/dist/output/text-block-tracker.d.ts.map +1 -0
  76. package/dist/output/text-block-tracker.js +149 -0
  77. package/dist/output/text-block-tracker.js.map +1 -0
  78. package/dist/output/types.d.ts +9 -0
  79. package/dist/output/types.d.ts.map +1 -1
  80. package/dist/output/types.js +0 -4
  81. package/dist/output/types.js.map +1 -1
  82. package/dist/routes/__tests__/sessions-runtime.test.js +3 -0
  83. package/dist/routes/__tests__/sessions-runtime.test.js.map +1 -1
  84. package/dist/routes/__tests__/team-run-translations.test.d.ts +2 -0
  85. package/dist/routes/__tests__/team-run-translations.test.d.ts.map +1 -0
  86. package/dist/routes/__tests__/team-run-translations.test.js +418 -0
  87. package/dist/routes/__tests__/team-run-translations.test.js.map +1 -0
  88. package/dist/routes/__tests__/translations.test.d.ts +2 -0
  89. package/dist/routes/__tests__/translations.test.d.ts.map +1 -0
  90. package/dist/routes/__tests__/translations.test.js +286 -0
  91. package/dist/routes/__tests__/translations.test.js.map +1 -0
  92. package/dist/routes/__tests__/workspaces.test.js +140 -0
  93. package/dist/routes/__tests__/workspaces.test.js.map +1 -1
  94. package/dist/routes/conversations.d.ts.map +1 -1
  95. package/dist/routes/conversations.js +19 -2
  96. package/dist/routes/conversations.js.map +1 -1
  97. package/dist/routes/index.d.ts.map +1 -1
  98. package/dist/routes/index.js +2 -0
  99. package/dist/routes/index.js.map +1 -1
  100. package/dist/routes/sessions.d.ts.map +1 -1
  101. package/dist/routes/sessions.js +32 -3
  102. package/dist/routes/sessions.js.map +1 -1
  103. package/dist/routes/team-runs.d.ts.map +1 -1
  104. package/dist/routes/team-runs.js +84 -15
  105. package/dist/routes/team-runs.js.map +1 -1
  106. package/dist/routes/translations.d.ts +4 -0
  107. package/dist/routes/translations.d.ts.map +1 -0
  108. package/dist/routes/translations.js +148 -0
  109. package/dist/routes/translations.js.map +1 -0
  110. package/dist/routes/user-input-origin.d.ts +4 -0
  111. package/dist/routes/user-input-origin.d.ts.map +1 -0
  112. package/dist/routes/user-input-origin.js +7 -0
  113. package/dist/routes/user-input-origin.js.map +1 -0
  114. package/dist/routes/workspaces.d.ts.map +1 -1
  115. package/dist/routes/workspaces.js +32 -2
  116. package/dist/routes/workspaces.js.map +1 -1
  117. package/dist/runtime/__tests__/acp-driver-lifecycle.test.js +2 -2
  118. package/dist/runtime/__tests__/acp-driver-lifecycle.test.js.map +1 -1
  119. package/dist/runtime/__tests__/acp-driver-submission.test.d.ts +2 -0
  120. package/dist/runtime/__tests__/acp-driver-submission.test.d.ts.map +1 -0
  121. package/dist/runtime/__tests__/acp-driver-submission.test.js +88 -0
  122. package/dist/runtime/__tests__/acp-driver-submission.test.js.map +1 -0
  123. package/dist/runtime/__tests__/acp-history-reconciler.test.js +244 -0
  124. package/dist/runtime/__tests__/acp-history-reconciler.test.js.map +1 -1
  125. package/dist/runtime/__tests__/acp-projector.test.js +36 -0
  126. package/dist/runtime/__tests__/acp-projector.test.js.map +1 -1
  127. package/dist/runtime/__tests__/claude-cli-control.test.js +20 -0
  128. package/dist/runtime/__tests__/claude-cli-control.test.js.map +1 -1
  129. package/dist/runtime/__tests__/cli-driver-submission.test.d.ts +2 -0
  130. package/dist/runtime/__tests__/cli-driver-submission.test.d.ts.map +1 -0
  131. package/dist/runtime/__tests__/cli-driver-submission.test.js +61 -0
  132. package/dist/runtime/__tests__/cli-driver-submission.test.js.map +1 -0
  133. package/dist/runtime/__tests__/codex-cli-control.test.js +25 -0
  134. package/dist/runtime/__tests__/codex-cli-control.test.js.map +1 -1
  135. package/dist/runtime/acp/acp-driver.js +38 -1
  136. package/dist/runtime/acp/acp-driver.js.map +1 -1
  137. package/dist/runtime/acp/history-reconciler.d.ts.map +1 -1
  138. package/dist/runtime/acp/history-reconciler.js +95 -36
  139. package/dist/runtime/acp/history-reconciler.js.map +1 -1
  140. package/dist/runtime/acp/projector.d.ts +5 -2
  141. package/dist/runtime/acp/projector.d.ts.map +1 -1
  142. package/dist/runtime/acp/projector.js +50 -23
  143. package/dist/runtime/acp/projector.js.map +1 -1
  144. package/dist/runtime/claude-cli-control.d.ts +4 -1
  145. package/dist/runtime/claude-cli-control.d.ts.map +1 -1
  146. package/dist/runtime/claude-cli-control.js +3 -1
  147. package/dist/runtime/claude-cli-control.js.map +1 -1
  148. package/dist/runtime/cli-driver.js +21 -7
  149. package/dist/runtime/cli-driver.js.map +1 -1
  150. package/dist/runtime/cli-parser.d.ts.map +1 -1
  151. package/dist/runtime/cli-parser.js +3 -0
  152. package/dist/runtime/cli-parser.js.map +1 -1
  153. package/dist/runtime/codex-cli-control.d.ts +4 -1
  154. package/dist/runtime/codex-cli-control.d.ts.map +1 -1
  155. package/dist/runtime/codex-cli-control.js +9 -6
  156. package/dist/runtime/codex-cli-control.js.map +1 -1
  157. package/dist/runtime/codex-cli-projector.d.ts +1 -1
  158. package/dist/runtime/codex-cli-projector.d.ts.map +1 -1
  159. package/dist/runtime/codex-cli-projector.js +4 -2
  160. package/dist/runtime/codex-cli-projector.js.map +1 -1
  161. package/dist/runtime/contracts.d.ts +15 -2
  162. package/dist/runtime/contracts.d.ts.map +1 -1
  163. package/dist/runtime/runtime-coordinator.d.ts.map +1 -1
  164. package/dist/runtime/runtime-coordinator.js +34 -1
  165. package/dist/runtime/runtime-coordinator.js.map +1 -1
  166. package/dist/services/__tests__/conflict-admission.test.d.ts +2 -0
  167. package/dist/services/__tests__/conflict-admission.test.d.ts.map +1 -0
  168. package/dist/services/__tests__/conflict-admission.test.js +37 -0
  169. package/dist/services/__tests__/conflict-admission.test.js.map +1 -0
  170. package/dist/services/__tests__/conflict-recovery-key.test.d.ts +2 -0
  171. package/dist/services/__tests__/conflict-recovery-key.test.d.ts.map +1 -0
  172. package/dist/services/__tests__/conflict-recovery-key.test.js +143 -0
  173. package/dist/services/__tests__/conflict-recovery-key.test.js.map +1 -0
  174. package/dist/services/__tests__/message-delivery.integration.test.d.ts +2 -0
  175. package/dist/services/__tests__/message-delivery.integration.test.d.ts.map +1 -0
  176. package/dist/services/__tests__/message-delivery.integration.test.js +1137 -0
  177. package/dist/services/__tests__/message-delivery.integration.test.js.map +1 -0
  178. package/dist/services/__tests__/review-team-user-counterexamples.test.d.ts +2 -0
  179. package/dist/services/__tests__/review-team-user-counterexamples.test.d.ts.map +1 -0
  180. package/dist/services/__tests__/review-team-user-counterexamples.test.js +200 -0
  181. package/dist/services/__tests__/review-team-user-counterexamples.test.js.map +1 -0
  182. package/dist/services/__tests__/session-manager.lifecycle.test.js +37 -0
  183. package/dist/services/__tests__/session-manager.lifecycle.test.js.map +1 -1
  184. package/dist/services/__tests__/session-manager.team-run.test.js +19 -2
  185. package/dist/services/__tests__/session-manager.team-run.test.js.map +1 -1
  186. package/dist/services/__tests__/team-initial-delivery.integration.test.d.ts +2 -0
  187. package/dist/services/__tests__/team-initial-delivery.integration.test.d.ts.map +1 -0
  188. package/dist/services/__tests__/team-initial-delivery.integration.test.js +469 -0
  189. package/dist/services/__tests__/team-initial-delivery.integration.test.js.map +1 -0
  190. package/dist/services/__tests__/team-reconciler.service.test.js +102 -101
  191. package/dist/services/__tests__/team-reconciler.service.test.js.map +1 -1
  192. package/dist/services/__tests__/team-room-delivery.test.d.ts +2 -0
  193. package/dist/services/__tests__/team-room-delivery.test.d.ts.map +1 -0
  194. package/dist/services/__tests__/team-room-delivery.test.js +670 -0
  195. package/dist/services/__tests__/team-room-delivery.test.js.map +1 -0
  196. package/dist/services/__tests__/team-user-delivery.integration.test.d.ts +2 -0
  197. package/dist/services/__tests__/team-user-delivery.integration.test.d.ts.map +1 -0
  198. package/dist/services/__tests__/team-user-delivery.integration.test.js +622 -0
  199. package/dist/services/__tests__/team-user-delivery.integration.test.js.map +1 -0
  200. package/dist/services/__tests__/translation-client.test.d.ts +2 -0
  201. package/dist/services/__tests__/translation-client.test.d.ts.map +1 -0
  202. package/dist/services/__tests__/translation-client.test.js +240 -0
  203. package/dist/services/__tests__/translation-client.test.js.map +1 -0
  204. package/dist/services/__tests__/translation-protection.test.d.ts +2 -0
  205. package/dist/services/__tests__/translation-protection.test.d.ts.map +1 -0
  206. package/dist/services/__tests__/translation-protection.test.js +156 -0
  207. package/dist/services/__tests__/translation-protection.test.js.map +1 -0
  208. package/dist/services/__tests__/translation-queue.test.d.ts +2 -0
  209. package/dist/services/__tests__/translation-queue.test.d.ts.map +1 -0
  210. package/dist/services/__tests__/translation-queue.test.js +277 -0
  211. package/dist/services/__tests__/translation-queue.test.js.map +1 -0
  212. package/dist/services/__tests__/translation-room-admission.test.d.ts +2 -0
  213. package/dist/services/__tests__/translation-room-admission.test.d.ts.map +1 -0
  214. package/dist/services/__tests__/translation-room-admission.test.js +371 -0
  215. package/dist/services/__tests__/translation-room-admission.test.js.map +1 -0
  216. package/dist/services/__tests__/translation-session-blocks.test.d.ts +2 -0
  217. package/dist/services/__tests__/translation-session-blocks.test.d.ts.map +1 -0
  218. package/dist/services/__tests__/translation-session-blocks.test.js +367 -0
  219. package/dist/services/__tests__/translation-session-blocks.test.js.map +1 -0
  220. package/dist/services/__tests__/translation-settings.service.test.d.ts +2 -0
  221. package/dist/services/__tests__/translation-settings.service.test.d.ts.map +1 -0
  222. package/dist/services/__tests__/translation-settings.service.test.js +154 -0
  223. package/dist/services/__tests__/translation-settings.service.test.js.map +1 -0
  224. package/dist/services/__tests__/translation.service.test.d.ts +2 -0
  225. package/dist/services/__tests__/translation.service.test.d.ts.map +1 -0
  226. package/dist/services/__tests__/translation.service.test.js +480 -0
  227. package/dist/services/__tests__/translation.service.test.js.map +1 -0
  228. package/dist/services/access-auth.service.d.ts +1 -0
  229. package/dist/services/access-auth.service.d.ts.map +1 -1
  230. package/dist/services/access-auth.service.js +8 -0
  231. package/dist/services/access-auth.service.js.map +1 -1
  232. package/dist/services/attachment-context.d.ts +7 -1
  233. package/dist/services/attachment-context.d.ts.map +1 -1
  234. package/dist/services/attachment-context.js +23 -2
  235. package/dist/services/attachment-context.js.map +1 -1
  236. package/dist/services/conflict-admission.d.ts +37 -0
  237. package/dist/services/conflict-admission.d.ts.map +1 -0
  238. package/dist/services/conflict-admission.js +97 -0
  239. package/dist/services/conflict-admission.js.map +1 -0
  240. package/dist/services/conflict-resolution-context.d.ts +33 -0
  241. package/dist/services/conflict-resolution-context.d.ts.map +1 -0
  242. package/dist/services/conflict-resolution-context.js +434 -0
  243. package/dist/services/conflict-resolution-context.js.map +1 -0
  244. package/dist/services/message-delivery.service.d.ts +195 -0
  245. package/dist/services/message-delivery.service.d.ts.map +1 -0
  246. package/dist/services/message-delivery.service.js +956 -0
  247. package/dist/services/message-delivery.service.js.map +1 -0
  248. package/dist/services/project.service.d.ts +1 -1
  249. package/dist/services/session-manager.d.ts +94 -74
  250. package/dist/services/session-manager.d.ts.map +1 -1
  251. package/dist/services/session-manager.js +91 -17
  252. package/dist/services/session-manager.js.map +1 -1
  253. package/dist/services/task.service.d.ts +26 -20
  254. package/dist/services/task.service.d.ts.map +1 -1
  255. package/dist/services/task.service.js +9 -26
  256. package/dist/services/task.service.js.map +1 -1
  257. package/dist/services/team-room-delivery.d.ts +541 -0
  258. package/dist/services/team-room-delivery.d.ts.map +1 -0
  259. package/dist/services/team-room-delivery.js +123 -0
  260. package/dist/services/team-room-delivery.js.map +1 -0
  261. package/dist/services/team-run.service.d.ts +83 -0
  262. package/dist/services/team-run.service.d.ts.map +1 -1
  263. package/dist/services/team-run.service.js +207 -18
  264. package/dist/services/team-run.service.js.map +1 -1
  265. package/dist/services/team-scheduler.service.d.ts +3 -0
  266. package/dist/services/team-scheduler.service.d.ts.map +1 -1
  267. package/dist/services/team-scheduler.service.js +65 -11
  268. package/dist/services/team-scheduler.service.js.map +1 -1
  269. package/dist/services/team-task-input.d.ts +37 -0
  270. package/dist/services/team-task-input.d.ts.map +1 -0
  271. package/dist/services/team-task-input.js +98 -0
  272. package/dist/services/team-task-input.js.map +1 -0
  273. package/dist/services/team-task-input.service.d.ts +72 -0
  274. package/dist/services/team-task-input.service.d.ts.map +1 -0
  275. package/dist/services/team-task-input.service.js +205 -0
  276. package/dist/services/team-task-input.service.js.map +1 -0
  277. package/dist/services/translation-client.d.ts +31 -0
  278. package/dist/services/translation-client.d.ts.map +1 -0
  279. package/dist/services/translation-client.js +169 -0
  280. package/dist/services/translation-client.js.map +1 -0
  281. package/dist/services/translation-errors.d.ts +14 -0
  282. package/dist/services/translation-errors.d.ts.map +1 -0
  283. package/dist/services/translation-errors.js +16 -0
  284. package/dist/services/translation-errors.js.map +1 -0
  285. package/dist/services/translation-protection.d.ts +27 -0
  286. package/dist/services/translation-protection.d.ts.map +1 -0
  287. package/dist/services/translation-protection.js +547 -0
  288. package/dist/services/translation-protection.js.map +1 -0
  289. package/dist/services/translation-queue.d.ts +49 -0
  290. package/dist/services/translation-queue.d.ts.map +1 -0
  291. package/dist/services/translation-queue.js +211 -0
  292. package/dist/services/translation-queue.js.map +1 -0
  293. package/dist/services/translation-settings.service.d.ts +152 -0
  294. package/dist/services/translation-settings.service.d.ts.map +1 -0
  295. package/dist/services/translation-settings.service.js +174 -0
  296. package/dist/services/translation-settings.service.js.map +1 -0
  297. package/dist/services/translation.service.d.ts +168 -0
  298. package/dist/services/translation.service.d.ts.map +1 -0
  299. package/dist/services/translation.service.js +861 -0
  300. package/dist/services/translation.service.js.map +1 -0
  301. package/dist/services/workspace.service.d.ts +84 -93
  302. package/dist/services/workspace.service.d.ts.map +1 -1
  303. package/dist/services/workspace.service.js +69 -5
  304. package/dist/services/workspace.service.js.map +1 -1
  305. package/dist/socket/__tests__/socket-gateway.test.js +131 -1
  306. package/dist/socket/__tests__/socket-gateway.test.js.map +1 -1
  307. package/dist/socket/socket-gateway.d.ts +6 -0
  308. package/dist/socket/socket-gateway.d.ts.map +1 -1
  309. package/dist/socket/socket-gateway.js +312 -6
  310. package/dist/socket/socket-gateway.js.map +1 -1
  311. package/dist/utils/database-schema.d.ts +9 -0
  312. package/dist/utils/database-schema.d.ts.map +1 -0
  313. package/dist/utils/database-schema.js +434 -0
  314. package/dist/utils/database-schema.js.map +1 -0
  315. package/dist/utils/database-schema.test.d.ts +2 -0
  316. package/dist/utils/database-schema.test.d.ts.map +1 -0
  317. package/dist/utils/database-schema.test.js +359 -0
  318. package/dist/utils/database-schema.test.js.map +1 -0
  319. package/dist/utils/database-team-foundation.test.d.ts +2 -0
  320. package/dist/utils/database-team-foundation.test.d.ts.map +1 -0
  321. package/dist/utils/database-team-foundation.test.js +467 -0
  322. package/dist/utils/database-team-foundation.test.js.map +1 -0
  323. package/dist/utils/owned-child-process.test.js +6 -3
  324. package/dist/utils/owned-child-process.test.js.map +1 -1
  325. package/dist/utils/text-preview.d.ts +4 -0
  326. package/dist/utils/text-preview.d.ts.map +1 -0
  327. package/dist/utils/text-preview.js +21 -0
  328. package/dist/utils/text-preview.js.map +1 -0
  329. package/dist/web/assets/AgentDemoPage-CtCYXopw.js +1 -0
  330. package/dist/web/assets/{AgentEnvironmentSettingsPage-BnWVgvNe.js → AgentEnvironmentSettingsPage-DSWN546Y.js} +1 -1
  331. package/dist/web/assets/AttachmentPreview-DRG5_cfN.js +2 -0
  332. package/dist/web/assets/BranchSelect-Dxs7HnMM.js +1 -0
  333. package/dist/web/assets/BrandLogo-Ilm880Xs.js +1 -0
  334. package/dist/web/assets/ConversationPage-B55Bj_ft.js +1 -0
  335. package/dist/web/assets/CreateTaskInput-CxWPeToI.js +1 -0
  336. package/dist/web/assets/{DemoPage-BwX2SvcN.js → DemoPage-Dyn-U9JO.js} +3 -3
  337. package/dist/web/assets/DesignSystemPage-BxypsRUZ.js +12 -0
  338. package/dist/web/assets/EditableTaskTitle-Dh-SmvFW.js +70 -0
  339. package/dist/web/assets/{ExecutionPermissionSelector-DeeNd4Kh.js → ExecutionPermissionSelector-CQ_GNxR0.js} +10 -10
  340. package/dist/web/assets/GeneralSettingsPage-CzoejPZP.js +1 -0
  341. package/dist/web/assets/{LoadingPreviewPage-BxEFnEQh.js → LoadingPreviewPage-BlW2PJhI.js} +1 -1
  342. package/dist/web/assets/McpSettingsPage-DD7EqD4L.js +1 -0
  343. package/dist/web/assets/MemberAvatar-B2pAdWUi.js +1 -0
  344. package/dist/web/assets/MobileTaskDetail-CvmNW0BQ.js +3 -0
  345. package/dist/web/assets/NotificationSettingsPage-BIqldIRf.js +1 -0
  346. package/dist/web/assets/ProfileSettingsPage-DMxpHmF1.js +3 -0
  347. package/dist/web/assets/ProjectKanbanPage-CHW79td4.js +12 -0
  348. package/dist/web/assets/ProjectSettingsPage-DKiEUkoa.js +2 -0
  349. package/dist/web/assets/ProviderSettingsPage-DZT7wyE2.js +67 -0
  350. package/dist/web/assets/SettingsMasterDetail-DnF0lsV1.js +1 -0
  351. package/dist/web/assets/TaskDetail-D_970BDY.js +1 -0
  352. package/dist/web/assets/TeamSettingsPage-BJIEZ7xL.js +1 -0
  353. package/dist/web/assets/TranslationSettingsPage-D3mazqEW.js +1 -0
  354. package/dist/web/assets/arc-hUh7ykl8.js +1 -0
  355. package/dist/web/assets/{architectureDiagram-3BPJPVTR-B5EIiXuX.js → architectureDiagram-3BPJPVTR-CcV9CLkm.js} +1 -1
  356. package/dist/web/assets/{at-sign-BE17rU5b.js → at-sign-B-nhoGyH.js} +1 -1
  357. package/dist/web/assets/{blockDiagram-GPEHLZMM-GFwnvSLM.js → blockDiagram-GPEHLZMM-5q3Y9y0e.js} +1 -1
  358. package/dist/web/assets/{c4Diagram-AAUBKEIU-iJfLTxEa.js → c4Diagram-AAUBKEIU-CorBXi06.js} +1 -1
  359. package/dist/web/assets/channel-By24WpLg.js +1 -0
  360. package/dist/web/assets/check-DqPSoX0r.js +1 -0
  361. package/dist/web/assets/{chevron-down-BaQEBzp3.js → chevron-down-CPnvItQw.js} +1 -1
  362. package/dist/web/assets/{chevron-up-D0y6skqr.js → chevron-up-B8PE5N0G.js} +1 -1
  363. package/dist/web/assets/{chunk-2J33WTMH-CDxRPp-8.js → chunk-2J33WTMH-BUf5B4z4.js} +1 -1
  364. package/dist/web/assets/{chunk-4BX2VUAB-mzPbgyiz.js → chunk-4BX2VUAB-CdnOHkro.js} +1 -1
  365. package/dist/web/assets/{chunk-55IACEB6-KNAJbQyw.js → chunk-55IACEB6-U7edZDpP.js} +1 -1
  366. package/dist/web/assets/{chunk-727SXJPM-BqGfqkDK.js → chunk-727SXJPM-B64Tuhla.js} +1 -1
  367. package/dist/web/assets/{chunk-AQP2D5EJ-D27ue-H0.js → chunk-AQP2D5EJ-dXfe56jB.js} +1 -1
  368. package/dist/web/assets/{chunk-FMBD7UC4-DRza-3q8.js → chunk-FMBD7UC4-DDYbxc1Q.js} +1 -1
  369. package/dist/web/assets/{chunk-ND2GUHAM-CUgkviLu.js → chunk-ND2GUHAM-BQDGMv0R.js} +1 -1
  370. package/dist/web/assets/{chunk-QZHKN3VN-BAlOJwZb.js → chunk-QZHKN3VN-DB8q4xAj.js} +1 -1
  371. package/dist/web/assets/classDiagram-4FO5ZUOK-DxHoimtR.js +1 -0
  372. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-DxHoimtR.js +1 -0
  373. package/dist/web/assets/code-block-OCS4YCEC-BSdICyOa.js +2 -0
  374. package/dist/web/assets/confirm-dialog-DxEBZEbV.js +1 -0
  375. package/dist/web/assets/content-CMUL3HGx.js +2 -0
  376. package/dist/web/assets/{copy-DejkmIHZ.js → copy-DyxlXxiU.js} +1 -1
  377. package/dist/web/assets/{cose-bilkent-S5V4N54A-8TBY7BP_.js → cose-bilkent-S5V4N54A-Dx6eMnll.js} +1 -1
  378. package/dist/web/assets/cssMode-ZnNWfjZ6.js +1 -0
  379. package/dist/web/assets/{dagre-BM42HDAG-CkMzDiim.js → dagre-BM42HDAG-Cxe8pLgD.js} +1 -1
  380. package/dist/web/assets/{diagram-2AECGRRQ-CAOQJ2N1.js → diagram-2AECGRRQ-RMsswEBe.js} +1 -1
  381. package/dist/web/assets/{diagram-5GNKFQAL-DKhE0hiI.js → diagram-5GNKFQAL-Bi4E0hzx.js} +1 -1
  382. package/dist/web/assets/{diagram-KO2AKTUF-DBdkXSpa.js → diagram-KO2AKTUF-Mv6CDCyn.js} +1 -1
  383. package/dist/web/assets/{diagram-LMA3HP47-DRi2t32c.js → diagram-LMA3HP47-CJ3qKNzK.js} +1 -1
  384. package/dist/web/assets/{diagram-OG6HWLK6-DtP92tI1.js → diagram-OG6HWLK6-D8SBY4ft.js} +1 -1
  385. package/dist/web/assets/dialog-BYdeYC2Y.js +5 -0
  386. package/dist/web/assets/{erDiagram-TEJ5UH35-DWFKXtst.js → erDiagram-TEJ5UH35-DwVSCU6X.js} +1 -1
  387. package/dist/web/assets/{flowDiagram-I6XJVG4X-LDE0h4ri.js → flowDiagram-I6XJVG4X-CyipYAWd.js} +1 -1
  388. package/dist/web/assets/{freemarker2-CLksOOZX.js → freemarker2-DbH_yMCO.js} +2 -2
  389. package/dist/web/assets/{ganttDiagram-6RSMTGT7-DD2RfdyV.js → ganttDiagram-6RSMTGT7-CsC6Wjt4.js} +1 -1
  390. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-DkKrR8ex.js → gitGraphDiagram-PVQCEYII-E5jNbqlq.js} +1 -1
  391. package/dist/web/assets/{globe-CD4g63c9.js → globe-B2rgTPH3.js} +1 -1
  392. package/dist/web/assets/handlebars-C5VY_S-z.js +1 -0
  393. package/dist/web/assets/hooks-Ct0srfV-.js +1 -0
  394. package/dist/web/assets/html-e5uLnAgN.js +1 -0
  395. package/dist/web/assets/htmlMode-BeNiGozX.js +1 -0
  396. package/dist/web/assets/icon-button-BEMJj_6T.js +1 -0
  397. package/dist/web/assets/index-0XPZayUU.css +1 -0
  398. package/dist/web/assets/index-BYPOXP6w.js +1 -0
  399. package/dist/web/assets/{index-D_QVcsLn.js → index-C-M0QDqc.js} +5 -5
  400. package/dist/web/assets/index-CAjqC8pT.js +41 -0
  401. package/dist/web/assets/index-CPGzLjEC.js +1 -0
  402. package/dist/web/assets/index-Cm6snkmR.js +122 -0
  403. package/dist/web/assets/index-DNdMmXBr.js +1 -0
  404. package/dist/web/assets/index-DppwrK2G.js +1 -0
  405. package/dist/web/assets/index-IMdA08Ok.js +1 -0
  406. package/dist/web/assets/index-kr6U6_pi.js +1 -0
  407. package/dist/web/assets/{infoDiagram-5YYISTIA-BdPA9Xfi.js → infoDiagram-5YYISTIA-5_0wrRXl.js} +1 -1
  408. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-220u4uiv.js → ishikawaDiagram-YF4QCWOH-aQujIFZw.js} +5 -5
  409. package/dist/web/assets/javascript-D7QVj9jR.js +1 -0
  410. package/dist/web/assets/{journeyDiagram-JHISSGLW-BvE0Y3tZ.js → journeyDiagram-JHISSGLW-ClMzHdqI.js} +1 -1
  411. package/dist/web/assets/jsonMode-nHmLVf-n.js +7 -0
  412. package/dist/web/assets/{kanban-definition-UN3LZRKU-Q0JH1P6D.js → kanban-definition-UN3LZRKU-BFVlt0tz.js} +1 -1
  413. package/dist/web/assets/kbd-Bfq5K6Ux.js +1 -0
  414. package/dist/web/assets/{key-round-DZm1FLLr.js → key-round-BqsaQdce.js} +1 -1
  415. package/dist/web/assets/{layers-Dda7MM7a.js → layers-DI4vFJ4F.js} +1 -1
  416. package/dist/web/assets/{linear-Dr6SfnSn.js → linear-DZ-6PAPS.js} +1 -1
  417. package/dist/web/assets/{link-BUeSP3T7.js → link-BU4PN723.js} +1 -1
  418. package/dist/web/assets/liquid-BPIyogoj.js +1 -0
  419. package/dist/web/assets/{lspLanguageFeatures-Bbp4PWlJ.js → lspLanguageFeatures-DH4Z8jiM.js} +1 -1
  420. package/dist/web/assets/mdx-CI8yO2pV.js +1 -0
  421. package/dist/web/assets/menu-C3uB3M7p.js +1 -0
  422. package/dist/web/assets/menu-styles-DWynpVVz.js +1 -0
  423. package/dist/web/assets/mermaid-NOHMQCX5-BqeX1osS.js +123 -0
  424. package/dist/web/assets/{message-square-CFriSt4D.js → message-square-E5K8E3A-.js} +1 -1
  425. package/dist/web/assets/{mindmap-definition-RKZ34NQL-bvDaNfKs.js → mindmap-definition-RKZ34NQL-C7dea0db.js} +1 -1
  426. package/dist/web/assets/modal-Cz1iIVeD.js +1 -0
  427. package/dist/web/assets/{monaco-BuDK9Fat.js → monaco-DM3DuGN5.js} +3 -3
  428. package/dist/web/assets/{paperclip-BOSklTt7.js → paperclip-COXNce_v.js} +1 -1
  429. package/dist/web/assets/{pencil-BRQ9W_a-.js → pencil-BFc4n44f.js} +1 -1
  430. package/dist/web/assets/people-BaCetIqh.js +1 -0
  431. package/dist/web/assets/{pieDiagram-4H26LBE5-BQCca9Cq.js → pieDiagram-4H26LBE5-2q5medug.js} +2 -2
  432. package/dist/web/assets/popover-CJCQLoGu.js +1 -0
  433. package/dist/web/assets/python-CSxVPG9p.js +1 -0
  434. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-BEM2U7Cd.js → quadrantDiagram-W4KKPZXB-DHPEM56s.js} +1 -1
  435. package/dist/web/assets/razor-CVoIieeS.js +1 -0
  436. package/dist/web/assets/{requirementDiagram-4Y6WPE33-CcmFIALZ.js → requirementDiagram-4Y6WPE33-B_KyH7PP.js} +1 -1
  437. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-D9Nrfbqk.js → sankeyDiagram-5OEKKPKP-CrqkZAYW.js} +1 -1
  438. package/dist/web/assets/search-CkiBPir_.js +1 -0
  439. package/dist/web/assets/search-field-CbM2P2KE.js +1 -0
  440. package/dist/web/assets/select-Br0TAs7A.js +1 -0
  441. package/dist/web/assets/select-DJsEG0jq.js +1 -0
  442. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-5udQDi0x.js → sequenceDiagram-3UESZ5HK-BRTm1WQA.js} +1 -1
  443. package/dist/web/assets/{server-DJaSJ9m1.js → server-DYeSE1wn.js} +1 -1
  444. package/dist/web/assets/stateDiagram-AJRCARHV-qN49iyR2.js +1 -0
  445. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-B1clBPkJ.js +1 -0
  446. package/dist/web/assets/{textarea-Ft9KMoEI.js → textarea-B7vtoRE3.js} +1 -1
  447. package/dist/web/assets/{timeline-definition-PNZ67QCA-DXS236a-.js → timeline-definition-PNZ67QCA-BzarcDi3.js} +1 -1
  448. package/dist/web/assets/toggles-jo27o0AH.js +1 -0
  449. package/dist/web/assets/tooltip-DbVtCXcO.js +1 -0
  450. package/dist/web/assets/track-C0vxnITw.js +1 -0
  451. package/dist/web/assets/{trash-2-Bc-URu8c.js → trash-2-CUM-XX8B.js} +1 -1
  452. package/dist/web/assets/tsMode-7D3gqep6.js +11 -0
  453. package/dist/web/assets/typescript-CbOVEQNg.js +1 -0
  454. package/dist/web/assets/{upload-C9Z4jLtv.js → upload-CJ6jVmte.js} +1 -1
  455. package/dist/web/assets/use-profiles-B0xXAf7Z.js +1 -0
  456. package/dist/web/assets/{use-projects-DI27nNwl.js → use-projects-BlTwWxkY.js} +1 -1
  457. package/dist/web/assets/{use-providers-DB9ghBPq.js → use-providers-FMSfyTD1.js} +1 -1
  458. package/dist/web/assets/use-translation-settings-BOlszecX.js +1 -0
  459. package/dist/web/assets/use-workspaces-DYrEp0Lw.js +1 -0
  460. package/dist/web/assets/useNormalizedLogs-D0N8MJdH.js +1 -0
  461. package/dist/web/assets/useTokenUsage-WB3ZQ25v.js +1 -0
  462. package/dist/web/assets/{vennDiagram-CIIHVFJN-BzyNrP06.js → vennDiagram-CIIHVFJN-B6oZetvf.js} +1 -1
  463. package/dist/web/assets/{wardley-L42UT6IY-BQ4SyU9_.js → wardley-L42UT6IY-Bzuhm76f.js} +1 -1
  464. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-CcCqmB58.js → wardleyDiagram-YWT4CUSO-DaC-FUf5.js} +1 -1
  465. package/dist/web/assets/xml-Cfa9tkdT.js +1 -0
  466. package/dist/web/assets/{xychartDiagram-2RQKCTM6-RWm1MtQk.js → xychartDiagram-2RQKCTM6-CCvRIJRL.js} +1 -1
  467. package/dist/web/assets/yaml-C86f7VLL.js +1 -0
  468. package/dist/web/index.html +2 -2
  469. package/node_modules/@agent-tower/shared/dist/index.d.ts +1 -0
  470. package/node_modules/@agent-tower/shared/dist/index.d.ts.map +1 -1
  471. package/node_modules/@agent-tower/shared/dist/index.js +1 -0
  472. package/node_modules/@agent-tower/shared/dist/index.js.map +1 -1
  473. package/node_modules/@agent-tower/shared/dist/log-adapter.d.ts +11 -0
  474. package/node_modules/@agent-tower/shared/dist/log-adapter.d.ts.map +1 -1
  475. package/node_modules/@agent-tower/shared/dist/log-adapter.js +2 -0
  476. package/node_modules/@agent-tower/shared/dist/log-adapter.js.map +1 -1
  477. package/node_modules/@agent-tower/shared/dist/socket/events.d.ts +5 -2
  478. package/node_modules/@agent-tower/shared/dist/socket/events.d.ts.map +1 -1
  479. package/node_modules/@agent-tower/shared/dist/socket/events.js +2 -0
  480. package/node_modules/@agent-tower/shared/dist/socket/events.js.map +1 -1
  481. package/node_modules/@agent-tower/shared/dist/translation.d.ts +306 -0
  482. package/node_modules/@agent-tower/shared/dist/translation.d.ts.map +1 -0
  483. package/node_modules/@agent-tower/shared/dist/translation.js +8 -0
  484. package/node_modules/@agent-tower/shared/dist/translation.js.map +1 -0
  485. package/node_modules/@agent-tower/shared/dist/types.d.ts +23 -0
  486. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  487. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
  488. package/package.json +1 -1
  489. package/prisma/migrations/20261016000000_add_translation_foundation/migration.sql +104 -0
  490. package/prisma/migrations/20261016010000_add_message_deliveries/migration.sql +158 -0
  491. package/prisma/migrations/20261019000000_add_room_translation_eligibility/migration.sql +3 -0
  492. package/prisma/migrations/20261019100000_add_team_delivery_foundation/migration.sql +217 -0
  493. package/prisma/schema.prisma +224 -0
  494. package/dist/web/assets/AgentDemoPage-D0LQRcXm.js +0 -1
  495. package/dist/web/assets/AgentLogo-BDyW3ihb.js +0 -1
  496. package/dist/web/assets/BranchSelect-Dmp5hq0i.js +0 -1
  497. package/dist/web/assets/BrandLogo-YGT4Vlw5.js +0 -1
  498. package/dist/web/assets/ConversationPage-BhapUYGe.js +0 -3
  499. package/dist/web/assets/CreateTaskInput-GLF3Oyc1.js +0 -1
  500. package/dist/web/assets/DesignSystemPage-j-1-1JtQ.js +0 -16
  501. package/dist/web/assets/EditableTaskTitle-mHT39coo.js +0 -70
  502. package/dist/web/assets/GeneralSettingsPage-BBe3EXcj.js +0 -1
  503. package/dist/web/assets/McpSettingsPage-DDA8yUxu.js +0 -1
  504. package/dist/web/assets/MemberAvatar-CCRbS97s.js +0 -1
  505. package/dist/web/assets/MobileTaskDetail-BOIFPybn.js +0 -5
  506. package/dist/web/assets/NotificationSettingsPage-B2kUnE8w.js +0 -1
  507. package/dist/web/assets/ProfileSettingsPage-DPZpUoFd.js +0 -3
  508. package/dist/web/assets/ProjectKanbanPage-DQnwUBFg.js +0 -12
  509. package/dist/web/assets/ProjectSettingsPage-CcXAOYb7.js +0 -2
  510. package/dist/web/assets/ProviderSettingsPage-BAIRvcAS.js +0 -67
  511. package/dist/web/assets/SettingsMasterDetail-BuxwsR9R.js +0 -1
  512. package/dist/web/assets/TaskDetail-B3pOSx3f.js +0 -3
  513. package/dist/web/assets/TeamSettingsPage-DoWmzvKu.js +0 -1
  514. package/dist/web/assets/agent-meta-MzuGtqxl.js +0 -1
  515. package/dist/web/assets/arc-Bm_QIbJA.js +0 -1
  516. package/dist/web/assets/arrow-down-BVePf1ZM.js +0 -1
  517. package/dist/web/assets/channel-CYYV7_Oi.js +0 -1
  518. package/dist/web/assets/check-qs0S_9rB.js +0 -1
  519. package/dist/web/assets/circle-alert-Cbvy2cMo.js +0 -1
  520. package/dist/web/assets/classDiagram-4FO5ZUOK-Cl-3ikxt.js +0 -1
  521. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-Cl-3ikxt.js +0 -1
  522. package/dist/web/assets/code-block-OCS4YCEC-CO23R1Os.js +0 -2
  523. package/dist/web/assets/confirm-dialog-BrgNTypL.js +0 -1
  524. package/dist/web/assets/cssMode-hzDRnxMx.js +0 -1
  525. package/dist/web/assets/gauge-CPlvCZUV.js +0 -1
  526. package/dist/web/assets/handlebars-C1M9t0Lo.js +0 -1
  527. package/dist/web/assets/html-DKVKQovh.js +0 -1
  528. package/dist/web/assets/htmlMode-BSWjg5ir.js +0 -1
  529. package/dist/web/assets/index-BnqdwOEH.css +0 -1
  530. package/dist/web/assets/index-CMJV-mgF.js +0 -122
  531. package/dist/web/assets/javascript-WwrMY2Bg.js +0 -1
  532. package/dist/web/assets/jsonMode-Dz0hnnvg.js +0 -7
  533. package/dist/web/assets/liquid-CzGEh0ls.js +0 -1
  534. package/dist/web/assets/mdx-y6S3OMMk.js +0 -1
  535. package/dist/web/assets/mermaid-NOHMQCX5-C72362la.js +0 -123
  536. package/dist/web/assets/modal-DeigO7aN.js +0 -1
  537. package/dist/web/assets/play-Mxkwq69n.js +0 -1
  538. package/dist/web/assets/python-CMnGKsU9.js +0 -1
  539. package/dist/web/assets/razor-mLurbGgY.js +0 -1
  540. package/dist/web/assets/select-DKS02St6.js +0 -1
  541. package/dist/web/assets/stateDiagram-AJRCARHV-D-cF1NGV.js +0 -1
  542. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-a4ugQnZs.js +0 -1
  543. package/dist/web/assets/status-styles-sQm4KLdp.js +0 -1
  544. package/dist/web/assets/switch-7LWQ_sEx.js +0 -1
  545. package/dist/web/assets/task-CDYaC_No.js +0 -42
  546. package/dist/web/assets/task-priority-acVgTiil.js +0 -1
  547. package/dist/web/assets/tsMode-Vr3bndW1.js +0 -11
  548. package/dist/web/assets/typescript-BfjoaUSn.js +0 -1
  549. package/dist/web/assets/use-attachments-EypT-7PI.js +0 -2
  550. package/dist/web/assets/use-profiles-nMPGwy3v.js +0 -1
  551. package/dist/web/assets/use-workspaces-d4n9m9cX.js +0 -1
  552. package/dist/web/assets/useNormalizedLogs-DRoPbP0w.js +0 -1
  553. package/dist/web/assets/useTokenUsage-4qTDa8SY.js +0 -1
  554. package/dist/web/assets/xml-BGVoPR0b.js +0 -1
  555. package/dist/web/assets/yaml-eFhNavrs.js +0 -1
@@ -1 +0,0 @@
1
- import{c as he,u as oe,j as o,T as Te,aa as ke,l as je,ar as Oe,r,_ as O,$ as v,a0 as _e,p as Le}from"./index-CMJV-mgF.js";import{C as qe}from"./chevron-down-BaQEBzp3.js";import{C as $e}from"./check-qs0S_9rB.js";import{S as H,n as Pe,d as De}from"./agent-meta-MzuGtqxl.js";import{u as _,E as Me,n as ze,b as Be,c as Fe}from"./mermaid-NOHMQCX5-C72362la.js";const Ye=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]],Ge=he("circle-dot",Ye);const Ue=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ue=he("circle",Ue);function He({error:t,onRetry:e,title:n,description:a,className:c}){const{t:i}=oe();return o.jsxs("div",{role:"alert",className:je("flex min-h-0 flex-1 flex-col items-center justify-center gap-3 px-6 py-12 text-center",c),children:[o.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full border border-destructive/20 bg-destructive/10 text-destructive",children:o.jsx(Te,{size:18})}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("p",{className:"text-sm font-medium text-foreground",children:n??i("Something went wrong")}),o.jsx("p",{className:"max-w-md text-xs text-muted-foreground",children:a??i("This section hit a rendering error and was replaced by this message.")})]}),o.jsx("p",{className:"max-w-xl truncate rounded-md border border-border/60 bg-muted/40 px-2 py-1 font-mono text-[11px] text-muted-foreground",title:t.message||t.name,children:t.message||t.name}),o.jsx("p",{className:"max-w-md text-[11px] text-muted-foreground/80",children:i("Only rendering errors are caught here. Errors from event handlers, async callbacks or observers are not.")}),o.jsxs("button",{type:"button",onClick:e,className:"inline-flex items-center gap-1.5 rounded-md border border-border bg-background px-3 py-1.5 text-xs font-medium text-foreground transition-colors hover:bg-accent",children:[o.jsx(ke,{size:13}),i("Retry")]})]})}function ot({children:t}){const{t:e}=oe();return o.jsx(Oe,{source:"log-view",fallback:({error:n,reset:a})=>o.jsx(He,{title:e("Failed to display logs"),description:e("The log view hit a rendering error. Retry renders the same data again, so it will fail again while the bad data is still there."),error:n,onRetry:a}),children:t})}const le="agent-tower-todo-panel-open";function Ve(t,e){const n=e?"h-3 w-3":"h-3.5 w-3.5",a=(t||"").toLowerCase();return a==="completed"?o.jsx($e,{"aria-hidden":!0,className:`${n} text-emerald-500`}):a==="in_progress"||a==="in-progress"?o.jsx(Ge,{"aria-hidden":!0,className:`${n} text-blue-500`}):a==="cancelled"?o.jsx(ue,{"aria-hidden":!0,className:`${n} text-neutral-300`}):o.jsx(ue,{"aria-hidden":!0,className:`${n} text-neutral-400`})}function at({todos:t,compact:e}){const{t:n}=oe(),[a,c]=r.useState(()=>{if(e)return!1;const l=localStorage.getItem(le);return l===null?!0:l==="true"});if(r.useEffect(()=>{localStorage.setItem(le,String(a))},[a]),!t||t.length===0)return null;const i=t.filter(l=>l.status?.toLowerCase()==="completed").length,M=t.length>0?i/t.length*100:0;return o.jsxs("details",{className:"group",open:a,onToggle:l=>c(l.target.open),children:[o.jsx("summary",{className:"list-none cursor-pointer select-none [&::-webkit-details-marker]:hidden",children:o.jsxs("div",{className:`bg-neutral-50/80 border border-neutral-100 rounded-lg flex items-center justify-between hover:bg-neutral-100/80 transition-colors ${e?"px-3 py-1.5":"px-3 py-2"}`,children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[o.jsx("span",{className:"text-neutral-500 font-medium text-xs",children:n("待办")}),o.jsxs("span",{className:"text-neutral-400 tabular-nums text-xs",children:[i,"/",t.length]}),o.jsx("div",{className:"w-12 h-1 bg-neutral-200/60 rounded-full overflow-hidden",children:o.jsx("div",{className:"h-full bg-emerald-400 rounded-full transition-all duration-300",style:{width:`${M}%`}})})]}),o.jsx(qe,{"aria-hidden":!0,className:`text-neutral-400 transition-transform group-open:rotate-180 ${e?"h-3 w-3":"h-3.5 w-3.5"}`})]})}),o.jsx("div",{className:`pt-1.5 pb-0.5 ${e?"max-h-28 overflow-y-auto px-1":"px-1"}`,children:o.jsx("ul",{className:"space-y-px",role:"list","aria-label":"Agent todo list",children:t.map((l,L)=>{const z=l.status?.toLowerCase()==="cancelled",V=l.status?.toLowerCase()==="completed";return o.jsxs("li",{className:`flex items-center gap-1.5 rounded-md px-2 ${e?"py-0.5":"py-[3px]"} ${V?"opacity-60":""}`,children:[o.jsx("span",{className:`flex items-center justify-center shrink-0 ${e?"h-3 w-3":"h-3.5 w-3.5"}`,children:Ve(l.status,e)}),o.jsx("span",{className:`${e?"text-[11px] leading-[14px]":"text-xs leading-4"} text-neutral-600 wrap-break-word truncate ${z?"line-through text-neutral-400":""} ${V?"text-neutral-400":""}`,children:l.content})]},`${l.content}-${L}`)})})})]})}function ct(t){return r.useMemo(()=>{let e=[],n=0;for(const c of t)if(c.entryType==="tool_use"&&c.metadata?.action==="todo_management"&&c.metadata.todos&&c.metadata.todos.length>0){const i=c.metadata.todos;i.every(l=>l.content&&l.content.trim().length>0&&l.status)&&c.timestamp>=n&&(e=i,n=c.timestamp)}const a=e.find(c=>{const i=c.status?.toLowerCase();return i==="in_progress"||i==="in-progress"})??null;return{todos:e,inProgressTodo:a}},[t])}const Ke=!1,Xe=1500,de=[250,1e3,3e3],We=1e4;function ge(t){return t instanceof DOMException&&t.name==="AbortError"}function Je(t){if(ge(t))return!1;const e=typeof t=="object"&&t!==null&&"status"in t?t.status:void 0;return typeof e!="number"?!0:e===408||e===429||e>=500}function Qe(t,e){return new Promise(n=>{if(e.aborted){n(!1);return}const a=window.setTimeout(()=>{e.removeEventListener("abort",c),n(!0)},t),c=()=>{window.clearTimeout(a),n(!1)};e.addEventListener("abort",c,{once:!0})})}function D(t){return t===H.COMPLETED||t===H.FAILED||t===H.CANCELLED}function Ze(t){return typeof t?.seq=="number"?t.seq:0}function fe(t){return!D(t)}function Se(t){return t.entryType==="user_message"||t.entryType==="user_feedback"}function xe(t){return!Se(t)&&t.entryType!=="loading"&&t.entryType!=="token_usage_info"&&t.content.trim()!==""}function re(t,e){let n=e,a,c;for(const i of t)c??=i.timestamp,Se(i)?(n=i.timestamp,a=void 0):xe(i)&&(n??=i.timestamp,a=i.timestamp);return{processingStartedAt:n??c,lastOutputAt:a}}function pe(t){if(typeof t=="number")return Number.isFinite(t)?t:void 0;if(typeof t!="string"||t.trim()==="")return;const e=Date.parse(t);return Number.isNaN(e)?void 0:e}function me(t,e){return t.some(n=>{if(n.op==="remove")return!1;const a=n.path.match(/^\/entries\/(\d+)(?:\/|$)/);if(!a)return!1;const c=e[Number(a[1])];return c?xe(c):!1})}function it(t){const{sessionId:e,sessionStatus:n,sessionStartedAt:a,sessionEndedAt:c,onAgentSessionId:i,onExit:M,onError:l}=t,L=pe(a),z=pe(c),[V,K]=r.useState(()=>O.isConnected()),[Z,R]=r.useState(!1),[ye,ae]=r.useState(!1),[Ee,ee]=r.useState(null),[ce,N]=r.useState(!1),[Ae,B]=r.useState(()=>!D(n)),[be,C]=r.useState(()=>z??null),X=_(r.useCallback(s=>s.conversations[e]??Me,[e])),g=r.useRef(!1),q=r.useRef({}),I=r.useRef(null),F=r.useRef(new Map),Y=r.useRef(new Map),A=r.useRef(0),te=r.useRef(L);te.current=L;const T=r.useRef({sessionId:e});T.current.sessionId!==e&&(T.current={sessionId:e});const G=r.useRef(e);G.current=e;const W=r.useRef({onAgentSessionId:i,onExit:M,onError:l});W.current={onAgentSessionId:i,onExit:M,onError:l};const J=r.useRef(n);J.current=n,r.useEffect(()=>{D(n)?(B(!1),C(z??null)):((n===H.RUNNING||n===H.PENDING)&&B(!0),C(null))},[e,n,z]),r.useEffect(()=>{if(!e)return;const s=O.getSocket(),f=q.current,d=F.current,h=Y.current;K(s.connected);let k=!D(n);const S=()=>{A.current+=1,K(!0),I.current?.()},p=()=>{A.current+=1,K(!1),R(!1),g.current=!1,f[e]=[],d.get(e)?.controller.abort();const u=h.get(e);u!==void 0&&(window.clearTimeout(u),h.delete(e))},ne=u=>{if(u.sessionId!==e)return;if(B(!0),C(null),!g.current){f[e]=[...f[e]??[],u],I.current?.();return}const $=_.getState();if(!$.applyPatch(e,u.patch,u.seq)){g.current=!1,f[e]=[],I.current?.();return}const x=$.getConversation(e)?.entries??[],y=re(x,te.current);T.current.processingStartedAt!==y?.processingStartedAt&&(T.current={sessionId:e,processingStartedAt:y?.processingStartedAt}),me(u.patch,x)&&(T.current.lastOutputAt=Date.now()),N(!0)},U=u=>{u.sessionId===e&&(ee(u.agentSessionId),W.current.onAgentSessionId?.(u.agentSessionId))},b=u=>{u.sessionId===e&&(k=!1,R(!1),N(!1),B(!1),C(Date.now()),W.current.onExit?.(u.exitCode))},j=u=>{u.sessionId===e&&W.current.onError?.(u.message)};return s.on("connect",S),s.on("disconnect",p),s.on(v.SESSION_PATCH,ne),s.on(v.SESSION_ID,U),s.on(v.SESSION_EXIT,b),s.on(v.SESSION_ERROR,j),K(s.connected),()=>{s.off("connect",S),s.off("disconnect",p),s.off(v.SESSION_PATCH,ne),s.off(v.SESSION_ID,U),s.off(v.SESSION_EXIT,b),s.off(v.SESSION_ERROR,j),A.current+=1,d.get(e)?.controller.abort();const u=h.get(e);u!==void 0&&(window.clearTimeout(u),h.delete(e)),g.current=!1,f[e]=[],ee(null),N(!1),C(null),R(!1),k||_.getState().truncateSession(e)}},[e]);const se=r.useCallback(()=>{if(!e)return Promise.resolve(!1);const s=e,f=A.current,d=()=>G.current===s,h=F.current.get(s);if(h)return h.epoch!==f&&(h.reloadRequested=!0,h.controller.abort()),h.promise;const k=Y.current.get(s);k!==void 0&&(window.clearTimeout(k),Y.current.delete(s));const S=new AbortController,p={controller:S,epoch:f,promise:Promise.resolve(!1),reloadRequested:!1},U=(async()=>{const b=_.getState(),j=b.conversations[s];j&&j.entries.length>0&&(b.touchAccess(s),d()&&N(fe(J.current))),d()&&(g.current=!1,R(!1)),!(j&&j.entries.length>0)&&d()&&ae(!0);for(let $=0;$<=de.length;$+=1){const P=O.getSocket();if(S.signal.aborted||!P.connected||!d()||p.epoch!==A.current)return!1;q.current[s]=[];try{const x=ze(await Le.get(`/sessions/${s}/logs`,{cache:"no-store",signal:S.signal}));if(S.signal.aborted||!P.connected||!d()||p.epoch!==A.current)return p.reloadRequested=P.connected&&d(),!1;const y=q.current[s]??[];q.current[s]=[];let E=x,w=Ze(x);for(const m of y){if(typeof m.seq=="number"){if(m.seq<=w)continue;if(m.seq!==w+1)throw new Error(`Buffered patch sequence gap: expected ${w+1}, received ${m.seq}`)}const Q=Be(E,m.patch);if(!Q.ok)throw new Error(`Buffered conversation patch rejected (${Q.kind}): ${Q.reason}`);E=Q.conversation,typeof m.seq=="number"&&m.seq>w&&(w=m.seq)}E={...E,seq:w,isTruncated:!1};const Ce=re(E.entries,te.current);T.current={sessionId:s,processingStartedAt:Ce?.processingStartedAt,lastOutputAt:y.some(m=>me(m.patch,E.entries))?Date.now():void 0};const Ie=b.getConversation(s);if(y.length>0||Fe(Ie,E)?b.setConversation(s,E):b.touchAccess(s),d()){g.current=!0,R(!0);const m=_.getState().getConversation(s);m&&m.entries.length>0&&N(fe(J.current))}return!0}catch(x){if(S.signal.aborted||ge(x))return!1;if(!d()||p.epoch!==A.current||!P.connected)return p.reloadRequested=P.connected&&d(),!1;if(console.error("[useNormalizedLogs:loadSnapshot] Failed to reconcile snapshot:",x),q.current[s]=[],g.current=!1,R(!1),N(!1),!Je(x))return!1;const y=de[$];if(y===void 0){const ie=p.epoch,w=window.setTimeout(()=>{Y.current.delete(s),G.current===s&&A.current===ie&&O.getSocket().connected&&I.current?.()},We);return Y.current.set(s,w),!1}if(!await Qe(y,S.signal))return!1}}return!1})().finally(()=>{F.current.get(s)===p&&F.current.delete(s),p.reloadRequested&&G.current===s&&O.getSocket().connected&&queueMicrotask(()=>{I.current?.()}),G.current===s&&ae(!1)});return p.promise=U,F.current.set(s,p),U},[e]);I.current=se;const we=r.useCallback(()=>new Promise(s=>{if(!O.getSocket().connected){s(!1);return}if(g.current){const d=_.getState().getConversation(e);if(!(D(J.current)||d?.isTruncated===!0)){s(!0);return}}se().then(s)}),[e,se]);r.useEffect(()=>{if(!e||!D(n))return;const s=window.setTimeout(()=>{I.current?.()},Xe);return()=>window.clearTimeout(s)},[e,n]);const ve=r.useCallback(s=>{O.getSocket().emit(_e.INPUT,{sessionId:e,data:s})},[e]),Re=r.useCallback(()=>{_.getState().removeSession(e),ee(null),N(!1),B(!1),C(null),R(!1),g.current=!1,q.current[e]=[]},[e]),Ne=r.useMemo(()=>{const s=Pe(X.entries);if(ce&&Z){const f=re(X.entries,L),d=T.current,k=d.sessionId===e&&d.processingStartedAt===f?.processingStartedAt&&d.lastOutputAt?Math.max(d.lastOutputAt,f?.lastOutputAt??0):f?.lastOutputAt;s.push(De({processingStartedAt:f?.processingStartedAt,lastOutputAt:k}))}return s},[X.entries,ce,Z,e,L]);return{isConnected:V,isAttached:Z,isLoadingSnapshot:ye,isOutputActive:Ae,lastExitAt:be,logs:Ne,entries:X.entries,agentSessionId:Ee,attach:we,sendInput:ve,clearLogs:Re}}export{ue as C,ot as L,at as T,ct as a,it as u};
@@ -1 +0,0 @@
1
- import{c as O,u as z,r as f,j as t,E as $,l as B,aq as _}from"./index-CMJV-mgF.js";import{f as H,g as W}from"./CreateTaskInput-GLF3Oyc1.js";import{T as G}from"./use-attachments-EypT-7PI.js";import{G as X}from"./gauge-CPlvCZUV.js";import"./mermaid-NOHMQCX5-C72362la.js";import{R as j}from"./agent-meta-MzuGtqxl.js";import{g as K,a as V,l as F}from"./ExecutionPermissionSelector-DeeNd4Kh.js";import{A as R}from"./AgentLogo-BDyW3ihb.js";import{C as J}from"./chevron-down-BaQEBzp3.js";import{C as Y}from"./check-qs0S_9rB.js";const Q=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]],Z=O("shield-alert",Q);function xe({sessionId:n,compact:s=!1}){const{t:o}=z(),{data:i}=H(n),d=W(),l=i?.pendingPermissions[0],h=l?.requestId,p=d.reset;return f.useEffect(()=>{p()},[h,p]),l?t.jsx("div",{className:B("mb-2 border-l-2 border-warning bg-warning/5 px-3 py-2.5",s&&"px-2.5 py-2"),children:t.jsxs("div",{className:"flex min-w-0 items-start gap-2",children:[t.jsx(Z,{className:"mt-0.5 h-4 w-4 shrink-0 text-warning","aria-hidden":"true"}),t.jsxs("div",{className:"min-w-0 flex-1",children:[t.jsx("div",{className:"text-sm font-medium text-foreground",children:o("Permission required")}),t.jsx("div",{className:"mt-0.5 break-words text-xs text-muted-foreground",children:l.toolSummary||l.toolName||o("The agent needs approval to continue.")}),l.actionDetails?t.jsx("pre",{className:"mt-2 max-h-48 overflow-auto whitespace-pre-wrap break-all text-xs",children:l.actionDetails}):null,t.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:l.options.map(x=>t.jsxs("button",{type:"button",disabled:d.isPending,onClick:()=>d.mutate({sessionId:n,requestId:l.requestId,optionId:x.optionId}),className:B("inline-flex min-h-8 items-center gap-1.5 border px-3 text-xs font-medium transition-colors disabled:opacity-50",x.kind.startsWith("reject")?"border-destructive/30 text-destructive hover:bg-destructive/10":"border-border bg-background text-foreground hover:bg-muted"),children:[d.isPending&&d.variables?.requestId===l.requestId&&d.variables.optionId===x.optionId?t.jsx($,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":"true"}):null,o(x.name)]},x.optionId))}),d.error?t.jsx("div",{className:"mt-1.5 text-xs text-destructive",role:"alert",children:d.error.message}):null]})]})}):null}function I(n){return n>=1e6?`${(n/1e6).toFixed(1)}M`:n>=1e3?`${(n/1e3).toFixed(1)}K`:n.toString()}function ee(n){return n>=.9?"text-red-500":n>=.7?"text-amber-500":"text-neutral-400"}function ge({usage:n,tooltipSide:s="top"}){const{t:o}=z();if(!n)return null;const i=n.modelContextWindow,d=i?n.totalTokens/i:0,l=i?Math.min(Math.round(d*100),100):null,h=i?ee(d):"text-neutral-400",p=i?t.jsx("span",{children:o("上下文: {used} / {max} tokens",{used:I(n.totalTokens),max:I(i)})}):t.jsx("span",{children:o("已使用: {used} tokens",{used:I(n.totalTokens)})});return t.jsx(G,{content:p,side:s,children:t.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1.5 text-xs rounded-lg hover:bg-neutral-100 transition-colors cursor-default select-none",children:[t.jsx(X,{size:14,className:h}),t.jsxs("span",{className:`tabular-nums ${h}`,children:[I(n.totalTokens),l!==null&&t.jsxs("span",{className:"text-neutral-300 ml-0.5",children:["/ ",l,"%"]})]})]})})}const te={damping:.7,stiffness:.05,mass:1.25},re=70,ne=1e3/60,se=350;let A=!1;globalThis.document?.addEventListener("mousedown",()=>{A=!0});globalThis.document?.addEventListener("mouseup",()=>{A=!1});globalThis.document?.addEventListener("click",()=>{A=!1});const he=(n={})=>{const[s,o]=f.useState(!1),[i,d]=f.useState(n.initial!==!1),[l,h]=f.useState(!1),p=f.useRef(null);p.current=n;const x=f.useCallback(()=>{if(!A)return!1;const r=window.getSelection();if(!r||!r.rangeCount)return!1;const a=r.getRangeAt(0);return a.commonAncestorContainer.contains(m.current)||m.current?.contains(a.commonAncestorContainer)},[]),v=f.useCallback(r=>{e.isAtBottom=r,d(r)},[]),g=f.useCallback(r=>{e.escapedFromLock=r,o(r)},[]),e=f.useMemo(()=>{let r;return{escapedFromLock:s,isAtBottom:i,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return m.current?.scrollTop??0},set scrollTop(a){m.current&&(m.current.scrollTop=a,e.ignoreScrollToTop=m.current.scrollTop)},get targetScrollTop(){return!m.current||!y.current?0:m.current.scrollHeight-1-m.current.clientHeight},get calculatedTargetScrollTop(){if(!m.current||!y.current)return 0;const{targetScrollTop:a}=this;if(!n.targetScrollTop)return a;if(r?.targetScrollTop===a)return r.calculatedScrollTop;const u=Math.max(Math.min(n.targetScrollTop(a,{scrollElement:m.current,contentElement:y.current}),a),0);return r={targetScrollTop:a,calculatedScrollTop:u},requestAnimationFrame(()=>{r=void 0}),u},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=re}}},[]),N=f.useCallback((r={})=>{typeof r=="string"&&(r={animation:r}),r.preserveScrollPosition||v(!0);const a=Date.now()+(Number(r.wait)||0),u=L(p.current,r.animation),{ignoreEscapes:b=!1}=r;let w,k=e.calculatedTargetScrollTop;r.duration instanceof Promise?r.duration.finally(()=>{w=Date.now()}):w=a+(r.duration??0);const S=async()=>{const M=new Promise(requestAnimationFrame).then(()=>{if(!e.isAtBottom)return e.animation=void 0,!1;const{scrollTop:E}=e,P=performance.now(),U=(P-(e.lastTick??P))/ne;if(e.animation||(e.animation={behavior:u,promise:M,ignoreEscapes:b}),e.animation.behavior===u&&(e.lastTick=P),x()||a>Date.now())return S();if(E<Math.min(k,e.calculatedTargetScrollTop)){if(e.animation?.behavior===u){if(u==="instant")return e.scrollTop=e.calculatedTargetScrollTop,S();e.velocity=(u.damping*e.velocity+u.stiffness*e.scrollDifference)/u.mass,e.accumulated+=e.velocity*U,e.scrollTop+=e.accumulated,e.scrollTop!==E&&(e.accumulated=0)}return S()}return w>Date.now()?(k=e.calculatedTargetScrollTop,S()):(e.animation=void 0,e.scrollTop<e.calculatedTargetScrollTop?N({animation:L(p.current,p.current.resize),ignoreEscapes:b,duration:Math.max(0,w-Date.now())||void 0}):e.isAtBottom)});return M.then(E=>(requestAnimationFrame(()=>{e.animation||(e.lastTick=void 0,e.velocity=0)}),E))};return r.wait!==!0&&(e.animation=void 0),e.animation?.behavior===u?e.animation.promise:S()},[v,x,e]),C=f.useCallback(()=>{g(!0),v(!1)},[g,v]),c=f.useCallback(({target:r})=>{if(r!==m.current)return;const{scrollTop:a,ignoreScrollToTop:u}=e;let{lastScrollTop:b=a}=e;e.lastScrollTop=a,e.ignoreScrollToTop=void 0,u&&u>a&&(b=u),h(e.isNearBottom),setTimeout(()=>{if(e.resizeDifference||a===u)return;if(x()){g(!0),v(!1);return}const w=a>b,k=a<b;if(e.animation?.ignoreEscapes){e.scrollTop=b;return}k&&(g(!0),v(!1)),w&&g(!1),!e.escapedFromLock&&e.isNearBottom&&v(!0)},1)},[g,v,x,e]),T=f.useCallback(({target:r,deltaY:a})=>{let u=r;for(;!["scroll","auto"].includes(getComputedStyle(u).overflow);){if(!u.parentElement)return;u=u.parentElement}u===m.current&&a<0&&m.current.scrollHeight>m.current.clientHeight&&!e.animation?.ignoreEscapes&&(g(!0),v(!1))},[g,v,e]),m=q(r=>{m.current?.removeEventListener("scroll",c),m.current?.removeEventListener("wheel",T),r?.addEventListener("scroll",c,{passive:!0}),r?.addEventListener("wheel",T,{passive:!0})},[]),y=q(r=>{if(e.resizeObserver?.disconnect(),!r)return;let a;e.resizeObserver=new ResizeObserver(([u])=>{const{height:b}=u.contentRect,w=b-(a??b);if(e.resizeDifference=w,e.scrollTop>e.targetScrollTop&&(e.scrollTop=e.targetScrollTop),h(e.isNearBottom),w>=0){const k=L(p.current,a?p.current.resize:p.current.initial);N({animation:k,wait:!0,preserveScrollPosition:!0,duration:k==="instant"?void 0:se})}else e.isNearBottom&&(g(!1),v(!0));a=b,requestAnimationFrame(()=>{setTimeout(()=>{e.resizeDifference===w&&(e.resizeDifference=0)},1)})}),e.resizeObserver?.observe(r)},[]);return{contentRef:y,scrollRef:m,scrollToBottom:N,stopScroll:C,isAtBottom:i||l,isNearBottom:l,escapedFromLock:s,state:e}};function q(n,s){const o=f.useCallback(i=>(o.current=i,n(i)),s);return o}const D=new Map;function L(...n){const s={...te};let o=!1;for(const d of n){if(d==="instant"){o=!0;continue}typeof d=="object"&&(o=!1,s.damping=d.damping??s.damping,s.stiffness=d.stiffness??s.stiffness,s.mass=d.mass??s.mass)}const i=JSON.stringify(s);return D.has(i)||D.set(i,Object.freeze(s)),o?"instant":D.get(i)}function ve({providers:n,currentProviderId:s,agentType:o,runtimeType:i,onSelect:d}){const{t:l}=z(),[h,p]=f.useState(!1),x=f.useRef(null),v=i===j.ACP?j.ACP:j.CLI,g=n.filter(c=>String(c.provider.agentType)===o&&(c.provider.runtimeType===j.ACP?j.ACP:j.CLI)===v),e=n.find(c=>c.provider.id===s),N=K(n,s),C=N?t.jsx("span",{role:"alert",className:"block break-words text-[11px] leading-snug text-destructive",children:l(N)}):null;return f.useEffect(()=>{function c(T){x.current&&!x.current.contains(T.target)&&p(!1)}if(h)return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[h]),g.length===0||g.length===1&&g[0].provider.id===s?t.jsxs("div",{className:"min-w-[112px] max-w-[min(46vw,240px)] px-2 py-1.5 text-xs text-neutral-400 select-none cursor-default",children:[t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx(R,{agentType:e?.provider.agentType??o,className:"size-3.5 shrink-0"}),t.jsx("span",{className:"min-w-0 truncate",children:e?.provider.name?_(e.provider.name,12):o})]}),C]}):t.jsxs("div",{className:"relative min-w-[112px] max-w-[min(46vw,240px)]",ref:x,children:[t.jsxs("button",{type:"button",onClick:()=>p(!h),className:"flex max-w-full items-center gap-1 text-xs px-2 py-1.5 rounded-lg transition-colors cursor-pointer hover:bg-neutral-100 text-neutral-400 hover:text-neutral-600",title:`Provider: ${e?.provider.name??o} (click to change)`,children:[t.jsx(R,{agentType:e?.provider.agentType??o,className:"size-3.5"}),t.jsx("span",{className:"min-w-0 truncate",children:e?.provider.name?_(e.provider.name,12):o}),t.jsx(J,{size:12,className:`shrink-0 transition-transform ${h?"rotate-180":""}`})]}),C?t.jsx("div",{className:"px-2",children:C}):null,h&&t.jsxs("div",{className:"absolute bottom-full right-0 z-50 mb-1 max-h-[min(60vh,320px)] min-w-[160px] max-w-[min(80vw,320px)] overflow-y-auto rounded-lg border border-neutral-200 bg-white py-1 shadow-lg",children:[t.jsx("div",{className:"px-2 py-1 text-xs text-neutral-400 border-b border-neutral-100",children:l("切换渠道")}),g.map(c=>{const T=V(c),m=c.provider.executionPermission?l("Required permission: {mode}",{mode:l(F[c.provider.executionPermission])}):void 0;return t.jsx("div",{tabIndex:T?0:void 0,role:T?"group":void 0,"aria-label":T?[c.provider.name,m,l(T)].filter(Boolean).join(": "):void 0,className:"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",children:t.jsxs("button",{type:"button",disabled:!!T,onClick:()=>{d(c.provider.id),p(!1)},className:`disabled:cursor-not-allowed w-full flex items-center justify-between px-3 py-2 text-sm text-left hover:bg-neutral-50 transition-colors ${c.provider.id===s?"bg-blue-50 text-blue-600":"text-neutral-700"}`,children:[t.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[t.jsx(R,{agentType:c.provider.agentType,className:"size-4"}),t.jsxs("span",{className:"min-w-0",children:[t.jsx("span",{className:"block truncate max-w-[200px]",children:c.provider.name}),c.provider.executionPermission?t.jsx("span",{className:"block text-xs",children:l(F[c.provider.executionPermission])}):null,T?t.jsx("span",{className:"block max-w-[240px] break-words text-xs",children:l(T)}):null]}),c.provider.isDefault&&t.jsx("span",{className:"text-xs text-neutral-400",children:l("(默认)")})]}),c.provider.id===s&&t.jsx(Y,{size:14,className:"shrink-0"})]})},c.provider.id)})]})]})}function Te(n,s){return f.useMemo(()=>{for(let o=n.length-1;o>=0;o--){const i=n[o];if(i.tokenUsage&&typeof i.tokenUsage.totalTokens=="number"&&i.tokenUsage.totalTokens>0)return{totalTokens:i.tokenUsage.totalTokens,modelContextWindow:i.tokenUsage.modelContextWindow}}return s??null},[n,s])}export{ve as P,xe as R,ge as T,Te as a,he as u};
@@ -1 +0,0 @@
1
- import{l as t}from"./monaco-BuDK9Fat.js";import"./EditableTaskTitle-mHT39coo.js";import"./index-CMJV-mgF.js";import"./mermaid-NOHMQCX5-C72362la.js";import"./agent-meta-MzuGtqxl.js";import"./use-attachments-EypT-7PI.js";import"./chevron-down-BaQEBzp3.js";import"./use-providers-DB9ghBPq.js";import"./AgentLogo-BDyW3ihb.js";import"./MemberAvatar-CCRbS97s.js";import"./chevron-up-D0y6skqr.js";import"./arrow-down-BVePf1ZM.js";import"./at-sign-BE17rU5b.js";import"./paperclip-BOSklTt7.js";import"./task-priority-acVgTiil.js";import"./check-qs0S_9rB.js";import"./useTokenUsage-4qTDa8SY.js";import"./CreateTaskInput-GLF3Oyc1.js";import"./use-projects-DI27nNwl.js";import"./trash-2-Bc-URu8c.js";import"./ExecutionPermissionSelector-DeeNd4Kh.js";import"./BrandLogo-YGT4Vlw5.js";import"./gauge-CPlvCZUV.js";import"./confirm-dialog-BrgNTypL.js";import"./modal-DeigO7aN.js";import"./select-DKS02St6.js";import"./layers-Dda7MM7a.js";import"./message-square-CFriSt4D.js";import"./textarea-Ft9KMoEI.js";import"./play-Mxkwq69n.js";import"./server-DJaSJ9m1.js";import"./task-CDYaC_No.js";import"./status-styles-sQm4KLdp.js";import"./copy-DejkmIHZ.js";import"./use-workspaces-d4n9m9cX.js";import"./circle-alert-Cbvy2cMo.js";import"./upload-C9Z4jLtv.js";import"./globe-CD4g63c9.js";import"./BranchSelect-Dmp5hq0i.js";import"./useNormalizedLogs-DRoPbP0w.js";import"./pencil-BRQ9W_a-.js";const J={comments:{blockComment:["<!--","-->"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:t.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:t.IndentAction.Indent}}]},K={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/<!--/,{token:"comment",next:"@comment"}]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,{token:"comment",next:"@pop"}],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]]}};export{J as conf,K as language};
@@ -1 +0,0 @@
1
- import{l as e}from"./monaco-BuDK9Fat.js";import"./EditableTaskTitle-mHT39coo.js";import"./index-CMJV-mgF.js";import"./mermaid-NOHMQCX5-C72362la.js";import"./agent-meta-MzuGtqxl.js";import"./use-attachments-EypT-7PI.js";import"./chevron-down-BaQEBzp3.js";import"./use-providers-DB9ghBPq.js";import"./AgentLogo-BDyW3ihb.js";import"./MemberAvatar-CCRbS97s.js";import"./chevron-up-D0y6skqr.js";import"./arrow-down-BVePf1ZM.js";import"./at-sign-BE17rU5b.js";import"./paperclip-BOSklTt7.js";import"./task-priority-acVgTiil.js";import"./check-qs0S_9rB.js";import"./useTokenUsage-4qTDa8SY.js";import"./CreateTaskInput-GLF3Oyc1.js";import"./use-projects-DI27nNwl.js";import"./trash-2-Bc-URu8c.js";import"./ExecutionPermissionSelector-DeeNd4Kh.js";import"./BrandLogo-YGT4Vlw5.js";import"./gauge-CPlvCZUV.js";import"./confirm-dialog-BrgNTypL.js";import"./modal-DeigO7aN.js";import"./select-DKS02St6.js";import"./layers-Dda7MM7a.js";import"./message-square-CFriSt4D.js";import"./textarea-Ft9KMoEI.js";import"./play-Mxkwq69n.js";import"./server-DJaSJ9m1.js";import"./task-CDYaC_No.js";import"./status-styles-sQm4KLdp.js";import"./copy-DejkmIHZ.js";import"./use-workspaces-d4n9m9cX.js";import"./circle-alert-Cbvy2cMo.js";import"./upload-C9Z4jLtv.js";import"./globe-CD4g63c9.js";import"./BranchSelect-Dmp5hq0i.js";import"./useNormalizedLogs-DRoPbP0w.js";import"./pencil-BRQ9W_a-.js";const U={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},Z={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}};export{U as conf,Z as language};